diff --git a/negstation/widgets/stage_viewer_widget.py b/negstation/widgets/stage_viewer_widget.py index bbeb266..cc6a758 100644 --- a/negstation/widgets/stage_viewer_widget.py +++ b/negstation/widgets/stage_viewer_widget.py @@ -19,6 +19,7 @@ class StageViewerWidget(BaseWidget): self.current = None self.texture_tag = dpg.generate_uuid() self.img = None + self.needs_update = False # Subscribe only to stage list updates self.manager.bus.subscribe( @@ -44,7 +45,8 @@ class StageViewerWidget(BaseWidget): def on_resize(self, app_data): if self.img is not None: - self.update_texture(self.img) + self.needs_update = True + # self.update_texture(self.img) def on_stage_list(self, stages): # Update dropdown items @@ -56,7 +58,8 @@ class StageViewerWidget(BaseWidget): if name == self.current: if img is not None: self.img = img - self.update_texture(img) + self.needs_update = True + # self.update_texture(img) def on_select(self, sender, selected_stage): # User-picked stage: fetch and render @@ -64,7 +67,8 @@ class StageViewerWidget(BaseWidget): img = self.manager.pipeline.get_stage(selected_stage) if img is not None: self.img = img - self.update_texture(img) + self.needs_update = True + # self.update_texture(img) def update_texture(self, img: np.ndarray): # img is a NumPy array with shape (h, w, 4) @@ -105,3 +109,8 @@ class StageViewerWidget(BaseWidget): width=disp_w, height=disp_h ) + + def update(self): + if self.needs_update: + self.needs_update = False + self.update_texture(self.img) diff --git a/negstation_layout.ini b/negstation_layout.ini index 12e1b35..ddb29d0 100644 --- a/negstation_layout.ini +++ b/negstation_layout.ini @@ -1,62 +1,27 @@ [Window][WindowOverViewport_11111111] Pos=0,19 -Size=810,581 +Size=800,581 Collapsed=0 +[Window][###22] +Pos=0,19 +Size=299,581 +Collapsed=0 +DockId=0x00000001,0 + +[Window][###27] +Pos=301,19 +Size=499,581 +Collapsed=0 +DockId=0x00000002,0 + [Window][Debug##Default] Pos=60,60 Size=400,400 Collapsed=0 -[Window][###28] -Pos=143,94 -Size=400,400 -Collapsed=0 - -[Window][###33] -Pos=-2,48 -Size=300,150 -Collapsed=0 - -[Window][###37] -Pos=580,56 -Size=400,400 -Collapsed=0 - -[Window][###22] -Pos=0,19 -Size=278,581 -Collapsed=0 -DockId=0x00000005,0 - -[Window][###27] -Pos=280,19 -Size=530,581 -Collapsed=0 -DockId=0x00000001,0 - -[Window][###31] -Pos=516,19 -Size=444,381 -Collapsed=0 -DockId=0x00000002,0 - -[Window][###41] -Pos=185,19 -Size=821,577 -Collapsed=0 -DockId=0x00000001,0 - -[Window][###38] -Pos=209,19 -Size=751,574 -Collapsed=0 -DockId=0x00000001,0 - [Docking][Data] -DockSpace ID=0x7C6B3D9B Window=0xA87D555D Pos=0,19 Size=810,581 Split=X - DockNode ID=0x00000005 Parent=0x7C6B3D9B SizeRef=278,381 Selected=0xEE087978 - DockNode ID=0x00000006 Parent=0x7C6B3D9B SizeRef=680,381 Split=X - DockNode ID=0x00000001 Parent=0x00000006 SizeRef=514,381 CentralNode=1 Selected=0x26E8F608 - DockNode ID=0x00000002 Parent=0x00000006 SizeRef=444,381 Selected=0x62F4D00D +DockSpace ID=0x7C6B3D9B Window=0xA87D555D Pos=0,19 Size=800,581 Split=X Selected=0x26E8F608 + DockNode ID=0x00000001 Parent=0x7C6B3D9B SizeRef=299,581 Selected=0xEE087978 + DockNode ID=0x00000002 Parent=0x7C6B3D9B SizeRef=499,581 CentralNode=1 Selected=0x26E8F608