Do not add dialog to DialogShadows before it became visible at least once
Calling DialogShadows::self()->addWindow(...) will create the low level window. If this is called before the property windowFlags is evaluated the window flag X11BypassWindowManagerHint has no effect as that one must be present when the window is created through the low level xcb call. This was breaking declarative KWin scripts as KWin's windows need to have the X11BypassWindowManagerHint. REVIEW: 113700
This commit is contained in:
parent
44a27ca40a
commit
9e32090b50
@ -68,7 +68,6 @@ DialogProxy::DialogProxy(QQuickItem *parent)
|
|||||||
m_frameSvgItem = new Plasma::FrameSvgItem(contentItem());
|
m_frameSvgItem = new Plasma::FrameSvgItem(contentItem());
|
||||||
m_frameSvgItem->setImagePath("dialogs/background");
|
m_frameSvgItem->setImagePath("dialogs/background");
|
||||||
//m_frameSvgItem->setImagePath("widgets/background"); // larger borders, for testing those
|
//m_frameSvgItem->setImagePath("widgets/background"); // larger borders, for testing those
|
||||||
DialogShadows::self()->addWindow(this, m_frameSvgItem->enabledBorders());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DialogProxy::~DialogProxy()
|
DialogProxy::~DialogProxy()
|
||||||
@ -447,7 +446,9 @@ void DialogProxy::syncBorders()
|
|||||||
borders = borders & ~Plasma::FrameSvg::BottomBorder;
|
borders = borders & ~Plasma::FrameSvg::BottomBorder;
|
||||||
}
|
}
|
||||||
m_frameSvgItem->setEnabledBorders((Plasma::FrameSvg::EnabledBorder)borders);
|
m_frameSvgItem->setEnabledBorders((Plasma::FrameSvg::EnabledBorder)borders);
|
||||||
DialogShadows::self()->addWindow(this, m_frameSvgItem->enabledBorders());
|
if (isVisible()) {
|
||||||
|
DialogShadows::self()->addWindow(this, m_frameSvgItem->enabledBorders());
|
||||||
|
}
|
||||||
//syncToMainItemSize();
|
//syncToMainItemSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user