[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