summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2011-03-17 15:10:43 +1100
committerBastien Nocera <hadess@hadess.net>2011-05-07 17:50:35 +0100
commit3d91e4baaf4cf8977dd83549e979389eb3ba6935 (patch)
treebc7ca48b995de826cfc0cb4d789ad76e1fa6e245
parent922116e04e2f1a2fea89c169a44488ac2de0521f (diff)
downloadgnome-control-center-3d91e4baaf4cf8977dd83549e979389eb3ba6935.tar.gz
Only show monitor labels when display applet has focus
https://bugzilla.gnome.org/show_bug.cgi?id=589562
-rw-r--r--panels/display/xrandr-capplet.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/panels/display/xrandr-capplet.c b/panels/display/xrandr-capplet.c
index b4ce00d18..bb84862d5 100644
--- a/panels/display/xrandr-capplet.c
+++ b/panels/display/xrandr-capplet.c
@@ -171,6 +171,8 @@ on_screen_changed (GnomeRRScreen *scr,
}
app->labeler = gnome_rr_labeler_new (app->current_configuration);
+ if (gtk_widget_has_focus (app->panel))
+ gnome_rr_labeler_show (app->labeler);
select_current_output_from_dialog_position (app);
}
@@ -2373,6 +2375,26 @@ get_output_for_window (GnomeRRConfig *configuration, GdkWindow *window)
win_rect.y + win_rect.height / 2);
}
+static gboolean
+dialog_focus_in_cb (GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+ App *app = data;
+
+ if (app->labeler)
+ gnome_rr_labeler_show (app->labeler);
+ return FALSE;
+}
+
+static gboolean
+dialog_focus_out_cb (GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+ App *app = data;
+
+ if (app->labeler)
+ gnome_rr_labeler_hide (app->labeler);
+ return FALSE;
+}
+
static void
on_toplevel_realized (GtkWidget *widget,
App *app)
@@ -2476,6 +2498,10 @@ run_application (void)
app->clock_settings = g_settings_new (CLOCK_SCHEMA);
app->panel = _gtk_builder_get_widget (builder, "display-panel");
+ g_signal_connect_after (app->panel, "focus-in-event",
+ G_CALLBACK (dialog_focus_in_cb), app);
+ g_signal_connect_after (app->panel, "focus-out-event",
+ G_CALLBACK (dialog_focus_out_cb), app);
if (!app->panel)
g_warning ("Missing display-panel object");