mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-22 13:48:09 +00:00
fix bugs on macosx, at exit
This commit is contained in:
parent
d0bf4b4b5a
commit
79e9ca783f
2 changed files with 18 additions and 9 deletions
25
gtk/main.c
25
gtk/main.c
|
|
@ -65,7 +65,6 @@ static gboolean iconified=FALSE;
|
|||
static gchar *workingdir=NULL;
|
||||
static char *progpath=NULL;
|
||||
gchar *linphone_logfile=NULL;
|
||||
static gboolean app_terminated=FALSE;
|
||||
|
||||
static GOptionEntry linphone_options[]={
|
||||
{
|
||||
|
|
@ -1383,11 +1382,25 @@ static void linphone_gtk_check_soundcards(){
|
|||
}
|
||||
}
|
||||
|
||||
static void linphone_gtk_quit(void){
|
||||
gdk_threads_leave();
|
||||
linphone_gtk_destroy_log_window();
|
||||
linphone_core_destroy(the_core);
|
||||
linphone_gtk_log_uninit();
|
||||
}
|
||||
|
||||
#ifdef HAVE_GTK_OSX
|
||||
/*
|
||||
This is not the correct way to implement block termination.
|
||||
The good way would be to call gtk_main_quit(), and return TRUE.
|
||||
Unfortunately this does not work, because if we return TRUE the NSApplication sometimes calls the CFRunLoop recursively, which prevents gtk_main() to exit.
|
||||
As a result the program cannot exit at all.
|
||||
As a workaround we do all the cleanup (unregistration and config save) within the handler.
|
||||
*/
|
||||
static gboolean on_block_termination(void){
|
||||
gtk_main_quit();
|
||||
g_message("Block termination returning %i",!app_terminated);
|
||||
return !app_terminated;
|
||||
linphone_gtk_quit();
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -1514,11 +1527,7 @@ int main(int argc, char *argv[]){
|
|||
linphone_gtk_check_for_new_version();
|
||||
|
||||
gtk_main();
|
||||
gdk_threads_leave();
|
||||
linphone_gtk_destroy_log_window();
|
||||
linphone_core_destroy(the_core);
|
||||
linphone_gtk_log_uninit();
|
||||
app_terminated=TRUE;
|
||||
linphone_gtk_quit();
|
||||
#ifndef HAVE_GTK_OSX
|
||||
/*workaround a bug on win32 that makes status icon still present in the systray even after program exit.*/
|
||||
gtk_status_icon_set_visible(icon,FALSE);
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 7c091db48e2ac5b785ced3964a386ec51f695a60
|
||||
Subproject commit 433c12a9e32a9f0d9e510a85b978ea65dd9bb408
|
||||
Loading…
Add table
Reference in a new issue