git.lucas.co / hou-control
git clone https://git.lucas.co/hou-control.git

commit91c0201d438f4da09c1010750f7eabd95ac60605
parentac2ad039ed
authorLucas Galante <[email protected]>
date2026-04-16 22:43
keycam: add viewer event callback to automatically update aspect ratio on resize

 viewer_states/keycam.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/viewer_states/keycam.py b/viewer_states/keycam.py
index 4be4c41..52b8bd4 100644
--- a/viewer_states/keycam.py
+++ b/viewer_states/keycam.py
@@ -57,14 +57,25 @@ class State(object):
         self.guides.update()
         self.hud = Hud(self)
         self.hud.update()
+        
+        # Register viewer event callback for resizing
+        self.scene_viewer.hou_tab.addEventCallback(self._onViewerEvent)
 
     def onDraw(self, kwargs):
         self.guides.draw(kwargs)
 
     def onExit(self, kwargs):
+        # Cleanup callback
+        self.scene_viewer.hou_tab.removeEventCallback(self._onViewerEvent)
         for viewport in self.scene_viewer.allViewports():
             viewport.lockCameraToView(False)
 
+    def _onViewerEvent(self, **kwargs):
+        event_type = kwargs.get('event_type')
+        if event_type == hou.sceneViewerEvent.SizeChanged:
+            self.cam.fitAspectRatio()
+            self.guides.update()
+
     def onKeyEvent(self, kwargs):
         """Keys are now handled via PluginHotkeyDefinitions and onMenuAction."""
         return False