summaryrefslogtreecommitdiffstats
path: root/macosx
Commit message (Collapse)AuthorAgeFilesLines
* * macosx/tkMacOSXInt.h: add MODULE_SCOPE definition check forhobbs2005-10-041-1/+9
| | | | | extension writers that access private headers on OS X and don't define it in configure.
* move declarations of Carbon-internal event debugging routines to ↵das2005-09-102-6/+8
| | | | tkMacOSXCarbonEvents.c
* * macosx/tkMacOSXMouseEvent.c (TkMacOSXProcessMouseEvent): check ifdas2005-09-1018-211/+333
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | process is in front on MouseDown, otherwise request process activation from BringWindowForward() via new isFrontProcess param. * macosx/tkMacOSXCarbonEvents.c (TkMacOSXInitCarbonEvents): register our event handler on the dispatcher target for all carbon events of interest to TkAqua; this replaces event processing directly from the event queue and thus allows to capture events that are syntesized by Carbon and sent directly to the dispatcher and not to the event queue. * macosx/tkMacOSXEvent.c: remove TkMacOSXCountAndProcessMacEvents(), rename ReceiveAndProcessEvent() to TkMacOSXReceiveAndProcessEvent(). (TkMacOSXReceiveAndProcessEvent): remove tk event processing before sending events to the dispatcher, all events of interest are now processed in our dispatcher target event handler. * macosx/tkMacOSXNotify.c (CarbonEventsCheckProc): dispatch events directly via TkMacOSXReceiveAndProcessEvent(), but dispatch no more than four carbon events at one time to avoid starving other event sources. * macosx/tkMacOSXEvent.c: formatting cleanup, move XSync() to XStubs, * macosx/tkMacOSXEvent.h: removed obsolete kEventClassWish handling. * macosx/tkMacOSXXStubs.c * macosx/tkMacOSXEvent.h: declare macosx internal procs as MODULE_SCOPE. * macosx/tkMacOSXEvent.c: * macosx/tkMacOSXKeyEvent.c: * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXButton.c: conditionalize all debug message printing to * macosx/tkMacOSXCursor.c: stderr via TK_MAC_DEBUG define. * macosx/tkMacOSXDebug.c: * macosx/tkMacOSXDebug.h: * macosx/tkMacOSXDialog.c: * macosx/tkMacOSXEvent.c: * macosx/tkMacOSXInit.c: * macosx/tkMacOSXKeyEvent.c: * macosx/tkMacOSXMenu.c: * macosx/tkMacOSXMenubutton.c: * macosx/tkMacOSXScale.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.c: * unix/configure.in: define TK_MAC_DEBUG on aqua when symbols enabled. * unix/configure: autoconf-2.59 * unix/tkConfig.h.in: autoheader-2.59 * library/listbox.tcl: synced aqua MouseWheel bindings with * library/scrlbar.tcl: core-8-4-branch. * library/text.tcl: * xlib/xcolors.c: fixed warning
* * macosx/tkMacOSXDialog.c: make dialogs ignore -initialfile "" andhobbs2005-08-231-53/+57
| | | | -initialdir "" instead of error.
* * macosx/tkMacOSXButton.c:das2005-08-222-4/+4
| | | | * macosx/tkMacOSXDialog.c: fix warnings.
* * macosx/tkMacOSXCarbonEvents.c (AppEventHandlerProc): handle carbondas2005-08-0924-951/+1230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | events sent directly to application event target via the general TkMacOSXProcessEvent() in the same way as events posted to the event loop. Moved existing app event handlers to tkMacOSXWindowEvent.c. (TkMacOSXInitCarbonEvents): register our application event handler for kEventWindowExpanded events to deal with uncollapsing from the dock. * macosx/tkMacOSXEvent.h: made TkMacOSXProcessEvent() non-static, added * macosx/tkMacOSXEvent.c: new interp field to TkMacOSXEvent struct for use by app event handler. * macosx/tkMacOSXMouseEvent.c (TkMacOSXProcessMouseEvent): retrieve current window, partCode, modifiers and local cursor position from carbon mouse event if possible. Use new static GenerateButtonEvent() taking a MouseEventData struct instead of TkGenerateButtonEvent() to avoid recomputing already known values. Move process activation on MouseDown into BringWindowForward() to allow clicking on window titlebar widgets without activating process. Move code dealing with clicks in window titelbar into separate function HandleWindowTitlebarMouseDown() to avoid code duplication. Avoid repeated calls to TkMacOSXGetXWindow() by storing result in MouseEventData struct. (TkMacOSXButtonKeyState, XQueryPointer): try to get button and modifier state from currently processed carbon event (to avoid unnecessary IPC with the window server), otherwise use modern carbon API to get this info instead of Button() and GetKeys(); only retrieve info caller asks for (via non-NULL ptr passed to XQueryPointer). (ButtonModifiers2State): new static function converting carbon button and modifier state into tk state, allows detection of more than 3 mouse buttons (tk supports up to 5) and of NumLock and Fn modifier keys (NumLock is mapped to Mod3 and Fn to Mod4). * macosx/tkMacOSXWindowEvent.c (TkMacOSXProcessApplicationEvent): handle kEventWindowExpanded event to deal with window uncollapsing from the dock by generating tk Map event, handle kEventAppHidden and kEventAppShown events (moved here from tkMacOSXCarbonEvents.c). * macosx/tkMacOSXSubwindows.c (XUnmapWindow): only hide window when it is not iconified to avoid window flashing on collapse. * macosx/tkMacOSXWm.c: replaced Tk_DoWhenIdle() by Tcl_DoWhenIdle(). (TkMacOSXZoomToplevel): remove call to TrackBox(), now done in HandleWindowTitlebarMouseDown() in tkMacOSXMouseEvent.c. (TkpWmSetState): avoid window flashing on collapse by unmapping after calling CollapseWindow(); only uncollapse window if it is collapsed. * generic/tkInt.decls: changed TkMacOSXZoomToplevel() signature. * generic/tkIntPlatDecls.h: * macosx/tkMacOSXKeyEvent.c (TkMacOSXProcessKeyboardEvent): only call GetMenuItemCommandID() on KeyDown or KeyRepeat events. * macosx/tkMacOSXMenu.c (ReconfigureMacintoshMenu): remove call to obsolete AppendResMenu() API. * macosx/tkMacOSXKeyEvent.c: replaced all direct uses of expensive * macosx/tkMacOSXMenu.c: GetMouse() and TkMacOSXButtonKeyState() * macosx/tkMacOSXMenus.c: APIs by calls to XQueryPointer() * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXScale.c: * macosx/tkMacOSXScrlbr.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXDialog.c: replaced use of FrontNonFloatingWindow() * macosx/tkMacOSXKeyEvent.c: by ActiveNonFloatingWindow() as * macosx/tkMacOSXMenu.c: recommended by Carbon docs. * macosx/tkMacOSXMenus.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXDialog.c: fixed warnings * macosx/tkMacOSXTest.c: * macosx/tkMacOSXCarbonEvents.c: added CVS Id line to file header. * macosx/tkMacOSXDebug.c: * macosx/tkMacOSXDebug.h: * macosx/tkMacOSXEntry.c: * macosx/tkMacOSXEvent.h: * macosx/tkMacOSXKeyEvent.c: * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.h: * macosx/tkMacOSXInt.h: declare macosx internal procs as MODULE_SCOPE. * macosx/tkMacOSXCarbonEvents.c: * macosx/tkMacOSXDraw.c: * macosx/tkMacOSXFont.c: * macosx/tkMacOSXHLEvents.c: * macosx/tkMacOSXInit.c: * macosx/tkMacOSXWindowEvent.c * library/bgerror.tcl: sync with core-8-4-branch changes of 2005-07-28. * macosx/tkMacOSXDraw.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXMouseEvent.c: * generic/tkFrame.c: sync with core-8-4-branch changes of 2005-07-27. * generic/tkIntDecls.h: * generic/tkStubInit.c: * generic/tkFrame.c: * win/tkWinDraw.c: * unix/tkUnixDraw.c: * macosx/tkMacOSXDraw.c: * macosx/tkMacOSXInt.h: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXButton.c: sync with core-8-4-branch. * macosx/tkMacOSXEntry.c: * macosx/tkMacOSXScale.c: * library/demos/menu.tcl: removed errant '}'.
* * macosx/tkMacOSXMouseEvent.c (TkMacOSXProcessMouseEvent):hobbs2005-07-211-1/+1
| | | | corrected if expression error (use of = instead of ==)
* * macosx/tkMacOSXDefault.h: change ENTRY_BORDER defaults to from 5 to 2das2005-06-231-3/+3
| | | | | to make default entry widgets in TkAqua look like in other aqua apps (and have same border dimensions as other platforms). [Bug 1176610]
* * macosx/Makefile: for X11 build, add -X11 suffix to unversioned wishdas2005-06-181-2/+4
| | | | | | | | | symbolic link. * unix/tcl.m4 (Darwin): add -headerpad_max_install_names to LDFLAGS to ensure we can always relocate binaries with install_name_tool. * unix/configure: autoconf-2.59
* Bumped patchleveldonal.k.fellows@manchester.ac.uk2005-06-073-8/+8
|
* 2005-06-02 Jim Ingham <jingham@apple.com>wolfsuit2005-06-031-19/+40
| | | | | | | | | | | Another patch from M. Kirkham. * macosx/tkMacOSXScrlbr.c (ThumbActionProc, ScrollBarBindProc): Record the first mouse down point, and compute differences from that, rather than getting the mouse down each time through the loop. The old method would get fooled if you moved the mouse less than a text line height in the text widget. [Bug 1083728]
* * macosx/Makefile: fixed 'embedded' target.das2005-06-031-4/+3
|
* * macosx/tkMacOSXFont.c: use Tcl_Panic instead of panic.das2005-05-291-2/+2
|
* * unix/configure.in: added description of HAVE_XSS for autoheader.das2005-05-292-2/+2
| | | | | | | | | * unix/configure: autoconf-2.59 * unix/tkConfig.h.in: autoheader-2.59 * macosx/Wish.pbproj/project.pbxproj: * macosx/Wish.xcode/project.pbxproj: added missing FRAMEWORK defines introduced with configure/make based build.
* * macosx/tkMacOSXInit.c:das2005-05-292-4/+4
| | | | * macosx/tkMacOSXNotify.c: fixed warnings.
* * generic/tkDecls.h:das2005-05-293-47/+28
| | | | | | | | | | | | | | | | | | * generic/tkIntPlatDecls.h: * generic/tkPlatDecls.h: * generic/tkStubInit.c: ran missing 'make genstubs' for TIP245 changes to tk.decls * macosx/tkMacOSXXStubs.c (Tk_ResetUserInactiveTime): use symbolic constant argument in call to UpdateSystemActivity(); * macosx/Wish.pbproj/project.pbxproj: * macosx/Wish.xcode/project.pbxproj: * unix/configure.in: added/corrected linking to IOKit.framework for TIP245. * unix/configure.in: skip X11 configure checks when building tk_aqua. * unix/configure: autoconf-2.59
* Partial implementation of TIP#245; thanks Reinhard!donal.k.fellows@manchester.ac.uk2005-05-272-1/+129
|
* * macosx/tkMacOSXInit.c (TkpInit): fixed resource file extractiondas2005-05-262-18/+23
| | | | | | | | | | | | | from __tk_rsrc section to work with non-prebound .dylib and .bundle. * macosx/Makefile: corrected EMBEDDED_BUILD check, use separate tcl and tk version vars to properly support tk/x11 framework version overriding, rewrite tkConfig.sh when overriding tk version, corrected Wish.app symlink in tk build dir. * unix/configure.in: corrected framework finalization to softlink stub library to Versions/8.x subdir instead of Versions/Current. * unix/configure: autoconf-2.59
* fix for non-framework TkAqua builddas2005-05-241-2/+5
|
* * macosx/Makefile:das2005-05-235-118/+377
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * macosx/README: * macosx/Tk-Info.plist.in (new file): * macosx/Wish-Info.plist.in (new file): * unix/Makefile.in: * unix/configure.in: * unix/tcl.m4: * unix/tkUnixInit.c: moved all Darwin framework and TkAqua build support from macosx/Wish.pbproj and macosx/Makefile into the standard unix configure/make buildsystem, the project and macosx/Makefile are no longer required to build Tk.framework and/or TkAqua. TkAqua is now enabled by the --enable-aqua configure option, and static and non-framework builds of TkAqua are now available via the standard configure switches. Tk/X11 can also be built as a framework. The macosx/Makefile now wraps the unix buildsystem and no longer uses the projects, embedded builds are still only available via this Makefile, but for other builds it is not longer required (but its current functionality is still available for backwards compatibility). The projects currently do not call through to the Makefile to build (unlike Tcl.pbproj) so project builds may differ from makefile builds. Due to issues with spaces in pathnames, 'Wish Shell.app' has been renamed to 'Wish.app', the macosx/Makefile installs backwards compatibility symlinks for the old name. * macosx/tkMacOSXInit.c (TkpInit): added support for Tk resource file in non-framework and static builds: the resource file is copied into a __tk_rsrc MachO segment of the library or executable at link time and extracted into a temporary location at initialization. * unix/configure: autoconf-2.59 * unix/tkConfig.h.in (new file): autoheader-2.59
* * macosx/Wish.pbproj/project.pbxproj:das2005-05-234-17/+13
| | | | | | * macosx/Tk-Info.plist: * macosx/Wish-Info.plist: * macosx/tkAboutDlg.r: updated copyright years to 2005.
* Fixes from Michael Kirkham:wolfsuit2005-05-154-2078/+17
| | | | | | | | | | | | | * macosx/tkMacOSXMenu.c (TkpConfigureMenuEntry): Thinko in clearing the ENTRY_ACCEL_MASK before re-parsing it. [Tk Bug 1012852] * macosx/tkMacOSXScrlbr.c (UpdateControlValues): Don't set the control value BEFORE setting the min and max or the control manager will reset it for you. [Tk Bug 1202181] * macosx/tkMacOSXXStubs.c (TkMacOSXXGetPixel, TkMacOSXXPutPixel): Restore the port to what it was before putting we were called. [Tk Bug 1202223]
* Add a missing Tcl_Release to ThumbActionProc. Thanks to Micheal Kirkham forwolfsuit2005-05-151-1/+2
| | | | pointing this out.
* * macosx/tkMacOSXInit.c:das2005-05-1414-1145/+218
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * macosx/tkMacOSXNotify.c: introduction of new tcl notifier based on CFRunLoop allows replacement of the custom TkAqua notifier by a standard tcl event source. Removes requirement of threaded tcl core for TkAqua, allows to stub-link TkAqua against Tcl by removing use of the unstubbed TclInitNotifier & TclFinalizeNotifier. [Tcl Patch 1202052] * macosx/Wish.xcode/project.pbxproj: * macosx/Wish.pbproj/project.pbxproj: stub-link TkAqua: build with USE_TCL_STUBS and link against libtclstub instead of Tcl.framework, unexport libtclstub symbols from Tk to avoid duplicate symbol warnings when linking with both Tcl and Tk, fixes for gcc4.0 warnings. * macosx/Wish.xcode/project.pbxproj: sync with Wish.pbproj changes since 2004-11-19. NOTE: to use this project, need to uncomment the tclConfig.h settings at the top of tcl/unix/configure.in, autoconf and rebuild tcl ! * macosx/tkMacOSXBitmap.c: * macosx/tkMacOSXButton.c: * macosx/tkMacOSXDialog.c: * macosx/tkMacOSXFont.c: * macosx/tkMacOSXHLEvents.c: * macosx/tkMacOSXInit.c: * macosx/tkMacOSXKeyboard.c: * macosx/tkMacOSXMenu.c: * macosx/tkMacOSXMenubutton.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXXStubs.c: fixed gcc 4.0 warnings. * unix/tcl.m4: sync with tcl * unix/configure: autoconf-2.59
* Fix [1191097], factor, and tidy up.donal.k.fellows@manchester.ac.uk2005-04-281-192/+208
|
* * macosx/tkMacOSXNotify.c: sync with tclUnixNotfy.c changes sincedas2005-04-261-197/+177
| | | | | | | | | | | | | | | | | | | 2004-06-22, added compile time check for threaded tcl core, removed unthreaded code paths as they are never used anyway, fixed TkMacOSXAlertNotifier() implementation. * unix/Makefile.in: added TCL_STUB_LIB_FILE, needed for unexporting of symbols from libtclstub to avoid duplicate symbol warnings. * unix/tcl.m4 (Darwin): added configure checks for recently added linker flags -single_module and -search_paths_first to allow building with older tools (and on Mac OS X 10.1), use -single_module in SHLIB_LD and not just T{CL,K}_SHLIB_LD_EXTRAS, added unexporting from Tk of symbols from libtclstub to avoid duplicate symbol warnings, added PLAT_SRCS definition for Mac OS X, defined MODULE_SCOPE to __private_extern__. (SC_MISSING_POSIX_HEADERS): added caching of dirent.h check. * unix/configure: autoconf-2.59
* * macosx/README: updated requirements for OS & developer tooldas2005-04-091-12/+12
| | | | versions + other small fixes/cleanup.
* * macosx/tkMacOSXEntry.c (ComputeIncDecParameters): manually definedas2005-04-091-0/+6
| | | | constants present only in 10.3 headers so that we can build on 10.2.
* * macosx/Wish.pbproj/project.pbxproj: fixed absolute path todas2005-04-091-5/+5
| | | | tkEntry.h that confused 10.2 PBX.
* * macosx/tkMacOSXWm.c (TkWmStackorderToplevelWrapperMap, ↵mdejong2005-04-071-6/+9
| | | | | | | | | | | TkWmStackorderToplevel): * unix/tkUnixWm.c (TkWmStackorderToplevelWrapperMap, TkWmStackorderToplevel): * win/tkWinWm.c (TkWmStackorderToplevelWrapperMap, TkWmStackorderToplevel): Fix panic in wm stackorder when a toplevel is created on another diplay. The code now ignores toplevels that have a display that does not match the display of the parent window. [Bug 1152809]
* Dopey bug, I should only reset the widget width for spinboxes, since I onlywolfsuit2005-03-241-1/+3
| | | | change it for them...
* Get the Entry and Spinbox widgets to draw with the native look & feel onwolfsuit2005-03-245-63/+2990
| | | | | | Mac OS X. Also contains some more work on tkMacOSXScale.c, but this doesn't work all the way yet, so it's not currently built.
* 2005-03-23 Jim Ingham <jingham@apple.com>wolfsuit2005-03-231-310/+298
| | | | | | | | | | | | | | | | | | This is cleanup thanks to Neil Madden <nem@cs.nott.ac.uk>. * macosx/tkMacOSXWm.c (TkMacOSXWinStyle) New function. (TkUnsupported1ObjCmd): New function, replaces the un-objectified version of the command. * generic/tkInt.h: Swap TkUnsupported1Cmd for TkUnsupported1ObjCmd. * generic/tkWindow.c (): Ditto. This adds a "-notify" flag to "wm attributes" that will bounce the dock icon on Mac OS X. This is from Revar Desmera <revarbat@gmail.com> * macosx/tkMacOSXWm.c (WmAttrGetNotifyStatus, WmAttrSetNotifyStatus): New functions. (WmAttributesCmd): Add the -notify. * doc/wm.n: Document -notify.
* 2005-03-14 Jim Ingham <jingham@apple.com>wolfsuit2005-03-153-54/+131
| | | | | | | | | | | | | | | | | | | | | | * macosx/tkMacOSXScrlbr.c (ThumbActionProc): No need to use "update idletasks" here, TclServiceIdle will do as well and it is simpler. These changes implement a change on the Mac OS X side. When we unmap a window we mark all its children as unmapped (not following toplevels. But we preserve whether they had been mapped before, and when the parent is remapped, we remap the children as well. [Bug 940117] * macosx/tkMacOSXInt.h: Added TK_MAPPED_IN_PARENT * macosx/tkMacOSXSubwindows.c (FixMappingFlags): New function. (XMapWindow): Call FixMappingFlags. (XUnMapWindow): Ditto. * tkMacOSXSubWindows.c (XMoveResizeWindow): Update the xOff & yOff data in the Macdrawable even if the native window hasn't been created yet. [Bug 700305] (XMoveWindow): Ditto. (XResizeWindow): Ditto.
* Fix for 1124237.wolfsuit2005-03-123-8/+32
|
* Fix the mysterious "sometimes one button doesn't draw" bug.wolfsuit2005-03-121-23/+19
|
* Fix for 1160025wolfsuit2005-03-101-12/+24
|
* Add a hack to work around some issues with remote debugging with Xcode. ↵wolfsuit2005-03-092-2/+15
| | | | | | | | Xcode requires that stdin & stdout be closed or you won't be able to interrupt the running program. So I added a check for XCNOSTDIN environment variable in the startup, and I force them closed if it is set. With that, remote debugging works pretty well.
* * macosx/tkMacOSX.h: fixed incorrect inclusion of internal header.das2005-02-242-10/+8
| | | | * macosx/tkMacOSXNotify.c: corrected included headers.
* * macosx/tkMacOSXDialog.c (Tk_GetSaveFileObjCmd, NavServicesGetFile):das2005-02-221-40/+20
| | | | | | fixed encoding problems with -initialfile & -filetypes and corrected potential buffer overrun with -initialdir/-initialfile. [Bug 1146057]
* * macosx/tkMacOSXInit.c (TkpInit): set tcl_interactive to 1 to showdas2005-01-251-6/+7
| | | | | | | | | | console at startup instead of directly calling [console show]. * unix/tcl.m4 (Darwin): fixed bug with static build linking to dynamic library in /usr/lib etc instead of linking to static library earlier in search path. [Tcl Bug 956908] Removed obsolete references to Rhapsody. * unix/configure: autoconf-2.57
* Changed to make platform implementation ready for a toplevel -use option; ↵chengyemao2005-01-091-2/+3
| | | | completed a full toplevel -use option configuration for Windows
* Corrected handling of MacOS filetypes in tk_*file dialogsvincentdarley2004-12-201-3/+2
|
* Bump to 8.5a3donal.k.fellows@manchester.ac.uk2004-12-113-8/+8
|
* * macosx/Wish.pbproj/project.pbxproj: reverted earlier changes fordas2004-11-191-3/+3
| | | | tclConfig.h changes to tcl, since those have been reverted for now.
* * macosx/Wish.pbproj/project.pbxproj: reverted earlier changes fordas2004-11-191-3/+6
| | | | tclConfig.h changes to tcl, since those have been reverted for now.
* Remove extra space after {BUILD_PRODUCTS.wolfsuit2004-11-171-2/+2
|
* * macosx/Wish.pbproj/project.pbxproj:das2004-11-166-28/+4368
| | | | | | | | | | | | | | | * macosx/buildTkConfig.tcl: fixes for tclConfig.h changes. * macosx/Wish.pbproj/project.pbxproj: fixed references to renamed bitmap files. * macosx/Wish.xcode/project.pbxproj (new): * macosx/Wish.xcode/default.pbxuser (new): * macosx/Wish-Info.plist (new): * macosx/Tk-Info.plist (new): added new Xcode 1.5 project using native targets, made possible by tclConfig.h changes. * generic/tk.h: added version number change comments for new files.
* * macosx/tkMacOSXXStubs.c: implemented XGetGeometry().das2004-11-131-4/+24
|
* * doc/SetOptions.3:das2004-11-121-48/+75
| | | | | | | | * doc/text.n: fixed *roff errors uncovered by running 'make html'. * macosx/tkMacOSXFont.c (Tk_MeasureChars,Tk_DrawChars,etc): Make sure that the lastSubFontPtr remains valid even when the subfont array is reallocated. [Bug 618872]