[gnome-control-center] display: Force content to always have a fixed minimum width
- From: Rui Matos <rtcm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] display: Force content to always have a fixed minimum width
- Date: Mon, 21 Aug 2017 12:48:09 +0000 (UTC)
commit 52d61d52b2ac8802f56288ff8406c33791f3debe
Author: Rui Matos <tiagomatos gmail com>
Date: Mon Aug 21 14:23:49 2017 +0200
display: Force content to always have a fixed minimum width
This makes switching between configurations and/or active monitor look
a bit more polished.
panels/display/cc-display-panel.c | 27 +++++++++++++++++++++------
1 files changed, 21 insertions(+), 6 deletions(-)
---
diff --git a/panels/display/cc-display-panel.c b/panels/display/cc-display-panel.c
index beb3007..71396b4 100644
--- a/panels/display/cc-display-panel.c
+++ b/panels/display/cc-display-panel.c
@@ -68,6 +68,7 @@ struct _CcDisplayPanelPrivate
guint focus_id;
+ GtkSizeGroup *main_size_group;
GtkSizeGroup *rows_size_group;
GtkWidget *stack;
GtkWidget *dialog;
@@ -324,6 +325,7 @@ cc_display_panel_dispose (GObject *object)
g_clear_object (&priv->thumbnail_factory);
g_clear_object (&priv->settings_color);
g_clear_object (&priv->night_light_dialog);
+ g_clear_object (&priv->main_size_group);
if (priv->dialog)
{
@@ -577,7 +579,7 @@ make_bold_label (const gchar *text)
}
static GtkWidget *
-make_main_vbox (void)
+make_main_vbox (GtkSizeGroup *size_group)
{
GtkWidget *vbox;
@@ -585,6 +587,9 @@ make_main_vbox (void)
gtk_widget_set_margin_top (vbox, PANEL_PADDING);
gtk_widget_set_margin_bottom (vbox, PANEL_PADDING);
+ if (size_group)
+ gtk_size_group_add_widget (size_group, vbox);
+
return vbox;
}
@@ -1315,7 +1320,7 @@ make_single_output_ui (CcDisplayPanel *panel)
priv->rows_size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
- vbox = make_main_vbox ();
+ vbox = make_main_vbox (priv->main_size_group);
frame = make_frame (g_object_get_data (G_OBJECT (priv->current_output), "ui-name"), NULL);
gtk_container_add (GTK_CONTAINER (vbox), frame);
@@ -1568,7 +1573,7 @@ make_two_join_ui (CcDisplayPanel *panel)
priv->rows_size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
- vbox = make_main_vbox ();
+ vbox = make_main_vbox (priv->main_size_group);
gtk_container_add (GTK_CONTAINER (vbox), make_arrangement_ui (panel));
@@ -1632,7 +1637,7 @@ make_two_single_ui (CcDisplayPanel *panel)
priv->rows_size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
- vbox = make_main_vbox ();
+ vbox = make_main_vbox (priv->main_size_group);
box = make_two_output_chooser (panel);
gtk_container_foreach (GTK_CONTAINER (box), connect_activate_output, panel);
@@ -1788,7 +1793,7 @@ make_two_mirror_ui (CcDisplayPanel *panel)
priv->rows_size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
- vbox = make_main_vbox ();
+ vbox = make_main_vbox (priv->main_size_group);
frame = make_frame (NULL, NULL);
gtk_container_add (GTK_CONTAINER (vbox), frame);
listbox = make_list_box ();
@@ -1890,6 +1895,7 @@ make_two_output_ui (CcDisplayPanel *panel)
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, HEADING_PADDING);
gtk_widget_set_margin_top (hbox, HEADING_PADDING);
gtk_widget_set_margin_bottom (hbox, HEADING_PADDING);
+ gtk_size_group_add_widget (priv->main_size_group, hbox);
gtk_container_add (GTK_CONTAINER (vbox), wrap_in_boxes (hbox));
gtk_container_add (GTK_CONTAINER (hbox), make_bold_label (_("Display Mode")));
@@ -2042,7 +2048,7 @@ make_multi_output_ui (CcDisplayPanel *panel)
priv->rows_size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
- vbox = make_main_vbox ();
+ vbox = make_main_vbox (priv->main_size_group);
gtk_container_add (GTK_CONTAINER (vbox), make_arrangement_ui (panel));
@@ -3235,15 +3241,24 @@ cc_display_panel_init (CcDisplayPanel *self)
{
CcDisplayPanelPrivate *priv;
GSettings *settings;
+ GtkWidget *bin;
g_resources_register (cc_display_get_resource ());
priv = self->priv = DISPLAY_PANEL_PRIVATE (self);
priv->stack = gtk_stack_new ();
+
+ bin = make_bin ();
+ gtk_widget_set_size_request (bin, 500, -1);
+ gtk_stack_add_named (GTK_STACK (priv->stack), bin, "main-size-group");
+ priv->main_size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+ gtk_size_group_add_widget (priv->main_size_group, bin);
+
gtk_stack_add_named (GTK_STACK (priv->stack),
gtk_label_new (_("Could not get screen information")),
"error");
+
gtk_container_add (GTK_CONTAINER (self), priv->stack);
gtk_widget_show_all (priv->stack);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]