This is an automated email from the git hooks/post-receive script. o c h o s i p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository xfce/xfce4-settings.
commit ed98ec4af5201f51c5cc2844d8399d34a211c0cd Author: Simon Steinbeiss <[email protected]> Date: Wed Aug 22 22:22:47 2018 +0200 display: Make auto-profile a toggle button in the minimal dialog Only show the dropdown when there is more than one profile, otherwise display the single profile as a toggle-button. --- dialogs/display-settings/main.c | 36 +++++++++++++++++----- .../display-settings/minimal-display-dialog.glade | 19 ++++++++++-- 2 files changed, 46 insertions(+), 9 deletions(-) diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c index baf2aab..6a51059 100644 --- a/dialogs/display-settings/main.c +++ b/dialogs/display-settings/main.c @@ -1504,27 +1504,48 @@ display_settings_profile_changed (GtkWidget *widget, GtkBuilder *builder) } static void -display_settings_minimal_profile_apply (GtkComboBox *combobox, GtkBuilder *builder) +display_settings_minimal_profile_changed (GtkComboBox *combobox, GtkBuilder *builder) { + GObject *auto_profile; GtkTreeModel *model; GtkTreeIter iter; GValue value = { 0, }; const gchar *profile; gchar *profile_hash; + gboolean profile_match; - if (gtk_combo_box_get_active_iter (combobox, &iter)) + auto_profile = gtk_builder_get_object (builder, "auto-profile"); + profile_match = gtk_combo_box_get_active_iter (combobox, &iter); + + if (profile_match) { model = gtk_combo_box_get_model (combobox); gtk_tree_model_get_value (model, &iter, 0, &value); profile = g_value_get_string (&value); profile_hash = g_compute_checksum_for_string (G_CHECKSUM_SHA1, profile, strlen(profile)); xfce_randr_apply (xfce_randr, profile_hash, display_channel); + gtk_button_set_label (GTK_BUTTON (auto_profile), profile); } + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (auto_profile), profile_match); + gtk_widget_set_visible (GTK_WIDGET (combobox), !profile_match); + gtk_widget_set_visible (GTK_WIDGET (auto_profile), profile_match); + g_value_unset (&value); } static void +display_settings_minimal_profile_apply (GtkWidget *widget, GtkBuilder *builder) +{ + const gchar *profile; + gchar *profile_hash; + + profile = gtk_button_get_label (GTK_BUTTON (widget)); + profile_hash = g_compute_checksum_for_string (G_CHECKSUM_SHA1, profile, strlen(profile)); + xfce_randr_apply (xfce_randr, profile_hash, display_channel); +} + +static void display_settings_profile_apply (GtkWidget *widget, GtkBuilder *builder) { GtkWidget *entry = gtk_bin_get_child (GTK_BIN (widget)); @@ -3336,7 +3357,7 @@ display_settings_show_minimal_dialog (GdkDisplay *display) GtkBuilder *builder; GtkWidget *dialog, *cancel; GObject *only_display1, *only_display2, *mirror_displays; - GObject *extend_right, *advanced, *fake_button, *auto_button, *label; + GObject *extend_right, *advanced, *fake_button, *auto_button, *label, *auto_profile; GError *error = NULL; gboolean found = FALSE; RRMode mode; @@ -3364,6 +3385,7 @@ display_settings_show_minimal_dialog (GdkDisplay *display) mirror_displays = gtk_builder_get_object (builder, "mirror"); extend_right = gtk_builder_get_object (builder, "extend_right"); only_display2 = gtk_builder_get_object (builder, "display2"); + auto_profile = gtk_builder_get_object (builder, "auto-profile"); advanced = gtk_builder_get_object (builder, "advanced_button"); auto_button = gtk_builder_get_object (builder, "randr-profile"); fake_button = gtk_builder_get_object (builder, "fake_button"); @@ -3459,15 +3481,15 @@ display_settings_show_minimal_dialog (GdkDisplay *display) builder); g_signal_connect (only_display2, "toggled", G_CALLBACK (display_settings_minimal_only_display2_toggled), builder); - g_signal_connect (advanced, "clicked", G_CALLBACK (display_settings_minimal_advanced_clicked), + g_signal_connect (auto_profile, "toggled", G_CALLBACK (display_settings_minimal_profile_apply), builder); - g_signal_connect (auto_button, "clicked", G_CALLBACK (display_settings_minimal_auto_clicked), + g_signal_connect (advanced, "clicked", G_CALLBACK (display_settings_minimal_advanced_clicked), builder); g_signal_connect_swapped (app, "activate", G_CALLBACK (gtk_window_present), dialog); - g_signal_connect (G_OBJECT (auto_button), "changed", G_CALLBACK (display_settings_minimal_profile_apply), builder); - display_settings_minimal_profile_apply (GTK_COMBO_BOX (auto_button), builder); + g_signal_connect (G_OBJECT (auto_button), "changed", G_CALLBACK (display_settings_minimal_profile_changed), builder); + display_settings_minimal_profile_changed (GTK_COMBO_BOX (auto_button), builder); /* Show the minimal dialog and start the main loop */ gtk_window_present (GTK_WINDOW (dialog)); diff --git a/dialogs/display-settings/minimal-display-dialog.glade b/dialogs/display-settings/minimal-display-dialog.glade index af455d9..d05d04b 100644 --- a/dialogs/display-settings/minimal-display-dialog.glade +++ b/dialogs/display-settings/minimal-display-dialog.glade @@ -205,6 +205,21 @@ </packing> </child> <child> + <object class="GtkRadioButton" id="auto-profile"> + <property name="label" translatable="yes">radiobutton</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="draw_indicator">False</property> + <property name="group">display1</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> <object class="GtkRadioButton" id="fake_button"> <property name="label" translatable="yes">radiobutton</property> <property name="can_focus">True</property> @@ -215,7 +230,7 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> - <property name="position">2</property> + <property name="position">3</property> </packing> </child> <child> @@ -229,7 +244,7 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> - <property name="position">3</property> + <property name="position">4</property> </packing> </child> </object> -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list [email protected] https://mail.xfce.org/mailman/listinfo/xfce4-commits
