Summary: | Wrong ICC profile handling when moving app from one display to another | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | info |
Component: | Color models | Assignee: | amyspark <amy> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | amy |
Priority: | NOR | ||
Version: | 5.1.5 | ||
Target Milestone: | --- | ||
Platform: | Microsoft Windows | ||
OS: | Microsoft Windows | ||
Latest Commit: | https://invent.kde.org/graphics/krita/commit/d01231403e5af8cc34c380ed50da50169db67001 | Version Fixed In: | |
Attachments: | Screenshots showing the issue and ICC settings for reproduction of the issue. |
Description
info
2023-02-19 10:33:05 UTC
Tested this with 5.1.5 and current master (commit 1cc4b8865c) under Windows 10 21H2. I've verified that the Display 1 gets (in) correctly darkened with sRGB, that switching to Display 2 "fixes" the rendering, and that switching back "breaks" the rendering again. HOWEVER, this only applies if I move the screen with Windows-Shift-Arrow. If I do so manually, the screen change doesn't kick in. So I found that when the screen is midway across screens, QDesktopWidget::screenNumber is unable to resolve which screen the widget belongs to, and thus change the profile appropriately. This is a known documented bug, so marking as duplicate. *** This bug has been marked as a duplicate of bug 407498 *** Actually, on second thought, this is a bit more insidious... merge request incoming. It affects more than just the canvas. Thanks for the investigation. I can confirm that the workaround with shortcut combo Windows-key + shift + left / right arrow key triggers the profile switching as expected. Git commit d01231403e5af8cc34c380ed50da50169db67001 by L. E. Segovia. Committed on 24/02/2023 at 13:32. Pushed by lsegovia into branch 'master'. ui: Fix inconsistent misdetection of screen number The reason why sometimes the widget change of screen wasn't detected was because the check must be run on the main window, not on the canvas widget. The previous commit, as well as the use of screenNumber, lets me trace all affected users of this check. While at it, ensure that all known users of QApplication::activeWindow in context with KisConfig::displayProfile won't crash if something goes wrong. M +2 -6 libs/ui/canvas/kis_canvas2.cpp M +2 -2 libs/ui/kis_clipboard.cc M +1 -1 libs/ui/kis_mimedata.cpp M +2 -2 libs/ui/toolbox/KoToolBox.cpp M +1 -1 libs/ui/widgets/KisScreenColorSampler.cpp M +1 -1 libs/ui/widgets/kis_scratch_pad.cpp M +1 -1 plugins/tools/svgtexttool/SvgTextEditor.cpp https://invent.kde.org/graphics/krita/commit/d01231403e5af8cc34c380ed50da50169db67001 Git commit 282a491991e8df0e8545a4edf24eb5444a3dded0 by L. E. Segovia. Committed on 24/02/2023 at 13:32. Pushed by lsegovia into branch 'master'. KisMainWindow: enable tracing the screenChanged signal through IntelliSense M +3 -3 libs/ui/KisMainWindow.cpp M +1 -1 libs/ui/canvas/kis_canvas2.cpp https://invent.kde.org/graphics/krita/commit/282a491991e8df0e8545a4edf24eb5444a3dded0 Git commit 8355ae4ec082744be0614e238887540e8124d0aa by L. E. Segovia. Committed on 01/03/2023 at 01:52. Pushed by lsegovia into branch 'master'. KisMainWindow: emit screenChanged to act on display preferences change M +3 -0 libs/ui/KisMainWindow.cpp https://invent.kde.org/graphics/krita/commit/8355ae4ec082744be0614e238887540e8124d0aa |