https://bugs.kde.org/show_bug.cgi?id=442534

Vlad Zahorodnii <vlad.zahorod...@kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|https://invent.kde.org/plas |https://invent.kde.org/plas
                   |ma/kwin/commit/afcb9fd03793 |ma/kwin/commit/cc006d3f8e76
                   |7d948ea4dcf411518155ec149ac |e55bafd5ebc09013b1b356aea96
                   |b                           |7

--- Comment #3 from Vlad Zahorodnii <vlad.zahorod...@kde.org> ---
Git commit cc006d3f8e76e55bafd5ebc09013b1b356aea967 by Vlad Zahorodnii.
Committed on 17/09/2021 at 14:02.
Pushed by vladz into branch 'Plasma/5.23'.

x11: Fix "Move window to next screen" shortcut for maximized windows

With the recent AbstractOutput changes, Workspace::clientArea() overload
that takes only the window and no additional output was changed to

    return clientArea(opt, window, window->output());

prior to that, it had been looking up the output at the center of the
frame geometry.

As it turns out, AbstractOutput::sendToOutput() blocks geometry updates,
which in its turn means that Toplevel::output() will be updated only
after geometry updates are unblocked. For the most part, it's not a big
deal until you need to use Workspace::clientArea(opt, const Toplevel*)

Since the output won't be updated until geometry updates are unblocked,
clientArea(opt, const Toplevel *) may return outdated info.

One could argue that we just simply need to update m_output similar to
m_frameGeometry when geometry updates are blocked, but... it's not going
to work on wayland! On Wayland, GeometryUpdatesBlocker is totally
unnecessary. Even if a window is resized, m_frameGeometry will be left
unchanged until the client repaints the window.

Instead, one need to pass the AbstractOutput to clientArea() if it's
important.

This change makes X11Client::changeMaximize() query the MaximizeArea of
the output containing the center of the move resize geometry, similar to
what the XdgToplevelClient does.


(cherry picked from commit afcb9fd037937d948ea4dcf411518155ec149acb)

M  +1    -1    src/x11client.cpp

https://invent.kde.org/plasma/kwin/commit/cc006d3f8e76e55bafd5ebc09013b1b356aea967

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to