20200 Commits (60c3b3ddfae9f39ac9a3209145ba2ac75bec94e3)
 

Author SHA1 Message Date
David Redondo 60c3b3ddfa Add support for hold gestures 3 years ago
Aleix Pol 1330376220 screencast: Support the creation of virtual displays to cast
In case the user has just the one display but they don't want to show it
in their main workspace when sharing video, allow creating a virtual
display.
This also will allow using remote devices as support displays.
3 years ago
Andrey Butirsky 4395caa256 [wayland] fix ignored keyboard RepeatRate
X11 can take float RepeatRate, Wayland - int only so the setting is to be
rounded.
Should be indistinguishable on usual rates.

BUG: 443721
3 years ago
Vlad Zahorodnii fda7e150df kwineffects: Fix destruction of s_fbo with shared GLTexture objects
The WindowThumbnail item uses the GLTexture class. In order to destroy
the thumbnail texture, the item will schedule a destroy job.

This means that the GLTexture can be alive during or after graphics
reset.

On the other hand, as an implementation detail, GLTexture::clear() may
allocate a framebuffer object, which is going to be destroyed together
with the last texture.

Given that window thumbnail textures can be still alive after a graphics
reset and the fact that GLTexturePrivate::s_fbo gets destroyed when the
last texture is destroyed, kwin can end up trying to clear a decoration
texture with now defunct s_fbo.

Since the old old s_fbo is inert, the glBindFramebuffer() function will
fail and the glClear() operation will affect the default framebuffer,
thus leading to black flickering visual artifacts.

In order to fix that issue, this change makes GLTexture destroy s_fbo
unconditionally in GLTexturePrivate::cleanup() which is called whenever
OpenGL stuff is about to tear down, e.g. due to graphics reset, etc.

BUG: 443951
3 years ago
Vlad Zahorodnii bd3d275293 wayland: Port away from deprecated legacy virtual desktop api in plasma window management 3 years ago
Nate Graham 4605fdcaa5 effects/overview: Give the "Delete desktop" button a tooltip
Icons-only buttons always need tooltips, even when they use a completely
recognizable icon.
3 years ago
Nate Graham 6d7d8ea699 effects/overview: only show "Delete desktop" button with >1 desktop
It doesn't make sense to let the user try to delete their only desktop.
3 years ago
Xaver Hugl ca58ee875f WaylandOutput: schedule update on mode change
Without this there can be a mismatch between what clients expect and what
KWin actually uses, causing for example stutter in video players.

BUG: 444303
FIXED-IN: 5.23.2
3 years ago
l10n daemon script 839293f987 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"
3 years ago
Vlad Zahorodnii 99b38096ca platforms/drm: Fix a typo in DrmCrtc::setLegacyCursor()
bufferDirty should be reset so the legacy cursor is set after switching
between VTs or turning outputs back on.
3 years ago
l10n daemon script 0c6bf857be 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"
3 years ago
Xaver Hugl 49afd18018 platforms/drm: fix direct scanout check 3 years ago
David Edmundson 566bfbff5b Fix focus loss on decoration destruction
InputDeviceHandler keeps track of which client has focus, and whether
the decoration or main window has focus.

Should the decoration get destroyed whilst the decoration has focus we
don't update correctly. This can happen when
"BorderlessMaximizedWindows" is set, or if you use key presses whilst
above the decoration.

cleanupDecoration (which is an odd name) is called whenever a decoration
gains or loses focus. Here we can connect for the decoration destruction
and force a focus change.

BUG: 411884
3 years ago
Andrey Butirsky e4e920d895 [testBorderlessMaximizedWindow] add touch to the test
BUG: 411884
3 years ago
Andrey Butirsky 83ece2e2a8 unit test for focusing loss problem on maximize
BUG: 411884
3 years ago
Vlad Zahorodnii 252ba9e005 autotests: Use less Screens::size(int)
The same info can be retrieved from AbstractOutput::geometry().size().
3 years ago
Vlad Zahorodnii 15520888d9 kwineffects: Drop numScreens property
The screen count can be retrieved by checking the number of items in the
EffectHandler.screens property.

The replacement for the numberScreensChanged signal are the screenAdded
and the screenRemoved signals.

The main motivation behind this change is to clean up the screens api
and reduce the number of usages of the Screens class.
3 years ago
Xaver Hugl 0c7d97853e input: fix crash on touch quicktile
If the filter filters out touchDown it also has to always filter out the
matching touchUp
3 years ago
Vlad Zahorodnii 1a10718f6c Remove unused stuff in Screens 3 years ago
l10n daemon script a04a134a7a 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"
3 years ago
Vlad Zahorodnii c7c63ba269 effects/overview: Allow blurring desktop background
This puts more emphasis on windows and less on desktop background.
3 years ago
Vlad Zahorodnii baf05ec4a5 Rename PlatformSurfaceTexture to SurfaceTexture
This is, primarily, to make naming consistent with SurfaceItem,
SurfacePixmap and just "Surface" in the future.
3 years ago
Vlad Zahorodnii ce2fc670c4 effects/overview: Add desktop bar
This provides a way to create, destroy, and rename virtual desktops in
the overview effect as well as switch between desktops.

