23213 Commits (1680fa131865728339c2d96cbdc3da4729b197f1)
 

Author SHA1 Message Date
l10n daemon script 1680fa1318 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"
2 years ago
ivan tkachenko 501136b222
effects/windowview: Animate the placeholder just like the search field
FIXED-IN: 5.26
2 years ago
ivan tkachenko 8ac4901068
effects/windowview: Turn placeholder on when there are actually no visible windows
This may happen when all windows are minimized, and the effect was
started in "Window class on current desktop" mode (Ctrl+F7).

BUG: 459244
FIXED-IN: 5.26
2 years ago
Vlad Zahorodnii d32aebb747 Lower severity of "Got invalid timestamp" message
BUG: 459405
2 years ago
Vlad Zahorodnii d6234d0411 effects/windowview: Re-order placeholder text and window heap
This ensures that the proxy thumbnail item is stacked above the
placeholder text.
2 years ago
Vlad Zahorodnii 14513ebcda effects/mousemark: Specify effect chain position
BUG: 457639
2 years ago
Nicolas Fella fdb40395f0 [kcms/scripts] Make plugin id and translation domain match
KQuickAddons::ConfigModule sets the translation domain based on the plugin id

That is kcm_kwin_scripts. However the translation domain is kcm-kwin-scripts, which breaks loading translations

Also fix Messages.sh to extract from QML

BUG: 458438
2 years ago
Vlad Zahorodnii 4696bdaa05 scripting: Add js object <-> QRectF/QSizeF/QPointF conversion helpers
The js code contains code such as

    window.frameGeometry = {x: 42, y: 42, width: 100, height: 50};

However, QJSEngine doesn't know how to convert js object to QRect. For
that purpose, we need to register conversion functions.

So far, we kept registering converter functions only for integer based
geometry types, i.e. QRect, QSize and QPoint. In 5.26, Window was ported
to QRectF, QSizeF and QPointF, but the corresponding conversion helpers
were not added.

BUG: 459369
2 years ago
Aleix Pol Gonzalez b81123865d tabbox: Makes sure we are not calling a null pointer
The desktopClient is a weak pointer and therefore can be null. This
makes sure that we are not calling a null instance of it.

It seems likely it was introduced here 45486ce515

This is a blind non-reproduced fix for the issue here:
https://errors-eval.kde.org/organizations/kde/issues/158/
2 years ago
ivan tkachenko ab79fe47ce
effects/private: Add another guard for multi-screen Drag&Drop
Unlike D&D actions, this method does not return any feedback as to
whether an item drop was accepted by any other screen, and so whether it
is going through destruction process already, so the best we can do is
add another typeof/undefined check after calling that method.

Fixes the following error:

    file:///usr/lib/qml/org/kde/kwin/private/effects/WindowHeapDelegate.qml:415:
    TypeError: Cannot read property 'deleteDND' of undefined
2 years ago
Vlad Zahorodnii d8faf8ab08 Fix multi-screen drag-and-drop in WindowHeap
DND was failing with the following error

file:///data/projects/usr/lib/qml/org/kde/kwin/private/effects/WindowHeap.qml:96: TypeError: Cannot read property 'mapToGlobal' of undefined
2 years ago
Eric Edlund 6d9f740d6f Better handle windows on all desktops in slide effect
Change the render cycle for slide effect. Now, windows will be drawn on each desktop or not in the paintWindow() loop instead of the paintScreen() loop. This allows us to respect stacking order better by painting all of the same window together instead of per VD.

BUG: 457486
BUG: 458622
2 years ago
Nicolas Fella 3ee921a7a9 [kcms/scripts] Enable Apply button when clicking Defaults
BUG: 459320
2 years ago
ivan tkachenko d7c6a87f39
effects/overview: Bind to search field using textEdited signal
This special signal was designed to remove the need for such
bikesheddings and workarounds. Use it to react to user-driven changes.

BUG: 459202
FIXED-IN: 5.26
2 years ago
ivan tkachenko de6c0289a0
effects/overview: Implement the searchText backing property
It is used in QML code, just like in windowview (Present Windows)
effect, but developers forgot to copy the implementation in C++
backend.

