core: preedit modification sets full screen dirty

Fixes #1735
This commit is contained in:
Mitchell Hashimoto
2024-05-07 19:19:58 -07:00
parent 91bcc3de39
commit 0335b0eada
2 changed files with 6 additions and 0 deletions

View File

@ -1089,6 +1089,9 @@ pub fn preeditCallback(self: *Surface, preedit_: ?[]const u8) !void {
self.renderer_state.preedit = null; self.renderer_state.preedit = null;
} }
// Mark preedit dirty flag
self.io.terminal.flags.dirty.preedit = true;
// If we have no text, we're done. We queue a render in case we cleared // If we have no text, we're done. We queue a render in case we cleared
// a prior preedit (likely). // a prior preedit (likely).
const text = preedit_ orelse { const text = preedit_ orelse {

View File

@ -135,6 +135,9 @@ pub const Dirty = packed struct {
/// Screen clear of some kind. This can be due to a screen change, /// Screen clear of some kind. This can be due to a screen change,
/// erase display, etc. /// erase display, etc.
clear: bool = false, clear: bool = false,
/// Set when the pre-edit is modified.
preedit: bool = false,
}; };
/// The event types that can be reported for mouse-related activities. /// The event types that can be reported for mouse-related activities.