Fix window extents terminology

Extents is a synonym of size but we're setting not window size.
This commit is contained in:
Ilya Fedin 2023-08-27 01:30:52 +04:00 committed by John Preston
parent 2dd3add5b3
commit bcf88b9065
8 changed files with 61 additions and 61 deletions

View file

@ -467,7 +467,7 @@ std::optional<bool> IsOverlapped(
return std::nullopt; return std::nullopt;
} }
bool WindowExtentsSupported() { bool WindowMarginsSupported() {
#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) #if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
using namespace QNativeInterface::Private; using namespace QNativeInterface::Private;
QWindow window; QWindow window;
@ -490,25 +490,25 @@ bool WindowExtentsSupported() {
return false; return false;
} }
void SetWindowExtents(not_null<QWidget*> widget, const QMargins &extents) { void SetWindowMargins(not_null<QWidget*> widget, const QMargins &margins) {
#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) #if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
using namespace QNativeInterface::Private; using namespace QNativeInterface::Private;
if (const auto native = not_null(widget->windowHandle()) if (const auto native = not_null(widget->windowHandle())
->nativeInterface<QWaylandWindow>()) { ->nativeInterface<QWaylandWindow>()) {
native->setCustomMargins(extents); native->setCustomMargins(margins);
return; return;
} }
#endif // Qt >= 6.5.0 #endif // Qt >= 6.5.0
#ifndef DESKTOP_APP_DISABLE_X11_INTEGRATION #ifndef DESKTOP_APP_DISABLE_X11_INTEGRATION
if (::Platform::IsX11()) { if (::Platform::IsX11()) {
SetXCBFrameExtents(widget, extents); SetXCBFrameExtents(widget, margins);
return; return;
} }
#endif // !DESKTOP_APP_DISABLE_X11_INTEGRATION #endif // !DESKTOP_APP_DISABLE_X11_INTEGRATION
} }
void UnsetWindowExtents(not_null<QWidget*> widget) { void UnsetWindowMargins(not_null<QWidget*> widget) {
#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) #if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
using namespace QNativeInterface::Private; using namespace QNativeInterface::Private;
if (const auto native = not_null(widget->windowHandle()) if (const auto native = not_null(widget->windowHandle())

View file

@ -27,14 +27,14 @@ inline constexpr bool UseMainQueueGeneric() {
return ::Platform::IsMacStoreBuild(); return ::Platform::IsMacStoreBuild();
} }
inline bool WindowExtentsSupported() { inline bool WindowMarginsSupported() {
return false; return false;
} }
inline void SetWindowExtents(not_null<QWidget*> widget, const QMargins &extents) { inline void SetWindowMargins(not_null<QWidget*> widget, const QMargins &margins) {
} }
inline void UnsetWindowExtents(not_null<QWidget*> widget) { inline void UnsetWindowMargins(not_null<QWidget*> widget) {
} }
inline void ShowWindowMenu(not_null<QWidget*> widget, const QPoint &point) { inline void ShowWindowMenu(not_null<QWidget*> widget, const QPoint &point) {

View file

@ -38,9 +38,9 @@ void DisableSystemWindowResize(not_null<QWidget*> widget, QSize ratio);
[[nodiscard]] constexpr bool UseMainQueueGeneric(); [[nodiscard]] constexpr bool UseMainQueueGeneric();
void DrainMainQueue(); // Needed only if UseMainQueueGeneric() is false. void DrainMainQueue(); // Needed only if UseMainQueueGeneric() is false.
[[nodiscard]] bool WindowExtentsSupported(); [[nodiscard]] bool WindowMarginsSupported();
void SetWindowExtents(not_null<QWidget*> widget, const QMargins &extents); void SetWindowMargins(not_null<QWidget*> widget, const QMargins &margins);
void UnsetWindowExtents(not_null<QWidget*> widget); void UnsetWindowMargins(not_null<QWidget*> widget);
void ShowWindowMenu(not_null<QWidget*> widget, const QPoint &point); void ShowWindowMenu(not_null<QWidget*> widget, const QPoint &point);
void FixPopupMenuNativeEmojiPopup(not_null<PopupMenu*> menu); void FixPopupMenuNativeEmojiPopup(not_null<PopupMenu*> menu);

View file

@ -286,7 +286,7 @@ DefaultWindowHelper::DefaultWindowHelper(not_null<RpWidget*> window)
} }
void DefaultWindowHelper::init() { void DefaultWindowHelper::init() {
if (WindowExtentsSupported()) { if (WindowMarginsSupported()) {
window()->setAttribute(Qt::WA_TranslucentBackground); window()->setAttribute(Qt::WA_TranslucentBackground);
} }
@ -356,7 +356,7 @@ void DefaultWindowHelper::init() {
bool titleShown, bool titleShown,
Qt::WindowStates windowState) { Qt::WindowStates windowState) {
window()->windowHandle()->setFlag(Qt::FramelessWindowHint, titleShown); window()->windowHandle()->setFlag(Qt::FramelessWindowHint, titleShown);
updateWindowExtents(); updateWindowMargins();
}, window()->lifetime()); }, window()->lifetime());
window()->events() | rpl::start_with_next([=](not_null<QEvent*> e) { window()->events() | rpl::start_with_next([=](not_null<QEvent*> e) {
@ -437,7 +437,7 @@ QMargins DefaultWindowHelper::frameMargins() {
} }
bool DefaultWindowHelper::hasShadow() const { bool DefaultWindowHelper::hasShadow() const {
return WindowExtentsSupported() && TranslucentWindowsSupported(); return WindowMarginsSupported() && TranslucentWindowsSupported();
} }
QMargins DefaultWindowHelper::resizeArea() const { QMargins DefaultWindowHelper::resizeArea() const {
@ -588,13 +588,13 @@ void DefaultWindowHelper::paintBorders(QPainter &p) {
borderColor); borderColor);
} }
void DefaultWindowHelper::updateWindowExtents() { void DefaultWindowHelper::updateWindowMargins() {
if (hasShadow() && !_title->isHidden()) { if (hasShadow() && !_title->isHidden()) {
SetWindowExtents(window(), resizeArea()); SetWindowMargins(window(), resizeArea());
_extentsSet = true; _marginsSet = true;
} else if (_extentsSet) { } else if (_marginsSet) {
UnsetWindowExtents(window()); UnsetWindowMargins(window());
_extentsSet = false; _marginsSet = false;
} }
} }

View file

@ -107,7 +107,7 @@ private:
[[nodiscard]] QMargins resizeArea() const; [[nodiscard]] QMargins resizeArea() const;
[[nodiscard]] Qt::Edges edgesFromPos(const QPoint &pos) const; [[nodiscard]] Qt::Edges edgesFromPos(const QPoint &pos) const;
void paintBorders(QPainter &p); void paintBorders(QPainter &p);
void updateWindowExtents(); void updateWindowMargins();
void updateCursor(Qt::Edges edges); void updateCursor(Qt::Edges edges);
[[nodiscard]] int titleHeight() const; [[nodiscard]] int titleHeight() const;
[[nodiscard]] QMargins bodyPadding() const; [[nodiscard]] QMargins bodyPadding() const;
@ -118,7 +118,7 @@ private:
std::array<QImage, 4> _sides; std::array<QImage, 4> _sides;
std::array<QImage, 4> _corners; std::array<QImage, 4> _corners;
object_ptr<RpWidget> _roundingOverlay = { nullptr }; object_ptr<RpWidget> _roundingOverlay = { nullptr };
bool _extentsSet = false; bool _marginsSet = false;
rpl::variable<Qt::WindowStates> _windowState = Qt::WindowNoState; rpl::variable<Qt::WindowStates> _windowState = Qt::WindowNoState;
}; };

View file

@ -42,14 +42,14 @@ inline constexpr bool UseMainQueueGeneric() {
return true; return true;
} }
inline bool WindowExtentsSupported() { inline bool WindowMarginsSupported() {
return false; return false;
} }
inline void SetWindowExtents(not_null<QWidget*> widget, const QMargins &extents) { inline void SetWindowMargins(not_null<QWidget*> widget, const QMargins &margins) {
} }
inline void UnsetWindowExtents(not_null<QWidget*> widget) { inline void UnsetWindowMargins(not_null<QWidget*> widget) {
} }
} // namespace Platform } // namespace Platform

View file

@ -314,19 +314,19 @@ void PopupMenu::validateCompositingSupport() {
std::max(line, additional.top()), std::max(line, additional.top()),
std::max(line, additional.right()), std::max(line, additional.right()),
std::max(line, additional.bottom())); std::max(line, additional.bottom()));
_extents = QMargins(); _margins = QMargins();
} else { } else {
_padding = QMargins( _padding = QMargins(
std::max(_st.shadow.extend.left(), additional.left()), std::max(_st.shadow.extend.left(), additional.left()),
std::max(_st.shadow.extend.top(), additional.top()), std::max(_st.shadow.extend.top(), additional.top()),
std::max(_st.shadow.extend.right(), additional.right()), std::max(_st.shadow.extend.right(), additional.right()),
std::max(_st.shadow.extend.bottom(), additional.bottom())); std::max(_st.shadow.extend.bottom(), additional.bottom()));
_extents = _padding - (additional - _additionalMenuExtents); _margins = _padding - (additional - _additionalMenuMargins);
} }
if (_extents.isNull()) { if (_margins.isNull()) {
Platform::UnsetWindowExtents(this); Platform::UnsetWindowMargins(this);
} else { } else {
Platform::SetWindowExtents(this, _extents); Platform::SetWindowMargins(this, _margins);
} }
_scroll->moveToLeft(_padding.left(), _padding.top()); _scroll->moveToLeft(_padding.left(), _padding.top());
handleMenuResize(); handleMenuResize();
@ -722,16 +722,16 @@ void PopupMenu::setForcedVerticalOrigin(VerticalOrigin origin) {
void PopupMenu::setAdditionalMenuPadding( void PopupMenu::setAdditionalMenuPadding(
QMargins padding, QMargins padding,
QMargins extents) { QMargins margins) {
Expects(padding.left() >= extents.left() Expects(padding.left() >= margins.left()
&& padding.right() >= extents.right() && padding.right() >= margins.right()
&& padding.top() >= extents.top() && padding.top() >= margins.top()
&& padding.bottom() >= extents.bottom()); && padding.bottom() >= margins.bottom());
if (_additionalMenuPadding != padding if (_additionalMenuPadding != padding
|| _additionalMenuExtents != extents) { || _additionalMenuMargins != margins) {
_additionalMenuPadding = padding; _additionalMenuPadding = padding;
_additionalMenuExtents = extents; _additionalMenuMargins = margins;
_roundingOverlay = nullptr; _roundingOverlay = nullptr;
} }
} }
@ -937,8 +937,8 @@ QMargins PopupMenu::preparedPadding() const {
return _padding; return _padding;
} }
QMargins PopupMenu::preparedExtents() const { QMargins PopupMenu::preparedMargins() const {
return _extents; return _margins;
} }
bool PopupMenu::useTransparency() const { bool PopupMenu::useTransparency() const {
@ -1010,21 +1010,21 @@ bool PopupMenu::prepareGeometryFor(const QPoint &p, PopupMenu *parent) {
auto r = screen ? screen->availableGeometry() : QRect(); auto r = screen ? screen->availableGeometry() : QRect();
const auto parentWidth = _parent ? _parent->inner().width() : 0; const auto parentWidth = _parent ? _parent->inner().width() : 0;
if (style::RightToLeft()) { if (style::RightToLeft()) {
const auto badLeft = !r.isNull() && w.x() - width() < r.x() - _extents.left(); const auto badLeft = !r.isNull() && w.x() - width() < r.x() - _margins.left();
if (forceRight || (badLeft && !forceLeft)) { if (forceRight || (badLeft && !forceLeft)) {
if (_parent && (r.isNull() || w.x() + parentWidth - _extents.left() - _extents.right() + width() - _extents.right() <= r.x() + r.width())) { if (_parent && (r.isNull() || w.x() + parentWidth - _margins.left() - _margins.right() + width() - _margins.right() <= r.x() + r.width())) {
w.setX(w.x() + parentWidth - _extents.left() - _extents.right()); w.setX(w.x() + parentWidth - _margins.left() - _margins.right());
} else { } else {
w.setX(r.x() - _extents.left()); w.setX(r.x() - _margins.left());
} }
} else { } else {
w.setX(w.x() - width()); w.setX(w.x() - width());
} }
} else { } else {
const auto badLeft = !r.isNull() && w.x() + width() - _extents.right() > r.x() + r.width(); const auto badLeft = !r.isNull() && w.x() + width() - _margins.right() > r.x() + r.width();
if (forceRight || (badLeft && !forceLeft)) { if (forceRight || (badLeft && !forceLeft)) {
if (_parent && (r.isNull() || w.x() - parentWidth + _extents.left() + _extents.right() - width() + _extents.right() >= r.x() - _extents.left())) { if (_parent && (r.isNull() || w.x() - parentWidth + _margins.left() + _margins.right() - width() + _margins.right() >= r.x() - _margins.left())) {
w.setX(w.x() + _extents.left() + _extents.right() - parentWidth - width() + _extents.left() + _extents.right()); w.setX(w.x() + _margins.left() + _margins.right() - parentWidth - width() + _margins.left() + _margins.right());
} else { } else {
w.setX(p.x() - width() + std::max( w.setX(p.x() - width() + std::max(
_additionalMenuPadding.right() - _st.shadow.extend.right(), _additionalMenuPadding.right() - _st.shadow.extend.right(),
@ -1033,29 +1033,29 @@ bool PopupMenu::prepareGeometryFor(const QPoint &p, PopupMenu *parent) {
origin = PanelAnimation::Origin::TopRight; origin = PanelAnimation::Origin::TopRight;
} }
} }
const auto badTop = !r.isNull() && w.y() + height() - _extents.bottom() > r.y() + r.height(); const auto badTop = !r.isNull() && w.y() + height() - _margins.bottom() > r.y() + r.height();
if (forceBottom || (badTop && !forceTop)) { if (forceBottom || (badTop && !forceTop)) {
if (_parent) { if (_parent) {
w.setY(r.y() + r.height() - height() + _extents.bottom()); w.setY(r.y() + r.height() - height() + _margins.bottom());
} else { } else {
w.setY(p.y() - height() + _extents.bottom()); w.setY(p.y() - height() + _margins.bottom());
origin = (origin == PanelAnimation::Origin::TopRight) origin = (origin == PanelAnimation::Origin::TopRight)
? PanelAnimation::Origin::BottomRight ? PanelAnimation::Origin::BottomRight
: PanelAnimation::Origin::BottomLeft; : PanelAnimation::Origin::BottomLeft;
} }
} }
if (!r.isNull()) { if (!r.isNull()) {
if (w.x() + width() - _extents.right() > r.x() + r.width()) { if (w.x() + width() - _margins.right() > r.x() + r.width()) {
w.setX(r.x() + r.width() + _extents.right() - width()); w.setX(r.x() + r.width() + _margins.right() - width());
} }
if (w.x() + _extents.left() < r.x()) { if (w.x() + _margins.left() < r.x()) {
w.setX(r.x() - _extents.left()); w.setX(r.x() - _margins.left());
} }
if (w.y() + height() - _extents.bottom() > r.y() + r.height()) { if (w.y() + height() - _margins.bottom() > r.y() + r.height()) {
w.setY(r.y() + r.height() + _extents.bottom() - height()); w.setY(r.y() + r.height() + _margins.bottom() - height());
} }
if (w.y() + _extents.top() < r.y()) { if (w.y() + _margins.top() < r.y()) {
w.setY(r.y() - _extents.top()); w.setY(r.y() - _margins.top());
} }
} }
move(w); move(w);

View file

@ -86,11 +86,11 @@ public:
void setForceWidth(int forceWidth); void setForceWidth(int forceWidth);
void setForcedOrigin(PanelAnimation::Origin origin); void setForcedOrigin(PanelAnimation::Origin origin);
void setForcedVerticalOrigin(VerticalOrigin origin); void setForcedVerticalOrigin(VerticalOrigin origin);
void setAdditionalMenuPadding(QMargins padding, QMargins extents); void setAdditionalMenuPadding(QMargins padding, QMargins margins);
[[nodiscard]] PanelAnimation::Origin preparedOrigin() const; [[nodiscard]] PanelAnimation::Origin preparedOrigin() const;
[[nodiscard]] QMargins preparedPadding() const; [[nodiscard]] QMargins preparedPadding() const;
[[nodiscard]] QMargins preparedExtents() const; [[nodiscard]] QMargins preparedMargins() const;
[[nodiscard]] bool useTransparency() const; [[nodiscard]] bool useTransparency() const;
[[nodiscard]] int scrollTop() const; [[nodiscard]] int scrollTop() const;
@ -197,9 +197,9 @@ private:
QRect _inner; QRect _inner;
QMargins _padding; QMargins _padding;
QMargins _extents; QMargins _margins;
QMargins _additionalMenuPadding; QMargins _additionalMenuPadding;
QMargins _additionalMenuExtents; QMargins _additionalMenuMargins;
QPointer<PopupMenu> _activeSubmenu; QPointer<PopupMenu> _activeSubmenu;