Skip to content

Commit

Permalink
Fix deadlock when switching speaker screen on/off
Browse files Browse the repository at this point in the history
  • Loading branch information
djdeath committed Sep 13, 2015
1 parent 1529636 commit eb6b601
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions pp-clutter.c
Expand Up @@ -1310,9 +1310,8 @@ static void end_of_presentation (ClutterRenderer *renderer)
toggle_autoadvance (NULL, NULL, renderer);
}


static void
toggle_speaker_screen (ClutterRenderer *renderer)
static gboolean
toggle_speaker_screen_internal (ClutterRenderer *renderer)
{
if (!renderer->speaker_window)
clutter_renderer_init_speaker_screen (renderer);
Expand All @@ -1326,6 +1325,18 @@ toggle_speaker_screen (ClutterRenderer *renderer)
renderer->speaker_mode = TRUE;
gtk_widget_show_all (renderer->speaker_window);
}
return FALSE;
}

static void
toggle_speaker_screen (ClutterRenderer *renderer)
{
/* Because of the complex interaction between Clutter & GTK+, we
* need to break out the event processing chain. This timeout ensure
* we don't process an event in each framework within the same
* call stack.
*/
g_timeout_add (0, (GSourceFunc) toggle_speaker_screen_internal, renderer);
}

static void
Expand Down

0 comments on commit eb6b601

Please sign in to comment.