mirror of
https://github.com/swaywm/sway.git
synced 2024-12-28 16:06:37 +01:00
commit
817e847749
10 changed files with 30 additions and 11 deletions
|
@ -79,7 +79,7 @@ void free_cmd_results(struct cmd_results *results);
|
|||
*
|
||||
* Free the JSON string later on.
|
||||
*/
|
||||
const char *cmd_results_to_json(struct cmd_results *results);
|
||||
char *cmd_results_to_json(struct cmd_results *results);
|
||||
|
||||
struct cmd_results *add_color(const char *name,
|
||||
char *buffer, const char *color);
|
||||
|
|
|
@ -527,7 +527,7 @@ void free_cmd_results(struct cmd_results *results) {
|
|||
free(results);
|
||||
}
|
||||
|
||||
const char *cmd_results_to_json(struct cmd_results *results) {
|
||||
char *cmd_results_to_json(struct cmd_results *results) {
|
||||
json_object *result_array = json_object_new_array();
|
||||
json_object *root = json_object_new_object();
|
||||
json_object_object_add(root, "success",
|
||||
|
@ -542,9 +542,9 @@ const char *cmd_results_to_json(struct cmd_results *results) {
|
|||
}
|
||||
json_object_array_add(result_array, root);
|
||||
const char *json = json_object_to_json_string(result_array);
|
||||
free(result_array);
|
||||
free(root);
|
||||
return json;
|
||||
char *res = strdup(json);
|
||||
json_object_put(result_array);
|
||||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -87,7 +87,12 @@ void free_config(struct sway_config *config) {
|
|||
list_free(config->cmd_queue);
|
||||
list_free(config->workspace_outputs);
|
||||
list_free(config->pid_workspaces);
|
||||
list_free(config->output_configs);
|
||||
if (config->output_configs) {
|
||||
for (int i = 0; i < config->output_configs->length; i++) {
|
||||
free_output_config(config->output_configs->items[i]);
|
||||
}
|
||||
list_free(config->output_configs);
|
||||
}
|
||||
if (config->input_configs) {
|
||||
for (int i = 0; i < config->input_configs->length; i++) {
|
||||
free_input_config(config->input_configs->items[i]);
|
||||
|
|
|
@ -30,6 +30,7 @@ void free_bar_config(struct bar_config *bar) {
|
|||
if (!bar) {
|
||||
return;
|
||||
}
|
||||
free(bar->id);
|
||||
free(bar->mode);
|
||||
free(bar->position);
|
||||
free(bar->hidden_state);
|
||||
|
|
|
@ -420,6 +420,9 @@ void sway_keyboard_destroy(struct sway_keyboard *keyboard) {
|
|||
if (!keyboard) {
|
||||
return;
|
||||
}
|
||||
if (keyboard->keymap) {
|
||||
xkb_keymap_unref(keyboard->keymap);
|
||||
}
|
||||
wl_list_remove(&keyboard->keyboard_key.link);
|
||||
wl_list_remove(&keyboard->keyboard_modifiers.link);
|
||||
free(keyboard);
|
||||
|
|
|
@ -64,6 +64,10 @@ static void handle_display_destroy(struct wl_listener *listener, void *data) {
|
|||
close(ipc_socket);
|
||||
unlink(ipc_sockaddr->sun_path);
|
||||
|
||||
while (ipc_client_list->length) {
|
||||
struct ipc_client *client = ipc_client_list->items[0];
|
||||
ipc_client_disconnect(client);
|
||||
}
|
||||
list_free(ipc_client_list);
|
||||
|
||||
if (ipc_sockaddr) {
|
||||
|
@ -479,10 +483,10 @@ void ipc_client_handle_command(struct ipc_client *client) {
|
|||
case IPC_COMMAND:
|
||||
{
|
||||
struct cmd_results *results = execute_command(buf, NULL);
|
||||
const char *json = cmd_results_to_json(results);
|
||||
char reply[256];
|
||||
int length = snprintf(reply, sizeof(reply), "%s", json);
|
||||
client_valid = ipc_send_reply(client, reply, (uint32_t)length);
|
||||
char *json = cmd_results_to_json(results);
|
||||
int length = strlen(json);
|
||||
client_valid = ipc_send_reply(client, json, (uint32_t)length);
|
||||
free(json);
|
||||
free_cmd_results(results);
|
||||
goto exit_cleanup;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#define _XOPEN_SOURCE 700
|
||||
#define _POSIX_C_SOURCE 200112L
|
||||
#include <getopt.h>
|
||||
#include <pango/pangocairo.h>
|
||||
#include <signal.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -441,5 +442,7 @@ int main(int argc, char **argv) {
|
|||
free_config(config);
|
||||
}
|
||||
|
||||
pango_cairo_font_map_set_default(NULL);
|
||||
|
||||
return exit_value;
|
||||
}
|
||||
|
|
|
@ -151,6 +151,7 @@ void container_free(struct sway_container *cont) {
|
|||
return;
|
||||
}
|
||||
free(cont->name);
|
||||
free(cont->formatted_title);
|
||||
wlr_texture_destroy(cont->title_focused);
|
||||
wlr_texture_destroy(cont->title_focused_inactive);
|
||||
wlr_texture_destroy(cont->title_unfocused);
|
||||
|
|
|
@ -514,7 +514,7 @@ void view_map(struct sway_view *view, struct wlr_surface *wlr_surface) {
|
|||
if (container_is_floating(focus)) {
|
||||
focus = focus->parent->parent;
|
||||
}
|
||||
free(criterias);
|
||||
list_free(criterias);
|
||||
cont = container_view_create(focus, view);
|
||||
|
||||
view->surface = wlr_surface;
|
||||
|
|
|
@ -191,6 +191,8 @@ char *workspace_next_name(const char *output_name) {
|
|||
free(target);
|
||||
target = _target;
|
||||
wlr_log(L_DEBUG, "Workspace: Found free name %s", _target);
|
||||
} else {
|
||||
free(_target);
|
||||
}
|
||||
}
|
||||
free(dup);
|
||||
|
|
Loading…
Reference in a new issue