mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-18 11:09:38 +02:00
lcl: check children handles on menu item LM_ACTIVATE message (fixes win32 part of issue #0014144)
git-svn-id: trunk@20859 -
This commit is contained in:
parent
c01c5e7c6f
commit
b5301d1c72
lcl
@ -119,21 +119,12 @@ end;
|
||||
Creates the handle ( = object).
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TMenuItem.CreateHandle;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
//DebugLn('TMenuItem.CreateHandle ',dbgsName(Self),' ',dbgs(Self));
|
||||
//DebugLn('TMenuItem.CreateHandle START ',Name,':',ClassName);
|
||||
if not FVisible then RaiseGDBException('');
|
||||
Handle := TWSMenuItemClass(WidgetSetClass).CreateHandle(Self);
|
||||
if FItems <> nil then
|
||||
begin
|
||||
for i := 0 to Count - 1 do
|
||||
begin
|
||||
if Items[i].Visible then
|
||||
Items[i].HandleNeeded;
|
||||
end;
|
||||
end;
|
||||
CheckChildrenHandles;
|
||||
|
||||
if Parent <> nil then
|
||||
begin
|
||||
@ -264,6 +255,7 @@ end;
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TMenuItem.DoClicked(var msg);
|
||||
begin
|
||||
CheckChildrenHandles;
|
||||
if not (csDesigning in ComponentState) then
|
||||
begin
|
||||
InitiateActions;
|
||||
@ -274,6 +266,20 @@ begin
|
||||
DesignerMenuItemClick(Self);
|
||||
end;
|
||||
|
||||
procedure TMenuItem.CheckChildrenHandles;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
if FItems <> nil then
|
||||
begin
|
||||
for i := 0 to Count - 1 do
|
||||
begin
|
||||
if Items[i].Visible then
|
||||
Items[i].HandleNeeded;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMenuItem.IntfDoSelect;
|
||||
begin
|
||||
Application.Hint := GetLongHint(Hint);
|
||||
|
@ -176,6 +176,7 @@ type
|
||||
function GetActionLinkClass: TMenuActionLinkClass; dynamic;
|
||||
function GetHandle: HMenu;
|
||||
procedure DoClicked(var msg); message LM_ACTIVATE;
|
||||
procedure CheckChildrenHandles;
|
||||
procedure CreateHandle; virtual;
|
||||
procedure DestroyHandle; virtual;
|
||||
procedure Loaded; override;
|
||||
|
Loading…
Reference in New Issue
Block a user