forked from quickshell/quickshell
core/popupwindow: wait for polish to reposition
This commit is contained in:
parent
b67f92bc13
commit
adcef7fc30
2 changed files with 17 additions and 2 deletions
|
|
@ -126,7 +126,20 @@ qint32 ProxyPopupWindow::relativeY() const {
|
|||
PopupAnchor* ProxyPopupWindow::anchor() { return &this->mAnchor; }
|
||||
|
||||
void ProxyPopupWindow::reposition() {
|
||||
if (this->window != nullptr) {
|
||||
PopupPositioner::instance()->reposition(&this->mAnchor, this->window);
|
||||
// not gated on pendingReposition as a polish might not be triggered in edge cases
|
||||
if (this->window) {
|
||||
this->pendingReposition = true;
|
||||
this->schedulePolish();
|
||||
}
|
||||
}
|
||||
|
||||
void ProxyPopupWindow::onPolished() {
|
||||
this->ProxyWindowBase::onPolished();
|
||||
if (this->pendingReposition) {
|
||||
this->pendingReposition = false;
|
||||
|
||||
if (this->window) {
|
||||
PopupPositioner::instance()->reposition(&this->mAnchor, this->window);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue