evince r2860 - in trunk: . shell
- From: carlosgc svn gnome org
- To: svn-commits-list gnome org
- Subject: evince r2860 - in trunk: . shell
- Date: Sat, 26 Jan 2008 15:59:00 +0000 (GMT)
Author: carlosgc
Date: Sat Jan 26 15:59:00 2008
New Revision: 2860
URL: http://svn.gnome.org/viewvc/evince?rev=2860&view=rev
Log:
2008-01-26 Carlos Garcia Campos <carlosgc gnome org>
* shell/ev-view.[ch]: (ev_view_button_release_event),
(ev_view_autoscroll_start), (ev_view_autoscroll_stop):
* shell/ev-window.c: (ev_window_cmd_view_autoscroll),
(ev_window_cmd_escape):
Stop autoscroll when Escape key is pressed. Fixes bug #511635.
Modified:
trunk/ChangeLog
trunk/shell/ev-view.c
trunk/shell/ev-view.h
trunk/shell/ev-window.c
Modified: trunk/shell/ev-view.c
==============================================================================
--- trunk/shell/ev-view.c (original)
+++ trunk/shell/ev-view.c Sat Jan 26 15:59:00 2008
@@ -3135,12 +3135,7 @@
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 @@
}
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
Modified: trunk/shell/ev-view.h
==============================================================================
--- trunk/shell/ev-view.h (original)
+++ trunk/shell/ev-view.h Sat Jan 26 15:59:00 2008
@@ -144,7 +144,8 @@
void ev_view_update_view_size (EvView *view, GtkScrolledWindow *scrolled_window);
-void ev_view_autoscroll (EvView *view);
+void ev_view_autoscroll_start (EvView *view);
+void ev_view_autoscroll_stop (EvView *view);
G_END_DECLS
Modified: trunk/shell/ev-window.c
==============================================================================
--- trunk/shell/ev-window.c (original)
+++ trunk/shell/ev-window.c Sat Jan 26 15:59:00 2008
@@ -3302,7 +3302,7 @@
static void
ev_window_cmd_view_autoscroll (GtkAction *action, EvWindow *ev_window)
{
- ev_view_autoscroll (EV_VIEW (ev_window->priv->view));
+ ev_view_autoscroll_start (EV_VIEW (ev_window->priv->view));
}
static void
@@ -3505,6 +3505,8 @@
{
GtkWidget *widget;
+ ev_view_autoscroll_stop (window->priv->view);
+
widget = gtk_window_get_focus (GTK_WINDOW (window));
if (widget && gtk_widget_get_ancestor (widget, EGG_TYPE_FIND_BAR)) {
update_chrome_flag (window, EV_CHROME_FINDBAR, FALSE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]