gtk+ r19886 - in trunk: . gtk



Author: aruiz
Date: Sun Mar 16 01:37:12 2008
New Revision: 19886
URL: http://svn.gnome.org/viewvc/gtk+?rev=19886&view=rev

Log:

2008-16-03  Alberto Ruiz <aruiz gnome org>

	* gtl/gtkcombobox.c: (gtk_combo_box_size_allocate) The child is now aware of
	both the combobox and frame (if has-frame is set) thickness and border. (bug #521442)



Modified:
   trunk/ChangeLog
   trunk/gtk/gtkcombobox.c

Modified: trunk/gtk/gtkcombobox.c
==============================================================================
--- trunk/gtk/gtkcombobox.c	(original)
+++ trunk/gtk/gtkcombobox.c	Sun Mar 16 01:37:12 2008
@@ -2284,6 +2284,10 @@
     {
       /* list mode */
 
+      /* Combobox thickness + border-width */
+      int delta_x = shadow_width + GTK_CONTAINER (widget)->border_width;
+      int delta_y = shadow_height + GTK_CONTAINER (widget)->border_width;
+
       /* button */
       GTK_COMBO_BOX_SIZE_ALLOCATE_BUTTON
 
@@ -2292,38 +2296,40 @@
         child.x = allocation->x + req.width;
       else
         child.x = allocation->x;
+
       child.y = allocation->y;
       child.width = allocation->width - req.width;
       child.height = allocation->height;
 
       if (priv->cell_view_frame)
         {
-	  child.width = MAX (1, child.width);
-	  child.height = MAX (1, child.height);
+          child.x += delta_x;
+          child.y += delta_y;
+          child.width = MAX (1, child.width - delta_x * 2);
+          child.height = MAX (1, child.height - delta_y * 2);
           gtk_widget_size_allocate (priv->cell_view_frame, &child);
 
           /* the sample */
-	  if (priv->has_frame)
-	    {
-	      child.x +=
-		GTK_CONTAINER (priv->cell_view_frame)->border_width +
-		GTK_WIDGET (priv->cell_view_frame)->style->xthickness;
-	      child.y +=
-		GTK_CONTAINER (priv->cell_view_frame)->border_width +
-		GTK_WIDGET (priv->cell_view_frame)->style->ythickness;
-	      child.width -= 2 * (
-				  GTK_CONTAINER (priv->cell_view_frame)->border_width +
-				  GTK_WIDGET (priv->cell_view_frame)->style->xthickness);
-	      child.height -= 2 * (
-				   GTK_CONTAINER (priv->cell_view_frame)->border_width +
-				   GTK_WIDGET (priv->cell_view_frame)->style->ythickness);
-	    }
+          if (priv->has_frame)
+            {
+              delta_x = GTK_CONTAINER (priv->cell_view_frame)->border_width +
+                GTK_WIDGET (priv->cell_view_frame)->style->xthickness;
+              delta_y = GTK_CONTAINER (priv->cell_view_frame)->border_width +
+                GTK_WIDGET (priv->cell_view_frame)->style->ythickness;
+
+              child.x += delta_x;
+              child.y += delta_y;
+              child.width -= delta_x * 2;
+              child.height -= delta_y * 2;
+            }
+        }
+      else
+        {
+          child.x += delta_x;
+          child.y += delta_y;
+          child.width -= delta_x * 2;
+          child.height -= delta_y * 2;
         }
-      
-      child.x += shadow_width;
-      child.y += shadow_height;
-      child.width -= shadow_width * 2;
-      child.height -= shadow_height * 2;
       
       child.width = MAX (1, child.width);
       child.height = MAX (1, child.height);



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