# HG changeset patch # User Sadrul Habib Chowdhury # Date 1162093395 0 # Node ID d478f3853671663c43e00e0d93aa03b1a292e99e # Parent c7651586e27b24f6974bc13dbeb7813a7ab12c0b [gaim-migrate @ 17616] Fix bug #1582629. The terminal should now always go back to normal state after quitting from gaim-text. committer: Tailor Script diff -r c7651586e27b -r d478f3853671 console/gntblist.c --- a/console/gntblist.c Sun Oct 29 01:32:04 2006 +0000 +++ b/console/gntblist.c Sun Oct 29 03:43:15 2006 +0000 @@ -101,6 +101,7 @@ static void remove_peripherals(GGBlist *ggblist); static const char * get_display_name(GaimBlistNode *node); static void savedstatus_changed(GaimSavedStatus *now, GaimSavedStatus *old); +static void blist_show(GaimBuddyList *list); /* Sort functions */ static int blist_node_compare_text(GaimBlistNode *n1, GaimBlistNode *n2); @@ -228,6 +229,11 @@ static void new_list(GaimBuddyList *list) { + if (ggblist) + return; + + ggblist = g_new0(GGBlist, 1); + list->ui_data = ggblist; } static void @@ -398,7 +404,7 @@ { new_list, new_node, - NULL, + blist_show, node_update, node_remove, NULL, @@ -1470,8 +1476,6 @@ gaim_prefs_add_bool(PREF_ROOT "/showoffline", FALSE); gaim_prefs_add_string(PREF_ROOT "/sort_type", "text"); - gg_blist_show(); - gaim_prefs_connect_callback(gg_blist_get_handle(), PREF_ROOT "/showoffline", redraw_blist, NULL); gaim_prefs_connect_callback(gg_blist_get_handle(), @@ -1851,12 +1855,16 @@ void gg_blist_show() { - if (ggblist) - return; + blist_show(gaim_get_blist()); +} - ggblist = g_new0(GGBlist, 1); - - gaim_get_blist()->ui_data = ggblist; +static void +blist_show(GaimBuddyList *list) +{ + if (ggblist == NULL) + new_list(list); + else if (ggblist->window) + return; ggblist->window = gnt_vwindow_new(FALSE); gnt_widget_set_name(ggblist->window, "buddylist"); diff -r c7651586e27b -r d478f3853671 console/gntgaim.c --- a/console/gntgaim.c Sun Oct 29 01:32:04 2006 +0000 +++ b/console/gntgaim.c Sun Oct 29 03:43:15 2006 +0000 @@ -57,8 +57,8 @@ { gg_prefs_init, debug_init, - NULL, /*gaim_gtk_ui_init,*/ - NULL, /*gaim_gtk_quit*/ + gnt_ui_init, + gnt_ui_uninit }; static GaimCoreUiOps * @@ -332,8 +332,9 @@ if (!init_libgaim(argc, argv)) return 0; - /* Initialize and run the UI */ - init_gnt_ui(); + gaim_blist_show(); + gnt_main(); + #ifdef STANDALONE gaim_core_quit(); #endif diff -r c7651586e27b -r d478f3853671 console/gntui.c --- a/console/gntui.c Sun Oct 29 01:32:04 2006 +0000 +++ b/console/gntui.c Sun Oct 29 03:43:15 2006 +0000 @@ -36,7 +36,7 @@ #include -void init_gnt_ui() +void gnt_ui_init() { #ifdef STANDALONE gnt_init(); @@ -77,9 +77,10 @@ #ifdef STANDALONE gg_plugins_save_loaded(); +} - gnt_main(); - +void gnt_ui_uninit() +{ gaim_accounts_set_ui_ops(NULL); gg_accounts_uninit(); diff -r c7651586e27b -r d478f3853671 console/gntui.h --- a/console/gntui.h Sun Oct 29 01:32:04 2006 +0000 +++ b/console/gntui.h Sun Oct 29 03:43:15 2006 +0000 @@ -24,6 +24,7 @@ #include "gnt.h" -void init_gnt_ui(void); +void gnt_ui_init(void); +void gnt_ui_uninit(void); #endif diff -r c7651586e27b -r d478f3853671 console/libgnt/gntwidget.c --- a/console/libgnt/gntwidget.c Sun Oct 29 01:32:04 2006 +0000 +++ b/console/libgnt/gntwidget.c Sun Oct 29 03:43:15 2006 +0000 @@ -581,6 +581,10 @@ width--; height--; } + if (width <= 0) + width = widget->priv.width; + if (height <= 0) + height = widget->priv.height; if (GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_MAPPED)) { diff -r c7651586e27b -r d478f3853671 console/libgnt/wms/s.c --- a/console/libgnt/wms/s.c Sun Oct 29 01:32:04 2006 +0000 +++ b/console/libgnt/wms/s.c Sun Oct 29 03:43:15 2006 +0000 @@ -76,7 +76,7 @@ gnt_widget_set_position(win, x, y); mvwin(win->window, y, x); - gnt_widget_set_size(win, w, h); + gnt_widget_set_size(win, -1, h); gnt_widget_draw(win); envelope_buddylist(win); } else if (name && strcmp(name, "conversation-window") == 0) {