Uzbl

Tasklist

FS#230 - IME commits are ignored in GtkHBox

Attached to Project: Uzbl
Opened by Ricardo Wurmus (rekado) - 2010-04-21 02:38:23 PM
Last edited by Ben Boeckel (mathstuf) - 2013-07-02 05:23:17 AM
Task Type Bug Report
Category uzbl-core
Status Unconfirmed
Assigned To No-one
Operating System Linux
Severity High
Priority High
Reported Version Development
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

I've been trying to add support for input methods like SCIM, in order to allow inputting of unicode characters. A usecase for this is to implement a search:
- user presses hotkey to enter search mode
- user enables input method
- user composes unicode string and commits the string
- the unicode string is used as the argument for the search

The GtkHBox which is the widget used for the mainbar is not capable of accepting IME commits other than those coming from the Gtk-internal unicode composing method (Ctrl+Shift+u+number). In order to make unicode inputs possible, another Gtk widget (like GtkEntry) seems to be necessary.
This task depends upon

Comment by Ben Boeckel (mathstuf) - 2011-04-14 03:53:29 AM
I assume this is still an issue. The event-manager also eats compose and dead keys, so even that route is blocked.
Comment by Ricardo Wurmus (rekado) - 2011-04-14 04:20:52 AM
The jumanji browser (https://pwmt.org/projects/jumanji/) apparently uses a different Gtk widget for its command line. Composing multibyte characters (with ibus [tested] or SCIM [not tested]) works there. I don't know if it is possible to implement this with GtkHBox.
Comment by Ben Boeckel (mathstuf) - 2011-04-14 12:12:46 PM
Well, we also have issues that the HBox is not what ultimately receives the input. The event manager has a keycmd.py plugin which does this. I wonder if GTK supports putting an IM method on any widget. If not, I'm not sure how best to approach fixing this.
Comment by David Keijser (keis) - 2011-04-23 07:55:16 PM
Gtk has something called a im context we can use. there is even a todo in events.c about this.

Loading...