diff options
author | Matthias Clasen <mclasen@redhat.com> | 2016-02-25 01:21:27 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2016-02-25 01:22:01 -0500 |
commit | 84ba01d713df386fb8b141a5c6c1fc393509a3ba (patch) | |
tree | 92b4e3e82cd7483be18f2adee42e48729cab2cfe /gtk/inspector | |
parent | 15ccdcd25b2d81d08e3356db7cc5b3bd483081e5 (diff) | |
download | gtk+-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.c | 33 |
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) { |