From 544e5a7fb876c608bacbfe5c95024a3c984f8faf Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Thu, 10 Mar 2016 12:46:31 +0000 Subject: [PATCH 1/2] SVN_SILENT made messages (.desktop file) --- effects/morphingpopups/package/metadata.desktop | 2 ++ 1 file changed, 2 insertions(+) diff --git a/effects/morphingpopups/package/metadata.desktop b/effects/morphingpopups/package/metadata.desktop index 517cc08a72..190070c9fc 100644 --- a/effects/morphingpopups/package/metadata.desktop +++ b/effects/morphingpopups/package/metadata.desktop @@ -2,6 +2,7 @@ Comment=Cross fade animation when Tooltips or Notifications change their geometry Comment[ca]=Animació d'esvaïment creuat quan els consells d'eines o les notificacions canvien la seva geometria Comment[ca@valencia]=Animació d'esvaïment creuat quan els consells d'eines o les notificacions canvien la seua geometria +Comment[da]=Crossfade-animation når værktøjstip og bekendtgørelser skifter geometry Comment[en_GB]=Cross fade animation when Tooltips or Notifications change their geometry Comment[es]=Animación de transición suave cuando las ayudas emergentes o las notificaciones cambian su geometría Comment[it]=Animazione in dissolvenza quando i suggerimenti e le notifiche cambiano la loro geometria @@ -24,6 +25,7 @@ Icon=preferences-system-windows-effect-morphingpopups Name=Morphing popups Name[ca]=Missatges emergents en metamorfosi Name[ca@valencia]=Missatges emergents en metamorfosi +Name[da]=Sammensmeltende pop-op'er Name[en_GB]=Morphing popups Name[es]=Transformación de ventanas emergentes Name[it]=Finestre a comparsa che si trasformano From 51ee514227d3eef16bbb38f2c6ca494ab4bb3e09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Thu, 10 Mar 2016 17:02:06 +0100 Subject: [PATCH 2/2] [plugins/qpa] Add a dummy screen on startup Qt has problems initializing everything correctly if there is no screen at startup. E.g. the breeze widget style tries to initialize some pixmaps and this fails. In worst case hitting asserts in Qt (debug build). This change creates a dummy screen which gets destroyed as soon as there is a real screen. Reviewed-By: notmart and sebas --- plugins/qpa/integration.cpp | 6 ++++++ plugins/qpa/integration.h | 3 +++ plugins/qpa/screen.cpp | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/qpa/integration.cpp b/plugins/qpa/integration.cpp index 9cb4482959..a450b9c32b 100644 --- a/plugins/qpa/integration.cpp +++ b/plugins/qpa/integration.cpp @@ -88,6 +88,8 @@ void Integration::initialize() // TODO: start initialize Wayland once the internal Wayland connection is created connect(kwinApp(), &Application::screensCreated, this, &Integration::initializeWayland, Qt::QueuedConnection); QPlatformIntegration::initialize(); + m_dummyScreen = new Screen(nullptr); + screenAdded(m_dummyScreen); } QAbstractEventDispatcher *Integration::createEventDispatcher() const @@ -178,6 +180,10 @@ void Integration::initializeWayland() void Integration::createWaylandOutput(quint32 name, quint32 version) { + if (m_dummyScreen) { + destroyScreen(m_dummyScreen); + m_dummyScreen = nullptr; + } using namespace KWayland::Client; auto o = m_registry->createOutput(name, version, this); connect(o, &Output::changed, this, diff --git a/plugins/qpa/integration.h b/plugins/qpa/integration.h index 6bf6b22dca..84b5e60daa 100644 --- a/plugins/qpa/integration.h +++ b/plugins/qpa/integration.h @@ -40,6 +40,8 @@ namespace KWin namespace QPA { +class Screen; + class Integration : public QObject, public QPlatformIntegration { Q_OBJECT @@ -74,6 +76,7 @@ private: KWayland::Client::Compositor *m_compositor = nullptr; KWayland::Client::Shell *m_shell = nullptr; EGLDisplay m_eglDisplay = EGL_NO_DISPLAY; + Screen *m_dummyScreen = nullptr; }; } diff --git a/plugins/qpa/screen.cpp b/plugins/qpa/screen.cpp index d083ed0296..f73a1b811e 100644 --- a/plugins/qpa/screen.cpp +++ b/plugins/qpa/screen.cpp @@ -49,12 +49,12 @@ QImage::Format Screen::format() const QRect Screen::geometry() const { - return m_output->geometry(); + return m_output ? m_output->geometry() : QRect(0, 0, 1, 1); } QSizeF Screen::physicalSize() const { - return m_output->physicalSize(); + return m_output ? m_output->physicalSize() : QPlatformScreen::physicalSize(); } QPlatformCursor *Screen::cursor() const