[maemo-commits] [maemo-commits] r12254 - in projects/haf/trunk/gtk+: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Jun 12 17:38:04 EEST 2007
Author: xan
Date: 2007-06-12 17:38:02 +0300 (Tue, 12 Jun 2007)
New Revision: 12254

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtkiconview.c
Log:
2007-06-12  Xan Lopez  <xan.lopez at nokia.com>

	* gtk/gtkiconview.c: backport patch from upstream bug #410815,
	"Icon view gets confused when scaling down the pixbuf column".


Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2007-06-12 14:26:16 UTC (rev 12253)
+++ projects/haf/trunk/gtk+/ChangeLog	2007-06-12 14:38:02 UTC (rev 12254)
@@ -1,3 +1,8 @@
+2007-06-12  Xan Lopez  <xan.lopez at nokia.com>
+
+	* gtk/gtkiconview.c: backport patch from upstream bug #410815,
+	"Icon view gets confused when scaling down the pixbuf column".
+
 2007-06-08  Xan Lopez  <xan.lopez at nokia.com>
 
 	* gtk/gtkentry.c (gtk_entry_real_activate): remove MAEMO_CHANGES code

Modified: projects/haf/trunk/gtk+/gtk/gtkiconview.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkiconview.c	2007-06-12 14:26:16 UTC (rev 12253)
+++ projects/haf/trunk/gtk+/gtk/gtkiconview.c	2007-06-12 14:38:02 UTC (rev 12254)
@@ -441,6 +441,8 @@
 static void     clear_dest_info                  (GtkIconView *icon_view);
 static void     clear_source_info                (GtkIconView *icon_view);
 
+static void     adjust_wrap_width                (GtkIconView     *icon_view,
+						  GtkIconViewItem *item);
 
 static guint icon_view_signals[LAST_SIGNAL] = { 0 };
 
@@ -2581,9 +2583,16 @@
 	}
     }
 
+
   icons = icon_view->priv->items;
   y += icon_view->priv->margin;
   row = 0;
+
+  if (icons)
+    {
+      gtk_icon_view_set_cell_data (icon_view, icons->data);
+      adjust_wrap_width (icon_view, icons->data);
+    }
   
   do
     {
@@ -2676,6 +2685,8 @@
   if (icon_view->priv->text_cell != -1 &&
       icon_view->priv->pixbuf_cell != -1)
     {
+      gint item_width;
+
       text_info = g_list_nth_data (icon_view->priv->cell_list,
 				   icon_view->priv->text_cell);
       pixbuf_info = g_list_nth_data (icon_view->priv->cell_list,
@@ -2687,12 +2698,23 @@
 				  &pixbuf_width, 
 				  NULL);
 	  
+
+      if (icon_view->priv->item_width > 0)
+	item_width = icon_view->priv->item_width;
+      else
+	item_width = item->width;
+
       if (item->width == -1)
-	wrap_width = MAX (2 * pixbuf_width, 50);
+        {
+	  if (item_width > 0)
+	    wrap_width = item_width - pixbuf_width - icon_view->priv->spacing;
+	  else
+	    wrap_width = MAX (2 * pixbuf_width, 50);
+	}
       else if (icon_view->priv->orientation == GTK_ORIENTATION_VERTICAL)
-	wrap_width = item->width;
+	wrap_width = item_width;
       else
-	wrap_width = item->width - pixbuf_width - icon_view->priv->spacing;
+	wrap_width = item_width - pixbuf_width - icon_view->priv->spacing;
 
       g_object_set (text_info->cell, "wrap-width", wrap_width, NULL);
     }
@@ -4261,8 +4283,6 @@
       
       g_object_thaw_notify (G_OBJECT (info->cell));
     }  
-  
-  adjust_wrap_width (icon_view, item);
 }
 
 static void 
@@ -4914,7 +4934,6 @@
       else
 	g_object_set (info->cell,
 		      "wrap-mode", PANGO_WRAP_CHAR,
-		      "wrap-width", icon_view->priv->item_width,
 		      "xalign", 0.0,
 		      "yalign", 0.0,
 		      NULL);


More information about the maemo-commits mailing list