BUG: 459202
FIXED-IN: 5.26
2 years ago
ivan tkachenko a3c6db3ee7
effects/windowview: Bind to search field using textEdited signal
This special signal was designed to remove the need for such
bikesheddings and workarounds. Use it to react to user-driven changes.

FIXED-IN: 5.26
2 years ago
ivan tkachenko 984388dba4
effects/windowview: Fix "Toggle Present Windows (Window class on current desktop)" shortcut
The effect was not turning off when pressing a shortcut again, unlike
other flavors of this effects.

BUG: 156155
FIXED-IN: 5.26
2 years ago
ivan tkachenko 3aa1411d94
effects/desktopgrid: Fix background highlight having extra size
Without window title being shown, background highlight should shrink as
well, otherwise it created a questionable gap at the bottom e.g. in a
Desktop Grid effect.

FIXED-IN: 5.26
2 years ago
ivan tkachenko 5cf4320040
effects/desktopgrid: Replace highly opmitized animators with animations which work
Unfortunately, *Animator QML types have some problems with rendering,
sometimes affecting general smoothness, other times (like here, for me)
just not animating entirely. On my NVIDIA graphics system the animation
or a desktop returning from drag just looks like a freeze for a second,
then it suddenly jumps back to {0,0}. So let's just replace with less
optimal NumberAnimation which works fine.

FIXED-IN: 5.26
2 years ago
ivan tkachenko 9889e0df11
effects/desktopgrid: Fix cursor shape being lost while dragging a desktop
DragHandler does not travel along with its target heap, so it only
affects the cursor shape when the mouse pointer is directly over it; but
when a desktop is dragged far outside, the cursor resets.

Besides, this is how we already implemented it in WindowHeapDelegate.

FIXED-IN: 5.26
2 years ago
Fabian Vogt 494feb2eea Fix build with older libgbm
The code for the !HAVE_GBM_BO_GET_FD_FOR_PLANE case needed an explicit
constructor call.
2 years ago
Xaver Hugl fa538edc74 waylandserver: don't emit windowRemoved if it's not been added yet
This can happen when a client destroys the window before it ever got ready
for painting
2 years ago
ivan tkachenko 574b51f095
Amend "effects/Overview: Use SearchField from PlasmaExtras"
This commit amends 4eefd27f61.

Changes were pushed to the wrong branch, so the MR got merged not in its
final state.
2 years ago
ivan tkachenko 3af565b616
Amend "effects/private: Merge two state machines into one with substates"
This commit amends 9897afa55f.

Changes were pushed to the wrong branch, so the MR got merged not in its
final state.
2 years ago
ivan tkachenko 96a8980861
effects/Overview: Add "pressed" effect to desktop bar 2 years ago
ivan tkachenko 4eefd27f61
effects/Overview: Use SearchField from PlasmaExtras 2 years ago
ivan tkachenko 4a6879e6ee
effects/Overview: Move delegate handlers to the bottom close to each other 2 years ago
ivan tkachenko 329731be2d
effects/private: Encapsulate DND management, and clean up the store
Use methods with semantic naming instead of raw data manipulation, and
make sure to perform clean up of DND data, so it won't haunt us back
later e.g. when a window delegate is recreated not because of a drag
of itself but due to a desktops rearrangement.
2 years ago
ivan tkachenko 1f0a0c893a
effects/private: Nuke an unnecessary loop
Yes, Marco, there is a more efficient way.
2 years ago
ivan tkachenko d3a5a72a46
effects/private: Fix crash when shutting down desktop grid and overview
Because of const/non-const issues, iterator got invalidated in the loop,
which led to a crash.

