Add enable/disable flags for MultiWindowExtWM mode. Fix bug for -help

message not being saved to log file.
This commit is contained in:
Harold L Hunt II 2004-03-02 04:14:05 +00:00
parent a3d6794bb4
commit 978116d14c
13 changed files with 118 additions and 41 deletions

View file

@ -44,17 +44,16 @@ from The Open Group.
extern int g_iNumScreens;
extern winScreenInfo g_ScreenInfo[];
extern int g_iLastScreen;
extern FILE *g_pfLog;
extern char * g_pszLogFile;
extern int g_iLogVerbose;
Bool g_fLogInited;
extern Bool g_fXdmcpEnabled;
extern int g_fdMessageQueue;
extern const char * g_pszQueryHost;
extern HINSTANCE g_hInstance;
int g_iLogVerbose = 4;
char * g_pszLogFile = WIN_LOG_FNAME;
Bool g_fLogInited = FALSE;
#ifdef XWIN_CLIPBOARD
extern Bool g_fUnicodeClipboard;
extern Bool g_fClipboardLaunched;
@ -164,10 +163,10 @@ ddxGiveUp (void)
}
if (!g_fLogInited) {
LogInit(g_pszLogFile, NULL);
LogInit (g_pszLogFile, NULL);
g_fLogInited = TRUE;
}
LogClose();
LogClose ();
/*
* At this point we aren't creating any new screens, so
@ -224,11 +223,11 @@ OsVendorInit (void)
#endif
if (!g_fLogInited) {
LogInit(g_pszLogFile, NULL);
LogInit (g_pszLogFile, NULL);
g_fLogInited = TRUE;
}
LogSetParameter(XLOG_FLUSH, 1);
LogSetParameter(XLOG_VERBOSITY, g_iLogVerbose);
LogSetParameter (XLOG_FLUSH, 1);
LogSetParameter (XLOG_VERBOSITY, g_iLogVerbose);
/* Add a default screen if no screens were specified */
if (g_iNumScreens == 0)
@ -298,8 +297,10 @@ ddxUseMsg (void)
"\tDo not draw a window border, title bar, etc. Windowed\n"
"\tmode only.\n");
#ifdef XWIN_MULTIWINDOWEXTWM
ErrorF ("-rootless\n"
"\tRun the server in rootless mode.\n");
#endif
ErrorF ("-pseudorootless\n"
"\tRun the server in pseudo-rootless mode.\n");
@ -350,16 +351,24 @@ ddxUseMsg (void)
ErrorF ("-[no]winkill\n"
"\tAlt+F4 exits the X Server.\n");
#ifdef XWIN_XF86CONFIG
ErrorF ("-xf86config\n"
"\tSpecify a configuration file.\n");
ErrorF ("-keyboard\n"
"\tSpecify a keyboard device from the configuration file.\n");
#endif
#ifdef XWIN_CLIPBOARD
ErrorF ("-nounicodeclipboard\n"
"\tDo not use Unicode clipboard even if NT-based platform.\n");
#endif
if (!g_fLogInited) {
LogInit (g_pszLogFile, NULL);
g_fLogInited = TRUE;
}
LogClose ();
}

View file

