Commit graph

6077 commits

Author SHA1 Message Date
l10n daemon script
ad07733e18 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-12-03 02:07:06 +00:00
l10n daemon script
6a494f9364 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-12-02 02:07:11 +00:00
Bharadwaj Raju
e5753ea336 Make autohide screen edges use the same activation delay setting as other edges
Makes it possible to easily target things in a window near your panel edge,
without bringing up your panel.

The `m_client` condition this MR removes appears to have been added solely to make autohiding panels appear instantly. See c4140d6f4e.

BUG: 267277
2023-12-01 08:09:35 +00:00
l10n daemon script
0468860b0d SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-12-01 02:08:56 +00:00
Vlad Zahorodnii
f5f343d33e opengl: Drop scale arg in GLTexture::render()
It makes the API confusing and in many places, the target size is
already in device pixels.
2023-11-30 13:55:55 +00:00
Kai Uwe Broulik
cecd630b2e wayland/xdgforeign_v2: Create UUID without braces
They can be annoyin to type on the terminal, requiring escaping and what not.
The protocol doesn't specify the format, so we can just drop them.
2023-11-30 13:17:08 +00:00
l10n daemon script
2ad4bb6de3 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-11-30 02:05:05 +00:00
Vlad Zahorodnii
7787920277 cmake: Improve readability
Indent target_link_libraries of kwin to improve code readability. As is,
PUBLIC and PRIVATE blend with target names and therefore they are harder
to spot.
2023-11-29 14:21:36 +00:00
l10n daemon script
2b29e702dc SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-11-29 14:10:58 +00:00
Vlad Zahorodnii
5e90452d08 Add more closed window checks
The stack contains closed windows, so we need to guard against them.

BUG: 475423
2023-11-29 13:56:07 +00:00
Vlad Zahorodnii
c0b387bf5e backends: Drop waylandServer dependency
Backends dependending on the wayland server is not great, it makes them
less reusable and creates a strict instantion order that doesn't fully
make sense.
2023-11-29 13:31:47 +00:00
Vlad Zahorodnii
19c6425607 plugins/screencast: Use bilinear min/mag filter
Use GL_LINEAR so region screencasts look nicer when the output content
is magnified or minified.
2023-11-29 13:16:54 +00:00
Vlad Zahorodnii
6f7e06bf9e plugins/screencast: Clean up embedded cursor painting code
The MVP uniform is set twice, in addition to that, the cursor size is
scaled more than once.
2023-11-29 13:16:54 +00:00
Vlad Zahorodnii
40dbe9eb66 plugins/startupfeedback: Fix glitches with fractional scaling
Snap the bouncy icon to the pixel grid and if necessary stretch it.
2023-11-29 08:04:51 +00:00
Timothy Bautista
a25ae5261d plugins/morphingpopups: add easing curves
This makes the motion of the effect more consistent with other
window-related effects, which typically also use some form of a
cubic curve.
2023-11-29 07:47:12 +00:00
Yevhen Popok
0b1bc516e3 plugins/magnifier: Add missing "Zoom In" alt. shortcut
Make the "Magnifier" and "Zoom" effects use the same shortcuts for "Zoom In"
2023-11-29 07:27:39 +00:00
Yevhen Popok
0f31ab89c8 plugins/zoom: Add missing "Zoom In" default alt. shortcut 2023-11-29 07:27:39 +00:00
Vlad Zahorodnii
5ba0d2c933 plugins/screencast: Simplify OutputScreenCastSource::render()
The texture size is already in device pixels.
2023-11-29 07:15:35 +00:00
l10n daemon script
c8122e4cd5 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-11-29 02:08:23 +00:00
David Edmundson
d18db74d5f XWayland: no forwarding with Shift keys
The shift key doesn't make sense to be one of the keys that will trigger
KWin to allow XWayland apps to process all keys when it's pressed,
because there aren't generally global shortcuts that consist of Shift
plus an alphanumeric character key. That's because this key combination
is used to type capital letters.

So we can safely exclude the shift key to improve security against key logging and not break any global
shortcut-using XWayland apps for people using this feature.

The shift key on it's own is still forwarded as that's a non-character key.
2023-11-28 20:10:37 +00:00
Vlad Zahorodnii
831064f351 plugins: Add shakecursor plugin
This plugin helps you locate the cursor by enlarging it when the pointer
is quickly moved back and forth.

