[Xquartz-changes] xserver: Branch 'master' - 7 commits

Jeremy Huddleston jeremyhu at freedesktop.org
Fri Mar 23 20:00:45 PDT 2012


Rebased ref, commits from common ancestor:
commit ad836bfe8c4f1dbeb2aa0c0cfeed705e55e7aec9
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Fri Feb 17 13:15:12 2012 -0800

    XQuartz: Detect FatalErrors on startup to prevent tight crash loops
    
    If a FatalError occurs before the server finishes launching, it will
    not have drained the launchd-owned DISPLAY socket, so launchd will
    just relaunch it.  This can cause the server to crash in a tight loop
    which will spam the user with CrashReporter windows that claim focus on
    appearance.
    
    This allows users stuck in this loop to "deal" with the problem without
    popping up a crash report every 10 seconds.
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

diff --git a/hw/xquartz/X11Application.h b/hw/xquartz/X11Application.h
index eae1cba..a9f2ebc 100644
--- a/hw/xquartz/X11Application.h
+++ b/hw/xquartz/X11Application.h
@@ -110,6 +110,9 @@ X11ApplicationCanEnterRandR(void);
 void
 X11ApplicationMain(int argc, char **argv, char **envp);
 
+void
+X11ApplicationFatalError(const char *f, va_list args) __printflike(1, 0);
+
 #define PREFS_APPSMENU              "apps_menu"
 #define PREFS_FAKEBUTTONS           "enable_fake_buttons"
 #define PREFS_KEYEQUIVS             "enable_key_equivalents"
diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m
index 547e4fc..7df0a49 100644
--- a/hw/xquartz/X11Application.m
+++ b/hw/xquartz/X11Application.m
@@ -70,6 +70,7 @@ static dispatch_queue_t eventTranslationQueue;
 
 extern Bool noTestExtensions;
 extern Bool noRenderExtension;
+extern BOOL serverRunning;
 
 #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
 static TISInputSourceRef last_key_layout;
@@ -1072,6 +1073,50 @@ NO] || XQuartzShieldingWindowLevel != 0)
     }
 }
 
+void
+X11ApplicationFatalError(const char *f, va_list args)
+{
+#ifdef HAVE_LIBDISPATCH
+    NSString *title, *msg;
+    char *error_msg;
+
+    /* This is called by FatalError() in the server thread just before
+     * we would abort.  If the server never got off the ground, We should
+     * inform the user of the error rather than letting the ever-so-friendly
+     * CrashReporter do it for us.
+     *
+     * This also has the benefit of forcing user interaction rather than
+     * allowing an infinite throttled-restart if the crash occurs before
+     * we can drain the launchd socket.
+     */
+
+    if (serverRunning) {
+        return;
+    }
+
+    title = NSLocalizedString(@"The application X11 could not be opened.",
+                              @"Dialog title when encountering a fatal error");
+    msg = NSLocalizedString(@"An error occurred while starting the X11 server: \"%s\"\n\nClick Quit to quit X11. Click Report to see more details or send a report to Apple.",
+                            @"Dialog when encountering a fatal error");
+
+    vasprintf(&error_msg, f, args);
+    msg = [NSString stringWithFormat:msg, error_msg];
+
+    /* We want the AppKit thread to actually service the alert or we will race [NSApp run] and create an
+     * 'NSInternalInconsistencyException', reason: 'NSApp with wrong _running count'
+     */
+    dispatch_sync(dispatch_get_main_queue(), ^{
+        if (NSAlertDefaultReturn == NSRunAlertPanel(title, msg, NSLocalizedString(@"Quit", @""),
+                                                    NSLocalizedString (@"Report...", @""), nil)) {
+            exit(EXIT_FAILURE);
+        }
+    });
+
+    /* fall back to caller to do the abort() in the DIX */
+#endif
+}
+
+
 static void
 check_xinitrc(void)
 {
diff --git a/hw/xquartz/bundle/Resources/English.lproj/Localizable.strings b/hw/xquartz/bundle/Resources/English.lproj/Localizable.strings
index bf2089c..36ae0ff 100644
Binary files a/hw/xquartz/bundle/Resources/English.lproj/Localizable.strings and b/hw/xquartz/bundle/Resources/English.lproj/Localizable.strings differ
diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c
index 3dd41cb..f9acf90 100644
--- a/hw/xquartz/darwin.c
+++ b/hw/xquartz/darwin.c
@@ -78,6 +78,8 @@
 #include "quartzKeyboard.h"
 #include "quartz.h"
 
+#include "X11Application.h"
+
 aslclient aslc;
 
 void
@@ -636,7 +638,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
 void
 OsVendorFatalError(const char *f, va_list args)
 {
-    ErrorF("   OsVendorFatalError\n");
+    X11ApplicationFatalError(f, args);
 }
 
 /*
commit 8a2cc0f8afe34a6f5efd73b9e2679e73f4d07b25
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Fri Feb 17 12:35:02 2012 -0800

    os: Pass the FatalError message to OsVendorFatalError
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
    Reviewed-by: Jon TURNEY <jon.turney at dronecode.org.uk>

diff --git a/hw/dmx/dmxinit.c b/hw/dmx/dmxinit.c
index 09e3d74..5804353 100644
--- a/hw/dmx/dmxinit.c
+++ b/hw/dmx/dmxinit.c
@@ -905,7 +905,7 @@ OsVendorInit(void)
  * two routines mentioned here, as well as by others) to use the
  * referenced routine instead of \a vfprintf().) */
 void
-OsVendorFatalError(void)
+OsVendorFatalError(const char *f, va_list args)
 {
 }
 
diff --git a/hw/dmx/dmxlog.c b/hw/dmx/dmxlog.c
index b56bb93..33aee59 100644
--- a/hw/dmx/dmxlog.c
+++ b/hw/dmx/dmxlog.c
@@ -110,9 +110,6 @@ VFatalError(const char *format, va_list args)
 {
     VErrorF(format, args);
     ErrorF("\n");
-#ifdef DDXOSFATALERROR
-    OsVendorFatalError();
-#endif
     AbortServer();
  /*NOTREACHED*/}
 #endif
diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c
index f65ab96..ecdae19 100644
--- a/hw/kdrive/src/kdrive.c
+++ b/hw/kdrive/src/kdrive.c
@@ -1104,7 +1104,7 @@ KdInitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
 }
 
 void
-OsVendorFatalError(void)
+OsVendorFatalError(const char *f, va_list args)
 {
 }
 
diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c
index 2d679a5..e2cd96c 100644
--- a/hw/vfb/InitOutput.c
+++ b/hw/vfb/InitOutput.c
@@ -219,7 +219,7 @@ OsVendorInit(void)
 }
 
 void
