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