[gnome-control-center/wip/feborges/new-printers-panel: 2/2] printers: Set min-content-height on the scrolled window



commit 05d6bc46808a4b448049362366185489ac687396
Author: Felipe Borges <felipeborges gnome org>
Date:   Wed Jan 25 15:04:38 2017 +0100

    printers: Set min-content-height on the scrolled window
    
    Set a minimum content height of 490px for the panel when the
    allocated height is smaller than 490px.
    
    490 is an estimated value for the panels to properly fit on netbook
    screens. See https://wiki.gnome.org/Design/SystemSettings#Notes
    
    https://bugzilla.gnome.org/show_bug.cgi?id=767600

 panels/printers/cc-printers-panel.c |   22 ++++++++++++++++++++++
 panels/printers/printers.ui         |    2 +-
 2 files changed, 23 insertions(+), 1 deletions(-)
---
diff --git a/panels/printers/cc-printers-panel.c b/panels/printers/cc-printers-panel.c
index ea71235..ab3f6a7 100644
--- a/panels/printers/cc-printers-panel.c
+++ b/panels/printers/cc-printers-panel.c
@@ -769,6 +769,24 @@ connection_test_cb (GObject      *source_object,
 }
 
 static void
+on_content_size_changed (GtkWidget     *widget,
+                         GtkAllocation *allocation,
+                         gpointer       user_data)
+{
+  if (allocation->height > 490)
+    {
+      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (widget),
+                                      GTK_POLICY_NEVER, GTK_POLICY_NEVER);
+    }
+  else
+    {
+      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (widget),
+                                      GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+      gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (widget), 490);
+    }
+}
+
+static void
 cc_printers_panel_init (CcPrintersPanel *self)
 {
   CcPrintersPanelPrivate *priv;
@@ -831,6 +849,10 @@ cc_printers_panel_init (CcPrintersPanel *self)
 
   /* connect signals */
   widget = (GtkWidget*)
+    gtk_builder_get_object (priv->builder, "scrolled-window");
+  g_signal_connect (widget, "size-allocate", G_CALLBACK (on_content_size_changed), NULL);
+
+  widget = (GtkWidget*)
     gtk_builder_get_object (priv->builder, "printer-add-button");
   g_signal_connect (widget, "clicked", G_CALLBACK (printer_add_cb), self);
 
diff --git a/panels/printers/printers.ui b/panels/printers/printers.ui
index d65ae66..f00e2a5 100644
--- a/panels/printers/printers.ui
+++ b/panels/printers/printers.ui
@@ -44,7 +44,7 @@
       </packing>
     </child>
     <child>
-      <object class="GtkScrolledWindow">
+      <object class="GtkScrolledWindow" id="scrolled-window">
         <property name="visible">True</property>
         <child>
           <object class="GtkBox" id="content">


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