X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-view.c;h=285d52bd39963bb3aa90e3fd3af26345ae25976b;hb=0cded54c0376c9b38e1070b53759245d720f3cec;hp=1f089fcf3ed41a95ddcdcbfb9de9352cfb887235;hpb=9d14fa7ac4d25ad564e2082c15156f76ee4f3815;p=evince.git diff --git a/shell/ev-view.c b/shell/ev-view.c index 1f089fcf..285d52bd 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -1706,10 +1706,10 @@ selection_update_idle_cb (EvView *view) static gboolean selection_scroll_timeout_cb (EvView *view) { - gint y, shift = 0; + gint x, y, shift = 0; GtkWidget *widget = GTK_WIDGET (view); - gtk_widget_get_pointer (widget, NULL, &y); + gtk_widget_get_pointer (widget, &x, &y); if (y > widget->allocation.height) { shift = (y - widget->allocation.height) / 2; @@ -1723,6 +1723,20 @@ selection_scroll_timeout_cb (EvView *view) view->vadjustment->lower, view->vadjustment->upper - view->vadjustment->page_size)); + + if (x > widget->allocation.width) { + shift = (x - widget->allocation.width) / 2; + } else if (x < 0) { + shift = x / 2; + } + + if (shift) + gtk_adjustment_set_value (view->hadjustment, + CLAMP (view->hadjustment->value + shift, + view->hadjustment->lower, + view->hadjustment->upper - + view->hadjustment->page_size)); + return TRUE; }