Re: [AD] Real weird unix bug, help wanted

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]



Elias Pschernig wrote:
On Thu, 2006-03-02 at 15:31 +0100, Hans de Goede wrote:
But for now I've written a patch (attached) which destroys the window when switching to fullscreen and then recreates it, since a new unmapped window is not touched by the WM untill mapped, this way we are sure the window will never get touched as we set OverrideRedirect before mapping the window, the WM will see this immediately and never touch the window.


I can confirm this seems to fix the problem. Do you think it's possible
to simply unmap the window though, instead of destroying it?


Nope, that already happens in the oldcode, the window manager really should completly forget about it I also tried using XWithdrawWindow but that didn'telp, I did call it after a regular unmap call though, so that could be the problem.


For 4.3, it would be nice to have a way to simply switch a window
between fullscreen/windowed, preserving things like an OpenGL context
attached to it. Also, with the resizeable windows we will have there,
this might be independent of a resolution change. So, sooner or later we
will need a better solution.


Agreed, opengl indeed is an issue here, does allegrogl allow calling set_gfx_mode after creating the opengl context, in that case my fix is _bad_.

For now, I think the patch should be applied though, because it is an
improvement.


What about allegrogl?

Of course, there's again the ABI issue with the changed struct - but
since the xwin struct already has variable members depending on
the ./confugure results, it shouldn't matter.


The ABI issue is probably a moot one, the xwin struct really should not be used by other apps, as its platform specific.

And as said the struct even changes when changing ./configure flags. I could put the problematic variable somewhere else then in the struct though, that would fix it for sure.

Regards,

Hans




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/