[Goodies-commits] r3105 - ristretto/trunk/src

Stephan Arts stephan at xfce.org
Thu Aug 30 17:05:08 CEST 2007


Author: stephan
Date: 2007-08-30 15:05:08 +0000 (Thu, 30 Aug 2007)
New Revision: 3105

Modified:
   ristretto/trunk/src/main.c
   ristretto/trunk/src/picture_viewer.c
   ristretto/trunk/src/picture_viewer.h
Log:
modified some stuff to make it work with gtk 2.11 (which it doesn't)

Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c	2007-08-29 23:01:11 UTC (rev 3104)
+++ ristretto/trunk/src/main.c	2007-08-30 15:05:08 UTC (rev 3105)
@@ -308,8 +308,6 @@
 
     gtk_widget_set_size_request(window, 400, 300);
 
-
-    gtk_container_add(GTK_CONTAINER(s_window), viewer);
     gtk_box_pack_start(GTK_BOX(main_hbox), main_vbox1, TRUE, TRUE, 0);
 
     gtk_box_pack_start(GTK_BOX(main_vbox1), s_window, TRUE, TRUE, 0);
@@ -386,6 +384,7 @@
 
     gtk_widget_show_all(window);
     gtk_widget_hide(menu_item_pause);
+    gtk_container_add(GTK_CONTAINER(s_window), viewer);
     gtk_widget_show(viewer);
 
     if(!strcmp(thumbnail_viewer_orientation, "hide"))

Modified: ristretto/trunk/src/picture_viewer.c
===================================================================
--- ristretto/trunk/src/picture_viewer.c	2007-08-29 23:01:11 UTC (rev 3104)
+++ ristretto/trunk/src/picture_viewer.c	2007-08-30 15:05:08 UTC (rev 3105)
@@ -53,7 +53,7 @@
 static gboolean
 rstto_picture_viewer_refresh(RsttoPictureViewer *viewer);
 
-static void
+static gboolean
 rstto_picture_viewer_set_scroll_adjustments(RsttoPictureViewer *, GtkAdjustment *, GtkAdjustment *);
 
 static void
@@ -324,7 +324,7 @@
 
 }
 
-static void
+static gboolean  
 rstto_picture_viewer_set_scroll_adjustments(RsttoPictureViewer *viewer, GtkAdjustment *hadjustment, GtkAdjustment *vadjustment)
 {
     if(viewer->hadjustment)
@@ -346,11 +346,20 @@
         g_signal_connect(G_OBJECT(viewer->hadjustment), "value-changed", (GCallback)viewer->priv->cb_value_changed, viewer);
         g_object_ref(viewer->hadjustment);
     }
+    else
+    {
+        g_warning("no hadjustment set");
+    }
     if(viewer->vadjustment)
     {
         g_signal_connect(G_OBJECT(viewer->vadjustment), "value-changed", (GCallback)viewer->priv->cb_value_changed, viewer);
         g_object_ref(viewer->vadjustment);
     }
+    else
+    {
+        g_warning("no vadjustment set");
+    }
+    return TRUE;
 }
 
 static void
@@ -644,24 +653,61 @@
 static void
 cb_rstto_picture_viewer_scroll_event (RsttoPictureViewer *viewer, GdkEventScroll *event)
 {
+    GtkWidget *widget = GTK_WIDGET(viewer);
     RsttoNavigatorEntry *entry = rstto_navigator_get_file(viewer->priv->navigator);
     gdouble scale = rstto_navigator_entry_get_scale(entry);
+    gdouble x = (viewer->hadjustment->value + event->x);
+    gdouble y = (viewer->vadjustment->value + event->y);
+    gint width = gdk_pixbuf_get_width(viewer->priv->src_pixbuf);
+    gint height = gdk_pixbuf_get_height(viewer->priv->src_pixbuf);
     switch(event->direction)
     {
         case GDK_SCROLL_UP:
         case GDK_SCROLL_LEFT:
+            x = x / 1.2 - event->x;
+            y = y / 1.2 - event->y;
             rstto_navigator_entry_set_scale(entry, scale / 1.2);
             rstto_navigator_entry_set_fit_to_screen (entry, FALSE);
             break;
         case GDK_SCROLL_DOWN:
         case GDK_SCROLL_RIGHT:
+            x = x * 1.2 - event->x;
+            y = y * 1.2 - event->y;
             rstto_navigator_entry_set_scale(entry, scale * 1.2);
             rstto_navigator_entry_set_fit_to_screen (entry, FALSE);
             break;
     }
-    if(rstto_picture_viewer_refresh(viewer))
+    if(viewer->hadjustment)
     {
-        rstto_picture_viewer_paint(GTK_WIDGET(viewer));
+        viewer->hadjustment->page_size = widget->allocation.width;
+        viewer->hadjustment->upper = width * scale;
+        viewer->hadjustment->lower = 0;
+        viewer->hadjustment->step_increment = 1;
+        viewer->hadjustment->page_increment = 100;
+        viewer->hadjustment->value = x ;
+        if((viewer->hadjustment->value + viewer->hadjustment->page_size) > viewer->hadjustment->upper)
+        {
+            viewer->hadjustment->value = viewer->hadjustment->upper - viewer->hadjustment->page_size;
+        }
+        gtk_adjustment_changed(viewer->hadjustment);
     }
-
+    if(viewer->vadjustment)
+    {
+        viewer->vadjustment->page_size = widget->allocation.height;
+        viewer->vadjustment->upper = height * scale;
+        viewer->vadjustment->lower = 0;
+        viewer->vadjustment->step_increment = 1;
+        viewer->vadjustment->page_increment = 100;
+        viewer->vadjustment->value = y ;
+        if((viewer->vadjustment->value + viewer->vadjustment->page_size) > viewer->vadjustment->upper)
+        {
+            viewer->vadjustment->value = viewer->vadjustment->upper - viewer->vadjustment->page_size;
+        }
+        gtk_adjustment_changed(viewer->vadjustment);
+    }
+    
+    if (viewer->vadjustment)
+    {
+        gtk_adjustment_value_changed(viewer->vadjustment);
+    }
 }

Modified: ristretto/trunk/src/picture_viewer.h
===================================================================
--- ristretto/trunk/src/picture_viewer.h	2007-08-29 23:01:11 UTC (rev 3104)
+++ ristretto/trunk/src/picture_viewer.h	2007-08-30 15:05:08 UTC (rev 3105)
@@ -58,7 +58,7 @@
 {
     GtkWidgetClass  parent_class;
 
-  void (* set_scroll_adjustments) (RsttoPictureViewer *viewer,
+    gboolean (* set_scroll_adjustments) (RsttoPictureViewer *viewer,
           GtkAdjustment     *hadjustment,
           GtkAdjustment     *vadjustment);
 };




More information about the Goodies-commits mailing list