gardesk/tarmac / 75838d6

Browse files

show_window: backstop AX position with skylight move_window

Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
75838d6d1e400b0848198bc49f0644051330ca04
Parents
fca00a7
Tree
aa46301

1 changed file

StatusFile+-
M tarmac/src/core/state.rs 6 0
tarmac/src/core/state.rsmodified
@@ -542,6 +542,12 @@ impl WmState {
542
         let _ = ax_set_size(ax_ref, rect.width, rect.height);
542
         let _ = ax_set_size(ax_ref, rect.width, rect.height);
543
         let _ = ax_set_position(ax_ref, rect.x, rect.y);
543
         let _ = ax_set_position(ax_ref, rect.x, rect.y);
544
         let _ = ax_set_size(ax_ref, rect.width, rect.height);
544
         let _ = ax_set_size(ax_ref, rect.width, rect.height);
545
+        // Some apps silently ignore AX-set-position (observed: windows that
546
+        // were previously fullscreen/zoomed, or processes whose AX state has
547
+        // diverged from the WindowServer). Backstop the AX move with a direct
548
+        // SkyLight move so the visible position matches what we asked for.
549
+        // Idempotent for windows already at (rect.x, rect.y).
550
+        let _ = crate::platform::skylight::move_window(wid, rect.x, rect.y);
545
         let _ = crate::platform::skylight::set_window_group_system_alpha(wid, 1.0);
551
         let _ = crate::platform::skylight::set_window_group_system_alpha(wid, 1.0);
546
         let _ = crate::platform::skylight::set_window_group_alpha(wid, 1.0);
552
         let _ = crate::platform::skylight::set_window_group_alpha(wid, 1.0);
547
 
553