xserver: Branch 'master' - 14 commits

Keith Packard keithp at kemper.freedesktop.org
Sat Mar 22 14:09:32 PDT 2014


 hw/xwin/InitInput.c             |    9 +++---
 hw/xwin/InitOutput.c            |    7 +++--
 hw/xwin/man/XWin.man            |    6 ++++
 hw/xwin/win.h                   |    3 --
 hw/xwin/winauth.c               |    4 +-
 hw/xwin/windialogs.c            |   56 ----------------------------------------
 hw/xwin/winglobals.c            |    1 
 hw/xwin/winglobals.h            |    1 
 hw/xwin/winmsgwindow.c          |    4 ++
 hw/xwin/winmultiwindowicons.c   |   26 ++++++++++++++----
 hw/xwin/winmultiwindowwm.c      |   49 ++++++++++++++++++++++++++++++++---
 hw/xwin/winmultiwindowwndproc.c |   24 ++++++++++++++---
 hw/xwin/winprocarg.c            |    5 +++
 hw/xwin/winresource.h           |    3 --
 hw/xwin/winwin32rootless.c      |    1 
 hw/xwin/winwndproc.c            |    6 ++--
 16 files changed, 118 insertions(+), 87 deletions(-)

New commits:
commit d9fdae5f4a648a10653e18dbc602646f3e22e522
Merge: 99bee6c 0e5d299
Author: Keith Packard <keithp at keithp.com>
Date:   Sat Mar 22 14:09:00 2014 -0700

    Merge remote-tracking branch 'jturney/master'

commit 0e5d2996ac872aca5995897fc518bdf9116bd246
Author: Jon TURNEY <jon.turney at dronecode.org.uk>
Date:   Wed Sep 11 13:36:18 2013 +0100

    hw/xwin: Fix WM_ENDSESSION crash on x86_64
    
    We need to include xwin-config.h into winmsgwindow.c, so that _XSERVER64 is
    defined, so that the layout of ScreenRec type is correct, so that it's privates
    can be accessed correctly, so that the WM_GIVEUP message can be sent to the
    screen window.
    
    Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk>
    Reviewed-by: Colin Harrison <colin.harrison at virgin.net>

diff --git a/hw/xwin/winmsgwindow.c b/hw/xwin/winmsgwindow.c
index 8067c69..59f1da5 100644
--- a/hw/xwin/winmsgwindow.c
+++ b/hw/xwin/winmsgwindow.c
@@ -22,6 +22,10 @@
  *
  */
 
+#ifdef HAVE_XWIN_CONFIG_H
+#include <xwin-config.h>
+#endif
+
 #include "win.h"
 
 /*
commit 896b53ffa72d91d7d604967028291525562b60dd
Author: Jon TURNEY <jon.turney at dronecode.org.uk>
Date:   Sun Jun 16 13:55:51 2013 +0100

    hw/xwin: Improve NET_WM_ICON validation
    
    Check that we don't overrun the end of the property data while converting icons
    
    See http://cygwin.com/ml/cygwin-xfree/2013-06/msg00040.html for testcase.
    
    Also, some warning fixes in winXIconToHICON()
    
    Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk>
    Reviewed-by: Colin Harrison <colin.harrison at virgin.net>

diff --git a/hw/xwin/winmultiwindowicons.c b/hw/xwin/winmultiwindowicons.c
index 0531ad6..93d389d 100644
--- a/hw/xwin/winmultiwindowicons.c
+++ b/hw/xwin/winmultiwindowicons.c
@@ -372,13 +372,12 @@ winXIconToHICON(Display * pDisplay, Window id, int iconSize)
     unsigned char *mask, *image = NULL, *imageMask;
     unsigned char *dst, *src;
     int planes, bpp, i;
-    int biggest_size = 0;
+    unsigned int biggest_size = 0;
     HDC hDC;
     ICONINFO ii;
     XWMHints *hints;
     HICON hIcon = NULL;
     uint32_t *biggest_icon = NULL;
-
     static Atom _XA_NET_WM_ICON;
     static int generation;
     uint32_t *icon, *icon_data = NULL;
@@ -405,10 +404,25 @@ winXIconToHICON(Display * pDisplay, Window id, int iconSize)
         (icon_data != NULL)) {
         for (icon = icon_data; icon < &icon_data[size] && *icon;
              icon = &icon[icon[0] * icon[1] + 2]) {
-            /* Find an exact match to the size we require...  */
+            winDebug("winXIconToHICON: %u x %u NetIcon\n", icon[0], icon[1]);
+
+            /* Icon data size will overflow an int and thus is bigger than the
+               property can possibly be */
+            if ((INT_MAX/icon[0]) < icon[1]) {
+                winDebug("winXIconToHICON: _NET_WM_ICON icon data size overflow\n");
+                break;
+            }
+
+            /* Icon data size is bigger than amount of data remaining */
+            if (&icon[icon[0] * icon[1] + 2] > &icon_data[size]) {
+                winDebug("winXIconToHICON: _NET_WM_ICON data is malformed\n");
+                break;
+            }
+
+            /* Found an exact match to the size we require...  */
             if (icon[0] == iconSize && icon[1] == iconSize) {
-                winDebug("winXIconToHICON: found %lu x %lu NetIcon\n", icon[0],
-                         icon[1]);
+                winDebug("winXIconToHICON: selected %d x %d NetIcon\n",
+                         iconSize, iconSize);
                 hIcon = NetWMToWinIcon(bpp, icon);
                 break;
             }
