diff options
author | fvogel <fvogelnew1@free.fr> | 2018-09-30 18:58:25 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2018-09-30 18:58:25 (GMT) |
commit | d1f4d0e4a8e4c74689750d2470eb48403fd03478 (patch) | |
tree | 120e21ae6b94cb71039f80eb08cc9af96cb29ad3 /unix/tkUnixMenu.c | |
parent | 62d807f1be365d52a6a7f04a30d7ebdec7a8836b (diff) | |
parent | beecae91bf3fc660e78c836cb4354cf5244b41f3 (diff) | |
download | tk-d1f4d0e4a8e4c74689750d2470eb48403fd03478.zip tk-d1f4d0e4a8e4c74689750d2470eb48403fd03478.tar.gz tk-d1f4d0e4a8e4c74689750d2470eb48403fd03478.tar.bz2 |
Fix [8229232472]: Cascade menu entry indicator wrong colour on Unix. Patch provided by cjmcdonald.
Diffstat (limited to 'unix/tkUnixMenu.c')
-rw-r--r-- | unix/tkUnixMenu.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/unix/tkUnixMenu.c b/unix/tkUnixMenu.c index bc1bd2e..2d02097 100644 --- a/unix/tkUnixMenu.c +++ b/unix/tkUnixMenu.c @@ -52,8 +52,8 @@ static void SetHelpMenu(TkMenu *menuPtr); static void DrawMenuEntryAccelerator(TkMenu *menuPtr, TkMenuEntry *mePtr, Drawable d, GC gc, Tk_Font tkfont, const Tk_FontMetrics *fmPtr, - Tk_3DBorder activeBorder, int x, int y, - int width, int height, int drawArrow); + Tk_3DBorder activeBorder, Tk_3DBorder bgBorder, + 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, @@ -481,6 +481,7 @@ DrawMenuEntryAccelerator( Tk_Font tkfont, /* The precalculated font */ const Tk_FontMetrics *fmPtr,/* The precalculated metrics */ Tk_3DBorder activeBorder, /* The border for an active item */ + Tk_3DBorder bgBorder, /* The background border */ int x, /* Left coordinate of entry rect */ int y, /* Top coordinate of entry rect */ int width, /* Width of entry */ @@ -510,8 +511,9 @@ DrawMenuEntryAccelerator( points[1].y = points[0].y + CASCADE_ARROW_HEIGHT; points[2].x = points[0].x + CASCADE_ARROW_WIDTH; points[2].y = points[0].y + CASCADE_ARROW_HEIGHT/2; - Tk_Fill3DPolygon(menuPtr->tkwin, d, activeBorder, points, 3, - DECORATION_BORDER_WIDTH, + Tk_Fill3DPolygon(menuPtr->tkwin, d, + (mePtr->state == ENTRY_ACTIVE) ? activeBorder : bgBorder, + points, 3, DECORATION_BORDER_WIDTH, (menuPtr->postedCascade == mePtr) ? TK_RELIEF_SUNKEN : TK_RELIEF_RAISED); } else if (mePtr->accelPtr != NULL) { @@ -1326,8 +1328,7 @@ TkpDrawMenuEntry( int height, /* Height of the current rectangle */ int strictMotif, /* Boolean flag */ int drawArrow) /* Whether or not to draw the cascade arrow - * for cascade items. Only applies to - * Windows. */ + * for cascade items. */ { GC gc, indicatorGC; XColor *indicatorColor, *disableColor = NULL; @@ -1435,7 +1436,8 @@ TkpDrawMenuEntry( DrawMenuEntryLabel(menuPtr, mePtr, d, gc, tkfont, fmPtr, x, adjustedY, width, adjustedHeight); DrawMenuEntryAccelerator(menuPtr, mePtr, d, gc, tkfont, fmPtr, - activeBorder, x, adjustedY, width, adjustedHeight, drawArrow); + activeBorder, bgBorder, x, adjustedY, width, adjustedHeight, + drawArrow); if (!mePtr->hideMargin) { if (mePtr->state == ENTRY_ACTIVE) { bgBorder = activeBorder; |