Add basic Xinerama support via new lib/DtXinerama
This adds a basic library and support to dtsession and dtlogin to support Xinerama/Twinview, where multimple monitors are used to make up an X11 screen. The main goal here is to draw dialogs and such centered on a monitor, rather than spread out over multiple monitors. Might need to add sorting - as on my test system, what I would consider monitor 0, appears to actually be monitor 1. So a sort might need to be added to sort the screens according to increasing x and y offsets so it make sense to a user. Also, this library is built statically and not documented. Maybe it could be 'filled' out and refactored/redesigned in the futre if need be and suppoerted. It is enabled via a define, CDE_USEXINERAMA in site.def. It's a very simple lib, so I do not expect any issues with the BSD's - it should build and work fine, assuming your X server has the XINERAMA extension, which I think pretty much all of them do at this point.
This commit is contained in:
@@ -70,6 +70,9 @@
|
||||
#include <Dt/EnvControlP.h>
|
||||
#include <Dt/DtP.h>
|
||||
#include <Dt/Lock.h>
|
||||
#ifdef USE_XINERAMA
|
||||
#include <DtXinerama.h> /* JET - Xinerama support */
|
||||
#endif
|
||||
#include "Sm.h"
|
||||
#include "SmError.h"
|
||||
#include "SmGlobals.h"
|
||||
@@ -387,6 +390,25 @@ main (int argc, char **argv)
|
||||
SM_EXIT(-1);
|
||||
}
|
||||
|
||||
/* JET - initialize for Xinerama, if present 4/12/2001 */
|
||||
#ifdef USE_XINERAMA
|
||||
smGD.DtXineramaInfo = _DtXineramaInit(smGD.display);
|
||||
|
||||
# ifdef DEBUG
|
||||
if (smGD.DtXineramaInfo == NULL)
|
||||
{ /* No xinerama, how... sad. */
|
||||
fprintf(stderr, "### JET SmMain: Xinerama NOT available.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "### JET SmMain: Xinerama available, scrns = %d\n",
|
||||
dpyinfo.DtXineramaInfo->numscreens);
|
||||
}
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Restore preferences
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user