X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-view.c;h=fa9fbd8dc65f9ab894e0bef07ee14268ce07bd98;hb=8fdc90f6d511cd854fdfdf4c5d7066a2bbe00c94;hp=286350678557723b4d2c51367f53ec406b3c3f87;hpb=a6fd058a015e4b95fd2f12c1c6a2ecadde65f6d8;p=evince.git diff --git a/shell/ev-view.c b/shell/ev-view.c index 28635067..fa9fbd8d 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -3135,12 +3135,7 @@ ev_view_button_release_event (GtkWidget *widget, view->image_dnd_info.in_drag = FALSE; if (view->scroll_info.autoscrolling) { - view->scroll_info.autoscrolling = FALSE; - if (view->scroll_info.timeout_id) { - g_source_remove (view->scroll_info.timeout_id); - view->scroll_info.timeout_id = 0; - } - ev_view_handle_cursor_over_xy (view, event->x, event->y); + ev_view_autoscroll_stop (view); view->pressed_button = -1; return TRUE; @@ -4467,10 +4462,42 @@ ev_view_autoscroll_cb (EvView *view) } void -ev_view_autoscroll (EvView *view) +ev_view_autoscroll_start (EvView *view) { + gint x, y; + + g_return_if_fail (EV_IS_VIEW (view)); + + if (view->scroll_info.autoscrolling) + return; + view->scroll_info.autoscrolling = TRUE; - view->scroll_info.timeout_id = g_timeout_add (20, (GSourceFunc)(ev_view_autoscroll_cb), view); + view->scroll_info.timeout_id = + g_timeout_add (20, (GSourceFunc)ev_view_autoscroll_cb, + view); + + gtk_widget_get_pointer (GTK_WIDGET (view), &x, &y); + ev_view_handle_cursor_over_xy (view, x, y); +} + +void +ev_view_autoscroll_stop (EvView *view) +{ + gint x, y; + + g_return_if_fail (EV_IS_VIEW (view)); + + if (!view->scroll_info.autoscrolling) + return; + + view->scroll_info.autoscrolling = FALSE; + if (view->scroll_info.timeout_id) { + g_source_remove (view->scroll_info.timeout_id); + view->scroll_info.timeout_id = 0; + } + + gtk_widget_get_pointer (GTK_WIDGET (view), &x, &y); + ev_view_handle_cursor_over_xy (view, x, y); } void