mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 07:46:12 +03:00
use whitespace instead of new flag for selecting full line
This commit is contained in:

committed by
Mitchell Hashimoto

parent
1eeb914a4f
commit
e5a3be3c46
@ -3563,17 +3563,15 @@ fn dragLeftClickTriple(
|
||||
const screen = &self.io.terminal.screen;
|
||||
const click_pin = self.mouse.left_click_pin.?.*;
|
||||
|
||||
// Get the line selection under our current drag point. If there isn't a line, do nothing.
|
||||
// Get the line selection under our current drag point. If there isn't a
|
||||
// line, do nothing.
|
||||
const line = screen.selectLine(.{ .pin = drag_pin }) orelse return;
|
||||
|
||||
// get the selection under our click point.
|
||||
var sel_ = screen.selectLine(.{ .pin = click_pin });
|
||||
|
||||
// We may not have a selection if we started our triple-click in an area
|
||||
// that had no data, in this case recall selectLine with allow_empty_lines.
|
||||
if (sel_ == null) {
|
||||
sel_ = screen.selectLine(.{ .pin = click_pin, .allow_empty_lines = true });
|
||||
}
|
||||
// Get the selection under our click point. We first try to trim
|
||||
// whitespace if we've selected a word. But if no word exists then
|
||||
// we select the blank line.
|
||||
const sel_ = screen.selectLine(.{ .pin = click_pin }) orelse
|
||||
screen.selectLine(.{ .pin = click_pin, .whitespace = null });
|
||||
|
||||
var sel = sel_ orelse return;
|
||||
if (drag_pin.before(click_pin)) {
|
||||
|
@ -2215,7 +2215,6 @@ pub const SelectLine = struct {
|
||||
/// state changing a boundary. State changing is ANY state
|
||||
/// change.
|
||||
semantic_prompt_boundary: bool = true,
|
||||
allow_empty_lines: bool = false,
|
||||
};
|
||||
|
||||
/// Select the line under the given point. This will select across soft-wrapped
|
||||
@ -2293,11 +2292,6 @@ pub fn selectLine(self: *const Screen, opts: SelectLine) ?Selection {
|
||||
return null;
|
||||
};
|
||||
|
||||
// If we allow empty lines, we don't need to do any further checks.
|
||||
if (opts.allow_empty_lines) {
|
||||
return Selection.init(start_pin, end_pin, false);
|
||||
}
|
||||
|
||||
// Go forward from the start to find the first non-whitespace character.
|
||||
const start: Pin = start: {
|
||||
const whitespace = opts.whitespace orelse break :start start_pin;
|
||||
|
Reference in New Issue
Block a user