[MPlayer-dev-eng] Bugreport/Patch: x11 video backend has wrong geometry assumptions
debian at jstimpfle.de
Wed May 8 15:04:53 CEST 2013
On Wed, May 08, 2013 at 06:47:44AM +0200, Reimar Döffinger wrote:
> Without waiting for map, our size/position request will be ignored in
> many cases, causing at least -geometry to break.
But then that's probably not mplayer's fault and fighting bugs in other
applications with workarounds in one's own application is never the
appropriate solution (In this case it actually breaks with the simplest
window manager I could think of--the one I'm currently working on).
> It might be possible to call the check_events code to actually handle
> those messages though.
AFAICT check_events() is only for external usage (for example from
vo_x11.c) because it does not handle anything.
IMO the only sane way is to *not* ignore the events until the first
MapNotify. No window manager can be expected to re-send those events.
AFAICT everything the "wait for map" hack is meant to do is to block
until the MapNotify arrives. Unfortunately, there is no
XMaskTypedWindowEvent() but only XCheckTypedWindowEvent() in xlib. I
think it could be emulated with poll() on ConnectionNumber() and
XCheckTypedWindowEvent(), but whether it's clean to have a potentially
infinitely growing events queue is another question.
I'd really like to see that problem solved. Do you have more detailed
information on why technically the "// wait for map" thingie was added?
I was inable to reproduce the -geometry breakage you mentioned, with any
of icewm, fluxbox and fvwm.
More information about the MPlayer-dev-eng