Procházet zdrojové kódy

extended controls: store tooncher's pid as xproperty of engine's window

$ xprop -spy
_TOONCHER_EXTENDED_CONTROLS_PID(CARDINAL) = 11060
[...]
Fabian Peter Hammerle před 6 roky
rodič
revize
b2ae9bb43b
1 změnil soubory, kde provedl 10 přidání a 1 odebrání
  1. 10 1
      tooncher/controls.py

+ 10 - 1
tooncher/controls.py

@@ -1,4 +1,5 @@
 import copy
+import os
 import select
 import time
 from tooncher.actions import *
@@ -8,11 +9,12 @@ except ImportError:
     psutil = False
 try:
     import Xlib.display
-    from Xlib import X, XK
+    from Xlib import X, XK, Xatom
 except ImportError:
     Xlib = False
 
 EXTENDED_CONTROLS_DEFAULT_TOGGLE_KEYSYM_NAME = 'grave'
+EXTENDED_CONTROLS_PID_XPROPERTY_NAME = '_TOONCHER_EXTENDED_CONTROLS_PID'
 TOONTOWN_WINDOW_NAME = 'Toontown Rewritten'
 
 if Xlib:
@@ -140,6 +142,13 @@ class ExtendedControls:
         self._grab_key(
             self._xdisplay.keysym_to_keycode(self._toggle_keysym),
         )
+        self._primary_engine_window.change_property(
+            self.xdisplay.intern_atom(EXTENDED_CONTROLS_PID_XPROPERTY_NAME),
+            property_type=Xatom.CARDINAL,
+            format=32,
+            data=[os.getpid()],
+            mode=X.PropModeReplace,
+        )
         if not self.enabled:
             keysym_name = XK.keysym_to_string(self._toggle_keysym)
             print("INFO Extended Controls are currently disabled."