summaryrefslogtreecommitdiff
path: root/gtk/inspector
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2016-02-25 01:21:27 -0500
committerMatthias Clasen <mclasen@redhat.com>2016-02-25 01:22:01 -0500
commit84ba01d713df386fb8b141a5c6c1fc393509a3ba (patch)
tree92b4e3e82cd7483be18f2adee42e48729cab2cfe /gtk/inspector
parent15ccdcd25b2d81d08e3356db7cc5b3bd483081e5 (diff)
downloadgtk+-84ba01d713df386fb8b141a5c6c1fc393509a3ba.tar.gz
inspector: Update for screen config changes
Repopulate the display section whenever the monitor configuration changes.
Diffstat (limited to 'gtk/inspector')
-rw-r--r--gtk/inspector/general.c33
1 files changed, 30 insertions, 3 deletions
diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c
index 0f409901d1..c99ea3836b 100644
--- a/gtk/inspector/general.c
+++ b/gtk/inspector/general.c
@@ -274,13 +274,26 @@ init_env (GtkInspectorGeneral *gen)
}
static void
-init_display (GtkInspectorGeneral *gen)
+populate_display (GdkScreen *screen, GtkInspectorGeneral *gen)
{
- GdkScreen *screen;
gchar *name;
gint i;
+ GList *children, *l;
+ GtkWidget *child;
+
+ children = gtk_container_get_children (GTK_CONTAINER (gen->priv->x_box));
+ for (l = children; l; l = l->next)
+ {
+ child = l->data;
+ if (gtk_widget_is_ancestor (gen->priv->x_display, child) ||
+ gtk_widget_is_ancestor (gen->priv->x_rgba, child) ||
+ gtk_widget_is_ancestor (gen->priv->x_composited, child))
+ continue;
+
+ gtk_widget_destroy (child);
+ }
+ g_list_free (children);
- screen = gdk_screen_get_default ();
name = gdk_screen_make_display_name (screen);
gtk_label_set_label (GTK_LABEL (gen->priv->x_display), name);
g_free (name);
@@ -344,6 +357,20 @@ init_display (GtkInspectorGeneral *gen)
}
static void
+init_display (GtkInspectorGeneral *gen)
+{
+ GdkScreen *screen;
+
+ screen = gdk_screen_get_default ();
+
+ g_signal_connect (screen, "size-changed", G_CALLBACK (populate_display), gen);
+ g_signal_connect (screen, "composited-changed", G_CALLBACK (populate_display), gen);
+ g_signal_connect (screen, "monitors-changed", G_CALLBACK (populate_display), gen);
+
+ populate_display (screen, gen);
+}
+
+static void
add_device (GtkInspectorGeneral *gen,
GdkDevice *device)
{