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;
}
void SWorkspaceData::recalculate() {
void SWorkspaceData::recalculate(bool forceInstant) {
static const auto PFSONONE = CConfigValue<Hyprlang::INT>("plugin:hyprscrolling:fullscreen_on_one_column");
if (!workspace || !workspace) {
@ -252,7 +252,7 @@ void SWorkspaceData::recalculate() {
currentTop += WINDOW->windowSize * USABLE.h;
layout->applyNodeDataToWindow(WINDOW, false);
layout->applyNodeDataToWindow(WINDOW, forceInstant);
}
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) {

View file

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