From b06ee4685495f399d3485f456f1c4568316df4ed Mon Sep 17 00:00:00 2001 From: Matthew Flatt <mflatt@debian.local> Date: Fri, 21 Aug 2015 16:19:47 -0600 Subject: [PATCH] GTK+ 3: fix client->global in a frame with a menu bar It seems that the right answer was produced in GTK+ 2 due to a client-location callback, but change the code to use the intended approach of tracking the menu height. --- gui-lib/mred/private/wx/gtk/frame.rkt | 4 ++-- gui-lib/mred/private/wx/gtk/window.rkt | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gui-lib/mred/private/wx/gtk/frame.rkt b/gui-lib/mred/private/wx/gtk/frame.rkt index 2ccd2f94..28f0afd2 100644 --- a/gui-lib/mred/private/wx/gtk/frame.rkt +++ b/gui-lib/mred/private/wx/gtk/frame.rkt @@ -163,7 +163,7 @@ (inherit get-gtk set-size pre-on-char pre-on-event - get-client-delta get-size + get-stored-client-delta get-size get-parent get-eventspace adjust-client-delta queue-on-size) @@ -463,7 +463,7 @@ (define/override (internal-client-to-screen x y) (gtk_window_set_gravity gtk GDK_GRAVITY_STATIC) (let-values ([(dx dy) (gtk_window_get_position gtk)] - [(cdx cdy) (get-client-delta)]) + [(cdx cdy) (get-stored-client-delta)]) (gtk_window_set_gravity gtk GDK_GRAVITY_NORTH_WEST) (set-box! x (+ (unbox x) (->normal (+ dx cdx)))) (set-box! y (+ (unbox y) (->normal (+ dy cdy)))))) diff --git a/gui-lib/mred/private/wx/gtk/window.rkt b/gui-lib/mred/private/wx/gtk/window.rkt index 9ae6f6c0..ce3442c9 100644 --- a/gui-lib/mred/private/wx/gtk/window.rkt +++ b/gui-lib/mred/private/wx/gtk/window.rkt @@ -834,6 +834,8 @@ (define/public (get-client-delta) (values 0 0)) + (define/public (get-stored-client-delta) + (values client-delta-w client-delta-h)) (define/public (warp-pointer x y) (define xb (box x))