[vlc-commits] vout: save previous display size regardless of the fullscreen flag
Rémi Denis-Courmont
git at videolan.org
Thu Oct 16 19:26:01 CEST 2014
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sun Oct 12 12:53:46 2014 +0300| [bcc9572b79d1d0a7d4aa392a5c7f1d656d8a244d] | committer: Rémi Denis-Courmont
vout: save previous display size regardless of the fullscreen flag
This is simpler and is also more robust. The display no longer needs to
know whether it is fullscreen or not when reporting the size.
This should fix bugs whereby leaving fullscreen forces the window to be
maximized. On the other hand, it will fail if the windowing system
automatically resize a fullscreen window (due to changing view port).
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bcc9572b79d1d0a7d4aa392a5c7f1d656d8a244d
---
src/video_output/display.c | 32 +++++++++++++-------------------
1 file changed, 13 insertions(+), 19 deletions(-)
diff --git a/src/video_output/display.c b/src/video_output/display.c
index 38a5b46..12fae33 100644
--- a/src/video_output/display.c
+++ b/src/video_output/display.c
@@ -410,7 +410,6 @@ struct vout_display_owner_sys_t {
bool ch_display_size;
int display_width;
int display_height;
- bool display_is_fullscreen;
bool display_is_forced;
int fit_window;
@@ -707,11 +706,10 @@ static void VoutDisplayEvent(vout_display_t *vd, int event, va_list args)
/* */
vlc_mutex_lock(&osys->lock);
- osys->ch_display_size = true;
- osys->display_width = width;
- osys->display_height = height;
- osys->display_is_fullscreen = is_fullscreen;
- osys->display_is_forced = false;
+ osys->ch_display_size = true;
+ osys->display_width = width;
+ osys->display_height = height;
+ osys->display_is_forced = false;
vlc_mutex_unlock(&osys->lock);
break;
@@ -791,11 +789,10 @@ static void VoutDisplayFitWindow(vout_display_t *vd, bool default_size)
vlc_mutex_lock(&osys->lock);
- osys->ch_display_size = true;
- osys->display_width = display_width;
- osys->display_height = display_height;
- osys->display_is_fullscreen = osys->cfg.is_fullscreen;
- osys->display_is_forced = true;
+ osys->ch_display_size = true;
+ osys->display_width = display_width;
+ osys->display_height = display_height;
+ osys->display_is_forced = true;
vlc_mutex_unlock(&osys->lock);
}
@@ -865,7 +862,6 @@ bool vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures)
bool ch_display_size = osys->ch_display_size;
int display_width = osys->display_width;
int display_height = osys->display_height;
- bool display_is_fullscreen = osys->display_is_fullscreen;
bool display_is_forced = osys->display_is_forced;
osys->ch_display_size = false;
@@ -922,8 +918,11 @@ bool vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures)
cfg.display.width = display_width;
cfg.display.height = display_height;
- if (!cfg.is_fullscreen != !display_is_fullscreen ||
- vout_display_Control(vd, VOUT_DISPLAY_CHANGE_DISPLAY_SIZE, &cfg, display_is_forced)) {
+ osys->width_saved = osys->cfg.display.width;
+ osys->height_saved = osys->cfg.display.height;
+
+ if (vout_display_Control(vd, VOUT_DISPLAY_CHANGE_DISPLAY_SIZE,
+ &cfg, display_is_forced)) {
if (!display_is_forced)
msg_Err(vd, "Failed to resize display");
@@ -933,11 +932,6 @@ bool vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures)
}
osys->cfg.display.width = display_width;
osys->cfg.display.height = display_height;
-
- if (!display_is_fullscreen) {
- osys->width_saved = display_width;
- osys->height_saved = display_height;
- }
}
/* */
if (osys->ch_display_filled) {
More information about the vlc-commits
mailing list