diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | unix/tkUnixMenu.c | 15 | ||||
-rw-r--r-- | win/tkWinMenu.c | 28 |
3 files changed, 30 insertions, 17 deletions
@@ -1,5 +1,9 @@ 2004-05-03 Jeff Hobbs <jeffh@ActiveState.com> + * win/tkWinMenu.c, unix/tkUnixMenu.c (DrawMenuEntryLabel): place + images of compound menu entries in indicator space if not a radio + of checkbutton. [Bug #756952] (eserte) + * win/tkWinX.c: fix drawing of unicode chars in menu * win/tkWinInt.h (TkWinProcs): titles. [Bug #904371] (riefenstahl) * win/tkWinMenu.c (ReconfigureWindowsMenu): diff --git a/unix/tkUnixMenu.c b/unix/tkUnixMenu.c index 1e6a682..c96dd9b 100644 --- a/unix/tkUnixMenu.c +++ b/unix/tkUnixMenu.c @@ -8,7 +8,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkUnixMenu.c,v 1.9 2003/08/14 12:30:11 dkf Exp $ + * RCS: @(#) $Id: tkUnixMenu.c,v 1.10 2004/05/03 23:23:14 hobbs Exp $ */ #include "tkPort.h" @@ -763,10 +763,23 @@ DrawMenuEntryLabel(menuPtr, mePtr, d, gc, tkfont, fmPtr, x, y, width, height) break; } case COMPOUND_LEFT: { + /* + * Position image in the indicator space to the left of the + * entries, unless this entry is a radio|check button because + * then the indicator space will be used. + */ textXOffset = imageWidth + 2; textYOffset = 0; imageXOffset = 0; imageYOffset = 0; + if ((mePtr->type != CHECK_BUTTON_ENTRY) + && (mePtr->type != RADIO_BUTTON_ENTRY)) { + textXOffset -= indicatorSpace; + if (textXOffset < 0) { + textXOffset = 0; + } + imageXOffset = -indicatorSpace; + } break; } case COMPOUND_RIGHT: { diff --git a/win/tkWinMenu.c b/win/tkWinMenu.c index 69f8eb7..203389e 100644 --- a/win/tkWinMenu.c +++ b/win/tkWinMenu.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkWinMenu.c,v 1.32 2004/05/03 22:40:30 hobbs Exp $ + * RCS: @(#) $Id: tkWinMenu.c,v 1.33 2004/05/03 23:23:14 hobbs Exp $ */ #define OEMRESOURCE @@ -2116,26 +2116,22 @@ DrawMenuEntryLabel( } case COMPOUND_LEFT: { /* - * The standard image position on Windows is - * in the indicator space to the left of - * the entries. Of course if this entry is - * a radio/check button, we can't do that - * because the indicator space will be used. + * The standard image position on Windows is in the indicator + * space to the left of the entries, unless this entry is a + * radio|check button because then the indicator space will + * be used. */ - if ((mePtr->type == CHECK_BUTTON_ENTRY) - || (mePtr->type == RADIO_BUTTON_ENTRY)) { - textXOffset = imageWidth + 2; - textYOffset = 0; - imageXOffset = 0; - imageYOffset = 0; - } else { - textXOffset = imageWidth + 2 - indicatorSpace; + textXOffset = imageWidth + 2; + textYOffset = 0; + imageXOffset = 0; + imageYOffset = 0; + if ((mePtr->type != CHECK_BUTTON_ENTRY) + && (mePtr->type != RADIO_BUTTON_ENTRY)) { + textXOffset -= indicatorSpace; if (textXOffset < 0) { textXOffset = 0; } - textYOffset = 0; imageXOffset = -indicatorSpace; - imageYOffset = 0; } break; } |