1. Stefan Saasen
  2. git


Shawn O. Pearce  committed c6951dd

git-gui: Fix window manager problems on ion3

cehteh on #git noticed that secondary windows such as console
windows from push/fetch/merge or the blame browser failed on ion
when we tried to open them a second time.

The issue turned out to be the fact that on ion [winfo ismapped .]
returns false if . is not visible right now because it has been
obscured by another window in the same panel. So we need to keep
track of whether or not the root window has been displayed for this
application, and once it has been we cannot ever assume that ismapped
is going to return true.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

  • Participants
  • Parent commits 51b8c50
  • Branches master

Comments (0)

Files changed (2)

File git-gui.sh

View file
  • Ignore whitespace
 unset browser doc_path doc_url
+set root_exists 0
+bind . <Visibility> {
+	bind . <Visibility> {}
+	set root_exists 1
 # -- Standard bindings
 wm protocol . WM_DELETE_WINDOW do_quit

File lib/class.tcl

View file
  • Ignore whitespace
-	if {[winfo ismapped .]} {
+	if {$::root_exists || [winfo ismapped .]} {
 		regsub -all {::} $this {__} w
 		set top .$w
 		set pfx $top
 		toplevel $top
+		set ::root_exists 1
 	} else {
 		set top .
 		set pfx {}