From 79353aa2a5bae12c276a60a63dce7a452f52f758 Mon Sep 17 00:00:00 2001 From: juha Date: Fri, 28 Oct 2011 09:15:13 +0000 Subject: [PATCH] LCL: Close calendar popup also when the application loses focus. Issue #20171 git-svn-id: trunk@33131 - --- lcl/forms/calendarpopup.lfm | 7 ++++--- lcl/forms/calendarpopup.pas | 11 +++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lcl/forms/calendarpopup.lfm b/lcl/forms/calendarpopup.lfm index 46d63e9fb7..085a90ea7e 100644 --- a/lcl/forms/calendarpopup.lfm +++ b/lcl/forms/calendarpopup.lfm @@ -10,14 +10,15 @@ object CalendarPopupForm: TCalendarPopupForm ClientHeight = 192 ClientWidth = 233 OnClose = FormClose + OnCreate = FormCreate OnDeactivate = FormDeactivate PopupMode = pmAuto - LCLVersion = '0.9.29' + LCLVersion = '0.9.31' object Calendar: TCalendar Left = 1 - Height = 153 + Height = 176 Top = 1 - Width = 162 + Width = 177 AutoSize = True BorderSpacing.Around = 1 DateTime = 38823 diff --git a/lcl/forms/calendarpopup.pas b/lcl/forms/calendarpopup.pas index 03a9b95047..2bcc8fcabc 100644 --- a/lcl/forms/calendarpopup.pas +++ b/lcl/forms/calendarpopup.pas @@ -38,6 +38,7 @@ type procedure CalendarDblClick(Sender: TObject); procedure CalendarKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); + procedure FormCreate(Sender: TObject); procedure FormDeactivate(Sender: TObject); private FClosed: boolean; @@ -75,11 +76,17 @@ end; { TCalendarPopupForm } -procedure TCalendarPopupForm.FormClose(Sender: TObject; - var CloseAction: TCloseAction); +procedure TCalendarPopupForm.FormCreate(Sender: TObject); +begin + FClosed := false; + Application.AddOnDeactivateHandler(@FormDeactivate); +end; + +procedure TCalendarPopupForm.FormClose(Sender: TObject; var CloseAction: TCloseAction); begin //DebugLn(['TCalendarPopupForm.FormClose ']); FClosed := true; + Application.RemoveOnDeactivateHandler(@FormDeactivate); CloseAction := caFree; end;