Merge pull request #1932 from ghostty-org/urllen

macOS: URL preview limited to one line, truncate
This commit is contained in:
Mitchell Hashimoto
2024-07-09 09:34:18 -07:00
committed by GitHub
2 changed files with 18 additions and 12 deletions

View File

@ -153,12 +153,28 @@ extension Ghostty {
let padding: CGFloat = 3
ZStack {
HStack {
Spacer()
VStack(alignment: .leading) {
Spacer()
Text(verbatim: url)
.padding(.init(top: padding, leading: padding, bottom: padding, trailing: padding))
.background(.background)
.lineLimit(1)
.truncationMode(.middle)
.opacity(isHoveringURLLeft ? 1 : 0)
}
}
HStack {
VStack(alignment: .leading) {
Spacer()
Text(verbatim: url)
.padding(.init(top: padding, leading: padding, bottom: padding, trailing: padding))
.background(.background)
.lineLimit(1)
.truncationMode(.middle)
.opacity(isHoveringURLLeft ? 0 : 1)
.onHover(perform: { hovering in
isHoveringURLLeft = hovering
@ -166,18 +182,6 @@ extension Ghostty {
}
Spacer()
}
HStack {
Spacer()
VStack(alignment: .leading) {
Spacer()
Text(verbatim: url)
.padding(.init(top: padding, leading: padding, bottom: padding, trailing: padding))
.background(.background)
.opacity(isHoveringURLLeft ? 1 : 0)
}
}
}
}

View File

@ -224,6 +224,7 @@ pub const URLWidget = struct {
pub fn init(surface: *const Surface, str: [:0]const u8) URLWidget {
// Create the left
const left = c.gtk_label_new(str.ptr);
c.gtk_label_set_ellipsize(@ptrCast(left), c.PANGO_ELLIPSIZE_MIDDLE);
c.gtk_widget_add_css_class(@ptrCast(left), "view");
c.gtk_widget_add_css_class(@ptrCast(left), "url-overlay");
c.gtk_widget_set_halign(left, c.GTK_ALIGN_START);
@ -232,6 +233,7 @@ pub const URLWidget = struct {
// Create the right
const right = c.gtk_label_new(str.ptr);
c.gtk_label_set_ellipsize(@ptrCast(right), c.PANGO_ELLIPSIZE_MIDDLE);
c.gtk_widget_add_css_class(@ptrCast(right), "hidden");
c.gtk_widget_add_css_class(@ptrCast(right), "view");
c.gtk_widget_add_css_class(@ptrCast(right), "url-overlay");