[vlc-devel] [PATCH] Don't keep VLC on top when paused
Edward Wang
edward.c.wang at compdigitec.com
Mon Mar 12 01:31:58 CET 2012
Have the "always on top" preference only take effect while a movie is playing. When not playing VLC will act like any other window.
Close #4689
---
Alternative approach that doesn't require var_GetBool()
src/video_output/video_output.c | 5 +++++
src/video_output/vout_internal.h | 2 ++
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index a8e4e24..82528c8 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -1193,6 +1193,10 @@ static void ThreadChangePause(vout_thread_t *vout, bool is_paused, mtime_t date)
{
assert(!vout->p->pause.is_on || !is_paused);
+ /* Only stay on top if not paused */
+ vout_SetWindowState(vout->p->display.vd, (!is_paused && vout->p->always_on_top) ? VOUT_WINDOW_STATE_ABOVE
+ : VOUT_WINDOW_STATE_NORMAL );
+
if (vout->p->pause.is_on) {
const mtime_t duration = date - vout->p->pause.date;
@@ -1278,6 +1282,7 @@ static void ThreadChangeOnTop(vout_thread_t *vout, bool is_on_top)
vout_SetWindowState(vout->p->display.vd,
is_on_top ? VOUT_WINDOW_STATE_ABOVE :
VOUT_WINDOW_STATE_NORMAL);
+ vout->p->always_on_top = is_on_top;
}
static void ThreadChangeDisplayFilled(vout_thread_t *vout, bool is_filled)
diff --git a/src/video_output/vout_internal.h b/src/video_output/vout_internal.h
index 1f71845..20ad822 100644
--- a/src/video_output/vout_internal.h
+++ b/src/video_output/vout_internal.h
@@ -108,6 +108,8 @@ struct vout_thread_sys_t
mtime_t date;
} pause;
+ bool always_on_top;
+
/* OSD title configuration */
struct {
bool show;
--
1.7.5.4
More information about the vlc-devel
mailing list