summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--generic/tkWindow.c166
-rw-r--r--library/menu.tcl112
-rw-r--r--xlib/xcolors.c132
4 files changed, 216 insertions, 199 deletions
diff --git a/ChangeLog b/ChangeLog
index f4dfe0e..c9c5fce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-05-05 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * xlib/xcolors.c: Single "const" addition
+ * generic/tkWindow.c: If tk.dll loaded in cygwin, don't use the win32 file dialogs
+
2012-05-04 Jan Nijtmans <nijtmans@users.sf.net>
* library/menu.tcl: [Bug 2768586]: Menu posting problem on dual monitors
diff --git a/generic/tkWindow.c b/generic/tkWindow.c
index 40cf462..4d5e895 100644
--- a/generic/tkWindow.c
+++ b/generic/tkWindow.c
@@ -14,7 +14,7 @@
#include "tkInt.h"
-#if !( defined(__WIN32__) || defined(MAC_OSX_TK))
+#if !(defined(__WIN32__) || defined(MAC_OSX_TK))
#include "tkUnixInt.h"
#endif
@@ -95,13 +95,14 @@ static const XSetWindowAttributes defAtts= {
#define ISSAFE 1
#define PASSMAINWINDOW 2
+#define NOOBJPROC 4
+#define WINMACONLY 8
+#define USEINITPROC 16
typedef int (TkInitProc)(Tcl_Interp *interp, ClientData clientData);
typedef struct {
- const char *name; /* Name of command. */
- Tcl_CmdProc *cmdProc; /* Command's string-based function. */
- Tcl_ObjCmdProc *objProc; /* Command's object-based function. */
- TkInitProc *initProc; /* Command's initialization function */
+ const char *name; /* Name of command. */
+ Tcl_ObjCmdProc *objProc; /* Command's object- (or string-) based function, or initProc. */
int flags;
} TkCmd;
@@ -110,72 +111,72 @@ static const TkCmd commands[] = {
* Commands that are part of the intrinsics:
*/
- {"bell", NULL, Tk_BellObjCmd, NULL, PASSMAINWINDOW},
- {"bind", NULL, Tk_BindObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"bindtags", NULL, Tk_BindtagsObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"clipboard", NULL, Tk_ClipboardObjCmd, NULL, PASSMAINWINDOW},
- {"destroy", NULL, Tk_DestroyObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"event", NULL, Tk_EventObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"focus", NULL, Tk_FocusObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"font", NULL, Tk_FontObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"grab", NULL, Tk_GrabObjCmd, NULL, PASSMAINWINDOW},
- {"grid", NULL, Tk_GridObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"image", NULL, Tk_ImageObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"lower", NULL, Tk_LowerObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"option", NULL, Tk_OptionObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"pack", NULL, Tk_PackObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"place", NULL, Tk_PlaceObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"raise", NULL, Tk_RaiseObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"selection", NULL, Tk_SelectionObjCmd, NULL, PASSMAINWINDOW},
- {"tk", NULL, NULL, TkInitTkCmd, PASSMAINWINDOW|ISSAFE},
- {"tkwait", NULL, Tk_TkwaitObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"update", NULL, Tk_UpdateObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"winfo", NULL, Tk_WinfoObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"wm", NULL, Tk_WmObjCmd, NULL, PASSMAINWINDOW},
+ {"bell", Tk_BellObjCmd, PASSMAINWINDOW},
+ {"bind", Tk_BindObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"bindtags", Tk_BindtagsObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"clipboard", Tk_ClipboardObjCmd, PASSMAINWINDOW},
+ {"destroy", Tk_DestroyObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"event", Tk_EventObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"focus", Tk_FocusObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"font", Tk_FontObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"grab", Tk_GrabObjCmd, PASSMAINWINDOW},
+ {"grid", Tk_GridObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"image", Tk_ImageObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"lower", Tk_LowerObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"option", Tk_OptionObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"pack", Tk_PackObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"place", Tk_PlaceObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"raise", Tk_RaiseObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"selection", Tk_SelectionObjCmd, PASSMAINWINDOW},
+ {"tk", (Tcl_ObjCmdProc *) TkInitTkCmd, USEINITPROC|PASSMAINWINDOW|ISSAFE},
+ {"tkwait", Tk_TkwaitObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"update", Tk_UpdateObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"winfo", Tk_WinfoObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"wm", Tk_WmObjCmd, PASSMAINWINDOW},
/*
* Default widget class commands.
*/
- {"button", NULL, Tk_ButtonObjCmd, NULL, ISSAFE},
- {"canvas", NULL, Tk_CanvasObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"checkbutton", NULL, Tk_CheckbuttonObjCmd, NULL, ISSAFE},
- {"entry", NULL, Tk_EntryObjCmd, NULL, ISSAFE},
- {"frame", NULL, Tk_FrameObjCmd, NULL, ISSAFE},
- {"label", NULL, Tk_LabelObjCmd, NULL, ISSAFE},
- {"labelframe", NULL, Tk_LabelframeObjCmd, NULL, ISSAFE},
- {"listbox", NULL, Tk_ListboxObjCmd, NULL, ISSAFE},
- {"menubutton", NULL, Tk_MenubuttonObjCmd, NULL, ISSAFE},
- {"message", NULL, Tk_MessageObjCmd, NULL, ISSAFE},
- {"panedwindow", NULL, Tk_PanedWindowObjCmd, NULL, ISSAFE},
- {"radiobutton", NULL, Tk_RadiobuttonObjCmd, NULL, ISSAFE},
- {"scale", NULL, Tk_ScaleObjCmd, NULL, ISSAFE},
- {"scrollbar", Tk_ScrollbarCmd,NULL, NULL, PASSMAINWINDOW|ISSAFE},
- {"spinbox", NULL, Tk_SpinboxObjCmd, NULL, ISSAFE},
- {"text", NULL, Tk_TextObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"toplevel", NULL, Tk_ToplevelObjCmd, NULL, 0},
+ {"button", Tk_ButtonObjCmd, ISSAFE},
+ {"canvas", Tk_CanvasObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"checkbutton", Tk_CheckbuttonObjCmd, ISSAFE},
+ {"entry", Tk_EntryObjCmd, ISSAFE},
+ {"frame", Tk_FrameObjCmd, ISSAFE},
+ {"label", Tk_LabelObjCmd, ISSAFE},
+ {"labelframe", Tk_LabelframeObjCmd, ISSAFE},
+ {"listbox", Tk_ListboxObjCmd, ISSAFE},
+ {"menubutton", Tk_MenubuttonObjCmd, ISSAFE},
+ {"message", Tk_MessageObjCmd, ISSAFE},
+ {"panedwindow", Tk_PanedWindowObjCmd, ISSAFE},
+ {"radiobutton", Tk_RadiobuttonObjCmd, ISSAFE},
+ {"scale", Tk_ScaleObjCmd, ISSAFE},
+ {"scrollbar", (Tcl_ObjCmdProc *) Tk_ScrollbarCmd, NOOBJPROC|PASSMAINWINDOW|ISSAFE},
+ {"spinbox", Tk_SpinboxObjCmd, ISSAFE},
+ {"text", Tk_TextObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"toplevel", Tk_ToplevelObjCmd, 0},
/*
* Classic widget class commands.
*/
- {"::tk::button", NULL, Tk_ButtonObjCmd, NULL, ISSAFE},
- {"::tk::canvas", NULL, Tk_CanvasObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"::tk::checkbutton",NULL, Tk_CheckbuttonObjCmd, NULL, ISSAFE},
- {"::tk::entry", NULL, Tk_EntryObjCmd, NULL, ISSAFE},
- {"::tk::frame", NULL, Tk_FrameObjCmd, NULL, ISSAFE},
- {"::tk::label", NULL, Tk_LabelObjCmd, NULL, ISSAFE},
- {"::tk::labelframe",NULL, Tk_LabelframeObjCmd, NULL, ISSAFE},
- {"::tk::listbox", NULL, Tk_ListboxObjCmd, NULL, ISSAFE},
- {"::tk::menubutton",NULL, Tk_MenubuttonObjCmd, NULL, ISSAFE},
- {"::tk::message", NULL, Tk_MessageObjCmd, NULL, ISSAFE},
- {"::tk::panedwindow",NULL, Tk_PanedWindowObjCmd, NULL, ISSAFE},
- {"::tk::radiobutton",NULL, Tk_RadiobuttonObjCmd, NULL, ISSAFE},
- {"::tk::scale", NULL, Tk_ScaleObjCmd, NULL, ISSAFE},
- {"::tk::scrollbar", Tk_ScrollbarCmd,NULL, NULL, PASSMAINWINDOW|ISSAFE},
- {"::tk::spinbox", NULL, Tk_SpinboxObjCmd, NULL, ISSAFE},
- {"::tk::text", NULL, Tk_TextObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
- {"::tk::toplevel", NULL, Tk_ToplevelObjCmd, NULL, 0},
+ {"::tk::button", Tk_ButtonObjCmd, ISSAFE},
+ {"::tk::canvas", Tk_CanvasObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"::tk::checkbutton",Tk_CheckbuttonObjCmd, ISSAFE},
+ {"::tk::entry", Tk_EntryObjCmd, ISSAFE},
+ {"::tk::frame", Tk_FrameObjCmd, ISSAFE},
+ {"::tk::label", Tk_LabelObjCmd, ISSAFE},
+ {"::tk::labelframe",Tk_LabelframeObjCmd, ISSAFE},
+ {"::tk::listbox", Tk_ListboxObjCmd, ISSAFE},
+ {"::tk::menubutton",Tk_MenubuttonObjCmd, ISSAFE},
+ {"::tk::message", Tk_MessageObjCmd, ISSAFE},
+ {"::tk::panedwindow",Tk_PanedWindowObjCmd, ISSAFE},
+ {"::tk::radiobutton",Tk_RadiobuttonObjCmd, ISSAFE},
+ {"::tk::scale", Tk_ScaleObjCmd, ISSAFE},
+ {"::tk::scrollbar", (Tcl_ObjCmdProc *) Tk_ScrollbarCmd, NOOBJPROC|PASSMAINWINDOW|ISSAFE},
+ {"::tk::spinbox", Tk_SpinboxObjCmd, ISSAFE},
+ {"::tk::text", Tk_TextObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"::tk::toplevel", Tk_ToplevelObjCmd, 0},
/*
* Standard dialog support. Note that the Unix/X11 platform implements
@@ -183,11 +184,11 @@ static const TkCmd commands[] = {
*/
#if defined(__WIN32__) || defined(MAC_OSX_TK)
- {"tk_chooseColor", NULL, Tk_ChooseColorObjCmd, NULL, PASSMAINWINDOW},
- {"tk_chooseDirectory", NULL, Tk_ChooseDirectoryObjCmd,NULL,PASSMAINWINDOW},
- {"tk_getOpenFile", NULL, Tk_GetOpenFileObjCmd, NULL, PASSMAINWINDOW},
- {"tk_getSaveFile", NULL, Tk_GetSaveFileObjCmd, NULL, PASSMAINWINDOW},
- {"tk_messageBox", NULL, Tk_MessageBoxObjCmd, NULL, PASSMAINWINDOW},
+ {"tk_chooseColor", Tk_ChooseColorObjCmd, PASSMAINWINDOW},
+ {"tk_chooseDirectory", Tk_ChooseDirectoryObjCmd,WINMACONLY|PASSMAINWINDOW},
+ {"tk_getOpenFile", Tk_GetOpenFileObjCmd, WINMACONLY|PASSMAINWINDOW},
+ {"tk_getSaveFile", Tk_GetSaveFileObjCmd, WINMACONLY|PASSMAINWINDOW},
+ {"tk_messageBox", Tk_MessageBoxObjCmd, PASSMAINWINDOW},
#endif
/*
@@ -196,9 +197,9 @@ static const TkCmd commands[] = {
#if defined(MAC_OSX_TK)
{"::tk::unsupported::MacWindowStyle",
- NULL, TkUnsupported1ObjCmd, NULL, PASSMAINWINDOW|ISSAFE},
+ TkUnsupported1ObjCmd, PASSMAINWINDOW|ISSAFE},
#endif
- {NULL, NULL, NULL, NULL, 0}
+ {NULL, NULL, 0}
};
/*
@@ -858,6 +859,9 @@ TkCreateMainWindow(
{
Tk_Window tkwin;
int dummy, isSafe;
+#ifdef __WIN32__
+ int isWin32 = 0;
+#endif
Tcl_HashEntry *hPtr;
register TkMainInfo *mainPtr;
register TkWindow *winPtr;
@@ -865,6 +869,14 @@ TkCreateMainWindow(
ClientData clientData;
ThreadSpecificData *tsdPtr =
Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData));
+#ifdef __WIN32__
+ Tcl_Obj *stringObjPtr = Tcl_GetVar2Ex(interp, "::tcl_platform", "platform", 0);
+
+ if (stringObjPtr
+ && !strcmp(Tcl_GetString(stringObjPtr), "windows")) {
+ isWin32 = 1;
+ }
+#endif
/*
* Panic if someone updated the TkWindow structure without also updating
@@ -946,20 +958,24 @@ TkCreateMainWindow(
isSafe = Tcl_IsSafe(interp);
for (cmdPtr = commands; cmdPtr->name != NULL; cmdPtr++) {
- if ((cmdPtr->cmdProc == NULL) && (cmdPtr->objProc == NULL)
- && (cmdPtr->initProc == NULL)) {
+ if ((cmdPtr->objProc == NULL)) {
Tcl_Panic("TkCreateMainWindow: builtin command with NULL string and object procs");
}
+#ifdef __WIN32__
+ if (!isWin32 && (cmdPtr->flags & WINMACONLY)) {
+ continue;
+ }
+#endif
if (cmdPtr->flags & PASSMAINWINDOW) {
clientData = tkwin;
} else {
clientData = NULL;
}
- if (cmdPtr->initProc != NULL) {
- cmdPtr->initProc(interp, clientData);
- } else if (cmdPtr->cmdProc != NULL) {
- Tcl_CreateCommand(interp, cmdPtr->name, cmdPtr->cmdProc,
- clientData, NULL);
+ if (cmdPtr->flags & USEINITPROC) {
+ ((TkInitProc *)cmdPtr->objProc)(interp, clientData);
+ } else if (cmdPtr->flags & NOOBJPROC) {
+ Tcl_CreateCommand(interp, cmdPtr->name,
+ (Tcl_CmdProc *) cmdPtr->objProc, clientData, NULL);
} else {
Tcl_CreateObjCommand(interp, cmdPtr->name, cmdPtr->objProc,
clientData, NULL);
diff --git a/library/menu.tcl b/library/menu.tcl
index 8337eae..5fb96fa 100644
--- a/library/menu.tcl
+++ b/library/menu.tcl
@@ -60,7 +60,7 @@
# This file is tricky because there are five different ways that menus
# can be used:
#
-# 1. As a pulldown from a menubutton. In this style, the variable
+# 1. As a pulldown from a menubutton. In this style, the variable
# tk::Priv(postedMb) identifies the posted menubutton.
# 2. As a torn-off menu copied from some other menu. In this style
# tk::Priv(postedMb) is empty, and menu's type is "tearoff".
@@ -282,81 +282,81 @@ proc ::tk::MbPost {w {x {}} {y {}}} {
update idletasks
if {[catch {
switch [$w cget -direction] {
- above {
- set x [winfo rootx $w]
- set y [expr {[winfo rooty $w] - [winfo reqheight $menu]}]
+ above {
+ set x [winfo rootx $w]
+ set y [expr {[winfo rooty $w] - [winfo reqheight $menu]}]
# if we go offscreen to the top, show as 'below'
if {$y < [winfo vrooty $w]} {
set y [expr {[winfo vrooty $w] + [winfo rooty $w] + [winfo reqheight $w]}]
}
PostOverPoint $menu $x $y
- }
- below {
- set x [winfo rootx $w]
- set y [expr {[winfo rooty $w] + [winfo height $w]}]
+ }
+ below {
+ set x [winfo rootx $w]
+ set y [expr {[winfo rooty $w] + [winfo height $w]}]
# if we go offscreen to the bottom, show as 'above'
set mh [winfo reqheight $menu]
if {($y + $mh) > ([winfo vrooty $w] + [winfo vrootheight $w])} {
set y [expr {[winfo vrooty $w] + [winfo vrootheight $w] + [winfo rooty $w] - $mh}]
}
PostOverPoint $menu $x $y
- }
- left {
- set x [expr {[winfo rootx $w] - [winfo reqwidth $menu]}]
- set y [expr {(2 * [winfo rooty $w] + [winfo height $w]) / 2}]
- set entry [MenuFindName $menu [$w cget -text]]
- if {[$w cget -indicatoron] && $entry ne ""} {
+ }
+ left {
+ set x [expr {[winfo rootx $w] - [winfo reqwidth $menu]}]
+ set y [expr {(2 * [winfo rooty $w] + [winfo height $w]) / 2}]
+ set entry [MenuFindName $menu [$w cget -text]]
+ if {[$w cget -indicatoron]} {
if {$entry == [$menu index last]} {
- incr y [expr {-([$menu yposition $entry] \
- + [winfo reqheight $menu])/2}]
+ incr y [expr {-([$menu yposition $entry] \
+ + [winfo reqheight $menu])/2}]
} else {
- incr y [expr {-([$menu yposition $entry] \
+ incr y [expr {-([$menu yposition $entry] \
+ [$menu yposition [expr {$entry+1}]])/2}]
}
- }
+ }
PostOverPoint $menu $x $y
if {$entry ne "" \
&& [$menu entrycget $entry -state] ne "disabled"} {
- $menu activate $entry
+ $menu activate $entry
GenerateMenuSelect $menu
- }
- }
- right {
- set x [expr {[winfo rootx $w] + [winfo width $w]}]
- set y [expr {(2 * [winfo rooty $w] + [winfo height $w]) / 2}]
- set entry [MenuFindName $menu [$w cget -text]]
- if {[$w cget -indicatoron] && $entry ne ""} {
+ }
+ }
+ right {
+ set x [expr {[winfo rootx $w] + [winfo width $w]}]
+ set y [expr {(2 * [winfo rooty $w] + [winfo height $w]) / 2}]
+ set entry [MenuFindName $menu [$w cget -text]]
+ if {[$w cget -indicatoron]} {
if {$entry == [$menu index last]} {
- incr y [expr {-([$menu yposition $entry] \
- + [winfo reqheight $menu])/2}]
+ incr y [expr {-([$menu yposition $entry] \
+ + [winfo reqheight $menu])/2}]
} else {
- incr y [expr {-([$menu yposition $entry] \
+ incr y [expr {-([$menu yposition $entry] \
+ [$menu yposition [expr {$entry+1}]])/2}]
}
- }
+ }
PostOverPoint $menu $x $y
if {$entry ne "" \
&& [$menu entrycget $entry -state] ne "disabled"} {
- $menu activate $entry
+ $menu activate $entry
GenerateMenuSelect $menu
- }
- }
- default {
- if {[$w cget -indicatoron]} {
+ }
+ }
+ default {
+ if {[$w cget -indicatoron]} {
if {$y eq ""} {
set x [expr {[winfo rootx $w] + [winfo width $w]/2}]
set y [expr {[winfo rooty $w] + [winfo height $w]/2}]
- }
+ }
PostOverPoint $menu $x $y [MenuFindName $menu [$w cget -text]]
} else {
PostOverPoint $menu [winfo rootx $w] [expr {[winfo rooty $w]+[winfo height $w]}]
- }
- }
+ }
+ }
}
} msg]} {
# Error posting menu (e.g. bogus -postcommand). Unpost it and
# reflect the error.
-
+
set savedInfo $errorInfo
MenuUnpost {}
error $msg $savedInfo
@@ -365,7 +365,7 @@ proc ::tk::MbPost {w {x {}} {y {}}} {
set Priv(tearoff) $tearoff
if {$tearoff != 0} {
- focus $menu
+ focus $menu
if {[winfo viewable $w]} {
SaveGrabInfo $w
grab -global $w
@@ -425,8 +425,7 @@ proc ::tk::MenuUnpost menu {
} elseif {$Priv(popup) ne ""} {
$Priv(popup) unpost
set Priv(popup) {}
- } elseif {[$menu cget -type] ne "menubar" \
- && [$menu cget -type] ne "tearoff"} {
+ } elseif {[$menu cget -type] ne "menubar" && [$menu cget -type] ne "tearoff"} {
# We're in a cascaded sub-menu from a torn-off menu or popup.
# Unpost all the menus up to the toplevel one (but not
# including the top-level torn-off one) and deactivate the
@@ -434,8 +433,7 @@ proc ::tk::MenuUnpost menu {
while {1} {
set parent [winfo parent $menu]
- if {[winfo class $parent] ne "Menu" \
- || ![winfo ismapped $parent]} {
+ if {[winfo class $parent] ne "Menu" || ![winfo ismapped $parent]} {
break
}
$parent activate none
@@ -454,8 +452,8 @@ proc ::tk::MenuUnpost menu {
}
if {($Priv(tearoff) != 0) || $Priv(menuBar) ne ""} {
- # Release grab, if any, and restore the previous grab, if there
- # was one.
+ # Release grab, if any, and restore the previous grab, if there
+ # was one.
if {$menu ne ""} {
set grab [grab current $menu]
if {$grab ne ""} {
@@ -702,7 +700,7 @@ proc ::tk::MenuInvoke {w buttonRelease} {
set isCascade [string equal [$w type $active] "cascade"]
# Only de-activate the active item if it's a cascade; this prevents
- # the annoying "activation flicker" you otherwise get with
+ # the annoying "activation flicker" you otherwise get with
# checkbuttons/commands/etc. on menubars
if { $isCascade } {
@@ -1030,11 +1028,10 @@ proc ::tk::TraverseToMenu {w char} {
return
}
while {[winfo class $w] eq "Menu"} {
- if {[$w cget -type] ne "menubar" && $Priv(postedMb) eq ""} {
- return
- }
if {[$w cget -type] eq "menubar"} {
break
+ } elseif {$Priv(postedMb) eq ""} {
+ return
}
set w [winfo parent $w]
}
@@ -1153,8 +1150,7 @@ proc ::tk::MenuFirstEntry menu {
# otherwise, if the first entry of the cascade is a cascade,
# we can get an annoying cascading effect resulting in a bunch of
# menus getting posted (bug 676)
- if {[$menu type $i] eq "cascade" \
- && [$menu cget -type] eq "menubar"} {
+ if {[$menu type $i] eq "cascade" && [$menu cget -type] eq "menubar"} {
set cascade [$menu entrycget $i -menu]
if {$cascade ne ""} {
$menu postcascade $i
@@ -1211,7 +1207,7 @@ proc ::tk::MenuFindName {menu s} {
proc ::tk::PostOverPoint {menu x y {entry {}}} {
global tcl_platform
-
+
if {$entry ne ""} {
if {$entry == [$menu index last]} {
incr y [expr {-([$menu yposition $entry] \
@@ -1235,11 +1231,11 @@ proc ::tk::PostOverPoint {menu x y {entry {}}} {
# Windows puts it in the wrong place for us. We must also
# subtract an extra amount for half the height of the current
# entry. To be safe we subtract an extra 10.
- # NOTE: this issue appears to have been resolved in the Window
- # manager provided with Vista and Windows 7.
+ # NOTE: this issue appears to have been resolved in the Window
+ # manager provided with Vista and Windows 7.
if {$ver < 6} {
set yoffset [expr {[winfo screenheight $menu] \
- - $y - [winfo reqheight $menu] - 10}]
+ - $y - [winfo reqheight $menu] - 10}]
if {$yoffset < [winfo vrooty $menu]} {
# The bottom of the menu is offscreen, so adjust upwards
incr y [expr {$yoffset - [winfo vrooty $menu]}]
@@ -1283,7 +1279,7 @@ proc ::tk::RestoreOldGrab {} {
variable ::tk::Priv
if {$Priv(oldGrab) ne ""} {
- # Be careful restoring the old grab, since it's window may not
+ # Be careful restoring the old grab, since it's window may not
# be visible anymore.
catch {
@@ -1304,7 +1300,7 @@ proc ::tk_menuSetFocus {menu} {
}
focus $menu
}
-
+
proc ::tk::GenerateMenuSelect {menu} {
variable ::tk::Priv
diff --git a/xlib/xcolors.c b/xlib/xcolors.c
index 87d58f9..497f251 100644
--- a/xlib/xcolors.c
+++ b/xlib/xcolors.c
@@ -17,8 +17,8 @@
* Index array. For each of the characters 'a'-'y', this table gives the first color
* starting with that character in the xColors table.
*/
-static unsigned char az[] = {0, 4, 12, 19, 43, 44, 47, 57, 59, 61, 62, 63, 86, 101,
- 104, 109, 120, 121, 124, 137, 141, 142, 144, 147, 148, 150};
+static const unsigned char az[] = {0, 4, 12, 19, 43, 44, 47, 57, 59, 61,
+ 62, 63, 86, 101, 104, 109, 120, 121, 124, 137, 141, 142, 144, 147, 148, 150};
/*
* Define an array that defines the mapping from color names to RGB values.
@@ -41,17 +41,17 @@ typedef char elem[32];
static const elem xColors[] = {
/* Colors starting with 'a' */
- "liceBlue\0 \360\370\377\0",
+ "liceBlue\0 \360\370\377",
"ntiqueWhite\0 \213\203\170\315\300\260\356\337\314\377\357\333\372\353\327\4",
"quamarine\0 \105\213\164\146\315\252\166\356\306\177\377\324\177\377\324\4",
"zure\0 \203\213\213\301\315\315\340\356\356\360\377\377\360\377\377\4",
/* Colors starting with 'b' */
- "eige\0 \365\365\334\0",
+ "eige\0 \365\365\334",
"isque\0 \213\175\153\315\267\236\356\325\267\377\344\304\377\344\304\4",
- "lack\0 \000\000\000\0",
- "lanchedAlmond\0 \377\353\315\0",
+ "lack\0 \000\000\000",
+ "lanchedAlmond\0 \377\353\315",
"lue\0 \000\000\213\000\000\315\000\000\356\000\000\377\000\000\377\4",
- "lueViolet\0 \212\053\342\0",
+ "lueViolet\0 \212\053\342",
"rown\0 \213\043\043\315\063\063\356\073\073\377\100\100\245\052\052\4",
"urlywood\0 \213\163\125\315\252\175\356\305\221\377\323\233\336\270\207\4",
/* Colors starting with 'c' */
@@ -59,53 +59,53 @@ static const elem xColors[] = {
"hartreuse\0 \105\213\000\146\315\000\166\356\000\177\377\000\177\377\000\4",
"hocolate\0 \213\105\023\315\146\035\356\166\041\377\177\044\322\151\036\4",
"oral\0 \213\076\057\315\133\105\356\152\120\377\162\126\377\177\120\4",
- "ornflowerBlue\0 \144\225\355\0",
+ "ornflowerBlue\0 \144\225\355",
"ornsilk\0 \213\210\170\315\310\261\356\350\315\377\370\334\377\370\334\4",
"yan\0 \000\213\213\000\315\315\000\356\356\000\377\377\000\377\377\4",
/* Colors starting with 'd' */
- "arkBlue\0 \000\000\213\0",
- "arkCyan\0 \000\213\213\0",
+ "arkBlue\0 \000\000\213",
+ "arkCyan\0 \000\213\213",
"arkGoldenrod\0 \213\145\010\315\225\014\356\255\016\377\271\017\270\206\013\4",
- "arkGray\0 \251\251\251\0",
- "arkGreen\0 \000\144\000\0",
- "arkGrey\0 \251\251\251\0",
- "arkKhaki\0 \275\267\153\0",
- "arkMagenta\0 \213\000\213\0",
+ "arkGray\0 \251\251\251",
+ "arkGreen\0 \000\144\000",
+ "arkGrey\0 \251\251\251",
+ "arkKhaki\0 \275\267\153",
+ "arkMagenta\0 \213\000\213",
"arkOliveGreen\0 \156\213\075\242\315\132\274\356\150\312\377\160\125\153\057\4",
"arkOrange\0 \213\105\000\315\146\000\356\166\000\377\177\000\377\214\000\4",
"arkOrchid\0 \150\042\213\232\062\315\262\072\356\277\076\377\231\062\314\4",
- "arkRed\0 \213\000\000\0",
- "arkSalmon\0 \351\226\172\0",
+ "arkRed\0 \213\000\000",
+ "arkSalmon\0 \351\226\172",
"arkSeaGreen\0 \151\213\151\233\315\233\264\356\264\301\377\301\217\274\217\4",
- "arkSlateBlue\0 \110\075\213\0",
+ "arkSlateBlue\0 \110\075\213",
"arkSlateGray\0 \122\213\213\171\315\315\215\356\356\227\377\377\057\117\117\4",
- "arkSlateGrey\0 \057\117\117\0",
- "arkTurquoise\0 \000\316\321\0",
- "arkViolet\0 \224\000\323\0",
+ "arkSlateGrey\0 \057\117\117",
+ "arkTurquoise\0 \000\316\321",
+ "arkViolet\0 \224\000\323",
"eepPink\0 \213\012\120\315\020\166\356\022\211\377\024\223\377\024\223\4",
"eepSkyBlue\0 \000\150\213\000\232\315\000\262\356\000\277\377\000\277\377\4",
- "imGray\0 \151\151\151\0",
- "imGrey\0 \151\151\151\0",
+ "imGray\0 \151\151\151",
+ "imGrey\0 \151\151\151",
"odgerBlue\0 \020\116\213\030\164\315\034\206\356\036\220\377\036\220\377\4",
/* Colors starting with 'e' */
"\377" /* placeholder */,
/* Colors starting with 'f' */
"irebrick\0 \213\032\032\315\046\046\356\054\054\377\060\060\262\042\042\4",
- "loralWhite\0 \377\372\360\0",
- "orestGreen\0 \042\213\042\0",
+ "loralWhite\0 \377\372\360",
+ "orestGreen\0 \042\213\042",
/* Colors starting with 'g' */
- "ainsboro\0 \334\334\334\0",
- "hostWhite\0 \370\370\377\0",
+ "ainsboro\0 \334\334\334",
+ "hostWhite\0 \370\370\377",
"old\0 \213\165\000\315\255\000\356\311\000\377\327\000\377\327\000\4",
"oldenrod\0 \213\151\024\315\233\035\356\264\042\377\301\045\332\245\040\4",
"ray\0\024\024\024\022\022\022\017\017\017\015\015\015\012\012\012"
"\010\010\010\005\005\005\003\003\003\276\276\276\10",
- "ray0\0 \000\000\000\0",
+ "ray0\0 \000\000\000",
"reen\0 \000\213\000\000\315\000\000\356\000\000\377\000\000\377\000\4",
- "reenYellow\0 \255\377\057\0",
+ "reenYellow\0 \255\377\057",
"rey\0\024\024\024\022\022\022\017\017\017\015\015\015\012\012\012"
"\010\010\010\005\005\005\003\003\003\276\276\276\10",
- "rey0\0 \000\000\000\0",
+ "rey0\0 \000\000\000",
/* Colors starting with 'h' */
"oneydew\0 \203\213\203\301\315\301\340\356\340\360\377\360\360\377\360\4",
"otPink\0 \213\072\142\315\140\220\356\152\247\377\156\264\377\151\264\4",
@@ -117,66 +117,66 @@ static const elem xColors[] = {
/* Colors starting with 'k' */
"haki\0 \213\206\116\315\306\163\356\346\205\377\366\217\360\346\214\4",
/* Colors starting with 'l' */
- "avender\0 \346\346\372\0",
+ "avender\0 \346\346\372",
"avenderBlush\0 \213\203\206\315\301\305\356\340\345\377\360\365\377\360\365\4",
- "awnGreen\0 \174\374\000\0",
+ "awnGreen\0 \174\374\000",
"emonChiffon\0 \213\211\160\315\311\245\356\351\277\377\372\315\377\372\315\4",
"ightBlue\0 \150\203\213\232\300\315\262\337\356\277\357\377\255\330\346\4",
- "ightCoral\0 \360\200\200\0",
+ "ightCoral\0 \360\200\200",
"ightCyan\0 \172\213\213\264\315\315\321\356\356\340\377\377\340\377\377\4",
"ightGoldenrod\0 \213\201\114\315\276\160\356\334\202\377\354\213\356\335\202\4",
- "ightGoldenrodYellow\0 \372\372\322\0",
- "ightGray\0 \323\323\323\0",
- "ightGreen\0 \220\356\220\0",
- "ightGrey\0 \323\323\323\0",
+ "ightGoldenrodYellow\0 \372\372\322",
+ "ightGray\0 \323\323\323",
+ "ightGreen\0 \220\356\220",
+ "ightGrey\0 \323\323\323",
"ightPink\0 \213\137\145\315\214\225\356\242\255\377\256\271\377\266\301\4",
"ightSalmon\0 \213\127\102\315\201\142\356\225\162\377\240\172\377\240\172\4",
- "ightSeaGreen\0 \040\262\252\0",
+ "ightSeaGreen\0 \040\262\252",
"ightSkyBlue\0 \140\173\213\215\266\315\244\323\356\260\342\377\207\316\372\4",
- "ightSlateBlue\0 \204\160\377\0",
- "ightSlateGray\0 \167\210\231\0",
- "ightSlateGrey\0 \167\210\231\0",
+ "ightSlateBlue\0 \204\160\377",
+ "ightSlateGray\0 \167\210\231",
+ "ightSlateGrey\0 \167\210\231",
"ightSteelBlue\0 \156\173\213\242\265\315\274\322\356\312\341\377\260\304\336\4",
"ightYellow\0 \213\213\172\315\315\264\356\356\321\377\377\340\377\377\340\4",
- "imeGreen\0 \062\315\062\0",
- "inen\0 \372\360\346\0",
+ "imeGreen\0 \062\315\062",
+ "inen\0 \372\360\346",
/* Colors starting with 'm' */
"agenta\0 \213\000\213\315\000\315\356\000\356\377\000\377\377\000\377\4",
"aroon\0 \213\034\142\315\051\220\356\060\247\377\064\263\260\060\140\4",
- "ediumAquamarine\0 \146\315\252\0",
- "ediumBlue\0 \000\000\315\0",
+ "ediumAquamarine\0 \146\315\252",
+ "ediumBlue\0 \000\000\315",
"ediumOrchid\0 \172\067\213\264\122\315\321\137\356\340\146\377\272\125\323\4",
"ediumPurple\0 \135\107\213\211\150\315\237\171\356\253\202\377\223\160\333\4",
- "ediumSeaGreen\0 \074\263\161\0",
- "ediumSlateBlue\0 \173\150\356\0",
- "ediumSpringGreen\0 \000\372\232\0",
- "ediumTurquoise\0 \110\321\314\0",
- "ediumVioletRed\0 \307\025\205\0",
- "idnightBlue\0 \031\031\160\0",
- "intCream\0 \365\377\372\0",
+ "ediumSeaGreen\0 \074\263\161",
+ "ediumSlateBlue\0 \173\150\356",
+ "ediumSpringGreen\0 \000\372\232",
+ "ediumTurquoise\0 \110\321\314",
+ "ediumVioletRed\0 \307\025\205",
+ "idnightBlue\0 \031\031\160",
+ "intCream\0 \365\377\372",
"istyRose\0 \213\175\173\315\267\265\356\325\322\377\344\341\377\344\341\4",
- "occasin\0 \377\344\265\0",
+ "occasin\0 \377\344\265",
/* Colors starting with 'n' */
"avajoWhite\0 \213\171\136\315\263\213\356\317\241\377\336\255\377\336\255\4",
- "avy\0 \000\000\200\0",
- "avyBlue\0 \000\000\200\0",
+ "avy\0 \000\000\200",
+ "avyBlue\0 \000\000\200",
/* Colors starting with 'o' */
- "ldLace\0 \375\365\346\0",
+ "ldLace\0 \375\365\346",
"liveDrab\0 \151\213\042\232\315\062\263\356\072\300\377\076\153\216\043\4",
"range\0 \213\132\000\315\205\000\356\232\000\377\245\000\377\245\000\4",
"rangeRed\0 \213\045\000\315\067\000\356\100\000\377\105\000\377\105\000\4",
"rchid\0 \213\107\211\315\151\311\356\172\351\377\203\372\332\160\326\4",
/* Colors starting with 'p' */
- "aleGoldenrod\0 \356\350\252\0",
+ "aleGoldenrod\0 \356\350\252",
"aleGreen\0 \124\213\124\174\315\174\220\356\220\232\377\232\230\373\230\4",
"aleTurquoise\0 \146\213\213\226\315\315\256\356\356\273\377\377\257\356\356\4",
"aleVioletRed\0 \213\107\135\315\150\211\356\171\237\377\202\253\333\160\223\4",
- "apayaWhip\0 \377\357\325\0",
+ "apayaWhip\0 \377\357\325",
"eachPuff\0 \213\167\145\315\257\225\356\313\255\377\332\271\377\332\271\4",
- "eru\0 \315\205\077\0",
+ "eru\0 \315\205\077",
"ink\0 \213\143\154\315\221\236\356\251\270\377\265\305\377\300\313\4",
"lum\0 \213\146\213\315\226\315\356\256\356\377\273\377\335\240\335\4",
- "owderBlue\0 \260\340\346\0",
+ "owderBlue\0 \260\340\346",
"urple\0 \125\032\213\175\046\315\221\054\356\233\060\377\240\040\360\4",
/* Colors starting with 'q' */
"\377" /* placeholder */,
@@ -185,16 +185,16 @@ static const elem xColors[] = {
"osyBrown\0 \213\151\151\315\233\233\356\264\264\377\301\301\274\217\217\4",
"oyalBlue\0 \047\100\213\072\137\315\103\156\356\110\166\377\101\151\341\4",
/* Colors starting with 's' */
- "addleBrown\0 \213\105\023\0",
+ "addleBrown\0 \213\105\023",
"almon\0 \213\114\071\315\160\124\356\202\142\377\214\151\372\200\162\4",
- "andyBrown\0 \364\244\140\0",
+ "andyBrown\0 \364\244\140",
"eaGreen\0 \056\213\127\103\315\200\116\356\224\124\377\237\056\213\127\4",
"eashell\0 \213\206\202\315\305\277\356\345\336\377\365\356\377\365\356\4",
"ienna\0 \213\107\046\315\150\071\356\171\102\377\202\107\240\122\055\4",
"kyBlue\0 \112\160\213\154\246\315\176\300\356\207\316\377\207\316\353\4",
"lateBlue\0 \107\074\213\151\131\315\172\147\356\203\157\377\152\132\315\4",
"lateGray\0 \154\173\213\237\266\315\271\323\356\306\342\377\160\200\220\4",
- "lateGrey\0 \160\200\220\0",
+ "lateGrey\0 \160\200\220",
"now\0 \213\211\211\315\311\311\356\351\351\377\372\372\377\372\372\4",
"pringGreen\0 \000\213\105\000\315\146\000\356\166\000\377\177\000\377\177\4",
"teelBlue\0 \066\144\213\117\224\315\134\254\356\143\270\377\106\202\264\4",
@@ -206,12 +206,12 @@ static const elem xColors[] = {
/* Colors starting with 'u' */
"\377" /* placeholder */,
/* Colors starting with 'v' */
- "iolet\0 \356\202\356\0",
+ "iolet\0 \356\202\356",
"ioletRed\0 \213\042\122\315\062\170\356\072\214\377\076\226\320\040\220\4",
/* Colors starting with 'w' */
"heat\0 \213\176\146\315\272\226\356\330\256\377\347\272\365\336\263\4",
- "hite\0 \377\377\377\0",
- "hiteSmoke\0 \365\365\365\0",
+ "hite\0 \377\377\377",
+ "hiteSmoke\0 \365\365\365",
/* Colors starting with 'x' */
"\377" /* placeholder */,
/* Colors starting with 'y' */