-OsVendorFatalError(void)
+OsVendorFatalError(const char *f, va_list args)
 {
 }
 
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 0974893..2a7d0a3 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -1053,7 +1053,7 @@ AbortDDX(enum ExitCode error)
 }
 
 void
-OsVendorFatalError(void)
+OsVendorFatalError(const char *f, va_list args)
 {
 #ifdef VENDORSUPPORT
     ErrorF("\nPlease refer to your Operating System Vendor support pages\n"
diff --git a/hw/xnest/Init.c b/hw/xnest/Init.c
index 0909826..330b8ca 100644
--- a/hw/xnest/Init.c
+++ b/hw/xnest/Init.c
@@ -142,7 +142,7 @@ OsVendorInit(void)
 }
 
 void
-OsVendorFatalError(void)
+OsVendorFatalError(const char *f, va_list args)
 {
     return;
 }
diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c
index 29036fc..3dd41cb 100644
--- a/hw/xquartz/darwin.c
+++ b/hw/xquartz/darwin.c
@@ -634,7 +634,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
  * OsVendorFatalError
  */
 void
-OsVendorFatalError(void)
+OsVendorFatalError(const char *f, va_list args)
 {
     ErrorF("   OsVendorFatalError\n");
 }
diff --git a/hw/xwin/winerror.c b/hw/xwin/winerror.c
index 4049e97..a25307c 100644
--- a/hw/xwin/winerror.c
+++ b/hw/xwin/winerror.c
@@ -70,7 +70,7 @@ OsVendorVErrorF(const char *pszFormat, va_list va_args)
  * Attempt to do last-ditch, safe, important cleanup here.
  */
 void
-OsVendorFatalError(void)
+OsVendorFatalError(const char *f, va_list args)
 {
     /* Don't give duplicate warning if UseMsg was called */
     if (g_fSilentFatalError)
diff --git a/include/os.h b/include/os.h
index dd06a85..166c60c 100644
--- a/include/os.h
+++ b/include/os.h
@@ -321,7 +321,7 @@ extern _X_EXPORT void
 OsCleanup(Bool);
 
 extern _X_EXPORT void
-OsVendorFatalError(void);
+OsVendorFatalError(const char *f, va_list args);
 
 extern _X_EXPORT void
 OsVendorInit(void);
diff --git a/os/log.c b/os/log.c
index 1b1b285..9a71969 100644
--- a/os/log.c
+++ b/os/log.c
@@ -593,6 +593,7 @@ void
 FatalError(const char *f, ...)
 {
     va_list args;
+    va_list args2;
     static Bool beenhere = FALSE;
 
     if (beenhere)
@@ -600,22 +601,25 @@ FatalError(const char *f, ...)
     else
         ErrorF("\nFatal server error:\n");
 
-    va_start(args, f);
+    /* Make a copy for OsVendorFatalError */
+    va_copy(args2, args);
+
 #ifdef __APPLE__
     {
-        va_list args2;
+        va_list apple_args;
 
-        va_copy(args2, args);
-        (void) vsnprintf(__crashreporter_info_buff__,
-                         sizeof(__crashreporter_info_buff__), f, args2);
-        va_end(args2);
+        va_copy(apple_args, args);
+        (void)vsnprintf(__crashreporter_info_buff__,
+                        sizeof(__crashreporter_info_buff__), f, apple_args);
+        va_end(apple_args);
     }
 #endif
     VErrorF(f, args);
     va_end(args);
     ErrorF("\n");
     if (!beenhere)
-        OsVendorFatalError();
+        OsVendorFatalError(f, args2);
+    va_end(args2);
     if (!beenhere) {
         beenhere = TRUE;
         AbortServer();
diff --git a/test/ddxstubs.c b/test/ddxstubs.c
index a214b96..3647dc5 100644
--- a/test/ddxstubs.c
+++ b/test/ddxstubs.c
@@ -50,7 +50,7 @@ OsVendorInit(void)
 }
 
 void
-OsVendorFatalError(void)
+OsVendorFatalError(const char *f, va_list args)
 {
 }
 
commit e294a2a50ddd1bf1cc66d5ddf74d5a4529997f2c
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Tue Mar 13 00:15:55 2012 -0700

    XQuartz: Add a defaults option to disable the RENDER extension
    
    RENDER has some ugly issues on XQuartz, so add an option to disable RENDER.
    
    Enables workaround for: https://bugs.freedesktop.org/show_bug.cgi?id=26124
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

diff --git a/hw/xquartz/X11Application.h b/hw/xquartz/X11Application.h
index e32d88c..eae1cba 100644
--- a/hw/xquartz/X11Application.h
+++ b/hw/xquartz/X11Application.h
@@ -128,6 +128,7 @@ X11ApplicationMain(int argc, char **argv, char **envp);
 #define PREFS_APPKIT_MODIFIERS      "appkit_modifiers"
 #define PREFS_WINDOW_ITEM_MODIFIERS "window_item_modifiers"
 #define PREFS_ROOTLESS              "rootless"
+#define PREFS_RENDER_EXTENSION      "enable_render_extension"
 #define PREFS_TEST_EXTENSIONS       "enable_test_extensions"
 #define PREFS_XP_OPTIONS            "xp_options"
 #define PREFS_LOGIN_SHELL           "login_shell"
diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m
index 4ab2dfd..547e4fc 100644
--- a/hw/xquartz/X11Application.m
+++ b/hw/xquartz/X11Application.m
@@ -69,6 +69,7 @@ static dispatch_queue_t eventTranslationQueue;
 #endif
 
 extern Bool noTestExtensions;
+extern Bool noRenderExtension;
 
 #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
 static TISInputSourceRef last_key_layout;
@@ -892,6 +893,9 @@ darwinDesiredDepth];
 noTestExtensions = ![self prefs_get_boolean: @PREFS_TEST_EXTENSIONS default:
 FALSE];
 
+noRenderExtension = ![self prefs_get_boolean: @PREFS_RENDER_EXTENSION default:
+TRUE];
+
 XQuartzScrollInDeviceDirection =[self prefs_get_boolean: @PREFS_SCROLL_IN_DEV_DIRECTION default:
 XQuartzScrollInDeviceDirection];
 
commit e0c3431f5eebc73c180b78a3b50fc8bc26c9762a
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Sat Mar 17 00:04:27 2012 -0700

    XQuartz: Use doubles for input valuators
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c
index cf29a7b..053f404 100644
--- a/hw/xquartz/darwinEvents.c
+++ b/hw/xquartz/darwinEvents.c
@@ -430,10 +430,12 @@ DarwinPokeEQ(void)
  *       display.
  */
 static void
-DarwinPrepareValuators(DeviceIntPtr pDev, int *valuators, ScreenPtr screen,
-                       float pointer_x, float pointer_y,
-                       float pressure, float tilt_x, float tilt_y)
+DarwinPrepareValuators(DeviceIntPtr pDev, ValuatorMask *pmask, ScreenPtr screen,
+                       double pointer_x, double pointer_y,
+                       double pressure, double tilt_x, double tilt_y)
 {
+    valuator_mask_zero(pmask);
+
     /* Fix offset between darwin and X screens */
     pointer_x -= darwinMainScreenX + screen->x;
     pointer_y -= darwinMainScreenY + screen->y;
@@ -445,26 +447,19 @@ DarwinPrepareValuators(DeviceIntPtr pDev, int *valuators, ScreenPtr screen,
         pointer_y = 0.0;
 
     if (pDev == darwinPointer) {
-        valuators[0] = pointer_x;
-        valuators[1] = pointer_y;
-        valuators[2] = 0;
-        valuators[3] = 0;
-        valuators[4] = 0;
-    }
-    else {
-        /* Setup our array of values */
-        valuators[0] =
-            XQUARTZ_VALUATOR_LIMIT * (pointer_x /
-                                      (float) screenInfo.screens[0]->width);
-        valuators[1] =
-            XQUARTZ_VALUATOR_LIMIT * (pointer_y /
-                                      (float) screenInfo.screens[0]->height);
-        valuators[2] = XQUARTZ_VALUATOR_LIMIT * pressure;
-        valuators[3] = XQUARTZ_VALUATOR_LIMIT * tilt_x;
-        valuators[4] = XQUARTZ_VALUATOR_LIMIT * tilt_y;
+        valuator_mask_set_double(pmask, 0, pointer_x);
+        valuator_mask_set_double(pmask, 1, pointer_y);
+    } else {
+        valuator_mask_set_double(pmask, 0, XQUARTZ_VALUATOR_LIMIT * (pointer_x / (double)screenInfo.screens[0]->width));
+        valuator_mask_set_double(pmask, 1, XQUARTZ_VALUATOR_LIMIT * (pointer_y / (double)screenInfo.screens[0]->height));
+        valuator_mask_set_double(pmask, 2, XQUARTZ_VALUATOR_LIMIT * pressure);
+        valuator_mask_set_double(pmask, 3, XQUARTZ_VALUATOR_LIMIT * tilt_x);
+        valuator_mask_set_double(pmask, 4, XQUARTZ_VALUATOR_LIMIT * tilt_y);
     }
-    //DEBUG_LOG("Pointer (%f, %f), Valuators: {%d,%d,%d,%d,%d}\n", pointer_x, pointer_y,
-    //          valuators[0], valuators[1], valuators[2], valuators[3], valuators[4]);
+    //DEBUG_LOG("Pointer (%lf, %lf), Valuators: {%lf,%lf,%lf,%lf,%lf}\n", pointer_x, pointer_y,
+    //          valuator_mask_get_double(pmask, 0), valuator_mask_get_double(pmask, 1),
+    //          valuator_mask_get_double(pmask, 2), valuator_mask_get_double(pmask, 3),
+    //          valuator_mask_get_double(pmask, 4));
 }
 
 void
@@ -497,12 +492,12 @@ DarwinInputReleaseButtonsAndKeys(DeviceIntPtr pDev)
 
 void
 DarwinSendPointerEvents(DeviceIntPtr pDev, int ev_type, int ev_button,
-                        float pointer_x, float pointer_y, float pressure,
-                        float tilt_x, float tilt_y)
+                        double pointer_x, double pointer_y, double pressure,
+                        double tilt_x, double tilt_y)
 {
     static int darwinFakeMouseButtonDown = 0;
     ScreenPtr screen;
-    int valuators[5];
+    ValuatorMask valuators;
 
     //DEBUG_LOG("x=%f, y=%f, p=%f, tx=%f, ty=%f\n", pointer_x, pointer_y, pressure, tilt_x, tilt_y);
 
@@ -559,14 +554,10 @@ DarwinSendPointerEvents(DeviceIntPtr pDev, int ev_type, int ev_button,
         darwinFakeMouseButtonDown = 0;
     }
 
-    DarwinPrepareValuators(pDev, valuators, screen, pointer_x, pointer_y,
+    DarwinPrepareValuators(pDev, &valuators, screen, pointer_x, pointer_y,
                            pressure, tilt_x, tilt_y);
     darwinEvents_lock(); {
-        ValuatorMask mask;
-
-        valuator_mask_set_range(&mask, 0, (pDev == darwinPointer) ? 2 : 5,
-                                valuators);
-        QueuePointerEvents(pDev, ev_type, ev_button, POINTER_ABSOLUTE, &mask);
+        QueuePointerEvents(pDev, ev_type, ev_button, POINTER_ABSOLUTE, &valuators);
         DarwinPokeEQ();
     } darwinEvents_unlock();
 }
@@ -590,12 +581,12 @@ DarwinSendKeyboardEvents(int ev_type, int keycode)
 }
 
 void
-DarwinSendProximityEvents(DeviceIntPtr pDev, int ev_type, float pointer_x,
-                          float pointer_y, float pressure, float tilt_x,
-                          float tilt_y)
+DarwinSendProximityEvents(DeviceIntPtr pDev, int ev_type, double pointer_x,
+                          double pointer_y, double pressure, double tilt_x,
+                          double tilt_y)
 {
     ScreenPtr screen;
-    int valuators[5];
+    ValuatorMask valuators;
 
     DEBUG_LOG("DarwinSendProximityEvents: %d l:%f,%f p:%f t:%f,%f\n", ev_type,
               pointer_x, pointer_y, pressure, tilt_x, tilt_y);
@@ -613,54 +604,50 @@ DarwinSendProximityEvents(DeviceIntPtr pDev, int ev_type, float pointer_x,
         return;
     }
 
-    DarwinPrepareValuators(pDev, valuators, screen, pointer_x, pointer_y,
+    DarwinPrepareValuators(pDev, &valuators, screen, pointer_x, pointer_y,
                            pressure, tilt_x, tilt_y);
     darwinEvents_lock(); {
-        ValuatorMask mask;
-
-        valuator_mask_set_range(&mask, 0, 5, valuators);
-        QueueProximityEvents(pDev, ev_type, &mask);
+        QueueProximityEvents(pDev, ev_type, &valuators);
         DarwinPokeEQ();
     } darwinEvents_unlock();
 }
 
 /* Send the appropriate number of button clicks to emulate scroll wheel */
 void
-DarwinSendScrollEvents(float count_x, float count_y,
-                       float pointer_x, float pointer_y,
-                       float pressure, float tilt_x, float tilt_y)
+DarwinSendScrollEvents(double scroll_x, double scroll_y, double pointer_x,
+                       double pointer_y, double pressure, double tilt_x,
+                       double tilt_y)
 {
     int sign_x, sign_y;
-
     if (!darwinEvents) {
-        DEBUG_LOG
-            ("DarwinSendScrollEvents called before darwinEvents was initialized\n");
+        DEBUG_LOG("DarwinSendScrollEvents called before darwinEvents was initialized\n");
         return;
     }
 
-    sign_x = count_x > 0.0f ? SCROLLWHEELLEFTFAKE : SCROLLWHEELRIGHTFAKE;
-    sign_y = count_y > 0.0f ? SCROLLWHEELUPFAKE : SCROLLWHEELDOWNFAKE;
-    count_x = fabs(count_x);
-    count_y = fabs(count_y);
+    sign_x = scroll_x > 0.0f ? SCROLLWHEELLEFTFAKE : SCROLLWHEELRIGHTFAKE;
+    sign_y = scroll_y > 0.0f ? SCROLLWHEELUPFAKE : SCROLLWHEELDOWNFAKE;
+    scroll_x = fabs(scroll_x);
+    scroll_y = fabs(scroll_y);
 
-    while ((count_x > 0.0f) || (count_y > 0.0f)) {
-        if (count_x > 0.0f) {
+    while ((scroll_x > 0.0f) || (scroll_y > 0.0f)) {
+        if (scroll_x > 0.0f) {
             DarwinSendPointerEvents(darwinPointer, ButtonPress, sign_x,
-                                    pointer_x, pointer_y, pressure, tilt_x,
-                                    tilt_y);
+                                    pointer_x, pointer_y, pressure,
+                                    tilt_x, tilt_y);
             DarwinSendPointerEvents(darwinPointer, ButtonRelease, sign_x,
-                                    pointer_x, pointer_y, pressure, tilt_x,
-                                    tilt_y);
-            count_x = count_x - 1.0f;
+                                    pointer_x, pointer_y, pressure,
+                                    tilt_x, tilt_y);
+            scroll_x = scroll_x - 1.0f;
         }
-        if (count_y > 0.0f) {
-            DarwinSendPointerEvents(darwinPointer, ButtonPress, sign_y,
-                                    pointer_x, pointer_y, pressure, tilt_x,
-                                    tilt_y);
+
+        if (scroll_y > 0.0f) {
+            DarwinSendPointerEvents(darwinPointer, ButtonPress, sign_y, 
+                                    pointer_x, pointer_y, pressure,
+                                    tilt_x, tilt_y);
             DarwinSendPointerEvents(darwinPointer, ButtonRelease, sign_y,
-                                    pointer_x, pointer_y, pressure, tilt_x,
-                                    tilt_y);
-            count_y = count_y - 1.0f;
+                                    pointer_x, pointer_y, pressure,
+                                    tilt_x, tilt_y);
+            scroll_y = scroll_y - 1.0f;
         }
     }
 }
diff --git a/hw/xquartz/darwinEvents.h b/hw/xquartz/darwinEvents.h
index 515dd30..b8660a6 100644
--- a/hw/xquartz/darwinEvents.h
+++ b/hw/xquartz/darwinEvents.h
@@ -38,15 +38,15 @@ void DarwinEQPointerPost(DeviceIntPtr pDev, xEventPtr e);
 void DarwinEQSwitchScreen(ScreenPtr pScreen, Bool fromDIX);
 void DarwinInputReleaseButtonsAndKeys(DeviceIntPtr pDev);
 void DarwinSendPointerEvents(DeviceIntPtr pDev, int ev_type, int ev_button,
-                             float pointer_x, float pointer_y, float pressure,
-                             float tilt_x, float tilt_y);
-void DarwinSendProximityEvents(DeviceIntPtr pDev, int ev_type, float pointer_x,
-                               float pointer_y, float pressure, float tilt_x,
-                               float tilt_y);
+                             double pointer_x, double pointer_y, double pressure,
+                             double tilt_x, double tilt_y);
+void DarwinSendProximityEvents(DeviceIntPtr pDev, int ev_type, double pointer_x,
+                               double pointer_y, double pressure, double tilt_x,
+                               double tilt_y);
 void DarwinSendKeyboardEvents(int ev_type, int keycode);
-void DarwinSendScrollEvents(float count_x, float count_y, float pointer_x,
-                            float pointer_y, float pressure, float tilt_x,
-                            float tilt_y);
+void DarwinSendScrollEvents(double scroll_x, double scroll_y, double pointer_x,
+                            double pointer_y, double pressure, double tilt_x,
+                            double tilt_y);
 void DarwinUpdateModKeys(int flags);
 void DarwinListenOnOpenFD(int fd);
 
commit 8a4c137e0e8999f07d7b8bb1f6764c3a67ead7bb
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Sat Mar 17 00:08:19 2012 -0700

    XQuartz: Xi: darwinPointer is now Relative
    
    There is really no real reason why this should be necessary, but wine
    developers are stuborn, so doing this to try to work around this wine
    issue:
    
    http://bugs.winehq.org/show_bug.cgi?id=29732
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c
index 2e5285a..29036fc 100644
--- a/hw/xquartz/darwin.c
+++ b/hw/xquartz/darwin.c
@@ -336,9 +336,9 @@ DarwinMouseProc(DeviceIntPtr pPointer, int what)
                                 (PtrCtrlProcPtr) NoopDDA,
                                 GetMotionHistorySize(), NAXES, axes_labels);
         InitValuatorAxisStruct(pPointer, 0, axes_labels[0], NO_AXIS_LIMITS,
-                               NO_AXIS_LIMITS, 0, 0, 0, Absolute);
+                               NO_AXIS_LIMITS, 1, 0, 1, Relative);
         InitValuatorAxisStruct(pPointer, 1, axes_labels[1], NO_AXIS_LIMITS,
-                               NO_AXIS_LIMITS, 0, 0, 0, Absolute);
+                               NO_AXIS_LIMITS, 1, 0, 1, Relative);
         break;
     case DEVICE_ON:
         pPointer->public.on = TRUE;
