Summary: | "Files linked to the current activity" makes desktops of other activities show nothing before restarting plasmashell | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | Fushan Wen <qydwhotmail> |
Component: | Desktop icons & Folder View widget | Assignee: | Marco Martin <notmart> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | balint.juhasz, hein, leviatan1, mcpain, nate, p.r.worrall, plasma-bugs, robby.engelmann |
Priority: | NOR | ||
Version: | master | ||
Target Milestone: | 1.0 | ||
Platform: | openSUSE | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=453110 | ||
Latest Commit: | https://invent.kde.org/plasma/plasma-desktop/commit/7f09fb161188a4615af00dce23a8356935f42f00 | Version Fixed In: | 5.25 |
Sentry Crash Report: |
Description
Fushan Wen
2021-12-27 02:00:56 UTC
Reproduced on 5.23. I needed to add step 2½: Select activity A and use Dolphin to link a file to the current activity (the file appears on the desktop of activity A as expected). Operating System: KDE neon 5.23 KDE Plasma Version: 5.23.4 KDE Frameworks Version: 5.89.0 Qt Version: 5.15.3 Kernel Version: 5.11.0-43-generic (64-bit) Graphics Platform: X11 Processors: 2 × AMD A6-6400K APU with Radeon(tm) HD Graphics Memory: 7.7 GiB of RAM Graphics Processor: AMD CEDAR The problem is in `m_screenMapper->removeScreen(m_screen, oldUrl);`. It does not consider different activities. A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/775 *** Bug 447159 has been marked as a duplicate of this bug. *** Git commit 7f09fb161188a4615af00dce23a8356935f42f00 by Fushan Wen. Committed on 18/01/2022 at 10:12. Pushed by fusionfuture into branch 'master'. screenmapper: Remember activity ID in screen mapping This commit adds an extra string to screenmapper to remember the activity ID corresponding to the screen ID. Now screenmapper can correctly handle different activites, and desktops of different activities can correctly show their items. The problem When the user sets "Files linked to the current activity" on one activity (A) and switches to any other activity (B), though the desktop on activity B is set to "Show Desktop folder", there is nothing on the desktop until the user restarts plasmashell. The cause In screenmapper.cpp, `removeScreen()` only checkes for the screen ID, but two activities can share the same screen ID. Then if both the two activities are set to "Show desktop folder", then in `setUrl()` 1. After the user changes the desktop folder option on one of the two activities, `removeScreen()` will remove all item records related to the screen ID and **the old URL (desktop:/)**. 2. But `addScreen()` will only add back item records for the current activity because `addScreen()` will directly return if `m_availableScreens` already contains the screen ID (which is added from the current activity). 3. Thus items on the desktop of the other activity incorrectly disappears. The fix 1. When calling `addScreen()` or `removeScreen()` from FolderModel, also consider the activity corresponding to the FolderModel, which is the current activity when the FolderModel is initialized. 2. Provide a migrator for the old configuration entries because an extra record is added. M +1 -0 containments/desktop/plugins/folder/CMakeLists.txt M +9 -8 containments/desktop/plugins/folder/autotests/foldermodeltest.cpp M +1 -0 containments/desktop/plugins/folder/autotests/foldermodeltest.h M +3 -2 containments/desktop/plugins/folder/autotests/positionertest.cpp M +1 -0 containments/desktop/plugins/folder/autotests/positionertest.h M +48 -47 containments/desktop/plugins/folder/autotests/screenmappertest.cpp M +1 -0 containments/desktop/plugins/folder/autotests/screenmappertest.h M +16 -14 containments/desktop/plugins/folder/foldermodel.cpp M +5 -0 containments/desktop/plugins/folder/foldermodel.h M +118 -60 containments/desktop/plugins/folder/screenmapper.cpp M +32 -12 containments/desktop/plugins/folder/screenmapper.h https://invent.kde.org/plasma/plasma-desktop/commit/7f09fb161188a4615af00dce23a8356935f42f00 Reproducible in 5.24: please backport *** Bug 450056 has been marked as a duplicate of this bug. *** *** Bug 452816 has been marked as a duplicate of this bug. *** (In reply to Fushan Wen from comment #5) > Git commit 7f09fb161188a4615af00dce23a8356935f42f00 by Fushan Wen. > Committed on 18/01/2022 at 10:12. > Pushed by fusionfuture into branch 'master'. .... > > https://invent.kde.org/plasma/plasma-desktop/commit/ > 7f09fb161188a4615af00dce23a8356935f42f00 Is this MR integrated in the master branch? If yes, the issue is still occuring here using the master branch builds in openSUSE Tumbleweed (In reply to Robby Engelmann from comment #9) > (In reply to Fushan Wen from comment #5) > > Git commit 7f09fb161188a4615af00dce23a8356935f42f00 by Fushan Wen. > > Committed on 18/01/2022 at 10:12. > > Pushed by fusionfuture into branch 'master'. > .... > > > > https://invent.kde.org/plasma/plasma-desktop/commit/ > > 7f09fb161188a4615af00dce23a8356935f42f00 > > Is this MR integrated in the master branch? If yes, the issue is still > occuring here using the master branch builds in openSUSE Tumbleweed This is not caused by the commit. The commit actually fixed the bug. Please see 453110 |