diff --git a/src/ShellClients/HideTracker.vala b/src/ShellClients/HideTracker.vala index ee6f9cd26..092b26c54 100644 --- a/src/ShellClients/HideTracker.vala +++ b/src/ShellClients/HideTracker.vala @@ -171,7 +171,7 @@ public class Gala.HideTracker : Object { continue; } - if (!panel.window.get_frame_rect ().overlap (window.get_frame_rect ())) { + if (!panel.get_custom_window_rect ().overlap (window.get_frame_rect ())) { continue; } diff --git a/src/WindowManager.vala b/src/WindowManager.vala index 37d69c639..0819e9922 100644 --- a/src/WindowManager.vala +++ b/src/WindowManager.vala @@ -97,7 +97,7 @@ namespace Gala { #else private Meta.Rectangle old_rect_size_change; #endif - private Clutter.Actor latest_window_snapshot; + private Clutter.Actor? latest_window_snapshot; private GLib.Settings behavior_settings; private GLib.Settings new_behavior_settings; @@ -1402,13 +1402,13 @@ namespace Gala { latest_window_snapshot.restore_easing_state (); ulong maximize_old_handler_id = 0UL; - maximize_old_handler_id = latest_window_snapshot.transitions_completed.connect (() => { - latest_window_snapshot.disconnect (maximize_old_handler_id); - latest_window_snapshot.destroy (); + maximize_old_handler_id = latest_window_snapshot.transitions_completed.connect ((snapshot) => { + snapshot.disconnect (maximize_old_handler_id); + snapshot.destroy (); actor.set_translation (0.0f, 0.0f, 0.0f); }); - latest_window_snapshot.restore_easing_state (); + latest_window_snapshot = null; actor.set_pivot_point (0.0f, 0.0f); actor.set_translation (old_rect_size_change.x - ex, old_rect_size_change.y - ey, 0.0f); @@ -1775,11 +1775,13 @@ namespace Gala { latest_window_snapshot.restore_easing_state (); ulong unmaximize_old_handler_id = 0UL; - unmaximize_old_handler_id = latest_window_snapshot.transitions_completed.connect (() => { - latest_window_snapshot.disconnect (unmaximize_old_handler_id); - latest_window_snapshot.destroy (); + unmaximize_old_handler_id = latest_window_snapshot.transitions_completed.connect ((snapshot) => { + snapshot.disconnect (unmaximize_old_handler_id); + snapshot.destroy (); }); + latest_window_snapshot = null; + actor.set_pivot_point (0.0f, 0.0f); actor.set_position (ex, ey); actor.set_translation (-ex + offset_x * (1.0f / scale_x - 1.0f) + old_rect_size_change.x, -ey + offset_y * (1.0f / scale_y - 1.0f) + old_rect_size_change.y, 0.0f);