951 Commits (472956b4fa6262155a0ba1e87dc6c9939ddb6c81)

Author SHA1 Message Date
Alexander Lohnau 22dfc8978e Adjust to removed QueryMatch::Type enum in KRunner 11 months ago
Jonathan Esk-Riddell 2f1fd37c9b Update version number for 5.81.0
GIT_SILENT
11 months ago
Nicolas Fella 41a5b84958 Fix KWayland version 11 months ago
Jonathan Esk-Riddell 7aaf2d2903 Update Qt version requirement to 6.5.0
GIT_SILENT
11 months ago
Jonathan Esk-Riddell 287094167d kactivities now using plasma versioning 11 months ago
Jonathan Esk-Riddell ae46ac6382 plasma framework now uses plasma version 11 months ago
Xaver Hugl ae84480fbf outputconfigurationstore: add new config system
Instead of an external service (like KScreen) storing and restoring output configurations,
with this commit KWin takes over that responsibility. This allows it to, among other things,
generate appropriate configs for new sets of outputs immediately, and take KWin-internal information
about outputs into account when generating them.

CCBUG: 474021
CCBUG: 469653
CCBUG: 466342
CCBUG: 470863
CCBUG: 466556
BUG: 466208
BUG: 455082
BUG: 457430
12 months ago
Niccolò Venerandi 028dd552cf Merge desktop grid and overview together with a new three-state design
Merges the desktop grid and overview effects together in a new three-state one;
you can switch between them with a certain shortcut or gesture, and you can also
still access either the desktop grid or overview directly.

Default shortcuts are also updated to be Meta+G for Grid, Meta+W for Overview,
Meta+Tab to switch between the three states and Meta+Shift+Tab to cycle in the
opposite direction.

BUG: 474044
BUG: 460661
BUG: 460774
BUG: 456572
BUG: 449601
BUG: 450262
BUG: 449801
BUG: 461510
BUG: 463886
BUG: 459754
BUG: 459749
BUG: 459748
BUG: 459467
FIXED-IN: 6.0
1 year ago
Mike Noe 2c809305b0 plugins/private: Update to ecm qml plugin tooling 1 year ago
Marco Martin 54b3c2c6b6 port screenedge effect to KSvg
Part of https://invent.kde.org/frameworks/ksvg/-/issues/1.

Port the linked usage of Plasma::Svg to KSvg::Svg, still
syncing with the Plasma style.
1 year ago
Allan Sandfeld Jensen 08d5dc27d0 Fix build with Debian/Ubuntu
Support older pkg-config naming of libdisplay-info
1 year ago
Bhushan Shah 5eec4cdb52 cmake: use add_feature_info for libdisplayinfo
That allows cmake to print proper output when dependency is not found.
1 year ago
Vlad Zahorodnii 6cd56d5192 wayland: Implement cursor-shape-v1
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/194
1 year ago
Aleix Pol Gonzalez 49a76ea772 Install KWaylandServer headers
There are use cases for the headers to be used, e.g. when implementing
wayland-specific workflows from an Effect.
In order to be able to use these, we also need to expose libkwin to be
imported as it carries the interfaces' symbols.

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
1 year ago
Vlad Zahorodnii e1980c0009 cmake: Search for KF6Service
KF6Plasma no longer pulls it.
1 year ago
Marco Martin 569e0f8f64 Port to KSvg
port Svg and FrameSvg items to KSvg
1 year ago
Laurent Montel 9ebc3e298f We use qt6 now 1 year ago
Aleix Pol 52a96996f3 Do not look up kcm dependencies if KWIN_BUILD_KCMS=OFF
We are not going to use them anyway...
1 year ago
Xaver Hugl 4f9f73e28d utils/edid: use libdisplay-info 1 year ago
Vlad Zahorodnii d2b0ed0c5a wayland: Implement wl_surface.preferred_buffer_scale and wl_surface.preferred_buffer_transform
The new events provide a way to tell the client what buffer scale and
buffer transform to use as they may lack the context to make a proper
decision.
1 year ago
Vlad Zahorodnii 70d76791d8 cmake: Correct gbm version check
It appears like gbm_VERSION can be a list, which if() does not like. So
pass the variable to the if() rather than its value. While on this, also
change GREATER_EQUAL to VERSION_GREATER_EQUAL so cmake compares
individual version components.
1 year ago
Vlad Zahorodnii 0a82f33db5 Drop XCB_ICCCM_FOUND checks
Qt requires xcb-icccm 0.3.9. On the other hand, 0.3.9 contains all the
types and functions used by kwin, so remove the corresponding
XCB_ICCM_FOUND checks to simplify the code.
1 year ago
Andreas Cord-Landwehr 258e9d8426 Extend GLX switch to check if QtGui was being built with GLX plugin
Even though epoxy with GLX may be present, Qt's native interface only
exposes GLX API when it was being built with GLX support.
1 year ago
Vlad Zahorodnii a89573224c Drop Qt6WaylandClientMacros.cmake fork 1 year ago
Nicolas Fella 8a0a91fea1 Port to standalone kglobalacceld 1 year ago
Aleix Pol d0b87a900f screencasting: Add an autotest
Adds an autotest that makes sure a screencasting stream works as
expected.
Adds an optional dependency to KPipeWire only effective to run the test.
1 year ago
Vlad Zahorodnii f20cf30693 Fix populating CMAKE_AUTOMOC_MACRO_NAMES with kwineffects macros
Apparently CMAKE_AUTOMOC_MACRO_NAMES modifications are not visible in
sibling directories. To work around that, populate
CMAKE_AUTOMOC_MACRO_NAMES with libkwineffects plugin macros in the
top level CMakeLists.txt file.
2 years ago
Vlad Zahorodnii 1211d8e3d6 Prefix more kwineffects includes with libkwineffects/ 2 years ago
Vlad Zahorodnii e88a4e34a3 Remove some include_directories()
It seems we've settled on dir/dir/header.h includes, so let's use them
consistently.
2 years ago
Vlad Zahorodnii 2c0acdca11 Drop unused kitemviews dependency
Seems unused. KWin compiles fine without it.
2 years ago
Vlad Zahorodnii 9aebfcb2ff Include src/ directory in the proper place
There's other code that includes headers starting from src/ directory,
so putting the corresponding include_directory() in src/effects/ is
inappropriate.
2 years ago
Friedrich W. H. Kossebau b2a50cffd8 Adapt to Qt6 name of QAccessibilityClient 2 years ago
Vlad Zahorodnii 19fec2a657 backends/x11: Use DRI3 directly
At the moment, the buffers for wsi are allocated implicitly by the EGL
implementation, which is fine for "normal" use cases. But we start
hitting the ceiling the moment we need to something more advanced. For
example the EGL backend creates a dummy fbo object wrapping the default
framebuffer, meaning that we cannot pass it to qtquick (because it can
use its own opengl context).

