gtk2/gdk
Руслан Ижбулатов 66c0336ead GDK W32: Support switching IM contexts at runtime
This leverages the normal input context switching mechanism in GTK
by making it think that the gtk-im-module setting changed.
The backend returns gtk-im-module value as "ime" if W32
IME API says that an IME is in use. Otherwise it returns
and empty string - this still triggers an input context
switching code, which, not being able to create the desired context
(which is and empty string), falls back to looking at current
keyboard layout (currently that code is still a FIXME).

Paired with the code that signals gtk-im-module change on keyboard layout
switches, this is sufficient to make GTK capable of switching to
the appropriate IM context at runtime. At least, the kinds of context
that specify languages for which they are used automatically by default
(once locale matching is implemented), and the IME context.

Loading other kinds of IM context might still work via specifying
the gtk-im-module setting in gtk ini file, but doing so will likely
make GTK incapable of using the IME context that is used
for Korean, Chinese and Japanese (and some other languages).

Until someone figures out a way to actually change gtk-im-module
setting on Windows at runtime with meaningful values, the behaviour
introduced by this commit seems like a sufficient workaround.
2018-10-06 17:45:30 +00:00
..
broadway gdk: Remove key_event->string and key_event->length 2018-07-30 19:32:38 +02:00
quartz gdk: Fix Windows and OS X backend for keyevent.string removal 2018-07-30 20:15:16 +02:00
resources/glsl Use GLSL version 110 for OpenGL 2 shaders. 2016-11-01 15:42:46 -03:00
wayland wayland: drop subsurfaces 2018-08-18 23:25:05 -04:00
win32 GDK W32: Support switching IM contexts at runtime 2018-10-06 17:45:30 +00:00
x11 gdkselectioninputstream-x11: Fix memory leak 2018-09-16 20:08:25 +05:30
COPYING Change FSF Address 2012-02-27 17:06:11 +00:00
fallback-c89.c fallback-c89: Include config.h 2017-05-03 14:47:14 +01:00
gdk-autocleanup.h gdk: Add auto cleanup func for GdkContentProvider 2018-07-19 11:28:21 +03:00
gdk-private.h Merge branch 'master' into 'issue1084' 2018-06-20 14:21:24 +00:00
gdk.c Merge branch 'master' into 'issue1084' 2018-06-20 14:21:24 +00:00
gdk.h dnd: Rename headers 2018-07-02 15:00:50 +02:00
gdkapplaunchcontext.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkapplaunchcontext.h gdk: Include gio.h in gdktypes.h 2017-12-10 01:09:14 +01:00
gdkapplaunchcontextprivate.h gdk: Include gio.h in gdktypes.h 2017-12-10 01:09:14 +01:00
gdkcairo.c gdk: Remove gdk_cairo_surface_create_from_pixbuf() 2018-04-12 14:04:20 +02:00
gdkcairo.h gdk: Get rid of GdkDrawingContext 2018-04-24 23:16:58 +02:00
gdkcairocontext.c Fix some g-i annotation warnings 2018-05-01 12:35:32 +02:00
gdkcairocontext.h gdkcairocontext*.h: Include cairo.h consistently 2018-05-15 13:49:45 +08:00
gdkcairocontextprivate.h gdkcairocontext*.h: Include cairo.h consistently 2018-05-15 13:49:45 +08:00
gdkclipboard.c clipboard: Remove return statements from void function 2018-06-10 02:31:10 +02:00
gdkclipboard.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkclipboardprivate.h clipboard: Add infrastructure to store clipboards 2017-12-03 05:46:48 +01:00
gdkconfig.h.meson gdk/gdkconfig.h.meson: Add GDK_WINDOWING_WIN32 2017-09-15 21:41:15 +08:00
gdkconfig.h.win32 Clean up the pre-configured gdkconfig.h.win32 2013-05-28 13:04:37 +08:00
gdkconfig.h.win32_vulkan Visual Studio builds: Support Vulkan builds 2016-12-30 14:42:38 +08:00
gdkcontentdeserializer.c gdk: contentdeserializer: Fix deserializer not returning 2018-07-19 15:55:58 +03:00
gdkcontentdeserializer.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkcontentformats.c contentsformat: Avoid a GPtrArray 2018-02-25 16:47:20 +01:00
gdkcontentformats.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkcontentformatsprivate.h gdk: Sanitize GdkContentFormats API 2017-11-20 23:15:11 +01:00
gdkcontentprovider.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkcontentprovider.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkcontentproviderimpl.c Allow binding GdkContentFormatsBuilder 2018-02-03 16:24:13 +01:00
gdkcontentproviderimpl.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkcontentproviderprivate.h clipboard: Introduce GdkContentProvider 2017-12-03 05:46:47 +01:00
gdkcontentserializer.c Pass the correct data to gdk_content_register_serializer() 2018-06-16 18:23:56 +00:00
gdkcontentserializer.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkcursor.c docs: Small updates 2018-07-13 10:13:00 +02:00
gdkcursor.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkcursorprivate.h gdk: Add gdk_cursor_hash() and gdk_cursor_equal() 2017-11-04 00:07:13 +01:00
gdkdevice.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkdevice.h GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkdevicepad.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkdevicepad.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkdevicepadprivate.h gdk: Add GdkDevicePad 2016-08-23 21:01:44 +02:00
gdkdeviceprivate.h surface: Kill event masks 2018-06-18 23:49:52 +02:00
gdkdevicetool.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkdevicetool.h Remove a lot of Since annotations 2018-06-25 19:55:04 -04:00
gdkdevicetoolprivate.h gdk: Pass hardware ID on gdk_device_tool_new() 2016-08-23 21:01:44 +02:00
gdkdisplay.c gdk: Fix some g-i annotations warnings 2018-06-27 09:00:17 +02:00
gdkdisplay.h display: Add new virtual gdk_display_get_startup_notification_id() method. 2018-06-11 16:28:24 +01:00
gdkdisplaymanager.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkdisplaymanager.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkdisplaymanagerprivate.h gdk: Unvfuncify gdk_display_manager_open_display() 2013-04-19 16:23:43 -04:00
gdkdisplayprivate.h Merge branch 'master' into 'issue1084' 2018-06-20 14:21:24 +00:00
gdkdrag.c Add a GdkDrag::surface property 2018-07-15 16:43:28 -04:00
gdkdrag.h dnd: Drop suggested_action 2018-07-12 13:02:42 +02:00
gdkdragprivate.h Add a private struct to GdkDrag 2018-07-15 16:42:00 -04:00
gdkdrawcontext.c drawcontext: Only pass the region that matters 2018-04-24 23:16:58 +02:00
gdkdrawcontext.h drawcontext: Add gdk_draw_context_in_frame() API 2018-04-24 23:16:58 +02:00
gdkdrawcontextprivate.h drawcontext: Only pass the region that matters 2018-04-24 23:16:58 +02:00
gdkdrop.c Use Unicode apostrophes in new strings 2018-09-20 19:01:14 +02:00
gdkdrop.h Merge branch 'dnd-cleanups' into 'master' 2018-07-02 21:19:45 +00:00
gdkdropprivate.h Revert "GdkDrop: drop the priv struct" 2018-07-15 15:58:05 -04:00
gdkenumtypes.c.template Include config.h in gdkenumtypes.c.template 2013-03-15 09:19:35 -04:00
gdkenumtypes.h.template Fix some oversights with header guards 2014-12-08 19:31:56 -05:00
gdkevents.c gdk: Remove key_event->string and key_event->length 2018-07-30 19:32:38 +02:00
gdkevents.h gdk: Remove gdk_event_get_string() 2018-07-30 19:32:38 +02:00
gdkeventsprivate.h gdk: Remove key_event->string and key_event->length 2018-07-30 19:32:38 +02:00
gdkframeclock.c Add proper annotation for gdk_frame_clock_get_refresh_info 2018-03-12 16:07:39 +01:00
gdkframeclock.h Remove a lot of Since annotations 2018-06-25 19:55:04 -04:00
gdkframeclockidle.c frameclockidle: Rename header so it's private now 2018-03-29 05:02:15 +02:00
gdkframeclockidleprivate.h frameclockidle: Rename header so it's private now 2018-03-29 05:02:15 +02:00
gdkframeclockprivate.h frametimings: reuse previous frame timing in common case 2016-04-26 09:06:07 -04:00
gdkframetimings.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkframetimings.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkgl.c gdk: Remove unused GL setting 2018-04-24 23:16:12 +02:00
gdkglcontext.c drawcontext: Only pass the region that matters 2018-04-24 23:16:58 +02:00
gdkglcontext.h gdk: Remove gdk_gl_context_get_damage() 2018-04-24 23:16:58 +02:00
gdkglcontextprivate.h glcontext: Store the buffer age regions in the GL context 2018-04-09 01:00:31 +02:00
gdkglobals.c gdk: Reorganize env vars 2018-01-14 17:05:04 -05:00
gdkgltexture.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkgltexture.h gltexture: Rename variable 2018-03-18 18:42:20 +01:00
gdkgltextureprivate.h texture: Expose subclasses as subclasses 2018-03-18 05:57:07 +01:00
gdkinternals.h Handle configure events in gdk 2018-07-15 20:23:45 -04:00
gdkintl.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkkeynames.c Keep XF86 keysym names working 2013-04-19 20:11:39 -04:00
gdkkeys.c gdk: Add some more docs 2018-02-11 00:41:31 +00:00
gdkkeys.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkkeysprivate.h gdkkeys: Add support to _get_scroll_lock_state() 2015-04-27 20:07:52 -03:00
gdkkeysyms-update.pl Remove gdkkeysyms-compat.h 2017-05-03 14:54:37 +01:00
gdkkeysyms.h Update gdkkeysyms.h header 2013-04-19 20:11:38 -04:00
gdkkeyuni.c Replace gdk_keymap_get_for_display by gdk_display_get_keymap 2017-12-15 07:44:58 -05:00
gdkmarshalers.list x11: Refactor xevent filtering some more 2017-12-13 01:55:56 +01:00
gdkmemorytexture.c Document GdkMemoryTexture 2018-04-28 16:22:29 -04:00
gdkmemorytexture.h Misc documentation fixes 2018-04-28 22:34:14 -04:00
gdkmemorytextureprivate.h texture: Expose subclasses as subclasses 2018-03-18 05:57:07 +01:00
gdkmonitor.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkmonitor.h Remove a lot of Since annotations 2018-06-25 19:55:04 -04:00
gdkmonitorprivate.h monitor: Add a ::valid property 2017-11-01 14:17:20 -04:00
gdkpaintable.c paintable: Fix return_if_fail() statements 2018-07-13 14:56:04 +02:00
gdkpaintable.h Add GdkPaintable to the docs 2018-05-07 07:47:18 -04:00
gdkpango.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkpango.h Drop gdk_pango_context_get_for_display 2017-10-31 18:15:50 -04:00
gdkpipeiostream.c gdk: Remove unnecessary assignments 2018-05-06 02:10:20 +02:00
gdkpipeiostreamprivate.h clipboard: Implement local fallback clipboard transfers 2017-12-03 05:46:47 +01:00
gdkpixbuf-drawable.c GdkWindow -> GdkSurface: File renames 2018-03-20 11:46:11 +01:00
gdkpixbuf.h API: gdk: Remove ability to render window contents 2016-11-20 11:47:44 +01:00
gdkproperty.c Drop gdk_atom_intern 2017-12-13 23:39:03 -05:00
gdkproperty.h Drop gdk_atom_intern 2017-12-13 23:39:03 -05:00
gdkrectangle.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkrectangle.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkrgba.c gdkrgba: Add a missing apostrophe in a doc comment 2018-03-19 15:14:20 +00:00
gdkrgba.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkseat.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkseat.h Remove a lot of Since annotations 2018-06-25 19:55:04 -04:00
gdkseatdefault.c gdkseatdefault: Don't hide GdkSurface on grab failure 2018-05-29 14:05:14 +02:00
gdkseatdefaultprivate.h GdkSeatDefault: Add functions to add/remove tools 2016-04-06 15:43:29 +02:00
gdkseatprivate.h GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkselection.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdksnapshot.c snapshot: Turn into GObject 2018-03-18 19:21:33 +01:00
gdksnapshot.h snapshot: Turn into GObject 2018-03-18 19:21:33 +01:00
gdksnapshotprivate.h snapshot: Turn into GObject 2018-03-18 19:21:33 +01:00
gdksurface.c gdk: Drop GDK_SURFACE_SUBSURFACE 2018-08-18 23:25:12 -04:00
gdksurface.h gdk: Drop GDK_SURFACE_SUBSURFACE 2018-08-18 23:25:12 -04:00
gdksurfaceimpl.c surface: Make process_updates no longer be a vfunc 2018-03-21 23:28:26 +01:00
gdksurfaceimpl.h gdk: Rename GdkDragContext to GdkDrag 2018-07-02 14:59:26 +02:00
gdktexture.c snapshot: Redo debug messages 2018-04-24 04:06:58 +02:00
gdktexture.h texture: Add gdk_texture_save_to_png() 2018-04-12 14:02:59 +02:00
gdktextureprivate.h texture: Change download vfunc 2018-03-12 17:21:45 +01:00
gdktypes.h gdk: Rename GdkDragContext to GdkDrag 2018-07-02 14:59:26 +02:00
gdkversionmacros.h.in The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkvulkancontext.c drawcontext: Only pass the region that matters 2018-04-24 23:16:58 +02:00
gdkvulkancontext.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkvulkancontextprivate.h vulkan: Fix release builds 2018-01-21 15:23:17 +01:00
gen-gdk-gresources-xml.py meson: gdk: update and sync with Makefiles 2017-05-03 15:10:53 +01:00
gen-keyname-table.pl gdk: Make gen-keyname-table.pl work again 2011-10-26 10:36:43 +01:00
keyname-table.h gdk: Translate some more key names 2017-10-09 20:33:14 +02:00
keynames-translate.txt gdk: Translate some more key names 2017-10-09 20:33:14 +02:00
keynames.txt Fix key "Page_Down" identified as "Next" 2013-10-24 18:48:33 -04:00
meson.build dnd: Rename headers 2018-07-02 15:00:50 +02:00