mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-09 18:08:35 +02:00
LCL/Menus: Fix owner-drawn menu having zero item size if not specified by OnMeasureItem. Issue #35972, patch by dmz73.
(cherry picked from commit e6e2178ca7
)
This commit is contained in:
parent
6bad22c954
commit
08c83b5352
@ -25,7 +25,7 @@ uses
|
||||
////////////////////////////////////////////////////
|
||||
// I M P O R T A N T
|
||||
////////////////////////////////////////////////////
|
||||
// To get as little as posible circles,
|
||||
// To get as little as possible circles,
|
||||
// uncomment only when needed for registration
|
||||
////////////////////////////////////////////////////
|
||||
LCLType, Graphics, GraphType, ImgList, Menus, Forms,
|
||||
@ -908,24 +908,22 @@ function MenuItemSize(AMenuItem: TMenuItem; AHDC: HDC): TSize;
|
||||
var
|
||||
CC: TControlCanvas;
|
||||
begin
|
||||
Result.cx := 0;
|
||||
Result.cy := 0;
|
||||
|
||||
CC := TControlCanvas.Create;
|
||||
try
|
||||
CC.Handle := AHDC;
|
||||
Result.cx := 0;
|
||||
Result.cy := 0;
|
||||
|
||||
if not AMenuItem.MeasureItem(CC, Result.cx, Result.cy) then
|
||||
if IsVistaMenu then
|
||||
begin
|
||||
if IsVistaMenu then
|
||||
begin
|
||||
if AMenuItem.IsInMenuBar then
|
||||
Result := VistaBarMenuItemSize(AMenuItem, AHDC)
|
||||
else
|
||||
Result := VistaPopupMenuItemSize(AMenuItem, AHDC);
|
||||
end
|
||||
if AMenuItem.IsInMenuBar then
|
||||
Result := VistaBarMenuItemSize(AMenuItem, AHDC)
|
||||
else
|
||||
Result := ClassicMenuItemSize(AMenuItem, AHDC);
|
||||
end;
|
||||
Result := VistaPopupMenuItemSize(AMenuItem, AHDC);
|
||||
end
|
||||
else
|
||||
Result := ClassicMenuItemSize(AMenuItem, AHDC);
|
||||
AMenuItem.MeasureItem(CC, Result.cx, Result.cy);
|
||||
finally
|
||||
CC.Free;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user