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

Sam <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #9 from Sam <[email protected]> ---
I can reproduce this consistently on 6.8.1, and I think I've found the cause.

STEPS TO REPRODUCE
1. Use two screens, each with its own panel containing an Icons-only Task
Manager with "Show only tasks from the current screen" enabled.
2. Pin an app to the panel on screen A (optionally pin it on screen B's panel
too).
3. Launch it from screen A's panel, so its window opens on screen A.
4. Move the window to screen B (drag it or use Meta+Shift+Arrow). Don't open or
close any other window in the meantime.

OBSERVED RESULT
The pinned icon disappears from screen A's panel. If the app is also pinned on
screen B's panel, it shows up there twice (launcher + window). Both fix
themselves as soon as any window is opened or closed.

EXPECTED RESULT
The launcher stays on screen A's panel, and on screen B the window takes the
launcher's place.

CAUSE
In 6.8, launcher hiding moved into TaskFilterProxyModel::acceptsRow(). That
check correctly takes the screen filter into account, but launcher rows are
only re-filtered when source rows are inserted/removed or when dataChanged
carries AppId or LauncherUrlWithoutIcon
(TaskFilterProxyModel::setSourceModel()). Moving a window only changes
ScreenGeometry, so the window row is re-filtered but the launcher rows keep
their old result: hidden on the screen the window left, still visible on the
screen it arrived on.

The virtual desktop and activity filters to have the same issue, but I haven't
tested it. Current master adds a ScreenGeometry check in that lambda, but only
when filterByCurrentVirtualDesktop is set (see 0cd7539079), so the
filterByScreen case still seems to be affected. Also invalidating the filter in
that lambda when ScreenGeometry (and VirtualDesktops, IsOnAllVirtualDesktops,
Activities) change fixes it for me locally. I'll see if I can open an MR.

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

Reply via email to