window: use stored size for new floating window when persistentsize is set (#10212)
* fix(window): use stored size for new floating window when persistentsize is set. fix hyprwm#9422.
* fix: replace `std::any_of` with `std::ranges:any_of`
* fix: use initialClass and initialTitle when storing sizes on close
* fix: add `xdgTag` as a new indicator
* fix: no {}
* fix: format with clang-format
This commit is contained in:
parent
ec93f8a1cd
commit
930eeac900
3 changed files with 32 additions and 7 deletions
|
|
@ -3043,13 +3043,18 @@ void CConfigManager::ensurePersistentWorkspacesPresent() {
|
|||
}
|
||||
|
||||
void CConfigManager::storeFloatingSize(PHLWINDOW window, const Vector2D& size) {
|
||||
Debug::log(LOG, "storing floating size {}x{} for window {}::{}", size.x, size.y, window->m_class, window->m_title);
|
||||
SFloatCache id{window};
|
||||
Debug::log(LOG, "storing floating size {}x{} for window {}::{}", size.x, size.y, window->m_initialClass, window->m_initialTitle);
|
||||
// true -> use m_initialClass and m_initialTitle
|
||||
SFloatCache id{window, true};
|
||||
m_mStoredFloatingSizes[id] = size;
|
||||
}
|
||||
|
||||
std::optional<Vector2D> CConfigManager::getStoredFloatingSize(PHLWINDOW window) {
|
||||
SFloatCache id{window};
|
||||
// At startup, m_initialClass and m_initialTitle are undefined
|
||||
// and m_class and m_title are just "initial" ones.
|
||||
// false -> use m_class and m_title
|
||||
SFloatCache id{window, false};
|
||||
Debug::log(LOG, "Hash for window {}::{} = {}", window->m_class, window->m_title, id.hash);
|
||||
if (m_mStoredFloatingSizes.contains(id)) {
|
||||
Debug::log(LOG, "got stored size {}x{} for window {}::{}", m_mStoredFloatingSizes[id].x, m_mStoredFloatingSizes[id].y, window->m_class, window->m_title);
|
||||
return m_mStoredFloatingSizes[id];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue