Re: [AD] window resizing

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


The attached patch allows the X11 window driver to be resized. As explained before, when a ConfigureNotify XEvent is received, the global resize_screen() is called with the new screen width and height. resize_screen() checks to see if the driver can handle screen resizing and then calls gfx_driver->resize_window() which returns a bitmap. resize_screen sets the global screen bitmap to this bitmap and the resizing is complete. If a user callback is set, that is called at the end of resize_screen. I have added an entry to the GFX_DRIVER and updated all the drivers( i hope ).

A few things..
1. In the X11 windowed driver: after the screen is resized the window manager tries to replace it on the screen. I can force the window to be in the same place by doing
hints->flags = USPosition;
  hints->x = attr.x;
  hints->y = attr.y;
  XSetWMNormalHints(_xwin.display, _xwin.window, hints);

But documentation on the web says hints->x and hints->y are deprecated. This works on my system( Xfree86 4.3.0 ) but dont know a better way to set the position of the window.

2. There is currently no way to turn off screen resizing.. For those programs that dont know how to handle screen resizing( every allegro program ever ) this should be turned off by default and the user would have to call a function to turn it on. For x11 this is easy becuase it just consists of telling the window manager the minimum and maximum size for the window, although I havent done this in my patch.

3. This is only implemented for x11, the resize_window function is NULL in every other driver. Michael Molhanec seems to have written a patch to resize windows in Windows.. can someone incorporate that along with my patch? I can theoretically get access to QNX but probably not macos.

anyway, its a first draft so let me know what issues there are with the patch.

later--,
jon

Attachment: resize.diff.gz
Description: application/gzip



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