Updating branch refs/heads/bluesabre/display-settings to 7d407c2d7beccf88fa3f1fe713f921eece5c8d1d (commit) from 576ceecb404297a2cc4bbc6a2134f06cab771856 (commit)
commit 7d407c2d7beccf88fa3f1fe713f921eece5c8d1d Author: Sean Davis <smd.seanda...@gmail.com> Date: Tue Dec 10 05:32:22 2013 -0500 Show/hide display popups with focus dialogs/display-settings/main.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c index 6dcfc5b..8c706db 100644 --- a/dialogs/display-settings/main.c +++ b/dialogs/display-settings/main.c @@ -1707,6 +1707,35 @@ screen_on_event (GdkXEvent *xevent, } static void +set_display_popups_visible(gboolean visible) +{ + GHashTableIter iter; + gpointer key, value; + GtkWidget *popup; + + g_hash_table_iter_init (&iter, display_popups); + while (g_hash_table_iter_next (&iter, &key, &value)) + { + popup = (GtkWidget *) value; + gtk_widget_set_visible(popup, visible); + } +} + +static gboolean +focus_out_event (GtkWidget *widget, GdkEventFocus *event, gpointer data) +{ + set_display_popups_visible(FALSE); + return TRUE; +} + +static gboolean +focus_in_event (GtkWidget *widget, GdkEventFocus *event, gpointer data) +{ + set_display_popups_visible(TRUE); + return TRUE; +} + +static void display_settings_show_main_dialog (GdkDisplay *display) { GtkBuilder *builder; @@ -1729,6 +1758,10 @@ display_settings_show_main_dialog (GdkDisplay *display) randr_event_base, RRNotify + 1); gdk_window_add_filter (gdk_get_default_root_window (), screen_on_event, builder); + + /* Show/Hide the helper popups when the dialog is shown/hidden */ + g_signal_connect(G_OBJECT(dialog), "focus-out-event", G_CALLBACK (focus_out_event), builder); + g_signal_connect(G_OBJECT(dialog), "focus-in-event", G_CALLBACK (focus_in_event), builder); if (G_UNLIKELY (opt_socket_id == 0)) { _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits