diff options
Diffstat (limited to 'src/events.c')
-rw-r--r-- | src/events.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/events.c b/src/events.c index 62d6414..0ae7a98 100644 --- a/src/events.c +++ b/src/events.c @@ -306,4 +306,22 @@ key_to_event(guint keyval, guint state, guint is_modifier, gint mode) { g_free(modifiers); } +/* Transform gdk button events to our own events */ +void +button_to_event(guint buttonval, guint state, gint mode) { + gchar *details; + gchar *modifiers = NULL; + + /* Get modifier state */ + modifiers = get_modifier_mask(state); + + details = g_strdup_printf("Button%d", buttonval); + + send_event(mode == GDK_BUTTON_PRESS ? KEY_PRESS : KEY_RELEASE, NULL, + TYPE_STR, modifiers, TYPE_FORMATTEDSTR, details, NULL); + + g_free(details); + g_free(modifiers); +} + /* vi: set et ts=4: */ |