summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog19
-rw-r--r--generic/tkFont.c4
-rw-r--r--generic/tkPack.c7
-rw-r--r--generic/tkWindow.c11
-rw-r--r--mac/tkMacMenubutton.c6
-rw-r--r--unix/Makefile.in5
-rw-r--r--unix/aclocal.m416
-rw-r--r--unix/tkUnixMenubu.c6
-rw-r--r--win/tkWinButton.c10
-rw-r--r--win/tkWinClipboard.c4
-rw-r--r--win/tkWinWm.c11
11 files changed, 65 insertions, 34 deletions
diff --git a/ChangeLog b/ChangeLog
index 42ba084..c3bae88 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+1999-09-16 Jeff Hobbs <hobbs@scriptics.com>
+
+ * generic/tkFont.c: fixed processing of font options and error
+ returned [Bug: 2075]
+
+ * win/tkWinWm.c: fixed bug in 'wm deiconify' that raised the
+ wrong toplevel, and changed it to not set focus on overridden
+ toplevels
+
+1999-09-15 Jeff Hobbs <hobbs@scriptics.com>
+
+ * unix/aclocal.m4: added fix for FreeBSD-[1-2] recognition [Bug: 2070]
+ and fix to AIX-* to get ldAix right [Bug: 2624], fixed AIX
+ version check (readjust from 8-21 fix) and several other config
+ fixes for AIX
+ * mac/tkMacMenubutton.c:
+ * unix/tkUnixMenubu.c: fixed permanently stippled menubutton image
+ * win/tkWinButton.c: fixed possible pointer smash [Bug: 2733]
+
1999-09-14 Jeff Hobbs <hobbs@scriptics.com>
* win/tkWinMenu.c: fix for stack overrun in GetTextFace [Bug: 909]
diff --git a/generic/tkFont.c b/generic/tkFont.c
index a59c1b7..d63e58d 100644
--- a/generic/tkFont.c
+++ b/generic/tkFont.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkFont.c,v 1.5 1999/06/02 18:15:54 stanton Exp $
+ * RCS: @(#) $Id: tkFont.c,v 1.6 1999/09/21 06:42:30 hobbs Exp $
*/
#include "tkPort.h"
@@ -2837,7 +2837,7 @@ ConfigAttributesObj(interp, tkwin, objc, objv, faPtr)
&index) != TCL_OK) {
return TCL_ERROR;
}
- if (objc & 1) {
+ if ((i+2 >= objc) && (objc & 1)) {
/*
* This test occurs after Tcl_GetIndexFromObj() so that
* "font create xyz -xyz" will return the error message
diff --git a/generic/tkPack.c b/generic/tkPack.c
index 20a8a23..b5bb7be 100644
--- a/generic/tkPack.c
+++ b/generic/tkPack.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkPack.c,v 1.3 1999/04/16 01:51:20 stanton Exp $
+ * RCS: @(#) $Id: tkPack.c,v 1.4 1999/09/21 06:42:30 hobbs Exp $
*/
#include "tkPort.h"
@@ -1366,16 +1366,15 @@ PackStructureProc(clientData, eventPtr)
Tcl_DoWhenIdle(ArrangePacking, (ClientData) packPtr);
}
} else if (eventPtr->type == UnmapNotify) {
- Packer *packPtr2;
+ register Packer *packPtr2;
/*
* Unmap all of the slaves when the master gets unmapped,
* so that they don't bother to keep redisplaying
* themselves.
*/
-
for (packPtr2 = packPtr->slavePtr; packPtr2 != NULL;
- packPtr2 = packPtr2->nextPtr) {
+ packPtr2 = packPtr2->nextPtr) {
Tk_UnmapWindow(packPtr2->tkwin);
}
}
diff --git a/generic/tkWindow.c b/generic/tkWindow.c
index 78d130c..df15d65 100644
--- a/generic/tkWindow.c
+++ b/generic/tkWindow.c
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkWindow.c,v 1.8 1999/04/21 21:53:28 rjohnson Exp $
+ * RCS: @(#) $Id: tkWindow.c,v 1.9 1999/09/21 06:42:30 hobbs Exp $
*/
#include "tkPort.h"
@@ -2258,9 +2258,6 @@ Tk_RestackWindow(tkwin, aboveBelow, other)
{
TkWindow *winPtr = (TkWindow *) tkwin;
TkWindow *otherPtr = (TkWindow *) other;
- XWindowChanges changes;
- unsigned int mask;
-
/*
* Special case: if winPtr is a top-level window then just find
@@ -2268,8 +2265,6 @@ Tk_RestackWindow(tkwin, aboveBelow, other)
* otherPtr without changing any of Tk's childLists.
*/
- changes.stack_mode = aboveBelow;
- mask = CWStackMode;
if (winPtr->flags & TK_TOP_LEVEL) {
while ((otherPtr != NULL) && !(otherPtr->flags & TK_TOP_LEVEL)) {
otherPtr = otherPtr->parentPtr;
@@ -2341,6 +2336,10 @@ Tk_RestackWindow(tkwin, aboveBelow, other)
*/
if (winPtr->window != None) {
+ XWindowChanges changes;
+ unsigned int mask;
+
+ mask = CWStackMode;
changes.stack_mode = Above;
for (otherPtr = winPtr->nextPtr; otherPtr != NULL;
otherPtr = otherPtr->nextPtr) {
diff --git a/mac/tkMacMenubutton.c b/mac/tkMacMenubutton.c
index 698ac97..41dc954 100644
--- a/mac/tkMacMenubutton.c
+++ b/mac/tkMacMenubutton.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: tkMacMenubutton.c,v 1.5 1999/08/10 05:05:02 jingham Exp $
+ * RCS: @(#) $Id: tkMacMenubutton.c,v 1.6 1999/09/21 06:42:33 hobbs Exp $
*/
#include "tkMenubutton.h"
@@ -163,8 +163,8 @@ TkpDisplayMenuButton(
* foreground color, generate the stippled effect.
*/
- if ((mbPtr->state == STATE_DISABLED && mbPtr->disabledFg != NULL)
- || (mbPtr->image != NULL)) {
+ if ((mbPtr->state == STATE_DISABLED)
+ && ((mbPtr->disabledFg != NULL) || (mbPtr->image != NULL))) {
XFillRectangle(mbPtr->display, Tk_WindowId(tkwin),
mbPtr->disabledGC, mbPtr->inset, mbPtr->inset,
(unsigned) (Tk_Width(tkwin) - 2*mbPtr->inset),
diff --git a/unix/Makefile.in b/unix/Makefile.in
index 9c02939..1464dd8 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -5,7 +5,7 @@
# "autoconf" program (constructs like "@foo@" will get replaced in the
# actual Makefile.
#
-# RCS: @(#) $Id: Makefile.in,v 1.30 1999/08/21 01:14:45 wart Exp $
+# RCS: @(#) $Id: Makefile.in,v 1.31 1999/09/21 06:43:00 hobbs Exp $
# Current Tk version; used in various names.
@@ -197,6 +197,7 @@ WISH_LIBS = $(TCL_LIB_SPEC) @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ -lc
# The values of the symbolis normally set by the configure script.
SHLIB_LD = @SHLIB_LD@
+SHLIB_LD_LIBS = @SHLIB_LD_LIBS@
# Additional search flags needed to find the various shared libraries
# at run-time. The first symbol is for use when creating a binary
@@ -400,6 +401,7 @@ xttest: test.o tkTest.o tkSquare.o $(TK_LIB_FILE)
test: tktest
LD_LIBRARY_PATH=`pwd`:${TCL_BIN_DIR}:${LD_LIBRARY_PATH}; \
export LD_LIBRARY_PATH; \
+ LIBPATH=`pwd`:${TCL_BIN_DIR}:${LIBPATH}; export LIBPATH; \
SHLIB_PATH=`pwd`:${TCL_BIN_DIR}:${SHLIB_PATH}; \
export SHLIB_PATH; \
TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
@@ -410,6 +412,7 @@ test: tktest
runtest:
LD_LIBRARY_PATH=`pwd`:${TCL_BIN_DIR}:${LD_LIBRARY_PATH}; \
export LD_LIBRARY_PATH; \
+ LIBPATH=`pwd`:${TCL_BIN_DIR}:${LIBPATH}; export LIBPATH; \
SHLIB_PATH=`pwd`:${TCL_BIN_DIR}:${SHLIB_PATH}; \
export SHLIB_PATH; \
TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
diff --git a/unix/aclocal.m4 b/unix/aclocal.m4
index 28b7796..73b78b2 100644
--- a/unix/aclocal.m4
+++ b/unix/aclocal.m4
@@ -563,13 +563,13 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [
TCL_BUILD_EXP_FILE=""
TCL_EXP_FILE=""
case $system in
- AIX-4.[[1-9]])
+ AIX-4.[[2-9]])
SHLIB_CFLAGS=""
- SHLIB_LD="$fullSrcDir/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry"
+ SHLIB_LD=$TCL_SHLIB_LD
SHLIB_LD_LIBS='${LIBS}'
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
- DL_LIBS="-ldl"
+ DL_LIBS="-ldl ${TCL_BUILD_LIB_SPEC}"
LDFLAGS=""
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
TCL_NEEDS_EXP_FILE=1
@@ -577,12 +577,12 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [
;;
AIX-*)
SHLIB_CFLAGS=""
- SHLIB_LD="$fullSrcDir/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry"
+ SHLIB_LD=$TCL_SHLIB_LD
SHLIB_LD_LIBS='${LIBS}'
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
LIBOBJS="$LIBOBJS tclLoadAix.o"
- DL_LIBS="-lld"
+ DL_LIBS="-lld ${TCL_BUILD_LIB_SPEC}"
LDFLAGS=""
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
TCL_NEEDS_EXP_FILE=1
@@ -594,7 +594,7 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [
SHLIB_LD_LIBS='${LIBS}'
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
- DL_LIBS="-ldl"
+ DL_LIBS="-ldl ${TCL_BUILD_LIB_SPEC}"
LDFLAGS=""
LD_SEARCH_FLAGS=""
;;
@@ -645,7 +645,7 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [
IRIX-5.*|IRIX-6.*|IRIX64-6.5*)
SHLIB_CFLAGS=""
SHLIB_LD="ld -n32 -shared -rdata_shared"
- SHLIB_LD_LIBS=""
+ SHLIB_LD_LIBS='${LIBS}'
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS=""
@@ -725,7 +725,7 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [
LDFLAGS="-Wl,-Bexport"
LD_SEARCH_FLAGS=""
;;
- NetBSD-*|FreeBSD-[[12]].*|OpenBSD-*)
+ NetBSD-*|FreeBSD-[[1-2]].*|OpenBSD-*)
# Not available on all versions: check for include file.
AC_CHECK_HEADER(dlfcn.h, [
SHLIB_CFLAGS="-fpic"
diff --git a/unix/tkUnixMenubu.c b/unix/tkUnixMenubu.c
index d8cba87..de2693f 100644
--- a/unix/tkUnixMenubu.c
+++ b/unix/tkUnixMenubu.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: tkUnixMenubu.c,v 1.3 1999/04/16 01:51:47 stanton Exp $
+ * RCS: @(#) $Id: tkUnixMenubu.c,v 1.4 1999/09/21 06:43:01 hobbs Exp $
*/
#include "tkMenubutton.h"
@@ -143,8 +143,8 @@ TkpDisplayMenuButton(clientData)
* foreground color, generate the stippled effect.
*/
- if (((mbPtr->state == STATE_DISABLED)
- && (mbPtr->disabledFg == NULL)) || (mbPtr->image != NULL)) {
+ if ((mbPtr->state == STATE_DISABLED)
+ && ((mbPtr->disabledFg == NULL) || (mbPtr->image != NULL))) {
XFillRectangle(mbPtr->display, pixmap, mbPtr->disabledGC,
mbPtr->inset, mbPtr->inset,
(unsigned) (Tk_Width(tkwin) - 2*mbPtr->inset),
diff --git a/win/tkWinButton.c b/win/tkWinButton.c
index 6f2602c..77135fb 100644
--- a/win/tkWinButton.c
+++ b/win/tkWinButton.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: tkWinButton.c,v 1.5 1999/04/21 21:53:32 rjohnson Exp $
+ * RCS: @(#) $Id: tkWinButton.c,v 1.6 1999/09/21 06:43:06 hobbs Exp $
*/
#define OEMRESOURCE
@@ -789,6 +789,14 @@ ButtonProc(hwnd, message, wParam, lParam)
BeginPaint(hwnd, &ps);
EndPaint(hwnd, &ps);
TkpDisplayButton((ClientData)butPtr);
+
+ /*
+ * Special note: must cancel any existing idle handler
+ * for TkpDisplayButton; it's no longer needed, and
+ * TkpDisplayButton cleared the REDRAW_PENDING flag.
+ */
+
+ Tcl_CancelIdleCall(TkpDisplayButton, (ClientData)butPtr);
return 0;
}
case BN_CLICKED: {
diff --git a/win/tkWinClipboard.c b/win/tkWinClipboard.c
index 18fb1f1..c5a6cd8 100644
--- a/win/tkWinClipboard.c
+++ b/win/tkWinClipboard.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: tkWinClipboard.c,v 1.5 1999/05/22 02:05:31 stanton Exp $
+ * RCS: @(#) $Id: tkWinClipboard.c,v 1.6 1999/09/21 06:43:06 hobbs Exp $
*/
#include "tkWinInt.h"
@@ -384,7 +384,7 @@ UpdateClipboard(hwnd)
EmptyClipboard();
/*
- * CF_UNICODETEXT is only supported on NT, but it it is preffered
+ * CF_UNICODETEXT is only supported on NT, but it it is prefered
* when possible.
*/
diff --git a/win/tkWinWm.c b/win/tkWinWm.c
index 822735e..09f497a 100644
--- a/win/tkWinWm.c
+++ b/win/tkWinWm.c
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkWinWm.c,v 1.10 1999/08/10 16:58:52 hobbs Exp $
+ * RCS: @(#) $Id: tkWinWm.c,v 1.11 1999/09/21 06:43:06 hobbs Exp $
*/
#include "tkWinInt.h"
@@ -1392,10 +1392,13 @@ Tk_WmCmd(clientData, interp, argc, argv)
TkpWmSetState(winPtr, NormalState);
/*
* Follow Windows-like style here:
- * raise the window to the top and force the focus on it
+ * raise the window to the top, and if it isn't overridden,
+ * then force the focus on it
*/
- Tk_RestackWindow(tkwin, Above, NULL);
- TkSetFocusWin(winPtr, 1);
+ TkWmRestackToplevel(winPtr, Above, NULL);
+ if (!(Tk_Attributes((Tk_Window) winPtr)->override_redirect)) {
+ TkSetFocusWin(winPtr, 1);
+ }
} else if ((c == 'f') && (strncmp(argv[1], "focusmodel", length) == 0)
&& (length >= 2)) {
if ((argc != 3) && (argc != 4)) {