X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=plugins%2Fmouse%2Fmouserc_parse.l;h=1f2d19705d8b08af3dfbd931ff88b688c6babd8f;hb=106d5630bfac19eaa5b402bd1ee06d4d41cf7f28;hp=47cfd74bfce862f0cf4439e8041e5cb8986e2921;hpb=ded198f74f0215277f9e8b298807a35204865c8f;p=chaz%2Fopenbox diff --git a/plugins/mouse/mouserc_parse.l b/plugins/mouse/mouserc_parse.l index 47cfd74b..1f2d1970 100644 --- a/plugins/mouse/mouserc_parse.l +++ b/plugins/mouse/mouserc_parse.l @@ -82,110 +82,23 @@ static void addbinding() return; } + a = action_from_string(action); + if (mact == MouseAction_Motion) { - if (!g_ascii_strcasecmp(action, "move") && - mact == MouseAction_Motion) { - a = action_new(action_move); - } else if (!g_ascii_strcasecmp(action, "resize") && - mact == MouseAction_Motion) { - a = action_new(action_resize); - } - } else { - if (!g_ascii_strcasecmp(action, "focus")) { - a = action_new(action_focus); - } else if (!g_ascii_strcasecmp(action, "unfocus")) { - a = action_new(action_unfocus); - } else if (!g_ascii_strcasecmp(action, "iconify")) { - a = action_new(action_iconify); - } else if (!g_ascii_strcasecmp(action, "raise")) { - a = action_new(action_raise); - } else if (!g_ascii_strcasecmp(action, "lower")) { - a = action_new(action_lower); - } else if (!g_ascii_strcasecmp(action, "focusraise")) { - a = action_new(action_focusraise); - } else if (!g_ascii_strcasecmp(action, "close")) { - a = action_new(action_close); - } else if (!g_ascii_strcasecmp(action, "kill")) { - a = action_new(action_kill); - } else if (!g_ascii_strcasecmp(action, "shade")) { - a = action_new(action_shade); - } else if (!g_ascii_strcasecmp(action, "unshade")) { - a = action_new(action_unshade); - } else if (!g_ascii_strcasecmp(action, "toggleshade")) { - a = action_new(action_toggle_shade); - } else if (!g_ascii_strcasecmp(action, "toggleomnipresent")) { - a = action_new(action_toggle_omnipresent); - } else if (!g_ascii_strcasecmp(action, "maximizefull")) { - a = action_new(action_maximize_full); - } else if (!g_ascii_strcasecmp(action, "unmaximizefull")) { - a = action_new(action_unmaximize_full); - } else if (!g_ascii_strcasecmp(action, "togglemaximizefull")) { - a = action_new(action_toggle_maximize_full); - } else if (!g_ascii_strcasecmp(action, "maximizehorz")) { - a = action_new(action_maximize_horz); - } else if (!g_ascii_strcasecmp(action, "unmaximizehorz")) { - a = action_new(action_unmaximize_horz); - } else if (!g_ascii_strcasecmp(action, "togglemaximizehorz")) { - a = action_new(action_toggle_maximize_horz); - } else if (!g_ascii_strcasecmp(action, "maximizevert")) { - a = action_new(action_maximize_vert); - } else if (!g_ascii_strcasecmp(action, "unmaximizevert")) { - a = action_new(action_unmaximize_vert); - } else if (!g_ascii_strcasecmp(action, "togglemaximizevert")) { - a = action_new(action_toggle_maximize_vert); - } else if (!g_ascii_strcasecmp(action, "sendtonextdesktop")) { - a = action_new(action_send_to_next_desktop); - a->data.sendtonextprev.wrap = FALSE; - a->data.sendtonextprev.follow = TRUE; - } else if (!g_ascii_strcasecmp(action, "sendtonextdesktopwrap")) { - a = action_new(action_send_to_next_desktop); - a->data.sendtonextprev.wrap = TRUE; - a->data.sendtonextprev.follow = TRUE; - } else if (!g_ascii_strcasecmp(action, "sendtopreviousdesktop")) { - a = action_new(action_send_to_previous_desktop); - a->data.sendtonextprev.wrap = FALSE; - a->data.sendtonextprev.follow = TRUE; - } else if (!g_ascii_strcasecmp(action, "sendtopreviousdesktopwrap")) { - a = action_new(action_send_to_previous_desktop); - a->data.sendtonextprev.wrap = TRUE; - a->data.sendtonextprev.follow = TRUE; - } else if (!g_ascii_strcasecmp(action, "nextdesktop")) { - a = action_new(action_next_desktop); - a->data.nextprevdesktop.wrap = FALSE; - } else if (!g_ascii_strcasecmp(action, "nextdesktopwrap")) { - a = action_new(action_next_desktop); - a->data.nextprevdesktop.wrap = TRUE; - } else if (!g_ascii_strcasecmp(action, "previousdesktop")) { - a = action_new(action_previous_desktop); - a->data.nextprevdesktop.wrap = FALSE; - } else if (!g_ascii_strcasecmp(action, "previousdesktopwrap")) { - a = action_new(action_previous_desktop); - a->data.nextprevdesktop.wrap = TRUE; - } else if (!g_ascii_strcasecmp(action, "nextdesktopcolumn")) { - a = action_new(action_next_desktop_column); - a->data.nextprevdesktop.wrap = FALSE; - } else if (!g_ascii_strcasecmp(action, "nextdesktopcolumnwrap")) { - a = action_new(action_next_desktop_column); - a->data.nextprevdesktop.wrap = TRUE; - } else if (!g_ascii_strcasecmp(action, "previousdesktopcolumn")) { - a = action_new(action_previous_desktop_column); - a->data.nextprevdesktop.wrap = FALSE; - } else if (!g_ascii_strcasecmp(action, "previousdesktopcolumnwrap")) { - a = action_new(action_previous_desktop_column); - a->data.nextprevdesktop.wrap = TRUE; - } else if (!g_ascii_strcasecmp(action, "nextdesktoprow")) { - a = action_new(action_next_desktop_row); - a->data.nextprevdesktop.wrap = FALSE; - } else if (!g_ascii_strcasecmp(action, "nextdesktoprowwrap")) { - a = action_new(action_next_desktop_row); - a->data.nextprevdesktop.wrap = TRUE; - } else if (!g_ascii_strcasecmp(action, "previousdesktoprow")) { - a = action_new(action_previous_desktop_row); - a->data.nextprevdesktop.wrap = FALSE; - } else if (!g_ascii_strcasecmp(action, "previousdesktoprowwrap")) { - a = action_new(action_previous_desktop_row); - a->data.nextprevdesktop.wrap = TRUE; + if (a && !(a->func == action_move || a->func == action_resize)) { + action_free(a); + a = NULL; } + /* the below types cannot be used with !motion events, or at all with + mouse bindings */ + } else if (a && (a->func == action_move || a->func == action_resize || + a->func == action_execute || a->func == action_desktop || + a->func == action_move_relative_horz || + a->func == action_move_relative_vert || + a->func == action_resize_relative_horz || + a->func == action_resize_relative_vert)) { + action_free(a); + a = NULL; } if (a == NULL) { g_warning("Invalid action '%s' in '%s' on line %d", action, path,