diff options
author | das <das> | 2006-08-18 07:47:25 (GMT) |
---|---|---|
committer | das <das> | 2006-08-18 07:47:25 (GMT) |
commit | 5d8c0e7bc339dbf2a2260c3f6c9fd9d6fb9ecf1d (patch) | |
tree | f254078a6fbdec5ff6dc35a289513a269d6227f6 /macosx/tkMacOSXInit.c | |
parent | 85c80f035cc4062a1e70380987bd0ae58b2ad55a (diff) | |
download | tk-5d8c0e7bc339dbf2a2260c3f6c9fd9d6fb9ecf1d.zip tk-5d8c0e7bc339dbf2a2260c3f6c9fd9d6fb9ecf1d.tar.gz tk-5d8c0e7bc339dbf2a2260c3f6c9fd9d6fb9ecf1d.tar.bz2 |
* unix/tcl.m4 (Darwin): add support for --enable-64bit on x86_64, for
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]
Diffstat (limited to 'macosx/tkMacOSXInit.c')
-rw-r--r-- | macosx/tkMacOSXInit.c | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/macosx/tkMacOSXInit.c b/macosx/tkMacOSXInit.c index b14dff9..e5b6735 100644 --- a/macosx/tkMacOSXInit.c +++ b/macosx/tkMacOSXInit.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: tkMacOSXInit.c,v 1.3.2.17 2006/07/20 06:26:45 das Exp $ + * RCS: @(#) $Id: tkMacOSXInit.c,v 1.3.2.18 2006/08/18 07:47:25 das Exp $ */ #include "tkMacOSXInt.h" @@ -246,12 +246,12 @@ TkpInit(interp) } } } -#if MAC_OSX_TK_USE_CPS_SPI + /* * If we are loaded into an executable that is not a bundled application, * the window server does not let us come to the foreground. - * For such an executable, we attempt to use an undocumented SPI to - * notify the window server that we are now a full GUI application. + * For such an executable, notify the window server that we are now a + * full GUI application. */ { /* Check whether we are a bundled executable: */ @@ -285,24 +285,34 @@ TkpInit(interp) CFRelease(bundleUrl); } - /* If we are not a bundled executable, attempt to use the CPS SPI: */ + /* If we are not a bundled executable, notify the window server that + * we are a foregroundable app. */ if (!bundledExecutable) { - /* - * Load the CPS SPI symbol dynamically, so that we don't break - * if it every disappears or changes its name. - */ - TkMacOSXInitNamedSymbol(CoreGraphics, OSErr, \ - CPSEnableForegroundOperation, ProcessSerialNumberPtr); - if (CPSEnableForegroundOperation) { - ProcessSerialNumber psn = { 0, kCurrentProcess }; + OSStatus err = procNotFound; + ProcessSerialNumber psn = { 0, kCurrentProcess }; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 + if (TransformProcessType != NULL) { + err = TransformProcessType(&psn, + kProcessTransformToForegroundApplication); + } +#endif +#if MAC_OSX_TK_USE_CPS_SPI + if (err != noErr) { /* - * Let the window server know that we are a foregroundable app + * When building or running on 10.2 or when the above fails, + * attempt to use undocumented CPS SPI to notify the window + * server. Load the SPI symbol dynamically, so that we don't + * break if it ever disappears or changes its name. */ - CPSEnableForegroundOperation(&psn); + TkMacOSXInitNamedSymbol(CoreGraphics, OSErr, + CPSEnableForegroundOperation, ProcessSerialNumberPtr); + if (CPSEnableForegroundOperation) { + CPSEnableForegroundOperation(&psn); + } } +#endif /* MAC_OSX_TK_USE_CPS_SPI */ } } -#endif /* MAC_OSX_TK_USE_CPS_SPI */ } if (tkLibPath[0] != '\0') { |