@@ -421,7 +435,7 @@ winXIconToHICON(Display * pDisplay, Window id, int iconSize)
 
         if (!hIcon && biggest_icon) {
             winDebug
-                ("winXIconToHICON: selected %lu x %lu NetIcon for scaling to %u x %u\n",
+                ("winXIconToHICON: selected %u x %u NetIcon for scaling to %d x %d\n",
                  biggest_icon[0], biggest_icon[1], iconSize, iconSize);
 
             hIcon = NetWMToWinIcon(bpp, biggest_icon);
commit ab61d070024a4776f011e71d762d4c6c0cf58b12
Author: Jon TURNEY <jon.turney at dronecode.org.uk>
Date:   Sun Mar 31 18:29:07 2013 +0100

    hw/xwin: Remove obsolete control handling for About dialog
    
    Remove the unused, cygwin-specific handling for ChangeLog, UG and CG buttons in
    the About... Dialog.  The buttons themselves were removed in commmit
    34269a90ea2087f883f5dc8805894fc4998e4b81.
    
    Also remove those window control IDs which are now obsolete.
    
    Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk>
    Reviewed-by: Colin Harrison <colin.harrison at virgin.net>

diff --git a/hw/xwin/windialogs.c b/hw/xwin/windialogs.c
index 054ee95..c9af0e2 100644
--- a/hw/xwin/windialogs.c
+++ b/hw/xwin/windialogs.c
@@ -574,10 +574,7 @@ winAboutDlgProc(HWND hwndDialog, UINT message, WPARAM wParam, LPARAM lParam)
         winInitDialog(hwndDialog);
 
         /* Override the URL buttons */
-        winOverrideURLButton(hwndDialog, ID_ABOUT_CHANGELOG);
         winOverrideURLButton(hwndDialog, ID_ABOUT_WEBSITE);
-        winOverrideURLButton(hwndDialog, ID_ABOUT_UG);
-        winOverrideURLButton(hwndDialog, ID_ABOUT_FAQ);
 
         return TRUE;
 
@@ -608,30 +605,10 @@ winAboutDlgProc(HWND hwndDialog, UINT message, WPARAM wParam, LPARAM lParam)
             PostMessage(s_pScreenPriv->hwndScreen, WM_NULL, 0, 0);
 
             /* Restore window procedures for URL buttons */
-            winUnoverrideURLButton(hwndDialog, ID_ABOUT_CHANGELOG);
             winUnoverrideURLButton(hwndDialog, ID_ABOUT_WEBSITE);
-            winUnoverrideURLButton(hwndDialog, ID_ABOUT_UG);
-            winUnoverrideURLButton(hwndDialog, ID_ABOUT_FAQ);
 
             return TRUE;
 
-        case ID_ABOUT_CHANGELOG:
-        {
-            INT_PTR iReturn;
-
-            const char *pszWinPath = "http://x.cygwin.com/"
-                "devel/server/changelog.html";
-
-            iReturn = (INT_PTR) ShellExecute(NULL,
-                                         "open",
-                                         pszWinPath, NULL, NULL, SW_MAXIMIZE);
-            if (iReturn < 32) {
-                ErrorF("winAboutDlgProc - WM_COMMAND - ID_ABOUT_CHANGELOG - "
-                       "ShellExecute failed: %d\n", (int)iReturn);
-            }
-        }
-            return TRUE;
-
         case ID_ABOUT_WEBSITE:
         {
             const char *pszPath = __VENDORDWEBSUPPORT__;
@@ -647,36 +624,6 @@ winAboutDlgProc(HWND hwndDialog, UINT message, WPARAM wParam, LPARAM lParam)
             }
         }
             return TRUE;
-
-        case ID_ABOUT_UG:
-        {
-            const char *pszPath = "http://x.cygwin.com/docs/ug/";
-            INT_PTR iReturn;
-
-            iReturn = (INT_PTR) ShellExecute(NULL,
-                                         "open",
-                                         pszPath, NULL, NULL, SW_MAXIMIZE);
-            if (iReturn < 32) {
-                ErrorF("winAboutDlgProc - WM_COMMAND - ID_ABOUT_UG - "
-                       "ShellExecute failed: %d\n", (int)iReturn);
-            }
-        }
-            return TRUE;
-
-        case ID_ABOUT_FAQ:
-        {
-            const char *pszPath = "http://x.cygwin.com/docs/faq/";
-            INT_PTR iReturn;
-
-            iReturn = (INT_PTR) ShellExecute(NULL,
-                                         "open",
-                                         pszPath, NULL, NULL, SW_MAXIMIZE);
-            if (iReturn < 32) {
-                ErrorF("winAboutDlgProc - WM_COMMAND - ID_ABOUT_FAQ - "
-                       "ShellExecute failed: %d\n", (int)iReturn);
-            }
-        }
-            return TRUE;
         }
         break;
 
