diff -ur epdfview-0.1.4-orig/src/gtk/MainView.cxx epdfview-0.1.4/src/gtk/MainView.cxx
|
old
|
new
|
|
| 109 | 109 | N_("Go to the first page"), |
| 110 | 110 | G_CALLBACK (main_window_go_to_first_page_cb) }, |
| 111 | 111 | |
| 112 | | { "GoToNextPage", GTK_STOCK_GO_FORWARD, N_("_Next Page"), "Page_Down", |
| | 112 | { "GoToNextPage", GTK_STOCK_GO_FORWARD, N_("_Next Page"), "<Shift>Page_Down", |
| 113 | 113 | N_("Go to the next page"), |
| 114 | 114 | G_CALLBACK (main_window_go_to_next_page_cb) }, |
| 115 | 115 | |
| 116 | | { "GoToPreviousPage", GTK_STOCK_GO_BACK, N_("_Previous Page"), "Page_Up", |
| | 116 | { "GoToPreviousPage", GTK_STOCK_GO_BACK, N_("_Previous Page"), "<Shift>Page_Up", |
| 117 | 117 | N_("Go to the previous page"), |
| 118 | 118 | G_CALLBACK (main_window_go_to_previous_page_cb) }, |
| 119 | 119 | |
diff -ur epdfview-0.1.4-orig/src/gtk/PageView.cxx epdfview-0.1.4/src/gtk/PageView.cxx
|
old
|
new
|
|
| 18 | 18 | #include <config.h> |
| 19 | 19 | #include <gettext.h> |
| 20 | 20 | #include <gtk/gtk.h> |
| | 21 | #include <gdk/gdkkeysyms.h> |
| 21 | 22 | #include <epdfview.h> |
| 22 | 23 | #include "PageView.h" |
| 23 | 24 | |
| … |
… |
|
| 38 | 39 | static void page_view_resized_cb (GtkWidget *, GtkAllocation *, gpointer); |
| 39 | 40 | static gboolean page_view_scrolled_cb (GtkWidget *widget, GdkEventScroll *, |
| 40 | 41 | gpointer); |
| | 42 | static gboolean page_view_keypress_cb (GtkWidget *widget, GdkEventKey *, |
| | 43 | gpointer); |
| 41 | 44 | |
| 42 | 45 | |
| 43 | 46 | PageView::PageView (): |
| … |
… |
|
| 216 | 219 | // When scrolling. |
| 217 | 220 | g_signal_connect (G_OBJECT (m_PageScroll), "scroll-event", |
| 218 | 221 | G_CALLBACK (page_view_scrolled_cb), pter); |
| | 222 | g_signal_connect (G_OBJECT (m_PageScroll), "key-press-event", |
| | 223 | G_CALLBACK (page_view_keypress_cb), pter); |
| 219 | 224 | |
| 220 | 225 | // And connect the motion, button press and release events. |
| 221 | 226 | gtk_widget_add_events (m_EventBox, GDK_POINTER_MOTION_MASK | |
| … |
… |
|
| 408 | 413 | view->getPagePosition (event_x, event_y, &x, &y); |
| 409 | 414 | view->getPresenter ()->mouseButtonPressed (event->button, x, y); |
| 410 | 415 | |
| | 416 | gtk_widget_grab_focus(view->getTopWidget()); |
| | 417 | |
| 411 | 418 | return TRUE; |
| 412 | 419 | } |
| 413 | 420 | |
| … |
… |
|
| 525 | 532 | |
| 526 | 533 | return FALSE; |
| 527 | 534 | } |
| | 535 | |
| | 536 | |
| | 537 | static gboolean |
| | 538 | page_view_keypress_cb(GtkWidget *widget, GdkEventKey *event, gpointer data) |
| | 539 | { |
| | 540 | GtkScrollType direction; |
| | 541 | gboolean horizontal = FALSE; |
| | 542 | PagePter *pter = (PagePter *)data; |
| | 543 | |
| | 544 | GtkAdjustment *adjustment = |
| | 545 | gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (widget)); |
| | 546 | gdouble position = gtk_adjustment_get_value (adjustment); |
| | 547 | |
| | 548 | if(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) |
| | 549 | { |
| | 550 | return FALSE; |
| | 551 | } |
| | 552 | |
| | 553 | switch(event->keyval) |
| | 554 | { |
| | 555 | case GDK_Left: |
| | 556 | case GDK_KP_Left: |
| | 557 | direction = GTK_SCROLL_STEP_LEFT; |
| | 558 | horizontal = TRUE; |
| | 559 | break; |
| | 560 | case GDK_Right: |
| | 561 | case GDK_KP_Right: |
| | 562 | horizontal = TRUE; |
| | 563 | direction = GTK_SCROLL_STEP_RIGHT; |
| | 564 | break; |
| | 565 | case GDK_Up: |
| | 566 | case GDK_KP_Up: |
| | 567 | direction = GTK_SCROLL_STEP_UP; |
| | 568 | break; |
| | 569 | case GDK_Down: |
| | 570 | case GDK_KP_Down: |
| | 571 | direction = GTK_SCROLL_STEP_DOWN; |
| | 572 | break; |
| | 573 | case GDK_Page_Up: |
| | 574 | case GDK_KP_Page_Up: |
| | 575 | if(position == adjustment->lower) |
| | 576 | { |
| | 577 | pter->scrollToPreviousPage (); |
| | 578 | return TRUE; |
| | 579 | } |
| | 580 | direction = GTK_SCROLL_START; |
| | 581 | break; |
| | 582 | case GDK_Page_Down: |
| | 583 | case GDK_KP_Page_Down: |
| | 584 | if(position == ( adjustment->upper - adjustment->page_size)) |
| | 585 | { |
| | 586 | pter->scrollToNextPage (); |
| | 587 | return TRUE; |
| | 588 | } |
| | 589 | direction = GTK_SCROLL_END; |
| | 590 | break; |
| | 591 | default: |
| | 592 | return FALSE; |
| | 593 | } |
| | 594 | |
| | 595 | g_signal_emit_by_name(G_OBJECT(widget), "scroll-child", direction, horizontal); |
| | 596 | return TRUE; |
| | 597 | } |