Index: unix/tkUnixMenu.c ================================================================== --- unix/tkUnixMenu.c +++ unix/tkUnixMenu.c @@ -55,11 +55,12 @@ Tk_3DBorder activeBorder, int x, int y, int width, int height, int drawArrow); static void DrawMenuEntryBackground(TkMenu *menuPtr, TkMenuEntry *mePtr, Drawable d, Tk_3DBorder activeBorder, Tk_3DBorder bgBorder, - int x, int y, int width, int heigth); + int x, int y, int width, int heigth, + int strictMotif); static void DrawMenuEntryIndicator(TkMenu *menuPtr, TkMenuEntry *mePtr, Drawable d, Tk_3DBorder border, XColor *indicatorColor, XColor *disableColor, Tk_Font tkfont, const Tk_FontMetrics *fmPtr, int x, int y, @@ -428,11 +429,12 @@ Tk_3DBorder activeBorder, /* The border for an active item */ Tk_3DBorder bgBorder, /* The background border */ int x, /* Left coordinate of entry rect */ int y, /* Right coordinate of entry rect */ int width, /* Width of entry rect */ - int height) /* Height of entry rect */ + int height, /* Height of entry rect */ + int strictMotif) /* Boolean flag */ { if (mePtr->state == ENTRY_ACTIVE) { int relief; int activeBorderWidth; @@ -441,11 +443,11 @@ if ((menuPtr->menuType == MENUBAR) && ((menuPtr->postedCascade == NULL) || (menuPtr->postedCascade != mePtr))) { relief = TK_RELIEF_FLAT; } else { - relief = TK_RELIEF_RAISED; + relief = strictMotif ? TK_RELIEF_RAISED : TK_RELIEF_FLAT; } Tk_GetPixelsFromObj(NULL, menuPtr->tkwin, menuPtr->activeBorderWidthPtr, &activeBorderWidth); Tk_Fill3DRectangle(menuPtr->tkwin, d, bgBorder, x, y, width, height, @@ -1421,11 +1423,11 @@ * menubars, we have to draw the rest of the entry taking into account the * padding. */ DrawMenuEntryBackground(menuPtr, mePtr, d, activeBorder, - bgBorder, x, y, width, height); + bgBorder, x, y, width, height, strictMotif); if (mePtr->type == SEPARATOR_ENTRY) { DrawMenuSeparator(menuPtr, mePtr, d, gc, tkfont, fmPtr, x, adjustedY, width, adjustedHeight); } else if (mePtr->type == TEAROFF_ENTRY) { Index: win/tkWinMenu.c ================================================================== --- win/tkWinMenu.c +++ win/tkWinMenu.c @@ -127,11 +127,12 @@ Drawable d, GC gc, Tk_3DBorder activeBorder, int x,int y, int width, int height, int drawArrow); static void DrawMenuEntryBackground(TkMenu *menuPtr, TkMenuEntry *mePtr, Drawable d, Tk_3DBorder activeBorder, Tk_3DBorder bgBorder, - int x, int y, int width, int heigth); + int x, int y, int width, int heigth, + int strictMotif); static void DrawMenuEntryIndicator(TkMenu *menuPtr, TkMenuEntry *mePtr, Drawable d, GC gc, GC indicatorGC, Tk_Font tkfont, const Tk_FontMetrics *fmPtr, int x, int y, int width, int height); @@ -2609,11 +2610,11 @@ * menubars, we have to draw the rest of the entry taking into account the * padding. */ DrawMenuEntryBackground(menuPtr, mePtr, d, activeBorder, - bgBorder, adjustedX, adjustedY-padY, width, height); + bgBorder, adjustedX, adjustedY-padY, width, height, strictMotif); if (mePtr->type == SEPARATOR_ENTRY) { DrawMenuSeparator(menuPtr, mePtr, d, gc, tkfont, fmPtr, adjustedX, adjustedY, width, adjustedHeight); } else if (mePtr->type == TEAROFF_ENTRY) { @@ -2784,11 +2785,12 @@ Tk_3DBorder activeBorder, /* Border for active items */ Tk_3DBorder bgBorder, /* Border for the background */ int x, /* left edge */ int y, /* top edge */ int width, /* width of rectangle to draw */ - int height) /* height of rectangle to draw */ + int height, /* height of rectangle to draw */ + int strictMotif) /* Boolean flag (not used) */ { if (mePtr->state == ENTRY_ACTIVE || (mePtr->entryFlags & ENTRY_PLATFORM_FLAG1)!=0 ) { bgBorder = activeBorder; }