diff options
Diffstat (limited to 'src/window_list.c')
-rw-r--r-- | src/window_list.c | 20 |
1 files changed, 17 insertions, 3 deletions
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 |