mirror of
https://github.com/swaywm/sway.git
synced 2024-09-07 03:26:56 +00:00
This PR changes the way we handle transactions to a more simple method. The new method is to mark containers as dirty from low level code (eg. arranging, or container_destroy, and eventually seat_set_focus), then call transaction_commit_dirty which picks up those containers and runs them through a transaction. The old methods of using transactions (arrange_and_commit, or creating one manually) are now no longer possible. The highest-level code (execute_command and view implementation handlers) will call transaction_commit_dirty, so most other code just needs to set containers as dirty. This is done by arranging, but can also be done by calling container_set_dirty.
18 lines
508 B
C
18 lines
508 B
C
#include "sway/commands.h"
|
|
#include "sway/config.h"
|
|
#include "sway/tree/arrange.h"
|
|
|
|
struct cmd_results *cmd_reload(int argc, char **argv) {
|
|
struct cmd_results *error = NULL;
|
|
if ((error = checkarg(argc, "reload", EXPECTED_EQUAL_TO, 0))) {
|
|
return error;
|
|
}
|
|
if (!load_main_config(config->current_config_path, true)) {
|
|
return cmd_results_new(CMD_FAILURE, "reload", "Error(s) reloading config.");
|
|
}
|
|
|
|
load_swaybars();
|
|
arrange_windows(&root_container);
|
|
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
|
}
|