BUG: 432927
2023-11-28 16:36:26 +00:00
Vlad Zahorodnii
5696081cf7 plugins/startupfeedback: Add hidpi support on wayland 2023-11-28 18:18:16 +02:00
Vlad Zahorodnii
7233616c2c plugins/startupfeedback: Fix bouncing icon being too small on wayland
We need to be careful about the target rect when painting a hidpi image
onto a lodpi image.

This is the case when the startup feedback generates bouncing frames.
The icon pixmap may be hidpi, while the result image has device pixel
ratio 1.
2023-11-28 16:06:33 +00:00
Vlad Zahorodnii
784d48ef52 Port away from deprecated KConfigBase::group() api 2023-11-28 10:02:03 +00:00
Vlad Zahorodnii
c8d4f26a9f plugins/screencast: Fix hidpi region screencasting
Currently hidpi region screencasting is broken because output textures
are inappropriately scaled.

The orthographic projection is set up with logical pixels, but the
remaining rendering code uses "1 / m_scale" scale factor, which is wrong.

In order to fix hidpi and also simplify rendering logic, this change
makes rendering code use logical coordinate system. It's okay to do in
screencasting because we don't need to worry about snapping to the pixel
grid.

BUG: 476858
BUG: 476859
2023-11-28 08:52:12 +00:00
David Redondo
ff76c8581d Do not wait for timer if there are no open windows
If there were no open windows KWin would wait until the timer ran
out and return false signifying that some windows didnt close.
BUG:477573
FIXED-IN:6.0
2023-11-28 09:08:47 +01:00
Aleix Pol Gonzalez
b853de3d29 Allow building KWin without KGlobalAccel
Signed-off-by: Falko Becker <falko.becker@mbition.io>
2023-11-27 17:07:28 +01:00
Aleix Pol Gonzalez
25a976e559 Fix build Reduced kwin
GuiPrivate is also needed for the OffScreenQuickView

Signed-off-by: Falko Becker <falko.becker@mbition.io>
2023-11-27 17:07:28 +01:00
Doğukan Korkmaztürk
d4103fa9c1 backends/drm: Support hardware cursors on NVidia GPUs
This change enables the use of HW cursors on Nvidia GPUs. The problem
with the current approach is that the cursor plane requires a linear
buffer to be attached on the Nvidia hardware. However, Nvidia GPUs
cannot render to a linear texture, this is why DRM_FORMAT_MOD_LINEAR is
marked as "external only" when the supported modifiers are queried by
eglQueryDmaBufModifiersEXT(). Since the EGL render backend in KWin
cannot find a common DRM format modifier between what the cursor plane
needs and what the GPU can render to, it falls back to the SW cursor
implementation.

With this change, when the EGL renderer detects that a plane only
supports linear buffers but rendering directly to a linear buffer is not
possible, it copies the rendered content into a linear dumb buffer, and
attaches that buffer to the plane instead of using the rendered buffer
directly.
2023-11-27 10:47:12 -05:00
Kai Uwe Broulik
7bd9ae8d0b helpers/killer: Modernize UI
This overhauls the kill prompt UI to make it more modern and more
easily to grasp.

* Reduce the amount of text and redundancy.
  Give the window a title and drop the "app is not responding" heading.
  Try to remove the application name from the displayed window title.
  Also use the bold emphasis used in other places like deleting files.

* Use the application icon if available with a warning overlay.
  This makes it easier to grasp which application it's talking about.

* Move technical information (like PID and hostname) into an
  expandable "Details" section.

KGuiAddons has been implicitly pulled in by KConfigWidgets already.
2023-11-27 14:10:15 +00:00
Kai Uwe Broulik
5c96c38e39 Support kill prompt for XdgTopLevelWindows
Instead of killing the window without asking, show the kill prompt
like it's done for X11 windows.

The window in question is exported through XDG foreign so the kill
helper can parent itself to it, and an activation token is also provided.

Also, the more contemporary desktop file name is now used for
identification rather than window class.

A no-display desktop file is installed for the kill helper so that it
can get a proper window icon and suppress startup notification.
2023-11-27 14:10:15 +00:00
Kai Uwe Broulik
9b7718459e xdgforeign: Allow exporting surfaces internally
Without a client asking for it. This way we can send a surface
to another helper application, such as the window killer.

An ExportedSurface wrapper class is introduced which represents
an exported surface in a windowing-system independent way.
2023-11-27 14:10:15 +00:00
Kai Uwe Broulik
2b868edb9e xdgshell: Use killPingTimeout option
This makes it consistent with the timeout used on X11.

