git-gui: Clear diff from viewer if the side changed.
[gitweb.git] / git-gui.sh
index 28c71c0b2d8622e6d61daa4c2871e466f19e717f..c4d77fafe73436b8e390a12310b4d3f65eff927f 100755 (executable)
@@ -556,14 +556,17 @@ proc clear_diff {} {
 }
 
 proc reshow_diff {} {
-       global ui_status_value file_states
+       global ui_status_value file_states file_lists
        global current_diff_path current_diff_side
 
-       if {$current_diff_path eq {}
-               || [catch {set s $file_states($current_diff_path)}]} {
+       set p $current_diff_path
+       if {$p eq {}
+               || $current_diff_side eq {}
+               || [catch {set s $file_states($p)}]
+               || [lsearch -sorted $file_lists($current_diff_side) $p] == -1} {
                clear_diff
        } else {
-               show_diff $current_diff_path $current_diff_side
+               show_diff $p $current_diff_side
        }
 }