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; }
void keyboard_scroll_command(scan_code_set3 scan_code, key_state state){ //scroll single lines if(state == KEY_DOWN){ switch(scan_code){ case SCS3_UP: scroll_lines(-1); break; case SCS3_DOWN: scroll_lines(1); break; case SCS3_PAGEUP: scroll_pages(-1); break; case SCS3_PAGEDOWN: scroll_pages(1); break; } } }