diff --git a/gtk/inspector/inspector.css b/gtk/inspector/inspector.css index 857fb2f8ce..920a7cceea 100644 --- a/gtk/inspector/inspector.css +++ b/gtk/inspector/inspector.css @@ -35,6 +35,7 @@ .list .cell entry, .list .cell spinbutton, .list .cell button, +.list .cell dropdown .list .cell combobox { min-height: 24px; min-width: 0; @@ -42,6 +43,7 @@ .list .cell entry, .list .cell button, +.list .cell dropdown .list .cell combobox { padding: 0 4px; } diff --git a/gtk/inspector/prop-list.c b/gtk/inspector/prop-list.c index e3f4668d29..5c5a2c5e33 100644 --- a/gtk/inspector/prop-list.c +++ b/gtk/inspector/prop-list.c @@ -381,12 +381,25 @@ bind_origin_cb (GtkSignalListItemFactory *factory, gtk_label_set_label (GTK_LABEL (label), origin); } +static void +setup_value_cb (GtkSignalListItemFactory *factory, + GtkListItem *list_item, + gpointer data) +{ + GtkWidget *widget; + + widget = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + gtk_widget_add_css_class (widget, "cell"); + gtk_list_item_set_child (list_item, widget); +} + static void bind_value_cb (GtkSignalListItemFactory *factory, GtkListItem *list_item, gpointer data) { GObject *item; + GtkWidget *editor; GtkWidget *widget; GObject *object; const char *name; @@ -396,10 +409,10 @@ bind_value_cb (GtkSignalListItemFactory *factory, object = prop_holder_get_object (PROP_HOLDER (item)); name = prop_holder_get_name (PROP_HOLDER (item)); - widget = gtk_inspector_prop_editor_new (object, name, NULL); - g_signal_connect (widget, "show-object", G_CALLBACK (show_object), data); - gtk_list_item_set_child (list_item, widget); - gtk_widget_add_css_class (widget, "cell"); + editor = gtk_inspector_prop_editor_new (object, name, NULL); + g_signal_connect (editor, "show-object", G_CALLBACK (show_object), data); + widget = gtk_list_item_get_child (list_item); + gtk_box_append (GTK_BOX (widget), editor); } static void @@ -407,7 +420,10 @@ unbind_value_cb (GtkSignalListItemFactory *factory, GtkListItem *list_item, gpointer data) { - gtk_list_item_set_child (list_item, NULL); + GtkWidget *widget; + + widget = gtk_list_item_get_child (list_item); + gtk_box_remove (GTK_BOX (widget), gtk_widget_get_first_child (widget)); } static void @@ -441,6 +457,7 @@ gtk_inspector_prop_list_class_init (GtkInspectorPropListClass *klass) gtk_widget_class_bind_template_callback (widget_class, bind_type_cb); gtk_widget_class_bind_template_callback (widget_class, setup_origin_cb); gtk_widget_class_bind_template_callback (widget_class, bind_origin_cb); + gtk_widget_class_bind_template_callback (widget_class, setup_value_cb); gtk_widget_class_bind_template_callback (widget_class, bind_value_cb); gtk_widget_class_bind_template_callback (widget_class, unbind_value_cb); } diff --git a/gtk/inspector/prop-list.ui b/gtk/inspector/prop-list.ui index 9c952c3f41..15ccf2e2e9 100644 --- a/gtk/inspector/prop-list.ui +++ b/gtk/inspector/prop-list.ui @@ -57,6 +57,7 @@ 1 +