Module: wine Branch: master Commit: dffab36e8b4a0f9efaef9701da4f75b1b976e02c URL: http://source.winehq.org/git/wine.git/?a=commit;h=dffab36e8b4a0f9efaef9701da...
Author: Alexandre Julliard julliard@winehq.org Date: Mon May 5 15:08:33 2008 +0200
winex11: The XIM callback is called with the X11 lock held.
---
dlls/winex11.drv/xim.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/dlls/winex11.drv/xim.c b/dlls/winex11.drv/xim.c index a4fbdb2..8512583 100644 --- a/dlls/winex11.drv/xim.c +++ b/dlls/winex11.drv/xim.c @@ -374,8 +374,10 @@ 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) { struct x11drv_thread_data *thread_data = x11drv_thread_data(); @@ -385,13 +387,10 @@ static void X11DRV_OpenIM(Display *display, XPointer ptr, XPointer data) XIM xim; XIMCallback destroy;
- wine_tsx11_lock(); - xim = XOpenIM(display, NULL, NULL, NULL); if (xim == NULL) { WARN("Could not open input method.\n"); - wine_tsx11_unlock(); return; }
@@ -411,7 +410,6 @@ static void X11DRV_OpenIM(Display *display, XPointer ptr, XPointer data) { WARN("Could not find supported input style.\n"); XCloseIM(xim); - wine_tsx11_unlock(); return; } else @@ -474,8 +472,10 @@ static void X11DRV_OpenIM(Display *display, XPointer ptr, XPointer data)
thread_data->xim = xim; XUnregisterIMInstantiateCallback(display, NULL, NULL, NULL, X11DRV_OpenIM, NULL); + wine_tsx11_unlock(); IME_UpdateAssociation(NULL); + wine_tsx11_lock(); }