summaryrefslogtreecommitdiffstats
path: root/macosx/tkMacOSXWm.c
Commit message (Collapse)AuthorAgeFilesLines
* 3574893 Add overlooked toplevel ref count maintenance in the [wm manage|forget]dgp2012-10-241-0/+6
|\ | | | | operations that could cause segfaults due to premature free of structs.
| * 3574893 Add overlooked toplevel ref count maintenance in the [wm manage|forget]dgp2012-10-241-0/+6
| | | | | | operations that could cause segfaults due to premature free of structs.
* | consistant use of mode: objc for OSX, strip spaces from the end of linesjan.nijtmans2012-10-231-7/+7
|\ \ | |/
| * remove RCS keywords, use mode: objc consistantlyjan.nijtmans2012-10-231-12/+12
| |
| * Backport of dgp wm-forget and wm-manage fixes; test suite no longer crashesKevin Walzer2012-10-181-6/+17
| |
| * Backport of dgp fixes to trunk for Tk-CocoaKevin Walzer2012-09-251-1/+3
| |
| * Review branch for merge of Tk-Cocoa into Tk 8.5 main branchKevin Walzer2012-09-121-1093/+1194
| |
* | Updated branch now stops all segfaults and panics in the test suite.bug_3567786dgp2012-09-161-1/+6
| | | | | | | | | | Not a lot of confidence that other problems haven't been created, including memleaks and broken functionality in areas. A review would be a good idea. So would a trunk that doesn't segfault the test suite.
* | More work in progress. wm-manage tests all work now. still some issuesdgp2012-09-161-2/+6
| | | | | | with wm-forget.
* | Work in progress - make TkWmNewWindow and TkWmDeadWindow more complementarydgp2012-09-161-1/+4
| | | | | | | | and pass in to TkWmDeadWindow from WmForgetCmd a pointer that at least has the right type.
* | merge trunkdkf2012-08-081-50/+12
|\ \
| * | Fixes for menu and wm fullscreen bugs; thanks to Adrian Robert for patchesmistake__off_trunkKevin Walzer2012-08-061-50/+12
| | |
* | | minor improvements to flag handlingdkf2012-07-311-3/+3
| | |
* | | more auditing of error codesdkf2012-07-301-2/+3
| | |
* | | Purged Tcl_AppendElement from all non-test code.dkf2012-07-291-23/+34
| | |
* | | Ttk and Aqua donedkf2012-07-241-199/+251
| | |
* | | Much more cleaning up of result handling.dkf2012-07-231-11/+15
| | |
* | | Working towards adding all the Tcl_SetErrorCode calls that should be there.dkf2012-07-161-60/+55
|/ / | | | | ** WORK IN PROGRESS **
* | Patch for font metrics and colorspace provided by Adrian RobertKevin Walzer2012-02-221-1/+1
| |
* | Minor tweak for wm forgetKevin Walzer2011-07-271-2/+2
| |
* | Minor fix of wm forget implementation on AquaKevin Walzer2011-07-261-2/+2
| |
* | Purge RCS Keywordsdgp2011-06-081-2/+0
|\ \ | |/
| * Purge RCS Keywords.dgp2011-06-081-2/+0
| |\
| | * Purge RCS Keywords.dgp2011-06-081-2/+0
| | |
| | * * generic/tkImgPhoto.c: fix leaks discovered with the Mac OS Xdas2009-02-061-1/+7
| | | | | | | | | | | | | | | * generic/tkMenu.c: Instruments.app Leaks tool. * macosx/tkMacOSXWm.c:
| | * * macosx/tkMacOSXWm.c (ApplyMasterOverrideChanges): Revert 2007-10-26das2007-12-181-33/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | change to window class of transient toplevels that are not also overrideredirect. [Bug 1845899] * macosx/tkMacOSXWm.c (ApplyMasterOverrideChanges): Implement more * macosx/tkMacOSXMouseEvent.c (BringWindowForward): X11-like transient * macosx/tkMacOSXSubwindows.c (XDestroyWindow): behaviour by adding transient windows to a window group owned by the master window, this ensures transients always remain in front of and are collapsed with the master; bring master to front when selecting transient windows; restore default window group of transients if master destroyed. [Bug 1845899]
| | * Backport from HEAD of Aqua changes from 2007-10-12 to 2007-11-09das2007-11-091-12/+205
| | |
| | * * macosx/tkMacOSXWm.c (ApplyMasterOverrideChanges): fix window class ofdas2007-10-261-24/+27
| | | | | | | | | | | | transient toplevels that are not also overrideredirect. [Bug 1816252]
| | * * macosx/tkMacOSXWm.c (TkMacOSXGrowToplevel): manually constrain resizedas2007-10-111-2/+13
| | | | | | | | | | | | | | | limitBounds to maxBounds, works around SectRect() mis-feature (return zero rect if input rect has zero height/width). [Bug 1810818]
| | * * macosx/tkMacOSXScrlbr.c: correct int <-> dobule conversion issuesdas2007-06-291-17/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that could lead to Carbon getting confused about scrollbar thumb size. * macosx/tkMacOSXDraw.c (XCopyArea, XCopyPlane, TkPutImage) use TkMacOSX{Setup,Restore}DrawingContext() to setup/restore clip & colors. (TkMacOSXSetupDrawingContext, TkMacOSXRestoreDrawingContext): add save and restore of QD port clip region; factor out clip region code common to CG and QD branches; check for port and context validity; handle tkPictureIsOpen flag during QD port setup. (TkScrollWindow): remove unnecessary scroll region manipulation * macosx/tkMacOSXDraw.c: remove second global QD temp region * macosx/tkMacOSXInt.h: (no longer necessary) and rename * macosx/tkMacOSXRegion.c: remaining global QD temp region. * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXDraw.c: make useCGDrawing variable MODULE_SCOPE * macosx/tkMacOSXFont.c: and sync formatting with HEAD. * macosx/tkMacOSXButton.c: reduce reliance on current QD port * macosx/tkMacOSXColor.c: setting and remove unnecessary * macosx/tkMacOSXDebug.c: references to a drawable's QD port, * macosx/tkMacOSXDebug.h: notably replace GetWindowFromPort( * macosx/tkMacOSXDialog.c: TkMacOSXGetDrawablePort()) idiom by new * macosx/tkMacOSXDraw.c: TkMacOSXDrawableWindow() and change * macosx/tkMacOSXKeyEvent.c: TkMacOSXSetColorInPort() to take a port * macosx/tkMacOSXMenu.c: argument. * macosx/tkMacOSXMenubutton.c: * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXScale.c: * macosx/tkMacOSXScrlbr.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXInt.h: factor out macros, declarations * macosx/tkMacOSXPrivate.h (new): and prototypes that are purely internal and private to the 'macosx' sources into a new internal header file that does _not_ get installed into Tk.framework/PrivateHeaders. * macosx/tkMacOSXButton.c: #include new tkMacOSXPrivate.h * macosx/tkMacOSXCarbonEvents.c: instead of tkMacOSXInt.h. * macosx/tkMacOSXClipboard.c: * macosx/tkMacOSXColor.c: * macosx/tkMacOSXCursor.c: * macosx/tkMacOSXDebug.c: * macosx/tkMacOSXDialog.c: * macosx/tkMacOSXDraw.c: * macosx/tkMacOSXEntry.c: * macosx/tkMacOSXEvent.c: * macosx/tkMacOSXFont.c: * macosx/tkMacOSXHLEvents.c: * macosx/tkMacOSXInit.c: * macosx/tkMacOSXKeyEvent.c: * macosx/tkMacOSXMenu.c: * macosx/tkMacOSXMenubutton.c: * macosx/tkMacOSXMenus.c: * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXNotify.c: * macosx/tkMacOSXRegion.c: * macosx/tkMacOSXScale.c: * macosx/tkMacOSXScrlbr.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXXStubs.c:
| | * * macosx/tkMacOSXColor.c: fix issues with TK_{IF,ELSE,ENDIF} macros;das2007-06-091-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * macosx/tkMacOSXDraw.c: implement Jaguar equivalent of unavailable * macosx/tkMacOSXEntry.c: kHIToolboxVersion global; panic at startup * macosx/tkMacOSXEvent.c: if MAC_OS_X_VERSION_MIN_REQUIRED constraint * macosx/tkMacOSXInit.c: is not satisfied. * macosx/tkMacOSXInt.h: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXDraw.c (XCopyArea, XCopyPlane, TkPutImage) (TkMacOSXSetupDrawingContext): factor out common code and standardize setup/restore of port, context and clipping; formatting cleanup. * macosx/tkMacOSXWindowEvent.c: add error checking. * macosx/tkMacOSXMenu.c: fix gcc3 warning. * macosx/tkMacOSXScrlbr.c: fix testsuite crash. * macosx/tkMacOSXSubwindows.c: formatting cleanup. * macosx/tkMacOSXRegion.c: fix typos. * macosx/tkMacOSXScale.c:
| | * * macosx/tkMacOSXMouseEvent.c (GenerateMouseWheelEvent): enabledas2007-06-061-59/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | processing of mousewheel events in background windows. * macosx/tkMacOSXScrlbr.c: modernize checks for active/front window. * macosx/tkMacOSXScale.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXColor.c: factor out verbose #ifdef checks of * macosx/tkMacOSXDraw.c: MAC_OS_X_VERSION_{MAX_ALLOWED,MIN_REQUIRED} * macosx/tkMacOSXEntry.c: and runtime checks of kHIToolboxVersion into * macosx/tkMacOSXEvent.c: new TK_{IF,ELSE,ENDIF}_MAC_OS_X macros. * macosx/tkMacOSXInit.c: * macosx/tkMacOSXInt.h: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXDraw.c: factor out clip clearing in QD ports; * macosx/tkMacOSXEntry.c: formatting cleanup.
| | * * macosx/tkMacOSXMenu.c: add error checking; whitespace cleanup.das2007-06-041-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * macosx/tkMacOSXDraw.c: sync comment formatting with HEAD. * macosx/tkMacOSXEmbed.c: * macosx/tkMacOSXEntry.c: * macosx/tkMacOSXKeyEvent.c: * macosx/tkMacOSXKeyboard.c: * macosx/tkMacOSXMenus.c: * macosx/tkMacOSXSend.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXXStubs.c:
| | * * macosx/tkMacOSXWindowEvent.c (GenerateUpdateEvent): complete alldas2007-05-311-11/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pending idle-time redraws before newly posted Expose events are processed; add bounds of redrawn windows to update region to ensure all child windows overdrawn by parents are redrawn. * macosx/tkMacOSXWindowEvent.c: centralize clip and window invalidation * macosx/tkMacOSXSubwindows.c: after location/size changes in the * macosx/tkMacOSXWm.c: BoundsChanged carbon event handler; correct/add window invalidation after window attribute changes. * macosx/tkMacOSXSubwindows.c (XResizeWindow, XMoveResizeWindow, XMoveWindow): factor out common code dealing with embedded and non-toplevel windows; remove unnecessary clip and window invalidation. * macosx/tkMacOSXButton.c (TkpDisplayButton): move clip setup closer to native button drawing calls. * macosx/tkMacOSXWm.c (TkMacOSXIsWindowZoomed, TkMacOSXZoomToplevel): correct handle gridded windows in max size calculations. * macosx/tkMacOSXEvent.c (TkMacOSXFlushWindows): use HIWindowFlush API when available. * macosx/tkMacOSXColor.c: cleanup whitespace and formatting. * macosx/tkMacOSXDraw.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWm.c:
| | * * macosx/tkMacOSXMenu.c (DrawMenuSeparator): use DrawingContext API.das2007-05-301-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * macosx/tkMacOSXWindowEvent.c (ClearPort): clip to updateRgn. * macosx/tkMacOSXDebug.c: factor out debug region flashing. * macosx/tkMacOSXDebug.h: * macosx/tkMacOSXDraw.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXEvent.c: cleanup whitespace and formatting. * macosx/tkMacOSXFont.c: * macosx/tkMacOSXRegion.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXXStubs.c: * xlib/xgc.c:
| | * * macosx/tkMacOSXCarbonEvents.c: add window event target carbon eventdas2007-04-291-2021/+2450
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * macosx/tkMacOSXEvent.c: handler for all kEventClassWindow and * macosx/tkMacOSXEvent.h: kEventClassMouse events; move all * macosx/tkMacOSXNotify.c: remaining events except for * macosx/tkMacOSXWindowEvent.c: kEventClassKeyboard from dispatcher to application event handler; pass event handler callRef downstream; fix debug event tracing; process all tcl event types in carbon event timer; delay carbon event timer first fire; add TkMacOSXTrackingLoop() to mark enter/exit of event tracking loop during which all tcl events but only carbon update events should be processed by the timer (replaces various calls to Tcl_SetServiceMode()); rename TkMacOSXReceiveAndProcessEvent() to TkMacOSXReceiveAndDispatchEvent(), move it from tkMacOSXEvent.c to tkMacOSXCarbonEvents.c and modify it to dequeue only update events during a tracking loop; add TkMacOSXRunTclEventLoop() to standardize the various ways in use to run the tcl event loop; add handling of kEventClassAppearance events (for ScrollBarVariantChanged event). * macosx/tkMacOSXDialog.c: use new TkMacOSXTrackingLoop() around * macosx/tkMacOSXEvent.c: blocking API that puts up modal dialogs * macosx/tkMacOSXMenu.c: or when entering/exiting menu/control * macosx/tkMacOSXMouseEvent.c: tracking, window dragging and other * macosx/tkMacOSXScale.c: mouse tracking loops. * macosx/tkMacOSXScrlbr.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXDialog.c: use new TkMacOSXRunTclEventLoop() * macosx/tkMacOSXScale.c: instead of Tcl_DoOneEvent(), * macosx/tkMacOSXScrlbr.c: Tcl_ServiceAll(), TclServiceIdle() * macosx/tkMacOSXWindowEvent.c: and Tcl_GlobalEval("update idletasks"). * macosx/tkMacOSXColor.c: make available as Tk system colors all * macosx/tkMacOSXPort.h: appearance manager brushes, text colors and backgrounds with new and legacy names, as well as the fully transparent color "systemTransparent"; add TkMacOSXSetColorIn{Port,Context}() to directly set an X pixel color value in the current QD port resp. the given CG context without requiring passage through rgb representation (lossy for most system colors); modernize/remove Classic-era code; replace crufty strcmp() elseifs by Tcl_GetIndexFromObjStruct(). * macosx/tkMacOSXButton.c: use new TkMacOSXSetColorInPort() * macosx/tkMacOSXDraw.c: instead of setting rgb color directly * macosx/tkMacOSXMenubutton.c: to allow for non-rgb system colors. * macosx/tkMacOSXCursor.c: implement "none" cursor as on other platforms [Patch 1615427]; add all missing appearance manager cursors. * macosx/tkMacOSXDefault.h: set SELECT_FG_COLORs to None to match aqua L&F; use standard system color names; use new 'menu' system font; correct default scrollbar width. * macosx/tkMacOSXDraw.c: standardize initialization, use and * macosx/tkMacOSXInt.h: emptying of various static temp rgns * macosx/tkMacOSXRegion.c: onto two global RgnHandles; in debug * macosx/tkMacOSXSubwindows.c: builds, verify emptiness of these temp * macosx/tkMacOSXWindowEvent.c: rgns before use. * macosx/tkMacOSXDraw.c: add TkMacOSX{Setup,Restore}DrawingContext() to * macosx/tkMacOSXInt.h: abstract common setup & teardown of drawing environment (for both CG and QD); save/restore QD theme drawing state; handle GC clip region; add TkpClipDrawableToRect() to allow clipped drawing into drawable regardless of GC used; use new system color "systemWindowHeaderBackground" to setup background in themed toplevels; correct implementation of TkMacOSXMakeStippleMap(). * macosx/tkMacOSXEntry.c: use new TkMacOSXSetupDrawingContext() and * macosx/tkMacOSXFont.c: TkMacOSXRestoreDrawingContext() instead of various setup/teardown procs like TkMacOSX{SetUp,Release}CGContext(), TkMacOSXQuarz{Start,End}Draw(), TkMacOSXSetUpGraphicsPort() etc. * macosx/tkMacOSXEmbed.c: add CG context and drawable clip rgn fields * macosx/tkMacOSXInt.h: to MacDrawable struct. * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXDialog.c: make -parent option of tk_getOpenFile et al. use the sheet version of NavServices dialogs; ensure native parent win exists before using StandardSheet API for tk_messageBox [Bug 1677611]; force sheets to behave like app-modal dialogs via WindowModality() API; use more modern ColorPicker API. * macosx/tkAboutDlg.r: use themed movable modal dialog, fix (c) year. * macosx/tkMacOSXEntry.c: take xOff/yOff of MacDrawable into account when computing locations/bounds to ensure correct posititioning when not drawing into intermediate pixmap. * macosx/tkMacOSXFont.c: use appearance manager API to map system font * macosx/tkMacOSXFont.h: names to TkFonts; add "menu" system font for menu item text drawing from MDEF; disable broken QD stippling. * macosx/tkMacOSXMenu.c: large-scale rewrite of custom * macosx/tkMacOSXMenu.r (removed): MDEF and related code that * unix/Makefile.in: restores many longtime-MIA features to working order (e.g. images, custom colors & fonts in menus etc); implement compound menu items; use Appearance Mgr and ThemeText APIs to mimic native MDEF as closely as possible when default "menu" system font is used; remove now obsolete SICN drawing code and resources. * macosx/tkMacOSXCarbonEvents.c: handle additional menu carbon events * macosx/tkMacOSXEvent.c: in order to support <<MenuSelect>> in * macosx/tkMacOSXMenu.c: the menubar and in menus that are not * macosx/tkMacOSXMenus.c: using the custom MDEF [Bug 1620826]; fix early and missing clearing of current Tk active menu entry; fix extraneous sending of <<MenuSelect>> during active menu entry clearing. * macosx/tkMacOSXMouseEvent.c: add support for async window dragging by the window server; set the corresponding window attribute by default. * macosx/tkMacOSXMouseEvent.c: rationalized handling order of non-mousedown events; add TkMacOSXModifierState() to retrieve the current key modifiers in carbon format. * macosx/tkMacOSXScrlbr.c: use appearance manager API to retrieve scrollbar component metrics; add awareness of multiple possibilites for scrollbar arrow position in aqua and handle user changes to arrow position pref; handle difference in metrics of small & large scrollbar variants; handle aqua "jump to here" scrollbar behaviour; correct computation of scroll view size and position; enforce min scrollbar height to avoid scrollbar component overlap; erase scrollbar area outside of standard width; remove broken auto-adjust code; account for window class when leaving space for grow box; remove code to manually draw grow box; use modern API for thumb scroll proc; replace HiliteControl() by modern API; replace control mgr constants with appearance mgr equivalents. * macosx/tkMacOSXSubwindows.c: use SetWindowBounds() API instead of SizeWindow(); invalidate clip regions after X{Map,Unmap}Window as fix for [Bug 940117] made them dependent on mapping state; remove unneeded calls to TkMacOSXInvalClipRgns() and unnecessary setting of QD port; use native-endian pixmap on intel; remove obsolete pixmap pix locking. * macosx/tkMacOSXWindowEvent.c: handle only the first of a batch of kEventAppAvailableWindowBoundsChanged events sent per transaction; handle kEventWindowBoundsChanged event to support live window resizing and centralized sending of location/size changed ConfigureNotify events; ensure HIGrowBox is redrawn after bounds change; constrain window after dragging to ensure titlebar is not inacessible offscreen or under dock/menubar; handle kEventWindowGetRegion and kEventWindowDrawContent for transparent windows to mark resp. paint content region as transparent; handle kEventWindowConstrain for fullscreen windows to ensure bounds match new screen size; enter/exit fullscreen UIMode upon activation/deactivation of fullscreen window. * macosx/tkMacOSXWm.c: use live-resize and async-drag carbon window * macosx/tkMacOSXWm.h: attributes for toplevels by default; implement new [wm attributes] -topmost, -transparent and -fullscreen; refactor WmAttributesCmd() parallelling the tkUnixWm.c implementation, use thus factored proc to set proxy icon from [wm iconbitmap]; dynamically determine default values for toplevel min and max sizes (similar to tkWinWm.c impl): min sizes depend on window class & attributes to ensure visibility of all titlebar widgets and grow box, max sizes depend on maximal window bounds for all active displays; factor out code that puts into effect changes to master or override_redirect; use RepositionWindow() API to determine staggered initial window bounds; correct resize limit calculations, handle gridding and use modern resize API in TkMacOSXGrowToplevel(); remove sending of ConfigureNotify after resize or zoom (now handled by BoundsChanged handler); correct composite carbon window attribute handling, remove currently unusable attributes and add new attributes in [tk::unsupported::MacWindowStyle]; ensure validity of window class and attributes before use; apply changes to window class when handling carbon window attribute changes (if HIWindowChangeClass() API available); add debug build warning message when deprecated window style is used instead of window class; use transparent HIGrowBox for resizable windows; avoid unnecessary calls to window structure width API; use tcl time API in TkpGetMS(); add TkMacOSXEnterExitFullscreen() to enter/exit UIMode with dock and menubar hidden; restrict wmTracing output to debug builds; remove unneeded calls to TkMacOSXInvalClipRgns() and unnecessary setting of QD port; workaround GetWindowStructureWidths() Carbon bug (bogus results for never-mapped floating windows). * macosx/tkMacOSXXStubs.c (TkMacOSXDisplayChanged): add maximal window bounds field to Screen record (in ext_data), computed as the union of available window positioning bounds of all graphics devices (displays). * macosx/tkMacOSXBitmap.c: fix macRoman encoding leak. * macosx/tkMacOSXCursor.c: * macosx/tkMacOSXDebug.c (TkMacOSXCarbonEventToAscii): use static * macosx/tkMacOSXDebug.h: buffer to simplify callers; const fixes. * macosx/tkMacOSXBitmap.c: use more efficient QDSwapPort() instead of * macosx/tkMacOSXButton.c: GetPort()/SetPort()/GetGWorld()/SetGWorld(). * macosx/tkMacOSXDraw.c: * macosx/tkMacOSXFont.c: * macosx/tkMacOSXMenubutton.c: * macosx/tkMacOSXScale.c: * macosx/tkMacOSXScrlbr.c: * macosx/tkMacOSXXStubs.c: * macosx/tkMacOSXColor.c: use kHIToolboxVersionNumber for runtime OS * macosx/tkMacOSXEntry.c: version check rather than Gestalt() etc. * macosx/tkMacOSXInt.h: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXDraw.c: remove obsolete and now incorrect * macosx/tkMacOSXInt.h: tkMenuCascadeRgn clipping code. * macosx/tkMacOSXMenu.c: * macosx/tkMacOSXHLEvents.c: replace Tcl_GlobalEval() resp. Tcl_Eval() * macosx/tkMacOSXScrlbr.c: by Tcl_EvalEx(). * macosx/tkMacOSXInit.c: * macosx/tkMacOSXInit.c (TkpInit): reorder initialization steps. * macosx/tkMacOSXKeyEvent.c: remove pre-10.2 support. * macosx/tkMacOSXMenus.c: remove now useless call to TkMacOSXHandleTearoffMenu(); use \x.. quoting for non-latin1 macroman literar chars to allow file to be edited as utf-8. * macosx/tkMacOSXScale.c: replace TrackControl() by modern * macosx/tkMacOSXScrlbr.c: HandleControlClick() API (using new TkMacOSXModifierState()). * macosx/tkMacOSXInt.h: move all constant #defines needed to * macosx/tkMacOSXColor.c: support building on older OS X releases * macosx/tkMacOSXEvent.h: to a central location in tkMacOSXInt.h. * macosx/tkMacOSXFont.c: * macosx/tkMacOSXMenu.c: * macosx/tkMacOSXMenubutton.c: * macosx/tkMacOSXMenus.c: * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXInt.h: add ChkErr() macro to factor out * macosx/tkMacOSXButton.c: Carbon OSStatus return value checking * macosx/tkMacOSXCarbonEvents.c: and TkMacOSXDbgMsg() macro to factour * macosx/tkMacOSXClipboard.c: out debug message output; use these * macosx/tkMacOSXColor.c: macros to replace #ifdef TK_MAC_DEBUG * macosx/tkMacOSXCursor.c: blocks & direct printing to stderr, * macosx/tkMacOSXDebug.c: and to do additional OSStatus return * macosx/tkMacOSXDialog.c: checking, and to standardize OSStatus * macosx/tkMacOSXDraw.c: usage. * macosx/tkMacOSXEntry.c: * macosx/tkMacOSXEvent.c: * macosx/tkMacOSXFont.c: * macosx/tkMacOSXHLEvents.c: * macosx/tkMacOSXInit.c: * macosx/tkMacOSXKeyEvent.c: * macosx/tkMacOSXMenu.c: * macosx/tkMacOSXMenubutton.c: * macosx/tkMacOSXMenus.c: * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXScrlbr.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXXStubs.c: * macosx/tkMacOSXSend.c: remove duplicate/unused declarations. * macosx/tkMacOSXXStubs.c: * macosx/tkMacOSXDebug.c: const fixes. * macosx/tkMacOSXInit.c: * macosx/tkMacOSXTest.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXXStubs.c: * macosx/Wish-Info.plist.in: add tcl document extensions/mime types and LSMinimumSystemVersion, LSRequiresCarbon & NSAppleScriptEnabled keys. * macosx/tkMacOSXAETE.r: fix whitespace. * macosx/tkMacOSXConfig.c: * macosx/tkMacOSXCursors.r: * macosx/tkMacOSXKeyboard.c: * macosx/tkMacOSXSend.c: * macosx/tkMacOSXXCursors.r: * macosx/README: * macosx/Makefile: fix/add copyright and license refs. * macosx/Tk-Info.plist.in: * macosx/Wish-Info.plist.in: * macosx/tkMacOSX.h:
| | * * macosx/tkMacOSXDebug.c: add TkMacOSX prefix to leftover macosx-privatedas2006-10-311-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * macosx/tkMacOSXDebug.h: global symbols without Tk prefix; ifdef out * macosx/tkMacOSXEmbed.c: currently unused debug procs. * macosx/tkMacOSXEvent.c: * macosx/tkMacOSXInt.h: * macosx/tkMacOSXCarbonEvents.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWm.c:
| | * fix logic bug in previous commitdas2006-09-111-9/+13
| | |
| | * * macosx/tkMacOSXWm.c (TkMacOSXMakeRealWindowExist): revert part ofdas2006-09-111-34/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-05-16 change that had set overrideredirect windows to not become activated by the window manager, as this prevented interaction with native widgets in such windows [Bug 1472624]; apply changes to carbon window attributes even if native window has already been created. * macosx/tkMacOSXKeyEvent.c (TkMacOSXProcessKeyboardEvent): fix app * macosx/tkMacOSXMenu.c (DrawMenuBarWhenIdle): menu item key shortcuts * macosx/tkMacOSXInt.h: when custom ".apple" menu is installed. * library/demos/widget: on TkAqua, don't install file menu with single quit menu item, as the application menu already has a quit item. * macosx/tkMacOSXColor.c: fix building on Mac OS X 10.2.
| | * whitespacedas2006-09-101-2/+2
| | |
| | * * unix/tcl.m4 (Darwin): add support for --enable-64bit on x86_64, fordas2006-08-181-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | universal builds including x86_64, for 64-bit CoreFoundation on Leopard and for use of -mmacosx-version-min instead of MACOSX_DEPLOYMENT_TARGET. * unix/configure.in (Darwin): remove 64-bit arch flags from CFLAGS for combined 32-bit and 64-bit universal builds, as neither TkAqua nor TkX11 can be built for 64-bit at present. * unix/configure: autoconf-2.13 * macosx/README: updates for x86_64 support in Tcl. * macosx/tkMacOSXInit.c (TkpInit): when available, use public TransformProcessType() API instead of CPSEnableForegroundOperation() SPI to notify the window server that we are a GUI application. * macosx/tkMacOSXWm.c (WmAttrGetTitlePath): use HIWindow API on >=Tiger. * macosx/tkMacOSXMouseEvent.c (GenerateToolbarButtonEvent): * macosx/tkMacOSXMenus.c (GenerateEditEvent): * macosx/tkMacOSXMenu.c (MenuSelectEvent): bzero XVirtualEvent structure before use to ensure all fields are initialized. [Bug 1542205]
| | * * macosx/tkMacOSXWm.c (WmAttributesCmd): correct OS X result forhobbs2006-08-171-45/+44
| | | | | | | | | | | | [wm attributes $top].
| | * * macosx/tkMacOSXWm.c (TkWmMapWindow): fix incorrect values of wmInfodas2006-07-241-10/+22
| | | | | | | | | | | | | | | | | | parentWidth/Height for toplevels by recalculating them once the window is mapped (i.e. once the window&structure sizes are known). [Bug 1358663] (ParseGeometry): sync with ParseGeometry in tkUnixWm.c/tkWinWm.c.
| | * * macosx/tkMacOSXWm.c (WmAttributesCmd, WmIconbitmapCmd): add supportdas2006-07-201-25/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for weakly importing symbols not available on OSX 10.2 or 10.3, enables binaires built on later OSX versions to run on earlier ones. * macosx/README: document how to enable weak-linking; cleanup. * unix/configure.in: enforce requirement of OSX 10.2 for TkAqua; move * unix/tcl.m4: Darwin specific checks & defines that are only relevant to the tcl build out of tcl.m4; restrict framework option to Darwin; cleanup quoting. * unix/configure: autoconf-2.13 * macosx/tkMacOSXKeyEvent.c: ifdef out diagnostic messages to stderr. * macosx/tkMacOSXEvent.h: standardize MAC_OS_X_VERSION_MAX_ALLOWED * macosx/tkMacOSXMenu.c: checks per QA1316, ensure define can be * macosx/tkMacOSXMenubutton.c: overriden on command line (from default * macosx/tkMacOSXMenus.c: of current OS version). * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXWm.c:
| | * fix building on Jaguar: move defines of newer OS constants to top, fix warningsdas2006-05-161-13/+16
| | |
| | * * macosx/tkMacOSXWindowEvent.c (TkMacOSXGenerateFocusEvent): don't senddas2006-05-161-14/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | focus events to windows of class help or to overrideredirect windows. [Bug 1472624] * macosx/tkMacOSXWm.c: set overrideredirect windows to not become activated by the window manager and to not receive OS activate events (should make them behave more like on other platforms); use modern window class API for overrideredirect and transient windows; set the default class of overrideredirect windows to 'simple' rather than 'plain' (i.e. no window frame); add missing Panther and Tiger window attributes to [::tk::unsupported::MacWindowStyle].
| | * * macosx/tkMacOSXWm.c (TkWmMapWindow, InitialWindowBounds): fix use ofdas2006-04-281-53/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | potentially stale window position in initial configure event on first map of a window. [Bug 1476443] (TkMacOSXWindowOffset): use modern GetWindowStructureWidths API. * macosx/tkMacOSXInt.h: * macosx/tkMacOSXMouseEvent.c (TkGenerateButtonEventForXPointer): new internal function to generate button events for current pointer directly, without requiring prior call to XQueryPointer(). * macosx/tkMacOSXMouseEvent.c (XQueryPointer): implement return of window-local pointer position. * macosx/tkMacOSXInt.h: use improvements above to avoid calls to * macosx/tkMacOSXKeyEvent.c: GlobalToLocal() when the current port might * macosx/tkMacOSXMenu.c: not be set correctly. May fix [Bug 1243318] * macosx/tkMacOSXMenus.c: * macosx/tkMacOSXScale.c: * macosx/tkMacOSXScrlbr.c: * tkAboutDlg.r: update copyright. * macosx/tkMacOSXCarbonEvents.c: sync with HEAD * macosx/tkMacOSXDebug.c: * macosx/tkMacOSXDebug.h: * macosx/tkMacOSXDraw.c: * macosx/tkMacOSXEvent.c: * macosx/tkMacOSXEvent.h: * macosx/tkMacOSXFont.h: * macosx/tkMacOSXInit.c: * macosx/tkMacOSXInt.h: * macosx/tkMacOSXKeyEvent.c: * macosx/tkMacOSXMenu.c: * macosx/tkMacOSXMenubutton.c: * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXSend.c: * macosx/tkMacOSXTest.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.c:
| | * * macosx/tkMacOSXEmbed.c:das2006-04-221-7/+61
| | | | | | | | | | | | | | | | | | * macosx/tkMacOSXWm.c: * tests/constraints.tcl: * tests/wm.test: sync with 2006-04-18 commit to HEAD. (darley)
| | * * macosx/tkMacOSXInt.h: Implemented 'zoomed' window statedas2006-04-111-70/+118
| | | | | | | | | | | | | | | | | | * macosx/tkMacOSXWindowEvent.c: handling for TkAqua, via titlebar * macosx/tkMacOSXWm.c: widget clicks as well as [wm state]. * doc/wm.n: [Bug 1073456]
| | * * macosx/tkMacOSXWm.c (TkSetWMName, TkMacOSXMakeRealWindowExist):das2006-04-101-15/+8
| | | | | | | | | | | | | | | allow empty name for toplevels, remove bogus initial window name. [Bug 1450800]