It could be fixed by the below modifiation.

However, I'm not sure about the design of  (self->_priv->statusFlags & 
ENGINE_STATUS_NEED_COMMIT).
It still need checking.

    protected gboolean check_commit(self){
        gint isCommit=chewing_commit_Check(self->context);
        gint committed=FALSE;
        G_DEBUG_MSG(2,"[I2] check_commit() %s statusFlags=%x", (isCommit) ? 
"TRUE": "FALSE", self->_priv->statusFlags);
        if (isCommit && (self->_priv->statusFlags & ENGINE_STATUS_NEED_COMMIT)){
        //if (isCommit){
            self_commit(self);
            committed =TRUE;
        }

        if (chewing_buffer_Check(self->context)){
            /* Buffer is empty, safe to clear the ENGINE_STATUS_NEED_COMMIT */
            ibus_chewing_engine_clear_status_flag(self, 
ENGINE_STATUS_NEED_COMMIT);
        }
        return committed;
    }

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1014456

Title:
  ibus-chewing deletes characters if too many of them are entered

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ibus-chewing/+bug/1014456/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to