commit f5da8f425408a01c4cbe7e46607f5d246400747a
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Tue Mar 13 00:25:53 2012 -0700

    XQuartz: Move our logs into an X11 subdirectory
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c
index a0ce377..2e5285a 100644
--- a/hw/xquartz/darwin.c
+++ b/hw/xquartz/darwin.c
@@ -56,6 +56,7 @@
 
 #include <sys/types.h>
 #include <sys/time.h>
+#include <sys/stat.h>
 #include <sys/syslimits.h>
 #include <stdio.h>
 #include <fcntl.h>
@@ -650,9 +651,14 @@ OsVendorInit(void)
         char *home = getenv("HOME");
 
         assert(home);
-        assert(0 <
-               asprintf(&lf, "%s/Library/Logs/%s.X11.log", home,
-                        bundle_id_prefix));
+
+        /* Ignore errors.  If EEXIST, we don't care.  If anything else,
+         * LogInit will handle it for us.
+         */
+        (void)mkdir(lf, S_IRWXU | S_IRWXG | S_IRWXO);
+        free(lf);
+
+        assert(0 < asprintf(&lf, "%s/Library/Logs/X11/%s.log", home, bundle_id_prefix));
         LogInit(lf, ".old");
         free(lf);
 
commit 3004bf131bdb7070e041c8df3f7ad133a2b78a9a
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Fri Mar 23 19:58:49 2012 -0700

    XQuartz: Undo some critical ObjC buthcering by indent
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

diff --git a/hw/xquartz/X11Application.h b/hw/xquartz/X11Application.h
index bdbe6ac..e32d88c 100644
--- a/hw/xquartz/X11Application.h
+++ b/hw/xquartz/X11Application.h
@@ -40,49 +40,51 @@
     unsigned int _x_active:1;
 }
 
- -(void) set_controller:controller;
- -(void) set_window_menu:(NSArray *) list;
+-(void) set_controller:controller;
+-(void) set_window_menu:(NSArray *) list;
 
- -(CFPropertyListRef) prefs_get_copy:(NSString *)
+-(CFPropertyListRef) prefs_get_copy:(NSString *)
 key CF_RETURNS_RETAINED;
 
- -(int) prefs_get_integer:(NSString *)
+-(int) prefs_get_integer:(NSString *)
 key default:(int) def;
 
- -(const char *) prefs_get_string:(NSString *)
+-(const char *) prefs_get_string:(NSString *)
 key default:(const char *) def;
 
- -(float) prefs_get_float:(NSString *)
+-(float) prefs_get_float:(NSString *)
 key default:(float) def;
 
- -(int) prefs_get_boolean:(NSString *)
+-(int) prefs_get_boolean:(NSString *)
 key default:(int) def;
 
- -(NSURL *) prefs_copy_url:(NSString *)
+-(NSURL *) prefs_copy_url:(NSString *)
 key default:(NSURL *)
 def NS_RETURNS_RETAINED;
 
