From e14e079fffaf862be6c2f8181e908ab35473af1f Mon Sep 17 00:00:00 2001 From: Martin Robinson Date: Thu, 4 Jul 2024 08:36:19 +0200 Subject: [PATCH] servoshell: Update all egui dependencies and group them for dependabot (#32683) This updates egui, making the necessary changes to maintain behavior. In addition, it groups dependencies so that they are updated in a single PR by dependabot, avoiding manual work. --- .github/dependabot.yml | 6 ++++++ Cargo.lock | 28 ++++++++++++++----------- ports/servoshell/Cargo.toml | 6 +++--- ports/servoshell/desktop/minibrowser.rs | 25 +++++++++++----------- 4 files changed, 37 insertions(+), 28 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index da648bb4609..94424dcc454 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -15,6 +15,12 @@ updates: - "glib*" - "gobject*" - "gstreamer*" + groups: + egui-related: + patterns: + - "egui" + - "egui_glow" + - "egui-winit" ignore: # Ignore all stylo crates as their upgrades are coordinated via companion PRs. - dependency-name: servo_atoms diff --git a/Cargo.lock b/Cargo.lock index 434deb75bbf..a315e6875ca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1471,20 +1471,22 @@ dependencies = [ [[package]] name = "ecolor" -version = "0.26.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03cfe80b1890e1a8cdbffc6044d6872e814aaf6011835a2a5e2db0e5c5c4ef4e" +checksum = "d2cabe0a45c3736c274bc650ca02ab293eb2ad1a3870f6033590ca7a3ee9963c" dependencies = [ "bytemuck", + "emath", ] [[package]] name = "egui" -version = "0.26.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180f595432a5b615fc6b74afef3955249b86cfea72607b40740a4cd60d5297d0" +checksum = "9dce16991290ee6395f3780b9b0db15bf0368bce2f31f2e9ba276d26e4b09cda" dependencies = [ "ahash", + "emath", "epaint", "log", "nohash-hasher", @@ -1492,10 +1494,11 @@ dependencies = [ [[package]] name = "egui-winit" -version = "0.26.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4d44f8d89f70d4480545eb2346b76ea88c3022e9f4706cebc799dbe8b004a2" +checksum = "ef6d149cc9db915f34df8a90eb81853c9376044fc938f67d848729b27c6b0128" dependencies = [ + "ahash", "arboard", "egui", "log", @@ -1507,10 +1510,11 @@ dependencies = [ [[package]] name = "egui_glow" -version = "0.26.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08e3be8728b4c59493dbfec041c657e6725bdeafdbd49aef3f1dbb9e551fa01" +checksum = "fa80fb1b442fdf521db80dd3fb8fd01cf885f428c1b16d62959a249909bf541e" dependencies = [ + "ahash", "bytemuck", "egui", "egui-winit", @@ -1530,9 +1534,9 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "emath" -version = "0.26.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6916301ecf80448f786cdf3eb51d9dbdd831538732229d49119e2d4312eaaf09" +checksum = "275f98c04af8359eeef56af16dfafd2bc7a65d9c0e5f2f00918057ca90a9fba8" dependencies = [ "bytemuck", ] @@ -1638,9 +1642,9 @@ dependencies = [ [[package]] name = "epaint" -version = "0.26.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77b9fdf617dd7f58b0c8e6e9e4a1281f730cde0831d40547da446b2bb76a47af" +checksum = "205d6fcd02317e3e06cb32d28f821dd549b14ab12da6ff283dda57c4ebe4cb45" dependencies = [ "ab_glyph", "ahash", diff --git a/ports/servoshell/Cargo.toml b/ports/servoshell/Cargo.toml index 8ba4692907a..20bcd967e99 100644 --- a/ports/servoshell/Cargo.toml +++ b/ports/servoshell/Cargo.toml @@ -93,9 +93,9 @@ ohos-sys = { git = "https://github.com/jschwe/ohos-sys.git" } # For optional feature servo_allocator/use-system-allocator servo_allocator = { path = "../../components/allocator" } arboard = { version = "3" } -egui = { version = "0.26.2" } -egui_glow = { version = "0.26.2", features = ["winit"] } -egui-winit = { version = "0.26.2", default-features = false, features = ["clipboard", "wayland"] } +egui = { version = "0.28.0" } +egui_glow = { version = "0.28.0", features = ["winit"] } +egui-winit = { version = "0.28.0", default-features = false, features = ["clipboard", "wayland"] } euclid = { workspace = true } gilrs = "0.10.7" gleam = { workspace = true } diff --git a/ports/servoshell/desktop/minibrowser.rs b/ports/servoshell/desktop/minibrowser.rs index 899f5f505db..41869223e3b 100644 --- a/ports/servoshell/desktop/minibrowser.rs +++ b/ports/servoshell/desktop/minibrowser.rs @@ -8,7 +8,7 @@ use std::sync::Arc; use std::time::Instant; use egui::{ - pos2, CentralPanel, Color32, Frame, Key, Modifiers, PaintCallback, Pos2, Spinner, + pos2, CentralPanel, Color32, Frame, Key, Label, Modifiers, PaintCallback, Pos2, Spinner, TopBottomPanel, Vec2, }; use egui_glow::CallbackFn; @@ -245,18 +245,6 @@ impl Minibrowser { }; let mut embedder_events = vec![]; - if let Some(status_text) = &self.status_text { - let position = Some(pos2(0.0, ctx.available_rect().max.y)); - egui::containers::popup::show_tooltip_at( - ctx, - "tooltip_for_status_text".into(), - position, - |ui| { - ui.label(status_text.clone()); - }, - ); - } - CentralPanel::default() .frame(Frame::none()) .show(ctx, |ui| { @@ -282,6 +270,17 @@ impl Minibrowser { let Some(servo_fbo) = servo_framebuffer_id else { return; }; + + if let Some(status_text) = &self.status_text { + egui::containers::popup::show_tooltip_at( + ctx, + ui.layer_id(), + "tooltip layer".into(), + pos2(0.0, ctx.available_rect().max.y), + |ui| ui.add(Label::new(status_text.clone()).extend()), + ); + } + ui.painter().add(PaintCallback { rect, callback: Arc::new(CallbackFn::new(move |info, painter| {