Cases that trigger it: interaction with a thumbnail while the effect is
returning to initial state and shuts down. For example, slightly
dragging and releasing a thumbnail such that both TapHandler & DragHandler
would react and play each their own transition (yes, it's another bug);
or by pressing Escape key while dragging.
2 years ago
ivan tkachenko 9897afa55f
effects/private: Merge two state machines into one with substates
Having one state machine instead of two somehow simplifies the code and
makes it less fragile.

The new property `substate`, which replaces `thumbSource.state` still
supports imperative assignments that are so important for Drag&Drop,
and still triggers state updates. However, now a substate may not
become an active state: that behavior didn't make sense in previous
iterations, and has led to a glitch where a window won't resize during
return-to-initial animation. The glitch happened because two state
transitions were starting almost-simultaneously (and by Murphy's law in
the worst possible order, of course), and both animations were playing,
but one animation was supposed to to a property that is managed by the
other. But since QtQuick animations cache their from/to values before
they start, the dependent transition essentially didn't animate at all.
2 years ago
Vlad Zahorodnii 74af27dc55 Add missing QPointer
The Compositor is destroyed after the Workspace, so the placeholder has
shorter lifespan. We need to guard the destructor of EffectScreenImpl
from accessing a dangling pointer. For what it's worth, the destructor
of EffectScreenImpl was written with QPointer in mind, but it was never
added.
2 years ago
Marco Martin e853f5fe07 Don't check for workspace->initializing()
the existence of Window is bound to the one of workspace so it
will always be there.
We also need to check the window sizes before workspace is done
initializing,
otherwise when KWin restarts and there are maximized windows, they won't
be resized to take panels into account and will always span the full
screen.
2 years ago
Xaver Hugl 1a902b1dec backends/drm: supress warning for disconnected connector
It just pollutes the log with useless information
2 years ago
Albert Astals Cid 11aadee41c Fix libqaccessibilityclient dependency
libqaccessibilityclient sadly doesn't have the concept of a stable
branch
2 years ago
Aleix Pol Gonzalez fdf2011b34 Wayland backend: Don't crash when terminating
Remember to release all resources before the wayland socket goes:
- release the seat as we give up a seat
- release the ssdManager
- release the output decoration with the output itself
Otherwise they leak and stay dangling.
2 years ago
Aleix Pol d7cba6b625 Fix handling of different signals (SIGTERM et al) by using KSignalHandler
When debugging something I realised that SIGTERM was always making KWin
crash like I'd never seen it crash. It turns out we are calling
QApplication::exit() on the signal handler which is highly forbidden as
the handler preempts the process altogether.
Use KSignalHandler instead which takes this issue into account.
2 years ago
Jonathan Esk-Riddell 48f684ca73 Update version number for 5.26.80
GIT_SILENT
2 years ago
Marco Martin 7addb06b0f Snap to shaded windows
Allow snapping to a shaded window

BUG:375740
2 years ago
Jonathan Esk-Riddell 8516faa6ad Update version number for 5.25.90
GIT_SILENT
2 years ago
Jonathan Esk-Riddell d053efde4c Update kf5 version requirement to 5.98.0
GIT_SILENT
2 years ago
Vlad Zahorodnii 106d061255 autotests: Remove WaylandTestApplication::continueStartupWithScreens step
Makes startup sequence similar to the one in kwin_wayland.
2 years ago
Vlad Zahorodnii be784ba5d2 effects/windowview: Fix "active class" mode
Each screen has its own WindowHeap. So setting WindowHeap.activeClass
won't be visible on other screens.

In order to address that limitation, we could monitor
Workspace.activeClient property.

BUG: 455974
2 years ago
Xaver Hugl bc964ffd37 effects: increase animation speed for overview, windowview and desktop grid
It's now set to 300ms, which is what the old effects used. This should provide
a smooth looking animation without making it unnecessarily slow
2 years ago
David Edmundson 8ba77139e3 Fix truncation in quad clipping
Transforms may not be on the logical grid in the case of CSD clients
with scaling.
2 years ago
Xaver Hugl eccfbbd6fd backends/drm: turn all outputs on when new output is hotplugged
Otherwise only the new output is turned on, which is a bit weird
2 years ago
Vlad Zahorodnii 6d3f00e82c autotests: Remove QVERIFY(signalSpy.isValid())
We use the PMF syntax so the isValid() check is unnecessary as the
compiler will notify about wrong signal at compile time. It makes
writing autotests feel less boilerplaty.
2 years ago
Vlad Zahorodnii 98b8a5d4ba autotests: Use PMF syntax in QSignalSpy 2 years ago
Arjen Hiemstra 817d13d8c0 Ensure move() calls in placement move in integer values
Otherwise we run the risk of placing windows at floating coodinates,
which leads to interpolated rendering which doesn't look nice.

BUG: 457143
2 years ago
Vlad Zahorodnii b001741634 autotests: Add tests that check geometry restore after sending a window to another output 2 years ago