git-gui: Start UI with the index locked.
Because we immediately start a rescan operation, but do so slightly delayed (by 1 ms, to let the UI show before we start forking off git processes), we can't let the user try to activate any of the restricted GUI commands before the 1 ms timer expires and we kick off the rescan. So now we lock the index before we enter the Tk event loop, ensuring that it is impossible for the user to inject a conflicting UI event before our rescan can begin. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
a49c67d1ff
commit
53716a7bc9
3
git-gui
3
git-gui
@ -211,7 +211,7 @@ proc lock_index {type} {
|
|||||||
uplevel #0 $w disabled
|
uplevel #0 $w disabled
|
||||||
}
|
}
|
||||||
return 1
|
return 1
|
||||||
} elseif {$index_lock_type eq {begin-update} && $type eq {update}} {
|
} elseif {$index_lock_type eq "begin-$type"} {
|
||||||
set index_lock_type $type
|
set index_lock_type $type
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
@ -2906,4 +2906,5 @@ if {!$single_commit} {
|
|||||||
populate_pull_menu .mbar.pull
|
populate_pull_menu .mbar.pull
|
||||||
populate_push_menu .mbar.push
|
populate_push_menu .mbar.push
|
||||||
}
|
}
|
||||||
|
lock_index begin-read
|
||||||
after 1 do_rescan
|
after 1 do_rescan
|
||||||
|
Loading…
Reference in New Issue
Block a user