]> Dogcows Code - chaz/openbox/blobdiff - plugins/keyboard/keyboard.c
oops buttons not keycodes
[chaz/openbox] / plugins / keyboard / keyboard.c
index 45b93ac434d6082f21d0009a2dc546e7aa36a83a..a583a2e6218f95a1e2affcceb2e53dff6e9c8204 100644 (file)
@@ -1,9 +1,11 @@
 #include "kernel/focus.h"
+#include "kernel/screen.h"
 #include "kernel/frame.h"
 #include "kernel/dispatch.h"
 #include "kernel/openbox.h"
 #include "kernel/event.h"
 #include "kernel/grab.h"
+#include "kernel/client.h"
 #include "kernel/action.h"
 #include "kernel/prop.h"
 #include "kernel/timer.h"
@@ -67,7 +69,7 @@ static void parse_key(xmlDocPtr doc, xmlNodePtr node, GList *keylist)
 
 static void parse_xml(xmlDocPtr doc, xmlNodePtr node, void *d)
 {
-    parse_key(doc, node, NULL);
+    parse_key(doc, node->xmlChildrenNode, NULL);
 }
 
 void plugin_setup_config()
@@ -79,7 +81,7 @@ KeyBindingTree *firstnode = NULL;
 
 static KeyBindingTree *curpos;
 static guint reset_key, reset_state;
-static Timer *chain_timer;
+static ObTimer *chain_timer;
 
 static void grab_for_window(Window win, gboolean grab)
 {
@@ -102,9 +104,9 @@ static void grab_keys(gboolean grab)
 {
     GList *it;
 
-    grab_for_window(focus_backup, grab);
+    grab_for_window(screen_support_win, grab);
     for (it = client_list; it; it = g_list_next(it))
-        grab_for_window(((Client*)it->data)->frame->window, grab);
+        grab_for_window(((ObClient*)it->data)->frame->window, grab);
 }
 
 static void reset_chains()
@@ -144,7 +146,7 @@ gboolean kbind(GList *keylist, Action *action)
     while (t->first_child) t = t->first_child;
 
     if (conflict) {
-        g_message("conflict with binding");
+        g_warning("conflict with binding");
         tree_destroy(tree);
         return FALSE;
     }
@@ -237,11 +239,21 @@ static void event(ObEvent *e, void *foo)
                                 act->data.cycle.cancel = FALSE;
                             }
 
+                            if (act->func == action_moveresize) {
+                                screen_pointer_pos(&act->data.moveresize.x,
+                                                   &act->data.moveresize.y);
+                            }
+
                             if (act->func == action_cycle_windows &&
                                 !grabbed_key && grab_keyboard(TRUE)) {
                                 grabbed_key = p;
                             }
 
+                            if (act->func == action_showmenu) {
+                                act->data.showmenu.x = e->data.x.e->xkey.x_root;
+                                act->data.showmenu.y = e->data.x.e->xkey.y_root;
+                            }
+
                             act->data.any.c = focus_client;
                             act->func(&act->data);
                         }
This page took 0.027428 seconds and 4 git commands to generate.