summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Davis <smd.seandavis@gmail.com>2013-12-10 21:36:52 -0500
committerSean Davis <smd.seandavis@gmail.com>2013-12-10 21:36:52 -0500
commit7b6795076e0befd9d4796a6643d8c623414fa1c9 (patch)
treea5c8f963c1ec26b74c6907bfe8c76cfc68cc74e5
parentacaa796d552fbcfacc7bbb999d09674b6da8dbd1 (diff)
downloadxfce4-settings-7b6795076e0befd9d4796a6643d8c623414fa1c9.tar.gz
Identify Displays button
-rw-r--r--dialogs/display-settings/display-dialog.glade40
-rw-r--r--dialogs/display-settings/main.c71
2 files changed, 74 insertions, 37 deletions
diff --git a/dialogs/display-settings/display-dialog.glade b/dialogs/display-settings/display-dialog.glade
index b4bbd80e..db7fcef3 100644
--- a/dialogs/display-settings/display-dialog.glade
+++ b/dialogs/display-settings/display-dialog.glade
@@ -273,14 +273,40 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <object class="GtkCheckButton" id="minimal-autoshow">
- <property name="label" translatable="yes">Configure _new displays when connected</property>
+ <object class="GtkHBox" id="hbox2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_action_appearance">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkCheckButton" id="minimal-autoshow">
+ <property name="label" translatable="yes">Configure _new displays when connected</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="identify-displays">
+ <property name="label" translatable="yes">Identify Displays</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
</child>
</object>
diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c
index 8c706db3..b48c9e90 100644
--- a/dialogs/display-settings/main.c
+++ b/dialogs/display-settings/main.c
@@ -154,6 +154,7 @@ static gint randr_event_base;
/* Used to identify the display */
static GHashTable *display_popups;
+gboolean show_popups = FALSE;
gboolean supports_alpha = FALSE;
@@ -1440,6 +1441,42 @@ display_settings_dialog_response (GtkDialog *dialog,
gtk_main_quit ();
}
+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 && show_popups);
+ return TRUE;
+}
+
+static void
+on_identify_displays_toggled (GtkWidget *widget, GtkBuilder *builder)
+{
+ show_popups = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+ set_display_popups_visible (show_popups);
+}
+
static GtkWidget *
@@ -1449,7 +1486,7 @@ display_settings_dialog_new (GtkBuilder *builder)
GtkCellRenderer *renderer;
GtkTreeSelection *selection;
GObject *combobox;
- GObject *label, *check, *mirror;
+ GObject *label, *check, *mirror, *identify;
/* Get the treeview */
treeview = gtk_builder_get_object (builder, "randr-outputs");
@@ -1467,6 +1504,9 @@ display_settings_dialog_new (GtkBuilder *builder)
/* Identification popups */
display_setting_identity_popups_populate ();
+ identify = gtk_builder_get_object (builder, "identify-displays");
+ g_signal_connect (G_OBJECT (identify), "toggled", G_CALLBACK (on_identify_displays_toggled), builder);
+ set_display_popups_visible (show_popups);
/* Treeview selection */
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
@@ -1707,35 +1747,6 @@ 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;