diff --git a/video/out/x11_common.c b/video/out/x11_common.c index 426b65b05a..50bd67921f 100644 --- a/video/out/x11_common.c +++ b/video/out/x11_common.c @@ -605,7 +605,7 @@ static void vo_x11_decoration(struct vo *vo, int d) vo_MotifHints = XInternAtom(x11->display, "_MOTIF_WM_HINTS", 0); if (vo_MotifHints != None) { - if (!d) { + if (!x11->got_motif_hints) { MotifWmHints *mhints = NULL; XGetWindowProperty(x11->display, x11->window, @@ -620,6 +620,7 @@ static void vo_x11_decoration(struct vo *vo, int d) XFree(mhints); } } + x11->got_motif_hints = true; memset(&vo_MotifWmHints, 0, sizeof(MotifWmHints)); vo_MotifWmHints.flags = @@ -1498,7 +1499,7 @@ static void vo_x11_ontop(struct vo *vo) static void vo_x11_border(struct vo *vo) { vo->opts->border = !vo->opts->border; - vo_x11_decoration(vo, vo->opts->border && !vo->x11->fs); + vo_x11_decoration(vo, vo->opts->border); } int vo_x11_control(struct vo *vo, int *events, int request, void *arg) diff --git a/video/out/x11_common.h b/video/out/x11_common.h index 7cd848245d..0b22681731 100644 --- a/video/out/x11_common.h +++ b/video/out/x11_common.h @@ -90,8 +90,10 @@ struct vo_x11_state { bool size_changed_during_fs; bool pos_changed_during_fs; + bool got_motif_hints; unsigned int olddecor; unsigned int oldfuncs; + XComposeStatus compose_status; /* XShm stuff */