diff options
author | François Revol <revol@free.fr> | 2012-12-06 23:35:16 +0100 |
---|---|---|
committer | François Revol <revol@free.fr> | 2012-12-06 23:35:16 +0100 |
commit | 6167b8862d25178fb6fec5f4b9848da758753ee6 (patch) | |
tree | 3c8f8ea9031e51681c4ef2ed46b3d4d64b67f0d3 /gtk/window.c | |
parent | 912b9de92808c43a78680d41bba1ad982e120d86 (diff) | |
download | netsurf-mmu_man/xf86keys.tar.gz netsurf-mmu_man/xf86keys.tar.bz2 |
gtk: Handle Back and Forward keysmmu_man/xf86keys
Those extra keys are available on some keyboards, like on thinkpads.
Diffstat (limited to 'gtk/window.c')
-rw-r--r-- | gtk/window.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gtk/window.c b/gtk/window.c index 8a3a085f3..42344e627 100644 --- a/gtk/window.c +++ b/gtk/window.c @@ -29,6 +29,7 @@ #include "content/hlcache.h" #include "gtk/window.h" #include "desktop/browser_private.h" +#include "desktop/history_core.h" #include "desktop/mouse.h" #include "desktop/options.h" #include "desktop/searchweb.h" @@ -37,6 +38,7 @@ #include "gtk/compat.h" #include "gtk/gui.h" #include "gtk/scaffolding.h" +#include "gtk/search.h" #include "gtk/plotters.h" #include "gtk/schedule.h" #include "gtk/tabs.h" @@ -579,6 +581,32 @@ static gboolean nsgtk_window_keypress_event(GtkWidget *widget, gtk_adjustment_set_value(vscroll, value); break; + case GDK_KEY(Forward): + if (g->bw && history_back_available(g->bw->history)) { + /* clear potential search effects */ + browser_window_search_destroy_context(g->bw); + + nsgtk_search_set_forward_state(true, g->bw); + nsgtk_search_set_back_state(true, g->bw); + + history_forward(g->bw, g->bw->history); + nsgtk_window_update_back_forward(g->scaffold); + } + break; + + case GDK_KEY(Back): + if (g->bw && history_back_available(g->bw->history)) { + /* clear potential search effects */ + browser_window_search_destroy_context(g->bw); + + nsgtk_search_set_forward_state(true, g->bw); + nsgtk_search_set_back_state(true, g->bw); + + history_back(g->bw, g->bw->history); + nsgtk_window_update_back_forward(g->scaffold); + } + break; + default: break; |