[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