diff --git a/gui-lib/mred/private/wx/gtk/frame.rkt b/gui-lib/mred/private/wx/gtk/frame.rkt index 9e6f3160..b36ecb6b 100644 --- a/gui-lib/mred/private/wx/gtk/frame.rkt +++ b/gui-lib/mred/private/wx/gtk/frame.rkt @@ -245,7 +245,8 @@ (define/override (set-child-size child-gtk x y w h) (gtk_fixed_move panel-gtk child-gtk (->screen x) (->screen y)) ;; gtk3: we expect a panel in a frame to be always visible, so - ;; this size erquest should work + ;; this size request should work + (avoid-preferred-size-warning child-gtk) (gtk_widget_set_size_request child-gtk (->screen w) (->screen h))) (define/public (on-close) #t) diff --git a/gui-lib/mred/private/wx/gtk/panel.rkt b/gui-lib/mred/private/wx/gtk/panel.rkt index 7d89fd3e..aedef5f4 100644 --- a/gui-lib/mred/private/wx/gtk/panel.rkt +++ b/gui-lib/mred/private/wx/gtk/panel.rkt @@ -144,6 +144,7 @@ (begin (gtk_widget_show child-gtk) #t))) + (avoid-preferred-size-warning child-gtk) (gtk_widget_set_size_request child-gtk (->screen w) (->screen h)) (when re-hide? (gtk_widget_hide child-gtk))))) @@ -199,7 +200,7 @@ (set-size 0 0 (if border-gtk 3 1) (if border-gtk 3 1)) (when border-gtk (adjust-client-delta 2 2)) - + (connect-key-and-mouse gtk) (gtk_widget_add_events gtk (bitwise-ior GDK_BUTTON_PRESS_MASK GDK_BUTTON_RELEASE_MASK diff --git a/gui-lib/mred/private/wx/gtk/window.rkt b/gui-lib/mred/private/wx/gtk/window.rkt index 8d0ee892..ff84961b 100644 --- a/gui-lib/mred/private/wx/gtk/window.rkt +++ b/gui-lib/mred/private/wx/gtk/window.rkt @@ -55,6 +55,8 @@ widget-allocation widget-parent + avoid-preferred-size-warning + the-accelerator-group gtk_window_add_accel_group gtk_menu_set_accel_group @@ -102,6 +104,14 @@ (define-gtk gtk_widget_get_scale_factor (_fun _GtkWidget -> _int) #:fail (lambda () (lambda (gtk) 1))) +(define (avoid-preferred-size-warning gtk) + ;; If we don't ask for a widget's size in the right way, + ;; GTK3 may report a warning; this query avoids the + ;; warning. + (when gtk3? + (define req (make-GtkRequisition 0 0)) + (gtk_widget_get_preferred_size gtk req #f))) + (define-gdk gdk_keyboard_grab (_fun _GdkWindow _gboolean _int -> _void)) (define-gdk gdk_keyboard_ungrab (_fun _int -> _void))