| Summary: | Apply button remains active after changes applied in kscreen KCM | ||
|---|---|---|---|
| Product: | [Plasma] KScreen | Reporter: | Martin Riethmayer <ripper> |
| Component: | kcm | Assignee: | Sebastian Kügler <sebas> |
| Status: | RESOLVED FIXED | ||
| Severity: | minor | Keywords: | multiscreen |
| Priority: | NOR | ||
| Version First Reported In: | 5.7.0 | ||
| Target Milestone: | --- | ||
| Platform: | Neon | ||
| OS: | Linux | ||
| Latest Commit: | http://commits.kde.org/kscreen/87d3d91202da261eef23659e1a11b5bec77742e0 | Version Fixed/Implemented In: | 5.7.3 |
| Sentry Crash Report: | |||
|
Description
Martin Riethmayer
2016-07-12 12:51:18 UTC
Thanks for the report. I can reproduce it locally. It does indeed only happen when the screen position changes. I'm looking into it. Proposed fix: https://phabricator.kde.org/D2154 Git commit 4b69f8708e63beaf242d1114aba070a336260341 by Sebastian Kügler. Committed on 19/07/2016 at 13:57. Pushed by sebas into branch 'master'. kscreen kcm: block changed signal after save Summary: When changing position (and potentially other properties) of the screen setup, we receive delayed signals way after the sync operation finishes. This enables the apply button after the config has been applied, leading to the apply/discard confirmation dialog when closing (or navigating away from) the kscreen kcm. This patch disables propagation of the changed() signal at the highest level, meaning that config widgets internally still get updated, but the apply button only gets enabled after 1000 milliseconds. This magic value is what I've figured out by testing. It's long enough to re-request edid information on two outputs, but short enough to get in the way from further changes. I'm not super-happy with the timer, but I don't see any other way to fix this glitch in the user experience. We don't really have a way on X11 to know when all changes are flushed. Test Plan: Tested systemsettings and kcmshell, with this patch, it works reliably and doesn't get in the way. Reviewers: #plasma, graesslin Reviewed By: #plasma, graesslin Subscribers: graesslin, plasma-devel Tags: #plasma Differential Revision: https://phabricator.kde.org/D2154 M +18 -2 kcm/src/kcm_kscreen.cpp M +2 -0 kcm/src/kcm_kscreen.h http://commits.kde.org/kscreen/4b69f8708e63beaf242d1114aba070a336260341 Git commit 87d3d91202da261eef23659e1a11b5bec77742e0 by Sebastian Kügler. Committed on 19/07/2016 at 13:59. Pushed by sebas into branch 'Plasma/5.7'. kscreen kcm: block changed signal after save Summary: When changing position (and potentially other properties) of the screen setup, we receive delayed signals way after the sync operation finishes. This enables the apply button after the config has been applied, leading to the apply/discard confirmation dialog when closing (or navigating away from) the kscreen kcm. This patch disables propagation of the changed() signal at the highest level, meaning that config widgets internally still get updated, but the apply button only gets enabled after 1000 milliseconds. This magic value is what I've figured out by testing. It's long enough to re-request edid information on two outputs, but short enough to get in the way from further changes. I'm not super-happy with the timer, but I don't see any other way to fix this glitch in the user experience. We don't really have a way on X11 to know when all changes are flushed. FIXED-IN: 5.7.3 Test Plan: Tested systemsettings and kcmshell, with this patch, it works reliably and doesn't get in the way. Reviewers: #plasma, graesslin Reviewed By: #plasma, graesslin Subscribers: graesslin, plasma-devel Tags: #plasma Differential Revision: https://phabricator.kde.org/D2154 M +18 -2 kcm/src/kcm_kscreen.cpp M +2 -0 kcm/src/kcm_kscreen.h http://commits.kde.org/kscreen/87d3d91202da261eef23659e1a11b5bec77742e0 |