The current ping timeout was also generally quite short, causing apps
to desaturate for brief moments when they were busy e.g. starting up
or loading large files.
2023-11-27 14:10:15 +00:00
Kai Uwe Broulik
28c1545beb wayland_server: Initialize integrations in initWorkspace
At this point KWin options are available.
2023-11-27 14:10:15 +00:00
Kai Uwe Broulik
214e471a50 Introduce KillPrompt class
This encapsulates running and querying for the killer helper
and allows to more easily re-use it for Wayland windows.
2023-11-27 14:10:15 +00:00
Natalie Clarius
99ff31d3ab plugins/nightcolor: fix wrong changed property insert in DBus interface
BUG: 477482
2023-11-26 11:49:12 +00:00
l10n daemon script
bc957af28e SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-11-26 02:31:49 +00:00
Kai Uwe Broulik
41659956e7 kcms/rules: Add tooltip when rule name is elided 2023-11-25 19:24:09 +01:00
Xaver Hugl
301e95b07c backends/drm: unset GAMMA_LUT and CTM when enabling color management
BUG: 477430
2023-11-24 20:50:55 +00:00
Xaver Hugl
673cb16f15 utils: move drm format list to a cpp file
Makes compilation a little bit faster and removes warnings about the unused
function in some files
2023-11-24 16:14:07 +01:00
Vlad Zahorodnii
3ffa3ed0d8 tabbox: Guard against including closed windows when using stacking order
Closed windows are present in the stack. If user has selected
"Stacking order" sort order in task switcher KCM, we need to guard
against closed windows in the stack.
2023-11-24 10:39:46 +02:00
Vlad Zahorodnii
b40b13b661 tabbox: Fix ClientModel::createClientList() reinserting closed windows 2023-11-24 10:39:46 +02:00
Vlad Zahorodnii
4d0d153a57 Always reset tabbox ClientModel if a window is added or removed
Otherwise dangling pointers can end up in TabBox::ClientModel. Tabbox is
written with hard model resets in mind. In order to fix it, the client
model has to be rewritten.

BUG: 477166
2023-11-24 10:39:27 +02:00
Vlad Zahorodnii
f3e6d3ca19 Ignore decoration changes of closed windows
Ideally the decoration of a closed window should not change. However,
it seems like it can happen when resuming the session.

When switching to another VT, the touchpad input device is removed, but
the touch input device is still kept on my machine. This results in
the tablet mode changing temporarily and triggering recalculation of new
borders in breeze decoration. It's a no-no thing to do if the window is
closed. We need to guard against this case. But in long term, we need to
reroute all decoration state updates through kwin so it can block state
updates when the window is closed. It's also needed for double buffered
state.

How to improve handling of tablet mode detection when switching between
VTs needs a separate investigation.

CCBUG: 477166
2023-11-24 10:35:33 +02:00
Nicolas Fella
8ec88aa3bf Adjust to renamed activities libraries 2023-11-23 21:48:01 +01:00
Jonathan Esk-Riddell
cc4eac4c85 Port to renamed kwayland
https://invent.kde.org/plasma/kwayland/-/merge_requests/107  use renamed kwayland
2023-11-23 19:34:24 +00:00
Xaver Hugl
9e03a219cb platformsupport/scenes/opengl: don't crash when creating the texture fails 2023-11-23 18:46:03 +00:00
Xaver Hugl
985f0edf88 platformsupport/scenes/openglbackend: increase GPU reset timeout again
Apparently it can take a while in some cases, so this commit increases the
timeout to 10s
2023-11-23 17:36:41 +01:00
Vlad Zahorodnii
477102f6bc Fix build with qt dev 2023-11-23 14:27:39 +00:00
Xaver Hugl
593be99207 backends/drm: clear format list before parsing IN_FORMATS property
Otherwise we add the same modifiers every time the properties get updated,
which bloats the list and reduces performance over time
2023-11-23 14:03:03 +00:00
Xaver Hugl
8408dcfad0 core/colorspace: use gamma22 for sRGB content
sRGB content is made to be encoded with the sRGB piece-wise transfer function,
and to be decoded by displays with the gamma 2.2 transfer function.
When KWin has a display in sRGB mode, this doesn't make a difference - it
decodes with sRGB and encodes with sRGB, so there's effectively no transformation.
When the display is in PQ mode though, KWin uses the sRGB inverse EOTF for
decoding sRGB content, but not the sRGB EOTF for encoding it again.

