aboutsummaryrefslogtreecommitdiffstats
path: root/src/ephy-find-toolbar.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ephy-find-toolbar.c')
-rw-r--r--src/ephy-find-toolbar.c31
1 files changed, 28 insertions, 3 deletions
diff --git a/src/ephy-find-toolbar.c b/src/ephy-find-toolbar.c
index ba2a5e601..f1632bfe8 100644
--- a/src/ephy-find-toolbar.c
+++ b/src/ephy-find-toolbar.c
@@ -243,14 +243,39 @@ entry_key_press_event_cb (GtkEntry *entry,
GdkEventKey *event,
EphyFindToolbar *toolbar)
{
+ EphyFindToolbarPrivate *priv = toolbar->priv;
guint mask = gtk_accelerator_get_default_mod_mask ();
gboolean handled = FALSE;
- /* Hide the toolbar when ESC is pressed */
- if ((event->state & mask) == 0 && event->keyval == GDK_Escape)
+ if ((event->state & mask) == 0)
{
- ephy_find_toolbar_request_close (toolbar);
handled = TRUE;
+ switch (event->keyval)
+ {
+ case GDK_Up:
+ case GDK_KP_Up:
+ ephy_embed_scroll (priv->embed, -1);
+ break;
+ case GDK_Down:
+ case GDK_KP_Down:
+ ephy_embed_scroll (priv->embed, 1);
+ break;
+ case GDK_Page_Up:
+ case GDK_KP_Page_Up:
+ ephy_embed_page_scroll (priv->embed, -1);
+ break;
+ case GDK_Page_Down:
+ case GDK_KP_Page_Down:
+ ephy_embed_page_scroll (priv->embed, 1);
+ break;
+ case GDK_Escape:
+ /* Hide the toolbar when ESC is pressed */
+ ephy_find_toolbar_request_close (toolbar);
+ break;
+ default:
+ handled = FALSE;
+ break;
+ }
}
else if ((event->state & mask) == GDK_CONTROL_MASK &&
(event->keyval == GDK_Return || event->keyval == GDK_KP_Enter))