mirror of
https://github.com/KDE/latte-dock.git
synced 2025-01-10 21:18:19 +03:00
update infoview to be ignored properly
This commit is contained in:
parent
70359602b8
commit
6188888840
@ -49,6 +49,10 @@ InfoView::InfoView(Latte::Corona *corona, QString message, QScreen *screen, QWin
|
|||||||
m_message(message),
|
m_message(message),
|
||||||
m_screen(screen)
|
m_screen(screen)
|
||||||
{
|
{
|
||||||
|
m_id = QString::number(qrand() % 1000);
|
||||||
|
|
||||||
|
setTitle(validTitle());
|
||||||
|
|
||||||
setupWaylandIntegration();
|
setupWaylandIntegration();
|
||||||
|
|
||||||
setResizeMode(QQuickView::SizeViewToRootObject);
|
setResizeMode(QQuickView::SizeViewToRootObject);
|
||||||
@ -60,6 +64,13 @@ InfoView::InfoView(Latte::Corona *corona, QString message, QScreen *screen, QWin
|
|||||||
setScreen(screen);
|
setScreen(screen);
|
||||||
setFlags(wFlags());
|
setFlags(wFlags());
|
||||||
|
|
||||||
|
if (KWindowSystem::isPlatformX11()) {
|
||||||
|
m_trackedWindowId = winId();
|
||||||
|
m_corona->wm()->registerIgnoredWindow(m_trackedWindowId);
|
||||||
|
} else {
|
||||||
|
connect(m_corona->wm(), &WindowSystem::AbstractWindowInterface::latteWindowAdded, this, &InfoView::updateWaylandId);
|
||||||
|
}
|
||||||
|
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,6 +108,11 @@ void InfoView::init()
|
|||||||
syncGeometry();
|
syncGeometry();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString InfoView::validTitle() const
|
||||||
|
{
|
||||||
|
return "#layoutinfowindow#" + m_id;
|
||||||
|
}
|
||||||
|
|
||||||
Plasma::FrameSvg::EnabledBorders InfoView::enabledBorders() const
|
Plasma::FrameSvg::EnabledBorders InfoView::enabledBorders() const
|
||||||
{
|
{
|
||||||
return m_borders;
|
return m_borders;
|
||||||
@ -143,6 +159,20 @@ void InfoView::showEvent(QShowEvent *ev)
|
|||||||
PanelShadows::self()->setEnabledBorders(this, m_borders);
|
PanelShadows::self()->setEnabledBorders(this, m_borders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void InfoView::updateWaylandId()
|
||||||
|
{
|
||||||
|
Latte::WindowSystem::WindowId newId = m_corona->wm()->winIdFor("latte-dock", validTitle());
|
||||||
|
|
||||||
|
if (m_trackedWindowId != newId) {
|
||||||
|
if (!m_trackedWindowId.isNull()) {
|
||||||
|
m_corona->wm()->unregisterIgnoredWindow(m_trackedWindowId);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_trackedWindowId = newId;
|
||||||
|
m_corona->wm()->registerIgnoredWindow(m_trackedWindowId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void InfoView::setupWaylandIntegration()
|
void InfoView::setupWaylandIntegration()
|
||||||
{
|
{
|
||||||
if (m_shellSurface) {
|
if (m_shellSurface) {
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
// local
|
// local
|
||||||
#include "lattecorona.h"
|
#include "lattecorona.h"
|
||||||
|
#include "wm/windowinfowrap.h"
|
||||||
|
|
||||||
// Qt
|
// Qt
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
@ -47,6 +48,8 @@ public:
|
|||||||
InfoView(Latte::Corona *corona, QString message, QScreen *screen = qGuiApp->primaryScreen(), QWindow *parent = nullptr);
|
InfoView(Latte::Corona *corona, QString message, QScreen *screen = qGuiApp->primaryScreen(), QWindow *parent = nullptr);
|
||||||
~InfoView() override;
|
~InfoView() override;
|
||||||
|
|
||||||
|
QString validTitle() const;
|
||||||
|
|
||||||
Plasma::FrameSvg::EnabledBorders enabledBorders() const;
|
Plasma::FrameSvg::EnabledBorders enabledBorders() const;
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
@ -64,16 +67,20 @@ protected:
|
|||||||
void showEvent(QShowEvent *ev) override;
|
void showEvent(QShowEvent *ev) override;
|
||||||
bool event(QEvent *e) override;
|
bool event(QEvent *e) override;
|
||||||
|
|
||||||
private:
|
private slots:
|
||||||
void setupWaylandIntegration();
|
void setupWaylandIntegration();
|
||||||
|
void updateWaylandId();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
QString m_id;
|
||||||
|
|
||||||
QString m_message;
|
QString m_message;
|
||||||
|
|
||||||
QScreen *m_screen{nullptr};
|
QScreen *m_screen{nullptr};
|
||||||
|
|
||||||
Plasma::FrameSvg::EnabledBorders m_borders{Plasma::FrameSvg::TopBorder | Plasma::FrameSvg::BottomBorder};
|
Plasma::FrameSvg::EnabledBorders m_borders{Plasma::FrameSvg::TopBorder | Plasma::FrameSvg::BottomBorder};
|
||||||
|
|
||||||
|
Latte::WindowSystem::WindowId m_trackedWindowId;
|
||||||
KWayland::Client::PlasmaShellSurface *m_shellSurface{nullptr};
|
KWayland::Client::PlasmaShellSurface *m_shellSurface{nullptr};
|
||||||
|
|
||||||
Latte::Corona *m_corona{nullptr};
|
Latte::Corona *m_corona{nullptr};
|
||||||
|
Loading…
Reference in New Issue
Block a user