mirror of
https://github.com/zed-industries/zed.git
synced 2024-11-07 20:39:04 +03:00
Fix a bug from the Linux rewrite where Wayland windows would not render properly (#10343)
Release Notes: - N/A
This commit is contained in:
parent
fff197b227
commit
3fc08a0610
@ -446,11 +446,12 @@ impl Dispatch<xdg_surface::XdgSurface, ObjectId> for WaylandClient {
|
||||
_: &QueueHandle<Self>,
|
||||
) {
|
||||
let mut state = state.0.borrow_mut();
|
||||
let Some(window) = state.windows.get(surface_id).cloned() else {
|
||||
return;
|
||||
};
|
||||
|
||||
// todo(linux): Apply the configuration changes as we go
|
||||
if let xdg_surface::Event::Configure { serial, .. } = event {
|
||||
xdg_surface.ack_configure(serial);
|
||||
}
|
||||
drop(state);
|
||||
window.handle_xdg_surface_event(event);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@ unsafe impl HasRawDisplayHandle for RawWindow {
|
||||
|
||||
pub struct WaylandWindowState {
|
||||
xdg_surface: xdg_surface::XdgSurface,
|
||||
surface: wl_surface::WlSurface,
|
||||
pub surface: wl_surface::WlSurface,
|
||||
toplevel: xdg_toplevel::XdgToplevel,
|
||||
viewport: Option<wp_viewport::WpViewport>,
|
||||
outputs: HashSet<ObjectId>,
|
||||
@ -209,6 +209,18 @@ impl WaylandWindow {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn handle_xdg_surface_event(&self, event: xdg_surface::Event) {
|
||||
match event {
|
||||
xdg_surface::Event::Configure { serial } => {
|
||||
let state = self.state.borrow();
|
||||
state.xdg_surface.ack_configure(serial);
|
||||
drop(state);
|
||||
self.frame();
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn handle_toplevel_decoration_event(&self, event: zxdg_toplevel_decoration_v1::Event) {
|
||||
match event {
|
||||
zxdg_toplevel_decoration_v1::Event::Configure { mode } => match mode {
|
||||
@ -253,6 +265,7 @@ impl WaylandWindow {
|
||||
self.set_fullscreen(fullscreen);
|
||||
let mut state = self.state.borrow_mut();
|
||||
state.maximized = true;
|
||||
|
||||
false
|
||||
}
|
||||
xdg_toplevel::Event::Close => {
|
||||
|
Loading…
Reference in New Issue
Block a user