Advertisement
mmu_man

NetSurf XF86Back/Forward patch

Dec 6th, 2012
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.00 KB | None | 0 0
  1. From 6167b8862d25178fb6fec5f4b9848da758753ee6 Mon Sep 17 00:00:00 2001
  2. From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= <revol@free.fr>
  3. Date: Thu, 6 Dec 2012 23:35:16 +0100
  4. Subject: [PATCH] gtk: Handle Back and Forward keys
  5.  
  6. Those extra keys are available on some keyboards, like on thinkpads.
  7. ---
  8. gtk/scaffolding.c |    2 +-
  9.  gtk/scaffolding.h |    1 +
  10.  gtk/window.c      |   28 ++++++++++++++++++++++++++++
  11.  3 files changed, 30 insertions(+), 1 deletion(-)
  12.  
  13. diff --git a/gtk/scaffolding.c b/gtk/scaffolding.c
  14. index 91288a2..687ade8 100644
  15. --- a/gtk/scaffolding.c
  16. +++ b/gtk/scaffolding.c
  17. @@ -313,7 +313,7 @@ void nsgtk_scaffolding_destroy(nsgtk_scaffolding *g)
  18.  /**
  19.   * Update the back and forward button sensitivity.
  20.   */
  21. -static void nsgtk_window_update_back_forward(struct gtk_scaffolding *g)
  22. +void nsgtk_window_update_back_forward(struct gtk_scaffolding *g)
  23.  {
  24.     int width, height;
  25.     struct browser_window *bw = nsgtk_get_browser_window(g->top_level);
  26. diff --git a/gtk/scaffolding.h b/gtk/scaffolding.h
  27. index cf75f0a..0781584 100644
  28. --- a/gtk/scaffolding.h
  29. +++ b/gtk/scaffolding.h
  30. @@ -144,6 +144,7 @@ void nsgtk_scaffolding_set_top_level(struct gui_window *g);
  31.  
  32.  void nsgtk_scaffolding_destroy(nsgtk_scaffolding *g);
  33.  
  34. +void nsgtk_window_update_back_forward(struct gtk_scaffolding *g);
  35.  void nsgtk_scaffolding_set_sensitivity(struct gtk_scaffolding *g);
  36.  void nsgtk_scaffolding_initial_sensitivity(struct gtk_scaffolding *g);
  37.  void nsgtk_scaffolding_popup_menu(struct gtk_scaffolding *g, gdouble x,
  38. diff --git a/gtk/window.c b/gtk/window.c
  39. index 8a3a085..42344e6 100644
  40. --- a/gtk/window.c
  41. +++ b/gtk/window.c
  42. @@ -29,6 +29,7 @@
  43.  #include "content/hlcache.h"
  44.  #include "gtk/window.h"
  45.  #include "desktop/browser_private.h"
  46. +#include "desktop/history_core.h"
  47.  #include "desktop/mouse.h"
  48.  #include "desktop/options.h"
  49.  #include "desktop/searchweb.h"
  50. @@ -37,6 +38,7 @@
  51.  #include "gtk/compat.h"
  52.  #include "gtk/gui.h"
  53.  #include "gtk/scaffolding.h"
  54. +#include "gtk/search.h"
  55.  #include "gtk/plotters.h"
  56.  #include "gtk/schedule.h"
  57.  #include "gtk/tabs.h"
  58. @@ -579,6 +581,32 @@ static gboolean nsgtk_window_keypress_event(GtkWidget *widget,
  59.         gtk_adjustment_set_value(vscroll, value);
  60.         break;
  61.  
  62. +   case GDK_KEY(Forward):
  63. +       if (g->bw && history_back_available(g->bw->history)) {
  64. +           /* clear potential search effects */
  65. +           browser_window_search_destroy_context(g->bw);
  66. +
  67. +           nsgtk_search_set_forward_state(true, g->bw);
  68. +           nsgtk_search_set_back_state(true, g->bw);
  69. +
  70. +           history_forward(g->bw, g->bw->history);
  71. +           nsgtk_window_update_back_forward(g->scaffold);
  72. +       }
  73. +       break;
  74. +
  75. +   case GDK_KEY(Back):
  76. +       if (g->bw && history_back_available(g->bw->history)) {
  77. +           /* clear potential search effects */
  78. +           browser_window_search_destroy_context(g->bw);
  79. +
  80. +           nsgtk_search_set_forward_state(true, g->bw);
  81. +           nsgtk_search_set_back_state(true, g->bw);
  82. +
  83. +           history_back(g->bw, g->bw->history);
  84. +           nsgtk_window_update_back_forward(g->scaffold);
  85. +       }
  86. +       break;
  87. +
  88.     default:
  89.         break;
  90.  
  91. --
  92. 1.7.10.4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement