diff --git a/lcl/interfaces/qt5/qtwidgets.pas b/lcl/interfaces/qt5/qtwidgets.pas index 89886831f8..19f600f35d 100644 --- a/lcl/interfaces/qt5/qtwidgets.pas +++ b/lcl/interfaces/qt5/qtwidgets.pas @@ -16073,6 +16073,9 @@ function TQtMenu.CreateWidget(const AParams: TCreateParams): QWidgetH; var AGroup: TQtActionGroup; Parent: QWidgetH; + {$IFDEF HASX11} + AForm: TCustomForm; + {$ENDIF} begin FTrackButton := QtNoButton; FLastTick := 0; @@ -16085,8 +16088,11 @@ begin {$IFDEF HASX11} // issue #40602 if IsWayland and Assigned(FMenuItem) and FMenuItem.HasParent and not FMenuItem.Parent.HasParent and - (FMenuItem.GetParentMenu is TMainMenu) then - Parent := TQtMainWindow(Application.MainForm.Handle).MenuBarNeeded.Widget; + (FMenuItem.GetParentMenu is TMainMenu) and (TMainMenu(FMenuItem.GetParentMenu).Parent is TCustomForm) then + begin + AForm := TCustomForm(TMainMenu(FMenuItem.GetParentMenu).Parent); + Parent := TQtMainWindow(AForm.Handle).MenuBarNeeded.Widget; + end; {$ENDIF} Result := QMenu_create(Parent);