| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
[Bug 755906] (mistachkin)
|
| |
|
|
|
|
|
| |
Reworked windowObj type.
Fixes Tk Bug #671330 "segfault when e.g. deiconifying destroyed window"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DeleteWindowsExitProc): Add TkHalfdeadWindow
type and halfdeadWindowList to keep track
of windows that were only partially deallocated
before a call to exit. Finnish cleaning up
these windows in DeleteWindowsExitProc.
Keep track of cleanup status in Tk_DestroyWindow
so that a window with a Destroy binding which
calls exit will get fully destroyed.
* tests/window.test: Add Tk_DestroyWindow tests
for an assortment of half dead window cases.
[Bug 630533]
|
|
|
|
|
|
|
| |
* generic/tkWindow.c: made 'tk' available in safe interpreters,
but only the caret and windowingsystem subcommands may be called.
* tests/safe.test (safe-1.2): noted that tk is now available in
safe interps, but not the appname/scaling subcommands.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tk.decls:
* generic/tkInt.decls: added new "aqua" specific entries to the
stubs tables. Changed all "unix" entries to "x11" to allow us to
distinguish and build both "aqua" on MacOSX and "x11" on MacOSX.
* generic/tk.h: added a #ifnded RESOURCE_INCLUDED so that tk.h can
be passed to the resource compiler.
* generic/tkCmds.c (Tk_TkObjCmd): added [tk windowingsystem]
subcommand: returns "x11" when running on X11, "win32" on Windows,
"classic" on MacOS9 and "aqua" on MacOSX Aqua (i.e. Carbon)
* generic/tkFont.c (TkFontGetFirstTextLayout): new private function
returning the first chunk of a Tk_TextLayout, i.e. until the first
font change on the first line (or the whole first line if there is
no such font change).
* generic/tkMain.c: made Tcl_ThreadDataKey static
* library/demos/puzzle.tcl: fixed button metrics for aqua
* tests/cursor.test: check for presence of arrow cursor instead of
heart cursor
* xlib/xcolors.c: changed xColors static initialization to more
standard C
* macosx/Wish.pbproj/jingham.pbxuser (new):
* macosx/Wish.pbproj/project.pbxproj (new): project for Apple's
ProjectBuilder IDE.
* macosx/Makefile (new): simple makefile for building the project
from the command line via the ProjectBuilder tool 'pbxbuild'.
* macosx/tkMacOSXAppInit.c (new): macosx specific AppInit looking
for a AppMain.tcl file in its bundled Resources/Scripts folder. If
present, argv[1] is set to that file and the Scripts folder is
added to the auto_path. This allows tk apps to embed scripts within
their bundle directory structure.
* macosx/tkMacOSXInit.c (new): macosx adapted version of
tkUnixInit.c: we initialize & cache the Carbon native encoding
(e.g. 'macRoman') and try to find the tk script library files
inside Tk packaged as a framework.
* macosx/tkMacOSXNotify.c (new): new macosx specific merged
Carbon/select-based notifier.
* macosx/tkMacOSXEvent.c (new):
* macosx/tkMacOSXEvent.h (new):
* macosx/tkMacOSXKeyEvent.c (new):
* macosx/tkMacOSXMouseEvent.c (new):
* macosx/tkMacOSXWindowEvent.c (new): new macosx specific event
handling functionality.
* macosx/tkMacOSX.h (new):
* macosx/tkMacOSXBitmap.c (new):
* macosx/tkMacOSXButton.c (new):
* macosx/tkMacOSXClipboard.c (new):
* macosx/tkMacOSXColor.c (new):
* macosx/tkMacOSXConfig.c (new):
* macosx/tkMacOSXCursor.c (new):
* macosx/tkMacOSXDefault.h (new):
* macosx/tkMacOSXDialog.c (new):
* macosx/tkMacOSXDraw.c (new):
* macosx/tkMacOSXEmbed.c (new):
* macosx/tkMacOSXFont.c (new):
* macosx/tkMacOSXHLEvents.c (new):
* macosx/tkMacOSXInt.h (new):
* macosx/tkMacOSXKeyboard.c (new):
* macosx/tkMacOSXMenu.c (new):
* macosx/tkMacOSXMenubutton.c (new):
* macosx/tkMacOSXMenus.c (new):
* macosx/tkMacOSXPort.h (new):
* macosx/tkMacOSXRegion.c (new):
* macosx/tkMacOSXScale.c (new):
* macosx/tkMacOSXScrlbr.c (new):
* macosx/tkMacOSXSubwindows.c (new):
* macosx/tkMacOSXTest.c (new):
* macosx/tkMacOSXUtil.c (new):
* macosx/tkMacOSXUtil.h (new):
* macosx/tkMacOSXWm.c (new):
* macosx/tkMacOSXWm.h (new):
* macosx/tkMacOSXXStubs.c (new): macosx ports of classic mac Tk
implementation in tk/mac.
* macosx/tkMacOSXSend.c (new): only send to local interp
implemented currently.
* macosx/tkMacOSXDebug.h (new):
* macosx/tkMacOSXDebug.c (new): new macosx specific functions for
debugging MacOS events, regions, etc.
* macosx/tkAboutDlg.r (new):
* macosx/tkMacOSXApplication.r (new):
* macosx/tkMacOSXCursors.r (new):
* macosx/tkMacOSXLibrary.r (new):
* macosx/tkMacOSXMenu.r (new):
* macosx/tkMacOSXResource.r (new):
* macosx/tkMacOSXXCursors.r (new):
* macosx/tclets.r (new): sources for Rez resource compiler.
* macosx/Wish.icns (new): Wish application icon.
* generic/tk.h:
* generic/default.h:
* generic/tkBind.c:
* generic/tkCmds.c:
* generic/tkGrab.c:
* generic/tkPointer.c:
* generic/tkPort.h:
* generic/tkSelect.c:
* generic/tkStubLib.c:
* generic/tkTest.c:
* generic/tkText.c:
* generic/tkWindow.c:
* unix/tkUnix3d.c:
* xlib/xgc.c:
* xlib/X11/X.h:
* xlib/X11/Xlib.h:
* xlib/X11/Xutil.h: added #includes and #ifdefs for macosx
* library/bgerror.tcl:
* library/button.tcl:
* library/console.tcl:
* library/dialog.tcl:
* library/entry.tcl:
* library/listbox.tcl:
* library/menu.tcl:
* library/msgbox.tcl:
* library/scrlbar.tcl:
* library/spinbox.tcl:
* library/text.tcl:
* library/tk.tcl:
* library/demos/menu.tcl:
* library/demos/menubu.tcl:
* library/demos/widget: check [tk windowingsystem] instead of
and/or in addition to $tcl_platform(platform).
* generic/tkInt.h:
* mac/tkMacBitmap.c:
* mac/tkMacWm.c: added missing CONSTification
* generic/tkIntDecls.h:
* generic/tkIntPlatDecls.h:
* generic/tkIntXlibDecls.h:
* generic/tkPlatDecls.h:
* generic/tkStubInit.c: regen
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
updating Tk to use Tcl 8.4's fully CONST-ified
interface, and fully CONSTifying Tk at the
same time.
This patch includes purging Tk of its last
direct access to interp->result. [Bug 589853]
The substantial changes include copying
event sequence strings into Tcl_DStrings
in tkBind.c, and copying [text] indices into
Tcl_DStrings because parsing them involved
overwriting them. If this causes performance
trouble, that can be resolved by further
converting them to Tcl_Obj's.
The #defines USE_NON_CONST and USE_COMPAT_CONST
have the same effect for Tk as they do for Tcl.
(They actually change tcl.h)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Handle case where Tk_DestroyWindow is invoked
on clipboard and send windows.
* generic/tkClipboard.c (TkClipCleanup):
Invoke Tk_DestroyWindow to cleanup the
dispPtr->clipWindow. Call Tcl_Preserve
and Tcl_Release on the window to avoid an
invalid memory ref on shutdown.
* generic/tkEvent.c (Tk_HandleEvent):
Panic if XCreateIC is invoked twice for
the same window. This should never happen,
the check were just added to make sure it
does not since this could lead to crashes
in XCloseIM.
* generic/tkFocus.c (TkFocusDeadWindow):
Handle case where Tk_DestroyWindow is invoked
on clipboard and send windows.
* generic/tkOption.c (TkOptionDeadWindow): Ditto.
* generic/tkWindow.c (TkCloseDisplay): Move
deletion of dispPtr->winTable after TkpCloseDisplay
call since Tk_DestroyWindow uses it and could
be called by TkpCloseDisplay for clipboard/send windows.
Also invoke ckfree for the dispPtr instead of
doing it in TkpCloseDisplay.
(Tk_DestroyWindow): Check for a null winPtr->mainPtr
before doing certain cleanup tasks so the we can
invoke Tk_DestroyWindow on clipboard and send windows.
We need to do this so that XDestroyIC will get invoked
for the input contexts of each window.
* mac/tkMacXStubs.c (TkpCloseDisplay): Don't free
the displayPtr since this is now done in TkCloseDisplay.
* unix/tkUnixEvent.c (TkpCloseDisplay, OpenIM): Remove
conditional compilation around calls to XCloseIM
since I am confident that the crashes related to
input contexts has been fixed. Don't free
the displayPtr since this is now done in TkCloseDisplay.
* unix/tkUnixSend.c (TkSendCleanup): Invoke the
Tk_DestroyWindow method to cleanup the special
send window. This will call XDestroyIC and thereby
avoid a crash in XCloseIM. The send window needs
to be Tcl_Preserve and Tcl_Release to avoid an
invalid memory ref on shutdown.
* win/tkWinX.c (TkpCloseDisplay): Don't free
the displayPtr since this is now done in TkCloseDisplay.
|
|
|
|
| |
Frederic Bonnet to supply docs+tests as soon as possible.
|
|
|
|
|
|
|
|
| |
component of a window to NULL after its memory has been
deallocated to avoid a possible illegal memory access
as a result of a call to Tk_PathName() on a Tk_Window
structure of a window that has already been destroyed.
[Tk bug 521946]
|
|
|
|
|
|
|
|
|
| |
* generic/tkDecls.h: Tk_CollapseMotionEvents API which controls
* generic/tkEvent.c: Tk's collapsing of incoming motion events
* generic/tkInt.h: on its windows. The default remains to do
* generic/tkStubInit.c: collapsing. Added a flags parameter to the
* generic/tkWindow.c: internal display structure to support this
* doc/QWinEvent.3: and be used in the future for other bits.
|
|
|
|
|
|
|
|
| |
(patch from Neil McKay).
* Add CirculateRequest, Create, MapRequest, ResizeRequest,
and ConfigureRequest event types;
* Split TK_TOPLEVEL flag into TK_TOPLEVEL, TK_HAS_WRAPPER,
TK_WIN_MANAGED, and TK_TOP_HIERARCHY.
|
|
|
|
|
|
|
|
|
|
| |
display was closed. This handles freeing memory associated with a
display and closing it.
(DeleteWindowsExitProc): actually close displays. This would also
ideally be done in Tk_DestroyWindow when the last window on the
display has been closed, but that still has unresolved order of
cleanup problems.
(Tk_DestroyWindow): added TkFocusFree call.
|
|
|
|
|
|
| |
* generic/tkWindow.c: moved OpenIM over to tkUnixEvent.c.
Removed setting inputContext to null in Tk_MakeWindowExist as it
was redundant.
|
|
|
|
|
| |
protect against being called before Tcl stubs are init'ed.
[Bug #220916] (porter)
|
| |
|
|
|
|
|
|
|
|
|
| |
* Updated callers of Tcl_GetStringResult.
Rewrote PrintScrollFractions to ScrollFractions to stop scribbling
directly on interp->result.
* Updated callers of Tcl_GetVar, Tcl_GetVar2
* Updated callers of Tcl_SplitPath, Tcl_JoinPath, and
Tcl_TranslateFileName.
|
|
|
|
| |
basic XIM input on Unix. [Patch #412727] (fabian)
|
| |
|
| |
|
|
|
|
| |
* generic/tkEntry.c (GetSpinboxElement): fixed unreachable returns.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Windows platforms that were overlooked before: tkOpenDocument,
tkConsoleExit, tkConsoleOutput, unsupported1 out of namespace :: .
Thanks to Vince Darley for prompting another look.
|
|
|
|
|
| |
Tcl_EventuallyFree instead of ckfree so that widgets that have
references to a tkwin can use them.
|
|
|
|
|
| |
style when processing configuration options. Some cleanup of
bad comments and bad code. [part of patch #420861]
|
|
|
|
|
|
|
|
|
| |
TkClassProcs/TkSetClassProcs as Tk_ClassProcs/Tk_SetClassProcs,
adding a size field to Tk_ClassProcs to allow for future
expansion, and renaming the geometryProc to worldChangedProc,
which is more in keeping with the actual use of the callback.
See ChangeLog for details.
|
| |
|
|
|
|
|
| |
This only has effect when tclsh is run (not wish), and then Tk is
loaded in interactively.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TK_ANONYMOUS_WINDOW flag in the [winfo children] subcommand; if
set, the window will not be printed in the list of children.
* doc/CrtWindow.3: Added entry for Tk_CreateAnonymousWindow.
* generic/tkWindow.c
(Tk_CreateAnonymousWindow): New API for creating anonymous
windows. These windows are manipulable from C, but not from Tcl,
because they have no pathname associated with them. They are used
initially by widgets that do rubber-band resizing (panedwindow,
multi-column listbox, etc.), and may be useful for other widgets
as well (dropbox, combobox).
(Tk_DestroyWindow): Added check for TK_ANONYMOUS_WINDOW flag when
determining whether to generate a DestroyNotify event.
* generic/tkStubInit.c:
* generic/tkDecls.h: Regen'd from tk.decls.
* generic/tk.decls: Added Tk_CreateAnonymousWindow declaration.
* generic/tk.h: Added TK_ANONYMOUS_WINDOW flag for Tk_Window's.
|
|
|
|
|
|
|
|
|
|
|
|
| |
[place].
* generic/tkInt.h: Replaced Tk_PlaceCmd prototype with
Tk_PlaceObjCmd prototype.
* generic/tkWindow.c: Updated [place] command entry to use new
Tcl_Obj interface.
* generic/tkPlace.c (Tk_PlaceObjCmd): Tcl_Obj'ified [place] command.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
new Tcl_Obj interface.
* generic/tkInt.h: Replaced Tk_SelectionCmd prototype with
Tk_SelectionObjCmd prototype.
* tests/select.test: Updated test suite to recognize standardized
error messages.
* generic/tkSelect.c (Tk_SelectionObjCmd): Tcl_Obj'ified
[selection] command.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tcl_Obj'ified command.
* generic/tkInt.h: Replaced Tk_GrabCmd prototype with
Tk_GrabObjCmd prototype.
* tests/grab.test: Initial suite of tests for [grab] command.
* generic/tkGrab.c (Tk_GrabObjCmd): Tcl_Obj'ified [grab] command.
* generic/tkCmds.c: Fixed casting problem in Tk_BindtagsObjCmd.
|
|
|
|
|
|
|
|
|
| |
Tk_BindObjCmd prototype.
* generic/tkWindow.c: Updated "bind" command entry to use
Tcl_Obj'ified command.
* generic/tkCmds.c (Tk_BindObjCmd): Tcl_Obj'ified [bind] command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to comply with updated error messages.
* generic/tkMenu.c (CloneMenu): Replaced calls to Tk_BindtagsCmd
with equivalent calls to Tk_BindtagsObjCmd.
* generic/tkInt.h: Replace Tk_BindtagsCmd prototype with
Tk_BindtagsObjCmd prototype.
* generic/tkWindow.c: Updated "bindtags" command entry to use
Tcl_Obj'ified command.
* generic/tkCmds.c (Tk_BindtagsObjCmd): Tcl_Obj'ified [bindtags]
command.
|
|
|
|
|
|
|
|
| |
* generic/tkWindow.c: Updated "tkwait" command entry to use
Tcl_Obj'ified command.
* generic/tkInt.h: Replace Tk_TkwaitCmd prototype with
Tk_TkwaitObjCmd prototype.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
prototype for Tk_MessageObjCmd.
* generic/tkWindow.c: Marked message command as using the new
MessageObjCmd instead of the old MessageCmd.
* tests/message.test: Added tests for the message widget.
* generic/tkMessage.c: Obj'ified the message widget.
* generic/tkInt.h: Removed prototype for Tk_ClipboardCmd, added
prototype for Tk_ClipboardObjCmd.
* generic/tkWindow.c: Updated function pointers for clipboard
command to use Tcl_Obj version.
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tkInt.h: added Tk_SpinboxObjCmd declaration
* generic/tkEntry.c: added 'spinbox' widget - an extension of the
entry widget type.
* generic/tkWindow.c: added 'spinbox' to core Tk commands
* library/spinbox.tcl: (new file) binding and helper procs for spinbox
* library/tk.tcl: added spinbox.tcl to list of files to source
* tests/entry.test: updated changed error messages
* tests/spinbox.test: (new file) test suite for spinbox
|
|
|
|
| |
* doc/keysyms.n: Man page enumerating keysyms [RFE: 1645].
|
|
|
|
|
|
|
| |
* generic/tkWindow.c:
* generic/tkInt.h: Updated Tcl_OptionCmd -> Tcl_OptionObjCmd
* generic/tkOption.c: Tcl_Obj'ectified the "option" command.
|
|
|
|
|
|
|
| |
Tk_ConfigureWidget [Bug: 4079]
* generic/tkWindow.c: Added check for NULL tkwin value in
Tk_NameToWindow [Bug: 4079]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tkEvent.c:
* generic/tkWindow.c:
* generic/tkInt.h: add 'tk useinputmethods ?-display win? ?bool?'
call to provide support for disabling/enabling the use of XIM on
X. This was previously all done at compile time, and always on.
Now it
* generic/tkCanvUtil.c: fixed bug in Tk_CanvasPsOutline that freed
mem it shouldn't.
* generic/tkFont.c: added "bitstream cyberbit" (popular Windows
CJK font) to list of font fallbacks. (kenny) [Bug: 2407]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tkDecls.h:
* generic/tkIntXlibDecls.h:
* generic/tkInt.decls: added XSetDashes and XWarpPointer
* generic/tk.decls: added Tk_CreateSmoothMethod, and reserved
two spots
* generic/tk.h: added Tk_SmoothMethod struct,
state item to canvas record, #defines for item state,
support for using old char*-based canvas item C creation
procedures with -DUSE_OLD_CANVAS,
Tk_Dash, Tk_TSOffset (-offsets) & Tk_Outline structs and #defs,
decls for dash, outline and postscript routines
* generic/tkBind.c: added support for Quadruple clicks, and added
the -warp option to 'event' with pointer warping routines
* xlib/xgc.c:
* generic/tkRectOval.c:
* generic/tkCanvArc.c:
* generic/tkCanvBmap.c:
* generic/tkCanvImg.c:
* generic/tkCanvLine.c:
* generic/tkCanvPoly.c:
* generic/tkCanvPs.c:
* generic/tkCanvText.c:
* generic/tkCanvUtil.c:
* generic/tkCanvWind.c:
* generic/tkCanvas.c:
* generic/tkCanvas.h: Canvas and items received overhaul to with
the addition of the dash patch (Nijtmans, et al) This includes
objectification of the 'canvas' command, as well as support for
(where appropriate) dashes in items, extended stipple support,
state for all items, and postscript generation of images and
windows. See the new canvas man page for related docs.
* generic/tkEntry.c: added entry widget validation, see entry.n
* generic/tkEvent.c: on simulated events, ButtonPress should
be matched with ButtonRelease to be correct
* generic/tkFont.c: corrected possible null reference
* generic/tkFrame.c: made frame a Tcl_Obj based command
* generic/tkGet.c: added TkGetDoublePixels
* generic/tkImage.c: bug fixes from Img patch and new
Tk_PostscriptImage and Tk_SetTSOrigin functions
* generic/tkImgBmap.c: new ImgBmapPostscript function
* generic/tkImgPhoto.c: new Tk_CreatePhotoOption, Tk_DitherPhoto
* generic/tkInt.h: declarations for some new functions
* generic/tkMessage.c: reworked relief drawing
* generic/tkOldConfig.c: added TK_CONFIG_OBJS so old style
ConfigureWidget calls can pass in Tcl_Obj arrays
* generic/tkScrollbar.c:
* generic/tkScrollbar.h: made -orient use an option table
* generic/tkText.c:
* generic/tkText.h: made -wrap and -state use option tables
* generic/tkTextBTree.c:
* generic/tkTextDisp.c:
* generic/tkTextImage.c:
* generic/tkTextMark.c:
* generic/tkTextTag.c:
* generic/tkTextWind.c: added support for -elide and -state hidden
* generic/tkTrig.c: changed TkMakeBezierCurve to support returning
the upper limit of points needed for spline
* generic/tkUtil.c: new option table parsing routines
* generic/tkWindow.c: init'ing of warp stuff, mouseButtonState
|
|
|
|
|
|
| |
* generic/tkWindow.c:
* generic/tkCmds.c: converted Tk_DestroyCmd, Tk_LowerCmd and
Tk_RaiseCmd to their ObjCmd equivalent.
|
|
|
|
|
|
|
|
|
|
|
| |
new-school objectified command.
* generic/tkListbox.c: Objectified listbox; added support for
-listvar option. Converted internal structure to use a Tcl list
object to store the data.
* generic/tkInt.h: Changed reference to Tk_ListboxCmd to
Tk_ListboxObjCmd.
|