Updating branch refs/heads/bluesabre/display-settings2 to 3e3106903d3d2cc877390c3ff438bfe957fb1e77 (commit) from 8f95e0836365e62d052cc000f3b7a0145cd2c81c (commit)
commit 3e3106903d3d2cc877390c3ff438bfe957fb1e77 Author: Sean Davis <smd.seanda...@gmail.com> Date: Tue Dec 10 10:32:22 2013 +0000 Show/hide display popups with focus Signed-off-by: Sean Davis <smd.seanda...@gmail.com> 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