@@ -690,10 +637,7 @@ winAboutDlgProc(HWND hwndDialog, UINT message, WPARAM wParam, LPARAM lParam)
         PostMessage(s_pScreenPriv->hwndScreen, WM_NULL, 0, 0);
 
         /* Restore window procedures for URL buttons */
-        winUnoverrideURLButton(hwndDialog, ID_ABOUT_CHANGELOG);
         winUnoverrideURLButton(hwndDialog, ID_ABOUT_WEBSITE);
-        winUnoverrideURLButton(hwndDialog, ID_ABOUT_UG);
-        winUnoverrideURLButton(hwndDialog, ID_ABOUT_FAQ);
 
         return TRUE;
     }
diff --git a/hw/xwin/winresource.h b/hw/xwin/winresource.h
index a14d402..afbf9f2 100644
--- a/hw/xwin/winresource.h
+++ b/hw/xwin/winresource.h
@@ -44,9 +44,6 @@
 #define ID_APP_ALWAYS_ON_TOP	202
 #define ID_APP_ABOUT		203
 
-#define ID_ABOUT_UG		300
-#define ID_ABOUT_FAQ		301
-#define ID_ABOUT_CHANGELOG	302
 #define ID_ABOUT_WEBSITE	303
 
 #endif
commit 3b4d472b72601922bac264283eb6b611d8d524fc
Author: Oliver Schmidt <oschmidt-mailinglists at gmx.de>
Date:   Wed Sep 7 14:00:56 2011 +0100

    hw/xwin: Minimize redraw events after resizing/moving windows in multiwindow mode
    
    In multiwindow mode the modal moving/resizing of windows causes a lot of redraw
    events to be sent to the X clients after the user releases the mouse button.
    During the moving/resizing client windows are not redrawn as long as the mouse
    button is pressed, but all redraw/resizing events are queued and executed step
    after step after the moving/resizing ends.
    
    Some clients collect and combine multiple redraw or resizing events, other
    clients (e.g. xterm) simply execute each redraw or sizing event.
    
    The enclosed patch minimizes the events for clients to only one event after the
    user releases the mouse button to end the moving/resizing. This improves the
    user experience and reduces strange screen flickerings, especially on slow
    platforms.
    
    The enclosed patch modifies winmultiwindowwndproc.c such that the windows events
    WM_ENTERSIZEMOVE and WM_EXITSIZEMOVE that are sent by Windows when the modal
    window resizing/moving begins or ends are considered. Only after WM_EXITSIZEMOVE
    is the redraw/resizing executed.
    
    Signed-off-by: Oliver Schmidt <oschmidt-mailinglists at gmx.de>
    Reviewed-by: Jon TURNEY <jon.turney at dronecode.org.uk>
    Reviewed-by: Colin Harrison <colin.harrison at virgin.net>

diff --git a/hw/xwin/winmultiwindowwndproc.c b/hw/xwin/winmultiwindowwndproc.c
index 2d57014..17823ba 100644
--- a/hw/xwin/winmultiwindowwndproc.c
+++ b/hw/xwin/winmultiwindowwndproc.c
@@ -316,6 +316,7 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
     static Bool s_fTracking = FALSE;
     Bool needRestack = FALSE;
     LRESULT ret;
+    static Bool hasEnteredSizeMove = FALSE;
 
 #if CYGDEBUG
     winDebugWin32Message("winTopLevelWindowProc", hwnd, message, wParam,
@@ -872,7 +873,9 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
     case WM_MOVE:
         /* Adjust the X Window to the moved Windows window */
-        winAdjustXWindow(pWin, hwnd);
+        if (!hasEnteredSizeMove)
+            winAdjustXWindow(pWin, hwnd);
+        /* else: Wait for WM_EXITSIZEMOVE */
         return 0;
 
     case WM_SHOWWINDOW:
@@ -1005,6 +1008,16 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
          */
         break;
 
+    case WM_ENTERSIZEMOVE:
+        hasEnteredSizeMove = TRUE;
+        return 0;
+
+    case WM_EXITSIZEMOVE:
+        /* Adjust the X Window to the moved Windows window */
+        hasEnteredSizeMove = FALSE;
+        winAdjustXWindow(pWin, hwnd);
+        return 0;
+
     case WM_SIZE:
         /* see dix/window.c */
 #if CYGWINDOWING_DEBUG
@@ -1029,8 +1042,11 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
                (int) (GetTickCount()));
     }
 #endif
-        /* Adjust the X Window to the moved Windows window */
-        winAdjustXWindow(pWin, hwnd);
+        if (!hasEnteredSizeMove) {
+            /* Adjust the X Window to the moved Windows window */
+            winAdjustXWindow(pWin, hwnd);
+        }
+        /* else: wait for WM_EXITSIZEMOVE */
         return 0;               /* end of WM_SIZE handler */
 
     case WM_STYLECHANGING:
commit 03e1cc6f250a3f5cf17b34639adbbc9850c681cd
Author: Jon TURNEY <jon.turney at dronecode.org.uk>
Date:   Mon Nov 7 20:54:10 2011 +0000

    hw/xwin: Add '@<WM_CLIENT_MACHINE>' to window name when it's useful to do so
    
    Enhance GetWindowName() so it appends the result of XGetWMClientMachine() when
    it is available and useful to do so
    
    Add -hostintitle option to control this behaviour.  Add documentation for this
    option to man page and -help text.
    
    Also, fix warning in UpdateName()
    
    v2: Provide a HOST_NAME_MAX definition for MinGW
    v3: Use '@host' rather than ' (on host)'. Don't add host if it's already in the
    title.
    
    Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk>
    Reviewed-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
    Reviewed-by: Colin Harrison <colin.harrison at virgin.net>

diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c
index 04015cd..b3ff7c0 100644
--- a/hw/xwin/InitOutput.c
+++ b/hw/xwin/InitOutput.c
@@ -786,6 +786,9 @@ winUseMsg(void)
 
     ErrorF("-fullscreen\n" "\tRun the server in fullscreen mode.\n");
 
