git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] git-gui: bring Wish process to front on Mac

From
Pat Thoyts <patthoyts@gmail.com>
Date
Jun 6, 2013, 14:09 UTC
Message-ID
<CABNJ2G+h3zh+=wLA0KHjUn8TsfhqUK1Kn-1_=6hnXVRJUPhuuA@mail.gmail.com>
In-Reply-To
<1370506667-24576-1-git-send-email-stefan@haller-berlin.de>
On 6 June 2013 09:17, Stefan Haller <stefan@haller-berlin.de> wrote:
Show 39 quoted lines
> On Mac OS X, any application that is started from the Terminal will open
> behind all running applications; as a work-around, manually bring ourselves
> to the front. (Stolen from gitk, commit 76bf6ff93e.)
>
> We do this as the very first thing, so that any message boxes that might pop
> up during the rest of the startup sequence are actually seen by the user.
>
> Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
> ---
>  git-gui.sh | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/git-gui.sh b/git-gui.sh
> index e133331..c464928 100755
> --- a/git-gui.sh
> +++ b/git-gui.sh
> @@ -29,6 +29,19 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA}]
>
>  ######################################################################
>  ##
> +## On Mac, bring the current Wish process window to front
> +
> +if {[tk windowingsystem] eq "aqua"} {
> +       exec osascript -e [format {
> +               tell application "System Events"
> +                       set frontmost of processes whose unix id is %d to true
> +               end tell
> +       } [pid] ]
> +}
> +
> +
> +######################################################################
> +##
>  ## Tcl/Tk sanity check
>
>  if {[catch {package require Tcl 8.4} err]
> --
> 1.8.3.14.g33f718c
>

Seems fine to me. I can't test this as I have no access to this platform. Possibly you should run this in a catch statement so it can ignore any errors and I would tend to use the 'auto_execok' command to ensure that osascript actually exists. Something like

  set arg [format {tell application......}]
  catch {exec {*}[auto_execok osascript] -e $arg [pid]}

but possibly this is guaranteed to exist on all macs which would make the above redundant. What I'm thinking is you dont want the app to exit just because something goes wrong in this call.

Previous: Stefan HallerNext: Stefan Haller
Message 2 of 8 in “git-gui: bring Wish process to front on Mac”
  1. git-gui: bring Wish process to front on MacStefan Haller, Jun 6, 2013
  2. Pat ThoytsJun 6, 2013
  3. Stefan HallerJun 6, 2013
  4. git-gui: bring Wish process to front on MacStefan Haller, Jun 7, 2013
  5. Junio C HamanoJun 14, 2013
  6. Pat ThoytsJun 15, 2013
  7. Junio C HamanoJun 6, 2013
  8. Stefan HallerJun 7, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.