scrolling: force instant change on manual resize

fixes #388
This commit is contained in:
Vaxry 2025-06-15 11:39:26 +02:00
parent a79dc40e61
commit 4783860953
Signed by: vaxry
GPG key ID: 665806380871D640
2 changed files with 5 additions and 5 deletions

View file

@ -223,7 +223,7 @@ SP<SColumnData> SWorkspaceData::atCenter() {
return nullptr; return nullptr;
} }
void SWorkspaceData::recalculate() { void SWorkspaceData::recalculate(bool forceInstant) {
static const auto PFSONONE = CConfigValue<Hyprlang::INT>("plugin:hyprscrolling:fullscreen_on_one_column"); static const auto PFSONONE = CConfigValue<Hyprlang::INT>("plugin:hyprscrolling:fullscreen_on_one_column");
if (!workspace || !workspace) { if (!workspace || !workspace) {
@ -252,7 +252,7 @@ void SWorkspaceData::recalculate() {
currentTop += WINDOW->windowSize * USABLE.h; currentTop += WINDOW->windowSize * USABLE.h;
layout->applyNodeDataToWindow(WINDOW, false); layout->applyNodeDataToWindow(WINDOW, forceInstant);
} }
currentLeft += ITEM_WIDTH; currentLeft += ITEM_WIDTH;
@ -634,7 +634,7 @@ void CScrollingLayout::resizeActiveWindow(const Vector2D& delta, eRectCorner cor
} }
} }
DATA->column->workspace->recalculate(); DATA->column->workspace->recalculate(true);
} }
void CScrollingLayout::fullscreenRequestForWindow(PHLWINDOW pWindow, const eFullscreenMode CURRENT_EFFECTIVE_MODE, const eFullscreenMode EFFECTIVE_MODE) { void CScrollingLayout::fullscreenRequestForWindow(PHLWINDOW pWindow, const eFullscreenMode CURRENT_EFFECTIVE_MODE, const eFullscreenMode EFFECTIVE_MODE) {

View file

@ -69,7 +69,7 @@ struct SWorkspaceData {
void centerCol(SP<SColumnData> c); void centerCol(SP<SColumnData> c);
void fitCol(SP<SColumnData> c); void fitCol(SP<SColumnData> c);
void recalculate(); void recalculate(bool forceInstant = false);
CScrollingLayout* layout = nullptr; CScrollingLayout* layout = nullptr;
WP<SWorkspaceData> self; WP<SWorkspaceData> self;
@ -112,7 +112,7 @@ class CScrollingLayout : public IHyprLayout {
SP<SScrollingWindowData> dataFor(PHLWINDOW w); SP<SScrollingWindowData> dataFor(PHLWINDOW w);
SP<SWorkspaceData> currentWorkspaceData(); SP<SWorkspaceData> currentWorkspaceData();
void applyNodeDataToWindow(SP<SScrollingWindowData> node, bool force); void applyNodeDataToWindow(SP<SScrollingWindowData> node, bool instant);
friend struct SWorkspaceData; friend struct SWorkspaceData;
}; };