mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-16 08:46:08 +03:00
surface should default to default cursor, blinking should check selected
This commit is contained in:
@ -415,7 +415,7 @@ pub fn init(
|
||||
.renderer_state = .{
|
||||
.mutex = mutex,
|
||||
.cursor = .{
|
||||
.style = .blinking_block,
|
||||
.style = .default,
|
||||
.visible = true,
|
||||
},
|
||||
.terminal = &self.io.terminal,
|
||||
|
@ -475,6 +475,14 @@ pub fn render(
|
||||
return;
|
||||
}
|
||||
|
||||
// If the terminal state isn't requesting any particular style,
|
||||
// then use the configured style.
|
||||
const selected_cursor_style = style: {
|
||||
if (state.cursor.style != .default) break :style state.cursor.style;
|
||||
if (self.config.cursor_style != .default) break :style self.config.cursor_style;
|
||||
break :style .blinking_block;
|
||||
};
|
||||
|
||||
self.cursor_visible = visible: {
|
||||
// If the cursor is explicitly not visible in the state,
|
||||
// then it is not visible.
|
||||
@ -484,7 +492,7 @@ pub fn render(
|
||||
if (state.preedit != null) break :visible true;
|
||||
|
||||
// If the cursor isn't a blinking style, then never blink.
|
||||
if (!state.cursor.style.blinking()) break :visible true;
|
||||
if (!selected_cursor_style.blinking()) break :visible true;
|
||||
|
||||
// Otherwise, adhere to our current state.
|
||||
break :visible self.cursor_visible;
|
||||
@ -499,8 +507,6 @@ pub fn render(
|
||||
// If we aren't focused, we use a hollow box
|
||||
if (!self.focused) break :cursor_style .box_hollow;
|
||||
|
||||
const selected_cursor_style = if (state.cursor.style == .default) self.config.cursor_style else state.cursor.style;
|
||||
|
||||
break :cursor_style renderer.CursorStyle.fromTerminal(selected_cursor_style) orelse .box;
|
||||
};
|
||||
}
|
||||
|
@ -717,6 +717,14 @@ pub fn render(
|
||||
return;
|
||||
}
|
||||
|
||||
// If the terminal state isn't requesting any particular style,
|
||||
// then use the configured style.
|
||||
const selected_cursor_style = style: {
|
||||
if (state.cursor.style != .default) break :style state.cursor.style;
|
||||
if (self.config.cursor_style != .default) break :style self.config.cursor_style;
|
||||
break :style .blinking_block;
|
||||
};
|
||||
|
||||
self.cursor_visible = visible: {
|
||||
// If the cursor is explicitly not visible in the state,
|
||||
// then it is not visible.
|
||||
@ -726,7 +734,7 @@ pub fn render(
|
||||
if (state.preedit != null) break :visible true;
|
||||
|
||||
// If the cursor isn't a blinking style, then never blink.
|
||||
if (!state.cursor.style.blinking()) break :visible true;
|
||||
if (!selected_cursor_style.blinking()) break :visible true;
|
||||
|
||||
// Otherwise, adhere to our current state.
|
||||
break :visible self.cursor_visible;
|
||||
@ -741,8 +749,6 @@ pub fn render(
|
||||
// If we aren't focused, we use a hollow box
|
||||
if (!self.focused) break :cursor_style .box_hollow;
|
||||
|
||||
const selected_cursor_style = if (state.cursor.style == .default) self.config.cursor_style else state.cursor.style;
|
||||
|
||||
break :cursor_style renderer.CursorStyle.fromTerminal(selected_cursor_style) orelse .box;
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user