summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2007-09-19 13:55:52 +0000
committerBastien Nocera <hadess@src.gnome.org>2007-09-19 13:55:52 +0000
commit99f11af30e6e689659d54cbd23538f7769c1cb70 (patch)
tree417fc6a6cf510cda4274a0939780797a04918cb6
parent584e1199567a1356cb541a1f217f65aae2f5b270 (diff)
downloadtotem-99f11af30e6e689659d54cbd23538f7769c1cb70.tar.gz
Only show the popup on motion notifies if the window is active, show the
2007-09-19 Bastien Nocera <hadess@hadess.net> * src/totem-fullscreen.c: (totem_fullscreen_set_cursor), (totem_fullscreen_motion_notify), (totem_fullscreen_parent_window_notify), (totem_fullscreen_new): Only show the popup on motion notifies if the window is active, show the cursor on the video window when it's not active, or when it becomes active, includes patch from bug #439269 (Closes: #471381) svn path=/branches/gnome-2-20/; revision=4723
-rw-r--r--ChangeLog9
-rw-r--r--src/totem-fullscreen.c25
2 files changed, 30 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 8f327990b..d31b8aa11 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2007-09-19 Bastien Nocera <hadess@hadess.net>
+ * src/totem-fullscreen.c: (totem_fullscreen_set_cursor),
+ (totem_fullscreen_motion_notify),
+ (totem_fullscreen_parent_window_notify), (totem_fullscreen_new):
+ Only show the popup on motion notifies if the window is active, show
+ the cursor on the video window when it's not active, or when it becomes
+ active, includes patch from bug #439269 (Closes: #471381)
+
+2007-09-19 Bastien Nocera <hadess@hadess.net>
+
* data/fullscreen.ui:
* src/totem-fullscreen.c: (totem_fullscreen_popup_timeout_add),
(totem_fullscreen_is_volume_popup_visible),
diff --git a/src/totem-fullscreen.c b/src/totem-fullscreen.c
index cc2fcfc88..d8cb5c551 100644
--- a/src/totem-fullscreen.c
+++ b/src/totem-fullscreen.c
@@ -198,7 +198,8 @@ totem_fullscreen_popup_timeout_remove (TotemFullscreen *fs)
static void
totem_fullscreen_set_cursor (TotemFullscreen *fs, gboolean state)
{
- bacon_video_widget_set_show_cursor (fs->priv->bvw, state);
+ if (fs->priv->bvw != NULL)
+ bacon_video_widget_set_show_cursor (fs->priv->bvw, state);
}
static gboolean
@@ -244,7 +245,7 @@ gboolean
totem_fullscreen_motion_notify (GtkWidget *widget, GdkEventMotion *event,
TotemFullscreen *fs)
{
- GtkWidget * item;
+ GtkWidget *item;
if (totem_fullscreen_is_fullscreen (fs) == FALSE)
return FALSE;
@@ -252,6 +253,9 @@ totem_fullscreen_motion_notify (GtkWidget *widget, GdkEventMotion *event,
if (fs->priv->popup_in_progress != FALSE)
return FALSE;
+ if (gtk_window_is_active (GTK_WINDOW (fs->priv->parent_window)) == FALSE)
+ return FALSE;
+
fs->priv->popup_in_progress = TRUE;
totem_fullscreen_popup_timeout_remove (fs);
@@ -291,6 +295,19 @@ totem_fullscreen_set_fullscreen (TotemFullscreen *fs,
fs->is_fullscreen = fullscreen;
}
+static void
+totem_fullscreen_parent_window_notify (GtkWidget *parent_window,
+ GParamSpec *property,
+ TotemFullscreen *fs)
+{
+ if (parent_window == fs->priv->parent_window &&
+ gtk_window_is_active (GTK_WINDOW (parent_window)) == FALSE) {
+ totem_fullscreen_force_popup_hide (fs);
+ totem_fullscreen_set_cursor (fs, TRUE);
+ } else {
+ totem_fullscreen_set_cursor (fs, FALSE);
+ }
+}
TotemFullscreen *
totem_fullscreen_new (GtkWindow *toplevel_window)
@@ -323,8 +340,8 @@ totem_fullscreen_new (GtkWindow *toplevel_window)
G_CALLBACK (totem_fullscreen_window_realize_cb), fs);
g_signal_connect (fs->priv->parent_window, "unrealize",
G_CALLBACK (totem_fullscreen_window_unrealize_cb), fs);
- g_signal_connect_swapped (G_OBJECT (fs->priv->parent_window), "notify::is-active",
- G_CALLBACK (totem_fullscreen_popup_hide), fs);
+ g_signal_connect (G_OBJECT (fs->priv->parent_window), "notify::is-active",
+ G_CALLBACK (totem_fullscreen_parent_window_notify), fs);
/* Volume */
fs->volume = GTK_WIDGET (gtk_builder_get_object (priv->xml, "tcw_volume_button"));