IDE: Remove EnvironmentOptions.DesignerPaintLazy to prevent paintings outside OnPaint resulting in painting artefacts. Fixes issue #23741 and #33781

git-svn-id: trunk@65304 -
This commit is contained in:
michl 2021-06-25 14:18:16 +00:00
parent ffa2a3f3c2
commit d8b67e5786
5 changed files with 70 additions and 107 deletions

View File

@ -2017,10 +2017,6 @@ begin
// client grid
if (Sender is TWinControl) and (csAcceptsControls in Sender.ControlStyle) then
PaintClientGrid(TWinControl(Sender),DDC);
if (WidgetSet.GetLCLCapability(lcCanDrawOutsideOnPaint) <> 0) and
not EnvironmentOptions.DesignerPaintLazy then
DoPaintDesignerItems;
end;
// clean up

View File

@ -577,7 +577,6 @@ type
// designer
FCreateComponentFocusNameProperty: boolean;
FSwitchToFavoritesOITab: boolean;
FDesignerPaintLazy: boolean;
FShowBorderSpacing: boolean;
FShowGrid: boolean;
FSnapToGrid: boolean;
@ -863,8 +862,6 @@ type
write FRubberbandCreationColor;
property RubberbandSelectsGrandChilds: boolean read FRubberbandSelectsGrandChilds
write FRubberbandSelectsGrandChilds;
property DesignerPaintLazy: boolean read FDesignerPaintLazy
write FDesignerPaintLazy;
property CreateComponentFocusNameProperty: boolean read FCreateComponentFocusNameProperty
write FCreateComponentFocusNameProperty;
property SwitchToFavoritesOITab: boolean read FSwitchToFavoritesOITab
@ -2143,7 +2140,6 @@ begin
FRubberbandSelectionColor:=clNavy;
FRubberbandCreationColor:=clMaroon;
FRubberbandSelectsGrandChilds:=DefaultRubberbandSelectsGrandChilds;
FDesignerPaintLazy:=true;
FCreateComponentFocusNameProperty:=false;
FSwitchToFavoritesOITab:=false;
FFormTitleBarChangesObjectInspector:=false;
@ -2631,7 +2627,6 @@ begin
FRubberbandCreationColor:=FXMLCfg.GetValue(Path+'FormEditor/Rubberband/CreationColor/Value',
FRubberbandCreationColor);
FRubberbandSelectsGrandChilds:=FXMLCfg.GetValue(Path+'FormEditor/Rubberband/SelectsGrandChilds/Value',DefaultRubberbandSelectsGrandChilds);
FDesignerPaintLazy:=FXMLCfg.GetValue(Path+'FormEditor/DesignerPaint/Lazy/Value',true);
FCreateComponentFocusNameProperty:=FXMLCfg.GetValue(
Path+'FormEditor/CreateComponentFocusNameProperty/Value',false);
FSwitchToFavoritesOITab:=FXMLCfg.GetValue(Path+'FormEditor/SwitchToFavoritesOITab/Value',false);
@ -3003,7 +2998,6 @@ begin
FRubberbandCreationColor,clRed);
FXMLCfg.SetDeleteValue(Path+'FormEditor/Rubberband/SelectsGrandChilds/Value',
FRubberbandSelectsGrandChilds,DefaultRubberbandSelectsGrandChilds);
FXMLCfg.SetDeleteValue(Path+'FormEditor/DesignerPaint/Lazy/Value',FDesignerPaintLazy,true);
FXMLCfg.SetDeleteValue(Path+'FormEditor/CreateComponentFocusNameProperty/Value',
FCreateComponentFocusNameProperty,false);
FXMLCfg.SetDeleteValue(Path+'FormEditor/SwitchToFavoritesOITab/Value',FSwitchToFavoritesOITab,false);

View File

