[gthumb/ext: 14/18] fixed video area redraw
- From: Paolo Bacchilega <paobac src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gthumb/ext: 14/18] fixed video area redraw
- Date: Fri, 6 Nov 2009 00:16:47 +0000 (UTC)
commit 153b1b78b15a2be8e6ee03de3f1f6e105cb69a37
Author: Paolo Bacchilega <paobac src gnome org>
Date: Thu Nov 5 10:51:11 2009 +0100
fixed video area redraw
extensions/gstreamer/gth-media-viewer-page.c | 52 +++++++++----------------
1 files changed, 19 insertions(+), 33 deletions(-)
---
diff --git a/extensions/gstreamer/gth-media-viewer-page.c b/extensions/gstreamer/gth-media-viewer-page.c
index a8e573a..0b85f68 100644
--- a/extensions/gstreamer/gth-media-viewer-page.c
+++ b/extensions/gstreamer/gth-media-viewer-page.c
@@ -45,7 +45,6 @@ struct _GthMediaViewerPagePrivate {
GtkBuilder *builder;
GtkWidget *area;
GtkWidget *area_box;
- gboolean video_area_dirty;
gboolean playing;
gdouble last_volume;
gint64 duration;
@@ -53,6 +52,7 @@ struct _GthMediaViewerPagePrivate {
gdouble rate;
GtkWidget *mediabar;
GtkWidget *fullscreen_toolbar;
+ gboolean video_present;
};
@@ -121,28 +121,17 @@ static GtkActionEntry media_viewer_action_entries[] = {
static gboolean
-video_area_configure_event_cb (GtkWidget *widget,
- GdkEventConfigure *event,
- gpointer user_data)
-{
- GthMediaViewerPage *self = user_data;
-
- self->priv->video_area_dirty = TRUE;
- return FALSE;
-}
-
-
-static gboolean
video_area_expose_event_cb (GtkWidget *widget,
GdkEventExpose *event,
gpointer user_data)
{
GthMediaViewerPage *self = user_data;
- if (! self->priv->video_area_dirty)
+ if (event->count > 0)
return FALSE;
- self->priv->video_area_dirty = FALSE;
+ if (self->priv->video_present)
+ return FALSE;
gdk_draw_rectangle (gtk_widget_get_window (widget),
widget->style->black_gc,
@@ -152,7 +141,7 @@ video_area_expose_event_cb (GtkWidget *widget,
event->area.width,
event->area.height);
- return TRUE;
+ return FALSE;
}
@@ -450,22 +439,18 @@ gth_media_viewer_page_real_activate (GthViewerPage *base,
gtk_widget_show (self->priv->area);
gtk_box_pack_start (GTK_BOX (self->priv->area_box), self->priv->area, TRUE, TRUE, 0);
- g_signal_connect_after (G_OBJECT (self->priv->area),
- "configure_event",
- G_CALLBACK (video_area_configure_event_cb),
- self);
- g_signal_connect_after (G_OBJECT (self->priv->area),
- "expose_event",
- G_CALLBACK (video_area_expose_event_cb),
- self);
- g_signal_connect_after (G_OBJECT (self->priv->area),
- "button_press_event",
- G_CALLBACK (video_area_button_press_cb),
- self);
- g_signal_connect_after (G_OBJECT (self->priv->area),
- "scroll_event",
- G_CALLBACK (video_area_scroll_event_cb),
- self);
+ g_signal_connect (G_OBJECT (self->priv->area),
+ "expose_event",
+ G_CALLBACK (video_area_expose_event_cb),
+ self);
+ g_signal_connect (G_OBJECT (self->priv->area),
+ "button_press_event",
+ G_CALLBACK (video_area_button_press_cb),
+ self);
+ g_signal_connect (G_OBJECT (self->priv->area),
+ "scroll_event",
+ G_CALLBACK (video_area_scroll_event_cb),
+ self);
g_signal_connect (G_OBJECT (self->priv->area),
"key_press_event",
G_CALLBACK (video_area_key_press_cb),
@@ -539,6 +524,7 @@ set_playbin_window (GstBus *bus,
image_sink = GST_X_OVERLAY (GST_MESSAGE_SRC (message));
gst_x_overlay_set_xwindow_id (image_sink, GDK_WINDOW_XID (gtk_widget_get_window (self->priv->area)));
g_object_set (image_sink, "force-aspect-ratio", TRUE, NULL);
+ self->priv->video_present = TRUE;
gst_message_unref (message);
@@ -924,7 +910,7 @@ gth_media_viewer_page_instance_init (GthMediaViewerPage *self)
{
self->priv = GTH_MEDIA_VIEWER_PAGE_GET_PRIVATE (self);
self->priv->update_progress_id = 0;
- self->priv->video_area_dirty = TRUE;
+ self->priv->video_present = FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]