From 7fdf50eb31f5cb9f15082c9ebb1e4e421756d4a2 Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 1 Mar 2016 00:03:11 +0000 Subject: [PATCH] Add plugin wins to /win and /close autocompletion --- src/ui/window.c | 2 +- src/window_list.c | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/ui/window.c b/src/ui/window.c index 585c0b21..05eaf586 100644 --- a/src/ui/window.c +++ b/src/ui/window.c @@ -350,7 +350,7 @@ win_get_string(ProfWin *window) { ProfPluginWin *pluginwin = (ProfPluginWin*)window; GString *gstring = g_string_new(""); - g_string_append_printf(gstring, "%s plugin", pluginwin->tag); + g_string_append_printf(gstring, "Plugin: %s", pluginwin->tag); char *res = gstring->str; g_string_free(gstring, FALSE); return res; diff --git a/src/window_list.c b/src/window_list.c index 35f49fdd..5fab7ba0 100644 --- a/src/window_list.c +++ b/src/window_list.c @@ -389,6 +389,11 @@ wins_get_by_string(char *str) return (ProfWin*)privwin; } + ProfPluginWin *pluginwin = wins_get_plugin(str); + if (pluginwin) { + return (ProfWin*)pluginwin; + } + return NULL; } @@ -539,6 +544,13 @@ wins_close_by_num(int i) autocomplete_remove(wins_close_ac, "xmlconsole"); break; } + case WIN_PLUGIN: + { + ProfPluginWin *pluginwin = (ProfPluginWin*)window; + autocomplete_remove(wins_ac, pluginwin->tag); + autocomplete_remove(wins_close_ac, pluginwin->tag); + break; + } case WIN_MUC_CONFIG: default: break; @@ -640,10 +652,12 @@ wins_new_plugin(const char * const tag) { GList *keys = g_hash_table_get_keys(windows); int result = get_next_available_win_num(keys); - ProfWin *new = win_create_plugin(tag); - g_hash_table_insert(windows, GINT_TO_POINTER(result), new); g_list_free(keys); - return new; + ProfWin *newwin = win_create_plugin(tag); + g_hash_table_insert(windows, GINT_TO_POINTER(result), newwin); + autocomplete_add(wins_ac, tag); + autocomplete_add(wins_close_ac, tag); + return newwin; } gboolean