You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Martin Flöser e1afef3d45 Sanity check WindowQuad before trying to create a grid out of it
Summary:
When one uses:
 * breeze as of 5.12
 * wobbly windows
 * shaded window
 * a distribution building with assert enabled

and starts to move a shaded window, KWin asserts. The root cause for
this is that WindowQuad::makeSubQuad has an assert for y1 being smaller
than y2. With the combination listed above this is not guaranteed. For
the left shadow quad the y1 and y2 are identical and thus trying to
split it, results in the assert condition.

The problem of the shadow quad having an invalid size might be addressed
as well with D10811. Due to that the generation of the quads is not
touched. Instead a sanity check is introduced to not try to split
already invalid sized quads.

BUG: 390953
FIXED-IN: 5.12.3

Test Plan: Added unit test hit the assert, now doesn't hit it any more

Reviewers: #kwin, #plasma

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D11015
7 years ago
..
drm
integration Sanity check WindowQuad before trying to create a grid out of it 7 years ago
libinput
libkwineffects
libxrenderutils
tabbox
CMakeLists.txt
abstract_client.h
client.h
fakeeffectplugin.cpp
fakeeffectplugin.json
fakeeffectplugin_version.cpp
fakeeffectplugin_version.json
mock_abstract_client.cpp
mock_abstract_client.h
mock_client.cpp
mock_client.h
mock_effectshandler.cpp
mock_effectshandler.h Add a KSharedConfigPtr for kcminputrc to KWin::Application 8 years ago
mock_screens.cpp
mock_screens.h
mock_workspace.cpp
mock_workspace.h
onscreennotificationtest.cpp Fade out OnScreenNotification when moving with the mouse over it 8 years ago
onscreennotificationtest.h
opengl_context_attribute_builder_test.cpp
test_builtin_effectloader.cpp
test_client_machine.cpp
test_gbm_surface.cpp
test_gestures.cpp
test_plugin_effectloader.cpp
test_screen_edges.cpp
test_screen_paint_data.cpp
test_screens.cpp
test_scripted_effectloader.cpp
test_virtual_desktops.cpp
test_virtualkeyboard_dbus.cpp
test_window_paint_data.cpp
test_x11_timestamp_update.cpp
test_xcb_size_hints.cpp
test_xcb_window.cpp
test_xcb_wrapper.cpp
test_xkb.cpp
test_xrandr_screens.cpp
testutils.h
workspace.h