mirror of
https://github.com/zed-industries/zed.git
synced 2024-12-28 20:01:33 +00:00
Fix crash when unplugging display containing a zed window
Co-authored-by: Kay Simmons <kay@zed.dev>
This commit is contained in:
parent
2d6219ebe2
commit
f065399799
1 changed files with 13 additions and 14 deletions
|
@ -910,15 +910,14 @@ impl MutableAppContext {
|
|||
.map_or(false, |window| window.is_fullscreen)
|
||||
}
|
||||
|
||||
pub fn window_bounds(&self, window_id: usize) -> WindowBounds {
|
||||
self.presenters_and_platform_windows[&window_id].1.bounds()
|
||||
pub fn window_bounds(&self, window_id: usize) -> Option<WindowBounds> {
|
||||
let (_, window) = self.presenters_and_platform_windows.get(&window_id)?;
|
||||
Some(window.bounds())
|
||||
}
|
||||
|
||||
pub fn window_display_uuid(&self, window_id: usize) -> Option<Uuid> {
|
||||
self.presenters_and_platform_windows[&window_id]
|
||||
.1
|
||||
.screen()
|
||||
.display_uuid()
|
||||
let (_, window) = self.presenters_and_platform_windows.get(&window_id)?;
|
||||
window.screen().display_uuid()
|
||||
}
|
||||
|
||||
pub fn render_view(&mut self, params: RenderParams) -> Result<ElementBox> {
|
||||
|
@ -2375,8 +2374,10 @@ impl MutableAppContext {
|
|||
callback(is_fullscreen, this)
|
||||
});
|
||||
|
||||
if let Some(uuid) = this.window_display_uuid(window_id) {
|
||||
let bounds = this.window_bounds(window_id);
|
||||
if let Some((uuid, bounds)) = this
|
||||
.window_display_uuid(window_id)
|
||||
.zip(this.window_bounds(window_id))
|
||||
{
|
||||
let mut bounds_observations = this.window_bounds_observations.clone();
|
||||
bounds_observations.emit(window_id, this, |callback, this| {
|
||||
callback(bounds, uuid, this)
|
||||
|
@ -2560,8 +2561,10 @@ impl MutableAppContext {
|
|||
}
|
||||
|
||||
fn handle_window_moved(&mut self, window_id: usize) {
|
||||
if let Some(display) = self.window_display_uuid(window_id) {
|
||||
let bounds = self.window_bounds(window_id);
|
||||
if let Some((display, bounds)) = self
|
||||
.window_display_uuid(window_id)
|
||||
.zip(self.window_bounds(window_id))
|
||||
{
|
||||
self.window_bounds_observations
|
||||
.clone()
|
||||
.emit(window_id, self, move |callback, this| {
|
||||
|
@ -3733,10 +3736,6 @@ impl<'a, T: View> ViewContext<'a, T> {
|
|||
self.app.toggle_window_full_screen(self.window_id)
|
||||
}
|
||||
|
||||
pub fn window_bounds(&self) -> WindowBounds {
|
||||
self.app.window_bounds(self.window_id)
|
||||
}
|
||||
|
||||
pub fn prompt(
|
||||
&self,
|
||||
level: PromptLevel,
|
||||
|
|
Loading…
Reference in a new issue