add a debug action.. change focus debug output a lil, no grab events
This commit is contained in:
parent
d0a579eda0
commit
a019ee1028
3 changed files with 30 additions and 1 deletions
|
@ -95,6 +95,8 @@ void action_unref(ObAction *a)
|
||||||
/* deal with pointers */
|
/* deal with pointers */
|
||||||
if (a->func == action_execute || a->func == action_restart)
|
if (a->func == action_execute || a->func == action_restart)
|
||||||
g_free(a->data.execute.path);
|
g_free(a->data.execute.path);
|
||||||
|
else if (a->func == action_debug)
|
||||||
|
g_free(a->data.debug.string);
|
||||||
else if (a->func == action_showmenu)
|
else if (a->func == action_showmenu)
|
||||||
g_free(a->data.showmenu.name);
|
g_free(a->data.showmenu.name);
|
||||||
|
|
||||||
|
@ -110,6 +112,8 @@ ObAction* action_copy(const ObAction *src)
|
||||||
/* deal with pointers */
|
/* deal with pointers */
|
||||||
if (a->func == action_execute || a->func == action_restart)
|
if (a->func == action_execute || a->func == action_restart)
|
||||||
a->data.execute.path = g_strdup(a->data.execute.path);
|
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)
|
else if (a->func == action_showmenu)
|
||||||
a->data.showmenu.name = g_strdup(a->data.showmenu.name);
|
a->data.showmenu.name = g_strdup(a->data.showmenu.name);
|
||||||
|
|
||||||
|
@ -471,9 +475,14 @@ void setup_client_action(ObAction **a, ObUserAction uact)
|
||||||
|
|
||||||
ActionString actionstrings[] =
|
ActionString actionstrings[] =
|
||||||
{
|
{
|
||||||
|
{
|
||||||
|
"debug",
|
||||||
|
action_debug,
|
||||||
|
NULL
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"execute",
|
"execute",
|
||||||
action_execute,
|
action_execute,
|
||||||
NULL
|
NULL
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -974,6 +983,9 @@ ObAction *action_parse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
|
||||||
if ((m = parse_find_node("icon", n->xmlChildrenNode)))
|
if ((m = parse_find_node("icon", n->xmlChildrenNode)))
|
||||||
act->data.execute.icon_name = parse_string(doc, m);
|
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) {
|
} else if (act->func == action_showmenu) {
|
||||||
if ((n = parse_find_node("menu", node->xmlChildrenNode)))
|
if ((n = parse_find_node("menu", node->xmlChildrenNode)))
|
||||||
act->data.showmenu.name = parse_string(doc, n);
|
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);
|
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)
|
void action_execute(union ActionData *data)
|
||||||
{
|
{
|
||||||
GError *e = NULL;
|
GError *e = NULL;
|
||||||
|
|
|
@ -71,6 +71,10 @@ struct DirectionalAction{
|
||||||
gboolean hang;
|
gboolean hang;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct Debug {
|
||||||
|
gchar *string;
|
||||||
|
};
|
||||||
|
|
||||||
struct Execute {
|
struct Execute {
|
||||||
struct AnyAction any;
|
struct AnyAction any;
|
||||||
gchar *path;
|
gchar *path;
|
||||||
|
@ -157,6 +161,7 @@ union ActionData {
|
||||||
struct InteractiveAction inter;
|
struct InteractiveAction inter;
|
||||||
struct InterDirectionalAction interdiraction;
|
struct InterDirectionalAction interdiraction;
|
||||||
struct DirectionalAction diraction;
|
struct DirectionalAction diraction;
|
||||||
|
struct Debug debug;
|
||||||
struct Execute execute;
|
struct Execute execute;
|
||||||
struct ClientAction client;
|
struct ClientAction client;
|
||||||
struct Activate activate;
|
struct Activate activate;
|
||||||
|
@ -185,6 +190,7 @@ struct _ObAction {
|
||||||
/* Creates a new Action from the name of the action
|
/* Creates a new Action from the name of the action
|
||||||
A few action types need data set after making this call still. Check if
|
A few action types need data set after making this call still. Check if
|
||||||
the returned action's "func" is one of these.
|
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_execute - the path needs to be set
|
||||||
action_restart - the path can optionally be set
|
action_restart - the path can optionally be set
|
||||||
action_desktop - the destination desktop needs to 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);
|
void action_run_string(const gchar *name, struct _ObClient *c, Time time);
|
||||||
|
|
||||||
|
/* Debug */
|
||||||
|
void action_debug(union ActionData *data);
|
||||||
/* Execute */
|
/* Execute */
|
||||||
void action_execute(union ActionData *data);
|
void action_execute(union ActionData *data);
|
||||||
/* ActivateAction */
|
/* ActivateAction */
|
||||||
|
|
|
@ -394,6 +394,9 @@ static void print_focusevent(XEvent *e)
|
||||||
case NotifyDetailNone: detailstr="NotifyDetailNone"; break;
|
case NotifyDetailNone: detailstr="NotifyDetailNone"; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mode == NotifyGrab || mode == NotifyUngrab)
|
||||||
|
return;
|
||||||
|
|
||||||
g_assert(modestr);
|
g_assert(modestr);
|
||||||
g_assert(detailstr);
|
g_assert(detailstr);
|
||||||
ob_debug_type(OB_DEBUG_FOCUS, "Focus%s 0x%x mode=%s detail=%s\n",
|
ob_debug_type(OB_DEBUG_FOCUS, "Focus%s 0x%x mode=%s detail=%s\n",
|
||||||
|
|
Loading…
Reference in a new issue