From: Nickolay V. Shmyrev Date: Thu, 20 Dec 2007 22:31:05 +0000 (+0000) Subject: Scroll pages in page entry with mouse wheel. Fixes bug #324122. Thanks to X-Git-Tag: EVINCE_2_21_90~93 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=bc1469dfae8b36ed73052b1cbcdaed3c2fcaf9a2;p=evince.git Scroll pages in page entry with mouse wheel. Fixes bug #324122. Thanks to 2007-12-21 Nickolay V. Shmyrev * shell/ev-page-action.c: (page_scroll_cb), (create_tool_item): Scroll pages in page entry with mouse wheel. Fixes bug #324122. Thanks to David Turner . svn path=/trunk/; revision=2776 --- diff --git a/ChangeLog b/ChangeLog index c4a3cceb..3ead0d69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-12-21 Nickolay V. Shmyrev + + * shell/ev-page-action.c: (page_scroll_cb), (create_tool_item): + + Scroll pages in page entry with mouse wheel. Fixes bug + #324122. Thanks to David Turner . + 2007-12-20 Carlos Garcia Campos * backend/dvi/Makefile.am: diff --git a/shell/ev-page-action.c b/shell/ev-page-action.c index 0571b6d1..aab86ec7 100644 --- a/shell/ev-page-action.c +++ b/shell/ev-page-action.c @@ -143,6 +143,21 @@ activate_cb (GtkWidget *entry, GtkAction *action) g_free (page_label); } +static gboolean page_scroll_cb(GtkWidget *widget, GdkEventScroll *event, EvPageAction* action) +{ + gint pageno; + + pageno = ev_page_cache_get_current_page (action->priv->page_cache); + if ((event->direction == GDK_SCROLL_DOWN) && + (pageno < ev_page_cache_get_n_pages(action->priv->page_cache) - 1)) + pageno++; + if ((event->direction == GDK_SCROLL_UP) && (pageno > 0)) + pageno--; + ev_page_cache_set_current_page (action->priv->page_cache, pageno); + + return TRUE; +} + static GtkWidget * create_tool_item (GtkAction *action) { @@ -157,6 +172,8 @@ create_tool_item (GtkAction *action) gtk_box_set_spacing (GTK_BOX (hbox), 6); proxy->entry = gtk_entry_new (); + g_signal_connect(proxy->entry, "scroll-event",G_CALLBACK(page_scroll_cb),action); + gtk_widget_add_events(GTK_WIDGET(proxy->entry),GDK_BUTTON_MOTION_MASK); gtk_entry_set_width_chars (GTK_ENTRY (proxy->entry), 5); gtk_box_pack_start (GTK_BOX (hbox), proxy->entry, FALSE, FALSE, 0); gtk_widget_show (proxy->entry);