aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/events.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/events.c')
-rw-r--r--src/events.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/events.c b/src/events.c
index 0ae7a98..3074b34 100644
--- a/src/events.c
+++ b/src/events.c
@@ -310,12 +310,25 @@ key_to_event(guint keyval, guint state, guint is_modifier, gint mode) {
void
button_to_event(guint buttonval, guint state, gint mode) {
gchar *details;
+ const char *reps;
gchar *modifiers = NULL;
/* Get modifier state */
modifiers = get_modifier_mask(state);
- details = g_strdup_printf("Button%d", buttonval);
+ switch (mode) {
+ case GDK_2BUTTON_PRESS:
+ reps = "2";
+ break;
+ case GDK_3BUTTON_PRESS:
+ reps = "3";
+ break;
+ default:
+ reps = "";
+ break;
+ }
+
+ details = g_strdup_printf("%sButton%d", reps, buttonval);
send_event(mode == GDK_BUTTON_PRESS ? KEY_PRESS : KEY_RELEASE, NULL,
TYPE_STR, modifiers, TYPE_FORMATTEDSTR, details, NULL);