From 1751d3c2edc6197773d5ad48e1086b238b411613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=BDeljan=20Rikalo?= Date: Tue, 15 Nov 2022 13:07:53 +0100 Subject: [PATCH] Qt6: add x11Display function, returns xlib.PDisplay. --- lcl/interfaces/qt6/qtint.pp | 6 +++--- lcl/interfaces/qt6/qtobject.inc | 8 ++++++++ lcl/interfaces/qt6/qtx11.inc | 8 +------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/lcl/interfaces/qt6/qtint.pp b/lcl/interfaces/qt6/qtint.pp index 794d855b25..4417d401e3 100644 --- a/lcl/interfaces/qt6/qtint.pp +++ b/lcl/interfaces/qt6/qtint.pp @@ -44,6 +44,7 @@ uses GraphType, LazStringUtils, LazUtilities, LazLoggerBase, LazUTF8, Maps, // WS {$IFDEF HASX11} + XAtom, X, XLib, XKB, xkblib, qtx11dummywidget, {$ENDIF} qtproc; @@ -123,6 +124,7 @@ type FStockSystemFont: HFONT; FStockDefaultDC: HDC; {$IFDEF HASX11} + FX11Display: PDisplay; FWSFrameRect: TRect; {$ENDIF} @@ -154,6 +156,7 @@ type {$IFDEF HASX11} function CreateDummyWidgetFrame(const ALeft, ATop, AWidth, AHeight: integer): boolean; function GetDummyWidgetFrame: TRect; + function x11Display: PDisplay; {$ENDIF} public constructor Create; override; @@ -352,9 +355,6 @@ uses // To get as little as possible circles, // uncomment only those units with implementation //////////////////////////////////////////////////// - {$IFDEF HASX11} - XAtom, X, XLib, XKB, xkblib, - {$ENDIF} QtCaret, QtThemes, diff --git a/lcl/interfaces/qt6/qtobject.inc b/lcl/interfaces/qt6/qtobject.inc index 63affbe332..f0052d9263 100644 --- a/lcl/interfaces/qt6/qtobject.inc +++ b/lcl/interfaces/qt6/qtobject.inc @@ -30,6 +30,7 @@ begin App := QApplicationH(QCoreApplication_instance()) else begin + FX11Display := nil; {$IFDEF MSWINDOWS} //add directory plugins to the Qt paths if Qt is distributed with application under mswindows. WStr := 'plugins'; @@ -533,6 +534,13 @@ function TQtWidgetSet.GetDummyWidgetFrame: TRect; begin Result := FWSFrameRect; end; + +function TQtWidgetSet.x11Display: PDisplay; +begin + if FX11Display = nil then + FX11Display := XOpenDisplay(nil); + Result := FX11Display; +end; {$ENDIF} procedure TQtWidgetSet.SetOverrideCursor(const AValue: TObject); diff --git a/lcl/interfaces/qt6/qtx11.inc b/lcl/interfaces/qt6/qtx11.inc index dd1328e15d..5eece3674c 100644 --- a/lcl/interfaces/qt6/qtx11.inc +++ b/lcl/interfaces/qt6/qtx11.inc @@ -9,15 +9,9 @@ begin Result := APlatform = 'xcb'; end; -var - GlobDisplay: PDisplay = nil; - function X11Display: PDisplay; begin - {$warning move X11Display to TQtWidgetSet to avoid global GlobDisplay variable} - if GlobDisplay = nil then - GlobDisplay := XOpenDisplay(nil); - Result := GlobDisplay; + Result := QtWidgetSet.x11Display end; function IsCompositingManagerRunning: boolean;