static void xplayer_screensaver_update_from_state (XplayerObject *xplayer, XplayerScreensaverPlugin *pi) { gboolean lock_screensaver_on_audio, has_video_frames; BaconVideoWidget *bvw; bvw = BACON_VIDEO_WIDGET (xplayer_get_video_widget ((Xplayer *)(xplayer))); lock_screensaver_on_audio = g_settings_get_boolean (pi->priv->settings, "lock-screensaver-on-audio"); has_video_frames = has_video (bvw); if ((xplayer_is_playing (xplayer) != FALSE && has_video_frames) || (xplayer_is_playing (xplayer) != FALSE && !lock_screensaver_on_audio)) { if (pi->priv->inhibit_cookie == 0) { GtkWindow *window; window = xplayer_get_main_window (xplayer); pi->priv->inhibit_cookie = gtk_application_inhibit (GTK_APPLICATION (xplayer), window, GTK_APPLICATION_INHIBIT_IDLE, _("Playing a movie")); g_object_unref (window); } } else { if (pi->priv->inhibit_cookie != 0) { gtk_application_uninhibit (GTK_APPLICATION (pi->priv->xplayer), pi->priv->inhibit_cookie); pi->priv->inhibit_cookie = 0; } } }
static void update_from_state (XplayerOntopPluginPrivate *priv) { GValue has_video = { 0, }; bacon_video_widget_get_metadata (priv->bvw, BVW_INFO_HAS_VIDEO, &has_video); gtk_window_set_keep_above (priv->window, (xplayer_is_playing (priv->xplayer) != FALSE && g_value_get_boolean (&has_video) != FALSE)); g_value_unset (&has_video); }
static void impl_activate (PeasActivatable *plugin) { XplayerDiscRecorderPlugin *pi = XPLAYER_DISC_RECORDER_PLUGIN (plugin); XplayerDiscRecorderPluginPrivate *priv = pi->priv; GtkUIManager *uimanager = NULL; GtkAction *action; char *path; /* make sure brasero is in the path */ path = g_find_program_in_path ("brasero"); if (!path) return; g_free (path); //FIXME this shouldn't be necessary #if 0 /* Set up to use brasero icons */ path = g_build_path (G_DIR_SEPARATOR_S, LIBBRASERO_MEDIA_INSTALL, "/share/brasero/icons", NULL); gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), path); g_free (path); #endif priv->xplayer = g_object_get_data (G_OBJECT (plugin), "object"); g_signal_connect (priv->xplayer, "file-opened", G_CALLBACK (xplayer_disc_recorder_file_opened), plugin); g_signal_connect (priv->xplayer, "file-closed", G_CALLBACK (xplayer_disc_recorder_file_closed), plugin); /* add UI */ priv->action_group = gtk_action_group_new ("DiscRecorderActions"); gtk_action_group_set_translation_domain (priv->action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (priv->action_group, xplayer_disc_recorder_plugin_actions, G_N_ELEMENTS (xplayer_disc_recorder_plugin_actions), pi); uimanager = xplayer_get_ui_manager (priv->xplayer); gtk_ui_manager_insert_action_group (uimanager, priv->action_group, -1); g_object_unref (priv->action_group); priv->ui_merge_id = gtk_ui_manager_new_merge_id (uimanager); gtk_ui_manager_add_ui (uimanager, priv->ui_merge_id, "/ui/tmw-menubar/movie/burn-placeholder", "VideoBurnToDisc", "VideoBurnToDisc", GTK_UI_MANAGER_MENUITEM, TRUE); gtk_ui_manager_add_ui (uimanager, priv->ui_merge_id, "/ui/tmw-menubar/movie/burn-placeholder", "VideoDVDCopy", "VideoDVDCopy", GTK_UI_MANAGER_MENUITEM, TRUE); gtk_ui_manager_add_ui (uimanager, priv->ui_merge_id, "/ui/tmw-menubar/movie/burn-placeholder", "VideoVCDCopy", "VideoVCDCopy", GTK_UI_MANAGER_MENUITEM, TRUE); if (!xplayer_is_paused (priv->xplayer) && !xplayer_is_playing (priv->xplayer)) { action = gtk_action_group_get_action (priv->action_group, "VideoBurnToDisc"); gtk_action_set_visible (action, FALSE); action = gtk_action_group_get_action (priv->action_group, "VideoDVDCopy"); gtk_action_set_visible (action, FALSE); action = gtk_action_group_get_action (priv->action_group, "VideoVCDCopy"); gtk_action_set_visible (action, FALSE); } else { char *mrl; mrl = xplayer_get_current_mrl (priv->xplayer); xplayer_disc_recorder_file_opened (priv->xplayer, mrl, pi); g_free (mrl); } }