- -(NSArray *) prefs_get_array:(NSString *) key;
- -(void) prefs_set_integer:(NSString *)
+-(NSArray *) prefs_get_array:(NSString *) key;
+-(void) prefs_set_integer:(NSString *)
 key value:(int) value;
 
- -(void) prefs_set_float:(NSString *)
+-(void) prefs_set_float:(NSString *)
 key value:(float) value;
 
- -(void) prefs_set_boolean:(NSString *)
+-(void) prefs_set_boolean:(NSString *)
 key value:(int) value;
 
- -(void) prefs_set_array:(NSString *)
+-(void) prefs_set_array:(NSString *)
 key value:(NSArray *) value;
 
- -(void) prefs_set_string:(NSString *)
+-(void) prefs_set_string:(NSString *)
 key value:(NSString *) value;
 
 -(void) prefs_synchronize;
 
 -(X11Controller *) controller;
 -(OSX_BOOL) x_active;
- at end extern X11Application *X11App;
+ at end
+
+extern X11Application *X11App;
 
 #endif                          /* __OBJC__ */
 
diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m
index e091fbb..4ab2dfd 100644
--- a/hw/xquartz/X11Application.m
+++ b/hw/xquartz/X11Application.m
@@ -97,8 +97,11 @@ CFStringRef app_prefs_domain_cfstr = NULL;
 
 @interface X11Application(Private)
  - (void) sendX11NSEvent:(NSEvent *) e;
- at end @ implementation X11Application typedef struct message_struct
-    message;
+ at end
+
+ at implementation X11Application
+
+typedef struct message_struct message;
 struct message_struct {
     mach_msg_header_t
         hdr;
@@ -156,14 +159,14 @@ message_kit_thread(SEL selector, NSObject * arg)
         ErrorF("%s: mach_msg failed: %x\n", __FUNCTION__, r);
 }
 
