[plasma/kwin] src: Repurpose Gravity::None as Gravity::Center
Vlad Zahorodnii <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 81300c5ff2df6a6671ecd54edc35a635475c568e by Vlad Zahorodnii.
Committed on 03/08/2026 at 13:24.
Pushed by vladz into branch 'master'.
Repurpose Gravity::None as Gravity::Center
M +1 -1 src/tiles/customtile.cpp
M +2 -2 src/tiles/tile.cpp
M +4 -2 src/utils/gravity.cpp
M +1 -1 src/utils/gravity.h
M +1 -1 src/wayland/xdgshell.cpp
M +1 -1 src/wayland/xxpip_v1.cpp
M +14 -14 src/window.cpp
M +3 -3 src/window.h
M +1 -1 src/xdgshellwindow.cpp
https://invent.kde.org/plasma/kwin/-/commit/81300c5ff2df6a6671ecd54edc35a635475c568e
diff --git a/src/tiles/customtile.cpp b/src/tiles/customtile.cpp
index 70fa4485bea..c606acbc124 100644
--- a/src/tiles/customtile.cpp
+++ b/src/tiles/customtile.cpp
@@ -184,7 +184,7 @@ void CustomTile::setRelativeGeometry(const RectF &geom)
bool CustomTile::supportsResizeGravity(KWin::Gravity gravity)
{
if (layoutDirection() == LayoutDirection::Floating) {
- return gravity != Gravity::None;
+ return gravity != Gravity::Center;
}
return Tile::supportsResizeGravity(gravity);
diff --git a/src/tiles/tile.cpp b/src/tiles/tile.cpp
index 85cfb975a8c..510917e01fc 100644
--- a/src/tiles/tile.cpp
+++ b/src/tiles/tile.cpp
@@ -99,7 +99,7 @@ bool Tile::supportsResizeGravity(Gravity gravity)
return m_relativeGeometry.bottom() < 1.0 && m_relativeGeometry.left() > 0.0;
case Gravity::BottomRight:
return m_relativeGeometry.bottom() < 1.0 && m_relativeGeometry.right() < 1.0;
- case Gravity::None:
+ case Gravity::Center:
default:
return false;
}
@@ -332,7 +332,7 @@ void Tile::resizeFromGravity(Gravity gravity, int x_root, int y_root)
case Gravity::Right:
newGeom.setRight(relativePos.x() + m_padding / outGeom.width());
break;
- case Gravity::None:
+ case Gravity::Center:
Q_UNREACHABLE();
break;
}
diff --git a/src/utils/gravity.cpp b/src/utils/gravity.cpp
index 6334ddbeb0e..ed83aa38c25 100644
--- a/src/utils/gravity.cpp
+++ b/src/utils/gravity.cpp
@@ -10,7 +10,7 @@ namespace KWin
{
Gravity::Gravity()
- : m_kind(None)
+ : m_kind(Center)
{
}
@@ -29,6 +29,9 @@ RectF Gravity::apply(const RectF &rect, const RectF &bounds) const
RectF geometry = rect;
switch (m_kind) {
+ case Gravity::Center:
+ geometry.moveCenter(bounds.center());
+ break;
case Gravity::TopLeft:
geometry.moveRight(bounds.right());
geometry.moveBottom(bounds.bottom());
@@ -45,7 +48,6 @@ RectF Gravity::apply(const RectF &rect, const RectF &bounds) const
geometry.moveLeft(bounds.left());
geometry.moveVerticalCenter(bounds.verticalCenter());
break;
- case Gravity::None:
case Gravity::BottomRight:
geometry.moveLeft(bounds.left());
geometry.moveTop(bounds.top());
diff --git a/src/utils/gravity.h b/src/utils/gravity.h
index 59c97d451ab..edd490f22e6 100644
--- a/src/utils/gravity.h
+++ b/src/utils/gravity.h
@@ -18,7 +18,7 @@ class KWIN_EXPORT Gravity
{
public:
enum Kind {
- None,
+ Center,
Left,
Right,
Top,
diff --git a/src/wayland/xdgshell.cpp b/src/wayland/xdgshell.cpp
index c0943c9be93..21785a63616 100644
--- a/src/wayland/xdgshell.cpp
+++ b/src/wayland/xdgshell.cpp
@@ -487,7 +487,7 @@ void XdgToplevelInterfacePrivate::xdg_toplevel_resize(Resource *resource, ::wl_r
Gravity gravity;
switch (xdgEdges) {
case resize_edge_none:
- gravity = Gravity::None;
+ gravity = Gravity::Center;
break;
case resize_edge_top:
gravity = Gravity::Top;
diff --git a/src/wayland/xxpip_v1.cpp b/src/wayland/xxpip_v1.cpp
index 801dc59d629..4071bce924d 100644
--- a/src/wayland/xxpip_v1.cpp
+++ b/src/wayland/xxpip_v1.cpp
@@ -205,7 +205,7 @@ void XXPipV1InterfacePrivate::xx_pip_v1_resize(Resource *resource, struct ::wl_r
Gravity gravity;
switch (edges) {
case resize_edge_none:
- gravity = Gravity::None;
+ gravity = Gravity::Center;
break;
case resize_edge_top:
gravity = Gravity::Top;
diff --git a/src/window.cpp b/src/window.cpp
index 9c033bd21b2..f551106130d 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -1033,8 +1033,8 @@ bool Window::startInteractiveMoveResize()
if (isRequestedFullScreen() && (workspace()->outputs().count() < 2 || !isMovableAcrossScreens())) {
return false;
}
- if ((interactiveMoveResizeGravity() == Gravity::None && !isMovableAcrossScreens())
- || (interactiveMoveResizeGravity() != Gravity::None && !isResizable())) {
+ if ((interactiveMoveResizeGravity() == Gravity::Center && !isMovableAcrossScreens())
+ || (interactiveMoveResizeGravity() != Gravity::Center && !isResizable())) {
return false;
}
if (!doStartInteractiveMoveResize()) {
@@ -1310,7 +1310,7 @@ static RegionF interactiveMoveResizeVisibleSubrectRegion(const RectF &geometry,
RectF initialRect = availableArea;
switch (gravity) {
- case Gravity::None:
+ case Gravity::Center:
case Gravity::Top:
// resizing from the top is handled like moving the window to avoid zero width rectangles when window width is equal to minWidth
initialRect.adjust(0, 0, -minVisibleArea.width(), -minVisibleArea.height());
@@ -1336,7 +1336,7 @@ static RegionF interactiveMoveResizeVisibleSubrectRegion(const RectF &geometry,
RegionF availableRegion(initialRect);
switch (gravity) {
- case Gravity::None:
+ case Gravity::Center:
case Gravity::Top:
case Gravity::Left:
case Gravity::TopLeft:
@@ -1378,7 +1378,7 @@ static std::optional<QPointF> confineInteractiveMove(const RectF &geometry, cons
const QSizeF effectiveMinVisibleArea(std::min(geometry.width(), minVisibleArea.width()),
std::min(geometry.height(), minVisibleArea.height()));
- const RegionF visibleSubrectRegion = interactiveMoveResizeVisibleSubrectRegion(geometry, Gravity::None, effectiveMinVisibleArea);
+ const RegionF visibleSubrectRegion = interactiveMoveResizeVisibleSubrectRegion(geometry, Gravity::Center, effectiveMinVisibleArea);
const QPointF anchor = geometry.topLeft();
for (RectF rect : visibleSubrectRegion.rects()) {
// Extend the left edge of the rect so the right edge of the window can be
@@ -1498,7 +1498,7 @@ std::optional<QPointF> Window::confineInteractiveResize(const RectF &geometry, G
case Gravity::Right:
break;
- case Gravity::None:
+ case Gravity::Center:
Q_UNREACHABLE();
}
@@ -1533,7 +1533,7 @@ std::optional<QPointF> Window::confineInteractiveResize(const RectF &geometry, G
constrainedRect.setRight(std::min(constrainedRect.right(), geometry.left() + maxFrameSize.width()));
break;
- case Gravity::None:
+ case Gravity::Center:
Q_UNREACHABLE();
}
@@ -1592,7 +1592,7 @@ RectF Window::nextInteractiveResizeGeometry(const QPointF &global) const
RectF nextMoveResizeGeom = moveResizeGeometry();
const Gravity gravity = interactiveMoveResizeGravity();
- if (gravity == Gravity::None || !isResizable()) {
+ if (gravity == Gravity::Center || !isResizable()) {
return nextMoveResizeGeom;
}
@@ -1627,7 +1627,7 @@ RectF Window::nextInteractiveResizeGeometry(const QPointF &global) const
case Gravity::Right:
nextMoveResizeGeom = RectF(orig.topLeft(), QPointF(bottomright.x(), orig.bottom()));
break;
- case Gravity::None:
+ case Gravity::Center:
Q_UNREACHABLE();
break;
}
@@ -1664,7 +1664,7 @@ RectF Window::nextInteractiveResizeGeometry(const QPointF &global) const
case Gravity::Left:
nextMoveResizeGeom.setLeft(nextMoveResizeGeom.right() - constrainedSize.width());
break;
- case Gravity::None:
+ case Gravity::Center:
Q_UNREACHABLE();
}
@@ -2155,7 +2155,7 @@ bool Window::performMousePressCommand(Options::MouseCommand cmd, const QPointF &
if (isInteractiveMoveResize()) {
finishInteractiveMoveResize(false);
}
- setInteractiveMoveResizeGravity(Gravity::None);
+ setInteractiveMoveResizeGravity(Gravity::Center);
setInteractiveMoveResizePointerButtonDown(true);
setInteractiveMoveResizeAnchor(globalPos);
setInteractiveMoveResizeModifiers(Qt::KeyboardModifiers());
@@ -2411,7 +2411,7 @@ void Window::updateInteractiveMoveResizeCursor()
}
Gravity gravity = interactiveMoveResizeGravity();
if (!isResizable()) {
- gravity = Gravity::None;
+ gravity = Gravity::Center;
}
CursorShape c = Qt::ArrowCursor;
switch (gravity) {
@@ -2641,10 +2641,10 @@ Gravity Window::mouseGravity() const
case Qt::TopRightSection:
return Gravity::TopRight;
default:
- return Gravity::None;
+ return Gravity::Center;
}
}
- return Gravity::None;
+ return Gravity::Center;
}
void Window::endInteractiveMoveResize()
diff --git a/src/window.h b/src/window.h
index 8ab31081e8f..fc419ba3777 100644
--- a/src/window.h
+++ b/src/window.h
@@ -1152,14 +1152,14 @@ public:
*/
bool isInteractiveMove() const
{
- return isInteractiveMoveResize() && interactiveMoveResizeGravity() == Gravity::None;
+ return isInteractiveMoveResize() && interactiveMoveResizeGravity() == Gravity::Center;
}
/**
* Returns @c true if the Client is being interactively resized; otherwise @c false.
*/
bool isInteractiveResize() const
{
- return isInteractiveMoveResize() && interactiveMoveResizeGravity() != Gravity::None;
+ return isInteractiveMoveResize() && interactiveMoveResizeGravity() != Gravity::Center;
}
Gravity interactiveMoveResizeGravity() const
{
@@ -1881,7 +1881,7 @@ protected:
QPointF offset;
RectF initialGeometry;
RectF initialGeometryRestore;
- Gravity gravity = Gravity::None;
+ Gravity gravity = Gravity::Center;
bool buttonDown = false;
CursorShape cursor = Qt::ArrowCursor;
QString initialOutputId;
diff --git a/src/xdgshellwindow.cpp b/src/xdgshellwindow.cpp
index be50886f177..d6c39cca58e 100644
--- a/src/xdgshellwindow.cpp
+++ b/src/xdgshellwindow.cpp
@@ -870,7 +870,7 @@ void XdgToplevelWindow::doSetQuickTileMode()
bool XdgToplevelWindow::doStartInteractiveMoveResize()
{
- if (interactiveMoveResizeGravity() != Gravity::None) {
+ if (interactiveMoveResizeGravity() != Gravity::Center) {
m_nextGravity = interactiveMoveResizeGravity();
m_nextStates |= XdgToplevelInterface::State::Resizing;
scheduleConfigure();