diff --git a/normcap/gui/dbus.py b/normcap/gui/dbus.py index bbadefa0b..3fa8a55e5 100644 --- a/normcap/gui/dbus.py +++ b/normcap/gui/dbus.py @@ -193,6 +193,7 @@ def move_windows_via_window_calls_extension(title_id: str, position: Rect) -> bo window_title = response[0] if window_title == title_id: window_id = window["id"] + break response = proxy.move_resize( window_id, diff --git a/normcap/gui/window.py b/normcap/gui/window.py index 87a59073d..97994ee5e 100644 --- a/normcap/gui/window.py +++ b/normcap/gui/window.py @@ -159,11 +159,13 @@ def set_fullscreen(self) -> None: self.showFullScreen() - if system_info.display_manager_is_wayland(): - self._move_to_position_on_wayland() - self.setFocus() + if system_info.display_manager_is_wayland(): + # Movement is delayed to ensure the window is fully active and + # registered within the window manager + QtCore.QTimer.singleShot(20, lambda: self._move_to_position_on_wayland()) + def clear_selection(self) -> None: self.selection_rect = QtCore.QRect() self.ui_container.rect = self.selection_rect