diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2019-06-14 02:08:22 +0000 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2019-06-19 10:55:25 +0200 |
commit | 5525368c6640f54cc8080ab5e9f6621a3d3874d8 (patch) | |
tree | adfea0cde0947c60e2b27e9863c26bfaeae274ea /vcl | |
parent | 00705fb7a4fda6b862d78c87e2de60f8f65c5826 (diff) |
KDE5 move screensafer inhibiting code into Qt5
There will presumably be more X11 specific code later to implement some
"fix" for tdf#119202. Moving the screensafer inhibitor is rather
uncontroversial in comparion, so start with it and use it to carry the
matching configure.ac changes.
A little "nightmare" are all the clashing X11 / Qt type undefs, but I
couldn't find a better solution while the inhibitor continues to
include the X11 headers in it's header.
Reviewed-on: https://gerrit.libreoffice.org/74015
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
(cherry picked from commit b5323c72ff7e5bcde34089e49fe98e589dcc5acb)
Change-Id: I55c89c76726d30a890178488484e954207267e89
Reviewed-on: https://gerrit.libreoffice.org/74081
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
(cherry picked from commit 9c37c306158267d942a0a1debc3845db1c923ceb)
Reviewed-on: https://gerrit.libreoffice.org/74192
(cherry picked from commit 3ff31faa48c12c33c9c3fafae8fc35201fa5d614)
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/qt5/Qt5Frame.hxx | 22 | ||||
-rw-r--r-- | vcl/qt5/Qt5Frame.cxx | 26 | ||||
-rw-r--r-- | vcl/unx/kde5/KDE5SalFrame.cxx | 17 | ||||
-rw-r--r-- | vcl/unx/kde5/KDE5SalFrame.hxx | 5 |
4 files changed, 44 insertions, 26 deletions
diff --git a/vcl/inc/qt5/Qt5Frame.hxx b/vcl/inc/qt5/Qt5Frame.hxx index 26d44cb80c8e..58b72e484afe 100644 --- a/vcl/inc/qt5/Qt5Frame.hxx +++ b/vcl/inc/qt5/Qt5Frame.hxx @@ -19,6 +19,8 @@ #pragma once +#include <config_vclplug.h> + #include <salframe.hxx> #include <vclpluginapi.h> @@ -30,6 +32,22 @@ #include <QtCore/QObject> +#if QT5_USING_X11 +#include <unx/screensaverinhibitor.hxx> +// any better way to get rid of the X11 / Qt type clashes? +#undef Bool +#undef CursorShape +#undef Expose +#undef KeyPress +#undef KeyRelease +#undef FocusIn +#undef FocusOut +#undef FontChange +#undef None +#undef Status +#undef Unsorted +#endif + class Qt5DragSource; class Qt5DropTarget; class Qt5Graphics; @@ -86,6 +104,10 @@ class VCLPLUG_QT5_PUBLIC Qt5Frame : public QObject, public SalFrame sal_uInt32 m_nRestoreScreen; QRect m_aRestoreGeometry; +#if QT5_USING_X11 + ScreenSaverInhibitor m_ScreenSaverInhibitor; +#endif + void Center(); Size CalcDefaultSize(); void SetDefaultSize(); diff --git a/vcl/qt5/Qt5Frame.cxx b/vcl/qt5/Qt5Frame.cxx index f5f7e52b2764..2f548fc6eae3 100644 --- a/vcl/qt5/Qt5Frame.cxx +++ b/vcl/qt5/Qt5Frame.cxx @@ -44,6 +44,10 @@ #include <QtWidgets/QMenuBar> #include <QtWidgets/QMainWindow> +#if QT5_USING_X11 +#include <QtX11Extras/QX11Info> +#endif + #include <saldatabasic.hxx> #include <window.h> #include <vcl/layout.hxx> @@ -693,11 +697,25 @@ void Qt5Frame::ShowFullScreen(bool bFullScreen, sal_Int32 nScreen) } } -void Qt5Frame::StartPresentation(bool) +void Qt5Frame::StartPresentation(bool bStart) { - // meh - so there's no Qt platform independent solution - defer to - // KDE5 impl. For everyone else: - // https://forum.qt.io/topic/38504/solved-qdialog-in-fullscreen-disable-os-screensaver +// meh - so there's no Qt platform independent solution +// https://forum.qt.io/topic/38504/solved-qdialog-in-fullscreen-disable-os-screensaver +#if QT5_USING_X11 + boost::optional<unsigned int> aRootWindow; + boost::optional<Display*> aDisplay; + + if (QX11Info::isPlatformX11()) + { + aRootWindow = QX11Info::appRootWindow(); + aDisplay = QX11Info::display(); + } + + m_ScreenSaverInhibitor.inhibit(bStart, "presentation", QX11Info::isPlatformX11(), aRootWindow, + aDisplay); +#else + (void)bStart; +#endif } void Qt5Frame::SetAlwaysOnTop(bool bOnTop) diff --git a/vcl/unx/kde5/KDE5SalFrame.cxx b/vcl/unx/kde5/KDE5SalFrame.cxx index c195b641e119..728ca1461537 100644 --- a/vcl/unx/kde5/KDE5SalFrame.cxx +++ b/vcl/unx/kde5/KDE5SalFrame.cxx @@ -20,11 +20,9 @@ #include <memory> #include <QtGui/QColor> #include <QtWidgets/QStyle> -#include <QtCore/QDebug> #include <QtWidgets/QToolTip> #include <QtWidgets/QApplication> #include <QtWidgets/QMenuBar> -#include <QtX11Extras/QX11Info> #include <KConfig> #include <KConfigGroup> @@ -222,19 +220,4 @@ void KDE5SalFrame::ReleaseGraphics(SalGraphics* pSalGraph) m_bGraphicsInUse = false; } -void KDE5SalFrame::StartPresentation(bool bStart) -{ - // disable screensaver for running preso - boost::optional<unsigned int> aWindow; - boost::optional<Display*> aDisplay; - if (QX11Info::isPlatformX11()) - { - aWindow = QX11Info::appRootWindow(); - aDisplay = QX11Info::display(); - } - - m_ScreenSaverInhibitor.inhibit(bStart, "presentation", QX11Info::isPlatformX11(), aWindow, - aDisplay); -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/unx/kde5/KDE5SalFrame.hxx b/vcl/unx/kde5/KDE5SalFrame.hxx index 441039829846..4b609bdf85a2 100644 --- a/vcl/unx/kde5/KDE5SalFrame.hxx +++ b/vcl/unx/kde5/KDE5SalFrame.hxx @@ -21,10 +21,7 @@ #include <memory> -#undef Status - #include <qt5/Qt5Frame.hxx> -#include <unx/screensaverinhibitor.hxx> #include "KDE5SalGraphics.hxx" @@ -35,7 +32,6 @@ class KDE5SalFrame : public Qt5Frame { private: std::unique_ptr<KDE5SalGraphics> m_pKDE5Graphics; - ScreenSaverInhibitor m_ScreenSaverInhibitor; bool m_bGraphicsInUse; public: @@ -45,7 +41,6 @@ public: virtual void ReleaseGraphics(SalGraphics* pGraphics) override; virtual void UpdateSettings(AllSettings& rSettings) override; - virtual void StartPresentation(bool bStart) override; virtual LanguageType GetInputLanguage() override { return LANGUAGE_SYSTEM; } virtual SalPointerState GetPointerState() override { return SalPointerState(); } virtual KeyIndicatorState GetIndicatorState() override { return KeyIndicatorState(); } |