summaryrefslogtreecommitdiff
path: root/hyprtester/src/tests/main/layout.cpp
diff options
context:
space:
mode:
authorChris Naporlee <55722668+chrisn731@users.noreply.github.com>2026-03-28 11:30:25 -0400
committerGitHub <noreply@github.com>2026-03-28 15:30:25 +0000
commit3103119b7cdda67e1d43588ad07a80465626b3c2 (patch)
treef4e93492a8baa7f2ab840297a59559b74ed52815 /hyprtester/src/tests/main/layout.cpp
parent98036faba08c2654ceff4d9895ba1e13745f4710 (diff)
input: allow focus to switch to most recently used window on closed (#13769)
Diffstat (limited to 'hyprtester/src/tests/main/layout.cpp')
-rw-r--r--hyprtester/src/tests/main/layout.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/hyprtester/src/tests/main/layout.cpp b/hyprtester/src/tests/main/layout.cpp
index 186d7034..5be29a6f 100644
--- a/hyprtester/src/tests/main/layout.cpp
+++ b/hyprtester/src/tests/main/layout.cpp
@@ -103,6 +103,43 @@ static void testPosPreserve() {
Tests::killAllWindows();
}
+static bool testFocusMRUAfterClose() {
+ NLog::log("{}Testing focus after close (MRU order)", Colors::GREEN);
+
+ OK(getFromSocket("/reload"));
+ OK(getFromSocket("/keyword dwindle:default_split_ratio 1.25"));
+ OK(getFromSocket("/keyword input:focus_on_close 2"));
+
+ EXPECT(!!Tests::spawnKitty("kitty_A"), true);
+ EXPECT(!!Tests::spawnKitty("kitty_B"), true);
+ EXPECT(!!Tests::spawnKitty("kitty_C"), true);
+
+ OK(getFromSocket("/dispatch focuswindow class:kitty_A"));
+ OK(getFromSocket("/dispatch focuswindow class:kitty_B"));
+ OK(getFromSocket("/dispatch focuswindow class:kitty_C"));
+
+ OK(getFromSocket("/dispatch killactive"));
+ Tests::waitUntilWindowsN(2);
+
+ {
+ auto str = getFromSocket("/activewindow");
+ EXPECT(str.contains("class: kitty_B"), true);
+ }
+
+ OK(getFromSocket("/dispatch killactive"));
+ Tests::waitUntilWindowsN(1);
+
+ {
+ auto str = getFromSocket("/activewindow");
+ EXPECT(str.contains("class: kitty_A"), true);
+ }
+
+ NLog::log("{}Killing all windows", Colors::YELLOW);
+ Tests::killAllWindows();
+ EXPECT(Tests::windowCount(), 0);
+ return true;
+}
+
static bool test() {
NLog::log("{}Testing layout generic", Colors::GREEN);
@@ -115,6 +152,7 @@ static bool test() {
testCrashOnGeomUpdate();
testPosPreserve();
+ testFocusMRUAfterClose();
// clean up
NLog::log("Cleaning up", Colors::YELLOW);