Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--shell/ev-view.c18
2 files changed, 22 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 229cc1d..a1d1ed2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-27 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
+
+ * shell/ev-view.c: (selection_scroll_timeout_cb):
+
+ Horizontal scroll on selection also.
+
2005-12-26 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
* shell/ev-metadata-manager.c: (parse_value):
diff --git a/shell/ev-view.c b/shell/ev-view.c
index 1f089fc..285d52b 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;
}