@ -202,13 +202,6 @@
#include "winwindow.h"
/* Cygwin's winuser.h does not define VK_KANA as of 28Mar2001 */
/* NOTE: Cygwin's winuser.h was fixed shortly after 28Mar2001. */
#ifndef VK_KANA
#define VK_KANA 15
#endif
/*
* Debugging macros
*/
@ -396,7 +389,9 @@ typedef struct
#endif
Bool fFullScreen;
Bool fDecoration;
#ifdef XWIN_MULTIWINDOWEXTWM
Bool fRootless;
#endif
Bool fPseudoRootless;
#ifdef XWIN_MULTIWINDOW
Bool fMultiWindow;
@ -570,6 +565,7 @@ typedef struct _winPrivScreenRec
} winPrivScreenRec;
#ifdef XWIN_MULTIWINDOWEXTWM
typedef struct {
RootlessWindowPtr pFrame;
HWND hWnd;
@ -585,6 +581,7 @@ typedef struct {
BOOL fDestroyed;//for debug
char *pfb;
} win32RootlessWindowRec, *win32RootlessWindowPtr;
#endif
typedef struct {
@ -1526,9 +1523,6 @@ void
winCopyWindowMultiWindow (WindowPtr pWin, DDXPointRec oldpt,
RegionPtr oldRegion);
void
winWin32RootlessMoveResizeXWindow (WindowPtr pWin, int x, int y, int w, int h);
XID
winGetWindowID (WindowPtr pWin);
@ -1573,6 +1567,7 @@ winWindowProc (HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam);
#ifdef XWIN_MULTIWINDOWEXTWM
/*
* winwin32rootless.c
*/
@ -1635,8 +1630,10 @@ winWin32RootlessCompositePixels (unsigned int width, unsigned int height, unsign
void
winWin32RootlessCopyWindow (RootlessFrameID wid, int dstNrects, const BoxRec *dstRects,
int dx, int dy);
#endif
#ifdef XWIN_MULTIWINDOWEXTWM
/*
* winwin32rootlesswindow.c
*/
@ -1650,18 +1647,25 @@ winWin32RootlessMoveXWindow (WindowPtr pWin, int x, int y);
void
winWin32RootlessResizeXWindow (WindowPtr pWin, int w, int h);
void
winWin32RootlessMoveResizeXWindow (WindowPtr pWin, int x, int y, int w, int h);
void
winWin32RootlessUpdateIcon (Window id);
#endif
#ifdef XWIN_MULTIWINDOWEXTWM
/*
* winwin32rootlesscursor.c
*/
Bool
winWin32RootlessInitCursor (ScreenPtr pScreen);
#endif
#ifdef XWIN_MULTIWINDOWEXTWM
/*
* winwin32rootlesswndproc.c
*/
@ -1669,6 +1673,7 @@ winWin32RootlessInitCursor (ScreenPtr pScreen);
LRESULT CALLBACK
winWin32RootlessWindowProc (HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam);
#endif
/*

View file

@ -93,6 +93,8 @@ winBlockHandler_ProcessMessages:
winReorderWindowsMultiWindow ((ScreenPtr)pBlockData);
#endif
#ifdef XWIN_MULTIWINDOWEXTWM
if (pScreenPriv->pScreenInfo->fRootless)
winWin32RootlessReorderWindows ((ScreenPtr)pBlockData);
#endif
}

View file

@ -156,7 +156,9 @@ winCreateBoundingWindowWindowed (ScreenPtr pScreen)
/* Decorated or undecorated window */
if (pScreenInfo->fDecoration
#ifdef XWIN_MULTIWINDOWEXTWM
&& !pScreenInfo->fRootless
#endif
&& !pScreenInfo->fPseudoRootless
#ifdef XWIN_MULTIWINDOW
&& !pScreenInfo->fMultiWindow
@ -200,7 +202,9 @@ winCreateBoundingWindowWindowed (ScreenPtr pScreen)
/* Adjust the window width and height for borders and title bar */
if (pScreenInfo->fDecoration
#ifdef XWIN_MULTIWINDOWEXTWM
&& !pScreenInfo->fRootless
#endif
&& !pScreenInfo->fPseudoRootless
#ifdef XWIN_MULTIWINDOW
&& !pScreenInfo->fMultiWindow
@ -270,7 +274,9 @@ winCreateBoundingWindowWindowed (ScreenPtr pScreen)
/* Clean up the scrollbars flag, if necessary */
if ((!pScreenInfo->fDecoration
#ifdef XWIN_MULTIWINDOWEXTWM
|| pScreenInfo->fRootless
#endif
|| pScreenInfo->fPseudoRootless
#ifdef XWIN_MULTIWINDOW
|| pScreenInfo->fMultiWindow
@ -410,7 +416,10 @@ winCreateBoundingWindowWindowed (ScreenPtr pScreen)
#endif
/* Show the window */
if (pScreenInfo->fRootless
if (FALSE
#ifdef XWIN_MULTIWINDOWEXTWM
|| pScreenInfo->fRootless
#endif
#ifdef XWIN_MULTIWINDOW
|| pScreenInfo->fMultiWindow
#endif
@ -428,7 +437,10 @@ winCreateBoundingWindowWindowed (ScreenPtr pScreen)
}
/* Attempt to bring our window to the top of the display */
if (!pScreenInfo->fRootless
if (TRUE
#ifdef XWIN_MULTIWINDOWEXTWM
&& !pScreenInfo->fRootless
#endif
&& !pScreenInfo->fPseudoRootless
#ifdef XWIN_MULTIWINDOW
&& !pScreenInfo->fMultiWindow

View file

@ -30,6 +30,7 @@
/* $XFree86: xc/programs/Xserver/hw/xwin/winengine.c,v 1.5 2003/07/29 21:25:17 dawes Exp $ */
#include "win.h"
#include "winmsg.h"
/*
@ -184,7 +185,10 @@ winSetEngine (ScreenPtr pScreen)
}
/* ShadowGDI is the only engine that supports Multi Window Mode */
if (pScreenInfo->fRootless
if (TRUE
#ifdef XWIN_MULTIWINDOWEXTWM
|| pScreenInfo->fRootless
#endif
#ifdef XWIN_MULTIWINDOW
|| pScreenInfo->fMultiWindow
#endif

View file

@ -45,7 +45,7 @@ OsVendorVErrorF (const char *pszFormat, va_list va_args)
pthread_mutex_lock (&s_pmPrinting);
/* Print the error message to a log file, could be stderr */
LogVWrite(0, pszFormat, va_args);
LogVWrite (0, pszFormat, va_args);
/* Unlock the printing mutex */
pthread_mutex_unlock (&s_pmPrinting);

View file

@ -46,7 +46,6 @@ int g_iPixmapPrivateIndex = -1;
int g_iWindowPrivateIndex = -1;
unsigned long g_ulServerGeneration = 0;
Bool g_fInitializedDefaultScreens = FALSE;
FILE *g_pfLog = NULL;
DWORD g_dwEnginesSupported = 0;
HINSTANCE g_hInstance = 0;
HWND g_hDlgDepthChange = NULL;
@ -54,6 +53,9 @@ HWND g_hDlgExit = NULL;
const char * g_pszQueryHost = NULL;
Bool g_fXdmcpEnabled = FALSE;
HICON g_hiconX = NULL;
char * g_pszLogFile = "/tmp/XWin.log";
int g_iLogVerbose = 4;
Bool g_fLogInited = FALSE;
/*

View file

@ -36,6 +36,7 @@
#include "win.h"
#include "winkeybd.h"
#include "winconfig.h"
#include "winmsg.h"
#ifdef XKB
#define XKB_IN_SERVER

View file

@ -107,7 +107,9 @@ winInitializeDefaultScreens (void)
g_ScreenInfo[i].pfb = NULL;
g_ScreenInfo[i].fFullScreen = FALSE;
g_ScreenInfo[i].fDecoration = TRUE;
#ifdef XWIN_MULTIWINDOWEXTWM
g_ScreenInfo[i].fRootless = FALSE;
#endif
g_ScreenInfo[i].fPseudoRootless = FALSE;
#ifdef XWIN_MULTIWINDOW
g_ScreenInfo[i].fMultiWindow = FALSE;
@ -163,8 +165,8 @@ ddxProcessArgument (int argc, char *argv[], int i)
{
static Bool s_fBeenHere = FALSE;
/* Initialize once */
if (!s_fBeenHere)
/* Initialize once - only if option is not -help */
if (!s_fBeenHere && !IS_OPTION ("-help"))
{
#ifdef DDXOSVERRORF
/*
@ -425,6 +427,7 @@ ddxProcessArgument (int argc, char *argv[], int i)
return 1;
}
#ifdef XWIN_MULTIWINDOWEXTWM
/*
* Look for the '-rootless' argument
*/
@ -450,6 +453,7 @@ ddxProcessArgument (int argc, char *argv[], int i)
/* Indicate that we have processed this argument */
return 1;
}
#endif
/*
* Look for the '-pseudorootless' argument

View file

@ -37,6 +37,7 @@
#include "safeAlpha.h"
#ifdef XWIN_MULTIWINDOWEXTWM
static RootlessFrameProcsRec
winWin32RootlessProcs = {
winWin32RootlessCreateFrame,
@ -61,6 +62,7 @@ winWin32RootlessProcs = {
NULL,//winWin32RootlessCompositePixels,
winWin32RootlessCopyWindow
};
#endif
/*
@ -100,9 +102,9 @@ winScreenInit (int index,
pScreenInfo->dwWidth, pScreenInfo->dwHeight);
#endif
#ifdef XWIN_MULTIWINDOW
/* Bail if -rootless and -multiwindow flags both present */
if (pScreenInfo->fRootless && pScreenInfo->fMultiWindow)
#if defined(XWIN_MULTIWINDOW)
/* Bail if -pseudorootless and -multiwindow flags both present */
if (pScreenInfo->fPseudoRootless && pScreenInfo->fMultiWindow)
{
ErrorF ("winScreenInit - The -rootless and -multiwindow parameters\n"
"\tcannot be used together. Note that the -rootless parameter\n"
@ -452,7 +454,10 @@ winFinishScreenInitFB (int index,
if ((pScreenInfo->dwEngine == WIN_SERVER_SHADOW_GDI
|| pScreenInfo->dwEngine == WIN_SERVER_SHADOW_DD
|| pScreenInfo->dwEngine == WIN_SERVER_SHADOW_DDNL)
&&(!pScreenInfo->fRootless))
#ifdef XWIN_MULTIWINDOWEXTWM
&& !pScreenInfo->fRootless
#endif
)
{
#if CYGDEBUG
ErrorF ("winFinishScreenInitFB - Calling shadowInit ()\n");
@ -467,7 +472,7 @@ winFinishScreenInitFB (int index,
}
#endif
#ifdef XWIN_MULTIWINDOWEXTWM
/* Handle rootless mode */
if (pScreenInfo->fRootless)
{
@ -488,8 +493,10 @@ winFinishScreenInitFB (int index,
}
winWindowsWMExtensionInit ();
}
#endif
/* Handle pseudo-rootless mode */
else if (pScreenInfo->fPseudoRootless)
if (pScreenInfo->fPseudoRootless)
{
/* Define the WRAP macro temporarily for local use */
#define WRAP(a) \
@ -525,6 +532,8 @@ winFinishScreenInitFB (int index,
/* Undefine the WRAP macro, as it is not needed elsewhere */
#undef WRAP
}
#ifdef XWIN_MULTIWINDOW
/* Handle multi window mode */
else if (pScreenInfo->fMultiWindow)

View file

@ -69,7 +69,9 @@ winWakeupHandler (int nScreen,
if (pScreenPriv->pScreenInfo->fMultiWindow)
winReorderWindowsMultiWindow ((ScreenPtr)pWakeupData);
#endif
#ifdef XWIN_MULTIWINDOWEXTWM
if (pScreenPriv->pScreenInfo->fRootless)
winWin32RootlessReorderWindows ((ScreenPtr)pWakeupData);
#endif
}

View file

@ -47,7 +47,6 @@
#define WINDOW_TITLE_X "Cygwin/X X"
#define WIN_WINDOW_PROP "cyg_window_prop_rl"
#define WIN_MSG_QUEUE_FNAME "/dev/windows"
#define WIN_LOG_FNAME "/tmp/XWin.log"
#define WIN_WID_PROP "cyg_wid_prop_rl"
#define WIN_NEEDMANAGE_PROP "cyg_override_redirect_prop_rl"
#define WIN_HWND_CACHE "cyg_privmap_rl"

View file

@ -314,7 +314,9 @@ winWindowProc (HWND hwnd, UINT message,
/* Break if we do not use scrollbars */
if (!s_pScreenInfo->fScrollbars
|| !s_pScreenInfo->fDecoration
#ifdef XWIN_MULTIWINDOWEXTWM
|| s_pScreenInfo->fRootless
#endif
|| s_pScreenInfo->fPseudoRootless
#ifdef XWIN_MULTIWINDOW
|| s_pScreenInfo->fMultiWindow
@ -588,7 +590,9 @@ winWindowProc (HWND hwnd, UINT message,
|| !s_pScreenInfo->fScrollbars
|| s_pScreenInfo->fFullScreen
|| !s_pScreenInfo->fDecoration
#ifdef XWIN_MULTIWINDOWEXTWM
|| s_pScreenInfo->fRootless
#endif
|| s_pScreenInfo->fPseudoRootless
#ifdef XWIN_MULTIWINDOW
|| s_pScreenInfo->fMultiWindow
@ -775,14 +779,22 @@ winWindowProc (HWND hwnd, UINT message,
case WM_LBUTTONDOWN:
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
if (s_pScreenInfo->fRootless || s_pScreenInfo->fPseudoRootless)
if (s_pScreenInfo->fPseudoRootless
#ifdef XWIN_MULTIWINDOWEXTWM
|| s_pScreenInfo->fRootless
#endif
)
SetCapture (hwnd);
return winMouseButtonsHandle (s_pScreen, ButtonPress, Button1, wParam);
case WM_LBUTTONUP:
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
if (s_pScreenInfo->fRootless || s_pScreenInfo->fPseudoRootless)
if (s_pScreenInfo->fPseudoRootless
#ifdef XWIN_MULTIWINDOWEXTWM
|| s_pScreenInfo->fRootless
#endif
)
ReleaseCapture ();
return winMouseButtonsHandle (s_pScreen, ButtonRelease, Button1, wParam);
@ -790,14 +802,22 @@ winWindowProc (HWND hwnd, UINT message,
case WM_MBUTTONDOWN:
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
if (s_pScreenInfo->fRootless || s_pScreenInfo->fPseudoRootless)
if (s_pScreenInfo->fPseudoRootless
#ifdef XWIN_MULTIWINDOWEXTWM
|| s_pScreenInfo->fRootless
#endif
)
SetCapture (hwnd);
return winMouseButtonsHandle (s_pScreen, ButtonPress, Button2, wParam);
case WM_MBUTTONUP:
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
if (s_pScreenInfo->fRootless || s_pScreenInfo->fPseudoRootless)
if (s_pScreenInfo->fPseudoRootless
#ifdef XWIN_MULTIWINDOWEXTWM
|| s_pScreenInfo->fRootless
#endif
)
ReleaseCapture ();
return winMouseButtonsHandle (s_pScreen, ButtonRelease, Button2, wParam);
@ -805,14 +825,22 @@ winWindowProc (HWND hwnd, UINT message,
case WM_RBUTTONDOWN:
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
if (s_pScreenInfo->fRootless || s_pScreenInfo->fPseudoRootless)
if (s_pScreenInfo->fPseudoRootless
#ifdef XWIN_MULTIWINDOWEXTWM
|| s_pScreenInfo->fRootless
#endif
)
SetCapture (hwnd);
return winMouseButtonsHandle (s_pScreen, ButtonPress, Button3, wParam);
case WM_RBUTTONUP:
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
if (s_pScreenInfo->fRootless || s_pScreenInfo->fPseudoRootless)
if (s_pScreenInfo->fPseudoRootless
#ifdef XWIN_MULTIWINDOWEXTWM
|| s_pScreenInfo->fRootless
#endif
)
ReleaseCapture ();
return winMouseButtonsHandle (s_pScreen, ButtonRelease, Button3, wParam);