[gtk+] menus: Use gtk_widget_measure to measure widget sizes
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] menus: Use gtk_widget_measure to measure widget sizes
- Date: Sat, 4 Mar 2017 07:58:43 +0000 (UTC)
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]