Re: [PATCH] gitk: workaround Tcl/Tk Cmd-TAB behavior on OSX
- From
Paul Mackerras <paulus@samba.org>
- Date
- Apr 20, 2013, 03:19 UTC
- Message-ID
- <20130420031955.GA30856@iris.ozlabs.ibm.com>
- In-Reply-To
- <5165B758.4070308@bee.kz>
On Thu, Apr 11, 2013 at 01:02:48AM +0600, Tair Sabirgaliev wrote:
Show 32 quoted lines
> On OSX Tcl/Tk application windows are created behind all
> the applications down the stack of windows. This is very
> annoying, because once a gitk window appears, it's the
> downmost window and switching to it is pain.
>
> The patch is trivial: if we are on OSX, emulate Cmd-Shift-TAB
> key event, so that the gitk application window is brought
> from bottom to top.
>
> Signed-off-by: Tair Sabirgaliev <tair.sabirgaliev@gmail.com>
> ---
> gitk | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/gitk b/gitk
> index 572f73f..60a87fc 100755
> --- a/gitk
> +++ b/gitk
> @@ -11687,6 +11687,19 @@ if {[catch {package require Tk 8.4} err]} {
> exit 1
> }
> +# On OSX workaround the Tcl/Tk windows going down the stack of Cmd-TAB
> +if {[tk windowingsystem] eq "aqua"} {
> + exec osascript -e {
> + tell application "System Events"
> + key down command
> + key down shift
> + keystroke tab
> + key up shift
> + key up command
> + end tell + }
> +}Is this really the only way to do it? It seems a bit hacky to me. I would think you should be able to use the "wm" command to achieve what you want. I don't use Mac OS, so I don't know exactly how Tcl/Tk behaves on it, but this page looks like it might hold some clues for what you want to do:
http://teapot.activestate.com/package/name/windowlist/ver/1.4/arch/tcl/file.tm
Paul.