summaryrefslogtreecommitdiffstats
path: root/unix/tkUnixMenu.c
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2018-09-30 18:58:25 (GMT)
committerfvogel <fvogelnew1@free.fr>2018-09-30 18:58:25 (GMT)
commitd1f4d0e4a8e4c74689750d2470eb48403fd03478 (patch)
tree120e21ae6b94cb71039f80eb08cc9af96cb29ad3 /unix/tkUnixMenu.c
parent62d807f1be365d52a6a7f04a30d7ebdec7a8836b (diff)
parentbeecae91bf3fc660e78c836cb4354cf5244b41f3 (diff)
downloadtk-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.c16
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;