Introduction
Introduction Statistics Contact Development Disclaimer Help
x: do not instantiate a new nested list on each cursor move - st - simple termi…
git clone git://git.suckless.org/st
Log
Files
Refs
README
LICENSE
---
commit 2cb539142b97bd2a5c1a322fd7c063c6afb67c9b
parent 99de33395126fc9708f442d155e737b9182f6ef4
Author: Quentin Rameau <[email protected]>
Date: Sun, 2 Feb 2020 15:38:08 +0100
x: do not instantiate a new nested list on each cursor move
Diffstat:
M x.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
---
diff --git a/x.c b/x.c
@@ -97,6 +97,8 @@ typedef struct {
struct {
XIM xim;
XIC xic;
+ XPoint spot;
+ XVaNestedList spotlist;
} ime;
Draw draw;
Visual *vis;
@@ -1042,6 +1044,9 @@ ximopen(Display *dpy)
XNClientWindow, xw.win, XNFocusWindow, xw.win, NULL…
if (xw.xic == NULL)
die("XCreateIC failed. Could not obtain input method.\n");
+
+ xw.ime.spotlist = XVaCreateNestedList(0, XNSpotLocation, &xw.ime.spot,
+ NULL);
}
void
@@ -1058,6 +1063,7 @@ ximdestroy(XIM xim, XPointer client, XPointer call)
xw.ime.xim = NULL;
XRegisterIMInstantiateCallback(xw.dpy, NULL, NULL, NULL,
ximinstantiate, NULL);
+ XFree(xw.ime.spotlist);
}
void
@@ -1603,11 +1609,13 @@ xfinishdraw(void)
void
xximspot(int x, int y)
{
- XPoint spot = { borderpx + x * win.cw, borderpx + (y + 1) * win.ch };
- XVaNestedList attr = XVaCreateNestedList(0, XNSpotLocation, &spot, NUL…
+ if (xw.ime.xic == NULL)
+ return;
+
+ xw.ime.spot.x = borderpx + x * win.cw;
+ xw.ime.spot.y = borderpx + (y + 1) * win.ch;
- XSetICValues(xw.xic, XNPreeditAttributes, attr, NULL);
- XFree(attr);
+ XSetICValues(xw.ime.xic, XNPreeditAttributes, xw.ime.spotlist, NULL);
}
void
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.