Drop adjust argument in Window::changeMaximize()
This commit is contained in:
parent
0e2d5bd232
commit
b044a7d5ff
6 changed files with 32 additions and 42 deletions
|
@ -1590,8 +1590,7 @@ void Window::setMaximize(bool vertically, bool horizontally)
|
|||
const MaximizeMode oldMode = requestedMaximizeMode();
|
||||
changeMaximize(
|
||||
oldMode & MaximizeHorizontal ? !horizontally : horizontally,
|
||||
oldMode & MaximizeVertical ? !vertically : vertically,
|
||||
false);
|
||||
oldMode & MaximizeVertical ? !vertically : vertically);
|
||||
const MaximizeMode newMode = maximizeMode();
|
||||
if (oldMode != newMode) {
|
||||
Q_EMIT clientMaximizedStateChanged(this, newMode);
|
||||
|
@ -4337,15 +4336,12 @@ void Window::setGeometryRestore(const QRectF &rect)
|
|||
/**
|
||||
* Toggles the maximized state along specified dimensions @p horizontal and @p vertical.
|
||||
*
|
||||
* If @p adjust is @c true, only frame geometry will be updated to match requestedMaximizeMode().
|
||||
*
|
||||
* Default implementation does nothing.
|
||||
*/
|
||||
void Window::changeMaximize(bool horizontal, bool vertical, bool adjust)
|
||||
void Window::changeMaximize(bool horizontal, bool vertical)
|
||||
{
|
||||
Q_UNUSED(horizontal)
|
||||
Q_UNUSED(vertical)
|
||||
Q_UNUSED(adjust)
|
||||
qCWarning(KWIN_CORE, "%s doesn't support setting maximized state", metaObject()->className());
|
||||
}
|
||||
|
||||
|
|
|
@ -1721,7 +1721,7 @@ protected:
|
|||
int borderRight() const;
|
||||
int borderTop() const;
|
||||
int borderBottom() const;
|
||||
virtual void changeMaximize(bool horizontal, bool vertical, bool adjust);
|
||||
virtual void changeMaximize(bool horizontal, bool vertical);
|
||||
void setGeometryRestore(const QRectF &rect);
|
||||
|
||||
void blockGeometryUpdates(bool block);
|
||||
|
|
|
@ -4265,7 +4265,7 @@ void X11Window::updateServerGeometry()
|
|||
}
|
||||
|
||||
static bool changeMaximizeRecursion = false;
|
||||
void X11Window::changeMaximize(bool horizontal, bool vertical, bool adjust)
|
||||
void X11Window::changeMaximize(bool horizontal, bool vertical)
|
||||
{
|
||||
if (changeMaximizeRecursion) {
|
||||
return;
|
||||
|
@ -4286,15 +4286,12 @@ void X11Window::changeMaximize(bool horizontal, bool vertical, bool adjust)
|
|||
}
|
||||
|
||||
MaximizeMode old_mode = max_mode;
|
||||
// 'adjust == true' means to update the size only, e.g. after changing workspace size
|
||||
MaximizeMode mode = max_mode;
|
||||
if (!adjust) {
|
||||
if (vertical) {
|
||||
mode = MaximizeMode(mode ^ MaximizeVertical);
|
||||
}
|
||||
if (horizontal) {
|
||||
mode = MaximizeMode(mode ^ MaximizeHorizontal);
|
||||
}
|
||||
if (vertical) {
|
||||
mode = MaximizeMode(mode ^ MaximizeVertical);
|
||||
}
|
||||
if (horizontal) {
|
||||
mode = MaximizeMode(mode ^ MaximizeHorizontal);
|
||||
}
|
||||
|
||||
// if the client insist on a fix aspect ratio, we check whether the maximizing will get us
|
||||
|
@ -4320,20 +4317,20 @@ void X11Window::changeMaximize(bool horizontal, bool vertical, bool adjust)
|
|||
}
|
||||
|
||||
mode = rules()->checkMaximize(mode);
|
||||
if (max_mode != mode) {
|
||||
Q_EMIT clientMaximizedStateAboutToChange(this, mode);
|
||||
max_mode = mode;
|
||||
} else if (!adjust) {
|
||||
if (max_mode == mode) {
|
||||
return;
|
||||
}
|
||||
|
||||
GeometryUpdatesBlocker blocker(this);
|
||||
|
||||
Q_EMIT clientMaximizedStateAboutToChange(this, mode);
|
||||
max_mode = mode;
|
||||
|
||||
// maximing one way and unmaximizing the other way shouldn't happen,
|
||||
// so restore first and then maximize the other way
|
||||
if ((old_mode == MaximizeVertical && max_mode == MaximizeHorizontal)
|
||||
|| (old_mode == MaximizeHorizontal && max_mode == MaximizeVertical)) {
|
||||
changeMaximize(false, false, false); // restore
|
||||
changeMaximize(false, false); // restore
|
||||
}
|
||||
|
||||
// save sizes for restoring, if maximalizing
|
||||
|
@ -4346,11 +4343,11 @@ void X11Window::changeMaximize(bool horizontal, bool vertical, bool adjust)
|
|||
|
||||
if (quickTileMode() == QuickTileMode(QuickTileFlag::None)) {
|
||||
QRectF savedGeometry = geometryRestore();
|
||||
if (!adjust && !(old_mode & MaximizeVertical)) {
|
||||
if (!(old_mode & MaximizeVertical)) {
|
||||
savedGeometry.setTop(y());
|
||||
savedGeometry.setHeight(sz.height());
|
||||
}
|
||||
if (!adjust && !(old_mode & MaximizeHorizontal)) {
|
||||
if (!(old_mode & MaximizeHorizontal)) {
|
||||
savedGeometry.setLeft(x());
|
||||
savedGeometry.setWidth(sz.width());
|
||||
}
|
||||
|
|
|
@ -392,7 +392,7 @@ private:
|
|||
bool isManaged() const; ///< Returns false if this client is not yet managed
|
||||
void updateAllowedActions(bool force = false);
|
||||
QRect fullscreenMonitorsArea(NETFullscreenMonitors topology) const;
|
||||
void changeMaximize(bool horizontal, bool vertical, bool adjust) override;
|
||||
void changeMaximize(bool horizontal, bool vertical) override;
|
||||
void getWmNormalHints();
|
||||
void getMotifHints();
|
||||
void getIcons();
|
||||
|
|
|
@ -1642,7 +1642,7 @@ void XdgToplevelWindow::setFullScreen(bool set, bool user)
|
|||
* \todo Move to Window.
|
||||
*/
|
||||
static bool changeMaximizeRecursion = false;
|
||||
void XdgToplevelWindow::changeMaximize(bool horizontal, bool vertical, bool adjust)
|
||||
void XdgToplevelWindow::changeMaximize(bool horizontal, bool vertical)
|
||||
{
|
||||
if (changeMaximizeRecursion) {
|
||||
return;
|
||||
|
@ -1657,25 +1657,22 @@ void XdgToplevelWindow::changeMaximize(bool horizontal, bool vertical, bool adju
|
|||
const MaximizeMode oldMode = m_requestedMaximizeMode;
|
||||
const QRectF oldGeometry = moveResizeGeometry();
|
||||
|
||||
// 'adjust == true' means to update the size only, e.g. after changing workspace size
|
||||
MaximizeMode mode = m_requestedMaximizeMode;
|
||||
if (!adjust) {
|
||||
if (vertical) {
|
||||
mode = MaximizeMode(mode ^ MaximizeVertical);
|
||||
}
|
||||
if (horizontal) {
|
||||
mode = MaximizeMode(mode ^ MaximizeHorizontal);
|
||||
}
|
||||
if (vertical) {
|
||||
mode = MaximizeMode(mode ^ MaximizeVertical);
|
||||
}
|
||||
if (horizontal) {
|
||||
mode = MaximizeMode(mode ^ MaximizeHorizontal);
|
||||
}
|
||||
|
||||
mode = rules()->checkMaximize(mode);
|
||||
if (m_requestedMaximizeMode != mode) {
|
||||
Q_EMIT clientMaximizedStateAboutToChange(this, mode);
|
||||
m_requestedMaximizeMode = mode;
|
||||
} else if (!adjust) {
|
||||
if (m_requestedMaximizeMode == mode) {
|
||||
return;
|
||||
}
|
||||
|
||||
Q_EMIT clientMaximizedStateAboutToChange(this, mode);
|
||||
m_requestedMaximizeMode = mode;
|
||||
|
||||
// call into decoration update borders
|
||||
if (m_nextDecoration && !(options->borderlessMaximizedWindows() && m_requestedMaximizeMode == KWin::MaximizeFull)) {
|
||||
changeMaximizeRecursion = true;
|
||||
|
@ -1698,11 +1695,11 @@ void XdgToplevelWindow::changeMaximize(bool horizontal, bool vertical, bool adju
|
|||
|
||||
if (quickTileMode() == QuickTileMode(QuickTileFlag::None)) {
|
||||
QRectF savedGeometry = geometryRestore();
|
||||
if (!adjust && !(oldMode & MaximizeVertical)) {
|
||||
if (!(oldMode & MaximizeVertical)) {
|
||||
savedGeometry.setTop(oldGeometry.top());
|
||||
savedGeometry.setBottom(oldGeometry.bottom());
|
||||
}
|
||||
if (!adjust && !(oldMode & MaximizeHorizontal)) {
|
||||
if (!(oldMode & MaximizeHorizontal)) {
|
||||
savedGeometry.setLeft(oldGeometry.left());
|
||||
savedGeometry.setRight(oldGeometry.right());
|
||||
}
|
||||
|
@ -1712,7 +1709,7 @@ void XdgToplevelWindow::changeMaximize(bool horizontal, bool vertical, bool adju
|
|||
const MaximizeMode delta = m_requestedMaximizeMode ^ oldMode;
|
||||
QRectF geometry = oldGeometry;
|
||||
|
||||
if (adjust || (delta & MaximizeHorizontal)) {
|
||||
if (delta & MaximizeHorizontal) {
|
||||
if (m_requestedMaximizeMode & MaximizeHorizontal) {
|
||||
// Stretch the window vertically to fit the size of the maximize area.
|
||||
geometry.setX(clientArea.x());
|
||||
|
@ -1730,7 +1727,7 @@ void XdgToplevelWindow::changeMaximize(bool horizontal, bool vertical, bool adju
|
|||
}
|
||||
}
|
||||
|
||||
if (adjust || (delta & MaximizeVertical)) {
|
||||
if (delta & MaximizeVertical) {
|
||||
if (m_requestedMaximizeMode & MaximizeVertical) {
|
||||
// Stretch the window horizontally to fit the size of the maximize area.
|
||||
geometry.setY(clientArea.y());
|
||||
|
|
|
@ -180,7 +180,7 @@ protected:
|
|||
bool doStartInteractiveMoveResize() override;
|
||||
void doFinishInteractiveMoveResize() override;
|
||||
bool acceptsFocus() const override;
|
||||
void changeMaximize(bool horizontal, bool vertical, bool adjust) override;
|
||||
void changeMaximize(bool horizontal, bool vertical) override;
|
||||
Layer layerForDock() const override;
|
||||
void doSetQuickTileMode() override;
|
||||
|
||||
|
|
Loading…
Reference in a new issue