Philipp Hörist pushed to branch master at gajim / gajim


Commits:
1609d931 by André Apitzsch at 2020-12-03T18:04:28+01:00
Use idle monitor only if available

Fixes #10295.

- - - - -
9d4c947b by André Apitzsch at 2020-12-03T18:22:52+01:00
Ignore Xss idle monitor on wayland

Wayland doesn't provide XScreenSaver Extension.

- - - - -


2 changed files:

- gajim/common/client.py
- gajim/common/idle.py


Changes:

=====================================
gajim/common/client.py
=====================================
@@ -84,11 +84,11 @@ def __init__(self, account):
 
         self._create_client()
 
-        self._idle_handler_id = Monitor.connect('state-changed',
-                                                self._idle_state_changed)
-
-        self._screensaver_handler_id = app.app.connect(
-            'notify::screensaver-active', self._screensaver_state_changed)
+        if Monitor.is_available():
+            self._idle_handler_id = Monitor.connect('state-changed',
+                                                    self._idle_state_changed)
+            self._screensaver_handler_id = app.app.connect(
+                'notify::screensaver-active', self._screensaver_state_changed)
 
         ConnectionHandlers.__init__(self)
 
@@ -615,8 +615,9 @@ def _screensaver_state_changed(application, _param):
 
     def cleanup(self):
         self._destroyed = True
-        Monitor.disconnect(self._idle_handler_id)
-        app.app.disconnect(self._screensaver_handler_id)
+        if Monitor.is_available():
+            Monitor.disconnect(self._idle_handler_id)
+            app.app.disconnect(self._screensaver_handler_id)
         if self._client is not None:
             # cleanup() is called before nbmxpp.Client has disconnected,
             # when we disable the account. So we need to unregister


=====================================
gajim/common/idle.py
=====================================
@@ -28,6 +28,8 @@
 from gi.repository import GLib
 from gi.repository import GObject
 
+from gajim.common import app
+from gajim.common.const import Display
 from gajim.common.const import IdleState
 
 log = logging.getLogger('gajim.c.idle')
@@ -317,6 +319,9 @@ def _get_idle_monitor():
         except GLib.Error as error:
             log.info('Idle time via D-Bus (GNOME) not available: %s', error)
 
+        if app.is_display(Display.WAYLAND):
+            return
+
         try:
             return XssIdleMonitor()
         except OSError as error:



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/59315c3fef11755e53dde756b96999338544742d...9d4c947b33f81600f57e42af5ba8267669cce0c8

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/59315c3fef11755e53dde756b96999338544742d...9d4c947b33f81600f57e42af5ba8267669cce0c8
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list
Commits@gajim.org
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to