Fix mouse emulation in fullscreen mode in linux. The window doesn't have focus then.
Also minor tweak to mouse hiding. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5063 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
b245c398a3
commit
666a33eeed
|
@ -660,7 +660,9 @@ bool IsFocus()
|
|||
Window FocusWin;
|
||||
int Revert;
|
||||
XGetInputFocus(GCdisplay, &FocusWin, &Revert);
|
||||
return (GLWin != 0 && GLWin == FocusWin);
|
||||
XWindowAttributes WinAttribs;
|
||||
XGetWindowAttributes (GCdisplay, GLWin, &WinAttribs);
|
||||
return (GLWin != 0 && (GLWin == FocusWin || WinAttribs.override_redirect));
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
|
|
|
@ -411,9 +411,8 @@ bool OpenGL_Create(SVideoInitialize &_VideoInitialize, int _iwidth, int _iheight
|
|||
char ZeroData[1] = {0};
|
||||
Cursor MouseCursor;
|
||||
Blank = XCreateBitmapFromData (GLWin.dpy, GLWin.win, ZeroData, 1, 1);
|
||||
MouseCursor = XCreatePixmapCursor(GLWin.dpy, Blank, Blank, &DummyColor, &DummyColor, 0, 0);
|
||||
GLWin.blankCursor = XCreatePixmapCursor(GLWin.dpy, Blank, Blank, &DummyColor, &DummyColor, 0, 0);
|
||||
XFreePixmap (GLWin.dpy, Blank);
|
||||
XDefineCursor (GLWin.dpy, GLWin.win, MouseCursor);
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
|
@ -474,6 +473,10 @@ bool OpenGL_MakeCurrent()
|
|||
} else {
|
||||
ERROR_LOG(VIDEO, "no Direct Rendering possible!");
|
||||
}
|
||||
|
||||
// Hide the cursor now
|
||||
if (g_Config.bHideCursor)
|
||||
XDefineCursor (GLWin.dpy, GLWin.win, GLWin.blankCursor);
|
||||
|
||||
// better for pad plugin key input (thc)
|
||||
XSelectInput(GLWin.dpy, GLWin.win, ExposureMask | KeyPressMask | KeyReleaseMask |
|
||||
|
@ -579,6 +582,14 @@ void OpenGL_Update()
|
|||
case ButtonPress:
|
||||
case ButtonRelease:
|
||||
break;
|
||||
case FocusIn:
|
||||
if (g_Config.bHideCursor)
|
||||
XDefineCursor(GLWin.dpy, GLWin.win, GLWin.blankCursor);
|
||||
break;
|
||||
case FocusOut:
|
||||
if (g_Config.bHideCursor)
|
||||
XUndefineCursor(GLWin.dpy, GLWin.win);
|
||||
break;
|
||||
case ConfigureNotify:
|
||||
Window winDummy;
|
||||
unsigned int borderDummy;
|
||||
|
|
|
@ -93,6 +93,7 @@ typedef struct {
|
|||
Window win;
|
||||
Display *dpy;
|
||||
GLXContext ctx;
|
||||
Cursor blankCursor;
|
||||
XSetWindowAttributes attr;
|
||||
Bool fs;
|
||||
Bool doubleBuffered;
|
||||
|
|
|
@ -216,7 +216,6 @@ void GetMousePos(float& x, float& y)
|
|||
float PictureWidth = WinWidth, PictureHeight = WinHeight;
|
||||
#else
|
||||
#if defined(HAVE_X11) && HAVE_X11
|
||||
Window GLWin = *(Window *)g_WiimoteInitialize.pXWindow;
|
||||
float WinWidth = 0, WinHeight = 0;
|
||||
float XOffset = 0, YOffset = 0;
|
||||
int root_x, root_y, win_x, win_y;
|
||||
|
|
|
@ -419,7 +419,9 @@ bool IsFocus()
|
|||
Window FocusWin;
|
||||
int Revert;
|
||||
XGetInputFocus(WMdisplay, &FocusWin, &Revert);
|
||||
return (GLWin != 0 && GLWin == FocusWin);
|
||||
XWindowAttributes WinAttribs;
|
||||
XGetWindowAttributes (WMdisplay, GLWin, &WinAttribs);
|
||||
return (GLWin != 0 && (GLWin == FocusWin || WinAttribs.override_redirect));
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue