X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=plugins%2Fkeyboard%2Fkeyboard.c;h=a583a2e6218f95a1e2affcceb2e53dff6e9c8204;hb=62f1473c651a564391e53548e0cb7daa5303776d;hp=f89620dbe6424132fdc93cd7fb61ae08ab87bbef;hpb=2477a38d2f3063b697e44bf3690cf280fb26ca8a;p=chaz%2Fopenbox diff --git a/plugins/keyboard/keyboard.c b/plugins/keyboard/keyboard.c index f89620db..a583a2e6 100644 --- a/plugins/keyboard/keyboard.c +++ b/plugins/keyboard/keyboard.c @@ -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,7 +104,7 @@ 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(((ObClient*)it->data)->frame->window, grab); } @@ -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); }