From d6a1435e7def6d8ae96194e32f954e0e100079d1 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Sun, 6 May 2018 13:06:29 +0200 Subject: [PATCH] editor, handler for modal begin only if editor visible --- src/ce_editor.lfm | 5 +++-- src/ce_editor.pas | 10 ++++++++++ src/ce_synmemo.pas | 7 ++++--- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/ce_editor.lfm b/src/ce_editor.lfm index e6e08d17..e1e9ca26 100644 --- a/src/ce_editor.lfm +++ b/src/ce_editor.lfm @@ -7,6 +7,7 @@ inherited CEEditorWidget: TCEEditorWidget ClientHeight = 434 ClientWidth = 465 OnShortCut = FormShortCut + OnShow = FormShow inherited Back: TPanel Height = 434 Width = 465 @@ -20,8 +21,8 @@ inherited CEEditorWidget: TCEEditorWidget ClientWidth = 465 object editorStatus: TStatusBar[0] Left = 0 - Height = 19 - Top = 377 + Height = 21 + Top = 375 Width = 465 BorderSpacing.Bottom = 2 Panels = < diff --git a/src/ce_editor.pas b/src/ce_editor.pas index 85d54b78..15cecf93 100644 --- a/src/ce_editor.pas +++ b/src/ce_editor.pas @@ -94,6 +94,7 @@ type editorStatus: TStatusBar; mnuEditor: TPopupMenu; procedure FormShortCut(var Msg: TLMKey; var Handled: Boolean); + procedure FormShow(Sender: TObject); procedure mnuedDdocTmpClick(Sender: TObject); procedure mnuedGotolineClick(Sender: TObject); procedure mnuedNextWarnClick(Sender: TObject); @@ -474,6 +475,7 @@ begin document.OnCommandProcessed:= @memoCmdProcessed; // fDoc := document; + fDoc.Visible:=true; fDoc.setFocus; focusedEditorChanged; updateImperative; @@ -497,6 +499,7 @@ begin updatePageCaption(pageControl.currentPage); if document = fDoc then exit; fDoc := document; + fDoc.Visible:=true; focusedEditorChanged; updateImperative; end; @@ -670,6 +673,7 @@ begin if fDoc.isNil then exit; fDoc.hideCallTips; fDoc.hideDDocs; + fDOc.Visible:=false; end; procedure TCEEditorWidget.memoKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); @@ -1002,6 +1006,12 @@ begin end; end; +procedure TCEEditorWidget.FormShow(Sender: TObject); +begin + if fDoc.isNotNil then + fDoc.Visible:=true; +end; + procedure TCEEditorWidget.mnuedGotolineClick(Sender: TObject); begin if fDoc.isNotNil then diff --git a/src/ce_synmemo.pas b/src/ce_synmemo.pas index 01a5b760..43bb6b7a 100644 --- a/src/ce_synmemo.pas +++ b/src/ce_synmemo.pas @@ -1069,8 +1069,6 @@ begin fAutoCloseCurlyBrace:= autoCloseOnNewLineLexically; fAutoClosedPairs:= [autoCloseSquareBracket]; - application.AddOnDeactivateHandler(@handleModalBeginning); - fDastWorxExename:= exeFullName('dastworx' + exeExt); fDebugger := EntitiesConnector.getSingleService('ICEDebugger') as ICEDebugger; @@ -1081,7 +1079,6 @@ end; destructor TCESynMemo.destroy; begin - application.RemoveOnDeactivateHandler(@handleModalBeginning); saveCache; //fIndentGuideMarkup.Free; @@ -1184,6 +1181,8 @@ begin inherited; if Value then begin + application.AddOnDeactivateHandler(@handleModalBeginning); + application.AddOnModalBeginHandler(@handleModalBeginning); setFocus; if not fCacheLoaded then loadCache; @@ -1196,6 +1195,8 @@ begin fScrollMemo.Visible:=false; if fCompletion.IsActive then fCompletion.Deactivate; + application.RemoveOnDeactivateHandler(@handleModalBeginning); + application.RemoveOnModalBeginHandler(@handleModalBeginning); end; end; {$ENDREGION --------------------------------------------------------------------}