From f29a5be23f295f3e213d950ffbbea8ccbc06c8b5 Mon Sep 17 00:00:00 2001 From: hobbs Date: Tue, 21 Sep 1999 06:42:16 +0000 Subject: 1999-09-16 Jeff Hobbs * 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 * 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 * win/tkWinMenu.c: fix for stack overrun in GetTextFace [Bug: 909] --- ChangeLog | 19 +++++++++++++++++++ generic/tkFont.c | 4 ++-- generic/tkPack.c | 7 +++---- generic/tkWindow.c | 11 +++++------ mac/tkMacMenubutton.c | 6 +++--- unix/Makefile.in | 5 ++++- unix/aclocal.m4 | 16 ++++++++-------- unix/tkUnixMenubu.c | 6 +++--- win/tkWinButton.c | 10 +++++++++- win/tkWinClipboard.c | 4 ++-- win/tkWinWm.c | 11 +++++++---- 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 + + * 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 + + * 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 * 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)) { -- cgit v0.12