(trunk-1611) Fix composed characters when broadcast is turned on to appear in all receivers now (LP:#1463704)

This commit is contained in:
Stephen Boddy 2015-08-10 22:51:56 +02:00
parent 73c2a17ca0
commit e723f0df25
2 changed files with 12 additions and 0 deletions

View File

@ -49,6 +49,11 @@ from terminatorlib.util import dbg, err
from terminatorlib.layoutlauncher import LayoutLauncher from terminatorlib.layoutlauncher import LayoutLauncher
if __name__ == '__main__': if __name__ == '__main__':
# Workaround for IBus intefering with broadcast when using dead keys
# Environment also needs IBUS_DISABLE_SNOOPER=1, or double chars appear
# in the receivers.
os.environ['IBUS_DISABLE_SNOOPER']='1'
dbus_service = None dbus_service = None
dbg ("%s starting up, version %s" % (APP_NAME, APP_VERSION)) dbg ("%s starting up, version %s" % (APP_NAME, APP_VERSION))

View File

@ -836,6 +836,13 @@ class Terminal(Gtk.VBox):
dbg('Terminal::on_keypress: Called on %s with no event' % widget) dbg('Terminal::on_keypress: Called on %s with no event' % widget)
return(False) return(False)
# Workaround for IBus intefering with broadcast when using dead keys
# Environment also needs IBUS_DISABLE_SNOOPER=1, or double chars appear
# in the receivers.
if (event.state | Gdk.ModifierType.MODIFIER_MASK ) ^ Gdk.ModifierType.MODIFIER_MASK != 0:
dbg('Terminal::on_keypress: Ingore processed event with event.state %d' % event.state)
return(False)
# FIXME: Does keybindings really want to live in Terminator()? # FIXME: Does keybindings really want to live in Terminator()?
mapping = self.terminator.keybindings.lookup(event) mapping = self.terminator.keybindings.lookup(event)