From 40594f3e01af52518397f240f21954196802e801 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Sat, 14 Apr 2018 09:06:55 +0200 Subject: [PATCH] fix blinking terminal on each keystroke + fix font assign not triggering FontChanged() --- src/ce_term.lfm | 3 +-- src/ce_term.pas | 37 +++++++------------------------------ 2 files changed, 8 insertions(+), 32 deletions(-) diff --git a/src/ce_term.lfm b/src/ce_term.lfm index c675769e..366200e8 100644 --- a/src/ce_term.lfm +++ b/src/ce_term.lfm @@ -5,8 +5,6 @@ inherited CETermWidget: TCETermWidget Caption = 'Terminal' ClientHeight = 296 ClientWidth = 674 - OnClick = FormResize - OnResize = FormResize inherited Back: TPanel Height = 296 Width = 674 @@ -16,6 +14,7 @@ inherited CETermWidget: TCETermWidget Height = 260 Top = 36 Width = 674 + OnPaint = ContentPaint end inherited toolbar: TCEToolBar Width = 666 diff --git a/src/ce_term.pas b/src/ce_term.pas index 904e5a60..8cc68cb7 100644 --- a/src/ce_term.pas +++ b/src/ce_term.pas @@ -51,11 +51,11 @@ type { TCETermWidget } TCETermWidget = class(TCEWidget, ICEDocumentObserver, ICEProjectObserver) - procedure FormResize(Sender: TObject); - procedure FormShow(Sender: TObject); + procedure ContentPaint(Sender: TObject); private fTerm: TTerminal; fOpts: TCETerminalOptions; + fFirst: boolean; procedure docNew(document: TCESynMemo); procedure docFocused(document: TCESynMemo); @@ -69,10 +69,7 @@ type procedure projCompiling(project: ICECommonProject); procedure projCompiled(project: ICECommonProject; success: boolean); - procedure dockingChanged(sender: TCEWidget; newState: TWidgetDockingState); - protected - procedure DoFirstShow; override; public constructor create(aOwner: TComponent); override; @@ -118,7 +115,11 @@ begin fForegroundColor:=s.fForegroundColor; fSelectedColor:=s.fSelectedColor; followEditors:=s.fFollowEditors; + fFont.BeginUpdate; + fFont.Height:=fFont.Height+1; + fFont.Height:=fFont.Height-1; fFont.Assign(s.font); + fFont.EndUpdate; end else inherited; end; @@ -195,8 +196,6 @@ begin fTerm.Align:= alClient; fTerm.BorderSpacing.Around:=4; fterm.Parent := self; - fTerm.OnTerminalVisibleChanged:=@FormShow; - self.onDockingChanged:=@dockingChanged; fOpts:= TCETerminalOptions.Create(self); @@ -214,29 +213,7 @@ begin inherited; end; -procedure TCETermWidget.dockingChanged(sender: TCEWidget; newState: TWidgetDockingState); -begin - {$IFDEF WINDOWS} - fTerm.Restart; - {$ENDIF} -end; - -procedure TCETermWidget.DoFirstShow; -begin - inherited; - {$IFDEF WINDOWS} - fTerm.Restart; - {$ENDIF} -end; - -procedure TCETermWidget.FormResize(Sender: TObject); -begin - {$IFDEF WINDOWS} - fTerm.Reparent; - {$ENDIF} -end; - -procedure TCETermWidget.FormShow(Sender: TObject); +procedure TCETermWidget.ContentPaint(Sender: TObject); begin fOpts.applyChanges; end;