Hide cursor when you start typing
This commit is contained in:
committed by
Aaron Lindsay
parent
bd21c14273
commit
40bc165ce4
26
x.c
26
x.c
@@ -659,6 +659,12 @@ brelease(XEvent *e)
|
||||
void
|
||||
bmotion(XEvent *e)
|
||||
{
|
||||
if (!xw.pointerisvisible) {
|
||||
XDefineCursor(xw.dpy, xw.win, xw.vpointer);
|
||||
xw.pointerisvisible = 1;
|
||||
if (!IS_SET(MODE_MOUSEMANY))
|
||||
xsetpointermotion(0);
|
||||
}
|
||||
|
||||
if (IS_SET(MODE_MOUSE) && !(e->xbutton.state & forcemousemod)) {
|
||||
mousereport(e);
|
||||
@@ -1082,10 +1088,10 @@ void
|
||||
xinit(int cols, int rows)
|
||||
{
|
||||
XGCValues gcvalues;
|
||||
Cursor cursor;
|
||||
Window parent, root;
|
||||
pid_t thispid = getpid();
|
||||
XColor xmousefg, xmousebg;
|
||||
Pixmap blankpm;
|
||||
|
||||
if (!(xw.dpy = XOpenDisplay(NULL)))
|
||||
die("can't open display\n");
|
||||
@@ -1155,8 +1161,9 @@ xinit(int cols, int rows)
|
||||
}
|
||||
|
||||
/* white cursor, black outline */
|
||||
cursor = XCreateFontCursor(xw.dpy, mouseshape);
|
||||
XDefineCursor(xw.dpy, xw.win, cursor);
|
||||
xw.pointerisvisible = 1;
|
||||
xw.vpointer = XCreateFontCursor(xw.dpy, mouseshape);
|
||||
XDefineCursor(xw.dpy, xw.win, xw.vpointer);
|
||||
|
||||
if (XParseColor(xw.dpy, xw.cmap, colorname[mousefg], &xmousefg) == 0) {
|
||||
xmousefg.red = 0xffff;
|
||||
@@ -1170,7 +1177,10 @@ xinit(int cols, int rows)
|
||||
xmousebg.blue = 0x0000;
|
||||
}
|
||||
|
||||
XRecolorCursor(xw.dpy, cursor, &xmousefg, &xmousebg);
|
||||
XRecolorCursor(xw.dpy, xw.vpointer, &xmousefg, &xmousebg);
|
||||
blankpm = XCreateBitmapFromData(xw.dpy, xw.win, &(char){0}, 1, 1);
|
||||
xw.bpointer = XCreatePixmapCursor(xw.dpy, blankpm, blankpm,
|
||||
&xmousefg, &xmousebg, 0, 0);
|
||||
|
||||
xw.xembed = XInternAtom(xw.dpy, "_XEMBED", False);
|
||||
xw.wmdeletewin = XInternAtom(xw.dpy, "WM_DELETE_WINDOW", False);
|
||||
@@ -1804,6 +1814,8 @@ unmap(XEvent *ev)
|
||||
void
|
||||
xsetpointermotion(int set)
|
||||
{
|
||||
if (!set && !xw.pointerisvisible)
|
||||
return;
|
||||
MODBIT(xw.attrs.event_mask, set, PointerMotionMask);
|
||||
XChangeWindowAttributes(xw.dpy, xw.win, CWEventMask, &xw.attrs);
|
||||
}
|
||||
@@ -1923,6 +1935,12 @@ kpress(XEvent *ev)
|
||||
Status status;
|
||||
Shortcut *bp;
|
||||
|
||||
if (xw.pointerisvisible) {
|
||||
XDefineCursor(xw.dpy, xw.win, xw.bpointer);
|
||||
xsetpointermotion(1);
|
||||
xw.pointerisvisible = 0;
|
||||
}
|
||||
|
||||
if (IS_SET(MODE_KBDLOCK))
|
||||
return;
|
||||
|
||||
|
Reference in New Issue
Block a user