diff --git a/crates/gpui/screenshot.png b/crates/gpui/screenshot.png new file mode 100644 index 0000000000..50597680f0 Binary files /dev/null and b/crates/gpui/screenshot.png differ diff --git a/crates/gpui/src/platform/linux/dispatcher.rs b/crates/gpui/src/platform/linux/dispatcher.rs index 14072f040a..d669e56ab6 100644 --- a/crates/gpui/src/platform/linux/dispatcher.rs +++ b/crates/gpui/src/platform/linux/dispatcher.rs @@ -46,6 +46,13 @@ impl LinuxDispatcher { main_thread_id: thread::current().id(), } } + + pub fn tick_main(&self) { + assert!(self.is_main_thread()); + if let Ok(runnable) = self.main_receiver.try_recv() { + runnable.run(); + } + } } impl PlatformDispatcher for LinuxDispatcher { diff --git a/crates/gpui/src/platform/linux/platform.rs b/crates/gpui/src/platform/linux/platform.rs index b7d51971a1..e1d21ef69d 100644 --- a/crates/gpui/src/platform/linux/platform.rs +++ b/crates/gpui/src/platform/linux/platform.rs @@ -3,9 +3,8 @@ use crate::{ Action, AnyWindowHandle, BackgroundExecutor, Bounds, ClipboardItem, CursorStyle, DisplayId, ForegroundExecutor, Keymap, LinuxDispatcher, LinuxDisplay, LinuxTextSystem, LinuxWindow, - LinuxWindowState, Menu, PathPromptOptions, Platform, PlatformDispatcher as _, PlatformDisplay, - PlatformInput, PlatformTextSystem, PlatformWindow, Point, Result, SemanticVersion, Size, Task, - WindowOptions, + LinuxWindowState, Menu, PathPromptOptions, Platform, PlatformDisplay, PlatformInput, + PlatformTextSystem, PlatformWindow, Point, Result, SemanticVersion, Size, Task, WindowOptions, }; use collections::{HashMap, HashSet}; @@ -121,7 +120,7 @@ impl Platform for LinuxPlatform { } _ => {} } - self.0.lock().dispatcher.tick(false); + self.0.lock().dispatcher.tick_main(); } }