Merge lp:~banw/compiz/compiz.a11y-shotcuts into lp:compiz
| Status: | Needs review |
|---|---|
| Proposed branch: | lp:~banw/compiz/compiz.a11y-shotcuts |
| Merge into: | lp:compiz |
| Diff against target: |
1045 lines (+586/-41) 12 files modified
include/core/action.h (+3/-0) include/core/screen.h (+1/-0) plugins/ezoom/src/ezoom.cpp (+6/-0) plugins/neg/src/neg.cpp (+5/-0) plugins/showmouse/src/showmouse.cpp (+6/-0) src/action.cpp (+37/-21) src/event.cpp (+328/-15) src/eventmanagement.h (+2/-0) src/privateaction.h (+2/-0) src/privatescreen.h (+11/-0) src/screen.cpp (+136/-5) src/window.cpp (+49/-0) |
| To merge this branch: | bzr merge lp:~banw/compiz/compiz.a11y-shotcuts |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Andrea Azzarone | 2017-03-16 | Pending | |
|
Review via email:
|
|||
Description of the Change
This is an attempt at solving https:/
The current state is still WIP, but I'd like general opinion, and specific comments on how to fix some parts.
This uses XI2 Raw events to get mouse and keyboard events during active grabs (menus, etc.). Actions need be configured to use those, so it's opt-in.
I initially tried XI2 "normal" events, which include all possibly useful context, but simply listening to those prevent Core events from being dispatched on the window, so it would require using XI2 *only*, which sounds like a large change -- and even then, grabs might affect these too (on Master Devices?), I'm not 100% sure of how this works.
See the FIXMEs and alike in the code for the area that need attention and possibly a fix.
| Samuel thibault (samuel-thibault) wrote : | # |
| Samuel thibault (samuel-thibault) wrote : | # |
Checking things again, it seems XI2 normal events are not affected by grabs, or
at least the ones I have tried: inside gtk3 menus and in screen saver
I can confirm that listening to XI2 normal events prevents core events from
being delivered, but that's only for compiz for the windows not created by
compiz, so it's not a problem for other applications. For compiz itself, I don't
think it is a problem that core events are not delivered any more: once XI2 is
enabled, I don't see a reason for doing anything with the core events (on the
contrary, that would lead to duplicates), so their processing could just be
disabled in that case. Was it only needed so as to detect whether grabbing was
enabled or not? That can be detected more easily with FocusIn/Out with mode
NotifyGrab/Ungrab.
I'll try to rework the solution with XI2 normal events only.
| Samuel thibault (samuel-thibault) wrote : | # |
I have finished reworking it, pushed to https:/
Unmerged revisions
- 4109. By Colomban Wendling on 2017-03-16
-
showmouse: Allow actions to be triggered during grabs
- 4108. By Colomban Wendling on 2017-03-16
-
neg: Allow actions to be triggered during grabs
- 4107. By Colomban Wendling on 2017-03-16
-
ezoom: Allow actions to be triggered during grabs
- 4106. By Colomban Wendling on 2017-03-16
-
Initial WIP working attempt at actions ignoring active grabs
This is useful for plugins that should still work e.g. inside menus, or
in the unlock screen. Typically, this includes accessibility-related
plugins.


Yes, normal XI2 event are very probably affected by grabs, and so AIUI raw events are the only way.
I have commented along the patch. Overall the approach seems sound to me.