diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2011-09-08 14:30:36 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2011-09-08 14:30:36 +0000 |
| commit | 76b7c60afbe93f619d944293e2c0997473dde2af (patch) | |
| tree | a0e58a9f499f9e07342b0e1641cc1b90ded92895 /src/buffer.cc | |
| parent | 60e673acba9f5e06d5a7520465b446b701e78e99 (diff) | |
Buffer is now responsible for window creation
Diffstat (limited to 'src/buffer.cc')
| -rw-r--r-- | src/buffer.cc | 10 |
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) |
