[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    Re: KDE/kdelibs/kdeui/kernel
From:       Michael Leupold <lemma () confuego ! org>
Date:       2010-08-07 10:03:00
Message-ID: 201008071203.00809.lemma () confuego ! org
[Download RAW message or body]

Hi there,

Am Samstag, 7. August 2010, 11:54:40 schrieb Christoph Feck:
> On Saturday 07 August 2010 11:44:12 Michael Leupold wrote:
> > Revert r1156762. KApplication has to keep its event filtering code.
> > Replacing it with the KSystemEventFilter methods unfortunately disrupts
> > how KGlobalAccel works, including KWin messup.
> 
> Oh :( Since KWin could be fixed by a different patch (see bug 246545), I
> would really like to get some more "why it broke" answers, because I think
> the idea of the patch should not be silently discarded.
> 
> Are there any other regressions besides the Alt+Tab bug? Does KGlobalAccel
> maybe have a different bug that only was showing now?
> 
> Christoph Feck (kdepepo)
> 
> References:
> https://bugs.kde.org/show_bug.cgi?id=246545

Unfortunately I didn't have too much time to look into it but we had a short 
discussion about it on IRC (mgraesslin, mjansen and me).

As I understand it the main problem is that KGlobalAccel snatches the shortcut 
because it's registered as a global shortcut. However KWin needs to treat it 
in a special way due to the tabbox staying open while alt is pressed. Now the 
main problem in that specific case seems to be that the order in which the 
various code pieces/applications get the events is reversed and thus KWin 
doesn't receive the event (as I said mostly guessing, not too much debugging 
due to lack of time).

There might be a solution for KGlobalAccel if you mark actions as "let the 
user configure but don't handle". I'm not sure if that's feasible and of 
course it means that all code registering such actions has to be adapted. I'm 
not sure if that's feasible.

As mjansen noted, the main problem is that using KSystemEventFilter instead of 
the old way makes applications which register such an event filter receive 
more events in different codepaths (according to qeventdispatcher_x11.cpp 
they'll get them earlier).

Unfortunately reverting was the only option right now to make KWin trunk work 
properly again.

Regards,
Michael
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic