7637cfc22b
Summary: This problem appears if shadow corner tiles are too big and some window has size smaller than 2 * shadowTileSize. This change tries to address the problem above by exclusing overlapping tile parts. If there are any two overlapping corners then tile between them(top/right/bottom/left) is not rendered. Also, because some corner tile parts can be excluded, corner tiles are expected to be symmetrical(i.e. if we remove right half from the top-left tile and left half from the top-right tile and stick them together, they still look fine, there are no misalignments, etc). Most shadows(e.g. shadows from Breeze) have such behaviour. No tiles are overlapping {F5728514, layout=center, size=full} Overlapping tiles {F5728516, layout=center, size=full} And this is how it supposed to be {F5728517, layout=center, size=full} Test Plan: * apply D11069 to Breeze * in System Settings/Application Style/Window Decorations, choose "Very Large" shadow size * open Konsole * resize it to a minimum possible size Reviewers: #kwin, graesslin, davidedmundson Reviewed By: #kwin, davidedmundson Subscribers: davidedmundson, ngraham, anemeth, abetts, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D10811 |
||
---|---|---|
.. | ||
drm | ||
integration | ||
libinput | ||
libkwineffects | ||
libxrenderutils | ||
tabbox | ||
abstract_client.h | ||
client.h | ||
CMakeLists.txt | ||
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 | ||
mock_screens.cpp | ||
mock_screens.h | ||
mock_workspace.cpp | ||
mock_workspace.h | ||
onscreennotificationtest.cpp | ||
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 |