- win = container->scroll;
- component = container->component;
- if (component == NULL || win == NULL)
- return FALSE;
-
- /*
- * Scrolling the view.
- */
- if (event->keyval == GDK_Up) {
- GtkAdjustment *adj = gtk_scrolled_window_get_vadjustment (win);
-
- if (event->state & GDK_CONTROL_MASK)
- delta = adj->step_increment * 3;
- else
- delta = adj->step_increment;
-
- adj->value = CLAMP (adj->value - delta,
- adj->lower, adj->upper - adj->page_size);
-
- gtk_adjustment_value_changed (adj);
- return TRUE;
- } else if (event->keyval == GDK_Down) {
- GtkAdjustment *adj = gtk_scrolled_window_get_vadjustment (win);
-
- if (event->state & GDK_CONTROL_MASK)
- delta = adj->step_increment * 3;
- else
- delta = adj->step_increment;
-
- adj->value = CLAMP (adj->value + delta,
- adj->lower, adj->upper - adj->page_size);
- gtk_adjustment_value_changed (adj);
- return TRUE;
- } else if (event->keyval == GDK_Left) {
- GtkAdjustment *adj = gtk_scrolled_window_get_hadjustment (win);
-
- if (event->state & GDK_CONTROL_MASK)
- delta = adj->step_increment * 3;
- else
- delta = adj->step_increment;
-
- adj->value = CLAMP (adj->value - delta,
- adj->lower, adj->upper - adj->page_size);
- gtk_adjustment_value_changed (adj);
- return TRUE;
- } else if (event->keyval == GDK_Right) {
- GtkAdjustment *adj = gtk_scrolled_window_get_hadjustment (win);
-
- if (event->state & GDK_CONTROL_MASK)
- delta = adj->step_increment * 3;
- else
- delta = adj->step_increment;
-
- adj->value = CLAMP (adj->value + delta,
- adj->lower, adj->upper - adj->page_size);
- gtk_adjustment_value_changed (adj);
- return TRUE;
-
- /*
- * Various shortcuts mapped to verbs.
- */
-
- } else if (event->keyval == GDK_Home) {
- bonobo_view_frame_view_do_verb (component->view_frame, VERB_FIRST);
- return TRUE;
- } else if (event->keyval == GDK_End) {
- bonobo_view_frame_view_do_verb (component->view_frame, VERB_LAST);
- return TRUE;
- } else if (event->keyval == GDK_Page_Down ||
- event->keyval == GDK_Next) {
- bonobo_view_frame_view_do_verb (component->view_frame, VERB_NEXT);
- return TRUE;
- } else if (event->keyval == GDK_Page_Up ||
- event->keyval == GDK_Prior) {
- bonobo_view_frame_view_do_verb (component->view_frame, VERB_PREV);
- return TRUE;
- } else if (event->keyval == GDK_plus ||
- event->keyval == GDK_equal) {
- bonobo_view_frame_view_do_verb (component->view_frame, VERB_Z_IN);
- } else if (event->keyval == GDK_underscore ||
- event->keyval == GDK_minus) {
- bonobo_view_frame_view_do_verb (component->view_frame, VERB_Z_OUT);
- }
- return FALSE;
- }
-}