From 62da8afbe907bf80732f811d826852d31e68a2f9 Mon Sep 17 00:00:00 2001 From: phil294 Date: Sat, 12 Aug 2023 16:36:55 +0200 Subject: [PATCH] fix setting last found window in few commands --- src/cmd/x11/window/win-wait-active.cr | 1 + src/cmd/x11/window/win-wait-not-active.cr | 1 + src/cmd/x11/window/win-wait.cr | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/cmd/x11/window/win-wait-active.cr b/src/cmd/x11/window/win-wait-active.cr index 30a9bc5..6cc4d07 100644 --- a/src/cmd/x11/window/win-wait-active.cr +++ b/src/cmd/x11/window/win-wait-active.cr @@ -13,6 +13,7 @@ class Cmd::X11::Window::WinWaitActive < Cmd::Base is_active = ::Util::ExponentialBackOff.back_off(initial_interval: 5.milliseconds, factor: 1.15, max_interval: 0.8.seconds, timeout: seconds ? seconds.seconds : nil) do active = false Util.match(thread, match_conditions, empty_is_last_found: true, a_is_active: false) do |win| + thread.settings.last_found_window = win active = win == thread.runner.display.x_do.active_window end active diff --git a/src/cmd/x11/window/win-wait-not-active.cr b/src/cmd/x11/window/win-wait-not-active.cr index ef7b87e..da4682e 100644 --- a/src/cmd/x11/window/win-wait-not-active.cr +++ b/src/cmd/x11/window/win-wait-not-active.cr @@ -13,6 +13,7 @@ class Cmd::X11::Window::WinWaitNotActive < Cmd::Base is_not_active = ::Util::ExponentialBackOff.back_off(initial_interval: 5.milliseconds, factor: 1.15, max_interval: 0.8.seconds, timeout: seconds ? seconds.seconds : nil) do not_active = false Util.match(thread, match_conditions, empty_is_last_found: true, a_is_active: false) do |win| + thread.settings.last_found_window = win not_active = win != thread.runner.display.x_do.active_window end not_active diff --git a/src/cmd/x11/window/win-wait.cr b/src/cmd/x11/window/win-wait.cr index 8f13e29..468821a 100644 --- a/src/cmd/x11/window/win-wait.cr +++ b/src/cmd/x11/window/win-wait.cr @@ -11,7 +11,8 @@ class Cmd::X11::Window::WinWait < Cmd::Base match_conditions = args match_conditions.delete_at(2) match = ::Util::ExponentialBackOff.back_off(initial_interval: 20.milliseconds, factor: 1.15, max_interval: 0.8.seconds, timeout: seconds ? seconds.seconds : nil) do - Util.match(thread, match_conditions, empty_is_last_found: false, a_is_active: false) do |win| + # a_is_active: Not documented but appears to have been the case according to MinimizeToTrayMenu.ahk (not verified in any win ahk version) + Util.match(thread, match_conditions, empty_is_last_found: false, a_is_active: true) do |win| thread.settings.last_found_window = win end end