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;