summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimm Bäder <mail@baedert.org>2017-03-04 08:18:36 +0100
committerTimm Bäder <mail@baedert.org>2017-03-04 08:44:49 +0100
commit846e6dc0b1e531b90b6ad914b3fd0c2c2b989bc1 (patch)
tree3246783439df7d8ee0514d5a5b528b23603ab05e
parentb16a322c4c38bf9d7ef02586063375250f8ae7d1 (diff)
downloadgtk+-846e6dc0b1e531b90b6ad914b3fd0c2c2b989bc1.tar.gz
menus: Use gtk_widget_measure to measure widget sizes
-rw-r--r--gtk/gtkmenu.c9
-rw-r--r--gtk/gtkmenubar.c16
-rw-r--r--gtk/gtkmenuitem.c16
3 files changed, 24 insertions, 17 deletions
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
index 105f98d70d..2a87460e21 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 2d9439cea6..d7470fcb44 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 16a6e16b71..ab780fcf4b 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;