summaryrefslogtreecommitdiff
path: root/src/client_manager.hh
AgeCommit message (Collapse)Author
2025-07-08Replace std::unique_ptr with a custom implementationMaxime Coste
<memory> is a costly header we can avoid by just implementing UniquePtr ourselves, which is a pretty straightforward in modern C++, this saves around 10% of the compilation time here.
2022-12-06Load buffer in command line orderMaxime Coste
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
2021-03-11Always redraw after getting some user inputMaxime Coste
2019-04-12Prevent conversion to client on suspend from disconnecting other clientsMaxime Coste
clear the client manager in the to be converted process without sending exit messages as the forked server will still be there. Fixes #2847
2019-04-04Fix detection of client ungraceful disconnectionMaxime Coste
2018-03-25Cleanup client name validation codeMaxime Coste
2018-03-23Restore client name after converting to clientMaxime Coste
When Kakoune forked the sever to background, the newly converted to client process (the original client/server process) was not preserving its previous client name.
2018-01-21Do not block when waiting for next event if we have pending inputMaxime Coste
Handle next event should never block if we have already accumulated input that we want to process. As we can accumulate new input in lots of places (everytime we run a shell process for example, we might end up reading input keys. That can be triggered during the mode line generation which takes place during display of the window) Fixes #1804
2017-08-28Expose client pid as $kak_client_pidMaxime Coste
As requested in #1414
2017-08-23Support specifying an exit status on `quit` commandsMaxime Coste
The current client exit status can be specified as an optional parameter, is nothing is given the exit status will be 0. Fixes #1230
2017-01-29Remove unused WindowAndSelections timestamp fieldMaxime Coste
The SelectionList already has a timestamp.
2017-01-19Only touch new clients selections when target coord are explicitMaxime Coste
Do not implicitely change new clients selections to target coordinates when the user did not specify them, so that we can re-use the selections from the found free window, which is the generally desired behaviour.
2016-12-01Rework handling of initial coordinates so that init commands can change themMaxime Coste
Fixes #944
2016-11-29Simplify greatly UI input handlingMaxime Coste
This round trip through an input callback expected to call is_key_available and get_key was overcomplicated, just send the keys as they arrive, the client is already buffering due to urgent event mode.
2016-11-28Add more memory domains to certain dataMaxime Coste
2016-09-04Rework client quitting and handling of remote errorsMaxime Coste
Client quitting no longer immediately unwinds, client is just pushed for deletion until we get back to the main loop, similarly to what happens for buffer and window deletion.
2016-05-14Delay window deletion until we get back to main loopMaxime Coste
Avoid WinResize hooks while redrawing, ensure window resize only take place while handling user input. Fixes #672
2016-03-03destroy buffer manager first but clear clients before destroying buffers.Maxime Coste
Fixes #612
2015-10-08Detect ungraceful exits, and backup modified buffers in these casesMaxime Coste
2015-08-26Reorganize slightly local client creationMaxime Coste
2015-06-03Get rid of the mode trash, delete mode directly when leaving on_keyMaxime Coste
2015-02-12Cleanup and refactor externally modified buffer reloadingMaxime Coste
* Correctly hide the reload dialog in every client. * Correctly handle buffer being deleted.
2015-01-14Even more memory trackingMaxime Coste
2015-01-12replace all std::vector with VectorMaxime Coste
2014-12-23Remove trailing blank linesMaxime Coste
2014-11-29Rework client pending key handling, fix insert/normal timersMaxime Coste
2014-11-25Separate events between normal and urgent onesMaxime Coste
Run urgent ones while executing %sh blocks. Fixes #236
2014-10-20Port more code to StringView instead of const String&Maxime Coste
2014-08-12Defer deletion of buffers to after the event loopMaxime Coste
We can have SelectionList in flights on the buffer, so mark it for deletion by moving it in a buffer trash, and effectively delete it later, at a point where there should not be any further access to it.
2014-05-13SelectionList know its buffer and timestampMaxime Coste
2014-04-18Use StringView for completion functionsMaxime Coste
2014-04-07Add support for querying client environement variablesMaxime Coste
At connection, a remote client sends all its environement to the server, which then provides access to client env through kak_client_env_VAR_NAME variables in the shell.
2014-04-07Add ClientManager::complete_client_nameMaxime Coste
2014-01-27Fix compilation with clang 3.4Maxime Coste
2013-12-20Get rid of Editor for goodMaxime Coste
ClientManager now stores only the free windows, clients take ownership of its own.
2013-12-07Add Client* ClientManager::get_client_ifp() that can return nullptrMaxime Coste
2013-11-14Extract InputHandler from ClientMaxime Coste
2013-09-13Rework client name changeMaxime Coste
2013-09-12rename InputHandler to ClientMaxime Coste
2013-09-12Move Client responsibilities to InputHandlerMaxime Coste
InputHandler owns it's UserInterface, and is directly stored by the ClientManager.
2013-04-15Handle SIGHUP gracefullyMaxime Coste
2013-04-15move Client as a public class instead of a ClientManager implementation detailMaxime Coste
2013-02-07ClientManager: move the Client inner class detail in the cpp fileMaxime Coste
2013-01-28InputHandler have it's own contextMaxime Coste
2013-01-14move input watching responsibility into UserInterface implementationsMaxime Coste
2013-01-07Autoname client on creation, and access client name from shell with $kak_clientMaxime Coste
2012-12-28new clients always takes last used buffer, support multiple file on command lineMaxime Coste
2012-12-18Support initial command passing when a client is connectingMaxime Coste
2012-12-03ClientManager: support naming clients and accessing client's context by nameMaxime Coste
2012-11-22ClientManager: store client with a unique_ptrMaxime Coste