To fix this, this commit changes KWin to use the gamma 2.2 EOTF and inverse
EOTF for untagged content. That's not technically correct for sRGB screenshots,
where we'd have to use the piecewise sRGB EOTF, but that's a problem that
can be solved in the future.
2023-11-23 13:13:30 +00:00
Nicolas Fella
e7942c3485 Implement bounce keys on Wayland
Bouce keys suppresses additional key presses during a given interval

This is used by people with motor impairments or bad keyboards

It works by remembering the last input timestamp for a key

If an event's timestamp is too close to the last timestamp for that key the event is rejected

BUG: 474752
2023-11-23 13:07:35 +00:00
Jarek Janik
6573275be6 Workspace::raiseWindow: fix order of transients
Place transients of window being raised in correct order when moving
them within unconstrained_stacking_order list; this way we don't have to
reorder them each time we call constrainedStackingOrder() later on.
Workspace::lowerWindow() already does it correctly.
2023-11-23 09:53:55 +00:00
Nicolas Fella
d4127d07fd Implement locking sticky keys on Wayland
When pressing a latched modifier a second time lock it

When pressing a locked modifier release it

BUG: 464452
2023-11-23 08:17:00 +00:00
Vlad Zahorodnii
beb2643143 backends/wayland: Throttle configure events
Output resizing is a resource intensive task so throttle it to keep
nested kwin_wayland responsive when it's resized.
2023-11-22 21:40:52 +02:00
David Edmundson
e52163d405 Drop DockLayer concept
With LayerShell all docks were in the above layer to match with the
semantics of the specification. Under X11 our main panel was also in the
above layer by setting the keep above flag.

The only thing that ended up in the dock layer were wayland applet
popups, and that was mostly by accident. When they get a transient
parent fixed they'll end up in the AboveLayer anyway so we should drop
it now to reduce complications.

This fixes a bug where applet popups could go under the panel.

BUG: 465354
2023-11-22 16:13:17 +00:00
Vlad Zahorodnii
a01a11fc35 wayland: Reset SurfaceInterface::primaryOutput when the output is removed
CCBUG: 477325
2023-11-22 14:42:59 +00:00
Vlad Zahorodnii
1f32d01a49 Guard against null Group in EffectWindow::group()
Closed windows don't belong to any group.

BUG: 476827
2023-11-22 13:05:54 +02:00
Vlad Zahorodnii
15b8fbe604 Preserve relative order of transient siblings
If a constraint indicates that window A must be below window B but it's
not the case at the moment, the workspace will move window A right after
window B.

This can invert the relative order of transient siblings, for example
let's say that there are three constraints

- A <- B (window A must be below window B)
- A <- C
- A <- D

and the unconstrained stacking order looks as follows: [B, C, D, A]. The
final constrained stacking order is expected to look as [A, B, C, D],
but currently it's [A, D, C, B] instead:

- starting stacking order: [B, C, D, A]
- apply A <- B constraint: [C, D, A, B]
- apply A <- C constraint: [D, A, C, B]
- apply A <- D constraint: [A, D, C, B]

In order to fix this issue, this patch makes the workspace traverse the
constraint graph in the reverse order. In addition to that, it ensures
that the relative order of transient siblings in unconstrained stacking
order is preserved in the constrained one.

BUG: 477262
2023-11-21 19:26:05 +00:00
Vlad Zahorodnii
41df430aa8 plugins/screentransform: Properly exclude itself from previous screen capture 2023-11-21 19:11:44 +00:00
Vlad Zahorodnii
57ff600c98 plugins/screentransform: Use Output::pixelSize()
It's more accurate than `size * scale`.
2023-11-21 19:11:44 +00:00
Vlad Zahorodnii
b8f2f87672 plugins/screentransform: Drop m_captured flag
It's redundant now. If there's an entry in m_states dictionary for the
given screen, then there's also a valid captured previous frame.
2023-11-21 19:11:44 +00:00
Vlad Zahorodnii
62f904b698 Drop EffectsHandler::renderScreen()
It's no longer relevant after merging libkwin and libkwineffects. By
dropping EffectsHandler::renderScreen() and making the screen transform
use the Scene API directly, we can clean up some OpenGL context handling
code.
2023-11-21 19:11:44 +00:00
Vlad Zahorodnii
6a997b41ae Fix screen becoming black when its geometry changes while overview is active
Offscreen quick views are repainted in the pre paint step because that
requires a QOpenGLContext and we don't want it to mess with kwin's
opengl context. After a view is updated, its QOpenGLContext is going to
be unbound.

