The keysyms create a lot of potential namespace conflicts for
C, and are especially problematic for introspection, where we take
constants into the namespace, so GDK_Display conflicts with GdkDisplay.
For C application compatiblity, add gdkkeysyms-compat.h which uses
the old names.
Just one user in GTK+ continues to use gdkkeysyms-compat.h, which is
the gtkimcontextsimple.c, since porting that requires porting more
custom Perl code.
Either g_type_register_static_simple (used by G_DEFINE_TYPE_EXTENDED)
and G_IMPLEMENT_INTERFACE use automatic variables for GTypeInfo and
GInterfaceInfo structs, while tutorials and source code often use
static variables. This commit consistently adopts the former method.
https://bugzilla.gnome.org/show_bug.cgi?id=600158
* modules/input/gtkimcontextmultipress.[ch]: Remove the namespace
prefix from functions defined locally only. Clean up the code and
change indentation to match the GTK+ coding style.
(_GtkImContextMultipress::key_sequences): Replace array of pointers
by GHashTable. Adapt the implementation accordingly.
(passthrough_enabled_for_window): Remove. The passthrough hack is
no longer necessary thanks to the recently introduced "im-module"
property of GtkEntry and GtkTextView.
(load_config): Rework to implement an improved configuration file
format. Just fetch all keys of the group instead of expecting the
keys to be named a certain way. This also allows interpreting the
config key itself as the GDK key name to bind the character sequence
to, thereby making it independent of the sequence itself.
* modules/input/im-multipress.conf: New example configuration using
the new syntax. The example sequences are now bound to the numeric
keypad and imitate the behavior of a standard mobile phone.
svn path=/trunk/; revision=22125
* modules/input/gtkimcontextmultipress.[ch]: Clean up the code
a bit to follow the GTK+ coding style more closely. Fix the code
to emit "preedit-start" and "preedit-end", too, rather than only
"preedit-changed".
(GTK_IM_CONTEXT_MULTIPRESS*): Rename incorrectly spelled macros
gtk_im_context_multipress*. Shouldn't break API or ABI as it's
only used internally.
* modules/input/immultipress.c: More cleanup,
* modules/input/README.multipress: ditto.
svn path=/trunk/; revision=21864
* modules/input/gtkimcontextmultipress.c (vfunc_filter_keypress):
Change input method behavior to act on key presses instead of
key releases, matching normal text input behavior. This change
alleviates the need to take special action for control keys not
handled by the input module itself.
svn path=/trunk/; revision=18169