43 lines
1.2 KiB
Diff
43 lines
1.2 KiB
Diff
Index: ibus-hangul-1.5.1/src/engine.c
|
|
===================================================================
|
|
--- ibus-hangul-1.5.1.orig/src/engine.c
|
|
+++ ibus-hangul-1.5.1/src/engine.c
|
|
@@ -22,6 +22,7 @@
|
|
#include <config.h>
|
|
#endif
|
|
|
|
+#include <stdio.h>
|
|
#include <ibus.h>
|
|
#include <gio/gio.h>
|
|
#include <hangul.h>
|
|
@@ -217,6 +218,11 @@ static int initial_input_mode = INPUT_MO
|
|
* whether to use event forwarding workaround
|
|
*/
|
|
static gboolean use_event_forwarding = TRUE;
|
|
+/**
|
|
+ * whether to use client commit
|
|
+ * See: https://github.com/libhangul/ibus-hangul/pull/68
|
|
+ */
|
|
+static gboolean use_client_commit = TRUE;
|
|
|
|
static glong
|
|
ucschar_strlen (const ucschar* str)
|
|
@@ -1351,7 +1357,17 @@ ibus_hangul_engine_reset (IBusEngine *en
|
|
{
|
|
IBusHangulEngine *hangul = (IBusHangulEngine *) engine;
|
|
|
|
+ if (use_client_commit) {
|
|
+ // ibus-hangul uses
|
|
+ // ibus_engine_update_preedit_text_with_mode() function which makes
|
|
+ // the preedit string committed automatically when the reset is received
|
|
+ // So we don't need to commit the preedit here.
|
|
+ hangul_ic_reset (hangul->context);
|
|
+ ustring_clear (hangul->preedit);
|
|
+ }
|
|
+
|
|
ibus_hangul_engine_flush (hangul);
|
|
+
|
|
IBUS_ENGINE_CLASS (parent_class)->reset (engine);
|
|
}
|
|
|