Merge remote branch 'jturney/master'
This commit is contained in:
commit
57ffeb3f2b
|
@ -427,6 +427,9 @@ case $host_os in
|
||||||
darwin*)
|
darwin*)
|
||||||
AC_DEFINE(CSRG_BASED, 1, [System is BSD-like])
|
AC_DEFINE(CSRG_BASED, 1, [System is BSD-like])
|
||||||
;;
|
;;
|
||||||
|
cygwin*)
|
||||||
|
CFLAGS="$CFLAGS -DFD_SETSIZE=256"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
dnl augment XORG_RELEASE_VERSION for our snapshot number and to expose the
|
dnl augment XORG_RELEASE_VERSION for our snapshot number and to expose the
|
||||||
|
@ -1829,7 +1832,9 @@ AC_MSG_RESULT([$XWIN])
|
||||||
|
|
||||||
if test "x$XWIN" = xyes; then
|
if test "x$XWIN" = xyes; then
|
||||||
PKG_CHECK_EXISTS($WINDOWSWMPROTO, [WINDOWSWM=yes], [WINDOWSWM=no])
|
PKG_CHECK_EXISTS($WINDOWSWMPROTO, [WINDOWSWM=yes], [WINDOWSWM=no])
|
||||||
|
AC_DEFINE_DIR(SYSCONFDIR, sysconfdir, [Location of system.XWinrc])
|
||||||
AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
|
AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
|
||||||
|
AC_DEFINE_UNQUOTED(__VENDORDWEBSUPPORT__, ["$VENDOR_WEB"], [Vendor web address for support])
|
||||||
AC_CHECK_TOOL(WINDRES, windres)
|
AC_CHECK_TOOL(WINDRES, windres)
|
||||||
case $host_os in
|
case $host_os in
|
||||||
cygwin*)
|
cygwin*)
|
||||||
|
@ -1842,8 +1847,6 @@ if test "x$XWIN" = xyes; then
|
||||||
AC_DEFINE(ROOTLESS,1,[Build Rootless code])
|
AC_DEFINE(ROOTLESS,1,[Build Rootless code])
|
||||||
CFLAGS="$CFLAGS -DROOTLESS_WORKAROUND"
|
CFLAGS="$CFLAGS -DROOTLESS_WORKAROUND"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CFLAGS="$CFLAGS -DFD_SETSIZE=256"
|
|
||||||
;;
|
;;
|
||||||
mingw*)
|
mingw*)
|
||||||
XWIN_SERVER_NAME=Xming
|
XWIN_SERVER_NAME=Xming
|
||||||
|
|
|
@ -746,6 +746,29 @@ OsVendorInit (void)
|
||||||
static void
|
static void
|
||||||
winUseMsg (void)
|
winUseMsg (void)
|
||||||
{
|
{
|
||||||
|
ErrorF("\n");
|
||||||
|
ErrorF("\n");
|
||||||
|
ErrorF(EXECUTABLE_NAME " Device Dependent Usage:\n");
|
||||||
|
ErrorF("\n");
|
||||||
|
|
||||||
|
#ifdef XWIN_CLIPBOARD
|
||||||
|
ErrorF ("-[no]clipboard\n"
|
||||||
|
"\tEnable [disable] the clipboard integration. Default is enabled.\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ErrorF ("-clipupdates num_boxes\n"
|
||||||
|
"\tUse a clipping region to constrain shadow update blits to\n"
|
||||||
|
"\tthe updated region when num_boxes, or more, are in the\n"
|
||||||
|
"\tupdated region.\n");
|
||||||
|
|
||||||
|
#ifdef XWIN_XF86CONFIG
|
||||||
|
ErrorF ("-config\n"
|
||||||
|
"\tSpecify a configuration file.\n");
|
||||||
|
|
||||||
|
ErrorF ("-configdir\n"
|
||||||
|
"\tSpecify a configuration directory.\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
ErrorF ("-depth bits_per_pixel\n"
|
ErrorF ("-depth bits_per_pixel\n"
|
||||||
"\tSpecify an optional bitdepth to use in fullscreen mode\n"
|
"\tSpecify an optional bitdepth to use in fullscreen mode\n"
|
||||||
"\twith a DirectDraw engine.\n");
|
"\twith a DirectDraw engine.\n");
|
||||||
|
@ -754,6 +777,15 @@ winUseMsg (void)
|
||||||
"\tEmulate 3 button mouse with an optional timeout in\n"
|
"\tEmulate 3 button mouse with an optional timeout in\n"
|
||||||
"\tmilliseconds.\n");
|
"\tmilliseconds.\n");
|
||||||
|
|
||||||
|
#ifdef XWIN_EMULATEPSEUDO
|
||||||
|
ErrorF ("-emulatepseudo\n"
|
||||||
|
"\tCreate a depth 8 PseudoColor visual when running in\n"
|
||||||
|
"\tdepths 15, 16, 24, or 32, collectively known as TrueColor\n"
|
||||||
|
"\tdepths. The PseudoColor visual does not have correct colors,\n"
|
||||||
|
"\tand it may crash, but it at least allows you to run your\n"
|
||||||
|
"\tapplication in TrueColor modes.\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
ErrorF ("-engine engine_type_id\n"
|
ErrorF ("-engine engine_type_id\n"
|
||||||
"\tOverride the server's automatically selected engine type:\n"
|
"\tOverride the server's automatically selected engine type:\n"
|
||||||
"\t\t1 - Shadow GDI\n"
|
"\t\t1 - Shadow GDI\n"
|
||||||
|
@ -767,10 +799,69 @@ winUseMsg (void)
|
||||||
ErrorF ("-fullscreen\n"
|
ErrorF ("-fullscreen\n"
|
||||||
"\tRun the server in fullscreen mode.\n");
|
"\tRun the server in fullscreen mode.\n");
|
||||||
|
|
||||||
|
ErrorF ("-ignoreinput\n"
|
||||||
|
"\tIgnore keyboard and mouse input.\n");
|
||||||
|
|
||||||
|
#ifdef XWIN_MULTIWINDOWEXTWM
|
||||||
|
ErrorF ("-internalwm\n"
|
||||||
|
"\tRun the internal window manager.\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef XWIN_XF86CONFIG
|
||||||
|
ErrorF ("-keyboard\n"
|
||||||
|
"\tSpecify a keyboard device from the configuration file.\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ErrorF ("-[no]keyhook\n"
|
||||||
|
"\tGrab special Windows keypresses like Alt-Tab or the Menu "
|
||||||
|
"key.\n");
|
||||||
|
|
||||||
|
ErrorF ("-lesspointer\n"
|
||||||
|
"\tHide the windows mouse pointer when it is over any\n"
|
||||||
|
"\t" EXECUTABLE_NAME " window. This prevents ghost cursors appearing when\n"
|
||||||
|
"\tthe Windows cursor is drawn on top of the X cursor\n");
|
||||||
|
|
||||||
|
ErrorF ("-logfile filename\n"
|
||||||
|
"\tWrite log messages to <filename>.\n");
|
||||||
|
|
||||||
|
ErrorF ("-logverbose verbosity\n"
|
||||||
|
"\tSet the verbosity of log messages. [NOTE: Only a few messages\n"
|
||||||
|
"\trespect the settings yet]\n"
|
||||||
|
"\t\t0 - only print fatal error.\n"
|
||||||
|
"\t\t1 - print additional configuration information.\n"
|
||||||
|
"\t\t2 - print additional runtime information [default].\n"
|
||||||
|
"\t\t3 - print debugging and tracing information.\n");
|
||||||
|
|
||||||
|
ErrorF ("-[no]multimonitors or -[no]multiplemonitors\n"
|
||||||
|
"\tUse the entire virtual screen if multiple\n"
|
||||||
|
"\tmonitors are present.\n");
|
||||||
|
|
||||||
|
#ifdef XWIN_MULTIWINDOW
|
||||||
|
ErrorF ("-multiwindow\n"
|
||||||
|
"\tRun the server in multi-window mode.\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef XWIN_MULTIWINDOWEXTWM
|
||||||
|
ErrorF ("-mwextwm\n"
|
||||||
|
"\tRun the server in multi-window external window manager mode.\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ErrorF ("-nodecoration\n"
|
||||||
|
"\tDo not draw a window border, title bar, etc. Windowed\n"
|
||||||
|
"\tmode only.\n");
|
||||||
|
|
||||||
|
#ifdef XWIN_CLIPBOARD
|
||||||
|
ErrorF ("-nounicodeclipboard\n"
|
||||||
|
"\tDo not use Unicode clipboard even if on a NT-based platform.\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
ErrorF ("-refresh rate_in_Hz\n"
|
ErrorF ("-refresh rate_in_Hz\n"
|
||||||
"\tSpecify an optional refresh rate to use in fullscreen mode\n"
|
"\tSpecify an optional refresh rate to use in fullscreen mode\n"
|
||||||
"\twith a DirectDraw engine.\n");
|
"\twith a DirectDraw engine.\n");
|
||||||
|
|
||||||
|
ErrorF ("-rootless\n"
|
||||||
|
"\tRun the server in rootless mode.\n");
|
||||||
|
|
||||||
ErrorF ("-screen scr_num [width height [x y] | [[WxH[+X+Y]][@m]] ]\n"
|
ErrorF ("-screen scr_num [width height [x y] | [[WxH[+X+Y]][@m]] ]\n"
|
||||||
"\tEnable screen scr_num and optionally specify a width and\n"
|
"\tEnable screen scr_num and optionally specify a width and\n"
|
||||||
"\theight and initial position for that screen. Additionally\n"
|
"\theight and initial position for that screen. Additionally\n"
|
||||||
|
@ -781,120 +872,47 @@ winUseMsg (void)
|
||||||
"\t -screen 0 1024x768@3 ; 3rd monitor size 1024x768\n"
|
"\t -screen 0 1024x768@3 ; 3rd monitor size 1024x768\n"
|
||||||
"\t -screen 0 @1 ; on 1st monitor using its full resolution (the default)\n");
|
"\t -screen 0 @1 ; on 1st monitor using its full resolution (the default)\n");
|
||||||
|
|
||||||
ErrorF ("-lesspointer\n"
|
|
||||||
"\tHide the windows mouse pointer when it is over an inactive\n"
|
|
||||||
"\t" PROJECT_NAME " window. This prevents ghost cursors appearing where\n"
|
|
||||||
"\tthe Windows cursor is drawn overtop of the X cursor\n");
|
|
||||||
|
|
||||||
ErrorF ("-nodecoration\n"
|
|
||||||
"\tDo not draw a window border, title bar, etc. Windowed\n"
|
|
||||||
"\tmode only.\n");
|
|
||||||
|
|
||||||
#ifdef XWIN_MULTIWINDOWEXTWM
|
|
||||||
ErrorF ("-mwextwm\n"
|
|
||||||
"\tRun the server in multi-window external window manager mode.\n");
|
|
||||||
|
|
||||||
ErrorF ("-internalwm\n"
|
|
||||||
"\tRun the internal window manager.\n");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ErrorF ("-rootless\n"
|
|
||||||
"\tRun the server in rootless mode.\n");
|
|
||||||
|
|
||||||
#ifdef XWIN_MULTIWINDOW
|
|
||||||
ErrorF ("-multiwindow\n"
|
|
||||||
"\tRun the server in multi-window mode.\n");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ErrorF ("-multiplemonitors\n"
|
|
||||||
"\tEXPERIMENTAL: Use the entire virtual screen if multiple\n"
|
|
||||||
"\tmonitors are present.\n");
|
|
||||||
|
|
||||||
#ifdef XWIN_CLIPBOARD
|
|
||||||
ErrorF ("-[no]clipboard\n"
|
|
||||||
"\tEnable [disable] the clipboard integration. Default is enabled.\n");
|
|
||||||
|
|
||||||
ErrorF ("-nounicodeclipboard\n"
|
|
||||||
"\tDo not use Unicode clipboard even if NT-based platform.\n");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ErrorF ("-scrollbars\n"
|
ErrorF ("-scrollbars\n"
|
||||||
"\tIn windowed mode, allow screens bigger than the Windows desktop.\n"
|
"\tIn windowed mode, allow screens bigger than the Windows desktop.\n"
|
||||||
"\tMoreover, if the window has decorations, one can now resize\n"
|
"\tMoreover, if the window has decorations, one can now resize\n"
|
||||||
"\tit.\n");
|
"\tit.\n");
|
||||||
|
|
||||||
|
ErrorF ("-silent-dup-error\n"
|
||||||
|
"\tIf another instance of " EXECUTABLE_NAME " with the same display number is running\n"
|
||||||
|
"\texit silently and don’t display any error message.\n");
|
||||||
|
|
||||||
|
ErrorF ("-swcursor\n"
|
||||||
|
"\tDisable the usage of the Windows cursor and use the X11 software\n"
|
||||||
|
"\tcursor instead.\n");
|
||||||
|
|
||||||
ErrorF ("-[no]trayicon\n"
|
ErrorF ("-[no]trayicon\n"
|
||||||
"\tDo not create a tray icon. Default is to create one\n"
|
"\tDo not create a tray icon. Default is to create one\n"
|
||||||
"\ticon per screen. You can globally disable tray icons with\n"
|
"\ticon per screen. You can globally disable tray icons with\n"
|
||||||
"\t-notrayicon, then enable it for specific screens with\n"
|
"\t-notrayicon, then enable it for specific screens with\n"
|
||||||
"\t-trayicon for those screens.\n");
|
"\t-trayicon for those screens.\n");
|
||||||
|
|
||||||
ErrorF ("-clipupdates num_boxes\n"
|
|
||||||
"\tUse a clipping region to constrain shadow update blits to\n"
|
|
||||||
"\tthe updated region when num_boxes, or more, are in the\n"
|
|
||||||
"\tupdated region. Currently supported only by `-engine 1'.\n");
|
|
||||||
|
|
||||||
#ifdef XWIN_EMULATEPSEUDO
|
|
||||||
ErrorF ("-emulatepseudo\n"
|
|
||||||
"\tCreate a depth 8 PseudoColor visual when running in\n"
|
|
||||||
"\tdepths 15, 16, 24, or 32, collectively known as TrueColor\n"
|
|
||||||
"\tdepths. The PseudoColor visual does not have correct colors,\n"
|
|
||||||
"\tand it may crash, but it at least allows you to run your\n"
|
|
||||||
"\tapplication in TrueColor modes.\n");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ErrorF ("-[no]unixkill\n"
|
ErrorF ("-[no]unixkill\n"
|
||||||
"\tCtrl+Alt+Backspace exits the X Server.\n");
|
"\tCtrl+Alt+Backspace exits the X Server.\n");
|
||||||
|
|
||||||
ErrorF ("-[no]winkill\n"
|
ErrorF ("-[no]winkill\n"
|
||||||
"\tAlt+F4 exits the X Server.\n");
|
"\tAlt+F4 exits the X Server.\n");
|
||||||
|
|
||||||
#ifdef XWIN_XF86CONFIG
|
|
||||||
ErrorF ("-config\n"
|
|
||||||
"\tSpecify a configuration file.\n");
|
|
||||||
|
|
||||||
ErrorF ("-configdir\n"
|
|
||||||
"\tSpecify a configuration directory.\n");
|
|
||||||
|
|
||||||
ErrorF ("-keyboard\n"
|
|
||||||
"\tSpecify a keyboard device from the configuration file.\n");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ErrorF ("-xkbrules XKBRules\n"
|
|
||||||
"\tEquivalent to XKBRules in XF86Config files.\n");
|
|
||||||
|
|
||||||
ErrorF ("-xkbmodel XKBModel\n"
|
|
||||||
"\tEquivalent to XKBModel in XF86Config files.\n");
|
|
||||||
|
|
||||||
ErrorF ("-xkblayout XKBLayout\n"
|
ErrorF ("-xkblayout XKBLayout\n"
|
||||||
"\tEquivalent to XKBLayout in XF86Config files.\n"
|
"\tEquivalent to XKBLayout in XF86Config files.\n"
|
||||||
"\tFor example: -xkblayout de\n");
|
"\tFor example: -xkblayout de\n");
|
||||||
|
|
||||||
ErrorF ("-xkbvariant XKBVariant\n"
|
ErrorF ("-xkbmodel XKBModel\n"
|
||||||
"\tEquivalent to XKBVariant in XF86Config files.\n"
|
"\tEquivalent to XKBModel in XF86Config files.\n");
|
||||||
"\tFor example: -xkbvariant nodeadkeys\n");
|
|
||||||
|
|
||||||
ErrorF ("-xkboptions XKBOptions\n"
|
ErrorF ("-xkboptions XKBOptions\n"
|
||||||
"\tEquivalent to XKBOptions in XF86Config files.\n");
|
"\tEquivalent to XKBOptions in XF86Config files.\n");
|
||||||
|
|
||||||
ErrorF ("-logfile filename\n"
|
ErrorF ("-xkbrules XKBRules\n"
|
||||||
"\tWrite logmessages to <filename> instead of /tmp/Xwin.log.\n");
|
"\tEquivalent to XKBRules in XF86Config files.\n");
|
||||||
|
|
||||||
ErrorF ("-logverbose verbosity\n"
|
ErrorF ("-xkbvariant XKBVariant\n"
|
||||||
"\tSet the verbosity of logmessages. [NOTE: Only a few messages\n"
|
"\tEquivalent to XKBVariant in XF86Config files.\n"
|
||||||
"\trespect the settings yet]\n"
|
"\tFor example: -xkbvariant nodeadkeys\n");
|
||||||
"\t\t0 - only print fatal error.\n"
|
|
||||||
"\t\t1 - print additional configuration information.\n"
|
|
||||||
"\t\t2 - print additional runtime information [default].\n"
|
|
||||||
"\t\t3 - print debugging and tracing information.\n");
|
|
||||||
|
|
||||||
ErrorF ("-[no]keyhook\n"
|
|
||||||
"\tGrab special windows key combinations like Alt-Tab or the Menu "
|
|
||||||
"key.\n These keys are discarded by default.\n");
|
|
||||||
|
|
||||||
ErrorF ("-swcursor\n"
|
|
||||||
"\tDisable the usage of the windows cursor and use the X11 software "
|
|
||||||
"cursor instead\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See Porting Layer Definition - p. 57 */
|
/* See Porting Layer Definition - p. 57 */
|
||||||
|
|
|
@ -151,7 +151,7 @@ XWin_DEPENDENCIES = $(XWIN_LIBS)
|
||||||
XWin_LDADD = $(MULTIWINDOWEXTWM_LIBS) $(XWIN_LIBS) $(MAIN_LIB) $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XWIN_SYS_LIBS)
|
XWin_LDADD = $(MULTIWINDOWEXTWM_LIBS) $(XWIN_LIBS) $(MAIN_LIB) $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XWIN_SYS_LIBS)
|
||||||
|
|
||||||
.rc.o:
|
.rc.o:
|
||||||
$(WINDRES) --use-temp-file -i $< --input-format=rc -o $@ -O coff -DPROJECT_NAME=\"$(VENDOR_NAME_SHORT)\"
|
$(WINDRES) --use-temp-file -i $< --input-format=rc -o $@ -O coff -I $(top_builddir)/include
|
||||||
|
|
||||||
XWin_LDFLAGS = -mwindows -static
|
XWin_LDFLAGS = -mwindows -static
|
||||||
|
|
||||||
|
@ -190,12 +190,14 @@ XWinrc.$(FILE_MAN_SUFFIX): XWinrc.man
|
||||||
|
|
||||||
EXTRAMANDEFS = -D__logdir__=$(logdir) -D__sysconfdir__=$(sysconfdir) -D__datadir__=$(datadir)
|
EXTRAMANDEFS = -D__logdir__=$(logdir) -D__sysconfdir__=$(sysconfdir) -D__datadir__=$(datadir)
|
||||||
|
|
||||||
|
xwinconfigdir = $(sysconfdir)/X11
|
||||||
|
xwinconfig_DATA = system.XWinrc
|
||||||
|
|
||||||
include $(top_srcdir)/cpprules.in
|
include $(top_srcdir)/cpprules.in
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
$(GLX_EXTRAS) \
|
$(GLX_EXTRAS) \
|
||||||
$(MAN_SRCS) \
|
$(MAN_SRCS) \
|
||||||
_usr_X11R6_lib_X11_system.XWinrc \
|
|
||||||
X.ico \
|
X.ico \
|
||||||
XWin.rc \
|
XWin.rc \
|
||||||
xlaunch/config.cc \
|
xlaunch/config.cc \
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||||
|
<description>The XWin X Windows server for Cygwin.</description>
|
||||||
|
<dependency>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity
|
||||||
|
type="win32"
|
||||||
|
name="Microsoft.Windows.Common-Controls"
|
||||||
|
version="6.0.0.0"
|
||||||
|
processorArchitecture="X86"
|
||||||
|
publicKeyToken="6595b64144ccf1df"
|
||||||
|
language="*"
|
||||||
|
/>
|
||||||
|
</dependentAssembly>
|
||||||
|
</dependency>
|
||||||
|
</assembly>
|
|
@ -9,96 +9,124 @@ XWin \- X Server for the Cygwin environment on Microsoft Windows
|
||||||
|
|
||||||
|
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.I XWin is an X Server for the X Window System on the Cygwin environment
|
\fIXWin\fP is an X Server for the X Window System on the Cygwin environment
|
||||||
running on Microsoft Windows.
|
running on Microsoft Windows.
|
||||||
|
|
||||||
|
|
||||||
.SH MODES
|
.SH MODES
|
||||||
\fIXWin\fP can operate in five different and incompatible modes:
|
\fIXWin\fP can operate in 3 different modes:
|
||||||
.br
|
.br
|
||||||
* \fISingle Window\fP: This is the default option. The X server
|
* \fISingle Window\fP: This is the default mode. Each X screen
|
||||||
appears as a single Windows window and all X windows are contained
|
appears as a single \fIWindows\fP window and all X windows are contained
|
||||||
within this window. This mode requires an external window manager.
|
within this window.
|
||||||
.br
|
(In X terminology, the \fIWindows\fP window contains the root window for
|
||||||
* \fINo Decoration\fP: This mode is like single window mode except
|
the screen)
|
||||||
that the X server window does not have a title bar or border, thus
|
|
||||||
maximizing the amount of space available for X windows within the X
|
|
||||||
server window. This mode requires an external window manager.
|
|
||||||
.br
|
|
||||||
* \fIFull Screen\fP: This mode is like single window mode except that
|
|
||||||
the X server window takes the full screen, covering completely the
|
|
||||||
Windows desktop. This mode requires an external window manager.
|
|
||||||
.br
|
|
||||||
* \fIRootless\fP: The X server works on a window covering the whole
|
|
||||||
screen but the root window (traditionally covered with an X hatch
|
|
||||||
pattern) is hidden from view. This mode requires an external window
|
|
||||||
manager.
|
|
||||||
.br
|
.br
|
||||||
* \fIMulti-Window\fP: In this mode \fIXWin\fP uses its own integrated
|
* \fIMulti-Window\fP: In this mode \fIXWin\fP uses its own integrated
|
||||||
window manager in order to handle the top-level X windows, in such a
|
window manager in order to handle the top-level X windows, in such a
|
||||||
way that they appear as normal Windows windows.
|
way that they appear as normal \fIWindows\fP windows.
|
||||||
.PP
|
|
||||||
NOTE: \fIMulti-Window\fP mode will crash if an external window manager
|
|
||||||
such as \fItwm\fP or \fIfvwm\fP is launched since \fIMulti-Window\fP
|
|
||||||
uses its own internal window manager; all other modes require an
|
|
||||||
external window manager in order to move, resize, and perform other
|
|
||||||
operations on the individual X windows.
|
|
||||||
|
|
||||||
|
|
||||||
.SH LOG
|
|
||||||
As it runs \fIXWin\fP writes messages indicating the most relevant events
|
|
||||||
to the console
|
|
||||||
from which it was called and to a log file that by default is located at \fI
|
|
||||||
__logdir__/XWin.0.log\fP. This file is mainly for debugging purposes.
|
|
||||||
|
|
||||||
|
|
||||||
.SH PREFERENCES FILE
|
|
||||||
On startup \fIXWin\fP looks for the file \fI$HOME/.XWinrc\fP or, if
|
|
||||||
the previous file does not exist, \fI
|
|
||||||
__sysconfdir__/X11/system.XWinrc\fP. \fI.XWinrc\fP allows setting
|
|
||||||
preferences for the following:
|
|
||||||
.br
|
.br
|
||||||
1- To include items into the menu associated with the \fIXWin\fP icon
|
* \fIRootless\fP: In this mode the X server works in a window
|
||||||
which is in the \fIWindows\fP system tray. This functions in all
|
containing the whole screen but this root window (traditionally covered with an X hatch
|
||||||
modes that have a tray icon.
|
pattern) is hidden from view, so only top-level X windows are seen.
|
||||||
.br
|
|
||||||
2- To include items in the menu which is associated with the Windows
|
|
||||||
window that \fIXWin -multiwindow\fP produces for each top-level X
|
|
||||||
window. That can be done both for the generic case and for particular
|
|
||||||
programs.
|
|
||||||
.br
|
|
||||||
3- To change the icon that is associated to the Windows window that
|
|
||||||
\fIXWin -multiwindow\fP produces for each top-level X-window. Again,
|
|
||||||
that can be done both for the generic case and for particular
|
|
||||||
programs.
|
|
||||||
.PP
|
|
||||||
The format of the \fI.XWinrc\fP file is given in the man page XWinrc(5).
|
|
||||||
|
|
||||||
|
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
In addition to the normal server options described in the \fIXserver(1)\fP
|
In addition to the normal server options described in the \fIXserver(1)\fP
|
||||||
manual page, \fIXWin\fP accepts the following command line switches,
|
manual page, \fIXWin\fP accepts the following command line switches,
|
||||||
\fIall\fP of which are optional:
|
\fIall\fP of which are optional:
|
||||||
|
|
||||||
|
.SH OPTIONS CONTROLLING WINDOWING MODE
|
||||||
|
Only one of these options may be specified.
|
||||||
|
.TP 8
|
||||||
|
.B (default)
|
||||||
|
Windowed or rooted mode.
|
||||||
|
Each X screen appears as a single \fIWindows\fP window and all X windows are
|
||||||
|
contained within those windows.
|
||||||
|
.TP 8
|
||||||
|
.B \-multiwindow
|
||||||
|
Each top-level X window appears in its own \fIWindows\fP window.
|
||||||
|
Also start the integrated \fIWindows\fP-based window manager.
|
||||||
|
.TP 8
|
||||||
|
.B \-rootless
|
||||||
|
Run the server in rootless mode.
|
||||||
|
The X server works on a window covering the whole screen but the root window
|
||||||
|
is hidden from view.
|
||||||
|
.TP 8
|
||||||
|
.B \-mwextwm
|
||||||
|
Experimental.
|
||||||
|
The mode combines \fB\-rootless\fP mode drawing with native \fIWindows\fP
|
||||||
|
window frames managed by the experimental external window manager \fIxwinwm\fP.
|
||||||
|
.PP
|
||||||
|
\fBNOTE:\fP \fI-multiwindow\fP mode uses its own internal window manager.
|
||||||
|
All other modes require an external window manager in order to move, resize, and perform other
|
||||||
|
operations on the individual X windows.
|
||||||
|
|
||||||
|
.SH OPTIONS FOR SPECIFYING X SCREENS
|
||||||
|
An X display may be composed of multiple screens.
|
||||||
|
The default behaviour is to create a single screen 0 that is roughly the
|
||||||
|
size of useful area of the primary monitor (allowing for any window
|
||||||
|
decorations and the task-bar).
|
||||||
|
|
||||||
|
Screen specific parameters, such as \fB\-fullscreen\fP, can be applied as a
|
||||||
|
default to all screens by placing those screen specific parameters
|
||||||
|
before any \fB\-screen\fP parameter. Screen specific parameters placed after
|
||||||
|
the first \fB\-screen\fP parameter will apply only to the immediately
|
||||||
|
preceeding \fB\-screen\fP parameter.
|
||||||
|
.TP 8
|
||||||
|
.B \-[no]multimonitors or \-[no]multiplemonitors
|
||||||
|
Create a screen 0 that covers all monitors [the primary monitor] on a system with
|
||||||
|
multiple monitors.
|
||||||
|
This option is currently enabled by default in \fB\-multiwindow\fP mode.
|
||||||
|
.TP 8
|
||||||
|
.B "\-screen \fIscreen_number\fP [\fIW\fP \fIH\fP [\fIX\fP \fIY\fP] | [[\fIW\fPx\fIH\fP[+\fIX\fP+\fIY\fP]][@\fIM\fP]] ] "
|
||||||
|
Create screen number
|
||||||
|
.I screen_number
|
||||||
|
and optionally specify it's
|
||||||
|
.I height,
|
||||||
|
.I width
|
||||||
|
and
|
||||||
|
.I initial position.
|
||||||
|
Additionally a
|
||||||
|
.I
|
||||||
|
monitor number
|
||||||
|
(which count from 1) can be specified to place the screen on,
|
||||||
|
at which point, all coordinates become relative to that monitor.
|
||||||
|
Screen numbers must be contiguous starting from zero and cannot be duplicated.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
.I " -screen 0 @1 ; on 1st monitor using its full resolution (the default)"
|
||||||
|
|
||||||
|
.I " -screen 0 800x600+100+100@2 ; on 2nd monitor offset 100,100 size 800x600"
|
||||||
|
|
||||||
|
.I " -screen 0 1024x768@3 ; on 3rd monitor size 1024x768"
|
||||||
|
|
||||||
|
.SH OPTIONS CONTROLLING THE APPEARANCE OF THE X SCREEN WINDOWS
|
||||||
|
These parameters only apply to windowed mode screens i.e. not
|
||||||
|
in \fB-multwindow\fP or \fB-rootless\fP mode
|
||||||
|
.TP 8
|
||||||
|
.B "\-fullscreen"
|
||||||
|
The X server window takes the full screen, covering completely the
|
||||||
|
\fIWindows\fP desktop.
|
||||||
|
.TP 8
|
||||||
|
.B \-nodecoration
|
||||||
|
Do not give the Cygwin/X window a \fIWindows\fP window border, title bar,
|
||||||
|
etc.
|
||||||
|
This parameter is ignored when the \fB\-fullscreen\fP parameter is specified.
|
||||||
|
.TP 8
|
||||||
|
.B \-scrollbars
|
||||||
|
In windowed mode, allow screens bigger than the \fIWindows\fP desktop.
|
||||||
|
Moreover, if the window has decorations, one can now resize it.
|
||||||
|
This parameter is ignored when the \fB\-fullscreen\fP parameter is specified.
|
||||||
|
|
||||||
|
|
||||||
|
.SH OPTIONS CONTROLLING WINDOWS INTEGRATION
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-[no]clipboard
|
.B \-[no]clipboard
|
||||||
Enables [disables] the integration between the Cygwin/X clipboard and
|
Enables [disables] the integration between the Cygwin/X clipboard and
|
||||||
Windows clipboard. The default is enabled.
|
\fIWindows\fP clipboard. The default is enabled.
|
||||||
.TP 8
|
.TP 8
|
||||||
.B "\-clipupdates \fInum_boxes\fP"
|
.B "\-emulate3buttons [\fItimeout\fP]"
|
||||||
Specify an optional threshold, above which the boxes in a shadow
|
|
||||||
update operation will be collected into a GDI clipping region. The
|
|
||||||
clipping region is then used to do a single bit block transfer that is
|
|
||||||
constrained to the updated area by the clipping region. There is some
|
|
||||||
overhead involved in creating, installing, destroying, and removing
|
|
||||||
the clipping region, thus there may not be much benefit for a small
|
|
||||||
number of boxes (less than 10). It is even possible that this
|
|
||||||
functionality does not provide a benefit at any number of boxes; we
|
|
||||||
can only determine the usefulness of this feature through testing.
|
|
||||||
This parameter works in conjunction with engines 1, 2, and 4 (Shadow
|
|
||||||
GDI, Shadow DirectDraw, and Shadow DirectDraw Non-Locking,
|
|
||||||
respectively).
|
|
||||||
.TP 8
|
|
||||||
.B "\-emulate3buttons \fItimeout\fP"
|
|
||||||
Emulate a three button mouse; pressing both buttons within
|
Emulate a three button mouse; pressing both buttons within
|
||||||
.I timeout
|
.I timeout
|
||||||
milliseconds causes an emulated middle button press. The default
|
milliseconds causes an emulated middle button press. The default
|
||||||
|
@ -107,108 +135,21 @@ is 50 milliseconds. Note that most mice with scroll wheel have middle
|
||||||
button functionality, usually you will need this option only if you have
|
button functionality, usually you will need this option only if you have
|
||||||
a two button mouse without scroll wheel.
|
a two button mouse without scroll wheel.
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-emulatepseudo
|
|
||||||
Create a depth 8 PseudoColor visual when running in depths 15, 16, 24,
|
|
||||||
or 32, collectively known as TrueColor depths.
|
|
||||||
At this date (April 2004) this option is not still operative.
|
|
||||||
.TP 8
|
|
||||||
.B "\-engine \fIengine_type_id\fP"
|
|
||||||
This option, which is intended for Cygwin/X developers,
|
|
||||||
overrides the server's automatically supported engine type. This
|
|
||||||
parameter will be ignored if the specified engine type is not
|
|
||||||
supported on the current system. The supported engine type ids are 1
|
|
||||||
- Shadow GDI, 2 - Shadow DirectDraw, and 4 - Shadow DirectDraw4.
|
|
||||||
Additionally, there is a barely functional experimental engine type id
|
|
||||||
16 - Native GDI.
|
|
||||||
.TP 8
|
|
||||||
.B "\-fullscreen [-depth \fIdepth\fP] [-refresh \fIrate_in_Hz\fP]"
|
|
||||||
Run the server in fullscreen mode, as opposed to the default windowed
|
|
||||||
mode.
|
|
||||||
.TP 8
|
|
||||||
.B "\-depth \fIdepth\fP"
|
|
||||||
Specify the color depth, in bits per pixel, to use when running in
|
|
||||||
fullscreen with a DirectDraw engine. This parameter is ignored if
|
|
||||||
\fB\-fullscreen\fP is not specified.
|
|
||||||
.TP 8
|
|
||||||
.B "\-refresh \fIrate_in_Hz\fP"
|
|
||||||
Specify an optional refresh rate to use when running in
|
|
||||||
fullscreen with a DirectDraw engine. This parameter is ignored if
|
|
||||||
\fB\-fullscreen\fP is not specified.
|
|
||||||
.TP 8
|
|
||||||
.B \-help
|
|
||||||
Write a help text to the console and to the log file.
|
|
||||||
.TP 8
|
|
||||||
.B \-ignoreinput
|
|
||||||
Ignore keyboard and mouse input. This is usually only used for testing
|
|
||||||
and debugging purposes.
|
|
||||||
.TP 8
|
|
||||||
.B \-[no]keyhook
|
.B \-[no]keyhook
|
||||||
Enable [disable] a low-level keyboard hook for catching
|
Enable [disable] a low-level keyboard hook for catching
|
||||||
special key combinations like Alt+Tab and passing them to the X
|
special keypresses like Menu and Alt+Tab and passing them to the X
|
||||||
Server instead of letting \fIWindows\fP handle them.
|
Server instead of letting \fIWindows\fP handle them.
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-lesspointer
|
.B \-lesspointer
|
||||||
Hide the Windows mouse cursor when the mouse is over any Cygwin/X
|
Normally the \fIWindows\fP mouse cursor is hidden when the mouse is
|
||||||
window (regardless of whether that window is active or inactive). This
|
over an active Cygwin/X window. This option causes the mouse cursor
|
||||||
prevents the Windows mouse cursor from being placed overtop of the X
|
also to be hidden when it is over an inactive Cygwin/X window. This
|
||||||
|
prevents the \fIWindows\fP mouse cursor from being drawn on top of the X
|
||||||
cursor.
|
cursor.
|
||||||
|
This parameter has no effect unless \fB-swcursor\fP is also specified.
|
||||||
.TP 8
|
.TP 8
|
||||||
.B "\-logfile \fIFile_Name\fP"
|
.B \-swcursor
|
||||||
Change the log file from the default located at \fI
|
Disable the usage of the \fIWindows\fP cursor and use the X11 software cursor instead.
|
||||||
__logdir__/XWin.0.log\fP to the one indicated by \fIFile_Name\fP.
|
|
||||||
.TP 8
|
|
||||||
.B "\-logverbose \fIlevel\fP"
|
|
||||||
Control the degree of verbosity of the log messages with the integer
|
|
||||||
parameter \fIlevel\fP. For \fIlevel\fP=0 only fatal errors are
|
|
||||||
reported, for \fIlevel\fP=1 (default) simple information about
|
|
||||||
configuration is also given, for \fIlevel\fP=2 a detailed log
|
|
||||||
information (including trace and debug output) is produced. Bigger
|
|
||||||
values will yield a still more detailed debug output. At this date
|
|
||||||
(April 2004) the option is still not fully operative; the default
|
|
||||||
value is 2 and the output is insensitive to the level value.
|
|
||||||
.TP 8
|
|
||||||
.B \-multimonitors
|
|
||||||
Create a root window that covers all monitors on a system with
|
|
||||||
multiple monitors.
|
|
||||||
.TP 8
|
|
||||||
.B \-multiwindow
|
|
||||||
Start the integrated \fIWindowsi\fP-based window manager, which launches each
|
|
||||||
top-level X window in its own \fIWindows\fP window. Not to be used together
|
|
||||||
with \fB\-rootless\fP nor \fB\-fullscreen\fP.
|
|
||||||
.TP 8
|
|
||||||
.B \-nodecoration
|
|
||||||
Do not give the Cygwin/X window a Windows window border, title bar,
|
|
||||||
etc. This parameter only applies to windowed mode screens, i.e., this
|
|
||||||
parameter is ignored when the \fB\-fullscreen\fP parameter is specified.
|
|
||||||
.TP 8
|
|
||||||
.B \-nounicodeclipboard
|
|
||||||
Do not use Unicode clipboard even if NT-based platform.
|
|
||||||
.TP 8
|
|
||||||
.B \-rootless
|
|
||||||
Run the server in rootless mode. Not to be used with \fB\-multiwindow\fP
|
|
||||||
nor with \fB\-fullscreen\fP.
|
|
||||||
.TP 8
|
|
||||||
.B "\-screen \fIscreen_number\fP \fIwidth\fP \fIheight\fP"
|
|
||||||
This parameter may be used to specify the
|
|
||||||
.I screen_number,
|
|
||||||
.I height,
|
|
||||||
and
|
|
||||||
.I width
|
|
||||||
of one or several Cygwin/X screens; each Cygwin/X screen will be
|
|
||||||
opened in its own window. When using multiple screens, be sure not to
|
|
||||||
duplicate any screen numbers.
|
|
||||||
.I XWin
|
|
||||||
default behavior is to create a single screen that is roughly
|
|
||||||
the size of the current Windows display area.
|
|
||||||
Screen specific parameters, such as \fB\-fullscreen\fP, can be applied as a
|
|
||||||
default to all screens by placing those screen specific parameters
|
|
||||||
before any \fB\-screen\fP parameter. Screen specific parameters placed after
|
|
||||||
the first \fB\-screen\fP parameter will apply only to the immediately
|
|
||||||
preceeding \fB\-screen\fP parameter.
|
|
||||||
.TP 8
|
|
||||||
.B \-scrollbars
|
|
||||||
In windowed mode, allow screens bigger than the Windows desktop.
|
|
||||||
Moreover, if the window has decorations, one can now resize it.
|
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-[no]trayicon
|
.B \-[no]trayicon
|
||||||
Do not create a tray icon. Default is to create one
|
Do not create a tray icon. Default is to create one
|
||||||
|
@ -216,6 +157,9 @@ icon per screen. You can globally disable tray icons with
|
||||||
\fB\-notrayicon\fP, then enable it for specific screens with
|
\fB\-notrayicon\fP, then enable it for specific screens with
|
||||||
\fB\-trayicon\fP for those screens.
|
\fB\-trayicon\fP for those screens.
|
||||||
.TP 8
|
.TP 8
|
||||||
|
.B \-nounicodeclipboard
|
||||||
|
Do not use Unicode clipboard even if on a NT-based platform.
|
||||||
|
.TP 8
|
||||||
.B \-[no]unixkill
|
.B \-[no]unixkill
|
||||||
Enable or disable the \fICtrl-Alt-Backspace\fP key combination as a
|
Enable or disable the \fICtrl-Alt-Backspace\fP key combination as a
|
||||||
signal to exit the X Server. The \fICtrl-Alt-Backspace\fP key combination
|
signal to exit the X Server. The \fICtrl-Alt-Backspace\fP key combination
|
||||||
|
@ -225,13 +169,78 @@ is disabled by default.
|
||||||
Enable or disable the \fIAlt-F4\fP key combination as a signal to exit the
|
Enable or disable the \fIAlt-F4\fP key combination as a signal to exit the
|
||||||
X Server.
|
X Server.
|
||||||
The \fIAlt-F4\fP key combination is enabled by default.
|
The \fIAlt-F4\fP key combination is enabled by default.
|
||||||
|
|
||||||
|
.SH DRAWING ENGINE OPTIONS
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-swcursor
|
.B "\-clipupdates \fInum_boxes\fP"
|
||||||
Disable the usage of the windows cursor and use the X11 software cursor instead.
|
Specify an optional threshold, above which the regions in a shadow
|
||||||
|
update operation will be collected into a GDI clipping region. The
|
||||||
|
clipping region is then used to do a single bit block transfer that is
|
||||||
|
constrained to the updated area by the clipping region. There is some
|
||||||
|
overhead involved in creating, installing, destroying, and removing
|
||||||
|
the clipping region, thus there may not be much benefit for a small
|
||||||
|
number of boxes (less than 10). It is even possible that this
|
||||||
|
functionality does not provide a benefit at any number of boxes; we
|
||||||
|
can only determine the usefulness of this feature through testing.
|
||||||
|
This option probably has limited effect on current \fIWindows\fP versions
|
||||||
|
as they already perform GDI batching.
|
||||||
|
This parameter works in conjunction with engines 1, 2, and 4 (Shadow
|
||||||
|
GDI, Shadow DirectDraw, and Shadow DirectDraw Non-Locking,
|
||||||
|
respectively).
|
||||||
|
.TP 8
|
||||||
|
.B "\-engine \fIengine_type_id\fP"
|
||||||
|
This option, which is intended for Cygwin/X developers,
|
||||||
|
overrides the server's automatically selected engine type. This
|
||||||
|
parameter will be ignored if the specified engine type is not
|
||||||
|
supported on the current system. The supported engine type ids are 1
|
||||||
|
- Shadow GDI, 2 - Shadow DirectDraw, and 4 - Shadow DirectDraw Non-Locking.
|
||||||
|
Additionally, there are engines with type ids
|
||||||
|
8 - Primary DirectDraw (obsolete) and 16 - Native GDI (experimental and barely functional).
|
||||||
|
Default behavior is to determine the engine with optimum performance that
|
||||||
|
supports the specified depth and window configuration.
|
||||||
|
|
||||||
|
.SH FULLSCREEN OPTIONS
|
||||||
|
.TP 8
|
||||||
|
.B "\-depth \fIdepth\fP"
|
||||||
|
Specify the color depth, in bits per pixel, to use when running in
|
||||||
|
fullscreen with a DirectDraw engine. This parameter is ignored if
|
||||||
|
\fB\-fullscreen\fP is not specified.
|
||||||
|
.TP 8
|
||||||
|
.B "\-refresh \fIrate_in_Hz\fP"
|
||||||
|
Specify an optional refresh rate to use when running in
|
||||||
|
fullscreen with a DirectDraw engine. This parameter is ignored if
|
||||||
|
\fB\-fullscreen\fP is not specified.
|
||||||
|
|
||||||
|
.SH MISCELLANEOUS OPTIONS
|
||||||
|
See also the normal server options described in the \fIXserver(1)\fP
|
||||||
|
manual page
|
||||||
|
|
||||||
|
.TP 8
|
||||||
|
.B \-help
|
||||||
|
Write a help text listing supported command line options and their description to the console.
|
||||||
|
.TP 8
|
||||||
|
.B \-ignoreinput
|
||||||
|
Ignore keyboard and mouse input. This is usually only used for testing
|
||||||
|
and debugging purposes.
|
||||||
|
.TP 8
|
||||||
|
.B "\-logfile \fIfilename\fP"
|
||||||
|
Change the server log file from the default of \fI
|
||||||
|
__logdir__/XWin.n.log\fP,
|
||||||
|
where \fIn\fP is the display number of the XWin server, to \fIfilename\fP.
|
||||||
|
.TP 8
|
||||||
|
.B "\-logverbose \fIlevel\fP"
|
||||||
|
Control the degree of verbosity of the log messages with the integer
|
||||||
|
parameter \fIlevel\fP. For \fIlevel\fP=0 only fatal errors are
|
||||||
|
reported, for \fIlevel\fP=1 simple information about
|
||||||
|
configuration is also given, for \fIlevel\fP=2 (default)
|
||||||
|
additional runtime information is recorded
|
||||||
|
and for \fIlevel\fP=3 detailed log
|
||||||
|
information (including trace and debug output) is produced. Bigger
|
||||||
|
values will yield a still more detailed debug output.
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-silent-dup-error
|
.B \-silent-dup-error
|
||||||
If another instance of XWin is found running, exit silently and don't display
|
If another instance of \fIXWin\fP with the same display number is found running,
|
||||||
the error message.
|
exit silently and don't display any error message.
|
||||||
.TP 8
|
.TP 8
|
||||||
.B "\-xkblayout \fIlayout\fP"
|
.B "\-xkblayout \fIlayout\fP"
|
||||||
.TP 8
|
.TP 8
|
||||||
|
@ -251,10 +260,60 @@ in order to load a German layout for a pc105 keyboard one uses
|
||||||
the options:
|
the options:
|
||||||
.br
|
.br
|
||||||
.I " \-xkblayout de \-xkbmodel pc105"
|
.I " \-xkblayout de \-xkbmodel pc105"
|
||||||
|
|
||||||
|
Alternatively one may use the \fIsetxkbmap\fP program after \fIXWin\fP is
|
||||||
|
running.
|
||||||
|
|
||||||
|
The default is to select a layout matching your current layout as
|
||||||
|
reported by \fIWindows\fP if known, or the default X server layout
|
||||||
|
if no matching keyboard layout was found.
|
||||||
|
|
||||||
|
.SH UNDOCUMENTED OPTIONS
|
||||||
|
These options are undocumented. Do not use them.
|
||||||
|
|
||||||
|
.TP 8
|
||||||
|
.B \-emulatepseudo
|
||||||
|
Create a depth 8 PseudoColor visual when running in depths 15, 16, 24,
|
||||||
|
or 32, collectively known as TrueColor depths.
|
||||||
|
Color map manipulation is not supported, so the PseudoColor visual will
|
||||||
|
not have the correct colors.
|
||||||
|
This option is intended to allow applications which only work with a depth 8
|
||||||
|
visual to operate in TrueColor modes.
|
||||||
|
.TP 8
|
||||||
|
.B \-internalwm
|
||||||
|
Run the internal window manager.
|
||||||
|
|
||||||
|
.SH LOG FILE
|
||||||
|
As it runs \fIXWin\fP writes messages indicating the most relevant events
|
||||||
|
to the console
|
||||||
|
from which it was called and to a log file that by default is located at \fI
|
||||||
|
__logdir__/XWin.0.log\fP. This file is mainly for debugging purposes.
|
||||||
|
|
||||||
|
|
||||||
|
.SH PREFERENCES FILE
|
||||||
|
On startup \fIXWin\fP looks for the file \fI$HOME/.XWinrc\fP or, if
|
||||||
|
the previous file does not exist, \fI
|
||||||
|
__sysconfdir__/X11/system.XWinrc\fP. \fI.XWinrc\fP allows setting
|
||||||
|
preferences for the following:
|
||||||
|
.br
|
||||||
|
* To include items into the menu associated with the \fIXWin\fP icon
|
||||||
|
which is in the \fIWindows\fP system tray. This functions in all
|
||||||
|
modes that have a tray icon.
|
||||||
|
.br
|
||||||
|
* To include items in the system menu which is associated with the \fIWindows\fP
|
||||||
|
window that \fIXWin -multiwindow\fP produces for each top-level X
|
||||||
|
window, in both the generic case and for particular programs.
|
||||||
|
.br
|
||||||
|
* To change the icon that is associated to the \fIWindows\fP window that
|
||||||
|
\fIXWin -multiwindow\fP produces for each top-level X-window.
|
||||||
|
.br
|
||||||
|
* To change the style that is associated to the \fIWindows\fP window that
|
||||||
|
\fXWin I-multiwindow\fP produces for each top-level X window.
|
||||||
.PP
|
.PP
|
||||||
Alternatively one may use the \fIsetxkbmap\fP program after XWin is
|
The format of the \fI.XWinrc\fP file is given in the man page XWinrc(5).
|
||||||
running or even the \fIxmodmap\fP program for loading the old-style
|
|
||||||
keyboard maps.
|
.SH EXAMPLES
|
||||||
|
Need some examples
|
||||||
|
|
||||||
|
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
|
@ -268,10 +327,9 @@ ones are:
|
||||||
.br
|
.br
|
||||||
- The display mode can not be changed once the X server has started.
|
- The display mode can not be changed once the X server has started.
|
||||||
.br
|
.br
|
||||||
- The XWin software is developing rapidly; it is therefore likely that
|
- The \fIXWin\fP software is continuously developing; it is therefore possible that
|
||||||
this man page is not up to date. It is always prudent to
|
this man page is not up to date. It is always prudent to
|
||||||
look also at the output of \fIXWin -help\fP and to the Cygwin/X User Guide
|
look also at the output of \fIXWin -help\fP in order to
|
||||||
at /usr/share/doc/cygwin-x-doc-x.x.x/ug/cygwin-x-ug.xxx in order to
|
|
||||||
check the options that are operative.
|
check the options that are operative.
|
||||||
|
|
||||||
|
|
||||||
|
@ -282,6 +340,7 @@ Adamson, Michael Bax, Jehan Bing, Lev Bishop, Dr. Peter Busch, Biju G
|
||||||
C, Robert Collins, Nick Crabtree, Early Ehlinger, Christopher Faylor,
|
C, Robert Collins, Nick Crabtree, Early Ehlinger, Christopher Faylor,
|
||||||
John Fortin, Brian Genisio, Fabrizio Gennari, Alexander Gottwald, Ralf
|
John Fortin, Brian Genisio, Fabrizio Gennari, Alexander Gottwald, Ralf
|
||||||
Habacker, Colin Harrison, Matthieu Herrb, Alan Hourihane, Pierre A
|
Habacker, Colin Harrison, Matthieu Herrb, Alan Hourihane, Pierre A
|
||||||
Humblet, Harold L Hunt II, Dakshinamurthy Karra, Kensuke Matsuzaki,
|
Humblet, Harold L Hunt II, Dakshinamurthy Karra, Joe Krahn,
|
||||||
Takuma Murakami, Earle F. Philhower III, Benjamin Riefenstahl, Suhaib
|
Paul Loewenstein, Kensuke Matsuzaki,
|
||||||
Siddiqi, Jack Tanner, and Nicholas Wourms.
|
Takuma Murakami, Earle F. Philhower III, Benjamin Riefenstahl, Yaakov Selkowitz,
|
||||||
|
Suhaib Siddiqi, Jack Tanner, Jon Turney and Nicholas Wourms.
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
/*
|
/*
|
||||||
*Copyright (C) 2002-2004 Harold L Hunt II All Rights Reserved.
|
*Copyright (C) 2002-2004 Harold L Hunt II All Rights Reserved.
|
||||||
|
*Copyright (C) 2008 Yaakov Selkowitz All Rights Reserved
|
||||||
*
|
*
|
||||||
*Permission is hereby granted, free of charge, to any person obtaining
|
*Permission is hereby granted, free of charge, to any person obtaining
|
||||||
* a copy of this software and associated documentation files (the
|
* a copy of this software and associated documentation files (the
|
||||||
|
@ -20,39 +21,37 @@
|
||||||
*CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
*CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
*WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
*WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*
|
*
|
||||||
*Except as contained in this notice, the name of Harold L Hunt II
|
*Except as contained in this notice, the names of the authors
|
||||||
*shall not be used in advertising or otherwise to promote the sale, use
|
*shall not be used in advertising or otherwise to promote the sale, use
|
||||||
*or other dealings in this Software without prior written authorization
|
*or other dealings in this Software without prior written authorization
|
||||||
*from Harold L Hunt II.
|
*from the authors.
|
||||||
*
|
*
|
||||||
* Authors: Harold L Hunt II
|
* Authors: Harold L Hunt II, Yaakov Selkowitz
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "windows.h"
|
#include <windows.h>
|
||||||
#include "winresource.h"
|
#include "winresource.h"
|
||||||
|
#include "xwin-config.h"
|
||||||
|
#include "version-config.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Dialogs
|
* Dialogs
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* About */
|
/* About */
|
||||||
ABOUT_BOX DIALOGEX 32, 32, 240, 105
|
ABOUT_BOX DIALOGEX 32, 32, 260, 105
|
||||||
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_TABSTOP | DS_CENTERMOUSE
|
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_TABSTOP | DS_CENTERMOUSE
|
||||||
CAPTION "About " PROJECT_NAME
|
CAPTION "About " XVENDORNAMESHORT
|
||||||
FONT 8, "MS Sans Serif"
|
FONT 8, "MS Shell Dlg 2"
|
||||||
BEGIN
|
BEGIN
|
||||||
CONTROL PROJECT_NAME " Website", ID_ABOUT_WEBSITE, "Button",
|
CONTROL IDI_XWIN, IDC_STATIC, "Static", SS_ICON, 8, 8, 32, 32
|
||||||
BS_OWNERDRAW | WS_TABSTOP, 30, 45, 75, 15
|
LTEXT XVENDORNAMESHORT " X Server ", IDC_STATIC, 36, 8, 220, 8
|
||||||
CONTROL "Change Log", ID_ABOUT_CHANGELOG, "Button",
|
LTEXT VENDOR_MAN_VERSION, IDC_STATIC, 36, 18, 220, 8
|
||||||
BS_OWNERDRAW | WS_TABSTOP, 135, 45, 75, 15
|
LTEXT BUILDERSTRING, IDC_STATIC, 36, 28, 220, 8
|
||||||
CONTROL "User's Guide", ID_ABOUT_UG, "Button",
|
LTEXT "This software is licensed under the terms of the MIT/X11 License.", IDC_STATIC, 36, 48, 220, 20
|
||||||
BS_OWNERDRAW | WS_TABSTOP, 30, 65, 75, 15
|
CONTROL __VENDORDWEBSUPPORT__, ID_ABOUT_WEBSITE, "Button",
|
||||||
CONTROL "FAQ", ID_ABOUT_FAQ, "Button",
|
BS_OWNERDRAW | WS_TABSTOP, 36, 68, 68, 8
|
||||||
BS_OWNERDRAW | WS_TABSTOP, 135, 65, 75, 15
|
DEFPUSHBUTTON "&OK", IDOK, 105, 85, 50, 15
|
||||||
|
|
||||||
DEFPUSHBUTTON "&OK", IDOK, 95, 85, 50, 15
|
|
||||||
|
|
||||||
CTEXT PROJECT_NAME " X Server. Use the links below to learn more about the " PROJECT_NAME " project.", IDC_STATIC, 5, 5, 230, 35
|
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,13 +59,13 @@ END
|
||||||
|
|
||||||
DEPTH_CHANGE_BOX DIALOGEX 32, 32, 180, 100
|
DEPTH_CHANGE_BOX DIALOGEX 32, 32, 180, 100
|
||||||
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | DS_CENTERMOUSE
|
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | DS_CENTERMOUSE
|
||||||
FONT 8, "MS Sans Serif"
|
FONT 8, "MS Shell Dlg 2"
|
||||||
CAPTION PROJECT_NAME
|
CAPTION XVENDORNAMESHORT
|
||||||
BEGIN
|
BEGIN
|
||||||
DEFPUSHBUTTON "Dismiss", IDOK, 66, 80, 50, 14
|
DEFPUSHBUTTON "Dismiss", IDOK, 66, 80, 50, 14
|
||||||
CTEXT PROJECT_NAME, IDC_STATIC, 40, 12, 100, 8
|
CTEXT XVENDORNAMESHORT, IDC_STATIC, 40, 12, 100, 8
|
||||||
CTEXT "Disruptive screen configuration change.", IDC_STATIC, 7, 40, 166, 8
|
CTEXT "Disruptive screen configuration change.", IDC_STATIC, 7, 40, 166, 8
|
||||||
CTEXT "Restore previous resolution to use " PROJECT_NAME ".", IDC_STATIC, 7, 52, 166, 8
|
CTEXT "Restore previous resolution to use " XVENDORNAMESHORT ".", IDC_STATIC, 7, 52, 166, 8
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,8 +73,8 @@ END
|
||||||
|
|
||||||
EXIT_DIALOG DIALOGEX 32, 32, 180, 78
|
EXIT_DIALOG DIALOGEX 32, 32, 180, 78
|
||||||
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_TABSTOP | DS_CENTERMOUSE
|
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_TABSTOP | DS_CENTERMOUSE
|
||||||
FONT 8, "MS Sans Serif"
|
FONT 8, "MS Shell Dlg 2"
|
||||||
CAPTION "Exit " PROJECT_NAME "?"
|
CAPTION "Exit " XVENDORNAMESHORT "?"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "E&xit", IDOK, 55, 56, 30, 14
|
PUSHBUTTON "E&xit", IDOK, 55, 56, 30, 14
|
||||||
DEFPUSHBUTTON "&Cancel", IDCANCEL, 95, 56, 30, 14
|
DEFPUSHBUTTON "&Cancel", IDCANCEL, 95, 56, 30, 14
|
||||||
|
@ -96,7 +95,7 @@ BEGIN
|
||||||
MENUITEM "&Hide Root Window", ID_APP_HIDE_ROOT
|
MENUITEM "&Hide Root Window", ID_APP_HIDE_ROOT
|
||||||
MENUITEM "&About...", ID_APP_ABOUT
|
MENUITEM "&About...", ID_APP_ABOUT
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "E&xit", ID_APP_EXIT
|
MENUITEM "E&xit...", ID_APP_EXIT
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -106,3 +105,4 @@ END
|
||||||
*/
|
*/
|
||||||
|
|
||||||
IDI_XWIN ICON "X.ico"
|
IDI_XWIN ICON "X.ico"
|
||||||
|
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "XWin.exe.manifest"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# XWin Server Resource File - EXAMPLE
|
# XWin Server Resource File - EXAMPLE
|
||||||
# Earle F. Philhower, III
|
# Earle F. Philhower, III
|
||||||
|
|
||||||
# Place in ~/.XWinrc or in /usr/X11R6/lib/X11/system.XWinrc
|
# Place in ~/.XWinrc or in /etc/X11/system.XWinrc
|
||||||
|
|
||||||
# Keywords are case insensitive, comments legal pretty much anywhere
|
# Keywords are case insensitive, comments legal pretty much anywhere
|
||||||
# you can have an end-of-line
|
# you can have an end-of-line
|
||||||
|
@ -18,6 +18,9 @@
|
||||||
# ^^ This command will have any "%display%"
|
# ^^ This command will have any "%display%"
|
||||||
# string replaced with the proper display
|
# string replaced with the proper display
|
||||||
# variable (i.e. 127.0.0.1:<display>.0)
|
# variable (i.e. 127.0.0.1:<display>.0)
|
||||||
|
# (This should only rarely be needed as
|
||||||
|
# the DISPLAY environment variable is also
|
||||||
|
# set correctly)
|
||||||
# or <Menu Text> MENU <name-of-some-prior-defined-menu>
|
# or <Menu Text> MENU <name-of-some-prior-defined-menu>
|
||||||
# or <Menu Text> ALWAYSONTOP
|
# or <Menu Text> ALWAYSONTOP
|
||||||
# ^^ Sets the window to display above all others
|
# ^^ Sets the window to display above all others
|
||||||
|
@ -80,7 +83,7 @@
|
||||||
// Make some menus...
|
// Make some menus...
|
||||||
menu apps {
|
menu apps {
|
||||||
xterm exec "xterm"
|
xterm exec "xterm"
|
||||||
"Emacs" exec "emacs"
|
"Emacs" exec "emacs"
|
||||||
notepad exec notepad
|
notepad exec notepad
|
||||||
xload exec "xload -display %display%" # Comment
|
xload exec "xload -display %display%" # Comment
|
||||||
}
|
}
|
|
@ -119,8 +119,7 @@ winClipboardProc (void *pvNotUsed)
|
||||||
/* See if X supports the current locale */
|
/* See if X supports the current locale */
|
||||||
if (XSupportsLocale () == False)
|
if (XSupportsLocale () == False)
|
||||||
{
|
{
|
||||||
ErrorF ("winClipboardProc - Locale not supported by X. Exiting.\n");
|
ErrorF ("winClipboardProc - Warning: Locale not supported by X.\n");
|
||||||
pthread_exit (NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set jump point for Error exits */
|
/* Set jump point for Error exits */
|
||||||
|
|
|
@ -188,8 +188,7 @@ winLoadCursor (ScreenPtr pScreen, CursorPtr pCursor, int screen)
|
||||||
if (pScreenPriv->cursor.sm_cx < pCursor->bits->width ||
|
if (pScreenPriv->cursor.sm_cx < pCursor->bits->width ||
|
||||||
pScreenPriv->cursor.sm_cy < pCursor->bits->height)
|
pScreenPriv->cursor.sm_cy < pCursor->bits->height)
|
||||||
{
|
{
|
||||||
winErrorFVerb (2, "winLoadCursor - Windows requires %dx%d cursor\n"
|
winErrorFVerb (3, "winLoadCursor - Windows requires %dx%d cursor but X requires %dx%d\n",
|
||||||
"\tbut X requires %dx%d\n",
|
|
||||||
pScreenPriv->cursor.sm_cx, pScreenPriv->cursor.sm_cy,
|
pScreenPriv->cursor.sm_cx, pScreenPriv->cursor.sm_cy,
|
||||||
pCursor->bits->width, pCursor->bits->height);
|
pCursor->bits->width, pCursor->bits->height);
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,8 +116,8 @@ winDrawURLWindow (LPARAM lParam)
|
||||||
crText = RGB(0,0,128+64);
|
crText = RGB(0,0,128+64);
|
||||||
SetTextColor (draw->hDC, crText);
|
SetTextColor (draw->hDC, crText);
|
||||||
|
|
||||||
/* Create underlined font 14 high, standard dialog font */
|
/* Create font 8 high, standard dialog font */
|
||||||
font = CreateFont (-14, 0, 0, 0, FW_NORMAL, FALSE, TRUE, FALSE,
|
font = CreateFont (-8, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE,
|
||||||
0, 0, 0, 0, 0, "MS Sans Serif");
|
0, 0, 0, 0, 0, "MS Sans Serif");
|
||||||
if (!font)
|
if (!font)
|
||||||
{
|
{
|
||||||
|
@ -705,7 +705,7 @@ winAboutDlgProc (HWND hwndDialog, UINT message,
|
||||||
|
|
||||||
case ID_ABOUT_WEBSITE:
|
case ID_ABOUT_WEBSITE:
|
||||||
{
|
{
|
||||||
const char * pszPath = "http://x.cygwin.com/";
|
const char * pszPath = __VENDORDWEBSUPPORT__;
|
||||||
int iReturn;
|
int iReturn;
|
||||||
|
|
||||||
iReturn = ShellExecute (NULL,
|
iReturn = ShellExecute (NULL,
|
||||||
|
|
|
@ -117,6 +117,7 @@ winMessageBoxF (const char *pszError, UINT uType, ...)
|
||||||
"Vendor: %s\n" \
|
"Vendor: %s\n" \
|
||||||
"Release: %d.%d.%d.%d (%d)\n" \
|
"Release: %d.%d.%d.%d (%d)\n" \
|
||||||
"Contact: %s\n" \
|
"Contact: %s\n" \
|
||||||
|
"%s\n\n" \
|
||||||
"XWin was started with the following command-line:\n\n" \
|
"XWin was started with the following command-line:\n\n" \
|
||||||
"%s\n"
|
"%s\n"
|
||||||
|
|
||||||
|
@ -124,6 +125,7 @@ winMessageBoxF (const char *pszError, UINT uType, ...)
|
||||||
pszErrorF, VENDOR_STRING,
|
pszErrorF, VENDOR_STRING,
|
||||||
XORG_VERSION_MAJOR, XORG_VERSION_MINOR, XORG_VERSION_PATCH, XORG_VERSION_SNAP, XORG_VERSION_CURRENT,
|
XORG_VERSION_MAJOR, XORG_VERSION_MINOR, XORG_VERSION_PATCH, XORG_VERSION_SNAP, XORG_VERSION_CURRENT,
|
||||||
VENDOR_CONTACT,
|
VENDOR_CONTACT,
|
||||||
|
BUILDERSTRING,
|
||||||
g_pszCommandLine);
|
g_pszCommandLine);
|
||||||
if (!pszMsgBox)
|
if (!pszMsgBox)
|
||||||
goto winMessageBoxF_Cleanup;
|
goto winMessageBoxF_Cleanup;
|
||||||
|
|
|
@ -273,6 +273,10 @@ winKeybdProc (DeviceIntPtr pDeviceInt, int iState)
|
||||||
|
|
||||||
case DEVICE_ON:
|
case DEVICE_ON:
|
||||||
pDevice->on = TRUE;
|
pDevice->on = TRUE;
|
||||||
|
|
||||||
|
// immediately copy the state of this keyboard device to the VCK
|
||||||
|
// (which otherwise happens lazily after the first keypress)
|
||||||
|
CopyKeyClass(pDeviceInt, inputInfo.keyboard);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DEVICE_CLOSE:
|
case DEVICE_CLOSE:
|
||||||
|
|
|
@ -71,6 +71,9 @@ winUpdateRgnMultiWindow (WindowPtr pWin)
|
||||||
{
|
{
|
||||||
SetWindowRgn (winGetWindowPriv(pWin)->hWnd,
|
SetWindowRgn (winGetWindowPriv(pWin)->hWnd,
|
||||||
winGetWindowPriv(pWin)->hRgn, TRUE);
|
winGetWindowPriv(pWin)->hRgn, TRUE);
|
||||||
|
|
||||||
|
/* The system now owns the region specified by the region handle and will delete it when it is no longer needed. */
|
||||||
|
winGetWindowPriv(pWin)->hRgn = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -515,6 +515,13 @@ winCreateWindowsWindow (WindowPtr pWin)
|
||||||
iWidth = pWin->drawable.width;
|
iWidth = pWin->drawable.width;
|
||||||
iHeight = pWin->drawable.height;
|
iHeight = pWin->drawable.height;
|
||||||
|
|
||||||
|
/* ensure window actually ends up somewhere visible */
|
||||||
|
if (iX > GetSystemMetrics (SM_CXVIRTUALSCREEN))
|
||||||
|
iX = CW_USEDEFAULT;
|
||||||
|
|
||||||
|
if (iY > GetSystemMetrics (SM_CYVIRTUALSCREEN))
|
||||||
|
iY = CW_USEDEFAULT;
|
||||||
|
|
||||||
if (winMultiWindowGetTransientFor (pWin, &pDaddy))
|
if (winMultiWindowGetTransientFor (pWin, &pDaddy))
|
||||||
{
|
{
|
||||||
if (pDaddy)
|
if (pDaddy)
|
||||||
|
|
|
@ -153,7 +153,7 @@ static Bool
|
||||||
InitQueue (WMMsgQueuePtr pQueue);
|
InitQueue (WMMsgQueuePtr pQueue);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
GetWindowName (Display * pDpy, Window iWin, char **ppName);
|
GetWindowName (Display * pDpy, Window iWin, wchar_t **ppName);
|
||||||
|
|
||||||
static int
|
static int
|
||||||
SendXMessage (Display *pDisplay, Window iWin, Atom atmType, long nData);
|
SendXMessage (Display *pDisplay, Window iWin, Atom atmType, long nData);
|
||||||
|
@ -191,7 +191,7 @@ PreserveWin32Stack(WMInfoPtr pWMInfo, Window iWindow, UINT direction);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
CheckAnotherWindowManager (Display *pDisplay, DWORD dwScreen);
|
CheckAnotherWindowManager (Display *pDisplay, DWORD dwScreen, Bool fAllowOtherWM);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
winApplyHints (Display *pDisplay, Window iWindow, HWND hWnd, HWND *zstyle);
|
winApplyHints (Display *pDisplay, Window iWindow, HWND hWnd, HWND *zstyle);
|
||||||
|
@ -416,10 +416,12 @@ InitQueue (WMMsgQueuePtr pQueue)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void
|
static void
|
||||||
GetWindowName (Display *pDisplay, Window iWin, char **ppName)
|
GetWindowName (Display *pDisplay, Window iWin, wchar_t **ppName)
|
||||||
{
|
{
|
||||||
int nResult, nNum;
|
int nResult, nNum;
|
||||||
char **ppList;
|
char **ppList;
|
||||||
|
char *pszReturnData;
|
||||||
|
int iLen, i;
|
||||||
XTextProperty xtpName;
|
XTextProperty xtpName;
|
||||||
|
|
||||||
#if CYGMULTIWINDOW_DEBUG
|
#if CYGMULTIWINDOW_DEBUG
|
||||||
|
@ -439,37 +441,25 @@ GetWindowName (Display *pDisplay, Window iWin, char **ppName)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* */
|
if (Xutf8TextPropertyToTextList (pDisplay, &xtpName, &ppList, &nNum) >= Success && nNum > 0 && *ppList)
|
||||||
if (xtpName.encoding == XA_STRING)
|
{
|
||||||
{
|
iLen = 0;
|
||||||
/* */
|
for (i = 0; i < nNum; i++) iLen += strlen(ppList[i]);
|
||||||
if (xtpName.value)
|
pszReturnData = (char *) malloc (iLen + 1);
|
||||||
{
|
pszReturnData[0] = '\0';
|
||||||
int size = xtpName.nitems * (xtpName.format >> 3);
|
for (i = 0; i < nNum; i++) strcat (pszReturnData, ppList[i]);
|
||||||
*ppName = malloc(size + 1);
|
if (ppList) XFreeStringList (ppList);
|
||||||
strncpy(*ppName, xtpName.value, size);
|
}
|
||||||
(*ppName)[size] = 0;
|
else
|
||||||
XFree (xtpName.value);
|
{
|
||||||
}
|
pszReturnData = (char *) malloc (1);
|
||||||
|
pszReturnData[0] = '\0';
|
||||||
#if CYGMULTIWINDOW_DEBUG
|
}
|
||||||
ErrorF ("GetWindowName - XA_STRING %s\n", *ppName);
|
iLen = MultiByteToWideChar (CP_UTF8, 0, pszReturnData, -1, NULL, 0);
|
||||||
#endif
|
*ppName = (wchar_t*)malloc(sizeof(wchar_t)*(iLen + 1));
|
||||||
}
|
MultiByteToWideChar (CP_UTF8, 0, pszReturnData, -1, *ppName, iLen);
|
||||||
else
|
XFree (xtpName.value);
|
||||||
{
|
free (pszReturnData);
|
||||||
if (XmbTextPropertyToTextList (pDisplay, &xtpName, &ppList, &nNum) >= Success && nNum > 0 && *ppList)
|
|
||||||
{
|
|
||||||
*ppName = strdup (*ppList);
|
|
||||||
XFreeStringList (ppList);
|
|
||||||
}
|
|
||||||
XFree (xtpName.value);
|
|
||||||
|
|
||||||
#if CYGMULTIWINDOW_DEBUG
|
|
||||||
ErrorF ("GetWindowName - %s %s\n",
|
|
||||||
XGetAtomName (pDisplay, xtpName.encoding), *ppName);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#if CYGMULTIWINDOW_DEBUG
|
#if CYGMULTIWINDOW_DEBUG
|
||||||
ErrorF ("GetWindowName - Returning\n");
|
ErrorF ("GetWindowName - Returning\n");
|
||||||
|
@ -506,7 +496,7 @@ SendXMessage (Display *pDisplay, Window iWin, Atom atmType, long nData)
|
||||||
static void
|
static void
|
||||||
UpdateName (WMInfoPtr pWMInfo, Window iWindow)
|
UpdateName (WMInfoPtr pWMInfo, Window iWindow)
|
||||||
{
|
{
|
||||||
char *pszName;
|
wchar_t *pszName;
|
||||||
Atom atmType;
|
Atom atmType;
|
||||||
int fmtRet;
|
int fmtRet;
|
||||||
unsigned long items, remain;
|
unsigned long items, remain;
|
||||||
|
@ -550,7 +540,7 @@ UpdateName (WMInfoPtr pWMInfo, Window iWindow)
|
||||||
&attr);
|
&attr);
|
||||||
if (!attr.override_redirect)
|
if (!attr.override_redirect)
|
||||||
{
|
{
|
||||||
SetWindowText (hWnd, pszName);
|
SetWindowTextW (hWnd, pszName);
|
||||||
winUpdateIcon (iWindow);
|
winUpdateIcon (iWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -903,9 +893,7 @@ winMultiWindowXMsgProc (void *pArg)
|
||||||
/* See if X supports the current locale */
|
/* See if X supports the current locale */
|
||||||
if (XSupportsLocale () == False)
|
if (XSupportsLocale () == False)
|
||||||
{
|
{
|
||||||
ErrorF ("winMultiWindowXMsgProc - Locale not supported by X. "
|
ErrorF ("winMultiWindowXMsgProc - Warning: locale not supported by X\n");
|
||||||
"Exiting.\n");
|
|
||||||
pthread_exit (NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Release the server started mutex */
|
/* Release the server started mutex */
|
||||||
|
@ -979,7 +967,7 @@ winMultiWindowXMsgProc (void *pArg)
|
||||||
"successfully opened the display.\n");
|
"successfully opened the display.\n");
|
||||||
|
|
||||||
/* Check if another window manager is already running */
|
/* Check if another window manager is already running */
|
||||||
g_fAnotherWMRunning = CheckAnotherWindowManager (pProcArg->pDisplay, pProcArg->dwScreen);
|
g_fAnotherWMRunning = CheckAnotherWindowManager (pProcArg->pDisplay, pProcArg->dwScreen, pProcArg->pWMInfo->fAllowOtherWM);
|
||||||
|
|
||||||
if (g_fAnotherWMRunning && !pProcArg->pWMInfo->fAllowOtherWM)
|
if (g_fAnotherWMRunning && !pProcArg->pWMInfo->fAllowOtherWM)
|
||||||
{
|
{
|
||||||
|
@ -1030,7 +1018,7 @@ winMultiWindowXMsgProc (void *pArg)
|
||||||
|
|
||||||
if (pProcArg->pWMInfo->fAllowOtherWM && !XPending (pProcArg->pDisplay))
|
if (pProcArg->pWMInfo->fAllowOtherWM && !XPending (pProcArg->pDisplay))
|
||||||
{
|
{
|
||||||
if (CheckAnotherWindowManager (pProcArg->pDisplay, pProcArg->dwScreen))
|
if (CheckAnotherWindowManager (pProcArg->pDisplay, pProcArg->dwScreen, TRUE))
|
||||||
{
|
{
|
||||||
if (!g_fAnotherWMRunning)
|
if (!g_fAnotherWMRunning)
|
||||||
{
|
{
|
||||||
|
@ -1288,8 +1276,7 @@ winInitMultiWindowWM (WMInfoPtr pWMInfo, WMProcArgPtr pProcArg)
|
||||||
/* See if X supports the current locale */
|
/* See if X supports the current locale */
|
||||||
if (XSupportsLocale () == False)
|
if (XSupportsLocale () == False)
|
||||||
{
|
{
|
||||||
ErrorF ("winInitMultiWindowWM - Locale not supported by X. Exiting.\n");
|
ErrorF ("winInitMultiWindowWM - Warning: Locale not supported by X.\n");
|
||||||
pthread_exit (NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Release the server started mutex */
|
/* Release the server started mutex */
|
||||||
|
@ -1509,7 +1496,7 @@ winRedirectErrorHandler (Display *pDisplay, XErrorEvent *pErr)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
CheckAnotherWindowManager (Display *pDisplay, DWORD dwScreen)
|
CheckAnotherWindowManager (Display *pDisplay, DWORD dwScreen, Bool fAllowOtherWM)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Try to select the events which only one client at a time is allowed to select.
|
Try to select the events which only one client at a time is allowed to select.
|
||||||
|
@ -1524,8 +1511,12 @@ CheckAnotherWindowManager (Display *pDisplay, DWORD dwScreen)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Side effect: select the events we are actually interested in...
|
Side effect: select the events we are actually interested in...
|
||||||
|
|
||||||
|
If other WMs are not allowed, also select one of the events which only one client
|
||||||
|
at a time is allowed to select, so other window managers won't start...
|
||||||
*/
|
*/
|
||||||
XSelectInput(pDisplay, RootWindow (pDisplay, dwScreen), SubstructureNotifyMask);
|
XSelectInput(pDisplay, RootWindow (pDisplay, dwScreen),
|
||||||
|
SubstructureNotifyMask | ( !fAllowOtherWM ? ButtonPressMask : 0));
|
||||||
XSync (pDisplay, 0);
|
XSync (pDisplay, 0);
|
||||||
return redirectError;
|
return redirectError;
|
||||||
}
|
}
|
||||||
|
@ -1546,6 +1537,7 @@ winDeinitMultiWindowWM (void)
|
||||||
#define HINT_BORDER (1L<<1)
|
#define HINT_BORDER (1L<<1)
|
||||||
#define HINT_SIZEBOX (1l<<2)
|
#define HINT_SIZEBOX (1l<<2)
|
||||||
#define HINT_CAPTION (1l<<3)
|
#define HINT_CAPTION (1l<<3)
|
||||||
|
#define HINT_NOMAXIMIZE (1L<<4)
|
||||||
/* These two are used on their own */
|
/* These two are used on their own */
|
||||||
#define HINT_MAX (1L<<0)
|
#define HINT_MAX (1L<<0)
|
||||||
#define HINT_MIN (1L<<1)
|
#define HINT_MIN (1L<<1)
|
||||||
|
@ -1627,7 +1619,32 @@ winApplyHints (Display *pDisplay, Window iWindow, HWND hWnd, HWND *zstyle)
|
||||||
if (pAtom) XFree(pAtom);
|
if (pAtom) XFree(pAtom);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Apply Styles, overriding hint settings from above */
|
{
|
||||||
|
XSizeHints *normal_hint = XAllocSizeHints();
|
||||||
|
long supplied;
|
||||||
|
if (normal_hint && (XGetWMNormalHints(pDisplay, iWindow, normal_hint, &supplied) == Success))
|
||||||
|
{
|
||||||
|
if (normal_hint->flags & PMaxSize)
|
||||||
|
{
|
||||||
|
/* Not maximizable if a maximum size is specified */
|
||||||
|
hint |= HINT_NOMAXIMIZE;
|
||||||
|
|
||||||
|
if (normal_hint->flags & PMinSize)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
If both minimum size and maximum size are specified and are the same,
|
||||||
|
don't bother with a resizing frame
|
||||||
|
*/
|
||||||
|
if ((normal_hint->min_width == normal_hint->max_width)
|
||||||
|
&& (normal_hint->min_height == normal_hint->max_height))
|
||||||
|
hint = (hint & ~HINT_SIZEBOX);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
XFree(normal_hint);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Override hint settings from above with settings from config file */
|
||||||
style = winOverrideStyle((unsigned long)pWin);
|
style = winOverrideStyle((unsigned long)pWin);
|
||||||
if (style & STYLE_TOPMOST) *zstyle = HWND_TOPMOST;
|
if (style & STYLE_TOPMOST) *zstyle = HWND_TOPMOST;
|
||||||
else if (style & STYLE_MAXIMIZE) maxmin = (hint & ~HINT_MIN) | HINT_MAX;
|
else if (style & STYLE_MAXIMIZE) maxmin = (hint & ~HINT_MIN) | HINT_MAX;
|
||||||
|
@ -1644,14 +1661,21 @@ winApplyHints (Display *pDisplay, Window iWindow, HWND hWnd, HWND *zstyle)
|
||||||
else if (style & STYLE_NOFRAME)
|
else if (style & STYLE_NOFRAME)
|
||||||
hint = (hint & ~HINT_BORDER & ~HINT_CAPTION & ~HINT_SIZEBOX) | HINT_NOFRAME;
|
hint = (hint & ~HINT_BORDER & ~HINT_CAPTION & ~HINT_SIZEBOX) | HINT_NOFRAME;
|
||||||
|
|
||||||
|
/* Now apply styles to window */
|
||||||
style = GetWindowLongPtr(hWnd, GWL_STYLE) & ~WS_CAPTION & ~WS_SIZEBOX; /* Just in case */
|
style = GetWindowLongPtr(hWnd, GWL_STYLE) & ~WS_CAPTION & ~WS_SIZEBOX; /* Just in case */
|
||||||
if (!style) return;
|
if (!style) return;
|
||||||
if (!hint) /* All on, but no resize of children is allowed */
|
|
||||||
style = style | WS_CAPTION | (GetParent(hWnd) ? 0 : WS_SIZEBOX);
|
if (!hint) /* All on */
|
||||||
else if (hint & HINT_NOFRAME); /* All off, so do nothing */
|
style = style | WS_CAPTION | WS_SIZEBOX;
|
||||||
|
else if (hint & HINT_NOFRAME) /* All off */
|
||||||
|
style = style & ~WS_CAPTION & ~WS_SIZEBOX;
|
||||||
else style = style | ((hint & HINT_BORDER) ? WS_BORDER : 0) |
|
else style = style | ((hint & HINT_BORDER) ? WS_BORDER : 0) |
|
||||||
((hint & HINT_SIZEBOX) ? (GetParent(hWnd) ? 0 : WS_SIZEBOX) : 0) |
|
((hint & HINT_SIZEBOX) ? WS_SIZEBOX : 0) |
|
||||||
((hint & HINT_CAPTION) ? WS_CAPTION : 0);
|
((hint & HINT_CAPTION) ? WS_CAPTION : 0);
|
||||||
|
|
||||||
|
if (hint & HINT_NOMAXIMIZE)
|
||||||
|
style = style & ~WS_MAXIMIZEBOX;
|
||||||
|
|
||||||
SetWindowLongPtr (hWnd, GWL_STYLE, style);
|
SetWindowLongPtr (hWnd, GWL_STYLE, style);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -723,7 +723,7 @@ winIconIsOverride(unsigned hiconIn)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Try and open ~/.XWinrc and /usr/X11R6/lib/X11/system.XWinrc
|
* Try and open ~/.XWinrc and system.XWinrc
|
||||||
* Load it into prefs structure for use by other functions
|
* Load it into prefs structure for use by other functions
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
|
@ -763,7 +763,7 @@ LoadPreferences (void)
|
||||||
#ifdef RELOCATE_PROJECTROOT
|
#ifdef RELOCATE_PROJECTROOT
|
||||||
snprintf(buffer, sizeof(buffer), "%s\\system.XWinrc", winGetBaseDir());
|
snprintf(buffer, sizeof(buffer), "%s\\system.XWinrc", winGetBaseDir());
|
||||||
#else
|
#else
|
||||||
strncpy(buffer, PROJECTROOT"/lib/X11/system.XWinrc", sizeof(buffer));
|
strncpy(buffer, SYSCONFDIR"/X11/system.XWinrc", sizeof(buffer));
|
||||||
#endif
|
#endif
|
||||||
buffer[sizeof(buffer)-1] = 0;
|
buffer[sizeof(buffer)-1] = 0;
|
||||||
prefFile = fopen (buffer, "r");
|
prefFile = fopen (buffer, "r");
|
||||||
|
|
|
@ -88,7 +88,7 @@ ATSTART { return ATSTART; }
|
||||||
ATEND { return ATEND; }
|
ATEND { return ATEND; }
|
||||||
EXEC { return EXEC; }
|
EXEC { return EXEC; }
|
||||||
ALWAYSONTOP { return ALWAYSONTOP; }
|
ALWAYSONTOP { return ALWAYSONTOP; }
|
||||||
DEBUG { return DEBUG; }
|
DEBUG { return DEBUGOUTPUT; }
|
||||||
RELOAD { return RELOAD; }
|
RELOAD { return RELOAD; }
|
||||||
TRAYICON { return TRAYICON; }
|
TRAYICON { return TRAYICON; }
|
||||||
SILENTEXIT { return SILENTEXIT; }
|
SILENTEXIT { return SILENTEXIT; }
|
||||||
|
|
|
@ -115,7 +115,7 @@ extern int yylex(void);
|
||||||
%token ATEND
|
%token ATEND
|
||||||
%token EXEC
|
%token EXEC
|
||||||
%token ALWAYSONTOP
|
%token ALWAYSONTOP
|
||||||
%token DEBUG
|
%token DEBUGOUTPUT "DEBUG"
|
||||||
%token RELOAD
|
%token RELOAD
|
||||||
%token TRAYICON
|
%token TRAYICON
|
||||||
%token FORCEEXIT
|
%token FORCEEXIT
|
||||||
|
@ -243,7 +243,7 @@ forceexit: FORCEEXIT NEWLINE { pref.fForceExit = TRUE; }
|
||||||
silentexit: SILENTEXIT NEWLINE { pref.fSilentExit = TRUE; }
|
silentexit: SILENTEXIT NEWLINE { pref.fSilentExit = TRUE; }
|
||||||
;
|
;
|
||||||
|
|
||||||
debug: DEBUG STRING NEWLINE { ErrorF("LoadPreferences: %s\n", $2); free($2); }
|
debug: DEBUGOUTPUT STRING NEWLINE { ErrorF("LoadPreferences: %s\n", $2); free($2); }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1556,6 +1556,7 @@ winLogVersionInfo (void)
|
||||||
ErrorF ("Welcome to the XWin X Server\n");
|
ErrorF ("Welcome to the XWin X Server\n");
|
||||||
ErrorF ("Vendor: %s\n", VENDOR_STRING);
|
ErrorF ("Vendor: %s\n", VENDOR_STRING);
|
||||||
ErrorF ("Release: %d.%d.%d.%d (%d)\n", XORG_VERSION_MAJOR, XORG_VERSION_MINOR, XORG_VERSION_PATCH, XORG_VERSION_SNAP, XORG_VERSION_CURRENT);
|
ErrorF ("Release: %d.%d.%d.%d (%d)\n", XORG_VERSION_MAJOR, XORG_VERSION_MINOR, XORG_VERSION_PATCH, XORG_VERSION_SNAP, XORG_VERSION_CURRENT);
|
||||||
|
ErrorF ("%s\n\n", BUILDERSTRING);
|
||||||
ErrorF ("Contact: %s\n", VENDOR_CONTACT);
|
ErrorF ("Contact: %s\n", VENDOR_CONTACT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
#ifndef PROJECT_NAME
|
#ifndef PROJECT_NAME
|
||||||
# define PROJECT_NAME "Cygwin/X"
|
# define PROJECT_NAME "Cygwin/X"
|
||||||
#endif
|
#endif
|
||||||
|
#define EXECUTABLE_NAME "XWin"
|
||||||
#define WINDOW_CLASS "cygwin/x"
|
#define WINDOW_CLASS "cygwin/x"
|
||||||
#define WINDOW_TITLE PROJECT_NAME ":%s.%d"
|
#define WINDOW_TITLE PROJECT_NAME ":%s.%d"
|
||||||
#define WINDOW_TITLE_XDMCP "%s:%s.%d"
|
#define WINDOW_TITLE_XDMCP "%s:%s.%d"
|
||||||
|
|
|
@ -22,3 +22,13 @@
|
||||||
|
|
||||||
/* Do we require our own snprintf? */
|
/* Do we require our own snprintf? */
|
||||||
#undef NEED_SNPRINTF
|
#undef NEED_SNPRINTF
|
||||||
|
|
||||||
|
/* Short vendor name */
|
||||||
|
#undef XVENDORNAMESHORT
|
||||||
|
|
||||||
|
/* Vendor web address for support */
|
||||||
|
#undef __VENDORDWEBSUPPORT__
|
||||||
|
|
||||||
|
/* Location of system.XWinrc */
|
||||||
|
#undef SYSCONFDIR
|
||||||
|
|
||||||
|
|
|
@ -504,9 +504,7 @@ void UseMsg(void)
|
||||||
#ifdef RLIMIT_STACK
|
#ifdef RLIMIT_STACK
|
||||||
ErrorF("-ls int limit stack space to N Kb\n");
|
ErrorF("-ls int limit stack space to N Kb\n");
|
||||||
#endif
|
#endif
|
||||||
#ifdef SERVER_LOCK
|
|
||||||
ErrorF("-nolock disable the locking mechanism\n");
|
ErrorF("-nolock disable the locking mechanism\n");
|
||||||
#endif
|
|
||||||
#ifndef NOLOGOHACK
|
#ifndef NOLOGOHACK
|
||||||
ErrorF("-logo enable logo in screen saver\n");
|
ErrorF("-logo enable logo in screen saver\n");
|
||||||
ErrorF("nologo disable logo in screen saver\n");
|
ErrorF("nologo disable logo in screen saver\n");
|
||||||
|
@ -758,7 +756,6 @@ ProcessCommandLine(int argc, char *argv[])
|
||||||
UseMsg();
|
UseMsg();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef SERVER_LOCK
|
|
||||||
else if ( strcmp ( argv[i], "-nolock") == 0)
|
else if ( strcmp ( argv[i], "-nolock") == 0)
|
||||||
{
|
{
|
||||||
#if !defined(WIN32) && !defined(__CYGWIN__)
|
#if !defined(WIN32) && !defined(__CYGWIN__)
|
||||||
|
@ -768,7 +765,6 @@ ProcessCommandLine(int argc, char *argv[])
|
||||||
#endif
|
#endif
|
||||||
nolock = TRUE;
|
nolock = TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#ifndef NOLOGOHACK
|
#ifndef NOLOGOHACK
|
||||||
else if ( strcmp( argv[i], "-logo") == 0)
|
else if ( strcmp( argv[i], "-logo") == 0)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue