ddnet/src/game/client
Robert Müller 1fde694565 Improve positioning of IME candidate window for multi-line text
Previously, the IME candidate window was aligned with the top-right corner of the text bounding box (when rendering the text until the caret offset). This does not work correctly for text spanning multiple lines, causing the IME candidate window to be displayed at the X position of the longest line instead. Additionally, text clipping in the chat was not considered, as `CLineInput` is not aware of the clipping implemented in `CChat`, causing the IME candidate window to be moved up too far.

This is fixed by getting the correct rendered position of the caret offset using `m_CursorRenderedPosition`. Vertical alignment is also changed so only one line of text is considered, which makes the behavior more consistent with Windows' native IME candidate window and avoids larger changes in `CLineInput` to make it aware of clipping.
2023-10-20 17:51:01 +02:00
..
components Check for all file errors in demo player, show demo error popup 2023-10-19 21:48:04 +02:00
prediction Add flag to ddnetlaser for enabling prediction, let server control starttick 2023-09-19 23:22:15 +02:00
animstate.cpp Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
animstate.h Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
component.cpp Add IConfigManager getter to CGameClient and CComponent 2023-09-24 19:55:20 +02:00
component.h Add IConfigManager getter to CGameClient and CComponent 2023-09-24 19:55:20 +02:00
gameclient.cpp Add title to engine warnings and make auto-hiding optional 2023-10-19 21:40:55 +02:00
gameclient.h Merge pull request #7249 from Robyt3/Gameclient-ConfigManager-Getter 2023-09-24 18:38:29 +00:00
laser_data.cpp Add flag to ddnetlaser for enabling prediction, let server control starttick 2023-09-19 23:22:15 +02:00
laser_data.h Add flag to ddnetlaser for enabling prediction, let server control starttick 2023-09-19 23:22:15 +02:00
lineinput.cpp Improve positioning of IME candidate window for multi-line text 2023-10-20 17:51:01 +02:00
lineinput.h Merge pull request #7087 from ChillerDragon/pr_streamer_mode 2023-09-30 13:34:32 +00:00
pickup_data.cpp Add net netobjs for projectile and pickup, extend ddnetlaser, remove EntityEx server-side 2023-05-04 23:43:05 +02:00
pickup_data.h Add net netobjs for projectile and pickup, extend ddnetlaser, remove EntityEx server-side 2023-05-04 23:43:05 +02:00
projectile_data.cpp Add net netobjs for projectile and pickup, extend ddnetlaser, remove EntityEx server-side 2023-05-04 23:43:05 +02:00
projectile_data.h Add net netobjs for projectile and pickup, extend ddnetlaser, remove EntityEx server-side 2023-05-04 23:43:05 +02:00
race.cpp Use std::vector and std::deque instead of most std::lists 2023-07-01 15:44:35 +02:00
race.h Organize game-client includes 2022-05-29 21:24:43 +02:00
render.cpp Use client 'six' data structs for client 'seven' data 2023-10-06 18:14:38 +03:00
render.h Use client 'six' data structs for client 'seven' data 2023-10-06 18:14:38 +03:00
render_map.cpp Add str_from_int function 2023-08-24 20:54:17 +02:00
skin.h Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
ui.cpp Fix mangled highlighted text in server browser 2023-09-23 16:34:13 +02:00
ui.h Fix mangled highlighted text in server browser 2023-09-23 16:34:13 +02:00
ui_listbox.cpp Make listbox scrollbar width and margin adjustable 2023-09-16 13:24:19 +02:00
ui_listbox.h Make listbox scrollbar width and margin adjustable 2023-09-16 13:24:19 +02:00
ui_rect.cpp Add CUIRect::Margin with vec2 argument 2023-10-06 18:08:03 +02:00
ui_rect.h Add CUIRect::Margin with vec2 argument 2023-10-06 18:08:03 +02:00
ui_scrollregion.cpp Consistently name CScrollRegion and CListBox getters 2023-09-16 11:37:19 +02:00
ui_scrollregion.h Consistently name CScrollRegion and CListBox getters 2023-09-16 11:37:19 +02:00