Review Request 125309: Support multiple X servers in the NETWM classes
Martin Gräßlin
mgraesslin at kde.org
Mon Sep 28 12:56:33 UTC 2015
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125309/#review86036
-----------------------------------------------------------
hard cost. I now understand why I didn't get what you meant in the other review request ;-) Yeah from code side it looks nicer, though the enum is really hard to get IMHO.
src/platforms/xcb/atoms_p.h (line 1)
<https://git.reviewboard.kde.org/r/125309/#comment59357>
even if questionable whether there is any copyright on the atom listing: I suggest to add the copyright header.
src/platforms/xcb/atoms_p.h (lines 4 - 20)
<https://git.reviewboard.kde.org/r/125309/#comment59358>
uff, I just needed a quarter of an hour to understand how that works. Could you please add a comment section, to explain what it does.
src/platforms/xcb/netwm.cpp (lines 299 - 300)
<https://git.reviewboard.kde.org/r/125309/#comment59359>
shouldn't we undef the ENUM_CREATE_CHAR_ARRAY again?
src/platforms/xcb/netwm_p.h (line 39)
<https://git.reviewboard.kde.org/r/125309/#comment59360>
I don't like the type name "Atom" as that's also an XLib type. As the actual name is hardly used we could get it to something more precise, maybe NetAtom?
- Martin Gräßlin
On Sept. 19, 2015, 3:22 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. 19, 2015, 3:22 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/netwm_p.h 917a86e
> src/platforms/xcb/atoms_p.h PRE-CREATION
> src/platforms/xcb/netwm.cpp d99a925
>
> 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/20150928/8f2e729d/attachment-0001.html>
More information about the Kde-frameworks-devel
mailing list