[Swfdec-commits] 3 commits - src/swfmoz_loader.c src/swfmoz_loader.h src/swfmoz_player.c src/swfmoz_player.h

Pekka Lampila medar at kemper.freedesktop.org
Sun Feb 17 07:14:45 PST 2008


 src/swfmoz_loader.c |   10 ++++++++++
 src/swfmoz_loader.h |    1 +
 src/swfmoz_player.c |   16 ++++++++++++----
 src/swfmoz_player.h |    1 +
 4 files changed, 24 insertions(+), 4 deletions(-)

New commits:
commit 2fdf6f4ddc2970a4dc1a3c80360776ce15a4e904
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Sun Feb 17 17:14:11 2008 +0200

    Fix problems when loader is closed before receiving new stream from Mozilla

diff --git a/src/swfmoz_loader.c b/src/swfmoz_loader.c
index bff8672..c520a9e 100644
--- a/src/swfmoz_loader.c
+++ b/src/swfmoz_loader.c
@@ -54,6 +54,7 @@ swfmoz_loader_load (SwfdecLoader *loader, SwfdecPlayer *player,
   SwfmozPlayer *mozplay = SWFMOZ_PLAYER (player);
   SwfmozLoader *moz = SWFMOZ_LOADER (loader);
 
+  moz->waiting_for_stream = TRUE;
   moz->instance = mozplay->instance;
   if (mozplay->initial) {
     swfmoz_loader_set_stream (moz, mozplay->initial);
@@ -78,6 +79,8 @@ swfmoz_loader_close (SwfdecStream *stream)
 {
   SwfmozLoader *moz = SWFMOZ_LOADER (stream);
 
+  moz->waiting_for_stream = FALSE;
+
   if (moz->stream)
     plugin_destroy_stream (moz->instance, moz->stream);
 }
@@ -108,6 +111,13 @@ swfmoz_loader_set_stream (SwfmozLoader *loader, NPStream *stream)
   g_return_if_fail (loader->stream == NULL);
   g_return_if_fail (stream != NULL);
 
+  if (!loader->waiting_for_stream) {
+    plugin_destroy_stream (loader->instance, stream);
+    return;
+  }
+
+  loader->waiting_for_stream = FALSE;
+
   g_printerr ("Loading stream: %s\n", stream->url);
   g_object_ref (loader);
   stream->pdata = loader;
diff --git a/src/swfmoz_loader.h b/src/swfmoz_loader.h
index 888188e..889e542 100644
--- a/src/swfmoz_loader.h
+++ b/src/swfmoz_loader.h
@@ -43,6 +43,7 @@ struct _SwfmozLoader
   NPP			instance;	/* instance we belong to */
   NPStream *		stream;		/* stream we do or NULL if not created yet */
 
+  gboolean		waiting_for_stream;
   char *		cache_file;	/* where the file is cached */
   gboolean		open;		/* TRUE when data has arrived */
 };
commit b92e9f1f7b6acfb79a0680226c7eadd1c3b86975
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Fri Feb 15 12:21:25 2008 +0200

    Missing \n in a debug message

diff --git a/src/swfmoz_player.c b/src/swfmoz_player.c
index 742d391..9f3a13b 100644
--- a/src/swfmoz_player.c
+++ b/src/swfmoz_player.c
@@ -482,7 +482,7 @@ swfmoz_player_set_initial_stream (SwfmozPlayer *player, NPStream *stream)
   player->initial = stream;
   url = swfdec_url_new (stream->url);
   if (url == NULL) {
-    g_printerr ("%s is either a broken URL or Swfdec can't parse it.",
+    g_printerr ("%s is either a broken URL or Swfdec can't parse it\n",
 	stream->url);
     return FALSE;
   }
commit 3f2fa6b135e778cf0ac6935678afb5c18ac6283a
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Fri Feb 15 02:26:01 2008 +0200

    Don't give Flash the mouse press/release that was used to hide the menu

diff --git a/src/swfmoz_player.c b/src/swfmoz_player.c
index 5f75d89..742d391 100644
--- a/src/swfmoz_player.c
+++ b/src/swfmoz_player.c
@@ -656,12 +656,15 @@ swfmoz_player_mouse_press (SwfmozPlayer *player, int x, int y, guint button)
 
   g_return_val_if_fail (SWFMOZ_IS_PLAYER (player), FALSE);
 
+  if (player->menu && GTK_WIDGET_VISIBLE (player->menu)) {
+    gtk_menu_popdown (GTK_MENU (player->menu));
+    player->no_release = button;
+    return TRUE;
+  }
+
   if (button > 32)
     return FALSE;
 
-  if (player->menu && GTK_WIDGET_VISIBLE (player->menu))
-    gtk_menu_popdown (GTK_MENU (player->menu));
-
   if (swfdec_gtk_player_get_playing (SWFDEC_GTK_PLAYER (player))) {
     plugin_push_allow_popups (player->instance, TRUE);
     ret = swfdec_player_mouse_press (SWFDEC_PLAYER (player), x, y, button);
@@ -677,6 +680,11 @@ swfmoz_player_mouse_release (SwfmozPlayer *player, int x, int y, guint button)
 
   g_return_val_if_fail (SWFMOZ_IS_PLAYER (player), FALSE);
 
+  if (button == player->no_release) {
+    player->no_release = 0;
+    return TRUE;
+  }
+
   if (button > 32)
     return FALSE;
 
diff --git a/src/swfmoz_player.h b/src/swfmoz_player.h
index e2d1374..4f3b0e1 100644
--- a/src/swfmoz_player.h
+++ b/src/swfmoz_player.h
@@ -63,6 +63,7 @@ struct _SwfmozPlayer {
   GdkRegion *		repaint;		/* area to repaint or NULL if none */
 
   /* Gtk stuff */
+  guint			no_release;		/* for disabling release event when closing right-click menu */
   GtkMenu *		menu;			/* right-click menu */
   GtkTreeModel *	loaders;		/* loaders used in this players */
 };


More information about the Swfdec-commits mailing list