info = g_slice_new (OpenAddressbookSyncInfo);
info->mainloop = g_main_loop_new (NULL, FALSE);
+ info->retval = FALSE;
if (e_book_async_open (book, FALSE, book_open_sync_cb, info) == E_BOOK_ERROR_OK) {
GDK_THREADS_LEAVE ();
g_main_loop_run (info->mainloop);
GDK_THREADS_ENTER ();
}
- info->retval = FALSE;
retval = info->retval;
g_main_loop_unref (info->mainloop);
g_slice_free (OpenAddressbookSyncInfo, info);
}
+typedef struct _GetContactsInfo {
+ GMainLoop *mainloop;
+ GList *result;
+} GetContactsInfo;
+
+static void
+get_contacts_for_name_cb (EBook *book,
+ EBookStatus status,
+ GList *list,
+ gpointer userdata)
+{
+ GetContactsInfo *info = (GetContactsInfo *) userdata;
+
+ if (status == E_BOOK_ERROR_OK)
+ info->result = list;
+
+ g_main_loop_quit (info->mainloop);
+}
+
static GList *
get_contacts_for_name (const gchar *name)
{
EBookQuery *full_name_book_query = NULL;
GList *result;
gchar *unquoted;
+ GetContactsInfo *info;
if (name == NULL)
return NULL;
g_free (unquoted);
/* TODO: Make it launch a mainloop */
- e_book_get_contacts (book, full_name_book_query, &result, NULL);
+ info = g_slice_new (GetContactsInfo);
+ info->mainloop = g_main_loop_new (NULL, FALSE);
+ info->result = NULL;
+ if (e_book_async_get_contacts (book, full_name_book_query, get_contacts_for_name_cb, info) == 0) {
+ GDK_THREADS_LEAVE ();
+ g_main_loop_run (info->mainloop);
+ GDK_THREADS_ENTER ();
+ }
+ result = info->result;
e_book_query_unref (full_name_book_query);
+ g_main_loop_unref (info->mainloop);
+ g_slice_free (GetContactsInfo, info);
return result;
}
return FALSE;
}
+ g_object_ref (window);
if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->to_field), add_to_addressbook)) {
modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->to_field));
+ g_object_unref (window);
return FALSE;
}
if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->cc_field), add_to_addressbook)) {
modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->cc_field));
+ g_object_unref (window);
return FALSE;
}
if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->bcc_field), add_to_addressbook)) {
modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->bcc_field));
+ g_object_unref (window);
return FALSE;
}
if (!modest_recpt_editor_has_focus (MODEST_RECPT_EDITOR (priv->cc_field)) &&
!modest_recpt_editor_has_focus (MODEST_RECPT_EDITOR (priv->bcc_field)))
modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->to_field));
+ g_object_unref (window);
return TRUE;
g_return_if_fail (MODEST_IS_RECPT_EDITOR (recpt_editor));
priv = MODEST_RECPT_EDITOR_GET_PRIVATE (recpt_editor);
- if (GTK_WIDGET_DRAWABLE (recpt_editor)) {
+ if (GTK_WIDGET_VISIBLE (recpt_editor)) {
gtk_widget_grab_focus (priv->text_view);
}
}
g_return_val_if_fail (MODEST_IS_RECPT_EDITOR (recpt_editor), FALSE);
priv = MODEST_RECPT_EDITOR_GET_PRIVATE (recpt_editor);
- return GTK_WIDGET_DRAWABLE (priv->text_view) &&
+ return GTK_WIDGET_VISIBLE (priv->text_view) &&
gtk_widget_is_focus (priv->text_view);
}