commit 928f5bf043dcd956e44877a04ec6c153b8464190
parent 0556853f906c938396d798f95cd4eaa287b7adf8
Author: Ivan Tham <pickfire@riseup.net>
Date: Sat, 2 Feb 2019 20:36:54 +0800
[st][fix_ime] Add hotkey swap
Diffstat:
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/st.suckless.org/patches/fix_ime/index.md b/st.suckless.org/patches/fix_ime/index.md
@@ -5,12 +5,12 @@ Description
-----------
Better Input Method Editor (IME) support. Features:
+* Allow input methods swap with hotkey (E.g. left ctrl + left shift)
* Over-the-spot pre-editing style, pre-edit data placed over insertion point
-* Restart IME without breaking st
+* Restart IME without segmentation fault
TODO:
-* Allow swapping input methods (E.g. ctrl + alt)
* Automatically pickup IME if st started before IME
Download
diff --git a/st.suckless.org/patches/fix_ime/st-ime-20190202-3be4cf1.diff b/st.suckless.org/patches/fix_ime/st-ime-20190202-3be4cf1.diff
@@ -20,7 +20,7 @@ index 31f327d..a6ef1b9 100644
int xstartdraw(void);
+void xximspot(int, int);
diff --git a/x.c b/x.c
-index 0422421..714098f 100644
+index 0422421..315ea91 100644
--- a/x.c
+++ b/x.c
@@ -139,6 +139,9 @@ static void xdrawglyphfontspecs(const XftGlyphFontSpec *, Glyph, int, int, int);
@@ -80,6 +80,15 @@ index 0422421..714098f 100644
void
xinit(int cols, int rows)
{
+@@ -1033,7 +1076,7 @@ xinit(int cols, int rows)
+ xw.attrs.background_pixel = dc.col[defaultbg].pixel;
+ xw.attrs.border_pixel = dc.col[defaultbg].pixel;
+ xw.attrs.bit_gravity = NorthWestGravity;
+- xw.attrs.event_mask = FocusChangeMask | KeyPressMask
++ xw.attrs.event_mask = FocusChangeMask | KeyPressMask | KeyReleaseMask
+ | ExposureMask | VisibilityChangeMask | StructureNotifyMask
+ | ButtonMotionMask | ButtonPressMask | ButtonReleaseMask;
+ xw.attrs.colormap = xw.cmap;
@@ -1061,22 +1104,7 @@ xinit(int cols, int rows)
xw.draw = XftDrawCreate(xw.dpy, xw.buf, xw.vis, xw.cmap);