Display settings change defaults to keep, not revert

Bug #554948 reported by Scott Kitterman on 2010-04-04
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
KDE Base
Fix Released
Medium
Release Notes for Ubuntu
High
Unassigned
kdebase-workspace (Ubuntu)
High
Unassigned
Lucid
High
Unassigned

Bug Description

Binary package hint: kdebase-workspace

In SystemSettings -> Display, if you change resolution it asks you if you want to keep or revert the change. This is currently more than a little pointless since it defaults to keep the change unless you reject it. In cases where the change screws up your screen, you are then stuck with it, instead of having it revert if you are unable to confirm to keep it.

Changed in kdebase-workspace (Ubuntu):
importance: Undecided → High
milestone: none → ubuntu-10.04
Changed in kdebase-workspace (Ubuntu Lucid):
assignee: nobody → Scott Kitterman (kitterman)
status: New → In Progress
Harald Sitter (apachelogger) wrote :

You could let it time out? :P

Anyhow, this is worth checking with upstream, because AFAIK this *used to be* defaulting to revert.

Agreed about checking with upstream. If you let it time out, it keeps the new setting.

Scott Kitterman (kitterman) wrote :

Actually, trying it again, it's a clear bug. The text says if you do nothing the configuration change will be reverted, but it's not.

Scott Kitterman (kitterman) wrote :

At ~kdebase-workspace-4.4.2/kcontrol/randr/cpp +122 it says:

        KTimerDialog acceptDialog(15000, KTimerDialog::CountDown,
                                  0, "mainKTimerDialog", true,
                                  i18n("Confirm Display Setting Change"),
                                  KTimerDialog::Ok|KTimerDialog::Cancel,
                                  KTimerDialog::Cancel);

At ~kdebase-workspace-4.4.2/kcontrol/randr/ktimerdialog.h +67 it says:

    /**
     * Constructor for the standard mode where you must specify the main
     * widget with @ref setMainWidget() . See @see KDialog for further details.
     *
     * For the rest of the arguments, See @see KDialog .
     */
    explicit KTimerDialog( int msec, TimerStyle style=CountDown, QWidget *parent=0,
                           const char *name=0, bool modal=true,
                           const QString &caption=QString(),
                           int buttonMask=Ok|Apply|Cancel, ButtonCode defaultButton=Ok,
                           bool separator=false,
                           const KGuiItem &user1=KGuiItem(),
                           const KGuiItem &user2=KGuiItem(),
                           const KGuiItem &user3=KGuiItem() );

So that looks correct (it also confirms that cancel is the desired default). My guess is KTimerDialog is designed to default to cancel and pass this through to KDialog (which defaults to accept), but that something is getting lost in the transition. This needs someone who does KDE/C++ programming to fix.

Changed in kdebase-workspace (Ubuntu Lucid):
status: In Progress → Triaged
assignee: Scott Kitterman (kitterman) → nobody
Harald Sitter (apachelogger) wrote :

On a related note: krandrtray works, but the KCM does not, former uses a different approach to applying the changes altogether though.

Changed in kdebase:
status: Unknown → New
Changed in kdebase:
status: New → Unknown
Changed in kdebase:
status: Unknown → New
Scott Kitterman (kitterman) wrote :

krandrtray did not revert for me.

Scott Kitterman (kitterman) wrote :

Added ubuntu-release-notes since this is very unlikely to be resolved before release.

tags: added: iso-testing
Scott Kitterman (kitterman) wrote :

Proposed release note:

Kubuntu GUI display configuration tools (both in systemsettings and the separate krandrtray application) will not automatically revert to their previous display configuration. If the display configuration is set to a non-working configuration, other tools will have to be used to reset the display to a working configuration either by connecting to the system via SSH or rebooting into recovery mode. For example, using xrandr, you can determine the current configuration using:

DISPLAY=:0 xrandr --current

and then change the configuration to a safe mode using:

sudo DISPLAY=:0 xrandr --output [DISPLAY NAME] --mode [NEW RESOLUTION]
sudo DISPLAY=:0 xrandr --output VGA1 --mode 2048x1536

See man xrandr and xrandr -h for more information.

Changed in ubuntu-release-notes:
importance: Undecided → High
status: New → Triaged
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package kdebase-workspace - 4:4.4.2-0ubuntu9

---------------
kdebase-workspace (4:4.4.2-0ubuntu9) lucid; urgency=low

  * added kubuntu_117_randr_fix_revert.diff to address
    http://bugs.kde.org/222110 and http://bugs.kde.org/180047 (LP: #554948)
 -- Brandon Holtsclaw <email address hidden> Sun, 11 Apr 2010 03:22:28 -0500

Changed in kdebase-workspace (Ubuntu Lucid):
status: Triaged → Fix Released
Scott Kitterman (kitterman) wrote :

Marking release notes task invalid since this is fixed.

Changed in ubuntu-release-notes:
status: Triaged → Invalid
José Tomás Atria (jtatria) wrote :

hello, i'm still seeing the incorrect behaviour in system-settings, using kdebase-workspace (4:4.4.2-0ubuntu14
), so whatever fix was included in ubuntu9 doesn't seem to have solved the issue...

Scott Kitterman (kitterman) wrote :

It seems to have solved it in most cases, so it's probably best to file a new bug to separate your issue from the previous discussion.

Changed in kdebase:
status: New → Fix Released
Changed in kdebase:
importance: Unknown → Medium
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.