# HG changeset patch # User Mark Doliner # Date 1091416892 0 # Node ID bc2079a32fd906bd60def6a5bfd9350ed107ef56 # Parent 58625ebfe03a60858b8a442a9c44a82322f87313 [gaim-migrate @ 10488] I warmenhoved patch 996233 from Jon Oberheide. Thanks Jon! From his description: The main purpose of this patch is to set the focus of a conversation when it is created. Currently, the focus is set when the conversation is created from: - double-clicking a buddy on the buddy list - right-clicking a buddy and clicking "IM" This patch sets the focus additionally for the following circumstances: - clicking "Buddies -> New Instant Message" - clicking "IM" buddy list button committer: Tailor Script diff -r 58625ebfe03a -r bc2079a32fd9 ChangeLog --- a/ChangeLog Mon Aug 02 02:16:47 2004 +0000 +++ b/ChangeLog Mon Aug 02 03:21:32 2004 +0000 @@ -9,11 +9,33 @@ * gaim-remote can now manipulate status (István Váradi) * The text messages of Yahoo Audibles are now displayed, although the audio and graphics are not. + * Yahoo! away messages can be 255 characters long now Bug Fixes: * Use ISO date format for the system log (Eduardo Pérez) * Long buddy lists with irc should cause flooding disconnects less (Stu Tomlinson) + * Better smiley substitution + * Fix a crash related to auto-expanding contacts at the bottom of + buddy lists + * Fix a crash on Solaris when changing or viewing information for + your AIM account (Format Screen Name, Change Email Address, etc.) + * HTML in OSCAR buddy comments is now escaped (and not rendered) + * Fix a crash when dragging a screen name to a conversation window + for that screen name + * User-requested new conversation windows are now always given focus + * Pasting HTML into Gaim from certain sources no longer results in + the spaces between some words being removed + * The alias of a contact is now displayed in more places when the + alias of a buddy is not set + * .gaimrc is no longer imported + * Prevent a crash if you sign off and try to dequeue messages from + the away dialog (Kevin Stange) + * Prevent a possible crash if gaim_gtkconv_write_conv is called + with who as NULL (Kevin Stange) + * Prevent (null) or an empty string from being logged as the sender's + name if the sender no longer has an alias because the account is + signed off (Kevin Stange) version 0.80 (07/15/2004): New Features: diff -r 58625ebfe03a -r bc2079a32fd9 src/dialogs.c --- a/src/dialogs.c Mon Aug 02 02:16:47 2004 +0000 +++ b/src/dialogs.c Mon Aug 02 03:21:32 2004 +0000 @@ -411,22 +411,33 @@ return TRUE; } -static void -new_im_cb(gpointer data, GaimRequestFields *fields) +void +gaim_gtkdialogs_new_im(GaimAccount *account, const char *username) { - const char *username; - GaimAccount *account; GaimConversation *conv; - - username = gaim_request_fields_get_string(fields, "screenname"); - account = gaim_request_fields_get_account(fields, "account"); + GaimConvWindow *win; conv = gaim_find_conversation_with_account(username, account); if (conv == NULL) conv = gaim_conversation_new(GAIM_CONV_IM, account, username); - else - gaim_conv_window_raise(gaim_conversation_get_window(conv)); + + win = gaim_conversation_get_window(conv); + + gaim_conv_window_raise(win); + gaim_conv_window_switch_conversation(win, gaim_conversation_get_index(conv)); +} + +static void +new_im_cb(gpointer data, GaimRequestFields *fields) +{ + GaimAccount *account; + const char *username; + + account = gaim_request_fields_get_account(fields, "account"); + username = gaim_request_fields_get_string(fields, "screenname"); + + gaim_gtkdialogs_new_im(account, username); } void diff -r 58625ebfe03a -r bc2079a32fd9 src/gtkblist.c --- a/src/gtkblist.c Mon Aug 02 02:16:47 2004 +0000 +++ b/src/gtkblist.c Mon Aug 02 03:21:32 2004 +0000 @@ -512,20 +512,7 @@ static void gtk_blist_menu_im_cb(GtkWidget *w, GaimBuddy *b) { - GaimConversation *conv = gaim_conversation_new(GAIM_CONV_IM, b->account, - b->name); - - if(conv) { - GaimConvWindow *win = gaim_conversation_get_window(conv); - - gaim_conv_window_raise(win); - gaim_conv_window_switch_conversation( - gaim_conversation_get_window(conv), - gaim_conversation_get_index(conv)); - - if (GAIM_IS_GTK_WINDOW(win)) - gtk_window_present(GTK_WINDOW(GAIM_GTK_WINDOW(win)->window)); - } + gaim_gtkdialogs_new_im(b->account, b->name); } static void gtk_blist_menu_send_file_cb(GtkWidget *w, GaimBuddy *b) @@ -585,12 +572,12 @@ gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1); if (GAIM_BLIST_NODE_IS_BUDDY(node)) { - gaim_conversation_new(GAIM_CONV_IM, ((GaimBuddy*)node)->account, ((GaimBuddy*)node)->name); + gaim_gtkdialogs_new_im(((GaimBuddy*)node)->account, ((GaimBuddy*)node)->name); return; } else if(GAIM_BLIST_NODE_IS_CONTACT(node)) { GaimBuddy *buddy = gaim_contact_get_priority_buddy((GaimContact*)node); - gaim_conversation_new(GAIM_CONV_IM, buddy->account, buddy->name); + gaim_gtkdialogs_new_im(buddy->account, buddy->name); return; } } @@ -943,19 +930,7 @@ else buddy = (GaimBuddy*)node; - conv = gaim_conversation_new(GAIM_CONV_IM, buddy->account, buddy->name); - - if(conv) { - GaimConvWindow *win = gaim_conversation_get_window(conv); - - gaim_conv_window_raise(win); - gaim_conv_window_switch_conversation( - gaim_conversation_get_window(conv), - gaim_conversation_get_index(conv)); - - if (GAIM_IS_GTK_WINDOW(win)) - gtk_window_present(GTK_WINDOW(GAIM_GTK_WINDOW(win)->window)); - } + gaim_gtkdialogs_new_im(buddy->account, buddy->name); } else if (GAIM_BLIST_NODE_IS_CHAT(node)) { serv_join_chat(((GaimChat *)node)->account->gc, ((GaimChat *)node)->components); } else if (GAIM_BLIST_NODE_IS_GROUP(node)) { diff -r 58625ebfe03a -r bc2079a32fd9 src/gtkconv.c --- a/src/gtkconv.c Mon Aug 02 02:16:47 2004 +0000 +++ b/src/gtkconv.c Mon Aug 02 03:21:32 2004 +0000 @@ -4542,9 +4542,7 @@ { GaimGtkWindow *gtkwin = GAIM_GTK_WINDOW(win); - gtk_widget_show(gtkwin->window); - gtk_window_deiconify(GTK_WINDOW(gtkwin->window)); - gdk_window_raise(gtkwin->window->window); + gtk_window_present(GTK_WINDOW(gtkwin->window)); } static void diff -r 58625ebfe03a -r bc2079a32fd9 src/ui.h --- a/src/ui.h Mon Aug 02 02:16:47 2004 +0000 +++ b/src/ui.h Mon Aug 02 03:21:32 2004 +0000 @@ -118,6 +118,7 @@ extern void alias_dialog_contact(GaimContact *); extern void alias_dialog_blist_chat(GaimChat *); extern void show_warn_dialog(GaimConnection *, const char *); +extern void gaim_gtkdialogs_new_im(GaimAccount *, const char *); extern void show_im_dialog(); extern void show_info_dialog(); extern void show_log_dialog();