View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000289||DarkRadiant||GUI||public||03.05.2007 23:16||05.03.2021 05:01|
|Target Version||2.12.0||Fixed in Version||2.12.0|
|Summary||0000289: ESC to close dialogs with Cancel|
|Description||As a standard convenience to users, it is suggested that ESC close dialogs which have a Cancel button.|
There might be more, but here are three examples I know of at this time:
RMB -> Create Entity
RMB -> Create Model
Entity Tab -> Add Property
|Tags||No tags attached.|
AFAIK, there is no standard behaviour in any of DarkRadiant's GTK dialog. I can implement that in gtkutil/DialogWindow.h but this will not cover every dialog by far.
We'll have to track down every single of these I guess.
Didn't we already have an issue for this, and after discussion agree that using Alt-C for Cancel would be acceptable?
Alternatively, it MAY be possible to implement such behaviour with .gtkrc files. I would rather not have code-level callbacks for this sort of thing since it is really a GTK issue not an application issue.
Just as an example, refer to open map dialog:
Ctrl-O opens it, ESC closes it. Very standard behavior (in windoze at least).
Maybe we find a one-line-way of implementing this, like:
|I guess that would be OK, as long as all of the dialogs inherited from the same base class.|
|I think dialogs wouldn't even have to derive from the DialogWindow class (but this would of course be cleaner), as it's just a static method and a static GTK callback. It basically could be used for every widget/window.|
|What a difference switching GUI toolkit makes… this is really easy to implement in wxWidgets. Fixed in d4e8fd7c27a57eae63a10bd4995c35da5e81858f.|
DarkRadiant: master d4e8fd7c
2021-02-23 21:13:06Details Diff
|0000289: ESC now closes all dialogs deriving from DialogBase
Use the wxEVT_CHAR_HOOK event to catch the ESC key and invoke the Close()
method. Affects all dialogs mentioned in the bug (Create Entity, Create Model
and Add Property) as well as any others which are deriving from DialogBase.
|mod - libs/wxutil/dialog/DialogBase.cpp||Diff File|
|mod - libs/wxutil/dialog/DialogBase.h||Diff File|
|03.05.2007 23:16||SneaksieDave||New Issue|
|04.05.2007 12:19||greebo||Note Added: 0000617|
|04.05.2007 12:19||greebo||Status||new => confirmed|
|04.05.2007 13:32||orbweaver||Note Added: 0000618|
|07.05.2007 03:01||SneaksieDave||Note Added: 0000628|
|07.05.2007 19:21||greebo||Note Added: 0000633|
|07.05.2007 19:24||orbweaver||Note Added: 0000634|
|07.05.2007 19:37||greebo||Note Added: 0000635|
|23.01.2021 06:27||greebo||Relationship added||duplicate of 0005033|
|23.01.2021 06:28||greebo||Relationship replaced||related to 0005033|
|23.02.2021 21:04||orbweaver||Assigned To||=> orbweaver|
|23.02.2021 21:04||orbweaver||Status||confirmed => assigned|
|23.02.2021 21:17||orbweaver||Status||assigned => resolved|
|23.02.2021 21:17||orbweaver||Resolution||open => fixed|
|23.02.2021 21:17||orbweaver||Fixed in Version||=> 2.12.0|
|23.02.2021 21:17||orbweaver||Note Added: 0013725|
|23.02.2021 21:17||orbweaver||Target Version||=> 2.12.0|
|05.03.2021 05:01||orbweaver||Changeset attached||=> DarkRadiant master d4e8fd7c|