changeset 23785:0bdff80233fb

merge of '87f91e5f4e7f627329c2b7edf56773f58696a8cf' and 'f1507f3c6fa748de84c1961d2b1182ce21308d77'
author Daniel Atallah <daniel.atallah@gmail.com>
date Thu, 14 Aug 2008 04:32:39 +0000
parents d9d388a27d01 (diff) 4a0bc0f535cf (current diff)
children 55f3660f60d2
files
diffstat 4 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/conversation.c	Wed Aug 13 19:38:25 2008 +0000
+++ b/libpurple/conversation.c	Thu Aug 14 04:32:39 2008 +0000
@@ -80,8 +80,6 @@
 		purple_conv_im_set_type_again(PURPLE_CONV_IM(conv), 1);
 
 		serv_send_typing(gc, name, PURPLE_TYPED);
-		purple_signal_emit(purple_conversations_get_handle(),
-						 "buddy-typed", conv->account, conv->name);
 
 		purple_debug(PURPLE_DEBUG_MISC, "conversation", "typed...\n");
 	}
--- a/libpurple/eventloop.h	Wed Aug 13 19:38:25 2008 +0000
+++ b/libpurple/eventloop.h	Thu Aug 14 04:32:39 2008 +0000
@@ -67,6 +67,10 @@
 	 *
 	 * Analogous to g_timeout_add in glib.
 	 *
+	 * Note: On Win32, this function may be called from a thread other than
+	 * the libpurple thread.  You should make sure to detect this situation
+	 * and to only call "function" from the libpurple thread.
+	 *
 	 * @param interval the interval in <em>milliseconds</em> between calls
 	 *                 to @a function.
 	 * @param data     arbitrary data to be passed to @a function at each
--- a/pidgin/gtkconv.c	Wed Aug 13 19:38:25 2008 +0000
+++ b/pidgin/gtkconv.c	Thu Aug 14 04:32:39 2008 +0000
@@ -6604,8 +6604,11 @@
 			update_typing_icon(gtkconv);
 
 		gtk_label_set_text(GTK_LABEL(gtkconv->menu_label), title);
-		if (pidgin_conv_window_is_active_conversation(conv))
-			gtk_window_set_title(GTK_WINDOW(win->window), title);
+		if (pidgin_conv_window_is_active_conversation(conv)) {
+			const char* current_title = gtk_window_get_title(GTK_WINDOW(win->window));
+			if (current_title == NULL || strcmp(current_title, title) != 0)
+				gtk_window_set_title(GTK_WINDOW(win->window), title);
+		}
 
 		g_free(title);
 	}
--- a/pidgin/win32/gtkwin32dep.c	Wed Aug 13 19:38:25 2008 +0000
+++ b/pidgin/win32/gtkwin32dep.c	Thu Aug 14 04:32:39 2008 +0000
@@ -319,8 +319,10 @@
 
 	winpidgin_window_flash(window, FALSE);
 
-	if ((handler_id = g_object_get_data(G_OBJECT(window), "flash_stop_handler_id")))
+	if ((handler_id = g_object_get_data(G_OBJECT(window), "flash_stop_handler_id"))) {
 		g_signal_handler_disconnect(G_OBJECT(window), (gulong) GPOINTER_TO_UINT(handler_id));
+		g_object_steal_data(G_OBJECT(window), "flash_stop_handler_id");
+	}
 
 	return FALSE;
 }
@@ -346,7 +348,10 @@
 		info.cbSize = sizeof(FLASHWINFO);
 		info.hwnd = GDK_WINDOW_HWND(gdkwin);
 		if (flash) {
+			DWORD flashCount;
 			info.uCount = 3;
+			if (SystemParametersInfo(SPI_GETFOREGROUNDFLASHCOUNT, 0, &flashCount, 0))
+				info.uCount = flashCount;
 			info.dwFlags = FLASHW_ALL | FLASHW_TIMER;
 		} else
 			info.dwFlags = FLASHW_STOP;