Switch to using wmctrl to activate window. So, new dependency: wmctrl.

portnov [2008-08-04 14:03:24]
Switch to using wmctrl to activate window. So, new dependency: wmctrl.
Filename
qwerty.py
diff --git a/qwerty.py b/qwerty.py
index 14e9b4c..4d84081 100755
--- a/qwerty.py
+++ b/qwerty.py
@@ -218,7 +218,7 @@ class GUI(object):
         self.buttons = {}
         self.sbuttons = []
         self.by_class = {}
-        self.by_xid = {}
+#         self.by_xid = {}

         for c in A:
             self.buttons[c] = SuperButton(c)
@@ -266,8 +266,8 @@ class GUI(object):
         self.window.connect('destroy', self.exit)
         self.window.connect('key-release-event', self.on_key)

-        self.window.fullscreen()
-#         self.window.resize(800,600)
+#         self.window.fullscreen()
+        self.window.resize(800,600)

         self.collect_windows()

@@ -286,7 +286,7 @@ class GUI(object):
             elif clss:
                 self.by_class[clss] = w

-        self.by_xid = dict([(w.id,w) for w in self.clients_list])
+#         self.by_xid = dict([(w.id,w) for w in self.clients_list])

     def exit(self,widget=None):
         gtk.main_quit()
@@ -316,22 +316,27 @@ class GUI(object):
         self.root.send_event(ev, event_mask=mask)

     def activate_window(self,cls):
-        self.display.flush()
-        wnd = self.by_class[cls]
-        wnd.configure(stack_mode=X.Above)
-        wnd.set_input_focus(X.RevertToNone, X.CurrentTime)
-#         self.send_event(wnd, self.NET_ACTIVE_WINDOW, [X.CurrentTime])
+#         self.display.flush()
+#         wnd = self.by_class[cls]
+#         wnd = self.display.create_resource_object('window',wnd)
+#         wnd.configure(stack_mode=X.Above)
+#         wnd.set_input_focus(X.RevertToNone, X.CurrentTime)
+#         src = self.window.window.xid
+#         self.send_event(wnd, self.NET_ACTIVE_WINDOW, [1, X.CurrentTime, src])
+#         self.display.flush()
 #         wnd.map()
+#         print wnd.id
+        os.system("wmctrl -x -a %s" % cls)

     def on_button(self,widget,event=None):
         if widget.running:
-            print "Activating", widget.label.get_text()
+#             print "Activating", widget.label
             self.activate_window(widget.cls)
         else:
             self.key_exec(widget.key)
         self.exit()

-    def on_section(self,widget):
+    def on_section(self,widget,event=None):
         self.show_section(widget.key)

     def show_section(self,k):
ViewGit