static void gth_media_viewer_page_finalize (GObject *obj) { GthMediaViewerPage *self; self = GTH_MEDIA_VIEWER_PAGE (obj); if (self->priv->update_progress_id != 0) { g_source_remove (self->priv->update_progress_id); self->priv->update_progress_id = 0; } if (self->priv->update_volume_id != 0) { g_source_remove (self->priv->update_volume_id); self->priv->update_volume_id = 0; } if (self->priv->playbin != NULL) { save_volume (self); gst_element_set_state (self->priv->playbin, GST_STATE_NULL); gst_object_unref (GST_OBJECT (self->priv->playbin)); self->priv->playbin = NULL; } _g_object_unref (self->priv->icon); _g_object_unref (self->priv->file_data); if (self->priv->screensaver != NULL) { gth_screensaver_uninhibit (self->priv->screensaver); g_object_unref (self->priv->screensaver); } G_OBJECT_CLASS (gth_media_viewer_page_parent_class)->finalize (obj); }
static void gth_media_viewer_page_real_focus (GthViewerPage *base) { GtkWidget *widget; widget = GTH_MEDIA_VIEWER_PAGE (base)->priv->area; if (GTK_WIDGET_REALIZED (widget) && GTK_WIDGET_MAPPED (widget)) gtk_widget_grab_focus (widget); }
static void gth_media_viewer_page_real_focus (GthViewerPage *base) { GtkWidget *widget; widget = GTH_MEDIA_VIEWER_PAGE (base)->priv->area; if (gtk_widget_get_realized (widget) && gtk_widget_get_mapped (widget)) gtk_widget_grab_focus (widget); }
static void gth_media_viewer_page_real_update_info (GthViewerPage *base, GthFileData *file_data) { GthMediaViewerPage *self = GTH_MEDIA_VIEWER_PAGE (base); if (! _g_file_equal (self->priv->file_data->file, file_data->file)) return; _g_object_unref (self->priv->file_data); self->priv->file_data = gth_file_data_dup (file_data); }
static void gth_media_viewer_page_real_show (GthViewerPage *base) { GthMediaViewerPage *self = GTH_MEDIA_VIEWER_PAGE (base); self->priv->visible = TRUE; gth_viewer_page_focus (GTH_VIEWER_PAGE (self)); create_playbin (self); if (self->priv->file_data != NULL) { char *uri; uri = g_file_get_uri (self->priv->file_data->file); _gth_media_viewer_page_set_uri (self, uri, GST_STATE_PLAYING); g_free (uri); } }