mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-04 16:56:59 +01:00
fix(gui): even breadcrumb spacing, no invented hyphens in tile names
The current folder in the breadcrumb trail was a bare label, so the "›"
before it hugged it while the ones between buttons sat in their padding.
One helper now builds the separator and the current segment for My Files,
Shared with me and Computers, with a flat button's side padding.
Grid tile names broke mid-word with a hyphen that is not in the name
("SteamSetup.e-xe"); turn Pango's inserted hyphens off.
This commit is contained in:
1 parent
3b80e9bc8f
commit
922399b9a2
8 files changed
+38
-28
No files matched your search
@@ -0,0 +1,21 @@
|
||||
use crate::*;
|
||||
|
||||
/// The "›" between two breadcrumb segments.
|
||||
pub(crate) fn crumb_separator() -> gtk4::Label {
|
||||
let sep = gtk4::Label::new(Some("›"));
|
||||
sep.add_css_class("dim-label");
|
||||
sep
|
||||
}
|
||||
|
||||
/// The last breadcrumb segment, the folder on screen: a heading rather than a
|
||||
/// button. It carries a flat button's side padding (`.crumb-current`), so the
|
||||
/// "›" before it sits as far from it as from the button before.
|
||||
pub(crate) fn crumb_current(label: &str) -> gtk4::Widget {
|
||||
let l = gtk4::Label::builder()
|
||||
.label(label)
|
||||
.ellipsize(gtk4::pango::EllipsizeMode::Start)
|
||||
.build();
|
||||
l.add_css_class("heading");
|
||||
l.add_css_class("crumb-current");
|
||||
l.upcast()
|
||||
}
|
||||
@@ -132,8 +132,13 @@ impl FileList {
|
||||
// and the grid collapses to a single column. Allowing a mid-word
|
||||
// break is what keeps the two-line-then-ellipsis budget below
|
||||
// enforceable for *every* name rather than only the ones that
|
||||
// happen to have spaces.
|
||||
// happen to have spaces. Pango marks such a break with a hyphen
|
||||
// that is not in the name ("SteamSetup.e-xe"); a file name is
|
||||
// not prose, so break it bare, as Nautilus does.
|
||||
let no_hyphens = gtk4::pango::AttrList::new();
|
||||
no_hyphens.insert(gtk4::pango::AttrInt::new_insert_hyphens(false));
|
||||
let label = gtk4::Label::builder()
|
||||
.attributes(&no_hyphens)
|
||||
.ellipsize(gtk4::pango::EllipsizeMode::End)
|
||||
.justify(gtk4::Justification::Center)
|
||||
.max_width_chars(13)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
pub(crate) mod compat;
|
||||
pub(crate) mod crumb;
|
||||
pub(crate) mod details;
|
||||
pub(crate) mod file_list;
|
||||
pub(crate) mod menu;
|
||||
|
||||
Reference in new issue
Block a user