summaryrefslogtreecommitdiff
path: root/gtk/gtkiconview.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkiconview.c')
-rw-r--r--gtk/gtkiconview.c29
1 files changed, 26 insertions, 3 deletions
diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c
index d844de8683..de282d04ac 100644
--- a/gtk/gtkiconview.c
+++ b/gtk/gtkiconview.c
@@ -205,6 +205,11 @@ struct _GtkIconViewPrivate
guint shift_pressed : 1;
guint draw_focus : 1;
+
+ /* GtkScrollablePolicy needs to be checked when
+ * driving the scrollable adjustment values */
+ guint hscroll_policy : 1;
+ guint vscroll_policy : 1;
};
/* Signals */
@@ -243,7 +248,9 @@ enum
/* For scrollable interface */
PROP_HADJUSTMENT,
- PROP_VADJUSTMENT
+ PROP_VADJUSTMENT,
+ PROP_HSCROLL_POLICY,
+ PROP_VSCROLL_POLICY
};
/* GObject vfuncs */
@@ -794,8 +801,10 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
GTK_PARAM_READWRITE));
/* Scrollable interface properties */
- g_object_class_override_property (gobject_class, PROP_HADJUSTMENT, "hadjustment");
- g_object_class_override_property (gobject_class, PROP_VADJUSTMENT, "vadjustment");
+ g_object_class_override_property (gobject_class, PROP_HADJUSTMENT, "hadjustment");
+ g_object_class_override_property (gobject_class, PROP_VADJUSTMENT, "vadjustment");
+ g_object_class_override_property (gobject_class, PROP_HSCROLL_POLICY, "hscroll-policy");
+ g_object_class_override_property (gobject_class, PROP_VSCROLL_POLICY, "vscroll-policy");
/* Style properties */
gtk_widget_class_install_style_property (widget_class,
@@ -1205,6 +1214,14 @@ gtk_icon_view_set_property (GObject *object,
case PROP_VADJUSTMENT:
gtk_icon_view_set_vadjustment (icon_view, g_value_get_object (value));
break;
+ case PROP_HSCROLL_POLICY:
+ icon_view->priv->hscroll_policy = g_value_get_enum (value);
+ gtk_widget_queue_resize (GTK_WIDGET (icon_view));
+ break;
+ case PROP_VSCROLL_POLICY:
+ icon_view->priv->vscroll_policy = g_value_get_enum (value);
+ gtk_widget_queue_resize (GTK_WIDGET (icon_view));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -1277,6 +1294,12 @@ gtk_icon_view_get_property (GObject *object,
case PROP_VADJUSTMENT:
g_value_set_object (value, icon_view->priv->vadjustment);
break;
+ case PROP_HSCROLL_POLICY:
+ g_value_set_enum (value, icon_view->priv->hscroll_policy);
+ break;
+ case PROP_VSCROLL_POLICY:
+ g_value_set_enum (value, icon_view->priv->vscroll_policy);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);