From 0bcc941f964853d17230d74ce06877ea28f96a2e Mon Sep 17 00:00:00 2001 From: Aric Stewart <aric@codeweavers.com> Date: Tue, 24 Oct 2006 12:17:40 -0500 Subject: [PATCH] winex11.drv: Only create a fontSet if we are going to be using it in the XIC. --- dlls/winex11.drv/xim.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/dlls/winex11.drv/xim.c b/dlls/winex11.drv/xim.c index ff98f017214..2be9dd29e75 100644 --- a/dlls/winex11.drv/xim.c +++ b/dlls/winex11.drv/xim.c @@ -456,7 +456,7 @@ err: XIC X11DRV_CreateIC(XIM xim, Display *display, Window win) { - XFontSet fontSet; + XFontSet fontSet = NULL; char **list; int count; XPoint spot = {0}; @@ -485,22 +485,27 @@ XIC X11DRV_CreateIC(XIM xim, Display *display, Window win) return xic; } - fontSet = XCreateFontSet(display, - "*", /*FIXME*/ - &list, &count, NULL); - TRACE("ximFontSet = %p\n", fontSet); - TRACE("list = %p, count = %d\n", list, count); - - if (list != NULL) + if (((ximStyle & (XIMPreeditNothing | XIMPreeditNone)) == 0) || + ((ximStyle & (XIMStatusNothing | XIMStatusNone)) == 0)) { - int i; + fontSet = XCreateFontSet(display, + "*", /*FIXME*/ + &list, &count, NULL); + + TRACE("ximFontSet = %p\n", fontSet); + TRACE("list = %p, count = %d\n", list, count); - for (i = 0; i < count; ++i) + if (list != NULL) { - TRACE("list[%d] = %s\n", i, list[i]); + int i; + + for (i = 0; i < count; ++i) + { + TRACE("list[%d] = %s\n", i, list[i]); + } + XFreeStringList(list); } - XFreeStringList(list); } /* create callbacks */ -- GitLab