During normal operation mode, it works as expected:

- the view gets updated in the pre paint stage
- kwin opengl context is made current when starting the paint stage
- the offscreen view is painted on the screen

However, effects->renderScreen() has no such separation. The OpenGL
context changes from the pre paint stage will leak to the paint stage.
So we have

- the workspace notifies that the screens have changed
- the screen transform effect sees that, makes opengl context current
  and renders the screen
- the offscreen quick view is updated and after OffscreenQuickView
  is done, it's going to call QOpenGLContext::doneCurrent()
- effects->renderScreen() calls m_scene->paint()
- since there's no current opengl context, vbo allocation in
  GLTexture::render() will fail and nothing will be rendered on the
  screen

As a way around it, this change adds a makeOpenGLContextCurrent() call
before the paint stage. It doesn't quite belong there, the opengl
context has to be made current in the paint stage, e.g. by the
ItemRenderer or something. But atm we have no good place where we
could stick it in.

BUG: 477027
2023-11-21 19:11:44 +00:00
Aleix Pol
4540925f3f Remove unnecessary variable 2023-11-21 18:52:40 +00:00
Aleix Pol
97e75c858a nv12: Remove unnecessary debug
Forgot to remove it before merging the patch
2023-11-21 18:52:40 +00:00
Xaver Hugl
008e5e5a10 workspace: reduce placeholder output size
Maximized windows get resized to this when the last output gets removed, which
can increase VRAM load unnecessarily. As the placement tracker resizes windows
back to their original size, we can reduce the size of the placeholder output
without causing additional issues
2023-11-21 18:36:29 +00:00
Vlad Zahorodnii
2ff0fc26a4 Merge EffectWindow::{windowMinimized,windowUnminimized}
The main motivation is to match the Window API.
2023-11-21 18:20:02 +00:00
Xaver Hugl
017b4019b6 outputconfigurationstore: don't generate configs that disable all outputs 2023-11-21 18:38:05 +01:00
Xaver Hugl
3c25474b41 outputconfigurationstore: ensure that the config doesn't turn off all outputs 2023-11-21 18:08:01 +01:00
Kai Uwe Broulik
75935c126c layershellv1window: Check isDeleted before activating it
Opening the user actions menu causes auto-hiding layer-shell windows
(such as Kickoff, KRunner) to hide, closing the menu and having KWin
transfer focus back to the window which is now half-destroyed.

XdgToplevelWindow::acceptsFocus() also checks for isDeleted().
2023-11-21 16:13:06 +00:00
Xaver Hugl
ae884dd19e backends/drm: add brightness metadata overrides and sdr gamut wideness setting
The brightness overrides are for displays with missing or broken brightness
data in their EDID, and allow the user to work around those displays. In
the future we could also offer an HDR calibration process that allows determining
the correct brightness values for the screen.

The gamut wideness setting allows the user to tweak what gamut KWin assumes
sRGB applications to have. This is useful for working around the gamut mapping
displays do, which make sRGB content look washed out, and also to allow
users to make colors of sRGB apps look more saturated if they wish to.
2023-11-21 15:51:53 +01:00
Aleix Pol
118bc93144 config.h: Use constexpr QLatin1String instead of char*
char* are the past, constexpr lets us calculate certain things at
build time.
2023-11-21 08:09:38 +00:00
Aleix Pol Gonzalez
597b041666 Fix build without HAVE_ACCESSIBILITY 2023-11-20 23:38:05 +01:00
Vlad Zahorodnii
4faad8bd49 effects.h -> effecthandler.h 2023-11-20 15:47:36 +00:00
Vlad Zahorodnii
25ab2b53dd Extract EffectWindow into its own header 2023-11-20 15:47:36 +00:00
Alessandro Astone
f555c3301e screencast: Make nvidia use the GLES path
glGetTexImage returns a black image

https://forums.developer.nvidia.com/t/glgetteximage-returns-a-black-image-when-using-a-gbm-backed-egldisplay/273253

Fixes: BUG:476602
2023-11-20 15:26:51 +00:00
Alessandro Astone
491a5b386b screencast: Fix GLES path
glReadPixels reads from the bound framebuffer, so create an offscreen
framebuffer and attach the texture to it