+    ErrorF("-hostintitle\n"
+           "\tIn multiwindow mode, add remote host names to window titles.\n");
+
     ErrorF("-ignoreinput\n" "\tIgnore keyboard and mouse input.\n");
 
 #ifdef XWIN_MULTIWINDOWEXTWM
diff --git a/hw/xwin/man/XWin.man b/hw/xwin/man/XWin.man
index 18ee667..c71f6a1 100644
--- a/hw/xwin/man/XWin.man
+++ b/hw/xwin/man/XWin.man
@@ -165,6 +165,12 @@ The maximum dimensions of the screen are the dimensions of the \fIWindows\fP vir
 on its own is equivalent to \fB\-resize=randr\fP
 .RE
 
+.SH OPTIONS FOR MULTIWINDOW MODE
+.TP 8
+.B \-hostintitle
+Add the host name to the window title for X applications which are running
+on remote hosts, when that information is available and it's useful to do so.
+
 .SH OPTIONS CONTROLLING WINDOWS INTEGRATION
 .TP 8
 .B \-[no]clipboard
diff --git a/hw/xwin/winglobals.c b/hw/xwin/winglobals.c
index d281322..b9ad294 100644
--- a/hw/xwin/winglobals.c
+++ b/hw/xwin/winglobals.c
@@ -78,6 +78,7 @@ Bool g_fNoHelpMessageBox = FALSE;
 Bool g_fSoftwareCursor = FALSE;
 Bool g_fSilentDupError = FALSE;
 Bool g_fNativeGl = TRUE;
+Bool g_fHostInTitle = FALSE;
 pthread_mutex_t g_pmTerminating = PTHREAD_MUTEX_INITIALIZER;
 
 #ifdef XWIN_CLIPBOARD
diff --git a/hw/xwin/winglobals.h b/hw/xwin/winglobals.h
index 58a919c..60c00da 100644
--- a/hw/xwin/winglobals.h
+++ b/hw/xwin/winglobals.h
@@ -54,6 +54,7 @@ extern Bool g_fXdmcpEnabled;
 extern Bool g_fNoHelpMessageBox;
 extern Bool g_fSilentDupError;
 extern Bool g_fNativeGl;
+extern Bool g_fHostInTitle;
 
 extern HWND g_hDlgDepthChange;
 extern HWND g_hDlgExit;
diff --git a/hw/xwin/winmultiwindowwm.c b/hw/xwin/winmultiwindowwm.c
index ec577a7..618e381 100644
--- a/hw/xwin/winmultiwindowwm.c
+++ b/hw/xwin/winmultiwindowwm.c
@@ -60,6 +60,7 @@
 #include "window.h"
 #include "pixmapstr.h"
 #include "windowstr.h"
+#include "winglobals.h"
 
 #ifdef XWIN_MULTIWINDOWEXTWM
 #include <X11/extensions/windowswmstr.h>
@@ -69,6 +70,10 @@
 #define WINDOWSWM_NATIVE_HWND "_WINDOWSWM_NATIVE_HWND"
 #endif
 
+#ifndef HOST_NAME_MAX
+#define HOST_NAME_MAX 255
+#endif
+
 extern void winDebug(const char *format, ...);
 extern void winReshapeMultiWindow(WindowPtr pWin);
 extern void winUpdateRgnMultiWindow(WindowPtr pWin);
