Philipp Lohmann - Sun Germany wrote:

Hi,

David Fraser wrote:

Hi

I've been working on issue 12719, Support for multiscreen displays (dual monitors). The proposal there is to do a first level patch that enables an Impress user to select the monitor to display presentations on in the options, and then to go through the more complex process of doing a presentation mode.


i've seen you UI proposal (the dialog entry) and it would be ok with me. Of course this is really something for the impress developers but since the issue is currently owned by cl they are already in the boat.

Thanks for the feedback

So for the purpose of the first level patch, it is neccessary to specify for a window which display it should operate on. I have done an initial patch for Windows that allows displaying on other displays (attached to the issue), by altering ImplSalCalcFullScreenSize (since this is only used in full-screen mode), but there is no way of specifying it in the structure. It should be possible to do this at least for full-screen windows, but it may be desirable to allow it for other windows as well. For example, if a window is already opened on a secondary display and it pops up a dialog box, it may be helpful to know which display the dialog box should be on (or not). But the main usage is likely for full-screen displays of Impress presentations. Currently there is an pFrame->mbFullScreen which specifies whether something should run full-screen or not.
So I would like to know what we should add to specify the display.


The question is whether we want the full blown solution (setting the screen number possibly for every window) or if a special case for the fullscreen presentation is enough. Before you say you want the full solution: this can imply a lot of complexity (e.g. checking whether a new frame is necessary, what should be done with a window that changes the screen but has a parent on the other screen) with not necessarily much user benefit. Of course it might be interesting to have documents on different screens; this is not so much a matter on windows where you can move windows between screens anyway, but on classic Unix displays (that is not Xinerama configured screens) you cannot do that.

So lets leave this issue for now...

The fullscreen presentation seems to be the most important issue however. For this case I'd propose to add a parameter to the WorkWindow::ShowFullScreenMode method, e.g.

ShowFullScreen( BOOL bFullScreen, SHORT nScreen = -1 );

The default for the screen number to -1 should produce the current behaviour (meaning do nothing special).

OK that sounds good.

On Windows there are methods that allow getting the total number of displays and enumerating them. There is no specific "display number" as such, but I think the displays are always returned by the enumerator in the same order. There is also a string specifying the name of each display but this is not user-presentable (".\\DISPLAY\\1" etc), and I am not sure what different forms it can take.

I think the numbering approach is feasible; on Unix the screens are numbered anyway, while on Windows there are at least numbers for the monitors in the display properties dialog, so the concept should be not so uncommon to the user. Question: how do other Windows applications with multimonitor support handle this ?

Powerpoint does it by giving you a drop down box with different displays ("Primary Display", "Monitor 2" etc, can't remember the exact details but we should research).

It would be neccessary to investigate the other display types (mainly X with Xinerama) to determine how they handle multi-screen displays, I intend to do this shortly.


X displays either have different screens, which are completely separate (e.g. no window movement between them, no inter screenb copy operations), or they are configured in Xinerama mode which means to the application there is only one screen, but one can query what coordinates each display is at.

OK so it sounds like we should be able to handle them in a fairly similar way for the full-screen mode i.e. for X displays that are separate screens we could select a screen and display on that, for Xinerama, we get the coordinates for the display like we do on Windows

David


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to