From 46c5a90ba11fe1222e5f80bce285aeef2d0ac9b7 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Tue, 14 Jan 2020 17:57:13 +0100 Subject: [PATCH] nitpicker_gfx: Text_painter::Font::index_at_xpos This method is useful for finding the character under a mouse position. --- repos/os/include/nitpicker_gfx/text_painter.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/repos/os/include/nitpicker_gfx/text_painter.h b/repos/os/include/nitpicker_gfx/text_painter.h index 80841b479..34794553a 100644 --- a/repos/os/include/nitpicker_gfx/text_painter.h +++ b/repos/os/include/nitpicker_gfx/text_painter.h @@ -97,6 +97,20 @@ struct Text_painter return result; } + + unsigned index_at_xpos(Genode::Utf8_ptr utf8, unsigned xpos) const + { + unsigned index = 0; + Fixpoint_number x { (int)0 }; + + for (; utf8.complete(); utf8 = utf8.next(), index++) { + x.value += advance_info(utf8.codepoint()).advance.value; + if (x.decimal() > (int)xpos) + break; + } + + return index; + } };