Merge branch 'Plasma/5.14'

This commit is contained in:
Vlad Zagorodniy 2018-10-11 17:52:47 +03:00
commit 8971af19e3
3 changed files with 13 additions and 1 deletions

View file

@ -372,6 +372,12 @@ void DimInactiveEffect::windowClosed(EffectWindow *w)
void DimInactiveEffect::windowDeleted(EffectWindow *w) void DimInactiveEffect::windowDeleted(EffectWindow *w)
{ {
m_forceDim.remove(w); m_forceDim.remove(w);
// FIXME: Sometimes we can miss the window close signal because KWin
// can activate a window that is not ready for painting and the window
// gets destroyed immediately. So, we have to remove active transitions
// for that window here, otherwise we'll crash in postPaintScreen.
m_transitions.remove(w);
} }
void DimInactiveEffect::activeFullScreenEffectChanged() void DimInactiveEffect::activeFullScreenEffectChanged()

View file

@ -205,11 +205,17 @@ QPlatformOpenGLContext *Integration::createPlatformOpenGLContext(QOpenGLContext
void Integration::initScreens() void Integration::initScreens()
{ {
QVector<Screen*> newScreens; QVector<Screen*> newScreens;
newScreens.reserve(qMax(screens()->count(), 1));
for (int i = 0; i < screens()->count(); i++) { for (int i = 0; i < screens()->count(); i++) {
auto screen = new Screen(i); auto screen = new Screen(i);
screenAdded(screen); screenAdded(screen);
newScreens << screen; newScreens << screen;
} }
if (newScreens.isEmpty()) {
auto dummyScreen = new Screen(-1);
screenAdded(dummyScreen);
newScreens << dummyScreen;
}
while (!m_screens.isEmpty()) { while (!m_screens.isEmpty()) {
destroyScreen(m_screens.takeLast()); destroyScreen(m_screens.takeLast());
} }

View file

@ -178,7 +178,7 @@ void UserActionsMenu::show(const QRect &pos, const QWeakPointer<AbstractClient>
} }
} }
if (!m_client.isNull()) if (!m_client.isNull())
m_client.data()->blockActivityUpdates(true); m_client.data()->blockActivityUpdates(false);
} }
} }