static gboolean 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; if ((event->state & mask) == 0) { handled = TRUE; switch (event->keyval) { case GDK_KEY_Up: case GDK_KEY_KP_Up: scroll_lines (priv->web_view, -1); break; case GDK_KEY_Down: case GDK_KEY_KP_Down: scroll_lines (priv->web_view, 1); break; case GDK_KEY_Page_Up: case GDK_KEY_KP_Page_Up: scroll_pages (priv->web_view, -1); break; case GDK_KEY_Page_Down: case GDK_KEY_KP_Page_Down: scroll_pages (priv->web_view, 1); break; case GDK_KEY_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_KEY_Return || event->keyval == GDK_KEY_KP_Enter || event->keyval == GDK_KEY_ISO_Enter)) { handled = ephy_find_toolbar_activate_link (toolbar, event->state); } else if ((event->state & mask) == GDK_SHIFT_MASK && (event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter || event->keyval == GDK_KEY_ISO_Enter)) { handled = TRUE; g_signal_emit (toolbar, signals[PREVIOUS], 0); } return handled; }
static void set_focus_cb (EphyWindow *window, GtkWidget *widget, EphyFindToolbar *toolbar) { GtkWidget *wtoolbar = GTK_WIDGET (toolbar); while (widget != NULL && widget != wtoolbar) { widget = gtk_widget_get_parent (widget); } /* if widget == toolbar, the new focus widget is in the toolbar */ if (widget != wtoolbar) { ephy_find_toolbar_request_close (toolbar); } }
static gboolean entry_key_press_event_cb (GtkEntry *entry, GdkEventKey *event, EphyFindToolbar *toolbar) { guint mask = gtk_accelerator_get_default_mod_mask (); gboolean handled = FALSE; if ((event->state & mask) == 0) { handled = TRUE; switch (event->keyval) { case GDK_KEY_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_KEY_Return || event->keyval == GDK_KEY_KP_Enter || event->keyval == GDK_KEY_ISO_Enter)) { handled = ephy_find_toolbar_activate_link (toolbar, event->state); } else if ((event->state & mask) == GDK_SHIFT_MASK && (event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter || event->keyval == GDK_KEY_ISO_Enter)) { handled = TRUE; ephy_find_toolbar_find_previous (toolbar); } return handled; }