On 22/04/12 14:09, zeljko wrote:

On Sunday 22 of April 2012 12:28:43 Bart wrote:

> Hi all,

>

> MessageDlg eventually calls WidgetSet.PromptUser()

> This in return either calls and sets up a widgetset specific function

> (like TaskDialogIndirect on Windows Vista/Win7) or if such an

> implementations does not exist it calls

> TPromptDialog.CreateMessageDialog() and the LCL will build it's own

> MessageDialog form with appropriate buttons etc.

>

> I see 3 problems (see http://bugs.freepascal.org/view.php?id=21801 ).

>

> 1.



> How to handle clicking on X-border-icon?


afair, qt and gtk2 have default result for that and escape key (you can set on dialog what is the value of default result for [X] and escape), result should be mrCancel in any case.

+1

The current result for Escape and [x] (at least under GTK2) is mrOK which is very misleading.

But I have a slightly different suggestion:

1- This should apply to any modal form, not only MessageDlg and WidgetSet.PromptUser.

2- Escape key should first check if any button has Cancel=true, and use that button's modal result. Otherwise, mrCancel is in order as the user is running away from answering the dialog.

3- [x] should either return mrCancel, or mimic the Escape key. The latter is the more logical choice, as the programmer has intentionally defined the action (by setting a button's Cancel to true) if the user wants to run away.

Stephano
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to