Review Request 125309: Support multiple X servers in the NETWM classes

Thomas Lübking thomas.luebking at gmail.com
Mon Sep 28 15:30:24 UTC 2015



> On Sept. 28, 2015, 12:56 nachm., Martin Gräßlin wrote:
> > src/platforms/xcb/netwm_p.h, line 39
> > <https://git.reviewboard.kde.org/r/125309/diff/1/?file=404731#file404731line39>
> >
> >     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?
> 
> Thomas Lübking wrote:
>     "KwsAtom"?
> 
> Martin Gräßlin wrote:
>     sounds good, better description than NetAtom

(it's not always a _NET_WM atom)


- Thomas


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125309/#review86036
-----------------------------------------------------------


On Sept. 19, 2015, 1:22 nachm., 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, 1:22 nachm.)
> 
> 
> 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/951b4ee4/attachment-0001.html>


More information about the Kde-frameworks-devel mailing list