diff --git a/macos/Sources/Ghostty/SurfaceView.swift b/macos/Sources/Ghostty/SurfaceView.swift index 5587d538e..92d899300 100644 --- a/macos/Sources/Ghostty/SurfaceView.swift +++ b/macos/Sources/Ghostty/SurfaceView.swift @@ -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) - } - } } } diff --git a/src/apprt/gtk/Surface.zig b/src/apprt/gtk/Surface.zig index 406c7bece..62a432c9e 100644 --- a/src/apprt/gtk/Surface.zig +++ b/src/apprt/gtk/Surface.zig @@ -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");