[gtk+] menus: Use gtk_widget_measure to measure widget sizes



commit 846e6dc0b1e531b90b6ad914b3fd0c2c2b989bc1
Author: Timm Bäder <mail baedert org>
Date:   Sat Mar 4 08:18:36 2017 +0100

    menus: Use gtk_widget_measure to measure widget sizes

 gtk/gtkmenu.c     |    9 ++++++---
 gtk/gtkmenubar.c  |   16 ++++++++--------
 gtk/gtkmenuitem.c |   16 ++++++++++------
 3 files changed, 24 insertions(+), 17 deletions(-)
---
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
index 105f98d..2a87460 100644
--- a/gtk/gtkmenu.c
+++ b/gtk/gtkmenu.c
@@ -2771,8 +2771,10 @@ calculate_line_heights (GtkMenu *menu,
 
       part = avail_width / (r - l);
 
-      gtk_widget_get_preferred_height_for_width (child, part,
-                                                 &child_min, &child_nat);
+      gtk_widget_measure (child, GTK_ORIENTATION_VERTICAL,
+                          part,
+                          &child_min, &child_nat,
+                          NULL, NULL);
 
       gtk_menu_item_toggle_size_request (GTK_MENU_ITEM (child), &toggle_size);
 
@@ -3028,7 +3030,8 @@ static void gtk_menu_measure (GtkWidget      *widget,
            * case the toggle size request depends on the size
            * request of a child of the child (e.g. for ImageMenuItem)
            */
-           gtk_widget_get_preferred_width (child, &child_min, &child_nat);
+           gtk_widget_measure (child, GTK_ORIENTATION_HORIZONTAL,
+                               -1, &child_min, &child_nat, NULL, NULL);
 
            gtk_menu_item_toggle_size_request (GTK_MENU_ITEM (child), &toggle_size);
            max_toggle_size = MAX (max_toggle_size, toggle_size);
diff --git a/gtk/gtkmenubar.c b/gtk/gtkmenubar.c
index 2d9439c..d7470fc 100644
--- a/gtk/gtkmenubar.c
+++ b/gtk/gtkmenubar.c
@@ -454,10 +454,10 @@ gtk_menu_bar_allocate (GtkCssGadget        *gadget,
             continue;
 
           request.data = child;
-          gtk_widget_get_preferred_width_for_height (child, 
-                                                     remaining_space.height,
-                                                     &request.minimum_size, 
-                                                     &request.natural_size);
+          gtk_widget_measure (child, GTK_ORIENTATION_HORIZONTAL,
+                              remaining_space.height,
+                              &request.minimum_size, &request.natural_size,
+                              NULL, NULL);
           gtk_menu_item_toggle_size_request (GTK_MENU_ITEM (child),
                                              &toggle_size);
           request.minimum_size += toggle_size;
@@ -508,10 +508,10 @@ gtk_menu_bar_allocate (GtkCssGadget        *gadget,
             continue;
 
           request.data = child;
-          gtk_widget_get_preferred_height_for_width (child, 
-                                                     remaining_space.width,
-                                                     &request.minimum_size, 
-                                                     &request.natural_size);
+          gtk_widget_measure (child, GTK_ORIENTATION_VERTICAL,
+                              remaining_space.width,
+                              &request.minimum_size, &request.natural_size,
+                              NULL, NULL);
           gtk_menu_item_toggle_size_request (GTK_MENU_ITEM (child),
                                              &toggle_size);
           request.minimum_size += toggle_size;
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c
index 16a6e16..ab780fc 100644
--- a/gtk/gtkmenuitem.c
+++ b/gtk/gtkmenuitem.c
@@ -444,7 +444,8 @@ gtk_menu_item_real_get_width (GtkWidget *widget,
     {
       gint child_min, child_nat;
 
-      gtk_widget_get_preferred_width (child, &child_min, &child_nat);
+      gtk_widget_measure (child, GTK_ORIENTATION_HORIZONTAL, -1,
+                          &child_min, &child_nat, NULL, NULL);
 
       if ((priv->submenu && !GTK_IS_MENU_BAR (parent)) || priv->reserve_indicator)
        {
@@ -511,14 +512,17 @@ gtk_menu_item_real_get_height (GtkWidget *widget,
       if (for_size != -1)
         {
           avail_size -= arrow_size;
-          gtk_widget_get_preferred_height_for_width (child,
-                                                     avail_size,
-                                                     &child_min,
-                                                     &child_nat);
+          gtk_widget_measure (child, GTK_ORIENTATION_VERTICAL,
+                              avail_size,
+                              &child_min, &child_nat,
+                              NULL, NULL);
         }
       else
         {
-          gtk_widget_get_preferred_height (child, &child_min, &child_nat);
+          gtk_widget_measure (child, GTK_ORIENTATION_VERTICAL, -1,
+                              &child_min, &child_nat,
+                              NULL, NULL);
+
         }
 
       min_height += child_min;


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