From 3e28539b81518f9f4f388a2ba32ca128b15a477c Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Wed, 18 Mar 2015 23:40:26 +0000 Subject: [PATCH] Add a display coord to buffer coord method to Window --- src/window.cc | 9 ++++++++- src/window.hh | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/window.cc b/src/window.cc index 0e999162..aa9f2824 100644 --- a/src/window.cc +++ b/src/window.cc @@ -234,7 +234,7 @@ ByteCoord find_buffer_coord(const DisplayLine& line, const Buffer& buffer, } } -CharCoord Window::display_position(ByteCoord coord) +CharCoord Window::display_position(ByteCoord coord) const { LineCount l = 0; for (auto& line : m_display_buffer.lines()) @@ -247,6 +247,13 @@ CharCoord Window::display_position(ByteCoord coord) return { 0, 0 }; } +ByteCoord Window::buffer_coord(CharCoord coord) const +{ + if (0_line <= coord.line and coord.line < m_display_buffer.lines().size()) + return find_buffer_coord(m_display_buffer.lines()[(int)coord.line], buffer(), coord.column); + return { 0, 0 }; +} + ByteCoord Window::offset_coord(ByteCoord coord, CharCount offset) { return buffer().offset_coord(coord, offset); diff --git a/src/window.hh b/src/window.hh index 54973d2b..0ad70a54 100644 --- a/src/window.hh +++ b/src/window.hh @@ -31,7 +31,8 @@ public: void scroll(CharCount offset); void update_display_buffer(const Context& context); - CharCoord display_position(ByteCoord coord); + CharCoord display_position(ByteCoord coord) const; + ByteCoord buffer_coord(CharCoord coord) const; Highlighter& highlighters() { return m_highlighters; }