https://bugs.kde.org/show_bug.cgi?id=483148

cwo <cwo....@posteo.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED
      Latest Commit|                            |https://invent.kde.org/plas
                   |                            |ma/plasma-workspace/-/commi
                   |                            |t/99f9dc95226719c2be53fd86a
                   |                            |4a0a3bae88d0aa2
   Version Fixed In|                            |6.4.0

--- Comment #11 from cwo <cwo....@posteo.net> ---
Git commit 99f9dc95226719c2be53fd86a4a0a3bae88d0aa2 by Christoph Wolk.
Committed on 05/06/2025 at 14:39.
Pushed by cwo into branch 'master'.

libtaskmanager: fix "move to activity" when on almost all activities

Using the task manager to move windows to other activities works in
most circumstances, but fails under one condition: when a window is
already on all activities except the one that is being moved to, the
window instead ends up on all activities, and has to be moved to that
activity again to be only on that workspace. This is usually a rare edge
case, but very commonly happens when using exactly two activities,
namely always when moving a window from one activity to the other.

This is the result of some unusual api implementation details of
activities: a window being on all activities is represented by having
the activity list for that window empty. Moving a window to a different
activity in  libtaskmanager is done by first adding the window to the
activity list using the plasma wayland protocol. If the list on the kwin
side is now  full, it'll flip it over into the empty list (i.e. all
activities). Next libtaskmanager tries to remove the other activities
from the list, this fails because the list is already empty (and kwin
doesn't handle this because "this use case is not important enough to
handle here").

Luckily enough, this use case is trivially easy to handle here, all we
need to do is remove existing activities first, then add the new one.
This will also briefly put it on all activities, but adding new
activities works (and puts it only on that activity), it's only
removing them that fails.
FIXED-IN: 6.4.0

M  +5    -5    libtaskmanager/waylandtasksmodel.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/99f9dc95226719c2be53fd86a4a0a3bae88d0aa2

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to