diff options
author | Jesse Luehrs <doy@tozt.net> | 2014-04-23 20:43:29 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2014-04-23 20:43:29 -0400 |
commit | 21a0a5cafafe81f4ba7271dcb0928eb9ffaff032 (patch) | |
tree | 73d3396dac67181f08dc64367683b60588cb9d9b | |
parent | bc8e8c99954b49b1042b87eb5a0a89ad50813b19 (diff) | |
download | runes-21a0a5cafafe81f4ba7271dcb0928eb9ffaff032.tar.gz runes-21a0a5cafafe81f4ba7271dcb0928eb9ffaff032.zip |
also allow middle click to paste
-rw-r--r-- | src/window-xlib.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/window-xlib.c b/src/window-xlib.c index c6c5e19..4962682 100644 --- a/src/window-xlib.c +++ b/src/window-xlib.c @@ -98,6 +98,8 @@ static struct function_key *runes_window_backend_find_key_sequence( RunesTerm *t, KeySym sym); static void runes_window_backend_handle_button_event( RunesTerm *t, XButtonEvent *e); +static int runes_window_backend_handle_builtin_button_press( + RunesTerm *t, XButtonEvent *e); static void runes_window_backend_handle_expose_event( RunesTerm *t, XExposeEvent *e); static void runes_window_backend_handle_configure_event( @@ -651,6 +653,12 @@ static struct function_key *runes_window_backend_find_key_sequence( static void runes_window_backend_handle_button_event( RunesTerm *t, XButtonEvent *e) { + if (e->state & ShiftMask) { + if (runes_window_backend_handle_builtin_button_press(t, e)) { + return; + } + } + if (t->mouse_reporting_press_release) { char response[7]; char status = 0; @@ -709,6 +717,28 @@ static void runes_window_backend_handle_button_event( ' ' + (e->y / t->fonty + 1)); runes_pty_backend_write(t, response, 6); } + else { + runes_window_backend_handle_builtin_button_press(t, e); + } +} + +static int runes_window_backend_handle_builtin_button_press( + RunesTerm *t, XButtonEvent *e) +{ + if (e->type == ButtonRelease) { + return 0; + } + + switch (e->button) { + case Button2: + runes_window_backend_paste(t, e->time); + return 1; + break; + default: + break; + } + + return 0; } static void runes_window_backend_handle_expose_event( |