Daniel Stone пишет: >>> Well, I considered to set up another filter via XkbFilterRec and >>> _XkbApplyFilters() but xkbi->filters is a vector. If one need to cancel >>> the delay switching then the vector have to be gone all round to >>> deactivate the filter. I think another flag in xkbi->state is more natural. >> That's the wonderful thing about xkbActions.c. The filter system has to >> be rewritten, too - it needs per-level granularity. Maybe there can be a >> more general approach towards canceling actions when doing that. >> >> But maybe you would want to put the focus on switch-group-on-release >> first. If want to try it without Press/Release knowledge inside the >> handler you might want to try to skip the first event. If that works >> together with an option to select between when to trigger the switch >> (press/release), that would be an improvement already. > > Actually, it's really not that bad. In the group-switch handler, you > could just set a flag for 'maybe switch groups when all keys are up'. > As the handler gets called for all key events, you could then just clear > the 'maybe switch' flag when another key gets pressed. >
Ok, your variant is better, but still not good one; as far as I understand "just clear the 'maybe switch' flag" still needs to go through all xkbi->filters vector to find the one with that flag. So, if I get some useful patches for the issue I attach them to the bug http://bugs.freedesktop.org/show_bug.cgi?id=865, ok? Ilya _______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