The mechanics of switching between virtual desktops can be revisited
later though.
3 years ago
Vlad Zahorodnii d73610d6d6 scripting: Introduce VirtualDesktopModel
This can be useful for QML scripts that deal with virtual desktops.

The virtual desktop model keeps a copy of virtual desktop objects to
avoid hitting asserts in QAbstractItemModel (it has some asserts to
ensure that indices passed to beginInsertRows() or beginRemoveRows()
make sense).
3 years ago
l10n daemon script 2e56b718ea 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"
3 years ago
Méven Car 6d518e8ffe DRM Backend: Add some log trace for DrmConnector
CCBUG: 442980
3 years ago
Vlad Zahorodnii 6851996eb2 effects: Make effects responsible for handling skipsCloseAnimation flag
This allows to make painting code more generic.
3 years ago
Vlad Zahorodnii 701902fbec effects: Port effects from int screens ids to EffectScreen
EffectScreen objects are better as they are more stable and we avoid int
screen ids in kwin core.
3 years ago
Aleix Pol c1a4414c42 drm: Do not call the egl backend pointer when it's null
It can be null, that's why we are also checking it down in the same
function.
3 years ago
Xaver Hugl baebaa9eb4 platforms/drm: fix init with explicit modifiers
When we're adding the output to the EglGbmBackend pipelines aren't necessarily
setup yet and are thus missing the modifier list. As creating the gbm surface
immediately is useless anyways, delay that until we need it, where the modifier
list is available.
3 years ago
Xaver Hugl ebaf2e61fc platforms/drm: allow overriding eglstream choice
Add a new environment variable KWIN_DRM_FORCE_EGL_STREAMS that, when set
to an integer value other than 0, makes KWin prefer EglStreams over gbm.
3 years ago
Xaver Hugl d257850bd1 platforms/drm: set draw buffer for gbm 3 years ago
Xaver Hugl dc56b03df4 platforms/drm: use gbm with NVidia driver 495+ 3 years ago
Xaver Hugl 866830d5ed platforms/drm: refactor output enablement 3 years ago
Alexander Lohnau 9dc6fd35db
GIT_SILENT Revert accidental change 3 years ago
l10n daemon script 2a3ec321a1 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"
3 years ago
Alexander Lohnau dffbfcc9f7
Fully port away from KPluginLoader 3 years ago
Alexander Lohnau e431b453b6
Port away from KPluginLoader::findPlugins 3 years ago
Nate Graham 6c2834cc8a decorations: small refactor for decorationpalette.cpp
Handle header color schemes first since the code is smaller for that
block, which makes things more readable.
3 years ago
Nate Graham 00ade26624 decorations: when color scheme has no Header colors, don't ask for them
First we check to see if the color scheme has header colors, and if it
doesn't, we turn around and ask for them anyway, relying on implicit
behavior in kcolorscheme that falls back to Window colors when Header
colors are requested but are not present. Instead, let's just ask for
Window colors to avoid the run-around and stop relying on implicit
behavior.
3 years ago
Vlad Zahorodnii 483ef644df Fix build 3 years ago
Vlad Zahorodnii 7d3bce21a1 plugins/idletime: Fix processing of user activity
Currently, idle timers are not restarted on user input which triggers
the lockscreen even though the user is active at computer.

This change fixes that by making sure that idle timers are restarted
whenever SeatInterface's timestamp changes, i.e. user moves the pointer
or presses a key, etc.
3 years ago
Vlad Zahorodnii 7d692fd2a4 plugins/idletime: Remove m_started boolean flag 3 years ago
Vlad Zahorodnii a3de9bc93b kcmkwin: Load builtin effects from metadata files
Linking builtin effects against KCMs is really awkward. This change
decouples builtin effects from KCMs that use EffectsModel.

In order to discover builtin effects, metadata files are installed in
kwin's data dir, which will be subsequently read by EffectsModel.
3 years ago
Vlad Zahorodnii 141947d2e8 effects: Link builtin effects with executables
The main motivation behind this change is to prepare kwin for importing
kwayland-server code in libkwin.

As is, builtin effects are linked with libkwin. Some builtin effects
have wayland specific code. If we move wayland stuff in libkwin, there's
going to be a circular dependency between kwin4_effect_builtins and
libkwin targets.

This change intends to break that dependency by linking builtin effects
to kwin executable.

The main issue with that is that EffectLoader would need to discover the
effects indirectly. QStaticPlugin is used for that purpose.

Besides breaking the cyclic dependency, it makes builtin effects use the
same plugin infrastructure in libkwineffects that external effects use.

Metadata in src/effects/effect_builtins.cpp was converted in a list of
python dictionaries, which was fed to a python script that generated
main.cpp and metadata.json files.
3 years ago
Vlad Zahorodnii 2019dcd0fe Add support for static effect plugins
With static effect plugins, builtin effects can be linked to
executables. It also makes libkwin one step closer to being more
reusable.
3 years ago
Xaver Hugl 1763139834 platforms/drm: fix disabled outputs with legacy drivers
m_primaryBuffer could be nullptr when a pipeline was inactive before, causing
a crash
3 years ago
Ömer Fadıl USTA 3ec6dab5d0 Add other missing includes to fix bsd build 3 years ago
Ömer Fadıl USTA a2a012be26 Add missing include to fix bsd compile problems 3 years ago
l10n daemon script d154da1e0b 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"
3 years ago