diff --git a/lcl/include/promptdialog.inc b/lcl/include/promptdialog.inc index f041211dfd..d6e4da6d9f 100644 --- a/lcl/include/promptdialog.inc +++ b/lcl/include/promptdialog.inc @@ -924,7 +924,6 @@ begin end; if DialogButtons.DefaultButton = nil then DialogButtons.DefaultButton := DialogButtons.FindButton([mrYes, mrOk, mrYesToAll, mrAll, mrRetry, mrCancel, mrNo, mrNoToAll, mrAbort, mrIgnore]); - DialogButtons.CancelButton := DialogButtons.FindButton([mrCancel, mrAbort, mrNo, mrIgnore, mrNoToAll, mrYes, mrOk, mrRetry, mrAll, mrYesToAll]); Result := WidgetSet.AskUser(aCaption, ConvertLineEndings(aMsg), DialogIds[DlgType], DialogButtons, HelpCtx); finally diff --git a/lcl/interfaces/gtk2/gtk2lclintf.inc b/lcl/interfaces/gtk2/gtk2lclintf.inc index 2d889be7db..8222d13e9b 100644 --- a/lcl/interfaces/gtk2/gtk2lclintf.inc +++ b/lcl/interfaces/gtk2/gtk2lclintf.inc @@ -975,7 +975,7 @@ var begin Result := mrNone; ReleaseCapture; - ADialogResult := mrNone; + ADialogResult := mrCancel; case DialogType of idDialogWarning: GtkDialogType := GTK_MESSAGE_WARNING; idDialogError: GtkDialogType := GTK_MESSAGE_ERROR; @@ -1000,11 +1000,6 @@ begin CancelID := X; ADialogResult := DlgBtn.ModalResult; end; - - if (ADialogResult = mrNone) and - (Buttons[X].ModalResult in [mrCancel, mrAbort, mrIgnore, mrNo, mrNoToAll]) - then - ADialogResult := Buttons[X].ModalResult; end; diff --git a/lcl/interfaces/win32/win32lclintf.inc b/lcl/interfaces/win32/win32lclintf.inc index 97bb4e745b..e130dfe0bd 100644 --- a/lcl/interfaces/win32/win32lclintf.inc +++ b/lcl/interfaces/win32/win32lclintf.inc @@ -391,8 +391,13 @@ begin try Result := IDCANCEL; TaskDialogIndirect(@TaskConfig, @Result, nil, nil); - if (Result = IDCANCEL) and Assigned(Buttons.CancelButton) then - Result := Buttons.CancelButton.ModalResult; + if (Result = IDCANCEL) then + begin + if Assigned(Buttons.CancelButton) then + Result := Buttons.CancelButton.ModalResult + else + Result := mrCancel; + end; finally RestoreApplicationState(State); for i := 0 to TaskConfig.cButtons - 1 do