Re: [AD] Adding a preferred window adapter parameter for going fullscreen window

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



On 11/26/2016 01:04 PM, Edgar Reynaldo wrote:
Hello guys,

I was wondering if it would be possible to add a member to the
ALLEGRO_DISPLAY_WIN struct called 'preferred_window_adapter'. This would
allow us to go fullscreen window on any monitor, instead of only being
able to go fullscreen window on the adapter the window was created on.

In _al_win_set_display_flag on line 1195 of allegro5/src/win/wwindow.c ,
the adapter used to go fullscreen window is set to the adapter that the
window was created on. If we set a preferred window adapter, we could go
fullscreen window on any monitor that the window was over or onto any
specific available adapter. This ability was requested by SilverSthan on
the allegro.cc forum.

Maximize currently works the same way, and when you maximize a window on
Windows, it maximizes onto the display that the adapter is over. If we
set a preferred adapter or check for a specific monitor that the window
is over, then we can mimic this behavior.

Something I have noted about returning from fullscreen window to window
mode is that it centers the window and ignores the last known position
of the window. I feel this is a bug, or at least undesirable behavior.
I'm willing to work on a patch for this.

I don't know what work it would take to mimic this behavior on
Linux/OSX, whatever else, but I'm willing to look into it. However I
don't have anything other than a Windows machine to test it on atm.

On 11/26/2016 10:48 PM, SiegeLord wrote:
Seems like a fine idea. The un-maximize behavior sounds like a bug, it certainly doesn't do that on Linux at least.

-SL
It's not the unmaximize behavior, it's the switch from fullscreen window to window (al_set_display_flag(display , ALLEGRO_FULLSCREEN_WINDOW , false). The restore behavior (al_set_display_flag(display , ALLEGRO_MAXIMIZE , false) works fine. There is code in there to deliberately center the window on the display, ignoring the previous position of the window.

Question : Wouldn't adding a member to the WIN_DISPLAY_DRIVER struct mess with ABI compatibility?







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