Fix sizing issues and others

This commit is contained in:
IlyaShurupov 2024-10-11 01:48:21 +03:00
parent b2c393d23a
commit e9a4801d9e
12 changed files with 325 additions and 142 deletions

View file

@ -38,10 +38,6 @@ void DockLayoutWidget::process(const EventHandler& events) {
if (!mPreviewWidget) {
handleResizeEvents(events);
}
calculateSideAreas();
calculateResizeHandles();
updateChildSideWidgets();
}
void DockLayoutWidget::draw(Canvas& canvas) {
@ -146,7 +142,7 @@ void DockLayoutWidget::toggleWidgetVisibility(Side side) {
}
void DockLayoutWidget::calculateSideAreas() {
auto startArea = getRelativeArea();
auto startArea = getRelativeAreaCache();
for (auto& sideWidget : mSideWidgets) {
const auto side = sideWidget.order;
@ -246,7 +242,7 @@ void DockLayoutWidget::handleResizeEvents(const EventHandler& events) {
sideWidget.resizeHandle.active = true;
mResizing = true;
triggerWidgetUpdate();
triggerWidgetUpdate("new docked child");
}
}
}
@ -275,12 +271,12 @@ void DockLayoutWidget::updateChildSideWidgets() {
if (!isSideVisible(Side(i))) {
// widget->mEnable = false;
} else {
widget->setArea(mSideWidgets[i].area);
widget->setAreaCache(mSideWidgets[i].area);
// widget->mEnable = true;
}
}
if (mCenterWidget) mCenterWidget->setArea(mCenterArea);
if (mCenterWidget) mCenterWidget->setAreaCache(mCenterArea);
}
// update depth order
@ -369,3 +365,9 @@ auto DockLayoutWidget::getSideFromWidget(Widget* widget) -> Side {
}
return DockLayoutWidget::NONE;
}
void DockLayoutWidget::adjustChildrenRect() {
calculateSideAreas();
calculateResizeHandles();
updateChildSideWidgets();
}