File openmotif-2.3.3-multiscreen.patch of Package motif.27027

---
 lib/Xm/XmRenderT.c |   21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

--- a/lib/Xm/XmRenderT.c
+++ b/lib/Xm/XmRenderT.c
@@ -2901,6 +2901,7 @@ _XmXftDrawCreate(Display *display, Windo
 	XWindowAttributes	wa;
 	int			i;
 	Status status;
+	int 			scn;
 
 	for (i=0; i<_XmXftDrawCacheSize; i++) {
 		if (_XmXftDrawCache[i].display == display &&
@@ -2908,11 +2909,11 @@ _XmXftDrawCreate(Display *display, Windo
 			return _XmXftDrawCache[i].draw;
 		}
 	}
-
+	scn = XScreenNumberOfScreen(XtScreen(XtWindowToWidget(display,window)));
 #ifdef FIX_1444
 	if (!(draw = XftDrawCreate(display, window,
-	    DefaultVisual(display, DefaultScreen(display)),
-	    DefaultColormap(display, DefaultScreen(display))))) 
+	    DefaultVisual(display, scn),
+	    DefaultColormap(display, scn))))
             	draw = XftDrawCreateBitmap(display, window);
 #else
 	oldErrorHandler = XSetErrorHandler (_XmXftErrorHandler);	
@@ -2921,8 +2922,8 @@ _XmXftDrawCreate(Display *display, Windo
 	XSetErrorHandler(oldErrorHandler);
 	if (xft_error != BadWindow) {
 	    draw = XftDrawCreate(display, window,
-	        DefaultVisual(display, DefaultScreen(display)),
-	        DefaultColormap(display, DefaultScreen(display)));
+	        DefaultVisual(display, scn),
+	        DefaultColormap(display, scn));
 	} else {
             draw = XftDrawCreateBitmap(display, window);
         }
@@ -2986,7 +2987,7 @@ _XmXftDrawString2(Display *display, Wind
 
     xcol.pixel = gc_val.foreground;
     XQueryColor(display, DefaultColormap(display,
-        DefaultScreen(display)), &xcol);
+        XScreenNumberOfScreen(XtScreen(XtWindowToWidget(display, window)))), &xcol);
     xftcol.color.red = xcol.red;
     xftcol.color.blue = xcol.blue;
     xftcol.color.green = xcol.green;
@@ -3058,8 +3059,8 @@ _XmXftDrawString(Display *display, Windo
 
 	    XGetGCValues(display, _XmRendGC(rend), GCBackground, &gc_val);
 	    xcol.pixel = gc_val.background;
-            XQueryColor(display, DefaultColormapOfScreen(
-                  DefaultScreenOfDisplay(display)), &xcol);
+            XQueryColor(display, DefaultColormap(display,
+                  XScreenNumberOfScreen(XtScreen(XtWindowToWidget(display,window)))), &xcol);
 	    bg_color.pixel = xcol.pixel;
 	    bg_color.color.red = xcol.red;
 	    bg_color.color.green = xcol.green;
@@ -3085,8 +3086,8 @@ _XmXftDrawString(Display *display, Windo
 	XColor xcol;
 	XGetGCValues(display, _XmRendGC(rend), GCForeground, &gc_val);
 	xcol.pixel = gc_val.foreground;
-        XQueryColor(display, DefaultColormapOfScreen(
-              DefaultScreenOfDisplay(display)), &xcol);
+        XQueryColor(display, DefaultColormap(display,
+              XScreenNumberOfScreen(XtScreen(XtWindowToWidget(display,window)))), &xcol);
 	fg_color.pixel = xcol.pixel;
 	fg_color.color.red = xcol.red;
 	fg_color.color.green = xcol.green;
openSUSE Build Service is sponsored by