[KWin - Dock Question] - How to hide a window from PresentWindows effect?
Martin Graesslin
mgraesslin at kde.org
Thu Dec 8 19:09:57 UTC 2016
On Thursday, December 8, 2016 8:53:00 PM CET you wrote:
> > The problem here is clearly that your window is still accepting focus. If
> > it doesn't accept focus KWin will skip it. So verify with xprop and
> > xwininfo that the window is really excluding focus.
>
> Where do I look Martin? I am sending my outputs...
> How do I really exclude focus except setting?
Checking from KWin code: a window is included in window switching if it is
a normal or dialog window and wantsInput. WantsInput is a check for whether
the window supports the TakeFocusProtocol.
In your case: it's a normal window (_NET_WM_WINDOW_TYPE(ATOM) =
_KDE_NET_WM_WINDOW_TYPE_OVERRIDE, _NET_WM_WINDOW_TYPE_NORMAL)
and it supports the take focus protocol (WM_PROTOCOLS(ATOM): protocols
WM_DELETE_WINDOW, WM_TAKE_FOCUS)
Thus KWin includes it in the switcher.
In the case of the XCB Qt plugin the ordering of the calls is important. You
need to set such flags before the window is created. Calls to KWindowSystem can
destroy it again.
If you want to check how it's done: look at the Plasma::Dialog class which
supports a no input mode for the OSD.
>
> > m_dockWindow->setFlags(Qt::WindowDoesNotAcceptFocus |
>
> Qt::FramelessWindowHint);
>
> Is there a way if I set my dock with:
> > KWindowSystem::setType(m_dockWindow->winId(), NET::Dock);
>
> to be able to lower it afterwards?
What do you mean with "lower it"?
Cheers
Martin
>
>
> Thanks a lot!!!!
>
> regards,
> michail
>
>
> ----------
>
> xwininfo: Window id: 0x6a00030 "Plasma"
>
> Absolute upper-left X: 0
> Absolute upper-left Y: 901
> Relative upper-left X: 0
> Relative upper-left Y: 0
> Width: 1680
> Height: 149
> Depth: 32
> Visual: 0x72
> Visual Class: TrueColor
> Border width: 0
> Class: InputOutput
> Colormap: 0x6a0002f (not installed)
> Bit Gravity State: NorthWestGravity
> Window Gravity State: NorthWestGravity
> Backing Store State: NotUseful
> Save Under State: no
> Map State: IsViewable
> Override Redirect State: no
> Corners: +0+901 -0+901 -0-0 +0-0
> -geometry 1680x149+0-0
>
> -----------------------------------
> xprop:
> _KDE_NET_WM_ACTIVITIES(STRING) = "00000000-0000-0000-0000-000000000000"
> _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE,
> _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE,
> _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ,
> _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP,
> _NET_WM_ACTION_CLOSE
> WM_STATE(WM_STATE):
> window state: Normal
> icon window: 0x0
> _NET_WM_USER_TIME(CARDINAL) = 56530163
> _NET_WM_STATE(ATOM) = _NET_WM_STATE_ABOVE, _NET_WM_STATE_STAYS_ON_TOP,
> _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_SKIP_PAGER
> _NET_WM_DESKTOP(CARDINAL) = 4294967295
> _NET_WM_ICON(CARDINAL) = Icon (16 x 16):
>
> XdndAware(ATOM) = BITMAP
> WM_NAME(STRING) =
> _NET_WM_NAME(UTF8_STRING) = "Plasma"
> _KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 55504946
> _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x1, 0x0, 0x0, 0x0
> _NET_WM_WINDOW_TYPE(ATOM) = _KDE_NET_WM_WINDOW_TYPE_OVERRIDE,
> _NET_WM_WINDOW_TYPE_NORMAL
> _XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1
> WM_CLIENT_LEADER(WINDOW): window id # 0x6a0000d
> WM_HINTS(WM_HINTS):
> Client accepts input or input focus: False
> Initial state is Normal State.
> _NET_WM_PID(CARDINAL) = 28689
> _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 111149105
> WM_CLASS(STRING) = "plasmashell", "plasmashell"
> WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS,
> _NET_WM_PING, _NET_WM_SYNC_REQUEST
> WM_NORMAL_HINTS(WM_SIZE_HINTS):
> user specified location: 0, 901
> user specified size: 1680 by 149
> window gravity: Static
>
> --------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20161208/09570c58/attachment.sig>
More information about the Plasma-devel
mailing list