diff libpurple/connection.c @ 30165:378cceb9131d

Add an autojoin connection signal UIs should use this so plugins can delay autojoining by blocking this signal and re-emitting it later. For example, IRC Helper now delays autojoins until after it has identified with NickServ/AuthServ/etc.
author Richard Laager <rlaager@wiktel.com>
date Sun, 18 Apr 2010 22:39:01 +0000
parents dab0d17dc6c1
children 1c20a2115ad4
line wrap: on
line diff
--- a/libpurple/connection.c	Sat Apr 17 22:22:52 2010 +0000
+++ b/libpurple/connection.c	Sun Apr 18 22:39:01 2010 +0000
@@ -372,6 +372,7 @@
 		purple_blist_add_account(account);
 
 		purple_signal_emit(purple_connections_get_handle(), "signed-on", gc);
+		purple_signal_emit_return_1(purple_connections_get_handle(), "autojoin", gc);
 
 		serv_set_permit_deny(gc);
 
@@ -715,6 +716,11 @@
 	                       purple_value_new(PURPLE_TYPE_ENUM),
 	                       purple_value_new(PURPLE_TYPE_STRING));
 
+	purple_signal_register(handle, "autojoin",
+	                       purple_marshal_BOOLEAN__POINTER, NULL, 1,
+	                       purple_value_new(PURPLE_TYPE_SUBTYPE,
+	                                        PURPLE_SUBTYPE_CONNECTION));
+
 }
 
 void