mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-06 15:13:57 +02:00
Force separate panel into the screen geometry.
This commit is contained in:
parent
728b1efb9a
commit
fe40464e33
1 changed files with 29 additions and 5 deletions
|
@ -356,11 +356,35 @@ QRect SeparatePanel::innerGeometry() const {
|
||||||
|
|
||||||
void SeparatePanel::initGeometry(QSize size) {
|
void SeparatePanel::initGeometry(QSize size) {
|
||||||
const auto active = QApplication::activeWindow();
|
const auto active = QApplication::activeWindow();
|
||||||
const auto center = !active
|
const auto available = !active
|
||||||
? QGuiApplication::primaryScreen()->geometry().center()
|
? QGuiApplication::primaryScreen()->availableGeometry()
|
||||||
: (active->isVisible() && active->isActiveWindow())
|
: active->windowHandle()->screen()->availableGeometry();
|
||||||
? active->geometry().center()
|
const auto parentGeometry = (active
|
||||||
: active->windowHandle()->screen()->geometry().center();
|
&& active->isVisible()
|
||||||
|
&& active->isActiveWindow())
|
||||||
|
? active->geometry()
|
||||||
|
: available;
|
||||||
|
|
||||||
|
auto center = parentGeometry.center();
|
||||||
|
if (size.height() > available.height()) {
|
||||||
|
size = QSize(size.width(), available.height());
|
||||||
|
}
|
||||||
|
if (center.x() + size.width() / 2
|
||||||
|
> available.x() + available.width()) {
|
||||||
|
center.setX(
|
||||||
|
available.x() + available.width() - size.width() / 2);
|
||||||
|
}
|
||||||
|
if (center.x() - size.width() / 2 < available.x()) {
|
||||||
|
center.setX(available.x() + size.width() / 2);
|
||||||
|
}
|
||||||
|
if (center.y() + size.height() / 2
|
||||||
|
> available.y() + available.height()) {
|
||||||
|
center.setY(
|
||||||
|
available.y() + available.height() - size.height() / 2);
|
||||||
|
}
|
||||||
|
if (center.y() - size.height() / 2 < available.y()) {
|
||||||
|
center.setY(available.y() + size.height() / 2);
|
||||||
|
}
|
||||||
_useTransparency = Ui::Platform::TranslucentWindowsSupported(center);
|
_useTransparency = Ui::Platform::TranslucentWindowsSupported(center);
|
||||||
_padding = _useTransparency
|
_padding = _useTransparency
|
||||||
? st::callShadow.extend
|
? st::callShadow.extend
|
||||||
|
|
Loading…
Add table
Reference in a new issue