Review Request 125309: Support multiple X servers in the NETWM classes
Martin Gräßlin
mgraesslin at kde.org
Tue Sep 29 07:10:35 UTC 2015
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125309/#review86093
-----------------------------------------------------------
Ship it!
Ship It!
- Martin Gräßlin
On Sept. 28, 2015, 5:45 p.m., Thomas Lübking wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/125309/
> -----------------------------------------------------------
>
> (Updated Sept. 28, 2015, 5:45 p.m.)
>
>
> Review request for KDE Frameworks and Martin Gräßlin.
>
>
> Repository: kwindowsystem
>
>
> Description
> -------
>
> alteration review #125259 minus the autotests
>
> Significant difference is the creation and handling of the Atom enum.
>
> 1. Net::Utf8 makes no sense
> 2. Net::WmFoo re/adds ambiguity between _NET_WM and WM_, notably on _STATE (there's nothing such as XA_WM_STATE)
> 3. the most "important" grouping is whether it's WM_, NET_WM_, NET_, KDE_NET_, or ... UTF8, I'm not sure why one would add more enums (since this is internal API and the resolved type will always be xcb_atom_t - in worst case we run into errors on comparing the enums
> 4. I wanted to get rid of the explicit counter variable as well as any loose assignment between atom variable/enum and string.
>
> -----
>
> So far on first creation of a NETRootInfo or NETWinInfo a static
> initialization of atoms was performed. This meant that the NET classes
> are only able to interact with the X server the first NET class is
> connected to.
>
> Normally applications don't need to interact with multiple X servers.
> An exception is kwin_wayland which needs a connection to its Xwayland
> server and on the x11 backend to the X server it renders to. So far
> KWin could not use the NET classes for it, causing the rendering window
> to e.g. not have a window title.
>
> This change removes the implicit constraint on one X server by
> creating a hash of connection and atoms. For each created NET class
> we check whether we have already resolved the atoms, if yes we reuse
> otherwise we create them.
>
> For the normal use case of one X11 connection the change should be
> rather minimal. Instead of performing the check whether the static
> atoms have been created, it now is a check whether the atoms for the
> connection have been created. The atoms are kept in a
> QSharedDataPointer ensuring that we don't needless copy the atoms into
> each class.
>
> CHANGELOG: Allow interacting with multiple X servers in the NETWM classes.
>
>
> Diffs
> -----
>
> src/platforms/xcb/atoms_p.h PRE-CREATION
> src/platforms/xcb/netwm.cpp d99a925
> src/platforms/xcb/netwm_p.h 917a86e
>
> Diff: https://git.reviewboard.kde.org/r/125309/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Thomas Lübking
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20150929/7a636d99/attachment-0001.html>
More information about the Kde-frameworks-devel
mailing list