diff options
| -rw-r--r-- | data/rc3 | 1 | ||||
| -rw-r--r-- | plugins/mouse/mouse.c | 5 | ||||
| -rw-r--r-- | plugins/mouse/mouse.h | 2 | ||||
| -rw-r--r-- | plugins/mouse/translate.c | 5 |
4 files changed, 10 insertions, 3 deletions
@@ -111,6 +111,7 @@ <mouse> <dragThreshold>3</dragThreshold> <doubleClickTime>200</doubleClickTime> + <leftHanded>no</leftHanded> <context name="frame"> <mousebind button="A-Left" action="drag"> diff --git a/plugins/mouse/mouse.c b/plugins/mouse/mouse.c index a2b3d7e0..1afc43e6 100644 --- a/plugins/mouse/mouse.c +++ b/plugins/mouse/mouse.c @@ -13,7 +13,7 @@ static int threshold; static int dclicktime; - +gboolean mouse_lefthand; /* <context name="Titlebar"> @@ -36,6 +36,8 @@ static void parse_xml(xmlDocPtr doc, xmlNodePtr node, void *d) threshold = parse_int(doc, n); if ((n = parse_find_node("doubleClickTime", node))) dclicktime = parse_int(doc, n); + if ((n = parse_find_node("leftHanded", node))) + mouse_lefthand = parse_bool(doc, n); n = parse_find_node("context", node); while (n) { @@ -99,6 +101,7 @@ void plugin_setup_config() { threshold = 3; dclicktime = 200; + mouse_lefthand = FALSE; parse_register("mouse", parse_xml, NULL); } diff --git a/plugins/mouse/mouse.h b/plugins/mouse/mouse.h index 408ae964..83ce9a77 100644 --- a/plugins/mouse/mouse.h +++ b/plugins/mouse/mouse.h @@ -18,6 +18,8 @@ typedef struct { GSList *actions[NUM_MOUSEACTION]; /* lists of Action pointers */ } MouseBinding; +extern gboolean mouse_lefthand; + gboolean mbind(char *buttonstr, char *contextstr, MouseAction mact, Action *action); diff --git a/plugins/mouse/translate.c b/plugins/mouse/translate.c index 9f042dd9..d849ed44 100644 --- a/plugins/mouse/translate.c +++ b/plugins/mouse/translate.c @@ -1,4 +1,5 @@ #include "../../kernel/openbox.h" +#include "mouse.h" #include <glib.h> #include <string.h> #include <stdlib.h> @@ -45,9 +46,9 @@ gboolean translate_button(char *str, guint *state, guint *button) } /* figure out the button */ - if (!g_ascii_strcasecmp("Left", l)) *button = 1; + if (!g_ascii_strcasecmp("Left", l)) *button = mouse_lefthand ? 3 : 1; else if (!g_ascii_strcasecmp("Middle", l)) *button = 2; - else if (!g_ascii_strcasecmp("Right", l)) *button = 3; + else if (!g_ascii_strcasecmp("Right", l)) *button = mouse_lefthand ? 1 : 3; else if (!g_ascii_strcasecmp("Up", l)) *button = 4; else if (!g_ascii_strcasecmp("Down", l)) *button = 5; else if (!g_ascii_strncasecmp("Button", l, 6)) *button = atoi(l+6); |
