diff --git a/src/posting/app.py b/src/posting/app.py index e388d48d..7f571218 100644 --- a/src/posting/app.py +++ b/src/posting/app.py @@ -103,6 +103,7 @@ class AppBody(Vertical): class MainScreen(Screen[None]): + AUTO_FOCUS = None BINDINGS = [ Binding("ctrl+j", "send_request", "Send"), Binding("ctrl+t", "change_method", "Method"), diff --git a/src/posting/jump_overlay.py b/src/posting/jump_overlay.py index edbfce5f..e82d2bf6 100644 --- a/src/posting/jump_overlay.py +++ b/src/posting/jump_overlay.py @@ -17,7 +17,6 @@ class JumpOverlay(ModalScreen[str | Widget | None]): or a reference to the widget. Is dismissed with None if the user dismissed the overlay without making a selection.""" - AUTO_FOCUS = None DEFAULT_CSS = """\ JumpOverlay { background: black 25%; diff --git a/src/posting/widgets/collection/browser.py b/src/posting/widgets/collection/browser.py index bc363ef1..b167cc1d 100644 --- a/src/posting/widgets/collection/browser.py +++ b/src/posting/widgets/collection/browser.py @@ -271,7 +271,9 @@ def _handle_new_request_data(new_request_data: NewRequestData | None) -> None: # Attach to the relevant node new_node = self.add_request( - new_request, parent_node if pointer is self.root else pointer + new_request, + parent_node if pointer is self.root else pointer, + cursor_node, ) self.currently_open = new_node @@ -286,6 +288,7 @@ def _handle_new_request_data(new_request_data: NewRequestData | None) -> None: ) def post_new_request() -> None: + self.screen.set_focus(focused_before) self.select_node(new_node) self.scroll_to_node(new_node, animate=False) @@ -307,11 +310,14 @@ def post_new_request() -> None: ) def add_request( - self, request: RequestModel, parent_node: TreeNode[CollectionNode] + self, + request: RequestModel, + parent_node: TreeNode[CollectionNode], + cursor_node: TreeNode[CollectionNode] | None = None, ) -> TreeNode[CollectionNode]: """Add a new request to the tree, and cache data from it.""" self.cache_request(request) - return parent_node.add_leaf(request.name, data=request) + return parent_node.add_leaf(request.name, data=request, after=cursor_node) def cache_request(self, request: RequestModel) -> None: def get_base_url(url: str) -> str | None: