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:
parent
3be6a90ec7
commit
b06ee46854
|
@ -163,7 +163,7 @@
|
||||||
|
|
||||||
(inherit get-gtk set-size
|
(inherit get-gtk set-size
|
||||||
pre-on-char pre-on-event
|
pre-on-char pre-on-event
|
||||||
get-client-delta get-size
|
get-stored-client-delta get-size
|
||||||
get-parent get-eventspace
|
get-parent get-eventspace
|
||||||
adjust-client-delta
|
adjust-client-delta
|
||||||
queue-on-size)
|
queue-on-size)
|
||||||
|
@ -463,7 +463,7 @@
|
||||||
(define/override (internal-client-to-screen x y)
|
(define/override (internal-client-to-screen x y)
|
||||||
(gtk_window_set_gravity gtk GDK_GRAVITY_STATIC)
|
(gtk_window_set_gravity gtk GDK_GRAVITY_STATIC)
|
||||||
(let-values ([(dx dy) (gtk_window_get_position gtk)]
|
(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)
|
(gtk_window_set_gravity gtk GDK_GRAVITY_NORTH_WEST)
|
||||||
(set-box! x (+ (unbox x) (->normal (+ dx cdx))))
|
(set-box! x (+ (unbox x) (->normal (+ dx cdx))))
|
||||||
(set-box! y (+ (unbox y) (->normal (+ dy cdy))))))
|
(set-box! y (+ (unbox y) (->normal (+ dy cdy))))))
|
||||||
|
|
|
@ -834,6 +834,8 @@
|
||||||
|
|
||||||
(define/public (get-client-delta)
|
(define/public (get-client-delta)
|
||||||
(values 0 0))
|
(values 0 0))
|
||||||
|
(define/public (get-stored-client-delta)
|
||||||
|
(values client-delta-w client-delta-h))
|
||||||
|
|
||||||
(define/public (warp-pointer x y)
|
(define/public (warp-pointer x y)
|
||||||
(define xb (box x))
|
(define xb (box x))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user