XWorkstation.st
changeset 463 cb4731ced6b5
parent 461 4a4b1384ab76
child 466 257f4414a176
--- a/XWorkstation.st	Mon Feb 26 19:32:16 1996 +0100
+++ b/XWorkstation.st	Mon Feb 26 22:46:14 1996 +0100
@@ -6956,37 +6956,45 @@
      && __isAtomID(typeID) 
      && ISCONNECTED
      && (__isString(anObject) 
-	 || __isSmallInteger(anObject) 
-	 || __isSymbol(anObject) 
-	 || __isByteArray(anObject))) {
-
-	prop = _AtomVal(propertyID);
-	type = _AtomVal(typeID);
-	if (__isExternalAddress(aWindowID)) {
-	    window = _WindowVal(aWindowID);
-	} else {
-	    window = DefaultRootWindow(dpy);
-	}
-	if (__isSmallInteger(anObject)) {
-	    value = _intVal(anObject);
-	    XChangeProperty(dpy, window, prop, type, 32,
-			    PropModeReplace,
-			    (unsigned char *)(&value), sizeof(unsigned int));
-	} else {
-	    if (__isByteArray(anObject)) {
-		XChangeProperty(dpy, window, prop, type, 8,
-				PropModeReplace,
-				_ByteArrayInstPtr(anObject)->ba_element,
-				_byteArraySize(anObject));
-	    } else {
-		/* string or symbol */
-		XChangeProperty(dpy, window, prop, XA_STRING, 8,
-				PropModeReplace,
-				_stringVal(anObject),
-				strlen(_stringVal(anObject)));
-	    }
-	}
-	RETURN (true);
+         || __isSmallInteger(anObject) 
+         || __isSymbol(anObject) 
+         || __isByteArray(anObject)
+         || __isWords(anObject))) { 
+
+        prop = _AtomVal(propertyID);
+        type = _AtomVal(typeID);
+        if (__isExternalAddress(aWindowID)) {
+            window = _WindowVal(aWindowID);
+        } else {
+            window = DefaultRootWindow(dpy);
+        }
+        if (__isSmallInteger(anObject)) {
+            value = _intVal(anObject);
+            XChangeProperty(dpy, window, prop, type, 32,
+                            PropModeReplace,
+                            (unsigned char *)(&value), sizeof(unsigned int));
+        } else {
+            if (__isByteArray(anObject)) {
+                XChangeProperty(dpy, window, prop, type, 8,
+                                PropModeReplace,
+                                __ByteArrayInstPtr(anObject)->ba_element,
+                                __byteArraySize(anObject));
+            } else {
+                /* string or symbol or wordArray-like (16bit-string) object */
+                if (__isWords(__qClass(anObject))) {
+                    XChangeProperty(dpy, window, prop, XA_STRING, 16,
+                                    PropModeReplace,
+                                    __stringVal(anObject),
+                                    __wordArraySize(anObject));
+                } else {
+                    XChangeProperty(dpy, window, prop, XA_STRING, 8,
+                                    PropModeReplace,
+                                    __stringVal(anObject),
+                                    strlen(__stringVal(anObject)));
+                }
+            }
+        }
+        RETURN (true);
     }
 %}.
     ^ false
@@ -7669,6 +7677,6 @@
 !XWorkstation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.115 1996-02-26 16:14:00 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.116 1996-02-26 21:46:14 cg Exp $'
 ! !
 XWorkstation initialize!