x11: fix mysterious issue with window embedding on OpenBox

For some reason, when using window embedding, and the window manager is
OpenBox, calling XSetWMNormalHints() before the window is mapped, the
initial window position will be off. It leaves some vertical space,
instead of placing it on the top/left corner. Suspiciously, the vertical
space is as much as a the height of normal window decoration.

I don't know what kind of issue this is. Possibly an OpenBox bug, but
then this happens even if the override-redirect flag is set. (This flag
basically tells the X server to ignore the window manager. Normally we
don't set it.) On other window managers, it works fine. So I don't know
why this is happening.

But this is easy to workaround. XSetWMNormalHints() isn't needed at all
if embedding.

Should fix #1235.
This commit is contained in:
wm4 2014-12-18 16:45:55 +01:00 committed by Diogo Franco (Kovensky)
parent b0759abe9c
commit 87e635e843
1 changed files with 1 additions and 1 deletions

View File

@ -988,7 +988,7 @@ static void vo_x11_sizehint(struct vo *vo, struct mp_rect rc, bool override_pos)
struct mp_vo_opts *opts = vo->opts; struct mp_vo_opts *opts = vo->opts;
struct vo_x11_state *x11 = vo->x11; struct vo_x11_state *x11 = vo->x11;
if (!x11->window) if (!x11->window || x11->parent)
return; return;
bool force_pos = opts->geometry.xy_valid || // explicitly forced by user bool force_pos = opts->geometry.xy_valid || // explicitly forced by user