https://bugs.kde.org/show_bug.cgi?id=367490
Sebastian Kügler <se...@kde.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|CONFIRMED |RESOLVED Resolution|--- |FIXED Latest Commit| |http://commits.kde.org/libk | |screen/90d8ee283f88cb07ff93 | |6ecb497b277593b99b98 --- Comment #15 from Sebastian Kügler <se...@kde.org> --- Git commit 90d8ee283f88cb07ff936ecb497b277593b99b98 by Sebastian Kügler. Committed on 19/08/2016 at 10:43. Pushed by sebas into branch 'master'. normalize output positions in setoperation Summary: When setting a config, outputs may fall outside of the virtual screen layout. This can happen when, for example, a single screen is enabled and its position is not zero. The screen size is a unified rect of the enabled and connected outputs, which doesn't necessarily sit at 0,0 initially. By normalizing the output position, we avoid this pitfall. Especially the xrandr backend struggles with this, since it will disable outputs falling outside of the virtual screen, and it does so after policy checks have happened, so in the worst (and actually fairly common) case, it will disable the only remaining output, leading to ... The reason to do the normalization in SetConfigOperation right before the config is passed to the backends to apply is to catch this inconsistency problem with configs at a common entry-point. Doing it in the library, rather than in the xrandr backend also means that we can autotest it -- we can't sensible do that with the xrandr backend. Test Plan: * manually tested by enabling the left / top most output of two actual outputs, this failed before and left all outputs disabled, with this patch, it works as expected * added autotest to make sure the normalization works Reviewers: #plasma, graesslin Reviewed By: #plasma, graesslin Subscribers: graesslin, plasma-devel Tags: #plasma Differential Revision: https://phabricator.kde.org/D2496 M +43 -0 autotests/testscreenconfig.cpp M +33 -0 src/setconfigoperation.cpp http://commits.kde.org/libkscreen/90d8ee283f88cb07ff936ecb497b277593b99b98 -- You are receiving this mail because: You are watching all bug changes.