@ -17,14 +17,14 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 232
Height = 153
Height = 141
Top = 0
Width = 537
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Left = 6
Caption = 'GridGroupBox'
ClientHeight = 133
ClientHeight = 123
ClientWidth = 533
TabOrder = 1
object GridSizeXLabel: TLabel
@ -32,24 +32,22 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideTop.Control = GridSizeXSpinEdit
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 79
Width = 77
Height = 13
Top = 73
Width = 69
BorderSpacing.Around = 6
Caption = 'GridSizeXLabel'
ParentColor = False
end
object GridSizeYLabel: TLabel
AnchorSideLeft.Control = GridGroupBox
AnchorSideTop.Control = GridSizeYSpinEdit
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 108
Width = 77
Height = 13
Top = 100
Width = 69
BorderSpacing.Around = 6
Caption = 'GridSizeYLabel'
ParentColor = False
end
object SnapToGridCheckBox: TCheckBox
AnchorSideLeft.Control = GridGroupBox
@ -58,9 +56,9 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideRight.Control = GridGroupBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 19
Top = 50
Width = 134
Height = 17
Top = 46
Width = 122
BorderSpacing.Left = 6
BorderSpacing.Top = 3
BorderSpacing.Right = 6
@ -73,9 +71,9 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideLeft.Control = GridGroupBox
AnchorSideTop.Control = GridGroupBox
Left = 6
Height = 19
Height = 17
Top = 6
Width = 123
Width = 112
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'ShowGridCheckBox'
@ -88,9 +86,9 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideTop.Control = ShowGridCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 28
Width = 167
Height = 17
Top = 26
Width = 154
BorderSpacing.Left = 6
BorderSpacing.Top = 3
Caption = 'ShowBorderSpaceCheckBox'
@ -103,9 +101,9 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = SnapToGridCheckBox
AnchorSideTop.Side = asrBottom
Left = 89
Height = 23
Top = 75
Left = 81
Height = 21
Top = 69
Width = 64
BorderSpacing.Around = 6
MaxValue = 128
@ -120,9 +118,9 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = GridSizeXSpinEdit
AnchorSideTop.Side = asrBottom
Left = 89
Height = 23
Top = 104
Left = 81
Height = 21
Top = 96
Width = 64
BorderSpacing.Around = 6
MaxValue = 128
@ -142,14 +140,14 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 0
Height = 250
Top = 238
Height = 239
Top = 220
Width = 769
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Top = 6
Caption = 'FormEditMiscGroupBox'
ClientHeight = 230
ClientHeight = 221
ClientWidth = 765
TabOrder = 3
object ShowComponentCaptionsCheckBox: TCheckBox
@ -159,9 +157,9 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideRight.Control = FormEditMiscGroupBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 19
Top = 28
Width = 212
Height = 17
Top = 26
Width = 190
BorderSpacing.Left = 6
BorderSpacing.Top = 3
BorderSpacing.Right = 6
@ -177,9 +175,9 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideRight.Control = FormEditMiscGroupBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 19
Top = 50
Width = 160
Height = 17
Top = 46
Width = 145
BorderSpacing.Left = 6
BorderSpacing.Top = 3
BorderSpacing.Right = 6
@ -195,9 +193,9 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideRight.Control = FormEditMiscGroupBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 19
Top = 72
Width = 214
Height = 17
Top = 66
Width = 194
BorderSpacing.Left = 6
BorderSpacing.Top = 3
BorderSpacing.Right = 6
@ -213,9 +211,9 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideRight.Control = FormEditMiscGroupBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 19
Top = 94
Width = 162
Height = 17
Top = 86
Width = 147
BorderSpacing.Left = 6
BorderSpacing.Top = 3
Caption = 'RightClickSelectsCheckBox'
@ -223,31 +221,14 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
ShowHint = True
TabOrder = 4
end
object DesignerPaintLazyCheckBox: TCheckBox
object CreateCompFocusNameCheckBox: TCheckBox
AnchorSideLeft.Control = FormEditMiscGroupBox
AnchorSideTop.Control = RightClickSelectsCheckBox
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = FormEditMiscGroupBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 19
Top = 116
Width = 168
BorderSpacing.Left = 6
BorderSpacing.Top = 3
Caption = 'DesignerPaintLazyCheckBox'
ParentShowHint = False
ShowHint = True
TabOrder = 5
end
object CreateCompFocusNameCheckBox: TCheckBox
AnchorSideLeft.Control = FormEditMiscGroupBox
AnchorSideTop.Control = DesignerPaintLazyCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 138
Width = 202
Left = 7
Height = 17
Top = 107
Width = 182
BorderSpacing.Left = 6
BorderSpacing.Top = 3
BorderSpacing.Bottom = 3
@ -255,7 +236,7 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
OnChange = CreateCompFocusNameCheckBoxChange
ParentShowHint = False
ShowHint = True
TabOrder = 6
TabOrder = 5
end
object RubberbandSelectsGrandChildsCheckBox: TCheckBox
AnchorSideLeft.Control = FormEditMiscGroupBox
@ -263,7 +244,7 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideRight.Control = FormEditMiscGroupBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 19
Height = 17
Top = 6
Width = 759
Anchors = [akTop, akLeft, akRight]
@ -279,31 +260,31 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideTop.Control = SwitchToFavoritesOITabCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 160
Width = 232
Height = 17
Top = 158
Width = 212
BorderSpacing.Left = 6
BorderSpacing.Top = 3
BorderSpacing.Bottom = 3
Caption = 'CheckPackagesOnFormCreateCheckBox'
ParentShowHint = False
ShowHint = True
TabOrder = 8
TabOrder = 7
end
object SwitchToFavoritesOITabCheckBox: TCheckBox
AnchorSideLeft.Control = CreateCompFocusNameCheckBox
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CreateCompFocusNameCheckBox
AnchorSideTop.Side = asrCenter
Left = 228
Height = 19
Left = 208
Height = 17
Top = 138
Width = 200
Width = 185
BorderSpacing.Left = 20
Caption = 'SwitchToFavoritesOITabCheckBox'
ParentShowHint = False
ShowHint = True
TabOrder = 7
TabOrder = 6
end
object FormTitleBarChangesObjectInspectorCheckBox: TCheckBox
AnchorSideLeft.Control = FormEditMiscGroupBox
@ -312,16 +293,16 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideBottom.Control = FormEditMiscGroupBox
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 19
Top = 182
Width = 270
Height = 17
Top = 178
Width = 247
BorderSpacing.Left = 6
BorderSpacing.Top = 3
BorderSpacing.Bottom = 3
Caption = 'FormTitleBarChangesObjectInspectorCheckBox'
ParentShowHint = False
ShowHint = True
TabOrder = 9
TabOrder = 8
end
object ForceDPIScalingInDesignTimeCheckBox: TCheckBox
AnchorSideLeft.Control = FormEditMiscGroupBox
@ -329,16 +310,16 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 19
Top = 204
Width = 230
Height = 17
Top = 198
Width = 208
BorderSpacing.Left = 6
BorderSpacing.Top = 3
BorderSpacing.Bottom = 6
Caption = 'ForceDPIScalingInDesignTimeCheckBox'
ParentShowHint = False
ShowHint = True
TabOrder = 10
TabOrder = 9
end
end
object GuideLinesGroupBox: TGroupBox
@ -350,15 +331,15 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Side = asrBottom
Left = 232
Height = 73
Top = 159
Height = 67
Top = 147
Width = 537
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'GuideLinesGroupBox'
ClientHeight = 53
ClientHeight = 49
ClientWidth = 533
TabOrder = 2
object ShowGuideLinesCheckBox: TCheckBox
@ -366,7 +347,7 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideRight.Control = GuideLinesGroupBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 19
Height = 17
Top = 6
Width = 521
Anchors = [akTop, akLeft, akRight]
@ -385,8 +366,8 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideRight.Control = GuideLinesGroupBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 19
Top = 28
Height = 17
Top = 26
Width = 521
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
@ -407,12 +388,12 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideBottom.Control = GuideLinesGroupBox
AnchorSideBottom.Side = asrBottom
Left = 0
Height = 232
Height = 214
Top = 0
Width = 226
Anchors = [akTop, akLeft, akBottom]
Caption = 'DesignerColorsGroupBox'
ClientHeight = 212
ClientHeight = 196
ClientWidth = 222
TabOrder = 0
object ColorsListBox: TColorListBox
@ -420,7 +401,7 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideTop.Control = DesignerColorsGroupBox
AnchorSideBottom.Control = ColorBox
Left = 6
Height = 172
Height = 156
Top = 6
Width = 210
Style = [cbCustomColors]
@ -441,7 +422,7 @@ object FormEditorOptionsFrame: TFormEditorOptionsFrame
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 22
Top = 184
Top = 168
Width = 210
Style = [cbStandardColors, cbExtendedColors, cbSystemColors, cbCustomColor, cbPrettyNames]
Anchors = [akLeft, akBottom]

