summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2019-06-24 12:13:01 +0100
committerJon Turney <jon.turney@dronecode.org.uk>2019-06-24 12:13:01 +0100
commit9cde3553d63cca220553250d4cff0f6570514789 (patch)
treeeb003b700f9102a0125c12f02ad7ec62698b69f3
parente3c5faf77564bf9ed61a35baef505f0a25dacb25 (diff)
parentff469e09b9ad904848c401db1396c0a40c89df5d (diff)
Merge branch 'cygwin-patches-for-1.20' into cygwin-release-1.20xserver-cygwin-1.20.5-2
-rw-r--r--hw/xwin/man/XWin.man10
-rw-r--r--hw/xwin/man/XWinrc.man2
-rw-r--r--hw/xwin/winclipboard/xevents.c2
-rw-r--r--hw/xwin/winmultiwindowwindow.c2
-rw-r--r--hw/xwin/winmultiwindowwndproc.c16
-rw-r--r--hw/xwin/winwindow.h6
6 files changed, 21 insertions, 17 deletions
diff --git a/hw/xwin/man/XWin.man b/hw/xwin/man/XWin.man
index 3e10db3e5..217e82c18 100644
--- a/hw/xwin/man/XWin.man
+++ b/hw/xwin/man/XWin.man
@@ -104,7 +104,7 @@ These parameters only apply to windowed mode screens i.e. not
in \fB-multiwindow\fP or \fB-rootless\fP mode.
.TP 8
.B "\-fullscreen"
-The X server window takes the full screen, covering completely the
+The X screen window takes the full screen, covering completely the
\fIWindows\fP desktop.
Currently \fB\-fullscreen\fP may only be applied to one X screen.
.TP 8
@@ -113,7 +113,7 @@ Override the window icon for the screen window from the default.
The \fIicon-specifier\fP is as defined in \fIXWinrc(@filemansuffix@)\fP.
.TP 8
.B \-nodecoration
-Do not give the Cygwin/X window a \fIWindows\fP window border, title bar,
+Do not give the X screen window a \fIWindows\fP window border, title bar,
etc.
This parameter is ignored when the \fB\-fullscreen\fP parameter is specified.
.TP 8
@@ -213,8 +213,8 @@ Server instead of letting \fIWindows\fP handle them.
.TP 8
.B \-lesspointer
Normally the \fIWindows\fP mouse cursor is hidden when the mouse is
-over an active Cygwin/X window. This option causes the mouse cursor
-also to be hidden when it is over an inactive Cygwin/X window. This
+over an active X window. This option causes the mouse cursor
+also to be hidden when it is over an inactive X window. This
prevents the \fIWindows\fP mouse cursor from being drawn on top of the X
cursor.
This parameter has no effect unless \fB-swcursor\fP is also specified.
@@ -263,7 +263,7 @@ This option probably has limited effect on current \fIWindows\fP versions
as they already perform GDI batching.
.TP 8
.B "\-engine \fIengine_type_id\fP"
-This option, which is intended for Cygwin/X developers,
+This option, which is intended for developers,
overrides the server's automatically selected drawing engine type. This
parameter will be ignored if the specified drawing engine type is not
supported on the current system.
diff --git a/hw/xwin/man/XWinrc.man b/hw/xwin/man/XWinrc.man
index 005d41126..c5457c5bc 100644
--- a/hw/xwin/man/XWinrc.man
+++ b/hw/xwin/man/XWinrc.man
@@ -6,7 +6,7 @@ XWinrc\- XWin Server Resource Configuration File.
.SH DESCRIPTION
-The X Server for the X Window System on the Cygwin/X environment
+The X Server for the X Window System on the Cygwin environment
running on Microsoft Windows, \fIXWin\fP can be optionally configured
with the \fIXWinrc\fP file. A system-wide configuration file should
be placed in \fI
diff --git a/hw/xwin/winclipboard/xevents.c b/hw/xwin/winclipboard/xevents.c
index af956679b..a94359ce3 100644
--- a/hw/xwin/winclipboard/xevents.c
+++ b/hw/xwin/winclipboard/xevents.c
@@ -560,7 +560,7 @@ winClipboardFlushXEvents(HWND hwnd,
winClipboardDOStoUNIX(pszConvertData, strlen(pszConvertData));
xtpText_value = strdup(pszConvertData);
- xtpText_nitems = iConvertDataLen - 1;
+ xtpText_nitems = strlen(pszConvertData);
/* data will fit into a single X request? (INCR not yet supported) */
{
diff --git a/hw/xwin/winmultiwindowwindow.c b/hw/xwin/winmultiwindowwindow.c
index c2d144447..6371423ce 100644
--- a/hw/xwin/winmultiwindowwindow.c
+++ b/hw/xwin/winmultiwindowwindow.c
@@ -976,7 +976,7 @@ winReorderWindowsMultiWindow(void)
/* Loop through top level Window windows, descending in Z order */
for (hwnd = GetTopWindow(NULL);
hwnd; hwnd = GetNextWindow(hwnd, GW_HWNDNEXT)) {
- /* Don't take care of other Cygwin/X process's windows */
+ /* Don't touch other process's windows */
GetWindowThreadProcessId(hwnd, &dwWindowProcessID);
if (GetProp(hwnd, WIN_WINDOW_PROP)
diff --git a/hw/xwin/winmultiwindowwndproc.c b/hw/xwin/winmultiwindowwndproc.c
index ee3d1637e..c79792984 100644
--- a/hw/xwin/winmultiwindowwndproc.c
+++ b/hw/xwin/winmultiwindowwndproc.c
@@ -981,12 +981,16 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Branch on if the window was killed in X already */
if (pWinPriv && !pWinPriv->fXKilled) {
- ErrorF("winTopLevelWindowProc - WM_DESTROY - WM_WM_KILL\n");
-
- /* Tell our Window Manager thread to kill the window */
- wmMsg.msg = WM_WM_KILL;
- if (fWMMsgInitialized)
- winSendMessageToWM(s_pScreenPriv->pWMInfo, &wmMsg);
+ /* Unowned i.e. at the top of a TRANSIENT_FOR hierarchy */
+ HWND owner = GetWindow(hwnd, GW_OWNER);
+ if (!owner) {
+ ErrorF("winTopLevelWindowProc - WM_DESTROY - WM_WM_KILL\n");
+
+ /* Tell our Window Manager thread to kill the window */
+ wmMsg.msg = WM_WM_KILL;
+ if (fWMMsgInitialized)
+ winSendMessageToWM(s_pScreenPriv->pWMInfo, &wmMsg);
+ }
}
RemoveProp(hwnd, WIN_WINDOW_PROP);
diff --git a/hw/xwin/winwindow.h b/hw/xwin/winwindow.h
index 10a10205d..8e95c484f 100644
--- a/hw/xwin/winwindow.h
+++ b/hw/xwin/winwindow.h
@@ -47,13 +47,13 @@
#endif
#define EXECUTABLE_NAME "XWin"
#define WINDOW_CLASS "cygwin/x"
-#define WINDOW_TITLE PROJECT_NAME ":%s.%d"
-#define WINDOW_TITLE_XDMCP "%s:%s.%d"
+#define WINDOW_TITLE PROJECT_NAME ":%s.%d" /* X screen window title */
+#define WINDOW_TITLE_XDMCP "%s:%s.%d" /* X screen window title with XDMCP */
#define WIN_SCR_PROP "cyg_screen_prop rl"
#define WINDOW_CLASS_X "cygwin/x X rl"
#define WINDOW_CLASS_X_MSG "cygwin/x X msg"
#define WINDOW_CLASS_X_CHILD "cygwin/x X child"
-#define WINDOW_TITLE_X PROJECT_NAME " X"
+#define WINDOW_TITLE_X "Unnamed X Window" /* default multiwindow window title */
#define WIN_WINDOW_PROP "cyg_window_prop_rl"
#ifdef HAS_DEVWINDOWS
#define WIN_MSG_QUEUE_FNAME "/dev/windows"