commit 911f2d4a8c5ca4b224ea99b110c60066e88313ff
parent c6e110a368562c30ac3126cec6cccd46efee8eb6
Author: EinfachToll <istjanichtzufassen@googlemail.de>
Date: Wed, 24 Jul 2013 13:07:42 +0200
Never alter a checkbox if it has no children with checkboxes
Diffstat:
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/autoload/vimwiki/lst.vim b/autoload/vimwiki/lst.vim
@@ -546,8 +546,8 @@ function! s:update_state(item) "{{{
return
endif
- let sum_siblings = 0
- let count_siblings = 0
+ let sum_children_rate = 0
+ let count_children_with_cb = 0
let child_item = s:get_first_child(a:item)
@@ -556,18 +556,20 @@ function! s:update_state(item) "{{{
break
endif
if child_item.cb != ''
- let count_siblings += 1
- let sum_siblings += s:get_rate(child_item)
+ let count_children_with_cb += 1
+ let sum_children_rate += s:get_rate(child_item)
endif
let child_item = s:get_next_child_item(a:item, child_item)
endwhile
- let new_rate = count_siblings > 0 ? sum_siblings / count_siblings : 0
+ if count_children_with_cb > 0
+ let new_rate = sum_children_rate / count_children_with_cb
- "set state and set the parents states recursively
- let state_changed = s:set_state(a:item, new_rate)
- if state_changed
- call s:update_state(s:get_parent(a:item))
+ "set state and set the parents states recursively
+ let state_changed = s:set_state(a:item, new_rate)
+ if state_changed
+ call s:update_state(s:get_parent(a:item))
+ endif
endif
endfunction "}}}