- -(void) handleMachMessage:(void *) _msg {
+-(void) handleMachMessage:(void *) _msg {
     message *msg = _msg;
 
  [self performSelector: msg->selector withObject:msg->arg];
     [msg->arg release];
 }
 
- -(void) set_controller:obj {
+-(void) set_controller:obj {
     if (_controller == nil)
         _controller =[obj retain];
 }
@@ -178,7 +181,7 @@ message_kit_thread(SEL selector, NSObject * arg)
     [super dealloc];
 }
 
- -(void) orderFrontStandardAboutPanel:(id) sender {
+-(void) orderFrontStandardAboutPanel:(id) sender {
     NSMutableDictionary *dict;
     NSDictionary *infoDict;
     NSString *tem;
@@ -201,7 +204,7 @@ message_kit_thread(SEL selector, NSObject * arg)
  [self orderFrontStandardAboutPanelWithOptions:dict];
 }
 
- -(void) activateX:(OSX_BOOL) state {
+-(void) activateX:(OSX_BOOL) state {
     if (_x_active == state)
         return;
 
@@ -232,11 +235,11 @@ message_kit_thread(SEL selector, NSObject * arg)
     _x_active = state;
 }
 
- -(void) became_key:(NSWindow *) win {
+-(void) became_key:(NSWindow *) win {
  [self activateX:NO];
 }
 
- -(void) sendEvent:(NSEvent *) e {
+-(void) sendEvent:(NSEvent *) e {
     OSX_BOOL for_appkit, for_x;
 
     /* By default pass down the responder chain and to X. */
@@ -459,34 +462,34 @@ message_kit_thread(SEL selector, NSObject * arg)
     }
 }
 
- -(void) set_window_menu:(NSArray *) list {
+-(void) set_window_menu:(NSArray *) list {
  [_controller set_window_menu:list];
 }
 
- -(void) set_window_menu_check:(NSNumber *) n {
+-(void) set_window_menu_check:(NSNumber *) n {
  [_controller set_window_menu_check:n];
 }
 
- -(void) set_apps_menu:(NSArray *) list {
+-(void) set_apps_menu:(NSArray *) list {
  [_controller set_apps_menu:list];
 }
 
- -(void) set_front_process:unused {
+-(void) set_front_process:unused {
  [NSApp activateIgnoringOtherApps:YES];
 
     if ([self modalWindow] == nil)
  [self activateX:YES];
 }
 
- -(void) set_can_quit:(NSNumber *) state {
+-(void) set_can_quit:(NSNumber *) state {
  [_controller set_can_quit:[state boolValue]];
 }
 
- -(void) server_ready:unused {
+-(void) server_ready:unused {
     [_controller server_ready];
 }
 
- -(void) show_hide_menubar:(NSNumber *) state {
+-(void) show_hide_menubar:(NSNumber *) state {
     /* Also shows/hides the dock */
     if ([state boolValue])
         SetSystemUIMode(kUIModeNormal, 0);
@@ -494,7 +497,7 @@ message_kit_thread(SEL selector, NSObject * arg)
         SetSystemUIMode(kUIModeAllHidden, XQuartzFullscreenMenu ? kUIOptionAutoShowMenuBar : 0);        // kUIModeAllSuppressed or kUIOptionAutoShowMenuBar can be used to allow "mouse-activation"
 }
 
- -(void) launch_client:(NSString *) cmd {
+-(void) launch_client:(NSString *) cmd {
  (void)[_controller application: self openFile:cmd];
 }
 
@@ -573,7 +576,7 @@ cfarray_to_nsarray(CFArrayRef in)
     return out;
 }
 
- -(CFPropertyListRef) prefs_get_copy:(NSString *) key {
+-(CFPropertyListRef) prefs_get_copy:(NSString *) key {
     CFPropertyListRef value;
 
     value =
@@ -637,7 +640,7 @@ cfarray_to_nsarray(CFArrayRef in)
     return value;
 }
 
- -(int) prefs_get_integer:(NSString *)
+-(int) prefs_get_integer:(NSString *)
 key default:(int) def
 {
     CFPropertyListRef value;
@@ -658,7 +661,7 @@ key default:(int) def
     return ret;
 }
 
- -(const char *) prefs_get_string:(NSString *)
+-(const char *) prefs_get_string:(NSString *)
 key default:(const char *) def
 {
     CFPropertyListRef value;
@@ -678,7 +681,7 @@ key default:(const char *) def
     return ret != NULL ? ret : def;
 }
 
- -(NSURL *) prefs_copy_url:(NSString *)
+-(NSURL *) prefs_copy_url:(NSString *)
 key default:(NSURL *) def
 {
     CFPropertyListRef value;
@@ -699,7 +702,7 @@ key default:(NSURL *) def
     return ret != NULL ? ret : def;
 }
 
- -(float) prefs_get_float:(NSString *)
+-(float) prefs_get_float:(NSString *)
 key default:(float) def
 {
     CFPropertyListRef value;
@@ -719,7 +722,7 @@ key default:(float) def
     return ret;
 }
 
- -(int) prefs_get_boolean:(NSString *)
+-(int) prefs_get_boolean:(NSString *)
 key default:(int) def
 {
     CFPropertyListRef value;
@@ -746,7 +749,7 @@ key default:(int) def
     return ret;
 }
 
- -(NSArray *) prefs_get_array:(NSString *) key {
+-(NSArray *) prefs_get_array:(NSString *) key {
     NSArray *ret = nil;
     CFPropertyListRef value;
 
@@ -762,7 +765,7 @@ key default:(int) def
     return ret;
 }
 
- -(void) prefs_set_integer:(NSString *)
+-(void) prefs_set_integer:(NSString *)
 key value:(int) value
 {
     CFNumberRef x;
@@ -776,7 +779,7 @@ key value:(int) value
     CFRelease(x);
 }
 
- -(void) prefs_set_float:(NSString *)
+-(void) prefs_set_float:(NSString *)
 key value:(float) value
 {
     CFNumberRef x;
@@ -790,7 +793,7 @@ key value:(float) value
     CFRelease(x);
 }
 
- -(void) prefs_set_boolean:(NSString *)
+-(void) prefs_set_boolean:(NSString *)
 key value:(int) value
 {
     CFPreferencesSetValue((CFStringRef) key,
@@ -801,7 +804,7 @@ key value:(int) value
 
 }
 
- -(void) prefs_set_array:(NSString *)
+-(void) prefs_set_array:(NSString *)
 key value:(NSArray *) value
 {
     CFArrayRef cfarray;
@@ -814,7 +817,7 @@ key value:(NSArray *) value
     CFRelease(cfarray);
 }
 
- -(void) prefs_set_string:(NSString *)
+-(void) prefs_set_string:(NSString *)
 key value:(NSString *) value
 {
     CFPreferencesSetValue((CFStringRef) key, (CFTypeRef) value,
@@ -904,7 +907,7 @@ nil];
 }
 
 /* This will end up at the end of the responder chain. */
- -(void) copy:sender {
+-(void) copy:sender {
     DarwinSendDDXEvent(kXquartzPasteboardNotify, 1, AppleWMCopyToPasteboard);
 }
 
@@ -916,7 +919,9 @@ nil];
     return _x_active;
 }
 
- at end static NSArray *
+ at end
+
+static NSArray *
 array_with_strings_and_numbers(int nitems, const char **items,
                                const char *numbers)
 {
@@ -1259,7 +1264,7 @@ untrusted_str(NSEvent * e)
 }
 #endif
 
- -(void) sendX11NSEvent:(NSEvent *) e {
+-(void) sendX11NSEvent:(NSEvent *) e {
     NSPoint location = NSZeroPoint;
     int ev_button, ev_type;
     static float pressure = 0.0;        // static so ProximityOut will have the value from the previous tablet event
diff --git a/hw/xquartz/X11Controller.h b/hw/xquartz/X11Controller.h
index e7fcd45..3cdd937 100644
--- a/hw/xquartz/X11Controller.h
+++ b/hw/xquartz/X11Controller.h
@@ -118,36 +118,36 @@ typedef unsigned int NSUInteger;
     OSX_BOOL can_quit;
 }
 
- -(void) set_window_menu:(NSArray *) list;
- -(void) set_window_menu_check:(NSNumber *) n;
- -(void) set_apps_menu:(NSArray *) list;
+-(void) set_window_menu:(NSArray *) list;
+-(void) set_window_menu_check:(NSNumber *) n;
+-(void) set_apps_menu:(NSArray *) list;
 #ifdef XQUARTZ_SPARKLE
 -(void) setup_sparkle;
- -(void) updater:(SUUpdater *)
+-(void) updater:(SUUpdater *)
 updater willInstallUpdate:(SUAppcastItem *) update;
 #endif
- -(void) set_can_quit:(OSX_BOOL) state;
+-(void) set_can_quit:(OSX_BOOL) state;
 -(void) server_ready;
- -(OSX_BOOL) application:(NSApplication *)
+-(OSX_BOOL) application:(NSApplication *)
 app openFile:(NSString *) filename;
 
- -(IBAction) apps_table_show:(id) sender;
- -(IBAction) apps_table_done:(id) sender;
- -(IBAction) apps_table_new:(id) sender;
- -(IBAction) apps_table_duplicate:(id) sender;
- -(IBAction) apps_table_delete:(id) sender;
- -(IBAction) bring_to_front:(id) sender;
- -(IBAction) close_window:(id) sender;
- -(IBAction) minimize_window:(id) sender;
- -(IBAction) zoom_window:(id) sender;
- -(IBAction) next_window:(id) sender;
- -(IBAction) previous_window:(id) sender;
- -(IBAction) enable_fullscreen_changed:(id) sender;
- -(IBAction) toggle_fullscreen:(id) sender;
- -(IBAction) prefs_changed:(id) sender;
- -(IBAction) prefs_show:(id) sender;
- -(IBAction) quit:(id) sender;
- -(IBAction) x11_help:(id) sender;
+-(IBAction) apps_table_show:(id) sender;
+-(IBAction) apps_table_done:(id) sender;
+-(IBAction) apps_table_new:(id) sender;
+-(IBAction) apps_table_duplicate:(id) sender;
+-(IBAction) apps_table_delete:(id) sender;
+-(IBAction) bring_to_front:(id) sender;
+-(IBAction) close_window:(id) sender;
+-(IBAction) minimize_window:(id) sender;
+-(IBAction) zoom_window:(id) sender;
+-(IBAction) next_window:(id) sender;
+-(IBAction) previous_window:(id) sender;
+-(IBAction) enable_fullscreen_changed:(id) sender;
+-(IBAction) toggle_fullscreen:(id) sender;
+-(IBAction) prefs_changed:(id) sender;
+-(IBAction) prefs_show:(id) sender;
+-(IBAction) quit:(id) sender;
+-(IBAction) x11_help:(id) sender;
 
 @end
 #endif                          /* __OBJC__ */
diff --git a/hw/xquartz/X11Controller.m b/hw/xquartz/X11Controller.m
index b0bfc58..b6afd3d 100644
--- a/hw/xquartz/X11Controller.m
+++ b/hw/xquartz/X11Controller.m
@@ -103,7 +103,7 @@
     windows_menu_start =[[X11App windowsMenu] numberOfItems];
 }
 
- -(void) item_selected:sender {
+-(void) item_selected:sender {
  [NSApp activateIgnoringOtherApps:YES];
 
     DarwinSendDDXEvent(kXquartzControllerNotify, 2,
@@ -125,7 +125,7 @@
  [dock_menu removeItemAtIndex:0];
 }
 
- -(void) install_window_menu:(NSArray *) list {
+-(void) install_window_menu:(NSArray *) list {
     NSMenu *menu;
     NSMenuItem *item;
     int first, count, i;
@@ -199,7 +199,7 @@
     apps = nil;
 }
 
- -(void) prepend_apps_item:(NSArray *)
+-(void) prepend_apps_item:(NSArray *)
 list index:(int)
 i menu:(NSMenu *) menu
 {
@@ -226,7 +226,7 @@ i menu:(NSMenu *) menu
  [item setTag:i + 1];          /* can't be zero, so add one */
 }
 
- -(void) install_apps_menu:(NSArray *) list {
+-(void) install_apps_menu:(NSArray *) list {
     NSMenu *menu;
     int i, count;
 
@@ -247,14 +247,14 @@ i menu:(NSMenu *) menu
     apps =[list retain];
 }
 
- -(void) set_window_menu:(NSArray *) list {
+-(void) set_window_menu:(NSArray *) list {
     [self remove_window_menu];
  [self install_window_menu:list];
 
     DarwinSendDDXEvent(kXquartzControllerNotify, 1, AppleWMWindowMenuNotify);
 }
 
- -(void) set_window_menu_check:(NSNumber *) nn {
+-(void) set_window_menu_check:(NSNumber *) nn {
     NSMenu *menu;
     NSMenuItem *item;
     int first, count;
@@ -279,7 +279,7 @@ i menu:(NSMenu *) menu
     checked_window_item = n;
 }
 
- -(void) set_apps_menu:(NSArray *) list {
+-(void) set_apps_menu:(NSArray *) list {
     [self remove_apps_menu];
  [self install_apps_menu:list];
 }
@@ -303,7 +303,7 @@ i menu:(NSMenu *) menu
 }
 
 // Sent immediately before installing the specified update.
- -(void) updater:(SUUpdater *)
+-(void) updater:(SUUpdater *)
 updater willInstallUpdate:(SUAppcastItem *) update
 {
     //[self set_can_quit:YES];
@@ -311,7 +311,7 @@ updater willInstallUpdate:(SUAppcastItem *) update
 
 #endif
 
- -(void) launch_client:(NSString *) filename {
+-(void) launch_client:(NSString *) filename {
     int child1, child2 = 0;
     int status;
     const char *newargv[4];
@@ -368,7 +368,7 @@ newargv[0] =[X11App prefs_get_string: @PREFS_LOGIN_SHELL default:
     }
 }
 
- -(void) app_selected:sender {
+-(void) app_selected:sender {
     int tag;
     NSString *item;
 
@@ -381,7 +381,7 @@ newargv[0] =[X11App prefs_get_string: @PREFS_LOGIN_SHELL default:
  [self launch_client:item];
 }
 
- -(IBAction) apps_table_show:sender {
+-(IBAction) apps_table_show:sender {
     NSArray *columns;
     NSMutableArray *oldapps = nil;
 
@@ -406,7 +406,7 @@ newargv[0] =[X11App prefs_get_string: @PREFS_LOGIN_SHELL default:
         [oldapps release];
 }
 
- -(IBAction) apps_table_done:sender {
+-(IBAction) apps_table_done:sender {
  [apps_table deselectAll:sender];
                                 /* flush edits? */
 
@@ -422,7 +422,7 @@ newargv[0] =[X11App prefs_get_string: @PREFS_LOGIN_SHELL default:
     table_apps = nil;
 }
 
- -(IBAction) apps_table_new:sender {
+-(IBAction) apps_table_new:sender {
     NSMutableArray *item;
 
     int row =[apps_table selectedRow], i;
@@ -450,7 +450,7 @@ newargv[0] =[X11App prefs_get_string: @PREFS_LOGIN_SHELL default:
  [apps_table selectRowIndexes: [NSIndexSet indexSetWithIndex: row] byExtendingSelection:NO];
 }
 
- -(IBAction) apps_table_duplicate:sender {
+-(IBAction) apps_table_duplicate:sender {
     int row =[apps_table selectedRow], i;
     NSObject *item;
 
@@ -473,7 +473,7 @@ newargv[0] =[X11App prefs_get_string: @PREFS_LOGIN_SHELL default:
  [apps_table selectRowIndexes: [NSIndexSet indexSetWithIndex: row + 1] byExtendingSelection:NO];
 }
 
- -(IBAction) apps_table_delete:sender {
+-(IBAction) apps_table_delete:sender {
     int row =[apps_table selectedRow];
 
     if (row >= 0) {
@@ -494,14 +494,14 @@ newargv[0] =[X11App prefs_get_string: @PREFS_LOGIN_SHELL default:
  [apps_table selectRowIndexes: [NSIndexSet indexSetWithIndex: row] byExtendingSelection:NO];
 }
 
- -(NSInteger) numberOfRowsInTableView:(NSTableView *) tableView {
+-(NSInteger) numberOfRowsInTableView:(NSTableView *) tableView {
     if (table_apps == nil)
         return 0;
 
     return[table_apps count];
 }
 
- -(id) tableView: (NSTableView *) tableView objectValueForTableColumn:(NSTableColumn
+-(id) tableView: (NSTableView *) tableView objectValueForTableColumn:(NSTableColumn
  *)
 tableColumn row:(NSInteger) row
 {
@@ -520,7 +520,7 @@ tableColumn row:(NSInteger) row
         return @"";
 }
 
- -(void) tableView:(NSTableView *)
+-(void) tableView:(NSTableView *)
 tableView setObjectValue:(id) object forTableColumn:(NSTableColumn *)
 tableColumn row:(NSInteger) row
 {
@@ -536,47 +536,47 @@ tableColumn row:(NSInteger) row
  [item replaceObjectAtIndex: col withObject:object];
 }
 
- -(void) hide_window:sender {
+-(void) hide_window:sender {
     if ([X11App x_active])
         DarwinSendDDXEvent(kXquartzControllerNotify, 1, AppleWMHideWindow);
     else
         NSBeep();               /* FIXME: something here */
 }
 
- -(IBAction) bring_to_front:sender {
+-(IBAction) bring_to_front:sender {
     DarwinSendDDXEvent(kXquartzControllerNotify, 1, AppleWMBringAllToFront);
 }
 
- -(IBAction) close_window:sender {
+-(IBAction) close_window:sender {
     if ([X11App x_active])
         DarwinSendDDXEvent(kXquartzControllerNotify, 1, AppleWMCloseWindow);
     else
  [[NSApp keyWindow] performClose:sender];
 }
 
- -(IBAction) minimize_window:sender {
+-(IBAction) minimize_window:sender {
     if ([X11App x_active])
         DarwinSendDDXEvent(kXquartzControllerNotify, 1, AppleWMMinimizeWindow);
     else
  [[NSApp keyWindow] performMiniaturize:sender];
 }
 
- -(IBAction) zoom_window:sender {
+-(IBAction) zoom_window:sender {
     if ([X11App x_active])
         DarwinSendDDXEvent(kXquartzControllerNotify, 1, AppleWMZoomWindow);
     else
  [[NSApp keyWindow] performZoom:sender];
 }
 
- -(IBAction) next_window:sender {
+-(IBAction) next_window:sender {
     DarwinSendDDXEvent(kXquartzControllerNotify, 1, AppleWMNextWindow);
 }
 
- -(IBAction) previous_window:sender {
+-(IBAction) previous_window:sender {
     DarwinSendDDXEvent(kXquartzControllerNotify, 1, AppleWMPreviousWindow);
 }
 
- -(IBAction) enable_fullscreen_changed:sender {
+-(IBAction) enable_fullscreen_changed:sender {
     XQuartzRootlessDefault = ![enable_fullscreen intValue];
 
  [enable_fullscreen_menu setEnabled:!XQuartzRootlessDefault];
@@ -589,15 +589,15 @@ tableColumn row:(NSInteger) row
     [NSApp prefs_synchronize];
 }
 
- -(IBAction) toggle_fullscreen:sender {
+-(IBAction) toggle_fullscreen:sender {
     DarwinSendDDXEvent(kXquartzToggleFullscreen, 0);
 }
 
- -(void) set_can_quit:(OSX_BOOL) state {
+-(void) set_can_quit:(OSX_BOOL) state {
     can_quit = state;
 }
 
- -(IBAction) prefs_changed:sender {
+-(IBAction) prefs_changed:sender {
     if (!sender)
         return;
 
@@ -690,7 +690,7 @@ tableColumn row:(NSInteger) row
     DarwinSendDDXEvent(kXquartzReloadPreferences, 0);
 }
 
- -(IBAction) prefs_show:sender {
+-(IBAction) prefs_show:sender {
 BOOL pbproxy_active =[NSApp prefs_get_boolean: @PREFS_SYNC_PB default:
 YES];
 
@@ -753,11 +753,11 @@ NO]];
  [prefs_panel makeKeyAndOrderFront:sender];
 }
 
- -(IBAction) quit:sender {
+-(IBAction) quit:sender {
     DarwinSendDDXEvent(kXquartzQuit, 0);
 }
 
- -(IBAction) x11_help:sender {
+-(IBAction) x11_help:sender {
 #if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
     AHLookupAnchor((CFStringRef) NSLocalizedString(@"Mac Help", no comment),
                    CFSTR("mchlp2276"));
@@ -766,7 +766,7 @@ NO]];
 #endif
 }
 
- -(OSX_BOOL) validateMenuItem:(NSMenuItem *) item {
+-(OSX_BOOL) validateMenuItem:(NSMenuItem *) item {
     NSMenu *menu =[item menu];
 
     if (item == toggle_fullscreen_item)
@@ -778,7 +778,7 @@ NO]];
         return TRUE;
 }
 
- -(void) applicationDidHide:(NSNotification *) notify {
+-(void) applicationDidHide:(NSNotification *) notify {
     DarwinSendDDXEvent(kXquartzControllerNotify, 1, AppleWMHideAll);
 
     /* Toggle off fullscreen mode to leave our non-default video 
@@ -789,11 +789,11 @@ NO]];
     }
 }
 
- -(void) applicationDidUnhide:(NSNotification *) notify {
+-(void) applicationDidUnhide:(NSNotification *) notify {
     DarwinSendDDXEvent(kXquartzControllerNotify, 1, AppleWMShowAll);
 }
 
- -(NSApplicationTerminateReply) applicationShouldTerminate:sender {
+-(NSApplicationTerminateReply) applicationShouldTerminate:sender {
     NSString *msg;
     NSString *title;
 
@@ -821,7 +821,7 @@ NO])
             == NSAlertDefaultReturn) ? NSTerminateNow : NSTerminateCancel;
 }
 
- -(void) applicationWillTerminate:(NSNotification *) aNotification {
+-(void) applicationWillTerminate:(NSNotification *) aNotification {
     unsigned remain;
 
     [X11App prefs_synchronize];
@@ -852,7 +852,7 @@ NO])
     pending_apps = NULL;
 }
 
- -(OSX_BOOL) application:(NSApplication *)
+-(OSX_BOOL) application:(NSApplication *)
 app openFile:(NSString *) filename
 {
     const char *name =[filename UTF8String];
@@ -866,7 +866,9 @@ app openFile:(NSString *) filename
     return YES;
 }
 
- at end void
+ at end
+
+void
 X11ControllerMain(int argc, char **argv, char **envp)
 {
     X11ApplicationMain(argc, argv, envp);


More information about the Xquartz-changes mailing list