From: Dana Jansens Date: Mon, 14 May 2007 03:40:03 +0000 (+0000) Subject: add a debug action.. change focus debug output a lil, no grab events X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=a019ee1028c396f7d5ec107d100b43222c945b59;p=chaz%2Fopenbox add a debug action.. change focus debug output a lil, no grab events --- diff --git a/openbox/action.c b/openbox/action.c index 20bf686f..aa9465b8 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -95,6 +95,8 @@ void action_unref(ObAction *a) /* deal with pointers */ if (a->func == action_execute || a->func == action_restart) g_free(a->data.execute.path); + else if (a->func == action_debug) + g_free(a->data.debug.string); else if (a->func == action_showmenu) g_free(a->data.showmenu.name); @@ -110,6 +112,8 @@ ObAction* action_copy(const ObAction *src) /* deal with pointers */ if (a->func == action_execute || a->func == action_restart) a->data.execute.path = g_strdup(a->data.execute.path); + else if (a->func == action_debug) + a->data.debug.string = g_strdup(a->data.debug.string); else if (a->func == action_showmenu) a->data.showmenu.name = g_strdup(a->data.showmenu.name); @@ -471,9 +475,14 @@ void setup_client_action(ObAction **a, ObUserAction uact) ActionString actionstrings[] = { + { + "debug", + action_debug, + NULL + }, { "execute", - action_execute, + action_execute, NULL }, { @@ -974,6 +983,9 @@ ObAction *action_parse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, if ((m = parse_find_node("icon", n->xmlChildrenNode))) act->data.execute.icon_name = parse_string(doc, m); } + } else if (act->func == action_debug) { + if ((n = parse_find_node("string", node->xmlChildrenNode))) + act->data.debug.string = parse_string(doc, n); } else if (act->func == action_showmenu) { if ((n = parse_find_node("menu", node->xmlChildrenNode))) act->data.showmenu.name = parse_string(doc, n); @@ -1183,6 +1195,12 @@ void action_run_string(const gchar *name, struct _ObClient *c, Time time) action_run(l, c, 0, time); } +void action_debug(union ActionData *data) +{ + if (data->debug.string) + g_print("%s\n", data->debug.string); +} + void action_execute(union ActionData *data) { GError *e = NULL; diff --git a/openbox/action.h b/openbox/action.h index 8a1726bc..7c48f37b 100644 --- a/openbox/action.h +++ b/openbox/action.h @@ -71,6 +71,10 @@ struct DirectionalAction{ gboolean hang; }; +struct Debug { + gchar *string; +}; + struct Execute { struct AnyAction any; gchar *path; @@ -157,6 +161,7 @@ union ActionData { struct InteractiveAction inter; struct InterDirectionalAction interdiraction; struct DirectionalAction diraction; + struct Debug debug; struct Execute execute; struct ClientAction client; struct Activate activate; @@ -185,6 +190,7 @@ struct _ObAction { /* Creates a new Action from the name of the action A few action types need data set after making this call still. Check if the returned action's "func" is one of these. + action_debug - the string to print should be set action_execute - the path needs to be set action_restart - the path can optionally be set action_desktop - the destination desktop needs to be set @@ -234,6 +240,8 @@ void action_run_list(GSList *acts, struct _ObClient *c, ObFrameContext context, void action_run_string(const gchar *name, struct _ObClient *c, Time time); +/* Debug */ +void action_debug(union ActionData *data); /* Execute */ void action_execute(union ActionData *data); /* ActivateAction */ diff --git a/openbox/event.c b/openbox/event.c index 0e731b08..a2571f0e 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -394,6 +394,9 @@ static void print_focusevent(XEvent *e) case NotifyDetailNone: detailstr="NotifyDetailNone"; break; } + if (mode == NotifyGrab || mode == NotifyUngrab) + return; + g_assert(modestr); g_assert(detailstr); ob_debug_type(OB_DEBUG_FOCUS, "Focus%s 0x%x mode=%s detail=%s\n",