diff --git a/src/Surface.zig b/src/Surface.zig index 053d28dd1..8266f3dbf 100644 --- a/src/Surface.zig +++ b/src/Surface.zig @@ -1089,6 +1089,9 @@ pub fn preeditCallback(self: *Surface, preedit_: ?[]const u8) !void { 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 // a prior preedit (likely). const text = preedit_ orelse { diff --git a/src/terminal/Terminal.zig b/src/terminal/Terminal.zig index cb13e5edf..8dd08a8ba 100644 --- a/src/terminal/Terminal.zig +++ b/src/terminal/Terminal.zig @@ -135,6 +135,9 @@ pub const Dirty = packed struct { /// Screen clear of some kind. This can be due to a screen change, /// erase display, etc. clear: bool = false, + + /// Set when the pre-edit is modified. + preedit: bool = false, }; /// The event types that can be reported for mouse-related activities.