Aric Stewart : winex11.drv: Only create a fontSet if we are going to be using it in the XIC.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Oct 24 13:39:58 CDT 2006


Module: wine
Branch: master
Commit: 0bcc941f964853d17230d74ce06877ea28f96a2e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0bcc941f964853d17230d74ce06877ea28f96a2e

Author: Aric Stewart <aric at codeweavers.com>
Date:   Tue Oct 24 12:17:40 2006 -0500

winex11.drv: Only create a fontSet if we are going to be using it in the XIC.

---

 dlls/winex11.drv/xim.c |   29 +++++++++++++++++------------
 1 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/dlls/winex11.drv/xim.c b/dlls/winex11.drv/xim.c
index ff98f01..2be9dd2 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 *di
         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 */




More information about the wine-cvs mailing list