Commit graph

25343 commits

Author SHA1 Message Date
l10n daemon script
b88e84b120 GIT_SILENT Sync po/docbooks with svn 2023-09-03 02:59:29 +00:00
l10n daemon script
4fe176cb94 GIT_SILENT Sync po/docbooks with svn 2023-09-02 02:22:26 +00:00
Alexander Lohnau
91f027be51 Specify KPackageStructure instead of KPackageType in knsrc files
The latter is removed in KF6

CCBUG: 474026
2023-09-01 20:20:07 +00:00
Kai Uwe Broulik
dadd7bb545 debug_console: Support KWin::Window* property type
Display the window caption and class name (safe for the icon) like is done
with the windows themselves.

Eases debugging properties, such as "transientFor".
2023-09-01 18:52:03 +00:00
Nicolas Fella
64cc884029 Use keyword signature for target_link_libraries call 2023-09-01 19:45:36 +02:00
Vlad Zahorodnii
b78258e464 backends/drm: Guard against null crtc in DrmPipeline::updateCursor
The null check was lost in fe1d4ffbc5.

BUG: 473963
2023-08-31 14:19:43 +00:00
Nate Graham
07773512c8 tabbox/switchers/thumbnail_grid: remove unnecessary second Math.round()
Fixup for 996730d3
2023-08-31 07:38:02 -06:00
Nate Graham
996730d310 tabbox/switchers/thumbnail_grid: refine icon positioning
This way it won't overlap the label when using a font with unusual
metrics.

BUG: 473690
2023-08-30 15:17:26 -06:00
Xaver Hugl
1d1981b0f4 backends/drm: make buffer age environment variable work again
It can be very useful for debugging
2023-08-30 11:11:33 +00:00
Xaver Hugl
1c18d11206 backends/drm: replace drmModeAtomicCommit with a custom implementation
drmModeAtomicCommit does additional allocations and sorting that KWin doesn't
use or need
2023-08-30 10:46:58 +00:00
Vlad Zahorodnii
dee8a3b3a7 Clear decoration focus when window closes
If the window closes, we need to reset the focused decoration object.

BUG: 473244
2023-08-30 09:28:03 +00:00
Kai Uwe Broulik
5572e390c4 XdgToplevelWindow: Consider app responsive only if sent ping was received
> Pass the serial specified in the event back to the compositor by sending
> a "pong" request back with the specified serial.
2023-08-29 19:18:49 +02:00
l10n daemon script
ef23d01502 GIT_SILENT Sync po/docbooks with svn 2023-08-29 02:13:09 +00:00
Kai Uwe Broulik
f9e390c716 window: Replay move window action if window isn't movable
Otherwise, when using Alt as modifier for moving windows, the tabbox window
cannot be clicked because Alt is held down during Alt+Tab, which would try
to initiate a window move but the window isn't actually movable, so ends up
doing nothing.

It also allows to interact with Plasma popups, which are also immovable,
while the modified key is pressed.
2023-08-28 15:42:31 +00:00
David Edmundson
10ed34bc9d Avoid painting unchanged scene layers
Currently when we move the mouse the one render loop triggers a repaint.
When the cursor layer needs a new update we end up in the compositor
repainting the main content.

Even though painting should mostly no-op it still goes through all
existing items and effects to collect damage, still potentially making
the GL context current which could stall. A waste when we know we
haven't got anything to do. It's enough to cause noticable mouse lag on
some hardware.

Co-authored-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
2023-08-28 11:38:18 +00:00
Xaver Hugl
fe1d4ffbc5 move cursor rendering from the backends to the compositor 2023-08-28 11:10:41 +00:00
l10n daemon script
8d86f1eb54 GIT_SILENT Sync po/docbooks with svn 2023-08-28 02:59:06 +00:00
Alexander Lohnau
40be656eed Adjust to changed signature of kcoreaddons_target_static_plugins
Depends on https://invent.kde.org/frameworks/kcoreaddons/-/merge_requests/360
2023-08-27 12:09:56 +02:00
l10n daemon script
ed8437ed0d GIT_SILENT Sync po/docbooks with svn 2023-08-25 02:16:56 +00:00
Vlad Zahorodnii
43669cebda backends/x11: Destroy GLRenderTimeQuery while ctx is valid
BUG: 473707
2023-08-24 14:17:49 +00:00
Vlad Zahorodnii
d25574e7c6 Merge Window::userCanSetFullscreen() with Window::isFullscreenable() 2023-08-24 07:29:02 +00:00
Vlad Zahorodnii
346d4413a1 Remove boolean trap in Window::setFullScreen()
In most cases, it doesn't matter because a window is made fullscreen by
user. In a few places, the user arg is incorrectly set to false.
2023-08-24 07:29:02 +00:00
l10n daemon script
b41834f1aa GIT_SILENT Sync po/docbooks with svn 2023-08-24 02:13:33 +00:00
Xaver Hugl
fb7b5ab035 backends/drm: fix underscan property name 2023-08-23 21:36:42 +02:00
Vlad Zahorodnii
75275bbc8f core: Move dmaBufAttributesForBo() to gbmgraphicsbufferallocator.cpp 2023-08-23 17:13:07 +03:00
Vlad Zahorodnii
dabf3038f0 core: Drop dmabuf texture creation api in OutputBackend
It never belonged in the OutputBackend, but we also didn't have a better
place when the relevant code had been added.

