Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From 6167b8862d25178fb6fec5f4b9848da758753ee6 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= <revol@free.fr>
- Date: Thu, 6 Dec 2012 23:35:16 +0100
- Subject: [PATCH] gtk: Handle Back and Forward keys
- Those extra keys are available on some keyboards, like on thinkpads.
- ---
- gtk/scaffolding.c | 2 +-
- gtk/scaffolding.h | 1 +
- gtk/window.c | 28 ++++++++++++++++++++++++++++
- 3 files changed, 30 insertions(+), 1 deletion(-)
- diff --git a/gtk/scaffolding.c b/gtk/scaffolding.c
- index 91288a2..687ade8 100644
- --- a/gtk/scaffolding.c
- +++ b/gtk/scaffolding.c
- @@ -313,7 +313,7 @@ void nsgtk_scaffolding_destroy(nsgtk_scaffolding *g)
- /**
- * Update the back and forward button sensitivity.
- */
- -static void nsgtk_window_update_back_forward(struct gtk_scaffolding *g)
- +void nsgtk_window_update_back_forward(struct gtk_scaffolding *g)
- {
- int width, height;
- struct browser_window *bw = nsgtk_get_browser_window(g->top_level);
- diff --git a/gtk/scaffolding.h b/gtk/scaffolding.h
- index cf75f0a..0781584 100644
- --- a/gtk/scaffolding.h
- +++ b/gtk/scaffolding.h
- @@ -144,6 +144,7 @@ void nsgtk_scaffolding_set_top_level(struct gui_window *g);
- void nsgtk_scaffolding_destroy(nsgtk_scaffolding *g);
- +void nsgtk_window_update_back_forward(struct gtk_scaffolding *g);
- void nsgtk_scaffolding_set_sensitivity(struct gtk_scaffolding *g);
- void nsgtk_scaffolding_initial_sensitivity(struct gtk_scaffolding *g);
- void nsgtk_scaffolding_popup_menu(struct gtk_scaffolding *g, gdouble x,
- diff --git a/gtk/window.c b/gtk/window.c
- index 8a3a085..42344e6 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;
- --
- 1.7.10.4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement