@@ -30,38 +30,43 @@ public class Gala.WindowDragProvider : Object {
3030
3131 construct {
3232 display. grab_op_begin. connect ((grabbed_window, grab_op) = > {
33- if (grab_op == MOVING ) {
34- unowned var cursor_tracker = display. get_cursor_tracker ();
35- position_invalidated_id = cursor_tracker. position_invalidated. connect (() = > {
36- Graphene . Point pointer;
37- cursor_tracker. get_pointer (out pointer, null );
38-
39- foreach (unowned var window in display. list_all_windows ()) {
40- if (window. window_type == DOCK ) {
41- var buffer_rect = window. get_buffer_rect ();
42- #if HAS_MUTTER48
43- if (buffer_rect. contains_pointf (pointer. x, pointer. y)) {
44- #else
45- if (buffer_rect. contains_rect ({ (int ) pointer. x, (int ) pointer. y, 0 , 0 })) {
46- #endif
47- if (previous_dock_window != window) {
48- notify_enter (grabbed_window. get_id ());
49- previous_dock_window = window;
50- } else {
51- notify_motion ((int ) pointer. x - buffer_rect. x, (int ) pointer. y - buffer_rect. y);
52- }
53-
54- return ;
33+ if (grab_op != MOVING ) {
34+ return ;
35+ }
36+ #if HAS_MUTTER48
37+ unowned var cursor_tracker = display. get_compositor (). get_backend (). get_cursor_tracker ();
38+ #else
39+ unowned var cursor_tracker = display. get_cursor_tracker ();
40+ #endif
41+ position_invalidated_id = cursor_tracker. position_invalidated. connect ((cursor_tracker) = > {
42+ Graphene . Point pointer;
43+ cursor_tracker. get_pointer (out pointer, null );
44+
45+ foreach (unowned var window in display. list_all_windows ()) {
46+ if (window. window_type == DOCK ) {
47+ var buffer_rect = window. get_buffer_rect ();
48+ #if HAS_MUTTER48
49+ if (buffer_rect. contains_pointf (pointer. x, pointer. y)) {
50+ #else
51+ if (buffer_rect. contains_rect ({ (int ) pointer. x, (int ) pointer. y, 0 , 0 })) {
52+ #endif
53+ if (previous_dock_window != window) {
54+ notify_enter (grabbed_window. get_id ());
55+ previous_dock_window = window;
56+ } else {
57+ notify_motion ((int ) pointer. x - buffer_rect. x, (int ) pointer. y - buffer_rect. y);
5558 }
59+
60+ return ;
5661 }
5762 }
63+ }
5864
59- if (previous_dock_window != null ) {
60- notify_leave ();
61- previous_dock_window = null ;
62- }
63- });
64- }
65+ if (previous_dock_window != null ) {
66+ notify_leave ();
67+ previous_dock_window = null ;
68+ }
69+ });
6570 });
6671
6772 display. grab_op_end. connect ((grabbed_window, grab_op) = > {
@@ -70,7 +75,11 @@ public class Gala.WindowDragProvider : Object {
7075 }
7176
7277 if (position_invalidated_id > 0 ) {
78+ #if HAS_MUTTER48
79+ unowned var cursor_tracker = display. get_compositor (). get_backend (). get_cursor_tracker ();
80+ #else
7381 unowned var cursor_tracker = display. get_cursor_tracker ();
82+ #endif
7483 cursor_tracker. disconnect (position_invalidated_id);
7584 position_invalidated_id = 0 ;
7685
0 commit comments