With the introduction of graphics buffer allocators, it's no longer the
case.
2023-08-23 17:13:07 +03:00
Mike Noe
2c809305b0 plugins/private: Update to ecm qml plugin tooling 2023-08-23 08:42:43 -04:00
Mike Noe
010a8a1e13 scripting: Add localized context to the shared QML engine 2023-08-23 08:42:43 -04:00
Mike Noe
90a71553c3 plugins/private: Remove duplicate import/unneed include 2023-08-23 08:42:43 -04:00
Mike Noe
95cbed08b8 docs: Update docs for effects 2023-08-23 08:42:43 -04:00
Xaver Hugl
a800b54a13 backends/drm: fix legacy modesets
There's no pending frame on modesets with legacy, so calling pageFlipped crashes KWin

BUG: 473664
2023-08-23 12:15:33 +00:00
Vlad Zahorodnii
2814030fef Drop {client,window}DemandsAttentionChanged
There are no its users. Also same can be achieved by listening to
Window::demandsAttentionChanged signal.
2023-08-23 11:58:08 +00:00
Vlad Zahorodnii
ceac574a68 scripting: Rename Workspace.clientList 2023-08-23 11:30:30 +00:00
Vlad Zahorodnii
52604c5d73 scripting: Rename Workspace.{clientAdded,clientRemoved} signals 2023-08-23 11:30:30 +00:00
Vlad Zahorodnii
b39ca36d21 scripting: Rename Workspace.activeClient to activeWindow
Rename activeClient to activeWindow to make the property name more
accurate.
2023-08-23 11:30:30 +00:00
Xaver Hugl
44937136cd backends: record GPU render time
This should make it much less likely for KWin to miss frames
2023-08-23 10:51:19 +00:00
Xaver Hugl
02b996cf9c platformsupport/scenes/opengl: add opengl render query class 2023-08-23 10:51:19 +00:00
Vlad Zahorodnii
417eeaf44b ci: Specify runtime dependencies in .kde-ci.yml 2023-08-23 06:53:19 +00:00
l10n daemon script
28f5da65cb GIT_SILENT Sync po/docbooks with svn 2023-08-23 02:16:12 +00:00
Vladimir Zolotopupov
361e2c3eba wayland: Fix high-resolution scroll wheel discrete step calculation
Some wheels might send fewer or more than 120 fractions per step.
In order to always register a discrete step, we count these as a step
already at half(120/2) of one mouse wheel step in stepping mode.
The timer resets the initial value of the step because the mouse
can switch between free spin and stepping mode.
When transitioning from free spin to stepping mode,
the mouse calibrates its wheel position to the starting point
and generates some fractions.
As a result, our starting position can appear far from the zero point,
potentially causing us to count two(or zero) steps instead of one.
Additionally, the compositor might start when the mouse is in
free spin mode(or the mouse could be connected in free spin mode),
leading to the same issue.
https://gitlab.freedesktop.org/libinput/libinput/-/issues/814
2023-08-22 21:11:59 +03:00
Vladimir Zolotopupov
792ff84419 wayland: Refactor the high-resolution scroll wheel step accumulator 2023-08-22 21:11:59 +03:00
Xaver Hugl
0ab928c9ac backends/libinput: enable tap to click and tap-and-drag by default 2023-08-22 14:17:23 +00:00
Vlad Zahorodnii
2f6f1d9822 wayland: Keep popups on their parents' desktops
At the moment, popups are assigned to the current desktop and activity.
However, a toplevel can be on several virtual desktops. If user switches
between virtual desktops and the active window does not change, it can
result in not being able to dismiss or open new popups depending on the
toolkit implementation details.

To prevent that, keep popups on same virtual desktops as their parents.

BUG: 398628
2023-08-22 13:17:13 +00:00
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.
2023-08-22 08:21:21 +00:00
Vlad Zahorodnii
bb18d9fbac wayland: Don't round source geometry size
.toSize() exists from the times when surfaceSize used to be a QSize. It
shouldn't matter in practice though.
2023-08-21 18:02:00 +00:00
Kai Uwe Broulik
23059285cf kcms/screenedges: Port to KSvg
Removes the dependency on Plasma Framework from the KCMs.

This won't use the current Plasma theme but always the default one.
However, the monitor graphic hasn't really been used anywhere else
anymore (it used to be in e.g. the wallpaper settings in Plasma 4),
so I think this is alright.
2023-08-21 14:21:00 +00:00
Vlad Zahorodnii
adf8ed8f34 scene: Port qpainter rendering away from surface-to-buffer matrix
This fixes rendering of surfaces with transformed buffers in qpainter
renderer.
2023-08-21 13:12:23 +00:00
Vlad Zahorodnii
54e2a5761c wayland: Use correct bounds size when computing the source box
The buffer transform specifies a transform from the buffer coordinate
space to the surface coordinate space.

The inverse buffer transform specifies a transform from the surface
coordinate space to the buffer coordinate space.

OutputTransform::map(QRect, QSizeF) expects both arguments to be in the
same coordinate space.

In case of SurfaceInterfacePrivate::computeSourceBox(), both should be
scaled surface coordinates so bufferTransform.inverted() maps the source
rect to the proper buffer coordinate space.
2023-08-21 12:27:06 +00:00
Xaver Hugl
7582d72eac backends/drm: cache the canonical file path of the device 2023-08-21 13:41:57 +02:00
Kai Uwe Broulik
410ca44e6e XdgPopupWindow: Reposition for non-reactive positioners
Ensures that e.g. context menus move about with their parents when they
get moved around.

However, as per spec don't re-constrain the window when its positioner
is non-reactive. This change calculates the offset from its parent window
once initially and places the window relative to that whenever the parent
moves.

Only when the positioner is reactive, will it recalculate the placement fully.

BUG: 461994
2023-08-21 11:17:18 +00:00