diff --git a/app_icon.png b/app_icon.png new file mode 100644 index 0000000..47d647c Binary files /dev/null and b/app_icon.png differ diff --git a/assets/icons/rmux_128.png b/assets/icons/rmux_128.png index e0956c0..b5e0969 100644 Binary files a/assets/icons/rmux_128.png and b/assets/icons/rmux_128.png differ diff --git a/assets/icons/rmux_256.png b/assets/icons/rmux_256.png index cc9681d..a8ecbc7 100644 Binary files a/assets/icons/rmux_256.png and b/assets/icons/rmux_256.png differ diff --git a/assets/icons/rmux_32.png b/assets/icons/rmux_32.png index 2a4f42a..8447d76 100644 Binary files a/assets/icons/rmux_32.png and b/assets/icons/rmux_32.png differ diff --git a/assets/icons/rmux_512.png b/assets/icons/rmux_512.png index 987e64c..9dd2849 100644 Binary files a/assets/icons/rmux_512.png and b/assets/icons/rmux_512.png differ diff --git a/assets/icons/rmux_64.png b/assets/icons/rmux_64.png index f2a3ae7..bc6c785 100644 Binary files a/assets/icons/rmux_64.png and b/assets/icons/rmux_64.png differ diff --git a/assets/icons/rmux_logo.png b/assets/icons/rmux_logo.png index 2146056..7214031 100644 Binary files a/assets/icons/rmux_logo.png and b/assets/icons/rmux_logo.png differ diff --git a/crates/rmux-app/assets/rmux_logo.png b/crates/rmux-app/assets/rmux_logo.png index cc9681d..9dd2849 100644 Binary files a/crates/rmux-app/assets/rmux_logo.png and b/crates/rmux-app/assets/rmux_logo.png differ diff --git a/crates/rmux-app/src/app.rs b/crates/rmux-app/src/app.rs index d5f9d6e..9972ca0 100644 --- a/crates/rmux-app/src/app.rs +++ b/crates/rmux-app/src/app.rs @@ -755,6 +755,15 @@ impl RmuxApp { cwd.as_deref(), bg_opacity, ); + if let Some(terminal) = self + .workspace_manager + .active_mut() + .root + .find_pane_mut(new_id) + .and_then(|pane| pane.active_terminal_mut()) + { + terminal.set_focus(true); + } let workspace_id = self.workspace_manager.active().id.0; self.publish_event( "pane.created", diff --git a/crates/rmux-app/src/workspace/mod.rs b/crates/rmux-app/src/workspace/mod.rs index bd354e4..ac28e4c 100644 --- a/crates/rmux-app/src/workspace/mod.rs +++ b/crates/rmux-app/src/workspace/mod.rs @@ -300,6 +300,7 @@ impl WorkspaceManager { let ws = &mut self.workspaces[index]; let active = ws.active_pane_id(); let new_id = ws.split_right(active, &mut self.next_pane_id, &mut self.next_split_id)?; + ws.active_pane = new_id; self.check_pane_guardrail(); Ok(new_id) } @@ -312,6 +313,7 @@ impl WorkspaceManager { let ws = &mut self.workspaces[index]; let active = ws.active_pane_id(); let new_id = ws.split_down(active, &mut self.next_pane_id, &mut self.next_split_id)?; + ws.active_pane = new_id; self.check_pane_guardrail(); Ok(new_id) } @@ -824,6 +826,7 @@ mod tests { let new_id = manager.split_active_right().unwrap(); assert_eq!(manager.total_pane_count(), 2); assert!(new_id.0 > 0); + assert_eq!(manager.active().active_pane, new_id); } #[test] @@ -834,6 +837,7 @@ mod tests { let new_id = manager.split_active_down().unwrap(); assert_eq!(manager.total_pane_count(), 2); assert!(new_id.0 > 0); + assert_eq!(manager.active().active_pane, new_id); } #[test] @@ -1132,6 +1136,7 @@ mod tests { let mut manager = WorkspaceManager::new(); let original_pane = manager.active().active_pane; manager.split_active_right().expect("split ok"); + manager.focus_pane_global(original_pane); manager.new_surface_in_active(None).unwrap(); manager.new_surface_in_active(None).unwrap(); manager.close_surface_in_active_with_capture(None).expect("close should succeed");