2016-06-20 09:21:16 +00:00
|
|
|
add_subdirectory(helper)
|
2015-10-07 17:06:34 +00:00
|
|
|
|
2022-03-10 18:11:26 +00:00
|
|
|
add_library(KWinIntegrationTestFramework SHARED)
|
2023-02-25 20:21:59 +00:00
|
|
|
|
|
|
|
qt6_generate_wayland_protocol_client_sources(KWinIntegrationTestFramework
|
|
|
|
NO_INCLUDE_CORE_ONLY
|
|
|
|
FILES
|
|
|
|
${WaylandProtocols_DATADIR}/unstable/input-method/input-method-unstable-v1.xml
|
|
|
|
)
|
|
|
|
qt6_generate_wayland_protocol_client_sources(KWinIntegrationTestFramework
|
|
|
|
FILES
|
|
|
|
${WaylandProtocols_DATADIR}/unstable/text-input/text-input-unstable-v3.xml
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/protocols/wlr-layer-shell-unstable-v1.xml
|
|
|
|
${WaylandProtocols_DATADIR}/stable/xdg-shell/xdg-shell.xml
|
|
|
|
${WaylandProtocols_DATADIR}/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml
|
|
|
|
${WaylandProtocols_DATADIR}/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml
|
|
|
|
${WaylandProtocols_DATADIR}/staging/fractional-scale/fractional-scale-v1.xml
|
|
|
|
${PLASMA_WAYLAND_PROTOCOLS_DIR}/kde-output-device-v2.xml
|
|
|
|
${PLASMA_WAYLAND_PROTOCOLS_DIR}/kde-output-management-v2.xml
|
2023-03-08 08:07:39 +00:00
|
|
|
${PLASMA_WAYLAND_PROTOCOLS_DIR}/kde-screen-edge-v1.xml
|
2023-02-21 02:37:30 +00:00
|
|
|
${PLASMA_WAYLAND_PROTOCOLS_DIR}/zkde-screencast-unstable-v1.xml
|
2023-02-25 20:21:59 +00:00
|
|
|
)
|
2021-09-08 09:04:44 +00:00
|
|
|
|
2022-04-22 10:38:30 +00:00
|
|
|
target_sources(KWinIntegrationTestFramework PRIVATE
|
|
|
|
../../src/cursor.cpp
|
|
|
|
|
|
|
|
generic_scene_opengl_test.cpp
|
|
|
|
kwin_wayland_test.cpp
|
|
|
|
test_helpers.cpp
|
|
|
|
)
|
2020-11-21 10:16:59 +00:00
|
|
|
target_link_libraries(KWinIntegrationTestFramework
|
2021-11-29 13:47:16 +00:00
|
|
|
PUBLIC
|
|
|
|
Qt::Test
|
2023-02-24 18:22:37 +00:00
|
|
|
KF6::WaylandClient
|
2021-11-29 13:47:16 +00:00
|
|
|
Wayland::Client
|
|
|
|
kwin
|
2020-11-21 10:16:59 +00:00
|
|
|
|
2021-11-29 13:47:16 +00:00
|
|
|
PRIVATE
|
|
|
|
# Own libraries
|
|
|
|
KWinXwaylandServerModule
|
2021-02-09 19:31:40 +00:00
|
|
|
|
2021-11-29 13:47:16 +00:00
|
|
|
# Static plugins
|
|
|
|
KWinQpaPlugin
|
2023-02-24 18:22:37 +00:00
|
|
|
KF6GlobalAccelKWinPlugin
|
|
|
|
KF6WindowSystemKWinPlugin
|
|
|
|
KF6IdleTimeKWinPlugin
|
2020-11-21 10:16:59 +00:00
|
|
|
)
|
2022-02-05 23:28:48 +00:00
|
|
|
kcoreaddons_target_static_plugins(KWinIntegrationTestFramework "kwin/effects/plugins" LINK_OPTION "PRIVATE")
|
2021-11-29 13:47:16 +00:00
|
|
|
set_target_properties(KWinIntegrationTestFramework PROPERTIES CXX_VISIBILITY_PRESET default)
|
2016-06-30 06:37:50 +00:00
|
|
|
|
|
|
|
function(integrationTest)
|
2023-04-21 11:07:49 +00:00
|
|
|
set(optionArgs)
|
2016-06-30 06:37:50 +00:00
|
|
|
set(oneValueArgs NAME)
|
|
|
|
set(multiValueArgs SRCS LIBS)
|
2017-09-30 14:35:52 +00:00
|
|
|
cmake_parse_arguments(ARGS "${optionArgs}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
2016-06-30 06:37:50 +00:00
|
|
|
add_executable(${ARGS_NAME} ${ARGS_SRCS})
|
2021-11-29 13:47:16 +00:00
|
|
|
target_link_libraries(${ARGS_NAME} KWinIntegrationTestFramework Qt::Test ${ARGS_LIBS})
|
2017-08-25 16:18:20 +00:00
|
|
|
add_test(NAME kwin-${ARGS_NAME} COMMAND dbus-run-session ${CMAKE_BINARY_DIR}/bin/${ARGS_NAME})
|
2016-06-30 06:37:50 +00:00
|
|
|
endfunction()
|
|
|
|
|
|
|
|
integrationTest(NAME testDontCrashGlxgears SRCS dont_crash_glxgears.cpp)
|
2022-02-23 13:27:05 +00:00
|
|
|
if (KWIN_BUILD_SCREENLOCKER)
|
|
|
|
integrationTest(NAME testLockScreen SRCS lockscreen.cpp)
|
|
|
|
endif()
|
2023-04-21 11:07:49 +00:00
|
|
|
integrationTest(NAME testDecorationInput SRCS decoration_input_test.cpp)
|
|
|
|
integrationTest(NAME testInternalWindow SRCS internal_window.cpp)
|
|
|
|
integrationTest(NAME testTouchInput SRCS touch_input_test.cpp)
|
|
|
|
integrationTest(NAME testInputStackingOrder SRCS input_stacking_order.cpp)
|
2016-06-30 06:37:50 +00:00
|
|
|
integrationTest(NAME testPointerInput SRCS pointer_input.cpp)
|
|
|
|
integrationTest(NAME testPlatformCursor SRCS platformcursor.cpp)
|
2023-04-21 11:07:49 +00:00
|
|
|
integrationTest(NAME testDontCrashCancelAnimation SRCS dont_crash_cancel_animation.cpp)
|
|
|
|
integrationTest(NAME testTransientPlacement SRCS transient_placement.cpp)
|
2016-06-30 06:37:50 +00:00
|
|
|
integrationTest(NAME testDebugConsole SRCS debug_console_test.cpp)
|
|
|
|
integrationTest(NAME testDontCrashEmptyDeco SRCS dont_crash_empty_deco.cpp)
|
2023-04-21 11:07:49 +00:00
|
|
|
integrationTest(NAME testPlasmaSurface SRCS plasma_surface_test.cpp)
|
|
|
|
integrationTest(NAME testMaximized SRCS maximize_test.cpp)
|
|
|
|
integrationTest(NAME testXdgShellWindow SRCS xdgshellwindow_test.cpp)
|
2018-08-21 20:06:42 +00:00
|
|
|
integrationTest(NAME testXwaylandSelections SRCS xwayland_selections_test.cpp)
|
2023-04-21 11:07:49 +00:00
|
|
|
integrationTest(NAME testSceneOpenGL SRCS scene_opengl_test.cpp )
|
|
|
|
integrationTest(NAME testSceneOpenGLES SRCS scene_opengl_es_test.cpp )
|
|
|
|
integrationTest(NAME testScreenChanges SRCS screen_changes_test.cpp)
|
2016-08-13 12:35:01 +00:00
|
|
|
integrationTest(NAME testModiferOnlyShortcut SRCS modifier_only_shortcut_test.cpp)
|
2022-03-03 14:20:20 +00:00
|
|
|
if (KWIN_BUILD_TABBOX)
|
2023-04-21 11:07:49 +00:00
|
|
|
integrationTest(NAME testTabBox SRCS tabbox_test.cpp)
|
2022-03-03 14:20:20 +00:00
|
|
|
endif()
|
2023-04-21 11:07:49 +00:00
|
|
|
integrationTest(NAME testWindowSelection SRCS window_selection_test.cpp)
|
|
|
|
integrationTest(NAME testPointerConstraints SRCS pointer_constraints_test.cpp)
|
|
|
|
integrationTest(NAME testKeyboardLayout SRCS keyboard_layout_test.cpp)
|
|
|
|
integrationTest(NAME testKeymapCreationFailure SRCS keymap_creation_failure_test.cpp)
|
|
|
|
integrationTest(NAME testShowingDesktop SRCS showing_desktop_test.cpp)
|
|
|
|
integrationTest(NAME testDontCrashUseractionsMenu SRCS dont_crash_useractions_menu.cpp)
|
|
|
|
integrationTest(NAME testKWinBindings SRCS kwinbindings_test.cpp)
|
|
|
|
integrationTest(NAME testLayerShellV1Window SRCS layershellv1window_test.cpp)
|
|
|
|
integrationTest(NAME testVirtualDesktop SRCS virtual_desktop_test.cpp)
|
|
|
|
integrationTest(NAME testXdgShellWindowRules SRCS xdgshellwindow_rules_test.cpp)
|
|
|
|
integrationTest(NAME testIdleInhibition SRCS idle_inhibition_test.cpp)
|
|
|
|
integrationTest(NAME testDontCrashReinitializeCompositor SRCS dont_crash_reinitialize_compositor.cpp)
|
|
|
|
integrationTest(NAME testNoGlobalShortcuts SRCS no_global_shortcuts_test.cpp)
|
|
|
|
integrationTest(NAME testPlacement SRCS placement_test.cpp)
|
|
|
|
integrationTest(NAME testActivation SRCS activation_test.cpp)
|
|
|
|
integrationTest(NAME testInputMethod SRCS inputmethod_test.cpp)
|
|
|
|
integrationTest(NAME testScreens SRCS screens_test.cpp)
|
|
|
|
integrationTest(NAME testScreenEdges SRCS screenedges_test.cpp)
|
|
|
|
integrationTest(NAME testOutputChanges SRCS outputchanges_test.cpp)
|
|
|
|
integrationTest(NAME testTiles SRCS tiles_test.cpp)
|
|
|
|
integrationTest(NAME testFractionalScaling SRCS fractional_scaling_test.cpp)
|
2023-05-02 12:06:17 +00:00
|
|
|
integrationTest(NAME testMoveResize SRCS move_resize_window_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testStruts SRCS struts_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testShade SRCS shade_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testDontCrashAuroraeDestroyDeco SRCS dont_crash_aurorae_destroy_deco.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testPlasmaWindow SRCS plasmawindow_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testX11DesktopWindow SRCS desktop_window_x11_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testXwaylandInput SRCS xwayland_input_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testWindowRules SRCS window_rules_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testX11Window SRCS x11_window_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testQuickTiling SRCS quick_tiling_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testGlobalShortcuts SRCS globalshortcuts_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testStackingOrder SRCS stacking_order_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testDbusInterface SRCS dbus_interface_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testXwaylandServerCrash SRCS xwaylandserver_crash_test.cpp LIBS XCB::ICCCM)
|
|
|
|
integrationTest(NAME testXwaylandServerRestart SRCS xwaylandserver_restart_test.cpp LIBS XCB::ICCCM)
|
2015-10-14 07:58:16 +00:00
|
|
|
|
2021-05-30 23:00:35 +00:00
|
|
|
qt_add_dbus_interfaces(DBUS_SRCS ${CMAKE_BINARY_DIR}/src/org.kde.kwin.VirtualKeyboard.xml)
|
2023-04-21 11:07:49 +00:00
|
|
|
integrationTest(NAME testVirtualKeyboardDBus SRCS test_virtualkeyboard_dbus.cpp ${DBUS_SRCS})
|
2020-11-27 19:37:40 +00:00
|
|
|
|
2023-05-02 12:06:17 +00:00
|
|
|
if (TARGET K::KPipeWire)
|
|
|
|
integrationTest(NAME testScreencasting SRCS screencasting_test.cpp LIBS K::KPipeWire)
|
|
|
|
endif()
|
2016-08-12 10:52:47 +00:00
|
|
|
|
2023-05-02 12:06:17 +00:00
|
|
|
if (KWIN_BUILD_ACTIVITIES)
|
|
|
|
integrationTest(NAME testActivities SRCS activities_test.cpp LIBS XCB::ICCCM)
|
2016-04-25 09:27:00 +00:00
|
|
|
endif()
|
2016-08-02 07:12:57 +00:00
|
|
|
|
|
|
|
add_subdirectory(scripting)
|
2016-08-03 14:12:23 +00:00
|
|
|
add_subdirectory(effects)
|
[scenes/opengl] Fix overlapping shadow tiles
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
2018-06-07 08:48:05 +00:00
|
|
|
add_subdirectory(fakes)
|