1
mirror of https://github.com/mpv-player/mpv synced 2024-07-31 16:29:58 +02:00

VO: Don't force window position in X11 VOs

Disable by default the code that forcefully moved the video output
window to the middle of the screen whenever it was reconfigured or
created. That behavior was really annoying when switching video
streams within a file, and overriding the window manager like that is
not good default behavior for the initial creation of a window either.
Add a new option "-force-window-position" that can be used to restore
the old behavior.
This commit is contained in:
Uoti Urpala 2009-03-20 15:22:15 +02:00
parent 8d25a357ef
commit 8ca11dda9e
4 changed files with 15 additions and 1 deletions

View File

@ -3055,6 +3055,13 @@ VESA framebuffer does not support mode changing.
Override framebuffer mode configuration file (default: /etc/\:fb.modes).
.
.TP
.B \-force\-window\-position
Forcefully move MPlayer's video output window to default location whenever
there is a change in video parameters, video stream or file.
This used to be the default behavior.
Currently only affects X11 VOs.
.
.TP
.B \-fs (also see \-zoom)
Fullscreen playback (centers movie, and paints black bands around it).
Not supported by all video output drivers.

View File

@ -160,6 +160,8 @@ const m_option_t mplayer_opts[]={
OPT_INTRANGE("screenh", vo_screenheight, CONF_OLD, 0, 4096),
// Geometry string
{"geometry", &vo_geometry, CONF_TYPE_STRING, 0, 0, 0, NULL},
OPT_FLAG_ON("force-window-position", force_window_position, 0),
OPT_FLAG_OFF("noforce-window-position", force_window_position, 0),
// set aspect ratio of monitor - useful for 16:9 TV-out
OPT_FLOATRANGE("monitoraspect", force_monitor_aspect, 0, 0.0, 9.0),
OPT_FLOATRANGE("monitorpixelaspect", monitor_pixel_aspect, 0, 0.2, 9.0),

View File

@ -933,7 +933,11 @@ static void vo_x11_nofs_sizepos(struct vo *vo, int x, int y,
{
vo->dwidth = width;
vo->dheight = height;
XMoveResizeWindow(vo->x11->display, vo->x11->window, x, y, width, height);
if (vo->opts->force_window_position)
XMoveResizeWindow(vo->x11->display, vo->x11->window, x, y, width,
height);
else
XResizeWindow(vo->x11->display, vo->x11->window, width, height);
}
}

View File

@ -10,6 +10,7 @@ typedef struct MPOpts {
int screen_size_y;
int vo_screenwidth;
int vo_screenheight;
int force_window_position;
float force_monitor_aspect;
float monitor_pixel_aspect;
int vidmode;