summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Pat Thoyts <patthoyts@users.sourceforge.net>2011-02-15 00:20:36 +0000
committerLibravatar Pat Thoyts <patthoyts@users.sourceforge.net>2011-02-15 00:20:36 +0000
commitba44692a2ecedacfc48c28fba642876d49dec90a (patch)
treeba31b294a322d6c10ba849468eee997dcca29863
parentgit-gui: teach fetch/prune menu to do it for all remotes (diff)
downloadtgif-ba44692a2ecedacfc48c28fba642876d49dec90a.tar.xz
git-gui: Include version check and test for tearoff menu entry
The --all option for git fetch was added in v1.6.6 so ensure we have a usable version before adding the menu items. Sometimes people use tearoff menus and these offset the entry indices by one. Acked-by: Heiko Voigt <hvoigt@hvoigt.net> Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
-rw-r--r--lib/remote.tcl24
1 files changed, 14 insertions, 10 deletions
diff --git a/lib/remote.tcl b/lib/remote.tcl
index 817ca1b6a3..42d2061402 100644
--- a/lib/remote.tcl
+++ b/lib/remote.tcl
@@ -233,6 +233,8 @@ proc make_sure_remote_submenues_exist {remote_m} {
proc update_all_remotes_menu_entry {} {
global all_remotes
+ if {[git-version < 1.6.6]} { return }
+
set have_remote 0
foreach r $all_remotes {
set have_remote 1
@@ -243,27 +245,29 @@ proc update_all_remotes_menu_entry {} {
set prune_m $remote_m.prune
if {$have_remote} {
make_sure_remote_submenues_exist $remote_m
- if {[$fetch_m entrycget 0 -label] ne "All"} {
+ set index [expr {[$fetch_m type 0] eq "tearoff" ? 1 : 0}]
+ if {[$fetch_m entrycget $index -label] ne "All"} {
- $fetch_m insert 0 separator
- $fetch_m insert 0 command \
+ $fetch_m insert $index separator
+ $fetch_m insert $index command \
-label "All" \
-command fetch_from_all
- $prune_m insert 0 separator
- $prune_m insert 0 command \
- -label "All" \
+ $prune_m insert $index separator
+ $prune_m insert $index command \
+ -label "All" \
-command prune_from_all
}
} else {
if {[winfo exists $fetch_m]} {
+ set index [expr {[$fetch_m type 0] eq "tearoff" ? 1 : 0}]
if {[$fetch_m type end] eq "separator"} {
- delete_from_menu $fetch_m 0
- delete_from_menu $fetch_m 0
+ delete_from_menu $fetch_m $index
+ delete_from_menu $fetch_m $index
- delete_from_menu $prune_m 0
- delete_from_menu $prune_m 0
+ delete_from_menu $prune_m $index
+ delete_from_menu $prune_m $index
}
}
}