diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2003-05-30 11:01:47 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2003-05-30 11:01:47 +0800 |
commit | 4a67f45b4a68a3748f7be9811bf78897806f37ca (patch) | |
tree | bd2247ea2579eb3890ba4dd9a70209bb376dfb0e | |
parent | 0fe03707c1dc0fc9ca944688ca0ded20f4f092d2 (diff) | |
download | gsoc2013-evolution-4a67f45b4a68a3748f7be9811bf78897806f37ca.tar.gz gsoc2013-evolution-4a67f45b4a68a3748f7be9811bf78897806f37ca.tar.zst gsoc2013-evolution-4a67f45b4a68a3748f7be9811bf78897806f37ca.zip |
Fixes bug #43805.
2003-05-29 Jeffrey Stedfast <fejj@ximian.com>
Fixes bug #43805.
* mail-session.c (session_system_beep): Proxy the gdk_beep() call
to the main thread.
(session_play_sound): Proxy the gnome_sound_play() call to the
main thread.
svn path=/trunk/; revision=21348
-rw-r--r-- | mail/ChangeLog | 9 | ||||
-rw-r--r-- | mail/mail-session.c | 36 |
2 files changed, 40 insertions, 5 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 1f9bd7ce77..bf7324a27d 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,12 @@ +2003-05-29 Jeffrey Stedfast <fejj@ximian.com> + + Fixes bug #43805. + + * mail-session.c (session_system_beep): Proxy the gdk_beep() call + to the main thread. + (session_play_sound): Proxy the gnome_sound_play() call to the + main thread. + 2003-05-27 Not Zed <NotZed@Ximian.com> * message-tag-editor.c (message_tag_editor_init): set the default diff --git a/mail/mail-session.c b/mail/mail-session.c index 52bfba7497..081c6aa533 100644 --- a/mail/mail-session.c +++ b/mail/mail-session.c @@ -763,21 +763,47 @@ get_folder (CamelFilterDriver *d, const char *uri, void *data, CamelException *e return mail_tool_uri_to_folder (uri, 0, ex); } + static void -session_play_sound (CamelFilterDriver *driver, const char *filename, gpointer user_data) +main_play_sound (CamelFilterDriver *driver, const char *filename, gpointer user_data) { - if (!filename || !*filename) - gdk_beep (); - else + if (filename && *filename) gnome_sound_play (filename); + else + gdk_beep (); + + g_free (filename); + camel_object_unref (session); } static void -session_system_beep (CamelFilterDriver *driver, gpointer user_data) +session_play_sound (CamelFilterDriver *driver, const char *filename, gpointer user_data) +{ + MailSession *ms = (MailSession *) session; + + camel_object_ref (session); + + mail_async_event_emit (ms->async, MAIL_ASYNC_GUI, (MailAsyncFunc) main_play_sound, + driver, g_strdup (filename), user_data); +} + +static void +main_system_beep (CamelFilterDriver *driver, gpointer user_data) { gdk_beep (); } +static void +session_system_beep (CamelFilterDriver *driver, gpointer user_data) +{ + MailSession *ms = (MailSession *) session; + + camel_object_ref (session); + + mail_async_event_emit (ms->async, MAIL_ASYNC_GUI, (MailAsyncFunc) main_system_beep, + driver, user_data, NULL); +} + static CamelFilterDriver * main_get_filter_driver (CamelSession *session, const char *type, CamelException *ex) { |