From 933e4a599cfd3fc09edd67a024b8af08bbec7c01 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Tue, 6 Dec 2022 17:48:42 +1100 Subject: Load buffer in command line order Pass the first buffer on the the command line explicitely to client creation. This ensure the buffer list matches the command line, which makes buffer-next/buffer-previous a bit more useful. Fixes #2705 --- src/client_manager.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/client_manager.cc') diff --git a/src/client_manager.cc b/src/client_manager.cc index 25d96c4d..5453f02c 100644 --- a/src/client_manager.cc +++ b/src/client_manager.cc @@ -47,10 +47,12 @@ String ClientManager::generate_name() const Client* ClientManager::create_client(std::unique_ptr&& ui, int pid, String name, EnvVarMap env_vars, StringView init_cmds, - Optional init_coord, + StringView init_buffer, Optional init_coord, Client::OnExitCallback on_exit) { - Buffer& buffer = BufferManager::instance().get_first_buffer(); + Buffer& buffer = init_buffer.empty() ? BufferManager::instance().get_first_buffer() + : BufferManager::instance().get_buffer(init_buffer); + WindowAndSelections ws = get_free_window(buffer); Client* client = new Client{std::move(ui), std::move(ws.window), std::move(ws.selections), pid, -- cgit v1.2.3