mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-21 22:24:07 +01:00
Fix the menu position on macOS when using Qt 6.5 (#4595)
This commit is contained in:
parent
379cc5761c
commit
6672adf287
2 changed files with 20 additions and 19 deletions
|
@ -2,7 +2,11 @@
|
|||
|
||||
## Unversioned
|
||||
|
||||
## 2.4.3
|
||||
## Slated for 2.4.3
|
||||
|
||||
- Bugfix: Fixed the menu warping on macOS on Qt6. (#4595)
|
||||
|
||||
## 2.4.3 Beta
|
||||
|
||||
- Major: Added support for FrankerFaceZ animated emotes. (#4434)
|
||||
- Minor: Added the ability to reply to a message by `Shift + Right Click`ing the username. (#4424)
|
||||
|
|
|
@ -348,27 +348,24 @@ void Button::showMenu()
|
|||
if (!this->menu_)
|
||||
return;
|
||||
|
||||
auto point = [this] {
|
||||
auto point = this->mapToGlobal(
|
||||
QPoint(this->width() - this->menu_->width(), this->height()));
|
||||
auto menuSizeHint = this->menu_->sizeHint();
|
||||
auto point = this->mapToGlobal(
|
||||
QPoint(this->width() - menuSizeHint.width(), this->height()));
|
||||
|
||||
auto *screen = QApplication::screenAt(point);
|
||||
if (screen == nullptr)
|
||||
{
|
||||
screen = QApplication::primaryScreen();
|
||||
}
|
||||
auto bounds = screen->availableGeometry();
|
||||
auto *screen = QApplication::screenAt(point);
|
||||
if (screen == nullptr)
|
||||
{
|
||||
screen = QApplication::primaryScreen();
|
||||
}
|
||||
auto bounds = screen->availableGeometry();
|
||||
|
||||
if (point.y() + this->menu_->height() > bounds.bottom())
|
||||
{
|
||||
point.setY(point.y() - this->menu_->height() - this->height());
|
||||
}
|
||||
if (point.y() + menuSizeHint.height() > bounds.bottom())
|
||||
{
|
||||
// Menu doesn't fit going down, flip it to go up instead
|
||||
point.setY(point.y() - menuSizeHint.height() - this->height());
|
||||
}
|
||||
|
||||
return point;
|
||||
};
|
||||
|
||||
this->menu_->popup(point());
|
||||
this->menu_->move(point());
|
||||
this->menu_->popup(point);
|
||||
this->menuVisible_ = true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue