about summary refs log tree commit diff stats
path: root/src/ui/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/window.c')
-rw-r--r--src/ui/window.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/ui/window.c b/src/ui/window.c
index 2ca5621c..83da1219 100644
--- a/src/ui/window.c
+++ b/src/ui/window.c
@@ -125,6 +125,7 @@ win_create_console(void)
 {
     ProfConsoleWin *new_win = malloc(sizeof(ProfConsoleWin));
     new_win->window.type = WIN_CONSOLE;
+    new_win->window.tab_name = strdup("console");
     new_win->window.layout = _win_create_split_layout();
 
     return &new_win->window;
@@ -135,6 +136,7 @@ win_create_chat(const char *const barejid)
 {
     ProfChatWin *new_win = malloc(sizeof(ProfChatWin));
     new_win->window.type = WIN_CHAT;
+    new_win->window.tab_name = strdup(barejid);
     new_win->window.layout = _win_create_simple_layout();
 
     new_win->barejid = strdup(barejid);
@@ -162,6 +164,7 @@ win_create_muc(const char *const roomjid)
     int cols = getmaxx(stdscr);
 
     new_win->window.type = WIN_MUC;
+    new_win->window.tab_name = strdup(roomjid);
 
     ProfLayoutSplit *layout = malloc(sizeof(ProfLayoutSplit));
     layout->base.type = LAYOUT_SPLIT;
@@ -207,6 +210,7 @@ win_create_muc_config(const char *const roomjid, DataForm *form)
 {
     ProfMucConfWin *new_win = malloc(sizeof(ProfMucConfWin));
     new_win->window.type = WIN_MUC_CONFIG;
+    new_win->window.tab_name = strdup(roomjid);
     new_win->window.layout = _win_create_simple_layout();
 
     new_win->roomjid = strdup(roomjid);
@@ -222,6 +226,7 @@ win_create_private(const char *const fulljid)
 {
     ProfPrivateWin *new_win = malloc(sizeof(ProfPrivateWin));
     new_win->window.type = WIN_PRIVATE;
+    new_win->window.tab_name = strdup(fulljid);
     new_win->window.layout = _win_create_simple_layout();
 
     new_win->fulljid = strdup(fulljid);
@@ -239,6 +244,7 @@ win_create_xmlconsole(void)
 {
     ProfXMLWin *new_win = malloc(sizeof(ProfXMLWin));
     new_win->window.type = WIN_XML;
+    new_win->window.tab_name = strdup("xmlconsole");
     new_win->window.layout = _win_create_simple_layout();
 
     new_win->memcheck = PROFXMLWIN_MEMCHECK;
@@ -250,15 +256,16 @@ ProfWin*
 win_create_plugin(const char *const plugin_name, const char *const tag)
 {
     ProfPluginWin *new_win = malloc(sizeof(ProfPluginWin));
-    new_win->super.type = WIN_PLUGIN;
-    new_win->super.layout = _win_create_simple_layout();
+    new_win->window.type = WIN_PLUGIN;
+    new_win->window.tab_name = strdup(plugin_name);
+    new_win->window.layout = _win_create_simple_layout();
 
     new_win->tag = strdup(tag);
     new_win->plugin_name = strdup(plugin_name);
 
     new_win->memcheck = PROFPLUGINWIN_MEMCHECK;
 
-    return &new_win->super;
+    return &new_win->window;
 }
 
 char*
@@ -416,6 +423,7 @@ win_show_subwin(ProfWin *window)
 void
 win_free(ProfWin* window)
 {
+    free(window->tab_name);
     if (window->layout->type == LAYOUT_SPLIT) {
         ProfLayoutSplit *layout = (ProfLayoutSplit*)window->layout;
         if (layout->subwin) {