diff --git a/Cargo.lock b/Cargo.lock index b32b26c30b1c..e112a011214f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1777,7 +1777,7 @@ checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" [[package]] name = "ecolor" version = "0.28.1" -source = "git+https://github.com/emilk/egui.git?rev=b9435541df664f36c0956007afe4155514eebc5c#b9435541df664f36c0956007afe4155514eebc5c" +source = "git+https://github.com/emilk/egui.git?rev=454abf705b87aba70cef582d6ce80f74aa398906#454abf705b87aba70cef582d6ce80f74aa398906" dependencies = [ "bytemuck", "emath", @@ -1787,7 +1787,7 @@ dependencies = [ [[package]] name = "eframe" version = "0.28.1" -source = "git+https://github.com/emilk/egui.git?rev=b9435541df664f36c0956007afe4155514eebc5c#b9435541df664f36c0956007afe4155514eebc5c" +source = "git+https://github.com/emilk/egui.git?rev=454abf705b87aba70cef582d6ce80f74aa398906#454abf705b87aba70cef582d6ce80f74aa398906" dependencies = [ "ahash", "bytemuck", @@ -1824,7 +1824,7 @@ dependencies = [ [[package]] name = "egui" version = "0.28.1" -source = "git+https://github.com/emilk/egui.git?rev=b9435541df664f36c0956007afe4155514eebc5c#b9435541df664f36c0956007afe4155514eebc5c" +source = "git+https://github.com/emilk/egui.git?rev=454abf705b87aba70cef582d6ce80f74aa398906#454abf705b87aba70cef582d6ce80f74aa398906" dependencies = [ "accesskit", "ahash", @@ -1841,7 +1841,7 @@ dependencies = [ [[package]] name = "egui-wgpu" version = "0.28.1" -source = "git+https://github.com/emilk/egui.git?rev=b9435541df664f36c0956007afe4155514eebc5c#b9435541df664f36c0956007afe4155514eebc5c" +source = "git+https://github.com/emilk/egui.git?rev=454abf705b87aba70cef582d6ce80f74aa398906#454abf705b87aba70cef582d6ce80f74aa398906" dependencies = [ "ahash", "bytemuck", @@ -1860,7 +1860,7 @@ dependencies = [ [[package]] name = "egui-winit" version = "0.28.1" -source = "git+https://github.com/emilk/egui.git?rev=b9435541df664f36c0956007afe4155514eebc5c#b9435541df664f36c0956007afe4155514eebc5c" +source = "git+https://github.com/emilk/egui.git?rev=454abf705b87aba70cef582d6ce80f74aa398906#454abf705b87aba70cef582d6ce80f74aa398906" dependencies = [ "accesskit_winit", "ahash", @@ -1902,7 +1902,7 @@ dependencies = [ [[package]] name = "egui_extras" version = "0.28.1" -source = "git+https://github.com/emilk/egui.git?rev=b9435541df664f36c0956007afe4155514eebc5c#b9435541df664f36c0956007afe4155514eebc5c" +source = "git+https://github.com/emilk/egui.git?rev=454abf705b87aba70cef582d6ce80f74aa398906#454abf705b87aba70cef582d6ce80f74aa398906" dependencies = [ "ahash", "egui", @@ -1918,7 +1918,7 @@ dependencies = [ [[package]] name = "egui_glow" version = "0.28.1" -source = "git+https://github.com/emilk/egui.git?rev=b9435541df664f36c0956007afe4155514eebc5c#b9435541df664f36c0956007afe4155514eebc5c" +source = "git+https://github.com/emilk/egui.git?rev=454abf705b87aba70cef582d6ce80f74aa398906#454abf705b87aba70cef582d6ce80f74aa398906" dependencies = [ "ahash", "bytemuck", @@ -1981,7 +1981,7 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "emath" version = "0.28.1" -source = "git+https://github.com/emilk/egui.git?rev=b9435541df664f36c0956007afe4155514eebc5c#b9435541df664f36c0956007afe4155514eebc5c" +source = "git+https://github.com/emilk/egui.git?rev=454abf705b87aba70cef582d6ce80f74aa398906#454abf705b87aba70cef582d6ce80f74aa398906" dependencies = [ "bytemuck", "serde", @@ -2082,7 +2082,7 @@ dependencies = [ [[package]] name = "epaint" version = "0.28.1" -source = "git+https://github.com/emilk/egui.git?rev=b9435541df664f36c0956007afe4155514eebc5c#b9435541df664f36c0956007afe4155514eebc5c" +source = "git+https://github.com/emilk/egui.git?rev=454abf705b87aba70cef582d6ce80f74aa398906#454abf705b87aba70cef582d6ce80f74aa398906" dependencies = [ "ab_glyph", "ahash", @@ -2101,7 +2101,7 @@ dependencies = [ [[package]] name = "epaint_default_fonts" version = "0.28.1" -source = "git+https://github.com/emilk/egui.git?rev=b9435541df664f36c0956007afe4155514eebc5c#b9435541df664f36c0956007afe4155514eebc5c" +source = "git+https://github.com/emilk/egui.git?rev=454abf705b87aba70cef582d6ce80f74aa398906#454abf705b87aba70cef582d6ce80f74aa398906" [[package]] name = "equivalent" diff --git a/Cargo.toml b/Cargo.toml index dabbcaf67d9b..0bedf95f1795 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -507,12 +507,12 @@ missing_errors_doc = "allow" # As a last resport, patch with a commit to our own repository. # ALWAYS document what PR the commit hash is part of, or when it was merged into the upstream trunk. -ecolor = { git = "https://github.com/emilk/egui.git", rev = "b9435541df664f36c0956007afe4155514eebc5c" } # egui master 2024-09-03 -eframe = { git = "https://github.com/emilk/egui.git", rev = "b9435541df664f36c0956007afe4155514eebc5c" } # egui master 2024-09-03 -egui = { git = "https://github.com/emilk/egui.git", rev = "b9435541df664f36c0956007afe4155514eebc5c" } # egui master 2024-09-03 -egui_extras = { git = "https://github.com/emilk/egui.git", rev = "b9435541df664f36c0956007afe4155514eebc5c" } # egui master 2024-09-03 -egui-wgpu = { git = "https://github.com/emilk/egui.git", rev = "b9435541df664f36c0956007afe4155514eebc5c" } # egui master 2024-09-03 -emath = { git = "https://github.com/emilk/egui.git", rev = "b9435541df664f36c0956007afe4155514eebc5c" } # egui master 2024-09-03 +ecolor = { git = "https://github.com/emilk/egui.git", rev = "454abf705b87aba70cef582d6ce80f74aa398906" } # egui master 2024-09-03 +eframe = { git = "https://github.com/emilk/egui.git", rev = "454abf705b87aba70cef582d6ce80f74aa398906" } # egui master 2024-09-03 +egui = { git = "https://github.com/emilk/egui.git", rev = "454abf705b87aba70cef582d6ce80f74aa398906" } # egui master 2024-09-03 +egui_extras = { git = "https://github.com/emilk/egui.git", rev = "454abf705b87aba70cef582d6ce80f74aa398906" } # egui master 2024-09-03 +egui-wgpu = { git = "https://github.com/emilk/egui.git", rev = "454abf705b87aba70cef582d6ce80f74aa398906" } # egui master 2024-09-03 +emath = { git = "https://github.com/emilk/egui.git", rev = "454abf705b87aba70cef582d6ce80f74aa398906" } # egui master 2024-09-03 # Useful while developing: # ecolor = { path = "../../egui/crates/ecolor" } diff --git a/crates/viewer/re_chunk_store_ui/src/sort.rs b/crates/viewer/re_chunk_store_ui/src/sort.rs index 77338955b92e..dac1ecc359df 100644 --- a/crates/viewer/re_chunk_store_ui/src/sort.rs +++ b/crates/viewer/re_chunk_store_ui/src/sort.rs @@ -27,7 +27,6 @@ pub(crate) struct SortColumn { } /// UI for a column header that is sortable. -//TODO(ab): this UI could be much improved with https://github.com/emilk/egui/issues/5015 pub(crate) fn sortable_column_header_ui( column: &T, ui: &mut egui::Ui, @@ -35,23 +34,28 @@ pub(crate) fn sortable_column_header_ui( label: &'static str, ) { let is_sorted = &sort_column.column == column; + let direction = sort_column.direction; - ui.style_mut().wrap_mode = Some(egui::TextWrapMode::Truncate); + let (left_clicked, right_clicked) = egui::Sides::new() + .height(re_ui::DesignTokens::table_line_height()) + .show( + ui, + |ui| { + ui.style_mut().wrap_mode = Some(egui::TextWrapMode::Truncate); - if ui - .add(egui::Button::new( - egui::WidgetText::from(format!( - "{label}{}", - match (is_sorted, sort_column.direction) { - (true, SortDirection::Ascending) => " ↓", - (true, SortDirection::Descending) => " ↑", + ui.button(egui::WidgetText::from(label).strong()).clicked() + }, + |ui| { + ui.button(match (is_sorted, direction) { + (true, SortDirection::Ascending) => "↓", + (true, SortDirection::Descending) => "↑", _ => "", - } - )) - .strong(), - )) - .clicked() - { + }) + .clicked() + }, + ); + + if left_clicked || right_clicked { if is_sorted { sort_column.direction.toggle(); } else {