@@ -430,7 +435,10 @@ GetWindowName(Display * pDisplay, Window iWin, char **ppWindowName)
 {
     int nResult;
     XTextProperty xtpWindowName;
+    XTextProperty xtpClientMachine;
     char *pszWindowName;
+    char *pszClientMachine;
+    char hostname[HOST_NAME_MAX + 1];
 
 #if CYGMULTIWINDOW_DEBUG
     ErrorF("GetWindowName\n");
@@ -450,6 +458,41 @@ GetWindowName(Display * pDisplay, Window iWin, char **ppWindowName)
 
     pszWindowName = Xutf8TextPropertyToString(pDisplay, &xtpWindowName);
     XFree(xtpWindowName.value);
+
+    if (g_fHostInTitle) {
+        /* Try to get client machine name */
+        nResult = XGetWMClientMachine(pDisplay, iWin, &xtpClientMachine);
+        if (nResult && xtpClientMachine.value && xtpClientMachine.nitems) {
+            pszClientMachine =
+                Xutf8TextPropertyToString(pDisplay, &xtpClientMachine);
+            XFree(xtpClientMachine.value);
+
+            /*
+               If we have a client machine name
+               and it's not the local host name
+               and it's not already in the window title...
+             */
+            if (strlen(pszClientMachine) &&
+                !gethostname(hostname, HOST_NAME_MAX + 1) &&
+                strcmp(hostname, pszClientMachine) &&
+                (strstr(pszWindowName, pszClientMachine) == 0)) {
+                /* ... add '@<clientmachine>' to end of window name */
+                *ppWindowName =
+                    malloc(strlen(pszWindowName) +
+                           strlen(pszClientMachine) + 2);
+                strcpy(*ppWindowName, pszWindowName);
+                strcat(*ppWindowName, "@");
+                strcat(*ppWindowName, pszClientMachine);
+
+                free(pszWindowName);
+                free(pszClientMachine);
+
+                return;
+            }
+        }
+    }
+
+    /* otherwise just return the window name */
     *ppWindowName = pszWindowName;
 }
 
diff --git a/hw/xwin/winprocarg.c b/hw/xwin/winprocarg.c
index 858be4a..f2bf05b 100644
--- a/hw/xwin/winprocarg.c
+++ b/hw/xwin/winprocarg.c
@@ -1074,6 +1074,11 @@ ddxProcessArgument(int argc, char *argv[], int i)
         return 1;
     }
 
+    if (IS_OPTION("-hostintitle")) {
+        g_fHostInTitle = TRUE;
+        return 1;
+    }
+
     return 0;
 }
 
commit 6804acfe4fabc8ff8491bbc7edb6260440d3d4d3
Author: Colin Harrison <colin.harrison at virgin.net>
Date:   Fri Mar 14 15:44:54 2014 +0000

    hw/xwin: Remove prototype for non-existent winMWExtWMUpdateIcon()
    
    winMWExtWMUpdateIcon() was removed in commit 527cf13135cfd279733060e0028bbfbe02be5167
    
    Signed-off-by: Colin Harrison <colin.harrison at virgin.net>
    Reviewed-by: Jon TURNEY <jon.turney at dronecode.org.uk>

diff --git a/hw/xwin/win.h b/hw/xwin/win.h
index 80fc504..a738a59 100644
--- a/hw/xwin/win.h
+++ b/hw/xwin/win.h
@@ -1336,9 +1336,6 @@ void
  winMWExtWMMoveResizeXWindow(WindowPtr pWin, int x, int y, int w, int h);
 
 void
- winMWExtWMUpdateIcon(Window id);
-
-void
 
 winMWExtWMUpdateWindowDecoration(win32RootlessWindowPtr pRLWinPriv,
                                  winScreenInfoPtr pScreenInfo);
commit 7fb5d765ba1e28eb775b847cef3d6079eba3bac1
Author: Colin Harrison <colin.harrison at virgin.net>
Date:   Fri Mar 14 15:40:43 2014 +0000

    hw/xwin: Use AllocDevicePair()
    
    Use AllocDevicePair() rather than allocating Windows keyboard and pointer
    devices individually.
    
    Signed-off-by: Colin Harrison <colin.harrison at virgin.net>
    Reviewed-by: Jon TURNEY <jon.turney at dronecode.org.uk>

diff --git a/hw/xwin/InitInput.c b/hw/xwin/InitInput.c
index 36346b7..38203c9 100644
--- a/hw/xwin/InitInput.c
+++ b/hw/xwin/InitInput.c
@@ -108,10 +108,11 @@ InitInput(int argc, char *argv[])
     }
 #endif
 
