summaryrefslogtreecommitdiff
path: root/plugins/mouse
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/mouse')
-rw-r--r--plugins/mouse/mouse.c5
-rw-r--r--plugins/mouse/mouse.h2
-rw-r--r--plugins/mouse/translate.c5
3 files changed, 9 insertions, 3 deletions
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);