@in_x = ENV["TERM"] =~ /(xterm|rxvt|screen)/
@sigwinch_happened = false
@sigwinch_mutex = Mutex.new
-
- self.class.i_am_the_instance self
end
def sigwinch_happened!; @sigwinch_mutex.synchronize { @sigwinch_happened = true } end
## have to change this. but it's not clear that we will ever actually
## do that.
def roll_buffers
- @buffers.last.force_to_top = false
- raise_to_front @buffers.first
+ bufs = rollable_buffers
+ bufs.last.force_to_top = false
+ raise_to_front bufs.first
end
def roll_buffers_backwards
- return unless @buffers.length > 1
- @buffers.last.force_to_top = false
- raise_to_front @buffers[@buffers.length - 2]
+ bufs = rollable_buffers
+ return unless bufs.length > 1
+ bufs.last.force_to_top = false
+ raise_to_front bufs[bufs.length - 2]
+ end
+
+ def rollable_buffers
+ @buffers.select { |b| !b.system? || @buffers.last == b }
end
def handle_input c
## this magic makes Ncurses get the new size of the screen
Ncurses.endwin
+ Ncurses.stdscr.keypad 1
+ Ncurses.curs_set 0
Ncurses.refresh
@sigwinch_mutex.synchronize { @sigwinch_happened = false }
- Redwood::log "new screen size is #{Ncurses.rows} x #{Ncurses.cols}"
+ debug "new screen size is #{Ncurses.rows} x #{Ncurses.cols}"
status, title = get_status_and_title(@focus_buf) # must be called outside of the ncurses lock
end
if answer
- answer =
+ answer =
if answer.empty?
spawn_modal "file browser", FileBrowserMode.new
elsif File.directory?(answer)
## returns an array of labels
def ask_for_labels domain, question, default_labels, forbidden_labels=[]
default_labels = default_labels - forbidden_labels - LabelManager::RESERVED_LABELS
- default = default_labels.join(" ")
+ default = default_labels.to_a.join(" ")
default += " " unless default.empty?
# here I would prefer to give more control and allow all_labels instead of
return unless answer
- user_labels = answer.symbolistize
+ user_labels = answer.to_set_of_symbols
user_labels.each do |l|
if forbidden_labels.include?(l) || LabelManager::RESERVED_LABELS.include?(l)
BufferManager.flash "'#{l}' is a reserved label!"
def ask_for_contacts domain, question, default_contacts=[]
default = default_contacts.map { |s| s.to_s }.join(" ")
default += " " unless default.empty?
-
+
recent = Index.load_contacts(AccountManager.user_emails, :num => 10).map { |c| [c.full_address, c.email] }
contacts = ContactManager.contacts.map { |c| [ContactManager.alias_for(c), c.full_address, c.email] }