[gnome-control-center] region: Simplify size code for input chooser dialog



commit aaee85e5c63c3e17eae75e45bd85c75401f4f95b
Author: Robert Ancell <robert ancell canonical com>
Date:   Fri Jun 29 14:37:35 2018 +1200

    region: Simplify size code for input chooser dialog
    
    The previous code was complex and caused the dialog to abruptly change size when
    interacting with it. Instead choose a reasonable default height.

 panels/region/cc-input-chooser.c | 34 ----------------------------------
 panels/region/input-chooser.ui   |  1 +
 2 files changed, 1 insertion(+), 34 deletions(-)
---
diff --git a/panels/region/cc-input-chooser.c b/panels/region/cc-input-chooser.c
index d6ae8fe24..ab8a2eed2 100644
--- a/panels/region/cc-input-chooser.c
+++ b/panels/region/cc-input-chooser.c
@@ -35,7 +35,6 @@
 #define INPUT_SOURCE_TYPE_XKB "xkb"
 #define INPUT_SOURCE_TYPE_IBUS "ibus"
 
-#define MAIN_WINDOW_WIDTH_RATIO 0.60
 #define FILTER_TIMEOUT 150 /* ms */
 
 typedef enum {
@@ -282,29 +281,6 @@ remove_all_children (GtkContainer *container)
     gtk_container_remove (container, (GtkWidget *) l->data);
 }
 
-static void
-set_fixed_size (GtkWidget *chooser)
-{
-  CcInputChooserPrivate *priv = GET_PRIVATE (chooser);
-  GtkPolicyType policy;
-  gint width, height;
-
-  gtk_scrolled_window_get_policy (GTK_SCROLLED_WINDOW (priv->scrolledwindow), &policy, NULL);
-  if (policy == GTK_POLICY_AUTOMATIC)
-    return;
-
-  /* Don't let it automatically get wider than the main CC window nor
-     get taller than the initial height */
-  gtk_window_get_size (gtk_window_get_transient_for (GTK_WINDOW (chooser)),
-                       &width, NULL);
-  gtk_window_get_size (GTK_WINDOW (chooser), NULL, &height);
-  gtk_widget_set_size_request (chooser, width * MAIN_WINDOW_WIDTH_RATIO, height);
-
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->scrolledwindow),
-                                  GTK_POLICY_AUTOMATIC,
-                                  GTK_POLICY_AUTOMATIC);
-}
-
 static void
 add_input_source_rows_for_locale (GtkWidget  *chooser,
                                   LocaleInfo *info)
@@ -332,8 +308,6 @@ show_input_sources_for_locale (GtkWidget   *chooser,
 {
   CcInputChooserPrivate *priv = GET_PRIVATE (chooser);
 
-  set_fixed_size (chooser);
-
   remove_all_children (GTK_CONTAINER (priv->list));
 
   if (!info->back_row)
@@ -609,8 +583,6 @@ show_more (GtkWidget *chooser)
 {
   CcInputChooserPrivate *priv = GET_PRIVATE (chooser);
 
-  set_fixed_size (chooser);
-
   gtk_widget_show (priv->filter_entry);
   gtk_widget_grab_focus (priv->filter_entry);
 
@@ -1029,7 +1001,6 @@ cc_input_chooser_new (GtkWindow    *main_window,
   g_autoptr(GtkBuilder) builder = NULL;
   GtkWidget *chooser;
   CcInputChooserPrivate *priv;
-  gint width, height;
   g_autoptr(GError) error = NULL;
 
   builder = gtk_builder_new ();
@@ -1074,11 +1045,6 @@ cc_input_chooser_new (GtkWindow    *main_window,
 #endif  /* HAVE_IBUS */
   show_locale_rows (chooser);
 
-  /* Try to come up with a sensible size */
-  gtk_window_get_size (main_window, &width, &height);
-  gtk_widget_set_size_request (chooser, width * MAIN_WINDOW_WIDTH_RATIO, -1);
-  gtk_window_set_resizable (GTK_WINDOW (chooser), TRUE);
-
   gtk_window_set_transient_for (GTK_WINDOW (chooser), main_window);
 
   return chooser;
diff --git a/panels/region/input-chooser.ui b/panels/region/input-chooser.ui
index 10fcbe538..79a9d77fd 100644
--- a/panels/region/input-chooser.ui
+++ b/panels/region/input-chooser.ui
@@ -44,6 +44,7 @@
             <property name="margin-end">6</property>
             <property name="margin-top">6</property>
             <property name="margin-bottom">6</property>
+            <property name="min-content-height">300</property>
             <child>
               <object class="GtkViewport" id="viewport">
                 <property name="visible">True</property>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]