2005-09-15 [colin] 1.9.14cvs33
authorColin Leroy <colin@colino.net>
Thu, 15 Sep 2005 16:34:08 +0000 (16:34 +0000)
committerColin Leroy <colin@colino.net>
Thu, 15 Sep 2005 16:34:08 +0000 (16:34 +0000)
* src/addressbook.c
Fix bug where sometimes a group's email list is empty,
force its refresh (probably fixes "Re: how to create a
distribution list")
* src/ldapquery.c
Don't return to the callback in the main thread from the
fetch thread (or face segs!)

ChangeLog-gtk2.claws
PATCHSETS
configure.ac
src/addressbook.c
src/ldapquery.c

index 9f89be983ffa028a28bd317dc80832dc6d396895..1e2b65ef1c3d7d70d3ba729138311cdd366f2606 100644 (file)
@@ -1,3 +1,13 @@
+2005-09-15 [colin]     1.9.14cvs33
+
+       * src/addressbook.c
+               Fix bug where sometimes a group's email list is empty,
+               force its refresh (probably fixes "Re: how to create a 
+               distribution list")
+       * src/ldapquery.c
+               Don't return to the callback in the main thread from the
+               fetch thread (or face segs!)
+
 2005-09-15 [paul]      1.9.14cvs32
 
        * src/prefs_matcher.c
index 5a617f4fa9e3de66541ce6fb1ff39a7e35139bdb..fb51e3e3384fad3c1c5a9be3da418dbd2713a41d 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.382.2.169 -r 1.382.2.170 src/compose.c;  ) > 1.9.14cvs30.patchset
 ( cvs diff -u -r 1.60.2.21 -r 1.60.2.22 src/prefs_actions.c;  cvs diff -u -r 1.1.4.17 -r 1.1.4.18 src/prefs_filtering_action.c;  cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/prefs_quote.c;  cvs diff -u -r 1.8.2.2 -r 1.8.2.3 src/quote_fmt.c;  cvs diff -u -r 1.395.2.123 -r 1.395.2.124 src/summaryview.c;  cvs diff -u -r 1.5.2.11 -r 1.5.2.12 src/gtk/description_window.c;  cvs diff -u -r 1.1 -r 1.2 src/gtk/description_window.h;  cvs diff -u -r 1.1.2.20 -r 1.1.2.21 src/gtk/quicksearch.c;  ) > 1.9.14cvs31.patchset
 ( cvs diff -u -r 1.43.2.22 -r 1.43.2.23 src/prefs_matcher.c;  ) > 1.9.14cvs32.patchset
+( cvs diff -u -r 1.60.2.29 -r 1.60.2.30 src/addressbook.c;  cvs diff -u -r 1.3.2.3 -r 1.3.2.4 src/ldapquery.c;  ) > 1.9.14cvs33.patchset
index 756f0bc6f98c00af584de7210095dcca5b4f4398..a4cbde4c4f9684c881f3b8bd1793b5e4ea59604c 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=14
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=32
+EXTRA_VERSION=33
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index ae45cf5cfaac8f0c583c624141be00de326331e2..d9906c7ddf80539177122a96d4684b78b9b8985c 100644 (file)
@@ -1330,7 +1330,17 @@ static void addressbook_to_clicked(GtkButton *button, gpointer data)
                }
                else if( aio->type == ADDR_ITEM_GROUP ) {
                        ItemGroup *group = ( ItemGroup * ) aio;
+                       AddressDataSource *ds = NULL;
+                       AddressBookFile *abf = NULL;
                        GList *nodeMail = group->listEMail;
+                       if (nodeMail == NULL) {
+                               if(addrbook.treeSelected ) {
+                                       ds = addressbook_find_datasource( addrbook.treeSelected );
+                                       abf = ds->rawDataSource;
+                                       if( abf != NULL )
+                                               nodeMail = addrbook_get_available_email_list( abf, group );
+                               }
+                       }
                        while( nodeMail ) {
                                ItemEMail *email = nodeMail->data;
 
index 3afb70b93d4fe6003658c695e5bff4493fa63bf4..9baaa73687833ec39c9d8dd8fec153f98be80cec 100644 (file)
 static pthread_key_t _queryThreadKey_;
 static gboolean _queryThreadInit_ = FALSE;
 
+gboolean callbackend (gpointer data)
+{
+       LdapQuery *qry = (LdapQuery *)data;
+       qry->callBackEnd( qry, ADDRQUERY_ID(qry), ADDRQUERY_RETVAL(qry), qry->data );
+       return FALSE;
+}
+
+
 /**
  * Create new LDAP query object.
  * \return Initialized query object.
@@ -994,7 +1002,7 @@ gint ldapqry_search( LdapQuery *qry ) {
 
        /* Process callback */  
        if( qry->callBackEnd ) {
-               qry->callBackEnd( qry, ADDRQUERY_ID(qry), ADDRQUERY_RETVAL(qry), qry->data );
+               g_timeout_add(0, callbackend, qry);
        }
 
        return ADDRQUERY_RETVAL(qry);
@@ -1357,7 +1365,7 @@ gint ldapqry_perform_locate( LdapQuery *qry ) {
 
        /* Process callback */  
        if( qry->callBackEnd ) {
-               qry->callBackEnd( qry, ADDRQUERY_ID(qry), ADDRQUERY_RETVAL(qry), qry->data );
+               g_timeout_add(0, callbackend, qry);
        }
 
        return ADDRQUERY_RETVAL(qry);