diff options
author | Delan Azabani <dazabani@igalia.com> | 2023-08-15 08:08:50 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-15 08:08:50 +0000 |
commit | 2778beeb7a623e0150e5084da14afa884b76f656 (patch) | |
tree | 4a227f7e718bf54dd38f9cb56d28559fa87feba6 /components/embedder_traits/lib.rs | |
parent | a7bd9f0d43f4de13c958eaea53709e8fc0d162c8 (diff) | |
download | servo-2778beeb7a623e0150e5084da14afa884b76f656.tar.gz servo-2778beeb7a623e0150e5084da14afa884b76f656.zip |
winit: initial minibrowser (#29976)
* winit: add minibrowser feature that depends on egui{,-winit}
* winit: carve out some space at the top of headed windows
* winit: minimal toolbar and egui/winit integration (but no painting)
* winit: try to paint with egui_glow (doesn’t work yet)
* winit: add comment about toolbar size
* Add framebuffer object, set it as glow's target
* compositing: clear only the viewport, not the whole framebuffer
* plumb the actual size of the egui toolbar to webrender
* fix formatting
* winit: fix crash when fbo is zero
* winit: don’t bother binding the framebuffer object
* winit: remove unsafe and get toolbar_height
* winit: location field should reflect the current top-level url
* [NFC] winit: move Minibrowser out of App::run
* winit: clean up toolbar height code
* winit: make App own the Minibrowser if any
* winit: make the go button work
* winit:make the location field reflect the current top-level url
* winit: allow enabling minibrowser from command line
* winit: tell compositor to repaint WR and flush when we repaint
* winit: fix bug where location field edits would get overridden
* winit: borrow the minibrowser once in App::handle_events
* winit: address todo about viewport origin coordinates
* winit: fix some minor problems with comments and errors
* winit: update location field once per HistoryChanged event
* winit: rename Window::set_toolbar_size to set_toolbar_height
* winit: take toolbar height into account in hit testing
* winit: pass egui only relevant CursorMoved events
* winit: scratch that, coalesce minibrowser updates instead
* ensure both minibrowser and WR are repainted on every frame
* compositing: only skip framebuffer clear in external present mode
* winit: destroy egui glow Painter when shutting down
* winit: clean up and fix license lint
* fix duplicate versions lint by downgrading bytemuck_derive
was egui_glow ^0.22.0 (0.22.0)
→ egui/bytemuck ^0.22.0 (0.22.0)
→ epaint/bytemuck ^0.22.0 (0.22.0)
→ bytemuck ^1.7.2 (1.13.1)
→ bytemuck_derive ^1.4 (1.4.1)
→ syn ^2.0.1 (2.0.28)
now lock has bytemuck_derive 1.4.0
→ syn ^1.0.99 (1.0.103)
* fix duplicate versions lint by disabling egui-winit/links
(we don’t need support for hyperlinks in our use of egui)
* squelch duplicate versions lint by excluding clipboard-win
* winit: fix compile warnings
* winit: make gleam an optional dependency under /minibrowser
* winit: remove cargo feature, since it’s not really optional
* winit: extract Minibrowser and related code to separate module
* winit: remove unnecessary trailing comma
* winit: simplify the ServoUrl serialisation optimisation
---------
Co-authored-by: atbrakhi <atbrakhi@igalia.com>
Diffstat (limited to 'components/embedder_traits/lib.rs')
-rw-r--r-- | components/embedder_traits/lib.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/components/embedder_traits/lib.rs b/components/embedder_traits/lib.rs index 8654732735d..da117823340 100644 --- a/components/embedder_traits/lib.rs +++ b/components/embedder_traits/lib.rs @@ -212,6 +212,8 @@ pub enum EmbedderMsg { MediaSessionEvent(MediaSessionEvent), /// Report the status of Devtools Server with a token that can be used to bypass the permission prompt. OnDevtoolsStarted(Result<u16, ()>, String), + /// Compositing done, but external code needs to present. + ReadyToPresent, } impl Debug for EmbedderMsg { @@ -248,6 +250,7 @@ impl Debug for EmbedderMsg { EmbedderMsg::MediaSessionEvent(..) => write!(f, "MediaSessionEvent"), EmbedderMsg::OnDevtoolsStarted(..) => write!(f, "OnDevtoolsStarted"), EmbedderMsg::ShowContextMenu(..) => write!(f, "ShowContextMenu"), + EmbedderMsg::ReadyToPresent => write!(f, "ReadyToPresent"), } } } |