commit bd14fd4296d4edcdf778126dc4d5ab98ca951ad7
parent 7e2bb889e617302c82e28d04cb2e0db5d35fbb08
Author: Hamish Downer <dmishd@gmail.com>
Date: Tue, 15 Feb 2011 21:29:12 +0000
Allow buffers to be hidden
This allows buffers to be hidden, at which point they will not
appear in the rollable buffers, or in the buffer list mode.
Diffstat:
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/lib/sup/buffer.rb b/lib/sup/buffer.rb
@@ -73,7 +73,7 @@ class InputSequenceAborted < StandardError; end
class Buffer
attr_reader :mode, :x, :y, :width, :height, :title, :atime
bool_reader :dirty, :system
- bool_accessor :force_to_top
+ bool_accessor :force_to_top, :hidden
def initialize window, mode, width, height, opts={}
@w = window
@@ -82,6 +82,7 @@ class Buffer
@focus = false
@title = opts[:title] || ""
@force_to_top = opts[:force_to_top] || false
+ @hidden = opts[:hidden] || false
@x, @y, @width, @height = 0, 0, width, height
@atime = Time.at 0
@system = opts[:system] || false
@@ -265,7 +266,7 @@ EOS
end
def rollable_buffers
- @buffers.select { |b| !b.system? || @buffers.last == b }
+ @buffers.select { |b| !b.system? || !b.hidden? || @buffers.last == b }
end
def handle_input c
diff --git a/lib/sup/modes/buffer-list-mode.rb b/lib/sup/modes/buffer-list-mode.rb
@@ -28,7 +28,7 @@ protected
end
def regen_text
- @bufs = BufferManager.buffers.reject { |name, buf| buf.mode == self }.sort_by { |name, buf| buf.atime }.reverse
+ @bufs = BufferManager.buffers.reject { |name, buf| buf.mode == self || buf.hidden? }.sort_by { |name, buf| buf.atime }.reverse
width = @bufs.max_of { |name, buf| buf.mode.name.length }
@text = @bufs.map do |name, buf|
base_color = buf.system? ? :system_buf_color : :regular_buf_color