[gtk+] window: Fix tooltip allocation



commit c910a955d17a1fe3442a64105f40fb7faff360d3
Author: Timm Bäder <mail baedert org>
Date:   Fri Jan 12 22:22:51 2018 +0100

    window: Fix tooltip allocation
    
    Using get_preferred_size here does not work since it computes the
    minimum height for the minimum width, but we want to know the minimum
    height for the current width.

 gtk/gtkwindow.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 910264e..99d5891 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -8976,7 +8976,7 @@ gtk_window_move_resize (GtkWindow *window)
   else
     {
       GtkAllocation allocation, clip;
-      GtkRequisition minsize;
+      int min_width, min_height;
 
       /* Handle any position changes.
        */
@@ -8986,15 +8986,18 @@ gtk_window_move_resize (GtkWindow *window)
                            new_request.x, new_request.y);
         }
 
-      gtk_widget_get_preferred_size (widget, &minsize, NULL);
+      gtk_widget_measure (widget, GTK_ORIENTATION_HORIZONTAL, current_height,
+                          &min_width, NULL, NULL, NULL);
+      gtk_widget_measure (widget, GTK_ORIENTATION_VERTICAL, current_width,
+                          &min_height, NULL, NULL, NULL);
 
       /* Our configure request didn't change size, but maybe some of
        * our child widgets have. Run a size allocate with our current
        * size to make sure that we re-layout our child widgets. */
       allocation.x = 0;
       allocation.y = 0;
-      allocation.width = MAX (current_width, minsize.width);
-      allocation.height = MAX (current_height, minsize.height);
+      allocation.width = MAX (current_width, min_width);
+      allocation.height = MAX (current_height, min_height);
 
       gtk_widget_size_allocate (widget, &allocation, -1, &clip);
     }


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