diff options
author | Vincent Sanders <vince@kyllikki.org> | 2021-01-02 09:49:25 +0000 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2021-01-02 09:49:25 +0000 |
commit | 25c21e5fefc554c1941aa1a99b5b7a6c6ca67589 (patch) | |
tree | fd00dd873b0a6afd5f48627cf4da698063a5871b /frontends | |
parent | 434f6c3fe7d1d2c6a3e6ae6338608a4a4421ab1b (diff) | |
download | netsurf-25c21e5fefc554c1941aa1a99b5b7a6c6ca67589.tar.gz netsurf-25c21e5fefc554c1941aa1a99b5b7a6c6ca67589.tar.bz2 |
add back/forward mouse button processing to GTK frontend
Diffstat (limited to 'frontends')
-rw-r--r-- | frontends/gtk/corewindow.c | 1 | ||||
-rw-r--r-- | frontends/gtk/window.c | 17 |
2 files changed, 16 insertions, 2 deletions
diff --git a/frontends/gtk/corewindow.c b/frontends/gtk/corewindow.c index b3568c602..baa4cf155 100644 --- a/frontends/gtk/corewindow.c +++ b/frontends/gtk/corewindow.c @@ -87,6 +87,7 @@ static browser_mouse_state nsgtk_cw_gdkbutton_to_nsstate(GdkEventButton *event) } if (event->state & GDK_MOD1_MASK) { + /* usually alt */ ms |= BROWSER_MOUSE_MOD_3; } diff --git a/frontends/gtk/window.c b/frontends/gtk/window.c index f0a53a66f..f5c87ef87 100644 --- a/frontends/gtk/window.c +++ b/frontends/gtk/window.c @@ -391,12 +391,25 @@ nsgtk_window_button_release_event(GtkWidget *widget, bool shift = event->state & GDK_SHIFT_MASK; bool ctrl = event->state & GDK_CONTROL_MASK; + switch (event->button) { + case 8: + nsgtk_toolbar_item_activate(g->toolbar, BACK_BUTTON); + break; + case 9: + nsgtk_toolbar_item_activate(g->toolbar, FORWARD_BUTTON); + break; + default: + NSLOG(netsurf, DEBUG, "event button %d", event->button); + break; + } + /* If the mouse state is PRESS then we are waiting for a release to emit * a click event, otherwise just reset the state to nothing */ - if (g->mouse.state & BROWSER_MOUSE_PRESS_1) + if (g->mouse.state & BROWSER_MOUSE_PRESS_1) { g->mouse.state ^= (BROWSER_MOUSE_PRESS_1 | BROWSER_MOUSE_CLICK_1); - else if (g->mouse.state & BROWSER_MOUSE_PRESS_2) + } else if (g->mouse.state & BROWSER_MOUSE_PRESS_2) { g->mouse.state ^= (BROWSER_MOUSE_PRESS_2 | BROWSER_MOUSE_CLICK_2); + } /* Handle modifiers being removed */ if (g->mouse.state & BROWSER_MOUSE_MOD_1 && !shift) |