Review Request 114396: Fix KWindowSystem_X11 changeWindow signal emitting

Martin Gräßlin mgraesslin at kde.org
Wed Dec 11 06:57:02 UTC 2013


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

Review request for KDE Frameworks and Plasma.


Repository: kdelibs


Description
-------

I don't mind whether that goes in before or after the split. Just creating the review request as I have the patch ready, but it's no problem to recreate the patches after the split.

commit d6756e252fb05bfc88041ce1d2896be66097de26
Author: Martin Gräßlin <mgraesslin at kde.org>
Date:   Wed Dec 11 07:36:29 2013 +0100

    Properly set the event mask on the windows watched by KWindowSystem
    
    KWindowSystem tried to only change the event mask for windows not
    belonging to the same process by using QWidget::find to test whether
    the window belongs to the same process or not. This does no longer
    work in a QWindow world. If the window belongs to a Q(Quick)Window
    QWidget::find returns a nullptr just like for windows of another
    process. This caused the XSelectWindow to overwrite the event mask
    used by Qt and thus for example mouse events were no longer recieved
    at all.
    
    With this change the event mask is updated for all windows, no matter
    whether it's an own or a foreign window. But the event mask currently
    installed on the window is preserved, so Qt still gets the events it
    expects.

commit 87fda66987516c6fa04582c75f50af184d641a26
Author: Martin Gräßlin <mgraesslin at kde.org>
Date:   Wed Dec 11 07:31:13 2013 +0100

    Adjust KWindowSystem_X11 to the changes in connectNotify
    
    The functionality was rather broken, the conditions on the arguments
    to pass into the init() method were never evaluated. This meant that
    the windowChanged signal never got emitted.


Diffs
-----

  tier1/kwindowsystem/src/kwindowsystem_x11.cpp f152929 

Diff: http://git.reviewboard.kde.org/r/114396/diff/


Testing
-------

Tested with Plasma2's taskmanager. Without the connectNotify adjustment the taskmanager does not update on window changes. With the connectNotify patch but without the select input patch it properly updates but all of plasma is broken because it doesn't get mouse events. With both patches everything works as expected \o/ This was a fun investigation...


Thanks,

Martin Gräßlin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20131211/6af18a1a/attachment.html>


More information about the Plasma-devel mailing list