Comment #2 on issue 1324 by [email protected]: hotkey press is sometimes not consumed
http://code.google.com/p/ibus/issues/detail?id=1324

I think this happens because bus_input_context_enable sometimes flips the context->enabled flag asynchronously e.g. when context->engine is not ready. As a result, the bus_ibus_impl_filter_keyboard_shortcuts could return FALSE (i.e. not consumed).

gboolean
bus_ibus_impl_filter_keyboard_shortcuts (BusIBusImpl     *ibus,
                                         BusInputContext *context,
                                         guint           keyval,
                                         guint           modifiers,
                                         guint           prev_keyval,
                                         guint           prev_modifiers)
{
...
        gboolean enabled = bus_input_context_is_enabled (context);
        if (enabled) {
            bus_input_context_disable (context);
        }
        else {
            bus_input_context_enable (context);
        }
        return (enabled != bus_input_context_is_enabled (context));

ibus-1.3.9 does not have the problem because most operations are done synchronously in the old version.


--
You received this message because you are subscribed to the Google
Groups "ibus-devel" group.
iBus project web page: http://code.google.com/p/ibus/
iBus dev group: http://groups.google.com/group/ibus-devel?hl=en

回复