--- openmotif-2.3.0-orig/lib/Xm/I18List.c 2005-12-09 15:29:01.000000000 +0100 +++ openmotif-2.3.0/lib/Xm/I18List.c 2008-02-15 23:48:05.000000000 +0100 @@ -2086,7 +2086,7 @@ values.graphics_exposures = False; mask = GCForeground | GCBackground | GCFont | GCGraphicsExposures; - smask = mask | GCStipple | GCFillStyle; + smask = mask | GCFillStyle; XmI18List_gc(ilist) = XtGetGC(w, mask, &values); @@ -2117,6 +2117,8 @@ XmI18List_entry_background_gc(ilist) = XtGetGC(w, mask, &values); } + /*added for gray insensitive foreground (instead stipple)*/ + values.foreground=_XmAssignInsensitiveColor(w); XmI18List_stippled_gc(ilist) = XtGetGC(w, smask, &values); if (XmI18List_entry_background_use(ilist)) --- openmotif-2.3.0-orig/lib/Xm/IconButton.c 2005-10-17 15:15:51.000000000 +0200 +++ openmotif-2.3.0/lib/Xm/IconButton.c 2008-02-15 23:48:44.000000000 +0100 @@ -1836,7 +1836,7 @@ values.fill_style = FillStippled; mask = GCForeground | GCBackground | GCGraphicsExposures; - smask = mask | GCStipple | GCFillStyle; + smask = mask | GCFillStyle; if (fs) { values.font = fs->fid; @@ -1844,6 +1844,9 @@ } XmIconButton_gc(iw) = XtGetGC(w, mask, &values); + + /*added for gray insensitive foreground (instead stipple)*/ + values.foreground = _XmAssignInsensitiveColor(w); XmIconButton_stippled_text_gc(iw) = XtGetGC(w, smask, &values); /* --- openmotif-2.3.0-orig/lib/Xm/IconG.c 2003-10-06 12:10:24.000000000 +0200 +++ openmotif-2.3.0/lib/Xm/IconG.c 2008-02-15 23:49:35.000000000 +0100 @@ -3134,9 +3134,11 @@ /** insensitive gc **/ - values.foreground = IG_Foreground(wid) ; + + /*added for gray insensitive foreground (instead stipple)*/ + values.foreground = _XmAssignInsensitiveColor( XtParent(wid)); values.background = IG_Background(wid) ; - valueMask |= GCFillStyle | GCStipple; + valueMask |= GCFillStyle; values.fill_style = FillOpaqueStippled; values.stipple = _XmGetInsensitiveStippleBitmap(wid); --- openmotif-2.3.0-orig/lib/Xm/Label.c 2006-12-21 20:21:27.000000000 +0100 +++ openmotif-2.3.0/lib/Xm/Label.c 2008-02-15 23:51:01.000000000 +0100 @@ -688,8 +688,9 @@ lw->label.normal_GC = XtAllocateGC((Widget) lw, 0, valueMask, &values, dynamicMask, 0); - valueMask |= GCFillStyle | GCStipple; - values.foreground = lw->core.background_pixel; + /*added for gray insensitive foreground (instead stipple)*/ + valueMask |= GCFillStyle; + values.foreground = _XmAssignInsensitiveColor((Widget)lw); values.background = lw->primitive.foreground; values.fill_style = FillOpaqueStippled; values.stipple = _XmGetInsensitiveStippleBitmap((Widget) lw); @@ -1557,18 +1558,6 @@ lp->StringRect.width, lp->alignment, XmPrim_layout_direction(lw), NULL); -#ifdef USE_XFT - if (!XtIsSensitive(wid)) - { - XSetFillStyle(XtDisplay(lw), lp->insensitive_GC, FillStippled); - XFillRectangle(XtDisplay(lw), XtWindow(lw), lp->insensitive_GC, - lp->TextRect.x + lp->StringRect.x, - lp->TextRect.y + lp->StringRect.y, - lp->StringRect.width, - lp->StringRect.height); - XSetFillStyle(XtDisplay(lw), lp->insensitive_GC, FillOpaqueStippled); - } -#endif } if (lp->_acc_text != NULL) --- openmotif-2.3.0-orig/lib/Xm/LabelG.c 2006-12-26 18:37:09.000000000 +0100 +++ openmotif-2.3.0/lib/Xm/LabelG.c 2008-02-16 00:06:37.000000000 +0100 @@ -1247,8 +1247,9 @@ LabG_NormalGC(lw) = XtAllocateGC((Widget) mw, 0, valueMask, &values, dynamicMask, 0); - valueMask |= GCFillStyle | GCStipple; - values.foreground = LabG_Background(lw); + /*added for gray insensitive foreground (instead stipple)*/ + valueMask |= GCFillStyle; + values.foreground = _XmAssignInsensitiveColor((Widget)mw); values.background = LabG_Foreground(lw); values.fill_style = FillOpaqueStippled; @@ -2435,19 +2436,6 @@ lw->rectangle.y + LabG_TextRect(lw).y + LabG_StringRect(lw).y, LabG_StringRect(lw).width, LabG_Alignment(lw), LayoutG(lw), NULL); -#ifdef USE_XFT - if (!XtIsSensitive(wid)) { - XSetFillStyle(XtDisplay(lw), LabG_InsensitiveGC(lw), FillStippled); - XFillRectangle(XtDisplay(lw), XtWindow(lw), LabG_InsensitiveGC(lw), - lw->rectangle.x + LabG_TextRect(lw).x + - LabG_StringRect(lw).x, - lw->rectangle.y + LabG_TextRect(lw).y + - LabG_StringRect(lw).y, - LabG_StringRect(lw).width, - LabG_StringRect(lw).height); - XSetFillStyle(XtDisplay(lw), LabG_InsensitiveGC(lw), FillOpaqueStippled); - } -#endif } if (LabG__acceleratorText(lw) != NULL) --- openmotif-2.3.0-orig/lib/Xm/List.c 2007-01-24 18:07:35.000000000 +0100 +++ openmotif-2.3.0/lib/Xm/List.c 2008-02-16 00:01:55.000000000 +0100 @@ -2758,9 +2758,10 @@ lw->list.InverseGC = XtAllocateGC((Widget) lw, lw->core.depth, valueMask, &values, modifyMask, 0); - values.foreground = lw->primitive.foreground; + /*added for gray insensitive foreground (instead stipple)*/ + values.foreground = _XmAssignInsensitiveColor(lw); values.background = lw->core.background_pixel; - valueMask |= GCStipple | GCFillStyle; + valueMask |= GCFillStyle; values.fill_style = FillOpaqueStippled; values.stipple = _XmGetInsensitiveStippleBitmap((Widget) lw); --- openmotif-2.3.0-orig/lib/Xm/TextF.c 2006-08-28 15:53:30.000000000 +0200 +++ openmotif-2.3.0/lib/Xm/TextF.c 2008-02-16 00:05:22.000000000 +0100 @@ -1960,8 +1960,8 @@ valueMask |= GCFillStyle; if (stipple) { values.fill_style = FillStippled; - valueMask |= GCStipple; - values.stipple = tf->text.stipple_tile; + /*added for gray insensitive foreground (instead stipple)*/ + values.foreground = _XmAssignInsensitiveColor((Widget)tf); } else values.fill_style = FillSolid; } --- openmotif-2.3.0-orig/lib/Xm/TextOut.c 2006-12-12 12:54:14.000000000 +0100 +++ openmotif-2.3.0/lib/Xm/TextOut.c 2008-02-16 00:04:31.000000000 +0100 @@ -625,8 +625,8 @@ valueMask |= GCFillStyle; if (stipple) { values.fill_style = FillStippled; - valueMask |= GCStipple; - values.stipple = data->stipple_tile; + /*added for gray insensitive foreground (instead stipple)*/ + values.foreground = _XmAssignInsensitiveColor((Widget)tw); } else values.fill_style = FillSolid; } --- openmotif-2.3.0-orig/lib/Xm/Xm.c 2005-12-19 11:32:36.000000000 +0100 +++ openmotif-2.3.0/lib/Xm/Xm.c 2008-02-15 23:58:28.000000000 +0100 @@ -426,3 +426,45 @@ _XmAppUnlock(app); return return_wid; } + +/************************************************************************ + * + * _XmAssignInsensitiveColor + * Allocate the Gray color for display widget like insensitive. + * + * + ************************************************************************/ + +Pixel +_XmAssignInsensitiveColor(Widget w) +{ + static XColor screen_in_out; + int status; + Pixel p; + + p = w->core.background_pixel; + XQueryColor(XtDisplay(w), w->core.colormap, &screen_in_out); + if ((abs(screen_in_out.red-RGB_GREY_VALUE)core.colormap, &screen_in_out); + if (status) + p = screen_in_out.pixel; + } else { + /*gray color*/ + screen_in_out.red=RGB_GREY_VALUE<<8; + screen_in_out.green=RGB_GREY_VALUE<<8; + screen_in_out.blue=RGB_GREY_VALUE<<8; + + status = XAllocColor(XtDisplay(w), w->core.colormap, &screen_in_out); + if (status) + p = screen_in_out.pixel; + } + + return p; +} --- openmotif-2.3.0-orig/lib/Xm/XmI.h 2005-12-19 11:32:36.000000000 +0100 +++ openmotif-2.3.0/lib/Xm/XmI.h 2008-02-15 23:59:38.000000000 +0100 @@ -276,5 +276,9 @@ } /* Close scope of 'extern "C"' declaration which encloses file. */ #endif +#define RGB_GREY_VALUE 128 +#define RGB_GREY_PRESISE 50 +extern Pixel _XmAssignInsensitiveColor(Widget w); + #endif /* _XmI_h */ /* DON'T ADD ANYTHING AFTER THIS #endif */