[Xfce4-commits] <parole:master> Hide control full screen popup when we switch from a desktop to another.

Ali Abdallah noreply at xfce.org
Thu Nov 19 11:20:04 CET 2009


Updating branch refs/heads/master
         to 4c15db9f735cd2e2cb98dea40fcf8a95c6eb7927 (commit)
       from b68b985cd49bb9e7baa04967b5a108b95a49831d (commit)

commit 4c15db9f735cd2e2cb98dea40fcf8a95c6eb7927
Author: Ali Abdallah <ali at ali-xfce.org>
Date:   Thu Nov 19 11:05:49 2009 +0100

    Hide control full screen popup when we switch from a desktop to another.

 gst/parole-gst.c       |   24 ++++++++++++------------
 gst/parole-gst.h       |    4 +++-
 parole/parole-player.c |   25 +++++++++++++++++++++++--
 3 files changed, 38 insertions(+), 15 deletions(-)

diff --git a/gst/parole-gst.c b/gst/parole-gst.c
index eb40029..5b15b0a 100644
--- a/gst/parole-gst.c
+++ b/gst/parole-gst.c
@@ -151,18 +151,6 @@ parole_gst_finalize (GObject *object)
     G_OBJECT_CLASS (parole_gst_parent_class)->finalize (object);
 }
 
-static void 
-parole_gst_set_cursor_visible (ParoleGst *gst, gboolean visible)
-{
-    if ( visible )
-    {
-	gst->priv->target == gst->priv->state ? gdk_window_set_cursor (GTK_WIDGET (gst)->window, NULL):
-						parole_window_busy_cursor (GTK_WIDGET (gst)->window);
-    }
-    else
-	parole_window_invisible_cursor (GTK_WIDGET (gst)->window);
-}
-
 static void
 parole_gst_set_window_cursor (GdkWindow *window, GdkCursor *cursor)
 {
@@ -2077,3 +2065,15 @@ gboolean parole_gst_get_is_xvimage_sink (ParoleGst *gst)
 {
     return gst->priv->xvimage_sink;
 }
+
+void 
+parole_gst_set_cursor_visible (ParoleGst *gst, gboolean visible)
+{
+    if ( visible )
+    {
+	gst->priv->target == gst->priv->state ? gdk_window_set_cursor (GTK_WIDGET (gst)->window, NULL):
+						parole_window_busy_cursor (GTK_WIDGET (gst)->window);
+    }
+    else
+	parole_window_invisible_cursor (GTK_WIDGET (gst)->window);
+}
diff --git a/gst/parole-gst.h b/gst/parole-gst.h
index d6e337a..4c38c83 100644
--- a/gst/parole-gst.h
+++ b/gst/parole-gst.h
@@ -150,7 +150,9 @@ gdouble			parole_gst_get_stream_position  (ParoleGst *gst);
 
 gboolean		parole_gst_get_is_xvimage_sink  (ParoleGst *gst);
 
-
+void 			parole_gst_set_cursor_visible 	(ParoleGst *gst, 
+							 gboolean visible);
+							 
 G_END_DECLS
 
 #endif /* __PAROLE_GST_H */
diff --git a/parole/parole-player.c b/parole/parole-player.c
index 975e71c..d1d7c83 100644
--- a/parole/parole-player.c
+++ b/parole/parole-player.c
@@ -1623,6 +1623,23 @@ parole_player_drag_data_received_cb (GtkWidget *widget,
 }
 
 static void
+parole_player_window_notify_is_active (ParolePlayer *player)
+{
+    if ( !player->priv->full_screen )
+	return;
+	
+    if (!gtk_window_is_active (GTK_WINDOW (player->priv->window)) )
+    {
+	gtk_widget_hide (player->priv->fs_window);
+	parole_gst_set_cursor_visible (PAROLE_GST (player->priv->gst), TRUE);
+    } 
+    else 
+    {
+	parole_gst_set_cursor_visible (PAROLE_GST (player->priv->gst), FALSE);
+    }
+} 
+
+static void
 parole_player_init (ParolePlayer *player)
 {
     GtkBuilder *builder;
@@ -1773,9 +1790,10 @@ parole_player_init (ParolePlayer *player)
 				    shuffle);
 	
     player->priv->fs_window = gtk_window_new (GTK_WINDOW_POPUP);
-    gtk_window_set_skip_pager_hint (GTK_WINDOW (player->priv->fs_window), TRUE);
-    gtk_window_set_skip_taskbar_hint (GTK_WINDOW (player->priv->fs_window), TRUE);
 
+    gtk_window_set_gravity (GTK_WINDOW (player->priv->fs_window), GDK_GRAVITY_SOUTH_WEST);
+    gtk_window_set_position (GTK_WINDOW (player->priv->fs_window), GTK_WIN_POS_NONE);
+  
     parole_gst_set_default_aspect_ratio (player, builder);
 	
     gtk_builder_connect_signals (builder, player);
@@ -1792,6 +1810,9 @@ parole_player_init (ParolePlayer *player)
 		      G_CALLBACK (parole_player_button_pressed_cb), player);
 #endif
     
+    g_signal_connect_swapped (player->priv->window, "notify::is-active",
+			      G_CALLBACK (parole_player_window_notify_is_active), player);
+    
     parole_player_dbus_init (player);
 }
 



More information about the Xfce4-commits mailing list