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.
This commit is contained in:
Matthew Flatt 2015-08-21 16:19:47 -06:00
parent 3be6a90ec7
commit b06ee46854
2 changed files with 4 additions and 2 deletions

View File

@ -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))))))

View File

@ -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))