mirror of
https://git.code.sf.net/p/quake/quakeforge-old
synced 2025-02-01 04:50:42 +00:00
Made OpenGL targets in X remove the cursor when _windowed_mouse 1 is set.
Also, committed patch from Marcus Sundberg <mackan@stacken.kth.se> or
This commit is contained in:
parent
ec75dc0dc6
commit
e902071cbb
2 changed files with 24 additions and 3 deletions
|
@ -41,6 +41,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
static Display *dpy = NULL;
|
static Display *dpy = NULL;
|
||||||
static Window win;
|
static Window win;
|
||||||
|
static Cursor cursor;
|
||||||
static GLXContext ctx = NULL;
|
static GLXContext ctx = NULL;
|
||||||
|
|
||||||
static float old_windowed_mouse = 0;
|
static float old_windowed_mouse = 0;
|
||||||
|
@ -180,6 +181,7 @@ static int XLateKey(XKeyEvent *ev)
|
||||||
case XK_Control_L:
|
case XK_Control_L:
|
||||||
case XK_Control_R: key = K_CTRL; break;
|
case XK_Control_R: key = K_CTRL; break;
|
||||||
|
|
||||||
|
case XK_Mode_switch:
|
||||||
case XK_Alt_L:
|
case XK_Alt_L:
|
||||||
case XK_Meta_L:
|
case XK_Meta_L:
|
||||||
case XK_Alt_R:
|
case XK_Alt_R:
|
||||||
|
@ -229,16 +231,33 @@ static int XLateKey(XKeyEvent *ev)
|
||||||
return key;
|
return key;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void blank_cursor(void)
|
||||||
|
{
|
||||||
|
Pixmap blank;
|
||||||
|
XColor dummy;
|
||||||
|
char data[1] = {0};
|
||||||
|
|
||||||
|
blank = XCreateBitmapFromData(dpy, win, data, 1, 1);
|
||||||
|
if (blank == None) {
|
||||||
|
fprintf(stderr,"Could not create cursor: Out of memory.\n");
|
||||||
|
} else {
|
||||||
|
cursor = XCreatePixmapCursor(dpy, blank, blank, &dummy, &dummy, 0, 0);
|
||||||
|
XFreePixmap(dpy, blank);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void install_grabs(void)
|
static void install_grabs(void)
|
||||||
{
|
{
|
||||||
|
blank_cursor();
|
||||||
|
|
||||||
XGrabPointer(dpy, win,
|
XGrabPointer(dpy, win,
|
||||||
True,
|
True,
|
||||||
0,
|
0,
|
||||||
GrabModeAsync, GrabModeAsync,
|
GrabModeAsync, GrabModeAsync,
|
||||||
win,
|
win,
|
||||||
None,
|
cursor,
|
||||||
CurrentTime);
|
CurrentTime);
|
||||||
|
|
||||||
#ifdef USE_DGA
|
#ifdef USE_DGA
|
||||||
XF86DGADirectVideo(dpy, DefaultScreen(dpy), XF86DGADirectMouse);
|
XF86DGADirectVideo(dpy, DefaultScreen(dpy), XF86DGADirectMouse);
|
||||||
dgamouse = 1;
|
dgamouse = 1;
|
||||||
|
@ -668,7 +687,7 @@ void VID_Init(unsigned char *palette)
|
||||||
|
|
||||||
GL_Init();
|
GL_Init();
|
||||||
|
|
||||||
sprintf (gldir, "%s/glquake", com_gamedir);
|
sprintf (gldir, "%s/OpenGL", com_gamedir);
|
||||||
Sys_mkdir (gldir);
|
Sys_mkdir (gldir);
|
||||||
|
|
||||||
VID_SetPalette(palette);
|
VID_SetPalette(palette);
|
||||||
|
@ -700,6 +719,7 @@ void IN_Init(void)
|
||||||
|
|
||||||
void IN_Shutdown(void)
|
void IN_Shutdown(void)
|
||||||
{
|
{
|
||||||
|
uninstall_grabs();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -717,6 +717,7 @@ int XLateKey(XKeyEvent *ev)
|
||||||
case XK_Control_L:
|
case XK_Control_L:
|
||||||
case XK_Control_R: key = K_CTRL; break;
|
case XK_Control_R: key = K_CTRL; break;
|
||||||
|
|
||||||
|
case XK_Mode_switch:
|
||||||
case XK_Alt_L:
|
case XK_Alt_L:
|
||||||
case XK_Meta_L:
|
case XK_Meta_L:
|
||||||
case XK_Alt_R:
|
case XK_Alt_R:
|
||||||
|
|
Loading…
Reference in a new issue