Use toolkit messages to fix #307 better

This commit is contained in:
Basile Burg 2018-05-06 16:16:37 +02:00
parent 0db896a68e
commit ff695038cc
1 changed files with 8 additions and 14 deletions

View File

@ -9,7 +9,7 @@ uses
SynEdit, SynPluginSyncroEdit, SynCompletion, SynEditKeyCmds, LazSynEditText, SynEdit, SynPluginSyncroEdit, SynCompletion, SynEditKeyCmds, LazSynEditText,
SynHighlighterLFM, SynEditHighlighter, SynEditMouseCmds, SynEditFoldedView, SynHighlighterLFM, SynEditHighlighter, SynEditMouseCmds, SynEditFoldedView,
SynEditMarks, SynEditTypes, SynHighlighterJScript, SynBeautifier, dialogs, SynEditMarks, SynEditTypes, SynHighlighterJScript, SynBeautifier, dialogs,
md5, Spin, LCLIntf, LazFileUtils, md5, Spin, LCLIntf, LazFileUtils, LMessages,
//SynEditMarkupFoldColoring, //SynEditMarkupFoldColoring,
Clipbrd, fpjson, jsonparser, LazUTF8, LazUTF8Classes, Buttons, StdCtrls, Clipbrd, fpjson, jsonparser, LazUTF8, LazUTF8Classes, Buttons, StdCtrls,
ce_common, ce_writableComponent, ce_d2syn, ce_txtsyn, ce_dialogs, ce_dastworx, ce_common, ce_writableComponent, ce_d2syn, ce_txtsyn, ce_dialogs, ce_dastworx,
@ -281,7 +281,6 @@ type
procedure removeGutterIcon(line: integer; value: TGutterIcon); procedure removeGutterIcon(line: integer; value: TGutterIcon);
procedure patchClipboardIndentation; procedure patchClipboardIndentation;
procedure gotoWordEdge(right: boolean); procedure gotoWordEdge(right: boolean);
procedure handleModalBeginning(sender: TObject);
// //
procedure gutterClick(Sender: TObject; X, Y, Line: integer; mark: TSynEditMark); procedure gutterClick(Sender: TObject; X, Y, Line: integer; mark: TSynEditMark);
procedure removeDebugTimeMarks; procedure removeDebugTimeMarks;
@ -302,6 +301,7 @@ type
Data: pointer); override; Data: pointer); override;
procedure MouseLeave; override; procedure MouseLeave; override;
procedure SetVisible(Value: Boolean); override; procedure SetVisible(Value: Boolean); override;
procedure WMKillFocus(var Message: TLMKillFocus); message LM_KILLFOCUS;
procedure SetHighlighter(const Value: TSynCustomHighlighter); override; procedure SetHighlighter(const Value: TSynCustomHighlighter); override;
procedure UTF8KeyPress(var Key: TUTF8Char); override; procedure UTF8KeyPress(var Key: TUTF8Char); override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override; procedure KeyDown(var Key: Word; Shift: TShiftState); override;
@ -1077,6 +1077,12 @@ begin
EntitiesConnector.addObserver(self); EntitiesConnector.addObserver(self);
end; end;
procedure TCESynMemo.WMKillFocus(var Message: TLMKillFocus);
begin
if eoAutoHideCursor in options2 then
inherited MouseMove([], 0, 0);
end;
destructor TCESynMemo.destroy; destructor TCESynMemo.destroy;
begin begin
saveCache; saveCache;
@ -1134,14 +1140,6 @@ begin
Font.Size := fDefaultFontSize; Font.Size := fDefaultFontSize;
end; end;
procedure TCESynMemo.handleModalBeginning(sender: TObject);
begin
// AV can happens in TCustomSynEdit.UpdateCursor
if (self <> nil) and (Pcardinal(@FTextArea)^ <> $f0f0f0f0) and (Pcardinal(@FTextArea)^ <> $0f0f0f0f)
and assigned(FTextArea) and (eoAutoHideCursor in Options2) then
MouseMove([], 0, 0);
end;
procedure TCESynMemo.setFocus; procedure TCESynMemo.setFocus;
begin begin
inherited; inherited;
@ -1181,8 +1179,6 @@ begin
inherited; inherited;
if Value then if Value then
begin begin
application.AddOnDeactivateHandler(@handleModalBeginning);
application.AddOnModalBeginHandler(@handleModalBeginning);
setFocus; setFocus;
if not fCacheLoaded then if not fCacheLoaded then
loadCache; loadCache;
@ -1195,8 +1191,6 @@ begin
fScrollMemo.Visible:=false; fScrollMemo.Visible:=false;
if fCompletion.IsActive then if fCompletion.IsActive then
fCompletion.Deactivate; fCompletion.Deactivate;
application.RemoveOnDeactivateHandler(@handleModalBeginning);
application.RemoveOnModalBeginHandler(@handleModalBeginning);
end; end;
end; end;
{$ENDREGION --------------------------------------------------------------------} {$ENDREGION --------------------------------------------------------------------}