After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 743816 - "Apply" button on mirror setup greyed out for no obvious reason(?)
"Apply" button on mirror setup greyed out for no obvious reason(?)
Status: RESOLVED FIXED
Product: gnome-control-center
Classification: Core
Component: Display
3.14.x
Other Linux
: Normal normal
: ---
Assigned To: Debarshi Ray
Control-Center Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-02-01 20:15 UTC by el
Modified: 2015-02-23 18:41 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
display: In clone mode, set geometry of all outputs when one changes (2.20 KB, patch)
2015-02-19 17:41 UTC, Rui Matos
committed Details | Review

Description el 2015-02-01 20:15:07 UTC
Example setup:
Monitor 1: Primary Monitor: at native resolution 1366x768 (but 1024x768 is supported with upscaling)
Monitor 2: Secondary Monitor: turned off, native resolution 1024x768

Steps to reproduce:
1. Open settings
2. Click "Displays" on the "All Settings" overview page
3. Choose "Monitor 2" (important)
4. Click "Mirror". It will default to 1024x768 resolution.

Expected result:
"Apply" button is clickable, and clicking it will 1.) change the primary monitor to 1024x768, 2.) turn on monitor 2 at 1024x768 3.) enable mirror mode

Actual result:
"Apply" button is greyed out.
Comment 1 el 2015-02-01 20:17:30 UTC
The culprit might be that I am trying to initiate mirror mode through Monitor 2, while that would cause a resolution change at Monitor 1.

(it works fine the other way round, by going to "Monitor 1" and picking 1024x768 as Mirror resolution and clicking "Apply")

However, as a user I couldn't care less. Just let me click "Apply" and make stuff work by initiating mirror mode at the selected resolution, unless another involved display doesn't support the resolution at all (which was not the case).
Comment 2 Rui Matos 2015-02-19 17:41:22 UTC
Created attachment 297289 [details] [review]
display: In clone mode, set geometry of all outputs when one changes

Otherwise we could fail to validate the new configuration depending on
which output we're initializing mirror mode from.

gnome_rr_config_applicable() creates a temporary array of outputs for
validation and, in clone mode, all of them are assigned the same
geometry but since it lacks context about which output the user is
currently on it just uses the first one's geometry for all of them. If
this first output isn't the one the user is changing in the UI then we
never called _set_geometry() on it with a clone mode geometry and thus
the validation would fail because the geometry used is that output's
current mode which might not match the clone mode's.
--

Ok, this one was tricky but this patch should fix it.
Comment 3 Bastien Nocera 2015-02-23 10:16:47 UTC
Review of attachment 297289 [details] [review]:

make_clone_setup() in gsd-xrandr-manager.c does something similar.

> geometry but since it lacks context about which output the user is
> currently on it just uses the first one's geometry for all of them. If

Missing some commas:
geometry but, since it lacks context about which output the user is
currently on, it just uses the first one's geometry for all of them. If
Comment 4 Rui Matos 2015-02-23 18:41:21 UTC
Pushing with the commas, thanks

Attachment 297289 [details] pushed as 511265e - display: In clone mode, set geometry of all outputs when one changes