-    g_pwinPointer = AddInputDevice(serverClient, winMouseProc, TRUE);
-    g_pwinKeyboard = AddInputDevice(serverClient, winKeybdProc, TRUE);
-    g_pwinPointer->name = strdup("Windows mouse");
-    g_pwinKeyboard->name = strdup("Windows keyboard");
+    if (AllocDevicePair(serverClient, "Windows",
+                        &g_pwinPointer, &g_pwinKeyboard,
+                        winMouseProc, winKeybdProc,
+                        FALSE) != Success)
+        FatalError("InitInput - Failed to allocate slave devices.\n");
 
     mieqInit();
 
commit 061e5eba00a9a0dc27ff76946dc5f77004fc6a56
Author: Colin Harrison <colin.harrison at virgin.net>
Date:   Fri Mar 14 15:36:59 2014 +0000

    hw/xwin: Consistently use 'L' for long int constants
    
    Signed-off-by: Colin Harrison <colin.harrison at virgin.net>
    Reviewed-by: Jon TURNEY <jon.turney at dronecode.org.uk>

diff --git a/hw/xwin/winmultiwindowwm.c b/hw/xwin/winmultiwindowwm.c
index 9f12521..ec577a7 100644
--- a/hw/xwin/winmultiwindowwm.c
+++ b/hw/xwin/winmultiwindowwm.c
@@ -1618,10 +1618,10 @@ winDeinitMultiWindowWM(void)
 }
 
 /* Windows window styles */
-#define HINT_NOFRAME	(1l<<0)
+#define HINT_NOFRAME	(1L<<0)
 #define HINT_BORDER	(1L<<1)
-#define HINT_SIZEBOX	(1l<<2)
-#define HINT_CAPTION	(1l<<3)
+#define HINT_SIZEBOX	(1L<<2)
+#define HINT_CAPTION	(1L<<3)
 #define HINT_NOMAXIMIZE (1L<<4)
 #define HINT_NOMINIMIZE (1L<<5)
 #define HINT_NOSYSMENU  (1L<<6)
commit 46df614784cbbffcf6368859285e949010f1ceb8
Author: Colin Harrison <colin.harrison at virgin.net>
Date:   Fri Mar 14 15:36:24 2014 +0000

    hw/xwin: Remove an unneeded include
    
    Signed-off-by: Colin Harrison <colin.harrison at virgin.net>
    Reviewed-by: Jon TURNEY <jon.turney at dronecode.org.uk>

diff --git a/hw/xwin/winwin32rootless.c b/hw/xwin/winwin32rootless.c
index 0b62696..660a78f 100644
--- a/hw/xwin/winwin32rootless.c
+++ b/hw/xwin/winwin32rootless.c
@@ -39,7 +39,6 @@
 #include <winuser.h>
 #define _WINDOWSWM_SERVER_
 #include <X11/extensions/windowswmstr.h>
-#include "dixevents.h"
 #include "winmultiwindowclass.h"
 #include <X11/Xatom.h>
 
commit d48749492dc492fd7430ffdfd29842153618f778
Author: Colin Harrison <colin.harrison at virgin.net>
Date:   Fri Mar 14 15:34:04 2014 +0000

    hw/xwin: Use boolean AND rather than bitwise AND in WIN_POLLING_MOUSE_TIMER_ID
    
    For clarity, use boolean AND rather than bitwise AND in
    WIN_POLLING_MOUSE_TIMER_ID processing.
    
    Signed-off-by: Colin Harrison <colin.harrison at virgin.net>
    Reviewed-by: Jon TURNEY <jon.turney at dronecode.org.uk>

diff --git a/hw/xwin/winwndproc.c b/hw/xwin/winwndproc.c
index c73a75c..bee223d 100644
--- a/hw/xwin/winwndproc.c
+++ b/hw/xwin/winwndproc.c
@@ -955,11 +955,11 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
             wShift = (GetKeyState(VK_SHIFT) & 0x8000) ? MK_SHIFT : 0;
             wCtrl = (GetKeyState(VK_CONTROL) & 0x8000) ? MK_CONTROL : 0;
             lPos = MAKELPARAM(point.x, point.y);
