Mercurial > minori
comparison dep/animia/src/animia.cc @ 236:4d461ef7d424
HUGE UPDATE: convert build system to autotools
why? because cmake sucks :)
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Fri, 19 Jan 2024 00:24:02 -0500 |
| parents | 031a257ee019 |
| children |
comparison
equal
deleted
inserted
replaced
| 235:593108b3d555 | 236:4d461ef7d424 |
|---|---|
| 25 return true; | 25 return true; |
| 26 | 26 |
| 27 return false; | 27 return false; |
| 28 } | 28 } |
| 29 | 29 |
| 30 static bool IsWindowInList(const Player& player, const std::string& name) { | 30 static bool IsWindowInList(const Player& player, const Window& window) { |
| 31 // if (util::CheckPattern(player.window_title_format, window.text)) | |
| 32 // return true; | |
| 33 | |
| 31 for (const auto& pattern : player.windows) | 34 for (const auto& pattern : player.windows) |
| 32 if (util::CheckPattern(pattern, name)) | 35 if (util::CheckPattern(pattern, window.class_name)) |
| 33 return true; | 36 return true; |
| 34 | 37 |
| 35 return false; | 38 return false; |
| 36 } | 39 } |
| 37 | 40 |
| 63 }; | 66 }; |
| 64 | 67 |
| 65 if (!internal::EnumerateOpenProcesses(process_proc)) | 68 if (!internal::EnumerateOpenProcesses(process_proc)) |
| 66 return false; | 69 return false; |
| 67 | 70 |
| 68 /* Then add our cool windows. | |
| 69 Note: X11 is stupid and there's no reliable way to get a PID from a given window. | |
| 70 This is because some windows might not even have a process attached to them. | |
| 71 We should set the PID of the process if we can get it, but that'll be for when | |
| 72 I can actually be arsed to implement the X11 backend. */ | |
| 73 auto window_proc = [&](const Process& process, const Window& window) -> bool { | 71 auto window_proc = [&](const Process& process, const Window& window) -> bool { |
| 74 for (const auto& player : players) { | 72 for (const auto& player : players) { |
| 75 if (!internal::PlayerHasStrategy(player, Strategy::WindowTitle)) | 73 if (internal::IsWindowInList(player, window)) |
| 76 continue; | 74 results.push_back({ResultType::Window, player, process, window, {}}); |
| 75 } | |
| 77 | 76 |
| 78 if (!internal::IsWindowInList(player, window.class_name)) | |
| 79 continue; | |
| 80 | |
| 81 results.push_back({ResultType::Window, player, process, window, {}}); | |
| 82 break; | |
| 83 } | |
| 84 return true; | 77 return true; |
| 85 }; | 78 }; |
| 86 | 79 |
| 87 if (!internal::EnumerateWindows(window_proc)) | 80 if (!internal::EnumerateWindows(window_proc)) |
| 88 return false; | 81 return false; |
