[gnome-control-center/wip/jsparber/background: 4/41] background: resize preview when the window size is less then 500px



commit 4487efafb3a5740cd4010fd925dd9e2b8f7a08ab
Author: Julian Sparber <julian sparber net>
Date:   Tue Nov 7 16:00:00 2017 +0100

    background: resize preview when the window size is less then 500px
    
    https://bugzilla.gnome.org/show_bug.cgi?id=788515

 panels/background/background.ui         | 44 +++++++++++++++---------
 panels/background/cc-background-panel.c | 59 ++-------------------------------
 2 files changed, 31 insertions(+), 72 deletions(-)
---
diff --git a/panels/background/background.ui b/panels/background/background.ui
index 147b567f4..4b8d0adb3 100644
--- a/panels/background/background.ui
+++ b/panels/background/background.ui
@@ -11,31 +11,43 @@
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="margin">16</property>
-        <property name="halign">center</property>
+        <property name="halign">fill</property>
         <property name="orientation">vertical</property>
-        <property name="expand">False</property>
+        <property name="expand">True</property>
+        <property name="height_request">100</property>
         <child>
-          <object class="GtkBox" id="background-preview-top">
+          <object class="GtkAspectFrame">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="margin">6</property>
-            <property name="spacing">6</property>
-            <property name="orientation">vertical</property>
-            <style>
-              <class name="black-border"/>
-            </style>
+            <property name="shadow_type">GTK_SHADOW_NONE</property>
+            <property name="expand">True</property>
+            <property name="obey-child">False</property>
+            <property name="ratio">1.7777</property>
             <child>
-              <object class="GtkDrawingArea" id="background-desktop-drawingarea">
-                <property name="width_request">310</property>
-                <property name="height_request">170</property>
+              <object class="GtkBox" id="background-preview-top">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="valign">center</property>
-                <property name="hexpand">True</property>
-                <property name="vexpand">True</property>
+                <property name="margin">6</property>
+                <property name="spacing">6</property>
+                <property name="orientation">vertical</property>
+                <style>
+                  <class name="black-border"/>
+                </style>
+                <child>
+                  <object class="GtkDrawingArea" id="background-desktop-drawingarea">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="expand">True</property>
+                  </object>
+                </child>
               </object>
             </child>
           </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
         </child>
         <child>
           <object class="GtkBox" id="bottom-hbox">
@@ -111,6 +123,8 @@
       <object class="GtkBox" id="backgroud-gallery-box">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="expand">True</property>
+        <property name="height_request">450</property>
         <style>
           <class name="background-gallery"/>
         </style>
diff --git a/panels/background/cc-background-panel.c b/panels/background/cc-background-panel.c
index ed42cd218..2e190064c 100644
--- a/panels/background/cc-background-panel.c
+++ b/panels/background/cc-background-panel.c
@@ -190,8 +190,8 @@ get_or_create_cached_pixbuf (CcBackgroundPanel *panel,
 {
   GtkAllocation allocation;
 
-  //const gint preview_width;// = 310; //309
-  //const gint preview_height;// = 174; //168
+  //const gint preview_width = 310; //309
+  //const gint preview_height = 174; //168
   gint scale_factor;
   GdkPixbuf *pixbuf;
   const gint preview_width = gtk_widget_get_allocated_width (widget);
@@ -208,33 +208,6 @@ get_or_create_cached_pixbuf (CcBackgroundPanel *panel,
                                                        preview_height,
                                                        scale_factor,
                                                        -2, TRUE);
-
-      if (background == panel->current_background &&
-          panel->display_screenshot != NULL)
-        {
-          /* we need to add an alpha channel for for copy aera */ 
-          pixbuf = gdk_pixbuf_add_alpha (pixbuf, FALSE, 0,0,0);
-
-          pixbuf_tmp = gdk_pixbuf_scale_simple (panel->display_screenshot,
-                                                preview_width,
-                                                (preview_width
-                                                 * gdk_pixbuf_get_height (panel->display_screenshot) 
-                                                 / gdk_pixbuf_get_width(panel->display_screenshot)),
-                                                GDK_INTERP_BILINEAR);
-
-          gdk_pixbuf_copy_area (pixbuf_tmp,
-                                0,
-                                0,
-                                preview_width,
-                                gdk_pixbuf_get_height(pixbuf_tmp),
-                                pixbuf,
-                                0,
-                                0);
-
-          g_object_unref (pixbuf_tmp);
-        }
-
-      g_object_set_data_full (G_OBJECT (background), "pixbuf", pixbuf, g_object_unref);
     }
 
   return pixbuf;
@@ -250,16 +223,6 @@ update_display_preview (CcBackgroundPanel *panel,
 
   pixbuf = get_or_create_cached_pixbuf (panel, widget, background);
 
-  const gint width = gtk_widget_get_allocated_width (panel);
-  const gint height = gtk_widget_get_allocated_height (panel);
-  if (height < 500) {
-    gtk_widget_set_size_request (widget, 200, 200*9/16);
-  }
-
-  else if (height > 500) {
-    gtk_widget_set_size_request (widget, 310, 170);
-  }
-
   pixbuf = get_or_create_cached_pixbuf (panel,
                                         widget,
                                         panel->current_background);
@@ -442,15 +405,6 @@ on_preview_draw (GtkWidget         *widget,
   return TRUE;
 }
 
-static gboolean
-resize_preview (GtkWidget *widget,
-               GdkEvent  *event,
-               gpointer   user_data)
-{
-  g_print ("run me");
-  return TRUE;
-}
-
 static void
 reload_current_bg (CcBackgroundPanel *panel,
                    GSettings *settings
@@ -817,14 +771,6 @@ is_gnome_photos_installed ()
   return TRUE;
 }
 
-static void
-on_window_resize (GtkWidget    *widget,
-                  GdkRectangle *allocation,
-                  gpointer      user_data)
-{
-  g_print ("New size\n");
-}
-
 static GtkWidget *
 create_gallery_item (gpointer item,
                      gpointer user_data)
@@ -943,5 +889,4 @@ cc_background_panel_init (CcBackgroundPanel *panel)
 
   /* Background settings */
   g_signal_connect (panel->settings, "changed", G_CALLBACK (on_settings_changed), panel);
-  g_signal_connect (panel, "configure-event", G_CALLBACK (resize_preview), panel);
 }


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