Another reason for using explicit buffers is that it lets us to clean up
some output related abstractions.
2 years ago
Vlad Zahorodnii 49977d38f2 build: Remove redundant find_package() for Wayland::Client
find_package(Wayland) already takes of the client lib, it's needed by
the wayland backend, so BUILD_TESTING specific find_package() can be
merged with it.
2 years ago
Vlad Zahorodnii 5184a630bb build: Search for wayland client libs only when building tests 2 years ago
Vlad Zahorodnii b93e01a724 Drop old kconf update scripts 2 years ago
Vlad Zahorodnii 10df3b0eb0 Remove Qt 5 specific code 2 years ago
Vlad Zahorodnii d9f5d432be Port to KF6 2 years ago
Jonathan Esk-Riddell 3de1498252 Update version number for 5.27.80
GIT_SILENT
2 years ago
Jonathan Esk-Riddell 0c1e73ce82 Update kf5 version requirement to 5.102.0
GIT_SILENT
2 years ago
Jonathan Esk-Riddell a873830a86 Update version number for 5.28.80
GIT_SILENT
2 years ago
Jonathan Esk-Riddell 0e0b9dea12 Update version number for 5.26.90
GIT_SILENT
2 years ago
Weng Xuetian 6e87fae7f7 Support XKB_CONTEXT_NO_SECURE_GETENV flag
Since kwin play with CAP_SYS_NICE, secure_getenv will fail for xkbcommon
to load user level xkbmap. This allows kwin to load config under
~/.config/xkb

BUG: 447206
2 years ago
Asahi Lina a508149882 dmabuf: Create buffers without the SCANOUT flag
gbm_bo_create_with_modifiers implies the GBM_BO_USE_SCANOUT flag, which
disables complex (tiled or compressed) formats that cannot be used for
scanout. This reduces performance. We don't need to scan out buffers
created for sceencasting/etc., so this is suboptimal.

By switching to gbm_bo_create_with_modifiers2, we can explicitly pass
the flags and avoid falling back to lower performance formats. Also add
a config check and fall back to the old version, to retain compatibility
with older mesa versions.
2 years ago
Vlad Zahorodnii ae4c3c1a65 backends/x11: Use PRESENT extension to get notified about frame completion
Currently, we use a timer to get notified when a frame is presented, but
there's a better way using PRESENT extension's PresentCompleteNotify events.

Note that we implicitly rely on the fact that EGL implementation uses
the PRESENT extension to present pixmaps, which is usually the case.
QPainter backend needs some adjustments.
2 years ago
David Edmundson c4b134da8d Implement wp-fractional-scale-v1
This allows clients to provide buffers at native resolutions when
fractional scaling is used.

Virtual backend is adjusted to support scales as floats
2 years ago
Vlad Zahorodnii 182026a4bd backends/wayland: Use linux-dmabuf directly
The main motivation behind this change is to get rid of the dependency
on EGLSurface so the order in which output layers are presented or
updated doesn't matter.

At the moment, if both the cursor and the primary layers are updated
within same frame, the read and draw surfaces in present() will be wrong
for the primary layer.

With fbos, the read and draw surfaces won't matter.
2 years ago
Xaver Hugl b261050be1 wayland: implement tearing_control_v1 2 years ago
Luigi Toscano c18a0b80bf Install translated documentation from po/ too
... when KDocTools is found.
2 years ago
Vlad Zahorodnii f881bdf51b backends/drm: Use drmModeGetConnectorTypeName()
It ensures that connector type naming is consistent across compositors
and saves us some work adding string mappings.

drmModeGetConnectorTypeName() uses the same naming scheme as the drm
backend so the client side should be unaffected by this change.

CCBUG: 385135
2 years ago