-            if (g_fButton[0] & !wL)
+            if (g_fButton[0] && !wL)
                 PostMessage(hwnd, WM_LBUTTONUP, wCtrl | wM | wR | wShift, lPos);
-            if (g_fButton[1] & !wM)
+            if (g_fButton[1] && !wM)
                 PostMessage(hwnd, WM_MBUTTONUP, wCtrl | wL | wR | wShift, lPos);
-            if (g_fButton[2] & !wR)
+            if (g_fButton[2] && !wR)
                 PostMessage(hwnd, WM_RBUTTONUP, wCtrl | wL | wM | wShift, lPos);
         }
         }
commit 80ac4a85d56130d09bbc72ed071759a361ded689
Author: Colin Harrison <colin.harrison at virgin.net>
Date:   Fri Mar 14 15:23:16 2014 +0000

    hw/xwin: Fix declaration after statement warning in ddxGiveUp()
    
    Signed-off-by: Colin Harrison <colin.harrison at virgin.net>
    Reviewed-by: Jon TURNEY <jon.turney at dronecode.org.uk>

diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c
index 9413350..04015cd 100644
--- a/hw/xwin/InitOutput.c
+++ b/hw/xwin/InitOutput.c
@@ -271,10 +271,10 @@ ddxGiveUp(enum ExitCode error)
     PostQuitMessage(0);
 
     {
-        winDebug("ddxGiveUp - Releasing termination mutex\n");
-
         int iReturn = pthread_mutex_unlock(&g_pmTerminating);
 
+        winDebug("ddxGiveUp - Releasing termination mutex\n");
+
         if (iReturn != 0) {
             ErrorF("winMsgWindowProc - pthread_mutex_unlock () failed: %d\n",
                    iReturn);
commit cf59f4888e202c6a68176bd3de1f837ca8480370
Author: Colin Harrison <colin.harrison at virgin.net>
Date:   Fri Mar 14 15:09:24 2014 +0000

    hw/xwin: Fix typo in comment
    
    Signed-off-by: Colin Harrison <colin.harrison at virgin.net>
    Reviewed-by: Jon TURNEY <jon.turney at dronecode.org.uk>

diff --git a/hw/xwin/winmultiwindowwndproc.c b/hw/xwin/winmultiwindowwndproc.c
index abb87ee..2d57014 100644
--- a/hw/xwin/winmultiwindowwndproc.c
+++ b/hw/xwin/winmultiwindowwndproc.c
@@ -837,7 +837,7 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
         break;
 
     case WM_CLOSE:
-        /* Removep AppUserModelID property */
+        /* Remove AppUserModelID property */
         winSetAppUserModelID(hwnd, NULL);
         /* Branch on if the window was killed in X already */
         if (pWinPriv->fXKilled) {
commit 561bca469d3ade1ff14faddaf70bf12dcdc6aa74
Author: Jon TURNEY <jon.turney at dronecode.org.uk>
Date:   Thu Mar 13 22:38:43 2014 +0000

    hw/xwin: Fix const discarded warning in winGenerateAuthorization()
    
    Fix const discarded warning in winGenerateAuthorization() in !XCSECURITY case
    
    In function ‘winGenerateAuthorization’:
    hw/xwin/winauth.c:123:38: warning: passing argument 2 of ‘GenerateAuthorization’ discards ‘const’ qualifier from pointer target type [enabled by default]
    hw/xwin/winauth.c:99:1: note: expected ‘char *’ but argument is of type ‘const char *’
    
    Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk>
    Reviewed-by: Colin Harrison <colin.harrison at virgin.net>

diff --git a/hw/xwin/winauth.c b/hw/xwin/winauth.c
index a6a7366..7efa1c0 100644
--- a/hw/xwin/winauth.c
+++ b/hw/xwin/winauth.c
@@ -97,9 +97,9 @@ MitGenerateCookie(unsigned data_length,
 static
     XID
 GenerateAuthorization(unsigned name_length,
-                      char *name,
+                      const char *name,
                       unsigned data_length,
-                      char *data,
+                      const char *data,
                       unsigned *data_length_return, char **data_return)
 {
     return MitGenerateCookie(data_length, data,


More information about the xorg-commit mailing list