mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-06 19:26:39 +02:00
Common: remove hwnd_data_cache (#1223)
The cache was introduced to improve performance by not querying the OS for the window process path every time we need to check if the window is interesting to FancyZones. Since then other changes were made to the the way we check the windows. Right now, the IsInterestingWindow function is called when: 1) WinKey + arrows are used 2) window is started to be dragged 3) window is created 1) and 2) are initiated by the user, happen only once per interaction so their performance impact can be dismissed. The 3) happens all the time but for the most part the check for WS_CHILD or GetAncestor(window, GA_ROOT) == window will filter those out. In the end, only top-level windows will be queried for their path. Removing the cache improves code readability and will make code maintenance easier.
This commit is contained in:
committed by
GitHub
parent
5d8e894802
commit
09d1af9c46
@@ -12,14 +12,16 @@ std::optional<RECT> get_button_pos(HWND hwnd);
|
||||
std::optional<RECT> get_window_pos(HWND hwnd);
|
||||
// Gets mouse postion.
|
||||
std::optional<POINT> get_mouse_pos();
|
||||
// Gets active window, filtering out all "non standard" windows like the taskbar, etc.
|
||||
HWND get_filtered_active_window();
|
||||
|
||||
// Gets window ancestor (usualy the window we want to do stuff with), filtering out all "non standard" windows like the taskbar, etc. and provide the app process path
|
||||
struct WindowAndProcPath {
|
||||
HWND hwnd = nullptr;
|
||||
std::wstring process_path;
|
||||
};
|
||||
WindowAndProcPath get_filtered_base_window_and_path(HWND window);
|
||||
// Gets active window, filtering out all "non standard" windows like the taskbar, etc.
|
||||
HWND get_filtered_active_window();
|
||||
|
||||
|
||||
// Calculate sizes
|
||||
int width(const RECT& rect);
|
||||
|
||||
Reference in New Issue
Block a user