summaryrefslogtreecommitdiff
path: root/src/buffer.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2011-09-08 14:30:36 +0000
committerMaxime Coste <frrrwww@gmail.com>2011-09-08 14:30:36 +0000
commit76b7c60afbe93f619d944293e2c0997473dde2af (patch)
treea0e58a9f499f9e07342b0e1641cc1b90ded92895 /src/buffer.cc
parent60e673acba9f5e06d5a7520465b446b701e78e99 (diff)
Buffer is now responsible for window creation
Diffstat (limited to 'src/buffer.cc')
-rw-r--r--src/buffer.cc10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/buffer.cc b/src/buffer.cc
index 81ba07e6..1f9503b0 100644
--- a/src/buffer.cc
+++ b/src/buffer.cc
@@ -316,14 +316,12 @@ void Buffer::append_modification(Modification&& modification)
m_current_undo_group.push_back(modification);
}
-struct window_already_registered {};
-
-void Buffer::register_window(Window* window)
+Window* Buffer::get_or_create_window()
{
- if (std::find(m_windows.begin(), m_windows.end(), window) != m_windows.end())
- throw window_already_registered();
+ if (m_windows.empty())
+ m_windows.push_front(std::unique_ptr<Window>(new Window(*this)));
- m_windows.push_front(std::unique_ptr<Window>(window));
+ return m_windows.front().get();
}
void Buffer::delete_window(Window* window)