@@ -611,7 +611,6 @@ impl AppContext {
.values()
.filter_map(|window| {
let window = window.as_ref()?;
- dbg!(window.focus_invalidated);
(window.dirty || window.focus_invalidated).then_some(window.handle)
})
.collect::<Vec<_>>()
@@ -470,6 +470,7 @@ impl<'a> WindowContext<'a> {
#[cfg(any(test, feature = "test-support"))]
{
+ println!("invalidating focus");
self.window.focus_invalidated = true;
}
@@ -1237,6 +1238,11 @@ impl<'a> WindowContext<'a> {
/// Draw pixels to the display for this window based on the contents of its scene.
pub(crate) fn draw(&mut self) -> Scene {
+ #[cfg(any(test, feature = "test-support"))]
+ {
+ self.window.focus_invalidated = false;
+ }
+
self.text_system().start_frame();
self.window.platform_window.clear_input_handler();
self.window.layout_engine.as_mut().unwrap().clear();
@@ -1290,11 +1296,6 @@ impl<'a> WindowContext<'a> {
let current_focus_path = self.window.rendered_frame.focus_path();
if previous_focus_path != current_focus_path {
- #[cfg(any(test, feature = "test-support"))]
- {
- self.window.focus_invalidated = false;
- }
-
if !previous_focus_path.is_empty() && current_focus_path.is_empty() {
self.window
.blur_listeners
@@ -739,7 +739,6 @@ impl ProjectPanel {
});
self.filename_editor.update(cx, |editor, cx| {
editor.clear(cx);
- println!("focusing");
editor.focus(cx);
});
self.update_visible_entries(Some((worktree_id, NEW_ENTRY_ID)), cx);
@@ -1672,7 +1671,7 @@ mod tests {
path::{Path, PathBuf},
sync::atomic::{self, AtomicUsize},
};
- use workspace::AppState;
+ use workspace::{dock::PanelHandle, AppState};
#[gpui::test]
async fn test_visible_list(cx: &mut gpui::TestAppContext) {
@@ -2281,7 +2280,12 @@ mod tests {
let workspace = cx.add_window(|cx| Workspace::test_new(project.clone(), cx));
let cx = &mut VisualTestContext::from_window(*workspace, cx);
let panel = workspace
- .update(cx, |workspace, cx| ProjectPanel::new(workspace, cx))
+ .update(cx, |workspace, cx| {
+ let panel = ProjectPanel::new(workspace, cx);
+ workspace.add_panel(panel.clone(), cx);
+ workspace.toggle_dock(panel.read(cx).position(cx), cx);
+ panel
+ })
.unwrap();
select_path(&panel, "root1", cx);