winex11: The XIM callback is called with the X11 lock held.
This commit is contained in:
parent
22328d0ce5
commit
dffab36e8b
|
@ -375,6 +375,8 @@ static void X11DRV_DestroyIM(XIM xim, XPointer p, XPointer data)
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* X11DRV Ime creation
|
* X11DRV Ime creation
|
||||||
|
*
|
||||||
|
* Should always be called with the x11 lock held
|
||||||
*/
|
*/
|
||||||
static void X11DRV_OpenIM(Display *display, XPointer ptr, XPointer data)
|
static void X11DRV_OpenIM(Display *display, XPointer ptr, XPointer data)
|
||||||
{
|
{
|
||||||
|
@ -385,13 +387,10 @@ static void X11DRV_OpenIM(Display *display, XPointer ptr, XPointer data)
|
||||||
XIM xim;
|
XIM xim;
|
||||||
XIMCallback destroy;
|
XIMCallback destroy;
|
||||||
|
|
||||||
wine_tsx11_lock();
|
|
||||||
|
|
||||||
xim = XOpenIM(display, NULL, NULL, NULL);
|
xim = XOpenIM(display, NULL, NULL, NULL);
|
||||||
if (xim == NULL)
|
if (xim == NULL)
|
||||||
{
|
{
|
||||||
WARN("Could not open input method.\n");
|
WARN("Could not open input method.\n");
|
||||||
wine_tsx11_unlock();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -411,7 +410,6 @@ static void X11DRV_OpenIM(Display *display, XPointer ptr, XPointer data)
|
||||||
{
|
{
|
||||||
WARN("Could not find supported input style.\n");
|
WARN("Could not find supported input style.\n");
|
||||||
XCloseIM(xim);
|
XCloseIM(xim);
|
||||||
wine_tsx11_unlock();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -474,8 +472,10 @@ static void X11DRV_OpenIM(Display *display, XPointer ptr, XPointer data)
|
||||||
|
|
||||||
thread_data->xim = xim;
|
thread_data->xim = xim;
|
||||||
XUnregisterIMInstantiateCallback(display, NULL, NULL, NULL, X11DRV_OpenIM, NULL);
|
XUnregisterIMInstantiateCallback(display, NULL, NULL, NULL, X11DRV_OpenIM, NULL);
|
||||||
|
|
||||||
wine_tsx11_unlock();
|
wine_tsx11_unlock();
|
||||||
IME_UpdateAssociation(NULL);
|
IME_UpdateAssociation(NULL);
|
||||||
|
wine_tsx11_lock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue