]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-view.c
Updated Czech translation.
[evince.git] / shell / ev-view.c
index 636e0f566b4dfe04b163fc666d6efccfa35a7176..b615b6c4b0bc92ea6f4a4cbc9d5acbcf8956266b 100644 (file)
@@ -620,6 +620,10 @@ ev_view_copy (EvView *ev_view)
        GtkClipboard *clipboard;
        char *text;
 
+       if (!ev_document_can_get_text (ev_view->document)) {
+               return;
+       }
+
        g_mutex_lock (EV_DOC_MUTEX);
        text = ev_document_get_text (ev_view->document,
                                     ev_view->current_page,
@@ -641,6 +645,10 @@ ev_view_primary_get_cb (GtkClipboard     *clipboard,
        EvView *ev_view = EV_VIEW (data);
        char *text;
 
+       if (!ev_document_can_get_text (ev_view->document)) {
+               return;
+       }
+
        g_mutex_lock (EV_DOC_MUTEX);
        text = ev_document_get_text (ev_view->document,
                                     ev_view->current_page,
@@ -969,10 +977,10 @@ ev_view_set_scroll_adjustments (EvView *view,
 }
 
 static void
-add_scroll_binding (GtkBindingSet  *binding_set,
-                   guint           keyval,
-                   GtkScrollType   scroll,
-                   gboolean        horizontal)
+add_scroll_binding_keypad (GtkBindingSet  *binding_set,
+                          guint           keyval,
+                          GtkScrollType   scroll,
+                          gboolean        horizontal)
 {
   guint keypad_keyval = keyval - GDK_Left + GDK_KP_Left;
 
@@ -986,6 +994,23 @@ add_scroll_binding (GtkBindingSet  *binding_set,
                                G_TYPE_BOOLEAN, horizontal);
 }
 
+static void
+add_scroll_binding_shifted (GtkBindingSet  *binding_set,
+                           guint           keyval,
+                           GtkScrollType   scroll_normal,
+                           GtkScrollType   scroll_shifted,
+                           gboolean        horizontal)
+{
+  gtk_binding_entry_add_signal (binding_set, keyval, 0,
+                                "scroll_view", 2,
+                                GTK_TYPE_SCROLL_TYPE, scroll_normal,
+                               G_TYPE_BOOLEAN, horizontal);
+  gtk_binding_entry_add_signal (binding_set, keyval, GDK_SHIFT_MASK,
+                                "scroll_view", 2,
+                                GTK_TYPE_SCROLL_TYPE, scroll_shifted,
+                               G_TYPE_BOOLEAN, horizontal);
+}
+
 static void
 ev_view_jump (EvView        *view,
              GtkScrollType  scroll)
@@ -1178,16 +1203,16 @@ ev_view_class_init (EvViewClass *class)
 
        binding_set = gtk_binding_set_by_class (class);
 
-       add_scroll_binding (binding_set, GDK_Left,  GTK_SCROLL_STEP_BACKWARD, TRUE);
-       add_scroll_binding (binding_set, GDK_Right, GTK_SCROLL_STEP_FORWARD,  TRUE);
-       add_scroll_binding (binding_set, GDK_Up,    GTK_SCROLL_STEP_BACKWARD, FALSE);
-       add_scroll_binding (binding_set, GDK_Down,  GTK_SCROLL_STEP_FORWARD,  FALSE);
+       add_scroll_binding_keypad (binding_set, GDK_Left,  GTK_SCROLL_STEP_BACKWARD, TRUE);
+       add_scroll_binding_keypad (binding_set, GDK_Right, GTK_SCROLL_STEP_FORWARD,  TRUE);
+       add_scroll_binding_keypad (binding_set, GDK_Up,    GTK_SCROLL_STEP_BACKWARD, FALSE);
+       add_scroll_binding_keypad (binding_set, GDK_Down,  GTK_SCROLL_STEP_FORWARD,  FALSE);
 
-       add_scroll_binding (binding_set, GDK_Page_Up,   GTK_SCROLL_PAGE_BACKWARD, FALSE);
-       add_scroll_binding (binding_set, GDK_Page_Down, GTK_SCROLL_PAGE_FORWARD,  FALSE);
+       add_scroll_binding_keypad (binding_set, GDK_Page_Up,   GTK_SCROLL_PAGE_BACKWARD, FALSE);
+       add_scroll_binding_keypad (binding_set, GDK_Page_Down, GTK_SCROLL_PAGE_FORWARD,  FALSE);
 
-       add_scroll_binding (binding_set, GDK_space, EV_SCROLL_PAGE_FORWARD, FALSE);
-       add_scroll_binding (binding_set, GDK_BackSpace, EV_SCROLL_PAGE_BACKWARD, FALSE);
+       add_scroll_binding_shifted (binding_set, GDK_space, EV_SCROLL_PAGE_FORWARD, EV_SCROLL_PAGE_BACKWARD, FALSE);
+       add_scroll_binding_shifted (binding_set, GDK_BackSpace, EV_SCROLL_PAGE_BACKWARD, EV_SCROLL_PAGE_FORWARD, FALSE);
 }
 
 static void