[gtk+] overlay: factor out gtk_overlay_get_main_widget_allocation



commit 421d27c8581ce3a986c13577bbc7bcbc9821cd4f
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Wed Feb 29 12:20:25 2012 -0500

    overlay: factor out gtk_overlay_get_main_widget_allocation
    
    This will be used later in a subsequent commit.

 gtk/gtkoverlay.c |   61 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 36 insertions(+), 25 deletions(-)
---
diff --git a/gtk/gtkoverlay.c b/gtk/gtkoverlay.c
index 66fc9ee..331d9ee 100644
--- a/gtk/gtkoverlay.c
+++ b/gtk/gtkoverlay.c
@@ -114,6 +114,41 @@ gtk_overlay_create_child_window (GtkOverlay *overlay,
 }
 
 static void
+gtk_overlay_get_main_widget_allocation (GtkOverlay *overlay,
+                                        GtkAllocation *main_alloc_out)
+{
+  GtkWidget *main_widget;
+  GtkAllocation main_alloc;
+
+  main_widget = gtk_bin_get_child (GTK_BIN (overlay));
+
+  /* special-case scrolled windows */
+  if (GTK_IS_SCROLLED_WINDOW (main_widget))
+    {
+      GtkWidget *grandchild;
+      gint x, y;
+
+      grandchild = gtk_bin_get_child (GTK_BIN (main_widget));
+      res = gtk_widget_translate_coordinates (grandchild, main_widget, 0, 0, &x, &y);
+
+      main_alloc.x = x;
+      main_alloc.y = y;
+      main_alloc.width = gtk_widget_get_allocated_width (grandchild);
+      main_alloc.height = gtk_widget_get_allocated_height (grandchild);
+    }
+  else
+    {
+      main_alloc.x = 0;
+      main_alloc.y = 0;
+      main_alloc.width = gtk_widget_get_allocated_width (main_widget);
+      main_alloc.height = gtk_widget_get_allocated_height (main_widget);
+    }
+
+  if (main_alloc_out)
+    *main_alloc_out = main_alloc;
+}
+
+static void
 gtk_overlay_child_allocate (GtkOverlay      *overlay,
                             GtkOverlayChild *child)
 {
@@ -247,36 +282,12 @@ gtk_overlay_get_child_position (GtkOverlay    *overlay,
                                 GtkWidget     *widget,
                                 GtkAllocation *alloc)
 {
-  GtkWidget *main_widget;
   GtkAllocation main_alloc;
   GtkRequisition req;
   GtkAlign halign;
   GtkTextDirection direction;
 
-  main_widget = gtk_bin_get_child (GTK_BIN (overlay));
-
-  /* special-case scrolled windows */
-  if (GTK_IS_SCROLLED_WINDOW (main_widget))
-    {
-      GtkWidget *grandchild;
-      gint x, y;
-
-      grandchild = gtk_bin_get_child (GTK_BIN (main_widget));
-      gtk_widget_translate_coordinates (grandchild, main_widget, 0, 0, &x, &y);
-
-      main_alloc.x = x;
-      main_alloc.y = y;
-      main_alloc.width = gtk_widget_get_allocated_width (grandchild);
-      main_alloc.height = gtk_widget_get_allocated_height (grandchild);
-    }
-  else
-    {
-      main_alloc.x = 0;
-      main_alloc.y = 0;
-      main_alloc.width = gtk_widget_get_allocated_width (main_widget);
-      main_alloc.height = gtk_widget_get_allocated_height (main_widget);
-    }
-
+  gtk_overlay_get_main_widget_allocation (overlay, &main_alloc);
   gtk_widget_get_preferred_size (widget, NULL, &req);
 
   alloc->x = main_alloc.x;



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