[orca: 1/2] Fix window list the second time mouse review gets enabled
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca: 1/2] Fix window list the second time mouse review gets enabled
- Date: Thu, 26 Mar 2020 13:45:14 +0000 (UTC)
commit 5047a1d8537f3656fcbc955fbd3628699bb736b7
Author: Colomban Wendling <cwendling hypra fr>
Date: Wed Mar 25 18:54:31 2020 +0100
Fix window list the second time mouse review gets enabled
On initial Wnck calls the signals we connect to get emitted for the
initial values, but in case we got disabled and re-enabled we have to
get the initial values manually.
This could in theory be avoided by shutting down Wnck when we get
disabled, and then the next activation would behave like the initial
one, but Wnck.shutdown() is documented as being hacky, and seem too
buggy (spews lots of warnings that are not related to our code).
src/orca/mouse_review.py | 15 +++++++++++++++
1 file changed, 15 insertions(+)
---
diff --git a/src/orca/mouse_review.py b/src/orca/mouse_review.py
index d39f65939..c9f6c40ba 100644
--- a/src/orca/mouse_review.py
+++ b/src/orca/mouse_review.py
@@ -345,6 +345,18 @@ class MouseReviewer:
_eventManager.registerModuleListeners(self._get_listeners())
screen = Wnck.Screen.get_default()
if screen:
+ # On first startup windows and workspace are likely to be None,
+ # but the signals we connect to will get emitted when proper values
+ # become available; but in case we got disabled and re-enabled we
+ # have to get the initial values manually.
+ stacked = screen.get_windows_stacked()
+ if stacked:
+ stacked.reverse()
+ self._all_windows = stacked
+ self._workspace = screen.get_active_workspace()
+ if self._workspace:
+ self._update_workspace_windows()
+
i = screen.connect("window-stacking-changed", self._on_stacking_changed)
self._handlerIds[i] = screen
i = screen.connect("active-workspace-changed", self._on_workspace_changed)
@@ -359,6 +371,9 @@ class MouseReviewer:
for key, value in self._handlerIds.items():
value.disconnect(key)
self._handlerIds = {}
+ self._workspace = None
+ self._windows = []
+ self._all_windows = []
self._active = False
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]