all repos — tint2 @ 49e7f54d2fd3e3321f8abc42cd6076bea517732e

fork of the tint2 desktop panel for my custom setup - only minimized windows across all desktops for the taskbar

preserve item order when skipping executors #799
Chris Lee @klee93
commit

49e7f54d2fd3e3321f8abc42cd6076bea517732e

parent

0f00212c58630c104a14650e94b654324c21ecbb

2 files changed, 13 insertions(+), 9 deletions(-)

jump to
M src/execplugin/execplugin.csrc/execplugin/execplugin.c

@@ -45,6 +45,13 @@ execp->backend->centered = TRUE;

execp->backend->font_color.alpha = 0.5; execp->backend->monitor = -1; INIT_TIMER(execp->backend->timer); + execp->backend->bg = &g_array_index(backgrounds, Background, 0); + execp->backend->buf_stdout_capacity = 1024; + execp->backend->buf_stdout = calloc(execp->backend->buf_stdout_capacity, 1); + execp->backend->buf_stderr_capacity = 1024; + execp->backend->buf_stderr = calloc(execp->backend->buf_stderr_capacity, 1); + execp->backend->text = strdup(""); + execp->backend->icon_path = NULL; return execp; }

@@ -57,7 +64,10 @@ panel->monitor != execp_backend->backend->monitor) {

printf("Skipping executor '%s' with monitor %d for panel on monitor %d\n", execp_backend->backend->command, execp_backend->backend->monitor, panel->monitor); - return NULL; + Execp *dummy = create_execp(); + dummy->frontend = (ExecpFrontend *)calloc(1, sizeof(ExecpFrontend)); + dummy->backend->instances = g_list_append(execp_backend->backend->instances, dummy); + return dummy; } printf("Creating executor '%s' with monitor %d for panel on monitor %d\n", execp_backend->backend->command,

@@ -156,12 +166,6 @@

// Set missing config options if (!execp->backend->bg) execp->backend->bg = &g_array_index(backgrounds, Background, 0); - execp->backend->buf_stdout_capacity = 1024; - execp->backend->buf_stdout = calloc(execp->backend->buf_stdout_capacity, 1); - execp->backend->buf_stderr_capacity = 1024; - execp->backend->buf_stderr = calloc(execp->backend->buf_stderr_capacity, 1); - execp->backend->text = strdup(""); - execp->backend->icon_path = NULL; } }

@@ -176,7 +180,6 @@

// panel->execp_list is now a copy of the pointer panel_config.execp_list // We make it a deep copy panel->execp_list = g_list_copy_deep(panel_config.execp_list, create_execp_frontend, panel); - panel->execp_list = g_list_remove_all(panel->execp_list, NULL); for (GList *l = panel->execp_list; l; l = l->next) { Execp *execp = l->data;
M src/panel.csrc/panel.c

@@ -269,8 +269,9 @@ if (panel_items_order[k] == 'F' && !strstr(panel_items_order, "T"))

init_freespace_panel(p); if (panel_items_order[k] == ':') init_separator_panel(p); - if (panel_items_order[k] == 'E') + if (panel_items_order[k] == 'E') { init_execp_panel(p); + } if (panel_items_order[k] == 'P') init_button_panel(p); }