kwin/autotests
Vlad Zahorodnii b572aadfd5 wayland: Allow setting "no border" flag even without xdg decoration
Historically, noBorder() was used for two things:

* as a substitute for AbstractClient::isDecorated()
* to determine whether the AbstractClient should have a decoration

With async decoration updates refactoring, a few things around
noBorder() have changed, which exposed an existing bug in the handling
of borderless maximized windows.

It's possible to have a case where an initially maximized window makes
an xdg_toplevel.set_maximized request before the initial commit, but
creates the decoration object after the initial commit.

Since XdgToplevelClient::userCanSetNoBorder() would return false when
maximize() is called in XdgToplevelClient::initialize(), m_userNoBorder
won't be updated and therefore the window can end up having a server
side decoration.

Previously, it wasn't the case because kwin would do nothing if the
decoration is installed and its preferred mode changes after the initial
commit but before the surface is mapped. With async decoration fixes,
kwin would react as expected, which unfortunately has exposed the bug.

The root cause of the problem is the fact that noBorder() is overloaded,
which makes it error-prone.

This patch changes how the noBorder property is treated. Now, it only
indicates whether the compositor wants the window to have no borders. If
noBorder() is true, it means that the compositor doesn't want the window
to have a server-side decoration; on the other hand, if noBorder() is
false, it doesn't imply that the window should have a decoration.

BUG: 448740
2022-01-21 14:59:42 +00:00
..
integration wayland: Allow setting "no border" flag even without xdg decoration 2022-01-21 14:59:42 +00:00
libinput [libinput] Add support for display mapping 2021-12-13 18:53:23 +00:00
libkwineffects autotests: Fix kwinglplatformtest 2021-06-18 17:31:32 +03:00
libxrenderutils Make source code more relocatable 2021-02-10 15:31:42 +00:00
tabbox Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
CMakeLists.txt autotests: Drop effect loader tests 2021-12-08 16:29:55 +00:00
onscreennotificationtest.cpp Make source code more relocatable 2021-02-10 15:31:42 +00:00
onscreennotificationtest.h Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
opengl_context_attribute_builder_test.cpp Move platform backends to backends directory 2021-11-02 09:02:41 +00:00
test_client_machine.cpp Make source code more relocatable 2021-02-10 15:31:42 +00:00
test_ftrace.cpp Add ftrace markers 2021-01-14 09:31:59 +00:00
test_gestures.cpp tests: fix GestureTest 2021-08-31 01:45:27 +00:00
test_screen_paint_data.cpp libkwineffects: Introduce EffectScreen 2021-03-09 08:58:22 +00:00
test_virtual_desktops.cpp tests: fix TestVirtualDesktops 2021-08-31 01:45:27 +00:00
test_window_paint_data.cpp effects: Port effects from int screens ids to EffectScreen 2021-10-20 12:09:09 +00:00
test_x11_timestamp_update.cpp Fully port away from KPluginLoader 2021-10-19 21:39:51 +02:00
test_xcb_size_hints.cpp Make source code more relocatable 2021-02-10 15:31:42 +00:00
test_xcb_window.cpp Make source code more relocatable 2021-02-10 15:31:42 +00:00
test_xcb_wrapper.cpp Silence -Wself-assign-overloaded with clang 2022-01-21 12:25:12 +00:00
test_xkb.cpp fix global shortcuts for non-Latin symbols 2021-04-05 19:39:06 +00:00
testutils.h Prettify license headers 2020-08-07 19:57:56 +00:00