Co-authored-by: Jan Grulich <jgrulich@redhat.com>
2023-11-20 15:26:51 +00:00
David Redondo
4cdf27e74c Expose a method to allow closing windows on shutdown.
This allows Plasma to gracefully close windows on shutdown by sending
xdg_toplevel.close. If after 10 seconds windows are still open because
they prompt for unsaved changes or similar cases, a notification is
shown to either prompt or logout regardless.
CCBUG: 461176
2023-11-20 14:56:17 +00:00
Kai Uwe Broulik
40aa5aceb8 workspace: Add "xdg activation"-only mode
Never auto-activate Wayland windows when "Extreme" focus stealing
prevention is configured. This allows to more easily find places
where window activation isn't properly implemented, such as on
application startup.
2023-11-20 14:36:05 +00:00
Vlad Zahorodnii
433b753360 Drop EffectWindowList
Use `QList<EffectWindow *>` instead.
2023-11-20 13:45:36 +00:00
Xaver Hugl
b28d2c2d80 backends/drm: use closefb instead of removefb when available
The closefb ioctl removes the userspace reference from the framebuffer but does
not try to disable planes and outputs if the buffer is still used. This allows
for example for smoother transitions between SDDM and the Plasma session
2023-11-20 14:36:08 +01:00
Andreas Gattringer
5651bae432 backends/drm: Don't add GPU if we are already using it
BUG: 477242
2023-11-20 13:08:12 +00:00
Vlad Zahorodnii
96af98609e Don't pass ownership of InputEventFilter and InputEventSpy to InputRedirection
This is not compatible with plugins that install their own filters. The
approach in this patch is not elegant, but it should work. Another option
would be to convert these filters and spies to QObjects and use QObject
ownership model, but this would be also too excessive just to save a few
lines of code.
2023-11-20 14:45:29 +02:00
Vlad Zahorodnii
961bd00919 Move WindowVertex,WindowQuad,RenderGeometry out of effects.h
These are core scene abstractions and don't belong in effects.h.
2023-11-20 14:05:52 +02:00
Vlad Zahorodnii
86084d118c libkwineffects/ -> effect/ 2023-11-20 11:32:43 +00:00
Vlad Zahorodnii
75f9fda962 Clean up workspacescene.h includes 2023-11-20 11:32:43 +00:00
Vlad Zahorodnii
618dee19cf Move GLVertex2D to glvertexbuffer.h 2023-11-20 11:32:43 +00:00
Vlad Zahorodnii
9aef54b701 Remove effects.h include in effectframe.h 2023-11-20 11:32:43 +00:00
Vlad Zahorodnii
0a2ed7d1c8 Move scaledRect,roundVector,flooredPoint to globals.h 2023-11-20 11:32:43 +00:00
Xaver Hugl
bec9ffeacd outputconfigurationstore: match KScreen's max scale of 300% 2023-11-20 09:11:09 +00:00
Nicolas Fella
6a1b1d01b8 Fix and simplify UI creation in various effect KCMs
We don't need an intermediate widget class here, we can set up the UI directly, like it's done in several effect KCMs already

Not only does this simplify the code, it also fixes crashes due to broken ownership

BUG: 477020
2023-11-20 07:41:49 +00:00
Huang-Huang Bao
3d4036210d
scene: use fractionalGeometry() as input of RenderViewport renderRect
Fixes mismatches between renderTarget.size() and deivce geometry calculated using viewport.renderRect() * viewport.scale() .

BUG: 475325
2023-11-20 06:14:55 +08:00
Natalie Clarius
8e6b1a363f plugins/nightcolor: osd: show day icon if appropriate 2023-11-16 19:48:06 +00:00
Vlad Zahorodnii
96e979c736 Move window motion manager to the slideback effect
Slide back is the only remaining its user.
2023-11-16 17:06:38 +02:00
Vlad Zahorodnii
b0292fc0de Move Effect::animationTime() implementation to effect.h
Amends d13b53c366.

It was overlooked.
2023-11-16 16:15:32 +02:00
Vlad Zahorodnii
fe9821722e Drop Effect::initConfig()
Effect::initConfig() definition can't be moved to effect.h because
it's going to create a cyclic dependency. On the other hand, the real
benefit of initConfig() is doubtful. It's a shortcut for calling
Config::instance(effects->config()), which is small amount of code.
2023-11-16 16:14:09 +02:00
Vlad Zahorodnii
8566cb3735 Move effectloader.h to libkwineffects/ 2023-11-16 15:51:39 +02:00
Vlad Zahorodnii
36021b12a7 Drop redundant "kwin" prefix in some filenames 2023-11-16 13:37:50 +00:00
Xaver Hugl
e17af124d4 backends/drm: correct color management check for the CTM 2023-11-16 13:15:36 +00:00