[Xfce4-commits] <ristretto:stephan/gtk3> Enable rendering of ImageViewer
Stephan Arts
noreply at xfce.org
Fri May 4 20:42:11 CEST 2012
Updating branch refs/heads/stephan/gtk3
to a5cf891879ac9416650505bc827073f430868939 (commit)
from 462b174969845e1940ce04c31d5ca01bb8b34cfe (commit)
commit a5cf891879ac9416650505bc827073f430868939
Author: Stephan Arts <stephan at xfce.org>
Date: Thu May 3 22:55:24 2012 +0200
Enable rendering of ImageViewer
src/image_viewer.c | 61 +++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 53 insertions(+), 8 deletions(-)
diff --git a/src/image_viewer.c b/src/image_viewer.c
index 5d24328..5e1011f 100644
--- a/src/image_viewer.c
+++ b/src/image_viewer.c
@@ -90,6 +90,9 @@ struct _RsttoImageViewerPriv
GError *error;
+ guint hscroll_policy : 1;
+ guint vscroll_policy : 1;
+
RsttoImageViewerTransaction *transaction;
GdkPixbuf *pixbuf;
RsttoImageOrientation orientation;
@@ -486,6 +489,7 @@ rstto_image_viewer_realize(GtkWidget *widget)
GtkAllocation allocation;
GdkWindowAttr attributes;
+ GdkWindow *window;
gint attributes_mask;
g_return_if_fail (widget != NULL);
@@ -510,12 +514,15 @@ rstto_image_viewer_realize(GtkWidget *widget)
attributes.visual = gtk_widget_get_visual (widget);
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
+
+ window = gdk_window_new (gtk_widget_get_parent_window (widget),
+ &attributes, attributes_mask);
gtk_widget_set_window (
widget,
- gdk_window_new (
- gtk_widget_get_parent_window(widget),
- &attributes,
- attributes_mask));
+ window);
+ gdk_window_set_user_data (window, widget);
+
+ g_object_ref (window);
g_object_get_property (
G_OBJECT(viewer->priv->settings),
@@ -2978,12 +2985,46 @@ rstto_image_viewer_set_property (
viewer->priv->props.show_clock = g_value_get_boolean (value);
break;
case PROP_HADJUSTMENT:
+ if(viewer->hadjustment)
+ {
+ g_signal_handlers_disconnect_by_func(viewer->hadjustment, viewer->priv->cb_value_changed, viewer);
+ g_object_unref(viewer->hadjustment);
+ }
+ viewer->hadjustment = g_value_get_object (value);
+
+ if(viewer->hadjustment)
+ {
+ gtk_adjustment_set_lower (viewer->hadjustment, 0);
+ gtk_adjustment_set_upper (viewer->hadjustment, 0);
+
+ g_signal_connect(G_OBJECT(viewer->hadjustment), "value-changed", (GCallback)viewer->priv->cb_value_changed, viewer);
+ g_object_ref(viewer->hadjustment);
+ }
break;
case PROP_VADJUSTMENT:
+ if(viewer->vadjustment)
+ {
+ g_signal_handlers_disconnect_by_func(viewer->vadjustment, viewer->priv->cb_value_changed, viewer);
+ g_object_unref(viewer->vadjustment);
+ }
+ viewer->vadjustment = g_value_get_object (value);
+
+ if(viewer->vadjustment)
+ {
+ gtk_adjustment_set_lower (viewer->vadjustment, 0);
+ gtk_adjustment_set_upper (viewer->vadjustment, 0);
+
+ g_signal_connect(G_OBJECT(viewer->vadjustment), "value-changed", (GCallback)viewer->priv->cb_value_changed, viewer);
+ g_object_ref(viewer->vadjustment);
+ }
break;
case PROP_HSCROLL_POLICY:
+ viewer->priv->hscroll_policy = g_value_get_enum (value);
+ gtk_widget_queue_resize (GTK_WIDGET (viewer));
break;
case PROP_VSCROLL_POLICY:
+ viewer->priv->vscroll_policy = g_value_get_enum (value);
+ gtk_widget_queue_resize (GTK_WIDGET (viewer));
break;
}
}
@@ -3003,13 +3044,17 @@ rstto_image_viewer_get_property (
g_value_set_boolean (value, viewer->priv->props.show_clock);
break;
case PROP_HADJUSTMENT:
- break;
+ g_value_set_object (value, viewer->hadjustment);
+ break;
case PROP_VADJUSTMENT:
- break;
+ g_value_set_object (value, viewer->vadjustment);
+ break;
case PROP_HSCROLL_POLICY:
- break;
+ g_value_set_enum (value, viewer->priv->hscroll_policy);
+ break;
case PROP_VSCROLL_POLICY:
- break;
+ g_value_set_enum (value, viewer->priv->vscroll_policy);
+ break;
}
}
More information about the Xfce4-commits
mailing list