2016-06-20 09:21:16 +00:00
|
|
|
add_subdirectory(helper)
|
2015-10-07 17:06:34 +00:00
|
|
|
|
2018-08-21 20:06:42 +00:00
|
|
|
add_library(KWinIntegrationTestFramework STATIC kwin_wayland_test.cpp test_helpers.cpp ${kwin_XWAYLAND_SRCS})
|
2016-06-30 06:37:50 +00:00
|
|
|
target_link_libraries(KWinIntegrationTestFramework kwin Qt5::Test)
|
|
|
|
|
|
|
|
function(integrationTest)
|
2017-09-30 14:35:52 +00:00
|
|
|
set(optionArgs WAYLAND_ONLY)
|
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})
|
|
|
|
target_link_libraries(${ARGS_NAME} KWinIntegrationTestFramework kwin Qt5::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})
|
2017-09-30 14:35:52 +00:00
|
|
|
if (${ARGS_WAYLAND_ONLY})
|
|
|
|
add_executable(${ARGS_NAME}_waylandonly ${ARGS_SRCS})
|
|
|
|
set_target_properties(${ARGS_NAME}_waylandonly PROPERTIES COMPILE_DEFINITIONS "NO_XWAYLAND")
|
|
|
|
target_link_libraries(${ARGS_NAME}_waylandonly KWinIntegrationTestFramework kwin Qt5::Test ${ARGS_LIBS})
|
2017-08-25 16:18:20 +00:00
|
|
|
add_test(NAME kwin-${ARGS_NAME}-waylandonly COMMAND dbus-run-session ${CMAKE_BINARY_DIR}/bin/${ARGS_NAME}_waylandonly)
|
2017-09-30 14:35:52 +00:00
|
|
|
endif()
|
2016-06-30 06:37:50 +00:00
|
|
|
endfunction()
|
|
|
|
|
2017-09-30 14:35:52 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testStart SRCS start_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testTransientNoInput SRCS transient_no_input_test.cpp)
|
2016-06-30 06:37:50 +00:00
|
|
|
integrationTest(NAME testDontCrashGlxgears SRCS dont_crash_glxgears.cpp)
|
|
|
|
integrationTest(NAME testLockScreen SRCS lockscreen.cpp)
|
2017-09-30 14:35:52 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testDecorationInput SRCS decoration_input_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testInternalWindow SRCS internal_window.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testTouchInput SRCS touch_input_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY 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)
|
2017-09-30 14:35:52 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testDontCrashCancelAnimation SRCS dont_crash_cancel_animation.cpp)
|
2019-02-12 12:37:42 +00:00
|
|
|
integrationTest(WAYLAND_ONLY 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)
|
2017-09-30 14:35:52 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testPlasmaSurface SRCS plasma_surface_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testMaximized SRCS maximize_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testShellClient SRCS shell_client_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testDontCrashNoBorder SRCS dont_crash_no_border.cpp)
|
2018-08-21 20:06:42 +00:00
|
|
|
integrationTest(NAME testXwaylandSelections SRCS xwayland_selections_test.cpp)
|
2017-09-30 14:35:52 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testSceneOpenGL SRCS scene_opengl_test.cpp generic_scene_opengl_test.cpp)
|
[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
|
|
|
integrationTest(WAYLAND_ONLY NAME testSceneOpenGLShadow SRCS scene_opengl_shadow_test.cpp)
|
2017-09-30 14:35:52 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testSceneOpenGLES SRCS scene_opengl_es_test.cpp generic_scene_opengl_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testNoXdgRuntimeDir SRCS no_xdg_runtime_dir_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testScreenChanges SRCS screen_changes_test.cpp)
|
2016-08-13 12:35:01 +00:00
|
|
|
integrationTest(NAME testModiferOnlyShortcut SRCS modifier_only_shortcut_test.cpp)
|
2017-09-30 14:35:52 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testTabBox SRCS tabbox_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testWindowSelection SRCS window_selection_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testPointerConstraints SRCS pointer_constraints_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testKeyboardLayout SRCS keyboard_layout_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testKeymapCreationFailure SRCS keymap_creation_failure_test.cpp)
|
|
|
|
integrationTest(WAYLAND_ONLY NAME testShowingDesktop SRCS showing_desktop_test.cpp)
|
2017-10-17 17:13:50 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testDontCrashUseractionsMenu SRCS dont_crash_useractions_menu.cpp)
|
2017-09-30 14:35:52 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testKWinBindings SRCS kwinbindings_test.cpp)
|
2017-10-01 13:26:40 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testVirtualDesktop SRCS virtual_desktop_test.cpp)
|
2017-10-07 12:09:07 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testShellClientRules SRCS shell_client_rules_test.cpp)
|
2017-11-16 20:48:19 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testIdleInhibition SRCS idle_inhibition_test.cpp)
|
[colorcorrection] Night Color - blue light filter at nighttime
With Wayland KWin needs to provide certain services, which were provided
before that by the Xserver. One of these is gamma correction, which includes
the - by many people beloved - functionality to reduce the blue light at
nighttime. This patch provides the KWin part of that. It is self contained,
but in the end will work in tandem with a lib in Plasma Workspace and a KCM
in Plasma Desktop, which can be used to configure Night Color.
* Three modi:
** Automatic: The location and sun timings are determined automatically
(location data updates will be provided by the workspace)
** Location: The sun timings are determined by fixed location data
** Timings: The sun timings are set manually by the user
* Color temperature value changes are smoothly applied:
** Configuration changes, which lead to other current values are changed
in a quick way over a few seconds
** Changes on sunrise and sunset are applied slowly over the course of few
minutes till several hours depending on the configuration
* The current color value is set immediately at startup or after suspend
phases and VT switches. There is no flickering.
* All configuration is done via a DBus interface, changed values are tested
on correctness and applied atomically
* Self contained mechanism, speaks directly to the hardware by setting the
gamma ramps on the CRTC
* Currently working on DRM backend, extensible to other platform backends in
the future
* The code is written in a way to make the classes later easily extendable to
also provide normal color correction, as it's currently done by KGamma on X
Test Plan:
Manually with the workspace parts and added integration tests in KWin using
the virtual backend.
BUG:371494
Reviewers: #kwin, graesslin
Subscribers: kwin, plasma-devel, #kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D5928
2017-12-11 09:43:12 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testColorCorrectNightColor SRCS colorcorrect_nightcolor_test.cpp)
|
2018-02-15 17:04:12 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testDontCrashCursorPhysicalSizeEmpty SRCS dont_crash_cursor_physical_size_empty.cpp)
|
2018-12-01 16:23:37 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testDontCrashReinitializeCompositor SRCS dont_crash_reinitialize_compositor.cpp)
|
2018-12-02 12:09:37 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testNoGlobalShortcuts SRCS no_global_shortcuts_test.cpp)
|
2019-02-21 22:25:19 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testBufferSizeChange SRCS buffer_size_change_test.cpp generic_scene_opengl_test.cpp)
|
2019-09-12 16:45:53 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testPlacement SRCS placement_test.cpp)
|
2019-08-28 08:46:30 +00:00
|
|
|
integrationTest(WAYLAND_ONLY NAME testActivation SRCS activation_test.cpp)
|
2015-10-14 07:58:16 +00:00
|
|
|
|
2016-04-25 09:27:00 +00:00
|
|
|
if (XCB_ICCCM_FOUND)
|
2016-06-30 06:37:50 +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)
|
2016-07-14 07:45:03 +00:00
|
|
|
integrationTest(NAME testScreenEdgeClientShow SRCS screenedge_client_show_test.cpp LIBS XCB::ICCCM)
|
2016-08-09 11:50:29 +00:00
|
|
|
integrationTest(NAME testX11DesktopWindow SRCS desktop_window_x11_test.cpp LIBS XCB::ICCCM)
|
2016-08-23 07:15:05 +00:00
|
|
|
integrationTest(NAME testXwaylandInput SRCS xwayland_input_test.cpp LIBS XCB::ICCCM)
|
2016-08-25 11:23:06 +00:00
|
|
|
integrationTest(NAME testWindowRules SRCS window_rules_test.cpp LIBS XCB::ICCCM)
|
2016-10-31 14:50:14 +00:00
|
|
|
integrationTest(NAME testX11Client SRCS x11_client_test.cpp LIBS XCB::ICCCM)
|
2017-02-14 06:29:38 +00:00
|
|
|
integrationTest(NAME testQuickTiling SRCS quick_tiling_test.cpp LIBS XCB::ICCCM)
|
2017-07-20 17:00:01 +00:00
|
|
|
integrationTest(NAME testGlobalShortcuts SRCS globalshortcuts_test.cpp LIBS XCB::ICCCM)
|
2017-07-27 15:09:40 +00:00
|
|
|
integrationTest(NAME testSceneQPainter SRCS scene_qpainter_test.cpp LIBS XCB::ICCCM)
|
2018-06-14 10:24:13 +00:00
|
|
|
integrationTest(NAME testSceneQPainterShadow SRCS scene_qpainter_shadow_test.cpp LIBS XCB::ICCCM)
|
2018-10-02 05:39:31 +00:00
|
|
|
integrationTest(NAME testStackingOrder SRCS stacking_order_test.cpp LIBS XCB::ICCCM)
|
2018-12-08 16:06:51 +00:00
|
|
|
integrationTest(NAME testDbusInterface SRCS dbus_interface_test.cpp LIBS XCB::ICCCM)
|
2016-08-12 10:52:47 +00:00
|
|
|
|
|
|
|
if (KWIN_BUILD_ACTIVITIES)
|
|
|
|
integrationTest(NAME testActivities SRCS activities_test.cpp LIBS XCB::ICCCM)
|
|
|
|
endif()
|
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)
|