mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-09 04:07:57 +02:00
MenuDesigner: new method IsUpdate for MenuDesigner (related to BeginUpdate and EndUpdate) to prevent IDE crash. Fix for issue #29362. (merged from sparta, by hnb)
git-svn-id: trunk@51241 -
This commit is contained in:
parent
9072a13913
commit
f3ec76381d
@ -97,6 +97,7 @@ type
|
||||
procedure UpdateTemplatesCount;
|
||||
procedure BeginUpdate;
|
||||
procedure EndUpdate;
|
||||
function IsUpdate: Boolean;
|
||||
property AcceleratorMenuItemsCount: integer read FAcceleratorMenuItemsCount;
|
||||
property EditedMenu: TMenu read FEditedMenu;
|
||||
property SavedTemplatesCount: integer read FSavedTemplatesCount;
|
||||
@ -591,6 +592,11 @@ begin
|
||||
OnDesignerSetSelection(FormEditingHook.GetCurrentObjectInspector.Selection);
|
||||
end;
|
||||
|
||||
function TMenuDesigner.IsUpdate: Boolean;
|
||||
begin
|
||||
Result := FUpdateCount > 0;
|
||||
end;
|
||||
|
||||
{ TMainMenuComponentEditor}
|
||||
|
||||
procedure TMainMenuComponentEditor.Edit;
|
||||
|
@ -4693,15 +4693,17 @@ end;
|
||||
|
||||
procedure TShadowMenu.AddOnClick(Sender: TObject);
|
||||
var
|
||||
compEditor: TDefaultComponentEditor;
|
||||
compEditor: TDefaultComponentEditor = nil;
|
||||
begin
|
||||
if (FSelectedMenuItem <> nil) then begin
|
||||
compEditor:=TDefaultComponentEditor.Create(FSelectedMenuItem, FEditorDesigner);
|
||||
MenuDesigner.BeginUpdate;
|
||||
try
|
||||
compEditor:=TDefaultComponentEditor.Create(FSelectedMenuItem, FEditorDesigner);
|
||||
compEditor.Edit;
|
||||
UpdateSelectedItemInfo;
|
||||
finally
|
||||
compEditor.Free;
|
||||
MenuDesigner.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -5698,6 +5700,9 @@ var
|
||||
si: TShadowItem;
|
||||
refreshNeeded: boolean = False;
|
||||
begin
|
||||
if MenuDesigner.IsUpdate then
|
||||
Exit;
|
||||
|
||||
if (Sender is TPropertyEditor) then begin
|
||||
for i:=0 to TPropertyEditor(Sender).PropCount-1 do begin
|
||||
persistent:=TPropertyEditor(Sender).GetComponent(i);
|
||||
|
Loading…
Reference in New Issue
Block a user