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

Martin Gräßlin mgraesslin at kde.org
Wed Sep 30 05:39:48 UTC 2015


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

(Updated Sept. 30, 2015, 5:39 a.m.)


Status
------

This change has been marked as submitted.


Review request for KDE Frameworks.


Changes
-------

Submitted with commit 4d8394a5c4249e6b743aeb6d38bb2dda18266c42 by Martin Gräßlin to branch master.


Repository: kwindowsystem


Description
-------

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.

[autotests] NETWM tests get a new X server per test

Making use of new feature of allowing multiple X connections:
start X server in init() instead of initTestCase().


Diffs
-----

  autotests/netwininfotestwm.cpp a98e12fd690b0250337c7588e1525af1d0dda38c 
  autotests/netrootinfotestwm.cpp e918873a5281f6ecbcc1769de3dadcf8f6222f6a 
  autotests/netwininfotestclient.cpp a5b10376b943ea914a9521b5c07f9ef13a65d2f1 
  src/platforms/xcb/netwm.cpp d99a925ad2b99d5e60ab1dafcb01400b4a6a4c93 
  src/platforms/xcb/netwm_p.h 917a86ed5b6c83f36e73bbc346360b943d457243 

Diff: https://git.reviewboard.kde.org/r/125259/diff/


Testing
-------

see adjusted unit tests. Also tried it in kwin_wayland


Thanks,

Martin Gräßlin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20150930/50ac7858/attachment.html>


More information about the Kde-frameworks-devel mailing list