[Xfce4-commits] <parole:master> Entre leave fullscreen on double click on the browser plugin.

Ali Abdallah noreply at xfce.org
Sat Nov 21 14:34:05 CET 2009


Updating branch refs/heads/master
         to d12a4c10a7703bae4a08c1181b9eb98409b069db (commit)
       from 57bcece4f0389963d6d8e91983017adfcf497c57 (commit)

commit d12a4c10a7703bae4a08c1181b9eb98409b069db
Author: Ali Abdallah <ali at ali-xfce.org>
Date:   Sat Nov 21 14:21:56 2009 +0100

    Entre leave fullscreen on double click on the browser plugin.

 browser-plugin/media-plugin/parole-plugin-player.c |   38 +++++++++++++++++---
 browser-plugin/plugin.cpp                          |    4 ++
 2 files changed, 37 insertions(+), 5 deletions(-)

diff --git a/browser-plugin/media-plugin/parole-plugin-player.c b/browser-plugin/media-plugin/parole-plugin-player.c
index fc6067f..cc1a120 100644
--- a/browser-plugin/media-plugin/parole-plugin-player.c
+++ b/browser-plugin/media-plugin/parole-plugin-player.c
@@ -461,6 +461,20 @@ parole_plugin_player_window_key_press_cb (GtkWidget *widget, GdkEventKey *ev, Pa
     return ret_val;
 }
 
+static gboolean
+parole_plugin_player_gst_widget_button_press (GtkWidget *widget, GdkEventButton *ev, ParolePluginPlayer *player)
+{
+    gboolean ret_val = FALSE;
+
+    if ( ev->type == GDK_2BUTTON_PRESS )
+    {
+	parole_plugin_player_fullscreen_clicked_cb (player);
+	ret_val = TRUE;
+    }
+
+    return ret_val;
+}
+
 static void
 parole_plugin_player_construct (GObject *object)
 {
@@ -495,6 +509,9 @@ parole_plugin_player_construct (GObject *object)
     g_signal_connect_after (G_OBJECT (player->priv->gst), "button-release-event",
 			    G_CALLBACK (parole_plugin_player_gst_widget_button_release), player);
 
+    g_signal_connect_after (G_OBJECT (player->priv->gst), "button-press-event",
+			    G_CALLBACK (parole_plugin_player_gst_widget_button_press), player);
+
     g_signal_connect (G_OBJECT (player->priv->gst), "error",
 		      G_CALLBACK (parole_plugin_player_error_cb), player);
 
@@ -577,6 +594,7 @@ parole_plugin_player_construct (GObject *object)
 			      0., 1., 1., 0., 0.);
     player->priv->volume = g_object_new (GTK_TYPE_VOLUME_BUTTON,
 					 "adjustment", adj,
+					 "size", GTK_ICON_SIZE_MENU,
 					 NULL);
     gtk_adjustment_set_value (GTK_ADJUSTMENT (adj), (gdouble) (read_entry_int ("volume", 100)/100.) );
     gtk_box_pack_start (GTK_BOX (hbox), player->priv->volume, 
@@ -719,6 +737,20 @@ parole_plugin_player_finalize (GObject *object)
     G_OBJECT_CLASS (parole_plugin_player_parent_class)->finalize (object);
 }
 
+static gboolean
+parole_plugin_player_quit_idl (gpointer data)
+{
+    ParolePluginPlayer *player;
+    
+    player = PAROLE_PLUGIN_PLAYER (data);
+    
+    player->priv->terminate = TRUE;
+    parole_gst_terminate (player->priv->gst);
+    gtk_main_quit ();
+    
+    return FALSE;
+}
+
 ParolePluginPlayer *
 parole_plugin_player_new (GtkWidget *plug, gchar *url)
 {
@@ -782,11 +814,7 @@ parole_plugin_player_dbus_quit (ParolePluginPlayer *player,
 				GError **error)
 {
     g_debug ("Quit message received");
-    
-    player->priv->terminate = TRUE;
-    parole_gst_terminate (player->priv->gst);
-    gtk_main_quit ();
-    
+    g_idle_add ((GSourceFunc) parole_plugin_player_quit_idl, player);
     return TRUE;
 }
 
diff --git a/browser-plugin/plugin.cpp b/browser-plugin/plugin.cpp
index 8623ad1..2dfae67 100644
--- a/browser-plugin/plugin.cpp
+++ b/browser-plugin/plugin.cpp
@@ -254,5 +254,9 @@ NPError CPlugin::NewStream(NPMIMEType type, NPStream * stream, NPBool seekable,
 
 NPError CPlugin::DestroyStream(NPStream * stream, NPError reason)
 {
+    g_debug ("Destroy stream %s reason %i ", stream->url, reason);
+    
+    shut ();
+    
     return NPERR_NO_ERROR;
 }



More information about the Xfce4-commits mailing list