deepin-设置自己窗口为最高层级
- 一、概述
- 1. kwin 中的窗口层级定义
- 2. dde-session-ui 中的消息弹窗
- 3. k-win的调试器
一、概述
窗口协议:wayland
在wayland的窗口下,有时候使用qt开发接口并不能满足我们的要求,就需要看窗管的写法。
setWindowFlags(Qt::WindowStaysOnTopHint | Qt::Tool | Qt::X11BypassWindowManagerHint | Qt::WindowDoesNotAcceptFocus);
1. kwin 中的窗口层级定义
https://github.com/add-uos/deepin-kwin/blob/d16bcb0729550d94fece60637a5358b60f25eae9/src/utils/common.h#L49
值越大这个层级越高
2. dde-session-ui 中的消息弹窗
设置位置
https://github.com/linuxdeepin/dde-session-ui/blob/release/5.4.4/dde-osd/notification/bubble.cpp#L215
windowHandle()->setProperty("_d_dwayland_window-type", "override");
其实只需要设置上面那部分就行了
3. k-win的调试器
使用 d-feet 的位置如下
在 窗口调试器中就能查看窗口的层级了