View File

@ -56,7 +56,6 @@ type
ColorBox: TColorBox;
ColorsListBox: TColorListBox;
CreateCompFocusNameCheckBox: TCheckBox;
DesignerPaintLazyCheckBox: TCheckBox;
FormEditMiscGroupBox: TGroupBox;
GridGroupBox: TGroupBox;
GridSizeXSpinEdit: TSpinEdit;
@ -136,8 +135,6 @@ procedure TFormEditorOptionsFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
OpenDesignerOnOpenUnitCheckBox.Hint:=lisOpenDesignerOnOpenUnitHint;
RightClickSelectsCheckBox.Caption:=dlgRightClickSelects;
RightClickSelectsCheckBox.Hint:=dlgComponentUnderMouseCursorIsFirstSelected;
DesignerPaintLazyCheckBox.Caption:=lisFEPaintDesignerItemsOnIdle;
DesignerPaintLazyCheckBox.Hint:=lisFEPaintDesignerItemsOnIdleHint;
CreateCompFocusNameCheckBox.Caption:=lisAskNameOnCreate;
CreateCompFocusNameCheckBox.Hint:=lisAskForComponentNameAfterPuttingItOnForm;
SwitchToFavoritesOITabCheckBox.Caption:=lisOFESwitchToObjectInspectorFavoritesTab;
@ -187,7 +184,6 @@ begin
CheckPackagesOnFormCreateCheckBox.Checked := CheckPackagesOnFormCreate;
RightClickSelectsCheckBox.Checked := RightClickSelects;
RubberbandSelectsGrandChildsCheckBox.Checked := RubberbandSelectsGrandChilds;
DesignerPaintLazyCheckBox.Checked := DesignerPaintLazy;
CreateCompFocusNameCheckBox.Checked := CreateComponentFocusNameProperty;
SwitchToFavoritesOITabCheckBox.Checked := SwitchToFavoritesOITab;
SwitchToFavoritesOITabCheckBox.Enabled := CreateCompFocusNameCheckBox.Checked;
@ -224,7 +220,6 @@ begin
CheckPackagesOnFormCreate := CheckPackagesOnFormCreateCheckBox.Checked;
RightClickSelects := RightClickSelectsCheckBox.Checked;
RubberbandSelectsGrandChilds := RubberbandSelectsGrandChildsCheckBox.Checked;
DesignerPaintLazy := DesignerPaintLazyCheckBox.Checked;
CreateComponentFocusNameProperty := CreateCompFocusNameCheckBox.Checked;
SwitchToFavoritesOITab := SwitchToFavoritesOITabCheckBox.Checked;
FormTitleBarChangesObjectInspector := FormTitleBarChangesObjectInspectorCheckBox.Checked;

View File

@ -1516,9 +1516,6 @@ resourcestring
dlgrightClickSelects = 'Right click selects';
dlgComponentUnderMouseCursorIsFirstSelected = 'Component under mouse cursor '
+'is first selected, then the popup menu commands work on it.';
lisFEPaintDesignerItemsOnIdle = 'Reduce designer painting';
lisFEPaintDesignerItemsOnIdleHint = 'Paint designer items only on idle '
+'(reduce overhead for slow computers)';
lisAskNameOnCreate = 'Ask name on create';
lisAskForComponentNameAfterPuttingItOnForm = 'Ask for component '
+'name after putting it on a designer form.';