changeset 9640:bc2079a32fd9

[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 <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Mon, 02 Aug 2004 03:21:32 +0000
parents 58625ebfe03a
children 9981fcce85c1
files ChangeLog src/dialogs.c src/gtkblist.c src/gtkconv.c src/ui.h
diffstat 5 files changed, 48 insertions(+), 41 deletions(-) [+]
line wrap: on
line diff
--- 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:
--- 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
--- 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)) {
--- 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
--- 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();