Commit f606cbe76f7b5a1ce885fa619d780951c77e1549
- Diff rendering mode:
- inline
- side by side
lib/sup/modes/reply-mode.rb
(11 / 2)
|   | |||
| 42 | 42 | ||
| 43 | 43 | def initialize message, type_arg=nil | |
| 44 | 44 | @m = message | |
| 45 | @edited = false | ||
| 45 | 46 | ||
| 46 | 47 | ## it's important to put this early because it forces a read of | |
| 47 | 48 | ## the full headers (most importantly the list-post header, if | |
| … | … | ||
| 151 | 151 | :recipient | |
| 152 | 152 | end) | |
| 153 | 153 | ||
| 154 | @bodies = {} | ||
| 154 | 155 | @headers.each do |k, v| | |
| 155 | HookManager.run "before-edit", :header => v, :body => body | ||
| 156 | @bodies[k] = body | ||
| 157 | HookManager.run "before-edit", :header => v, :body => @bodies[k] | ||
| 156 | 158 | end | |
| 157 | 159 | ||
| 158 | super :header => @headers[@type_selector.val], :body => body, :twiddles => false | ||
| 160 | super :header => @headers[@type_selector.val], :body => @bodies[@type_selector.val], :twiddles => false | ||
| 159 | 161 | add_selector @type_selector | |
| 160 | 162 | end | |
| 161 | 163 | ||
| … | … | ||
| 167 | 167 | super | |
| 168 | 168 | if @headers[@type_selector.val] != self.header | |
| 169 | 169 | self.header = @headers[@type_selector.val] | |
| 170 | self.body = @bodies[@type_selector.val] unless @edited | ||
| 170 | 171 | update | |
| 171 | 172 | end | |
| 172 | 173 | end | |
| … | … | ||
| 176 | 176 | super | |
| 177 | 177 | if @headers[@type_selector.val] != self.header | |
| 178 | 178 | self.header = @headers[@type_selector.val] | |
| 179 | self.body = @bodies[@type_selector.val] unless @edited | ||
| 179 | 180 | update | |
| 180 | 181 | end | |
| 181 | 182 | end | |
| … | … | ||
| 193 | 193 | end | |
| 194 | 194 | ||
| 195 | 195 | def handle_new_text new_header, new_body | |
| 196 | if new_body != @bodies[@type_selector.val] | ||
| 197 | @bodies[@type_selector.val] = new_body | ||
| 198 | @edited = true | ||
| 199 | end | ||
| 196 | 200 | old_header = @headers[@type_selector.val] | |
| 197 | 201 | if new_header.size != old_header.size || old_header.any? { |k, v| new_header[k] != v } | |
| 198 | 202 | @type_selector.set_to :user |

