[65659] trunk/dports/x11/xorg-server
jeremyhu at macports.org
jeremyhu at macports.org
Mon Mar 29 18:13:22 PDT 2010
Revision: 65659
http://trac.macports.org/changeset/65659
Author: jeremyhu at macports.org
Date: 2010-03-29 18:13:20 -0700 (Mon, 29 Mar 2010)
Log Message:
-----------
xorg-server: Revision bump to pull in patches that went into XQuartz-2.5.0
Modified Paths:
--------------
trunk/dports/x11/xorg-server/Portfile
Added Paths:
-----------
trunk/dports/x11/xorg-server/files/0001-XQuartz-GLX-Fix-Availability-for-Tiger-ppc-workaroun.patch
trunk/dports/x11/xorg-server/files/0002-XQuartz-Minor-cleanup.patch
trunk/dports/x11/xorg-server/files/0003-XQuartz-xpbproxy-Cleanup-xpbproxy-threading.patch
trunk/dports/x11/xorg-server/files/0004-XQuartz-pbproxy-Make-standalone-xpbproxy-respect-the.patch
trunk/dports/x11/xorg-server/files/0005-XQuartz-Constrain-the-pointer-to-the-updated-display.patch
trunk/dports/x11/xorg-server/files/0006-Fix-crash-when-all-glyphs-of-a-given-depth-are-freed.patch
trunk/dports/x11/xorg-server/files/0007-Fix-typos-in-the-swap-functions.patch
trunk/dports/x11/xorg-server/files/0008-hw-xfree86-move-reference-counting-out-of-the-UseHWC.patch
trunk/dports/x11/xorg-server/files/0009-XQuartz-Workaround-weird-key-data-reported-on-some-l.patch
trunk/dports/x11/xorg-server/files/0010-XQuartz-Re-query-dixScreenOrigins-as-the-value-could.patch
trunk/dports/x11/xorg-server/files/0011-XKB-Fix-garbage-initialization.patch
trunk/dports/x11/xorg-server/files/0012-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch
trunk/dports/x11/xorg-server/files/0013-fb-Revert-fb-changes-that-broke-XQuartz.patch
trunk/dports/x11/xorg-server/files/0014-GLX-Remove-a-redundant-initialization.patch
Removed Paths:
-------------
trunk/dports/x11/xorg-server/files/0005-fb-Revert-fb-changes-that-broke-XQuartz.patch
trunk/dports/x11/xorg-server/files/0006-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch
Modified: trunk/dports/x11/xorg-server/Portfile
===================================================================
--- trunk/dports/x11/xorg-server/Portfile 2010-03-30 01:07:06 UTC (rev 65658)
+++ trunk/dports/x11/xorg-server/Portfile 2010-03-30 01:13:20 UTC (rev 65659)
@@ -4,6 +4,7 @@
name xorg-server
version 1.7.6
+revision 1
categories x11 devel
maintainers jeremyhu openmaintainer
description The X.org / Xquartz X server.
@@ -74,8 +75,20 @@
configure.cppflags-append -I/usr/include -I${filespath}/dri
patchfiles \
- 0005-fb-Revert-fb-changes-that-broke-XQuartz.patch \
- 0006-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch
+ 0001-XQuartz-GLX-Fix-Availability-for-Tiger-ppc-workaroun.patch \
+ 0002-XQuartz-Minor-cleanup.patch \
+ 0003-XQuartz-xpbproxy-Cleanup-xpbproxy-threading.patch \
+ 0004-XQuartz-pbproxy-Make-standalone-xpbproxy-respect-the.patch \
+ 0005-XQuartz-Constrain-the-pointer-to-the-updated-display.patch \
+ 0006-Fix-crash-when-all-glyphs-of-a-given-depth-are-freed.patch \
+ 0007-Fix-typos-in-the-swap-functions.patch \
+ 0008-hw-xfree86-move-reference-counting-out-of-the-UseHWC.patch \
+ 0009-XQuartz-Workaround-weird-key-data-reported-on-some-l.patch \
+ 0010-XQuartz-Re-query-dixScreenOrigins-as-the-value-could.patch \
+ 0011-XKB-Fix-garbage-initialization.patch \
+ 0012-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch \
+ 0013-fb-Revert-fb-changes-that-broke-XQuartz.patch \
+ 0014-GLX-Remove-a-redundant-initialization.patch
patch.args -p1
Added: trunk/dports/x11/xorg-server/files/0001-XQuartz-GLX-Fix-Availability-for-Tiger-ppc-workaroun.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0001-XQuartz-GLX-Fix-Availability-for-Tiger-ppc-workaroun.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0001-XQuartz-GLX-Fix-Availability-for-Tiger-ppc-workaroun.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,27 @@
+From b444205399c236c21c68e2dda32ce51497dcd7e4 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at freedesktop.org>
+Date: Fri, 19 Mar 2010 15:26:50 -0700
+Subject: [PATCH 01/14] XQuartz: GLX: Fix Availability for Tiger ppc workaround
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at freedesktop.org>
+(cherry picked from commit 88baffc25a193c7c7154a94a687e7cb0f8b180ba)
+---
+ hw/xquartz/GL/indirect.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git xorg-server-1.7.6/hw/xquartz/GL/indirect.c xorg-server-1.7.6/hw/xquartz/GL/indirect.c
+index 44380ff..5035443 100644
+--- xorg-server-1.7.6/hw/xquartz/GL/indirect.c
++++ xorg-server-1.7.6/hw/xquartz/GL/indirect.c
+@@ -120,7 +120,7 @@
+ /* Tiger PPC doesn't have the associated symbols, but glext.h says it does. Liars!
+ * http://trac.macports.org/ticket/20638
+ */
+-#if defined(__ppc__) && MAC_OS_X_VERSION_MIN_REQUIRED == 1040
++#if defined(__ppc__) && MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+ #undef GL_EXT_gpu_program_parameters
+ #define GL_EXT_gpu_program_parameters 0
+ #endif
+--
+1.7.0.2
+
Added: trunk/dports/x11/xorg-server/files/0002-XQuartz-Minor-cleanup.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0002-XQuartz-Minor-cleanup.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0002-XQuartz-Minor-cleanup.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,51 @@
+From b3f4a9a64be4b6bcc81f13cf9677a486b42dd2b4 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Fri, 19 Mar 2010 17:23:12 -0700
+Subject: [PATCH 02/14] XQuartz: Minor cleanup
+
+Move RandRInit to where it will need to be (not yet implemented)
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+(cherry picked from commit 7da4f9df9c6490e3e604c170415d5af2d8c8ff29)
+---
+ hw/xquartz/quartz.c | 14 +++++++-------
+ 1 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git xorg-server-1.7.6/hw/xquartz/quartz.c xorg-server-1.7.6/hw/xquartz/quartz.c
+index c4142a8..3c04205 100644
+--- xorg-server-1.7.6/hw/xquartz/quartz.c
++++ xorg-server-1.7.6/hw/xquartz/quartz.c
+@@ -166,6 +166,11 @@ void QuartzInitOutput(
+ FatalError("Could not register block and wakeup handlers.");
+ }
+
++#if defined(RANDR) && !defined(FAKE_RANDR)
++ if(!QuartzRandRInit(pScreen))
++ FatalError("Failed to init RandR extension.\n");
++#endif
++
+ // Do display mode specific initialization
+ quartzProcs->DisplayInit();
+ }
+@@ -259,16 +264,11 @@ void QuartzUpdateScreens(void) {
+ pScreen->width = width;
+ pScreen->height = height;
+
+-#ifndef FAKE_RANDR
+- if(!QuartzRandRInit(pScreen))
+- FatalError("Failed to init RandR extension.\n");
+-#endif
+-
+ DarwinAdjustScreenOrigins(&screenInfo);
+ quartzProcs->UpdateScreen(pScreen);
+
+- sx = dixScreenOrigins[pScreen->myNum].x + darwinMainScreenX;
+- sy = dixScreenOrigins[pScreen->myNum].y + darwinMainScreenY;
++ sx = x + darwinMainScreenX;
++ sy = y + darwinMainScreenY;
+
+ /* Adjust the root window. */
+ pRoot = WindowTable[pScreen->myNum];
+--
+1.7.0.2
+
Added: trunk/dports/x11/xorg-server/files/0003-XQuartz-xpbproxy-Cleanup-xpbproxy-threading.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0003-XQuartz-xpbproxy-Cleanup-xpbproxy-threading.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0003-XQuartz-xpbproxy-Cleanup-xpbproxy-threading.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,347 @@
+From 088777f2b683d61d948cf346564a73b048da1ea2 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at freedesktop.org>
+Date: Sat, 20 Mar 2010 03:28:57 -0700
+Subject: [PATCH 03/14] XQuartz: xpbproxy: Cleanup xpbproxy threading
+
+Confine xpbproxy to a single thread
+Runs inside its own CFRunLoop
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at freedesktop.org>
+(cherry picked from commit 69869d79f4c21eb385ff3c64bac649d93c7dd2ad)
+---
+ hw/xquartz/X11Application.m | 25 +++++++++-
+ hw/xquartz/pbproxy/app-main.m | 8 +---
+ hw/xquartz/pbproxy/main.m | 43 +++++------------
+ hw/xquartz/pbproxy/pbproxy.h | 3 +-
+ hw/xquartz/pbproxy/x-input.m | 100 +++++++++++++++++-----------------------
+ 5 files changed, 80 insertions(+), 99 deletions(-)
+
+diff --git xorg-server-1.7.6/hw/xquartz/X11Application.m xorg-server-1.7.6/hw/xquartz/X11Application.m
+index 3faa1cb..5406640 100644
+--- xorg-server-1.7.6/hw/xquartz/X11Application.m
++++ xorg-server-1.7.6/hw/xquartz/X11Application.m
+@@ -52,7 +52,7 @@
+ #include <Xplugin.h>
+
+ // pbproxy/pbproxy.h
+-extern BOOL xpbproxy_init (void);
++extern int xpbproxy_run (void);
+
+ #define DEFAULTS_FILE X11LIBDIR"/X11/xserver/Xquartz.plist"
+
+@@ -908,6 +908,26 @@ environment the next time you start X11?", @"Startup xinitrc dialog");
+ [X11App prefs_synchronize];
+ }
+
++static inline pthread_t create_thread(void *func, void *arg) {
++ pthread_attr_t attr;
++ pthread_t tid;
++
++ pthread_attr_init(&attr);
++ pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);
++ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
++ pthread_create(&tid, &attr, func, arg);
++ pthread_attr_destroy(&attr);
++
++ return tid;
++}
++
++static void *xpbproxy_x_thread(void *args) {
++ xpbproxy_run();
++
++ fprintf(stderr, "xpbproxy thread is terminating unexpectedly.\n");
++ return NULL;
++}
++
+ void X11ApplicationMain (int argc, char **argv, char **envp) {
+ NSAutoreleasePool *pool;
+
+@@ -962,8 +982,7 @@ void X11ApplicationMain (int argc, char **argv, char **envp) {
+ */
+ check_xinitrc();
+
+- if(!xpbproxy_init())
+- fprintf(stderr, "Error initializing xpbproxy\n");
++ create_thread(xpbproxy_x_thread, NULL);
+
+ #if XQUARTZ_SPARKLE
+ [[X11App controller] setup_sparkle];
+diff --git xorg-server-1.7.6/hw/xquartz/pbproxy/app-main.m xorg-server-1.7.6/hw/xquartz/pbproxy/app-main.m
+index f3f683a..b30dfb8 100644
+--- xorg-server-1.7.6/hw/xquartz/pbproxy/app-main.m
++++ xorg-server-1.7.6/hw/xquartz/pbproxy/app-main.m
+@@ -84,16 +84,10 @@ int main (int argc, const char *argv[]) {
+
+ app_prefs_domain_cfstr = CFStringCreateWithCString(NULL, app_prefs_domain, kCFStringEncodingUTF8);
+
+- if(!xpbproxy_init())
+- return EXIT_FAILURE;
+-
+ signal (SIGINT, signal_handler);
+ signal (SIGTERM, signal_handler);
+ signal (SIGHUP, signal_handler);
+ signal (SIGPIPE, SIG_IGN);
+
+- [NSApplication sharedApplication];
+- [NSApp run];
+-
+- return EXIT_SUCCESS;
++ return xpbproxy_run();
+ }
+diff --git xorg-server-1.7.6/hw/xquartz/pbproxy/main.m xorg-server-1.7.6/hw/xquartz/pbproxy/main.m
+index d26b1b1..560cf01 100644
+--- xorg-server-1.7.6/hw/xquartz/pbproxy/main.m
++++ xorg-server-1.7.6/hw/xquartz/pbproxy/main.m
+@@ -82,25 +82,12 @@ static int x_error_handler (Display *dpy, XErrorEvent *errevent) {
+ return 0;
+ }
+
+-static inline pthread_t create_thread(void *func, void *arg) {
+- pthread_attr_t attr;
+- pthread_t tid;
+-
+- pthread_attr_init(&attr);
+- pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);
+- pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+- pthread_create(&tid, &attr, func, arg);
+- pthread_attr_destroy(&attr);
+-
+- return tid;
+-}
+-
+-static void *xpbproxy_x_thread(void *args) {
++int xpbproxy_run (void) {
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ size_t i;
+-
++
+ wait_for_server_init();
+-
++
+ for(i=0, xpbproxy_dpy=NULL; !xpbproxy_dpy && i<5; i++) {
+ xpbproxy_dpy = XOpenDisplay(NULL);
+
+@@ -108,7 +95,7 @@ static void *xpbproxy_x_thread(void *args) {
+ char _display[32];
+ snprintf(_display, sizeof(_display), ":%s", display);
+ setenv("DISPLAY", _display, TRUE);
+-
++
+ xpbproxy_dpy=XOpenDisplay(_display);
+ }
+ if(!xpbproxy_dpy)
+@@ -118,7 +105,7 @@ static void *xpbproxy_x_thread(void *args) {
+ if (xpbproxy_dpy == NULL) {
+ fprintf (stderr, "xpbproxy: can't open default display\n");
+ [pool release];
+- return NULL;
++ return EXIT_FAILURE;
+ }
+
+ XSetIOErrorHandler (x_io_error_handler);
+@@ -128,11 +115,11 @@ static void *xpbproxy_x_thread(void *args) {
+ &xpbproxy_apple_wm_error_base)) {
+ fprintf (stderr, "xpbproxy: can't open AppleWM server extension\n");
+ [pool release];
+- return NULL;
++ return EXIT_FAILURE;
+ }
+-
++
+ xpbproxy_have_xfixes = XFixesQueryExtension(xpbproxy_dpy, &xpbproxy_xfixes_event_base, &xpbproxy_xfixes_error_base);
+-
++
+ XAppleWMSelectInput (xpbproxy_dpy, AppleWMActivationNotifyMask |
+ AppleWMPasteboardNotifyMask);
+
+@@ -140,18 +127,14 @@ static void *xpbproxy_x_thread(void *args) {
+
+ if(!xpbproxy_input_register()) {
+ [pool release];
+- return NULL;
++ return EXIT_FAILURE;
+ }
+-
++
+ [pool release];
+-
+- xpbproxy_input_loop();
+- return NULL;
+-}
++
++ CFRunLoopRun();
+
+-BOOL xpbproxy_init (void) {
+- create_thread(xpbproxy_x_thread, NULL);
+- return TRUE;
++ return EXIT_SUCCESS;
+ }
+
+ id xpbproxy_selection_object (void) {
+diff --git xorg-server-1.7.6/hw/xquartz/pbproxy/pbproxy.h xorg-server-1.7.6/hw/xquartz/pbproxy/pbproxy.h
+index a6798ef..013f981 100644
+--- xorg-server-1.7.6/hw/xquartz/pbproxy/pbproxy.h
++++ xorg-server-1.7.6/hw/xquartz/pbproxy/pbproxy.h
+@@ -67,7 +67,7 @@ extern void xpbproxy_set_is_active (BOOL state);
+ extern BOOL xpbproxy_get_is_active (void);
+ extern id xpbproxy_selection_object (void);
+ extern Time xpbproxy_current_timestamp (void);
+-extern BOOL xpbproxy_init (void);
++extern int xpbproxy_run (void);
+
+ extern Display *xpbproxy_dpy;
+ extern int xpbproxy_apple_wm_event_base, xpbproxy_apple_wm_error_base;
+@@ -76,7 +76,6 @@ extern BOOL xpbproxy_have_xfixes;
+
+ /* from x-input.m */
+ extern BOOL xpbproxy_input_register (void);
+-extern void xpbproxy_input_loop();
+
+ #ifdef DEBUG
+ /* BEWARE: this can cause a string memory leak, according to the leaks program. */
+diff --git xorg-server-1.7.6/hw/xquartz/pbproxy/x-input.m xorg-server-1.7.6/hw/xquartz/pbproxy/x-input.m
+index 6ba30c6..405ba3c 100644
+--- xorg-server-1.7.6/hw/xquartz/pbproxy/x-input.m
++++ xorg-server-1.7.6/hw/xquartz/pbproxy/x-input.m
+@@ -39,17 +39,12 @@
+
+ #include <unistd.h>
+
+-#include <pthread.h>
+-
+ static CFRunLoopSourceRef xpbproxy_dpy_source;
+
+ #ifdef STANDALONE_XPBPROXY
+ BOOL xpbproxy_prefs_reload = NO;
+ #endif
+
+-static pthread_mutex_t xpbproxy_dpy_rdy_lock = PTHREAD_MUTEX_INITIALIZER;
+-static pthread_cond_t xpbproxy_dpy_rdy_cond = PTHREAD_COND_INITIALIZER;
+-
+ /* Timestamp when the X server last told us it's active */
+ static Time last_activation_time;
+
+@@ -88,58 +83,51 @@ static void x_event_apple_wm_notify(XAppleWMNotifyEvent *e) {
+ }
+ }
+
+-void xpbproxy_input_loop() {
+- pthread_mutex_lock(&xpbproxy_dpy_rdy_lock);
+- while(true) {
+- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
++static void xpbproxy_process_xevents(void) {
++ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
++
++ if(pool == nil) {
++ fprintf(stderr, "unable to allocate/init auto release pool!\n");
++ return;
++ }
++
++ while (XPending(xpbproxy_dpy) != 0) {
++ XEvent e;
+
+- if(pool == nil) {
+- fprintf(stderr, "unable to allocate/init auto release pool!\n");
+- break;
+- }
++ XNextEvent (xpbproxy_dpy, &e);
+
+- while (XPending(xpbproxy_dpy) != 0) {
+- XEvent e;
+-
+- pthread_mutex_unlock(&xpbproxy_dpy_rdy_lock);
+- XNextEvent (xpbproxy_dpy, &e);
+-
+- switch (e.type) {
+- case SelectionClear:
+- if([xpbproxy_selection_object() is_active])
+- [xpbproxy_selection_object () clear_event:&e.xselectionclear];
+- break;
+-
+- case SelectionRequest:
+- [xpbproxy_selection_object () request_event:&e.xselectionrequest];
+- break;
+-
+- case SelectionNotify:
+- [xpbproxy_selection_object () notify_event:&e.xselection];
+- break;
+-
+- case PropertyNotify:
+- [xpbproxy_selection_object () property_event:&e.xproperty];
+- break;
+-
+- default:
+- if(e.type >= xpbproxy_apple_wm_event_base &&
+- e.type < xpbproxy_apple_wm_event_base + AppleWMNumberEvents) {
+- x_event_apple_wm_notify((XAppleWMNotifyEvent *) &e);
+- } else if(e.type == xpbproxy_xfixes_event_base + XFixesSelectionNotify) {
+- [xpbproxy_selection_object() xfixes_selection_notify:(XFixesSelectionNotifyEvent *)&e];
+- }
+- break;
+- }
+-
+- XFlush(xpbproxy_dpy);
+- pthread_mutex_lock(&xpbproxy_dpy_rdy_lock);
++ switch (e.type) {
++ case SelectionClear:
++ if([xpbproxy_selection_object() is_active])
++ [xpbproxy_selection_object () clear_event:&e.xselectionclear];
++ break;
++
++ case SelectionRequest:
++ [xpbproxy_selection_object () request_event:&e.xselectionrequest];
++ break;
++
++ case SelectionNotify:
++ [xpbproxy_selection_object () notify_event:&e.xselection];
++ break;
++
++ case PropertyNotify:
++ [xpbproxy_selection_object () property_event:&e.xproperty];
++ break;
++
++ default:
++ if(e.type >= xpbproxy_apple_wm_event_base &&
++ e.type < xpbproxy_apple_wm_event_base + AppleWMNumberEvents) {
++ x_event_apple_wm_notify((XAppleWMNotifyEvent *) &e);
++ } else if(e.type == xpbproxy_xfixes_event_base + XFixesSelectionNotify) {
++ [xpbproxy_selection_object() xfixes_selection_notify:(XFixesSelectionNotifyEvent *)&e];
++ }
++ break;
+ }
+
+- [pool release];
+-
+- pthread_cond_wait(&xpbproxy_dpy_rdy_cond, &xpbproxy_dpy_rdy_lock);
++ XFlush(xpbproxy_dpy);
+ }
++
++ [pool release];
+ }
+
+ static BOOL add_input_socket (int sock, CFOptionFlags callback_types,
+@@ -161,7 +149,7 @@ static BOOL add_input_socket (int sock, CFOptionFlags callback_types,
+ if (*cf_source == NULL)
+ return FALSE;
+
+- CFRunLoopAddSource (CFRunLoopGetMain (),
++ CFRunLoopAddSource (CFRunLoopGetCurrent (),
+ *cf_source, kCFRunLoopDefaultMode);
+ return TRUE;
+ }
+@@ -175,10 +163,8 @@ static void x_input_callback (CFSocketRef sock, CFSocketCallBackType type,
+ xpbproxy_prefs_reload = NO;
+ }
+ #endif
+-
+- pthread_mutex_lock(&xpbproxy_dpy_rdy_lock);
+- pthread_cond_broadcast(&xpbproxy_dpy_rdy_cond);
+- pthread_mutex_unlock(&xpbproxy_dpy_rdy_lock);
++
++ xpbproxy_process_xevents();
+ }
+
+ BOOL xpbproxy_input_register(void) {
+--
+1.7.0.2
+
Added: trunk/dports/x11/xorg-server/files/0004-XQuartz-pbproxy-Make-standalone-xpbproxy-respect-the.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0004-XQuartz-pbproxy-Make-standalone-xpbproxy-respect-the.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0004-XQuartz-pbproxy-Make-standalone-xpbproxy-respect-the.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,51 @@
+From b226618f55a5393e32f339a963ae7aaf145c51a4 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at freedesktop.org>
+Date: Sat, 20 Mar 2010 11:03:28 -0700
+Subject: [PATCH 04/14] XQuartz: pbproxy: Make standalone xpbproxy respect the launchd prefix
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at freedesktop.org>
+(cherry picked from commit 38215cc43e4c012588c7a50344b8fe368d1252cc)
+---
+ hw/xquartz/pbproxy/Makefile.am | 6 ++++--
+ hw/xquartz/pbproxy/app-main.m | 4 ++--
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git xorg-server-1.7.6/hw/xquartz/pbproxy/Makefile.am xorg-server-1.7.6/hw/xquartz/pbproxy/Makefile.am
+index 02da6b2..1886642 100644
+--- xorg-server-1.7.6/hw/xquartz/pbproxy/Makefile.am
++++ xorg-server-1.7.6/hw/xquartz/pbproxy/Makefile.am
+@@ -1,5 +1,7 @@
+-AM_CPPFLAGS=-F/System/Library/Frameworks/ApplicationServices.framework/Frameworks
+-AM_CFLAGS=$(XPBPROXY_CFLAGS)
++AM_CPPFLAGS=-F/System/Library/Frameworks/ApplicationServices.framework/Frameworks \
++ -DLAUNCHD_ID_PREFIX=\"$(LAUNCHD_ID_PREFIX)\"
++
++AM_CFLAGS=$(XPBPROXY_CFLAGS)
+
+ noinst_LTLIBRARIES = libxpbproxy.la
+ libxpbproxy_la_SOURCES = \
+diff --git xorg-server-1.7.6/hw/xquartz/pbproxy/app-main.m xorg-server-1.7.6/hw/xquartz/pbproxy/app-main.m
+index b30dfb8..b00e90a 100644
+--- xorg-server-1.7.6/hw/xquartz/pbproxy/app-main.m
++++ xorg-server-1.7.6/hw/xquartz/pbproxy/app-main.m
+@@ -34,7 +34,7 @@
+ #include <unistd.h> /*for getpid*/
+ #include <Cocoa/Cocoa.h>
+
+-static const char *app_prefs_domain = "org.x.X11";
++static const char *app_prefs_domain = LAUNCHD_ID_PREFIX".xpbproxy";
+ CFStringRef app_prefs_domain_cfstr;
+
+ /* Stubs */
+@@ -73,7 +73,7 @@ int main (int argc, const char *argv[]) {
+ printf("usage: xpbproxy OPTIONS\n"
+ "Pasteboard proxying for X11.\n\n"
+ "--prefs-domain <domain> Change the domain used for reading preferences\n"
+- " (default: org.x.X11)\n");
++ " (default: %s)\n", app_prefs_domain);
+ return 0;
+ } else {
+ fprintf(stderr, "usage: xpbproxy OPTIONS...\n"
+--
+1.7.0.2
+
Added: trunk/dports/x11/xorg-server/files/0005-XQuartz-Constrain-the-pointer-to-the-updated-display.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0005-XQuartz-Constrain-the-pointer-to-the-updated-display.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0005-XQuartz-Constrain-the-pointer-to-the-updated-display.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,45 @@
+From 4c85c3815a6f1698e91d2043d51a716948f8c1df Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Fri, 19 Mar 2010 17:24:27 -0700
+Subject: [PATCH 05/14] XQuartz: Constrain the pointer to the updated display bounds on display reconfigure.
+
+http://xquartz.macosforge.org/trac/ticket/346
+(cherry picked from commit ed31d50b5f7f25e4db986711699704e615b8afcb)
+---
+ hw/xquartz/quartz.c | 13 +++++++++++--
+ 1 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git xorg-server-1.7.6/hw/xquartz/quartz.c xorg-server-1.7.6/hw/xquartz/quartz.c
+index 3c04205..59107be 100644
+--- xorg-server-1.7.6/hw/xquartz/quartz.c
++++ xorg-server-1.7.6/hw/xquartz/quartz.c
+@@ -241,6 +241,7 @@ void QuartzUpdateScreens(void) {
+ WindowPtr pRoot;
+ int x, y, width, height, sx, sy;
+ xEvent e;
++ BoxRec bounds;
+
+ if (noPseudoramiXExtension || screenInfo.numScreens != 1)
+ {
+@@ -277,8 +278,16 @@ void QuartzUpdateScreens(void) {
+ //pScreen->PaintWindowBackground (pRoot, &pRoot->borderClip, PW_BACKGROUND);
+ miPaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND);
+
+-// TODO: This is a noop in 1.6 and nuked in master... we may need to do something else now to handle it
+-// DefineInitialRootWindow(pRoot);
++ /* <rdar://problem/7770779> pointer events are clipped to old display region after display reconfiguration
++ * http://xquartz.macosforge.org/trac/ticket/346
++ */
++ bounds.x1 = 0;
++ bounds.x2 = width;
++ bounds.y1 = 0;
++ bounds.y2 = height;
++ pScreen->ConstrainCursor(inputInfo.pointer, pScreen, &bounds);
++ inputInfo.pointer->spriteInfo->sprite->physLimits = bounds;
++ inputInfo.pointer->spriteInfo->sprite->hotLimits = bounds;
+
+ DEBUG_LOG("Root Window: %dx%d @ (%d, %d) darwinMainScreen (%d, %d) xy (%d, %d) dixScreenOrigins (%d, %d)\n", width, height, x - sx, y - sy, darwinMainScreenX, darwinMainScreenY, x, y, dixScreenOrigins[pScreen->myNum].x, dixScreenOrigins[pScreen->myNum].y);
+
+--
+1.7.0.2
+
Deleted: trunk/dports/x11/xorg-server/files/0005-fb-Revert-fb-changes-that-broke-XQuartz.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0005-fb-Revert-fb-changes-that-broke-XQuartz.patch 2010-03-30 01:07:06 UTC (rev 65658)
+++ trunk/dports/x11/xorg-server/files/0005-fb-Revert-fb-changes-that-broke-XQuartz.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -1,339 +0,0 @@
-From 6fe17ebe537692735ae1cf17b66c3d2c155ffdc8 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu at freedesktop.org>
-Date: Sun, 31 Jan 2010 01:38:53 -0800
-Subject: [PATCH] fb: Revert fb changes that broke XQuartz
-
-http://bugs.freedesktop.org/show_bug.cgi?id=26124
-
-Revert "Fix source pictures getting random transforms after 2d6a8f668342a5190cdf43b5."
-Revert "fb: backport fb changes from master for src window operations."
-
-This reverts commit 66b6e2fd49fdc650703e56aa176a902e4921251c.
-This reverts commit 2d6a8f668342a5190cdf43b5d385f592d10f5900.
-
-Signed-off-by: Jeremy Huddleston <jeremyhu at freedesktop.org>
----
- fb/fb.h | 76 +++++++++++++++++++++----------------------------
- fb/fbpict.c | 86 ++++++++++++++++---------------------------------------
- fb/fbtrap.c | 6 +--
- fb/wfbrename.h | 1 -
- 4 files changed, 60 insertions(+), 109 deletions(-)
-
-diff --git a/fb/fb.h b/fb/fb.h
-index 8b2839a..37de71e 100644
---- a/fb/fb.h
-+++ b/fb/fb.h
-@@ -700,41 +700,38 @@ typedef struct {
- #define __fbPixOffXPix(pPix) (__fbPixDrawableX(pPix))
- #define __fbPixOffYPix(pPix) (__fbPixDrawableY(pPix))
-
--#define fbGetDrawablePixmap(pDrawable, pixmap, xoff, yoff) { \
-- if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
-- (pixmap) = fbGetWindowPixmap(pDrawable); \
-- (xoff) = __fbPixOffXWin(pixmap); \
-- (yoff) = __fbPixOffYWin(pixmap); \
-- } else { \
-- (pixmap) = (PixmapPtr) (pDrawable); \
-- (xoff) = __fbPixOffXPix(pixmap); \
-- (yoff) = __fbPixOffYPix(pixmap); \
-- } \
-- fbPrepareAccess(pDrawable); \
--}
--
--#define fbGetPixmapBitsData(pixmap, pointer, stride, bpp) { \
-- (pointer) = (FbBits *) (pixmap)->devPrivate.ptr; \
-- (stride) = ((int) (pixmap)->devKind) / sizeof (FbBits); (void)(stride); \
-- (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
--}
--
--#define fbGetPixmapStipData(pixmap, pointer, stride, bpp) { \
-- (pointer) = (FbStip *) (pixmap)->devPrivate.ptr; \
-- (stride) = ((int) (pixmap)->devKind) / sizeof (FbStip); (void)(stride); \
-- (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
--}
--
--#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
-- PixmapPtr _pPix; \
-- fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
-- fbGetPixmapBitsData(_pPix, pointer, stride, bpp); \
-+#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
-+ PixmapPtr _pPix; \
-+ if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
-+ _pPix = fbGetWindowPixmap(pDrawable); \
-+ (xoff) = __fbPixOffXWin(_pPix); \
-+ (yoff) = __fbPixOffYWin(_pPix); \
-+ } else { \
-+ _pPix = (PixmapPtr) (pDrawable); \
-+ (xoff) = __fbPixOffXPix(_pPix); \
-+ (yoff) = __fbPixOffYPix(_pPix); \
-+ } \
-+ fbPrepareAccess(pDrawable); \
-+ (pointer) = (FbBits *) _pPix->devPrivate.ptr; \
-+ (stride) = ((int) _pPix->devKind) / sizeof (FbBits); (void)(stride); \
-+ (bpp) = _pPix->drawable.bitsPerPixel; (void)(bpp); \
- }
-
--#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
-- PixmapPtr _pPix; \
-- fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
-- fbGetPixmapStipData(_pPix, pointer, stride, bpp); \
-+#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
-+ PixmapPtr _pPix; \
-+ if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
-+ _pPix = fbGetWindowPixmap(pDrawable); \
-+ (xoff) = __fbPixOffXWin(_pPix); \
-+ (yoff) = __fbPixOffYWin(_pPix); \
-+ } else { \
-+ _pPix = (PixmapPtr) (pDrawable); \
-+ (xoff) = __fbPixOffXPix(_pPix); \
-+ (yoff) = __fbPixOffYPix(_pPix); \
-+ } \
-+ fbPrepareAccess(pDrawable); \
-+ (pointer) = (FbStip *) _pPix->devPrivate.ptr; \
-+ (stride) = ((int) _pPix->devKind) / sizeof (FbStip); (void)(stride); \
-+ (bpp) = _pPix->drawable.bitsPerPixel; (void)(bpp); \
- }
-
- /*
-@@ -2082,16 +2079,9 @@ fbFillRegionSolid (DrawablePtr pDrawable,
- FbBits xor);
-
- extern _X_EXPORT pixman_image_t *
--image_from_pict (PicturePtr pict,
-- Bool has_clip,
-- Bool is_src);
--
--extern _X_EXPORT pixman_image_t *
--image_from_pict_18 (PicturePtr pict,
-- Bool has_clip,
-- int *xoff,
-- int *yoff);
--
-+image_from_pict (PicturePtr pict,
-+ Bool has_clip,
-+ Bool is_src);
- extern _X_EXPORT void free_pixman_pict (PicturePtr, pixman_image_t *);
-
- #endif /* _FB_H_ */
-diff --git a/fb/fbpict.c b/fb/fbpict.c
-index c046bae..8fdaa58 100644
---- a/fb/fbpict.c
-+++ b/fb/fbpict.c
-@@ -158,24 +158,19 @@ fbComposite (CARD8 op,
- CARD16 height)
- {
- pixman_image_t *src, *mask, *dest;
-- int src_xoff, src_yoff;
-- int msk_xoff, msk_yoff;
-- int dst_xoff, dst_yoff;
-
-- miCompositeSourceValidate (pSrc, xSrc - xDst, ySrc - yDst, width, height);
-+ miCompositeSourceValidate (pSrc, xSrc, ySrc, width, height);
- if (pMask)
-- miCompositeSourceValidate (pMask, xMask - xDst, yMask - yDst, width, height);
-+ miCompositeSourceValidate (pMask, xMask, yMask, width, height);
-
-- src = image_from_pict_18 (pSrc, FALSE, &src_xoff, &src_yoff);
-- mask = image_from_pict_18 (pMask, FALSE, &msk_xoff, &msk_yoff);
-- dest = image_from_pict_18 (pDst, TRUE, &dst_xoff, &dst_yoff);
-+ src = image_from_pict (pSrc, TRUE, TRUE);
-+ mask = image_from_pict (pMask, TRUE, TRUE);
-+ dest = image_from_pict (pDst, TRUE, FALSE);
-
- if (src && dest && !(pMask && !mask))
- {
- pixman_image_composite (op, src, mask, dest,
-- xSrc + src_xoff, ySrc + src_yoff,
-- xMask + msk_xoff, yMask + msk_yoff,
-- xDst + dst_xoff, yDst + dst_yoff,
-+ xSrc, ySrc, xMask, yMask, xDst, yDst,
- width, height);
- }
-
-@@ -275,22 +270,22 @@ create_conical_gradient_image (PictGradient *gradient)
-
- static pixman_image_t *
- create_bits_picture (PicturePtr pict,
-- Bool has_clip,
-- int *xoff,
-- int *yoff)
-+ Bool has_clip)
- {
-- PixmapPtr pixmap;
- FbBits *bits;
- FbStride stride;
-- int bpp;
-+ int bpp, xoff, yoff;
- pixman_image_t *image;
-
-- fbGetDrawablePixmap (pict->pDrawable, pixmap, *xoff, *yoff);
-- fbGetPixmapBitsData(pixmap, bits, stride, bpp);
-+ fbGetDrawable (pict->pDrawable, bits, stride, bpp, xoff, yoff);
-+
-+ bits = (FbBits*)((CARD8*)bits +
-+ (pict->pDrawable->y + yoff) * stride * sizeof(FbBits) +
-+ (pict->pDrawable->x + xoff) * (bpp / 8));
-
- image = pixman_image_create_bits (
- pict->format,
-- pixmap->drawable.width, pixmap->drawable.height,
-+ pict->pDrawable->width, pict->pDrawable->height,
- (uint32_t *)bits, stride * sizeof (FbStride));
-
-
-@@ -316,52 +311,30 @@ create_bits_picture (PicturePtr pict,
- if (pict->clientClipType != CT_NONE)
- pixman_image_set_has_client_clip (image, TRUE);
-
-- if (*xoff || *yoff)
-- pixman_region_translate (pict->pCompositeClip, *xoff, *yoff);
-+ pixman_region_translate (pict->pCompositeClip, - pict->pDrawable->x, - pict->pDrawable->y);
-
- pixman_image_set_clip_region (image, pict->pCompositeClip);
-
-- if (*xoff || *yoff)
-- pixman_region_translate (pict->pCompositeClip, -*xoff, -*yoff);
-+ pixman_region_translate (pict->pCompositeClip, pict->pDrawable->x, pict->pDrawable->y);
- }
-
- /* Indexed table */
- if (pict->pFormat->index.devPrivate)
- pixman_image_set_indexed (image, pict->pFormat->index.devPrivate);
-
-- /* Add in drawable origin to position within the image */
-- *xoff += pict->pDrawable->x;
-- *yoff += pict->pDrawable->y;
--
- return image;
- }
-
- static void
--set_image_properties (pixman_image_t *image, PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
-+set_image_properties (pixman_image_t *image, PicturePtr pict)
- {
- pixman_repeat_t repeat;
- pixman_filter_t filter;
-
- if (pict->transform)
- {
-- /* For source images, adjust the transform to account
-- * for the drawable offset within the pixman image,
-- * then set the offset to 0 as it will be used
-- * to compute positions within the transformed image.
-- */
-- if (!has_clip) {
-- struct pixman_transform adjusted;
--
-- adjusted = *pict->transform;
-- pixman_transform_translate(&adjusted,
-- NULL,
-- pixman_int_to_fixed(*xoff),
-- pixman_int_to_fixed(*yoff));
-- pixman_image_set_transform (image, &adjusted);
-- *xoff = 0;
-- *yoff = 0;
-- } else
-- pixman_image_set_transform (image, pict->transform);
-+ pixman_image_set_transform (
-+ image, (pixman_transform_t *)pict->transform);
- }
-
- switch (pict->repeatType)
-@@ -388,8 +361,7 @@ set_image_properties (pixman_image_t *image, PicturePtr pict, Bool has_clip, int
-
- if (pict->alphaMap)
- {
-- int alpha_xoff, alpha_yoff;
-- pixman_image_t *alpha_map = image_from_pict_18 (pict->alphaMap, FALSE, &alpha_xoff, &alpha_yoff);
-+ pixman_image_t *alpha_map = image_from_pict (pict->alphaMap, TRUE, TRUE);
-
- pixman_image_set_alpha_map (
- image, alpha_map, pict->alphaOrigin.x, pict->alphaOrigin.y);
-@@ -421,9 +393,10 @@ set_image_properties (pixman_image_t *image, PicturePtr pict, Bool has_clip, int
- pixman_image_set_source_clipping (image, TRUE);
- }
-
--
- pixman_image_t *
--image_from_pict_18 (PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
-+image_from_pict (PicturePtr pict,
-+ Bool has_clip,
-+ Bool is_src)
- {
- pixman_image_t *image = NULL;
-
-@@ -432,7 +405,7 @@ image_from_pict_18 (PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
-
- if (pict->pDrawable)
- {
-- image = create_bits_picture (pict, has_clip, xoff, yoff);
-+ image = create_bits_picture (pict, has_clip);
- }
- else if (pict->pSourcePict)
- {
-@@ -453,22 +426,14 @@ image_from_pict_18 (PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
- else if (sp->type == SourcePictTypeConical)
- image = create_conical_gradient_image (gradient);
- }
-- *xoff = *yoff = 0;
- }
-
- if (image)
-- set_image_properties (image, pict, has_clip, xoff, yoff);
-+ set_image_properties (image, pict);
-
- return image;
- }
-
--pixman_image_t *
--image_from_pict (PicturePtr pict, Bool has_clip, Bool is_src)
--{
-- int xoff = 0, yoff = 0;
-- return image_from_pict_18(pict, has_clip, &xoff, &yoff);
--}
--
- void
- free_pixman_pict (PicturePtr pict, pixman_image_t *image)
- {
-@@ -498,4 +463,3 @@ fbPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
-
- return TRUE;
- }
--
-diff --git a/fb/fbtrap.c b/fb/fbtrap.c
-index 5b5aeae..b1e1eff 100644
---- a/fb/fbtrap.c
-+++ b/fb/fbtrap.c
-@@ -40,8 +40,7 @@ fbAddTraps (PicturePtr pPicture,
- int ntrap,
- xTrap *traps)
- {
-- int image_xoff, image_yoff;
-- pixman_image_t *image = image_from_pict_18 (pPicture, FALSE, &image_xoff, &image_yoff);
-+ pixman_image_t *image = image_from_pict (pPicture, FALSE, FALSE);
-
- if (!image)
- return;
-@@ -57,8 +56,7 @@ fbRasterizeTrapezoid (PicturePtr pPicture,
- int x_off,
- int y_off)
- {
-- int mask_xoff, mask_yoff;
-- pixman_image_t *image = image_from_pict_18 (pPicture, FALSE, &mask_xoff, &mask_yoff);
-+ pixman_image_t *image = image_from_pict (pPicture, FALSE, FALSE);
-
- if (!image)
- return;
-diff --git a/fb/wfbrename.h b/fb/wfbrename.h
-index e9cdca8..73ee510 100644
---- a/fb/wfbrename.h
-+++ b/fb/wfbrename.h
-@@ -187,5 +187,4 @@
- #define fbZeroSegment wfbZeroSegment
- #define free_pixman_pict wfb_free_pixman_pict
- #define image_from_pict wfb_image_from_pict
--#define image_from_pict_18 wfb_image_from_pict_18
- #define composeFunctions wfbComposeFunctions
---
-1.6.6.1
-
Added: trunk/dports/x11/xorg-server/files/0006-Fix-crash-when-all-glyphs-of-a-given-depth-are-freed.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0006-Fix-crash-when-all-glyphs-of-a-given-depth-are-freed.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0006-Fix-crash-when-all-glyphs-of-a-given-depth-are-freed.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,46 @@
+From 2fa794f246b0224c458295a271a4246b52eb75c0 Mon Sep 17 00:00:00 2001
+From: Peter Harris <pharris at opentext.com>
+Date: Tue, 23 Mar 2010 12:08:19 -0400
+Subject: [PATCH 06/14] Fix crash when all glyphs of a given depth are freed, but not all glyphsets
+
+This is how the crash can be triggered with only two clients on the system:
+Client A: (already running)
+Client B: Connect
+Client B: CreateGlyphSet(depthN)
+Client A: Disconnect
+Server: free globalGlyphs(depthN)
+Client B: AddGlyphs(depthN)
+Server: SEGV
+
+This crash was introduced with the FindGlyphsByHash function
+in 516b96387b0e57b524a37a96da22dbeeeb041712. Before that revision,
+ResizeGlyphSet was always called before FindGlyphRef, which would
+re-create globalGlyphs(depthN) if necessary.
+
+X.Org Bug 20718 <http://bugs.freedesktop.org/show_bug.cgi?id=20718>
+
+Reviewed-by: Adam Jackson <ajax at redhat.com>
+Signed-off-by: Peter Harris <pharris at opentext.com>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+(cherry picked from commit 185185eeb44a277c324be0f58a4b4a469b56b69b)
+---
+ render/glyph.c | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git xorg-server-1.7.6/render/glyph.c xorg-server-1.7.6/render/glyph.c
+index 7fcdfd9..7282705 100644
+--- xorg-server-1.7.6/render/glyph.c
++++ xorg-server-1.7.6/render/glyph.c
+@@ -235,6 +235,9 @@ FindGlyphByHash (unsigned char sha1[20], int format)
+ GlyphRefPtr gr;
+ CARD32 signature = *(CARD32 *) sha1;
+
++ if (!globalGlyphs[format].hashSet)
++ return NULL;
++
+ gr = FindGlyphRef (&globalGlyphs[format],
+ signature, TRUE, sha1);
+
+--
+1.7.0.2
+
Deleted: trunk/dports/x11/xorg-server/files/0006-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0006-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch 2010-03-30 01:07:06 UTC (rev 65658)
+++ trunk/dports/x11/xorg-server/files/0006-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -1,84 +0,0 @@
-From 3369deaa34e73540bc3528e1ba3c32e93240c536 Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer at who-t.net>
-Date: Fri, 15 Jan 2010 11:39:36 +1000
-Subject: [PATCH 6/6] dix: if owner-events is true for passive grabs, add the window mask (#25400)
-
-A client requesting a GrabModeSync button grab, owner-events true, with only
-the ButtonRelease mask set would never receive the press event even if the
-grab window had the ButtonPress mask set.
-
-The protocol requires that if owner-events is true, then the delivery mask
-is the combination of the grab mask + the window event mask.
-
-X.Org Bug 25400 <http://bugs.freedesktop.org/show_bug.cgi?id=25400>
-
-Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
-Tested-by: Jim Ramsay <i.am at jimramsay.com>
----
- dix/events.c | 36 ++++++++++++++++++++++++++++++++++++
- 1 files changed, 36 insertions(+), 0 deletions(-)
-
-diff --git a/dix/events.c b/dix/events.c
-index 85c8f9a..b854d98 100644
---- a/dix/events.c
-+++ b/dix/events.c
-@@ -3580,6 +3580,8 @@ CheckPassiveGrabsOnWindow(
- xE = &core;
- count = 1;
- mask = grab->eventMask;
-+ if (grab->ownerEvents)
-+ mask |= pWin->eventMask;
- } else if (match & XI2_MATCH)
- {
- rc = EventToXI2((InternalEvent*)event, &xE);
-@@ -3601,6 +3603,24 @@ CheckPassiveGrabsOnWindow(
- mask = grab->xi2mask[device->id][((xGenericEvent*)xE)->evtype/8];
- else if (event->type == XI_Enter || event->type == XI_FocusIn)
- mask = grab->xi2mask[device->id][event->type/8];
-+
-+ if (grab->ownerEvents && wOtherInputMasks(grab->window))
-+ {
-+ InputClientsPtr icp =
-+ wOtherInputMasks(grab->window)->inputClients;
-+
-+ while(icp)
-+ {
-+ if (rClient(icp) == rClient(grab))
-+ {
-+ int evtype = (xE) ? ((xGenericEvent*)xE)->evtype : event->type;
-+ mask |= icp->xi2mask[device->id][evtype/8];
-+ break;
-+ }
-+
-+ icp = icp->next;
-+ }
-+ }
- } else
- {
- rc = EventToXI((InternalEvent*)event, &xE, &count);
-@@ -3612,6 +3632,22 @@ CheckPassiveGrabsOnWindow(
- continue;
- }
- mask = grab->eventMask;
-+ if (grab->ownerEvents && wOtherInputMasks(grab->window))
-+ {
-+ InputClientsPtr icp =
-+ wOtherInputMasks(grab->window)->inputClients;
-+
-+ while(icp)
-+ {
-+ if (rClient(icp) == rClient(grab))
-+ {
-+ mask |= icp->mask[device->id];
-+ break;
-+ }
-+
-+ icp = icp->next;
-+ }
-+ }
- }
-
- (*grabinfo->ActivateGrab)(device, grab, currentTime, TRUE);
---
-1.6.6.1
-
Added: trunk/dports/x11/xorg-server/files/0007-Fix-typos-in-the-swap-functions.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0007-Fix-typos-in-the-swap-functions.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0007-Fix-typos-in-the-swap-functions.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,59 @@
+From e481a4912bc53a09429002b2bf8c321b516d236f Mon Sep 17 00:00:00 2001
+From: Tomas Carnecky <tom at dbservice.com>
+Date: Mon, 22 Mar 2010 11:20:15 -0700
+Subject: [PATCH 07/14] Fix typos in the swap functions
+
+This should fix bug #3539.
+
+Signed-off-by: Tomas Carnecky <tom at dbservice.com>
+Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
+Reviewed-by: Keith Packard <keithp at keithp.com>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+(cherry picked from commit 0c2fde5c8ad6e94b4ed1588aa93256a2b64f74d9)
+---
+ glx/glxcmdsswap.c | 8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git xorg-server-1.7.6/glx/glxcmdsswap.c xorg-server-1.7.6/glx/glxcmdsswap.c
+index f1c0ce6..c414dc8 100644
+--- xorg-server-1.7.6/glx/glxcmdsswap.c
++++ xorg-server-1.7.6/glx/glxcmdsswap.c
+@@ -354,7 +354,7 @@ int __glXDispSwap_CreateGLXPbufferSGIX(__GLXclientState *cl, GLbyte *pc)
+
+ int __glXDispSwap_DestroyPbuffer(__GLXclientState *cl, GLbyte *pc)
+ {
+- xGLXDestroyPbufferReq *req = (xGLXDestroyPbufferReq *) req;
++ xGLXDestroyPbufferReq *req = (xGLXDestroyPbufferReq *) pc;
+ __GLX_DECLARE_SWAP_VARIABLES;
+
+ __GLX_SWAP_INT(&req->pbuffer);
+@@ -364,7 +364,7 @@ int __glXDispSwap_DestroyPbuffer(__GLXclientState *cl, GLbyte *pc)
+
+ int __glXDispSwap_DestroyGLXPbufferSGIX(__GLXclientState *cl, GLbyte *pc)
+ {
+- xGLXDestroyGLXPbufferSGIXReq *req = (xGLXDestroyGLXPbufferSGIXReq *) req;
++ xGLXDestroyGLXPbufferSGIXReq *req = (xGLXDestroyGLXPbufferSGIXReq *) pc;
+ __GLX_DECLARE_SWAP_VARIABLES;
+
+ __GLX_SWAP_INT(&req->pbuffer);
+@@ -375,7 +375,7 @@ int __glXDispSwap_DestroyGLXPbufferSGIX(__GLXclientState *cl, GLbyte *pc)
+ int __glXDispSwap_ChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
+ {
+ xGLXChangeDrawableAttributesReq *req =
+- (xGLXChangeDrawableAttributesReq *) req;
++ (xGLXChangeDrawableAttributesReq *) pc;
+ __GLX_DECLARE_SWAP_VARIABLES;
+ __GLX_DECLARE_SWAP_ARRAY_VARIABLES;
+ CARD32 *attribs;
+@@ -392,7 +392,7 @@ int __glXDispSwap_ChangeDrawableAttributesSGIX(__GLXclientState *cl,
+ GLbyte *pc)
+ {
+ xGLXChangeDrawableAttributesSGIXReq *req =
+- (xGLXChangeDrawableAttributesSGIXReq *) req;
++ (xGLXChangeDrawableAttributesSGIXReq *) pc;
+ __GLX_DECLARE_SWAP_VARIABLES;
+ __GLX_DECLARE_SWAP_ARRAY_VARIABLES;
+ CARD32 *attribs;
+--
+1.7.0.2
+
Added: trunk/dports/x11/xorg-server/files/0008-hw-xfree86-move-reference-counting-out-of-the-UseHWC.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0008-hw-xfree86-move-reference-counting-out-of-the-UseHWC.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0008-hw-xfree86-move-reference-counting-out-of-the-UseHWC.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,59 @@
+From 2ad8aae749fe08f139e3046e923da8233b9a7cd5 Mon Sep 17 00:00:00 2001
+From: Roland Scheidegger <sroland at vmware.com>
+Date: Fri, 12 Mar 2010 16:53:30 +0100
+Subject: [PATCH 08/14] hw/xfree86: move reference counting out of the UseHWCursor[ARGB] functions
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The problem is that the xf86_use_hw_cursor(_argb) functions may get this
+correctly now, some drivers will replace these generic versions with their
+own functions. It is pretty insane to expect them to do reference counting
+of the cursor (as an example, look at driver/xf86-video-vmware to see how
+that looks like as a workaround). There are even places in xserver itself
+which replace these two functions.
+The segfaults if no reference counting is done are caused because the
+reference count of the cursor reached zero, hence the cursor was freed,
+however xf86CursorEnableDisableFBAccess() brought it back to life from
+the dead (from the SavedCursor).
+This patch hence adds reference counting in xf86CursorSetCursor. As per Michel
+Daenzer's suggestion, also free the cursor upon xf86CursorCloseScreen.
+In theory with this it should be possible to remove the reference
+counting in the UseHwCursor functions I think, though it should also be
+safe to keep them.
+
+Signed-off-by: Roland Scheidegger <sroland at vmware.com>
+Reviewed-by: Michel Dänzer <michel at daenzer.net>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+(cherry picked from commit 67a8c659f25218904bae64aac6e98e326c90330b)
+---
+ hw/xfree86/ramdac/xf86Cursor.c | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git xorg-server-1.7.6/hw/xfree86/ramdac/xf86Cursor.c xorg-server-1.7.6/hw/xfree86/ramdac/xf86Cursor.c
+index 6b71f46..7f23d9e 100644
+--- xorg-server-1.7.6/hw/xfree86/ramdac/xf86Cursor.c
++++ xorg-server-1.7.6/hw/xfree86/ramdac/xf86Cursor.c
+@@ -129,6 +129,9 @@ xf86CursorCloseScreen(int i, ScreenPtr pScreen)
+ if (ScreenPriv->isUp && pScrn->vtSema)
+ xf86SetCursor(pScreen, NullCursor, ScreenPriv->x, ScreenPriv->y);
+
++ if (ScreenPriv->CurrentCursor)
++ FreeCursor(ScreenPriv->CurrentCursor, None);
++
+ pScreen->CloseScreen = ScreenPriv->CloseScreen;
+ pScreen->QueryBestSize = ScreenPriv->QueryBestSize;
+ pScreen->RecolorCursor = ScreenPriv->RecolorCursor;
+@@ -317,6 +320,9 @@ xf86CursorSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs,
+ if (pDev == inputInfo.pointer ||
+ (!IsMaster(pDev) && pDev->u.master == inputInfo.pointer))
+ {
++ pCurs->refcnt++;
++ if (ScreenPriv->CurrentCursor)
++ FreeCursor(ScreenPriv->CurrentCursor, None);
+ ScreenPriv->CurrentCursor = pCurs;
+ ScreenPriv->x = x;
+ ScreenPriv->y = y;
+--
+1.7.0.2
+
Added: trunk/dports/x11/xorg-server/files/0009-XQuartz-Workaround-weird-key-data-reported-on-some-l.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0009-XQuartz-Workaround-weird-key-data-reported-on-some-l.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0009-XQuartz-Workaround-weird-key-data-reported-on-some-l.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,33 @@
+From 68319e7f0755a7d36ed1544214dceae0afa05b76 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Thu, 25 Mar 2010 22:15:58 -0700
+Subject: [PATCH 09/14] XQuartz: Workaround weird key data reported on some layouts
+
+This should make 'Unicode Hex Input' work as an input layout.
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+Acked-by: Adam Jackson <ajax at redhat.com>
+(cherry picked from commit 339207be6f184cc783076fc7e2cc12f92f57f2ba)
+---
+ hw/xquartz/quartzKeyboard.c | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git xorg-server-1.7.6/hw/xquartz/quartzKeyboard.c xorg-server-1.7.6/hw/xquartz/quartzKeyboard.c
+index c9ef7cc..a4a0b08 100644
+--- xorg-server-1.7.6/hw/xquartz/quartzKeyboard.c
++++ xorg-server-1.7.6/hw/xquartz/quartzKeyboard.c
+@@ -735,7 +735,10 @@ Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info) {
+ if (err != noErr) continue;
+ }
+
+- if (len > 0 && s[0] != 0x0010) {
++ /* Not sure why 0x0010 is there.
++ * 0x0000 - <rdar://problem/7793566> 'Unicode Hex Input' ...
++ */
++ if (len > 0 && s[0] != 0x0010 && s[0] != 0x0000) {
+ k[j] = ucs2keysym (s[0]);
+ if (dead_key_state != 0) k[j] = make_dead_key (k[j]);
+ }
+--
+1.7.0.2
+
Added: trunk/dports/x11/xorg-server/files/0010-XQuartz-Re-query-dixScreenOrigins-as-the-value-could.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0010-XQuartz-Re-query-dixScreenOrigins-as-the-value-could.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0010-XQuartz-Re-query-dixScreenOrigins-as-the-value-could.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,35 @@
+From 49a2b55e0e1e265c1393c04c9df8e73f30dccd33 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Sun, 28 Mar 2010 13:46:23 -0700
+Subject: [PATCH 10/14] XQuartz: Re-query dixScreenOrigins as the value could've changed.
+
+Fix a regression in 9c9c3a85b094a3c7b2763a572715d710325091aa
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+Acked-by: Adam Jackson <ajax at redhat.com>
+(cherry picked from commit 28a5f14b4089dccb8045cc4fdc923542a73dd22d)
+---
+ hw/xquartz/quartz.c | 7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git xorg-server-1.7.6/hw/xquartz/quartz.c xorg-server-1.7.6/hw/xquartz/quartz.c
+index 59107be..a611854 100644
+--- xorg-server-1.7.6/hw/xquartz/quartz.c
++++ xorg-server-1.7.6/hw/xquartz/quartz.c
+@@ -268,8 +268,11 @@ void QuartzUpdateScreens(void) {
+ DarwinAdjustScreenOrigins(&screenInfo);
+ quartzProcs->UpdateScreen(pScreen);
+
+- sx = x + darwinMainScreenX;
+- sy = y + darwinMainScreenY;
++ /* DarwinAdjustScreenOrigins or UpdateScreen may change dixScreenOrigins,
++ * so use it rather than x/y
++ */
++ sx = dixScreenOrigins[pScreen->myNum].x + darwinMainScreenX;
++ sy = dixScreenOrigins[pScreen->myNum].y + darwinMainScreenY;
+
+ /* Adjust the root window. */
+ pRoot = WindowTable[pScreen->myNum];
+--
+1.7.0.2
+
Added: trunk/dports/x11/xorg-server/files/0011-XKB-Fix-garbage-initialization.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0011-XKB-Fix-garbage-initialization.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0011-XKB-Fix-garbage-initialization.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,32 @@
+From 8faac273d3fa2394fbc686be52476bd229754338 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Mon, 22 Mar 2010 14:20:56 -0700
+Subject: [PATCH 11/14] XKB: Fix garbage initialization
+
+XkbEnableDisableControls set extra garbage bits on the xkbControlsNotify
+changedControls mask because it was uninitialized on the stack.
+
+Found by clang
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+(cherry picked from commit e081ef1d26c03a38da58f1eacf21ebe8fff5a7d9)
+---
+ xkb/xkbUtils.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git xorg-server-1.7.6/xkb/xkbUtils.c xorg-server-1.7.6/xkb/xkbUtils.c
+index 75e243c..30ec438 100644
+--- xorg-server-1.7.6/xkb/xkbUtils.c
++++ xorg-server-1.7.6/xkb/xkbUtils.c
+@@ -753,7 +753,7 @@ XkbSrvLedInfoPtr sli;
+ if (cause!=NULL) {
+ xkbControlsNotify cn;
+ cn.numGroups= ctrls->num_groups;
+- cn.changedControls|= XkbControlsEnabledMask;
++ cn.changedControls= XkbControlsEnabledMask;
+ cn.enabledControls= ctrls->enabled_ctrls;
+ cn.enabledControlChanges= (ctrls->enabled_ctrls^old);
+ cn.keycode= cause->kc;
+--
+1.7.0.2
+
Added: trunk/dports/x11/xorg-server/files/0012-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0012-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0012-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,86 @@
+From a7f60537227c2c667a9075b6fab308a5de996903 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at who-t.net>
+Date: Wed, 17 Mar 2010 14:32:38 +1000
+Subject: [PATCH 12/14] dix: if owner-events is true for passive grabs, add the window mask (#25400)
+
+A client requesting a GrabModeSync button grab, owner-events true, with only
+the ButtonRelease mask set would never receive the press event even if the
+grab window had the ButtonPress mask set.
+
+The protocol requires that if owner-events is true, then the delivery mask
+is the combination of the grab mask + the window event mask.
+
+X.Org Bug 25400 <http://bugs.freedesktop.org/show_bug.cgi?id=25400>
+
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+Tested-by: Jim Ramsay <i.am at jimramsay.com>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+(cherry picked from commit 1c612acca8568fcdf9761d23f112adaf4d496f1b)
+---
+ dix/events.c | 36 ++++++++++++++++++++++++++++++++++++
+ 1 files changed, 36 insertions(+), 0 deletions(-)
+
+diff --git xorg-server-1.7.6/dix/events.c xorg-server-1.7.6/dix/events.c
+index 3c625db..732740e 100644
+--- xorg-server-1.7.6/dix/events.c
++++ xorg-server-1.7.6/dix/events.c
+@@ -3552,6 +3552,8 @@ CheckPassiveGrabsOnWindow(
+ xE = &core;
+ count = 1;
+ mask = grab->eventMask;
++ if (grab->ownerEvents)
++ mask |= pWin->eventMask;
+ } else if (match & XI2_MATCH)
+ {
+ rc = EventToXI2((InternalEvent*)event, &xE);
+@@ -3573,6 +3575,24 @@ CheckPassiveGrabsOnWindow(
+ mask = grab->xi2mask[device->id][((xGenericEvent*)xE)->evtype/8];
+ else if (event->type == XI_Enter || event->type == XI_FocusIn)
+ mask = grab->xi2mask[device->id][event->type/8];
++
++ if (grab->ownerEvents && wOtherInputMasks(grab->window))
++ {
++ InputClientsPtr icp =
++ wOtherInputMasks(grab->window)->inputClients;
++
++ while(icp)
++ {
++ if (rClient(icp) == rClient(grab))
++ {
++ int evtype = (xE) ? ((xGenericEvent*)xE)->evtype : event->type;
++ mask |= icp->xi2mask[device->id][evtype/8];
++ break;
++ }
++
++ icp = icp->next;
++ }
++ }
+ } else
+ {
+ rc = EventToXI((InternalEvent*)event, &xE, &count);
+@@ -3584,6 +3604,22 @@ CheckPassiveGrabsOnWindow(
+ continue;
+ }
+ mask = grab->eventMask;
++ if (grab->ownerEvents && wOtherInputMasks(grab->window))
++ {
++ InputClientsPtr icp =
++ wOtherInputMasks(grab->window)->inputClients;
++
++ while(icp)
++ {
++ if (rClient(icp) == rClient(grab))
++ {
++ mask |= icp->mask[device->id];
++ break;
++ }
++
++ icp = icp->next;
++ }
++ }
+ }
+
+ (*grabinfo->ActivateGrab)(device, grab, currentTime, TRUE);
+--
+1.7.0.2
+
Added: trunk/dports/x11/xorg-server/files/0013-fb-Revert-fb-changes-that-broke-XQuartz.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0013-fb-Revert-fb-changes-that-broke-XQuartz.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0013-fb-Revert-fb-changes-that-broke-XQuartz.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,339 @@
+From d585d5c980bac7e91c0adee4c69872054a27c348 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at freedesktop.org>
+Date: Sun, 31 Jan 2010 01:38:53 -0800
+Subject: [PATCH 13/14] fb: Revert fb changes that broke XQuartz
+
+http://bugs.freedesktop.org/show_bug.cgi?id=26124
+
+Revert "Fix source pictures getting random transforms after 2d6a8f668342a5190cdf43b5."
+Revert "fb: backport fb changes from master for src window operations."
+
+This reverts commit 66b6e2fd49fdc650703e56aa176a902e4921251c.
+This reverts commit 2d6a8f668342a5190cdf43b5d385f592d10f5900.
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at freedesktop.org>
+---
+ fb/fb.h | 76 +++++++++++++++++++++----------------------------
+ fb/fbpict.c | 86 ++++++++++++++++---------------------------------------
+ fb/fbtrap.c | 6 +--
+ fb/wfbrename.h | 1 -
+ 4 files changed, 60 insertions(+), 109 deletions(-)
+
+diff --git xorg-server-1.7.6/fb/fb.h xorg-server-1.7.6/fb/fb.h
+index 8b2839a..37de71e 100644
+--- xorg-server-1.7.6/fb/fb.h
++++ xorg-server-1.7.6/fb/fb.h
+@@ -700,41 +700,38 @@ typedef struct {
+ #define __fbPixOffXPix(pPix) (__fbPixDrawableX(pPix))
+ #define __fbPixOffYPix(pPix) (__fbPixDrawableY(pPix))
+
+-#define fbGetDrawablePixmap(pDrawable, pixmap, xoff, yoff) { \
+- if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
+- (pixmap) = fbGetWindowPixmap(pDrawable); \
+- (xoff) = __fbPixOffXWin(pixmap); \
+- (yoff) = __fbPixOffYWin(pixmap); \
+- } else { \
+- (pixmap) = (PixmapPtr) (pDrawable); \
+- (xoff) = __fbPixOffXPix(pixmap); \
+- (yoff) = __fbPixOffYPix(pixmap); \
+- } \
+- fbPrepareAccess(pDrawable); \
+-}
+-
+-#define fbGetPixmapBitsData(pixmap, pointer, stride, bpp) { \
+- (pointer) = (FbBits *) (pixmap)->devPrivate.ptr; \
+- (stride) = ((int) (pixmap)->devKind) / sizeof (FbBits); (void)(stride); \
+- (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
+-}
+-
+-#define fbGetPixmapStipData(pixmap, pointer, stride, bpp) { \
+- (pointer) = (FbStip *) (pixmap)->devPrivate.ptr; \
+- (stride) = ((int) (pixmap)->devKind) / sizeof (FbStip); (void)(stride); \
+- (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
+-}
+-
+-#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
+- PixmapPtr _pPix; \
+- fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
+- fbGetPixmapBitsData(_pPix, pointer, stride, bpp); \
++#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
++ PixmapPtr _pPix; \
++ if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
++ _pPix = fbGetWindowPixmap(pDrawable); \
++ (xoff) = __fbPixOffXWin(_pPix); \
++ (yoff) = __fbPixOffYWin(_pPix); \
++ } else { \
++ _pPix = (PixmapPtr) (pDrawable); \
++ (xoff) = __fbPixOffXPix(_pPix); \
++ (yoff) = __fbPixOffYPix(_pPix); \
++ } \
++ fbPrepareAccess(pDrawable); \
++ (pointer) = (FbBits *) _pPix->devPrivate.ptr; \
++ (stride) = ((int) _pPix->devKind) / sizeof (FbBits); (void)(stride); \
++ (bpp) = _pPix->drawable.bitsPerPixel; (void)(bpp); \
+ }
+
+-#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
+- PixmapPtr _pPix; \
+- fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
+- fbGetPixmapStipData(_pPix, pointer, stride, bpp); \
++#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
++ PixmapPtr _pPix; \
++ if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
++ _pPix = fbGetWindowPixmap(pDrawable); \
++ (xoff) = __fbPixOffXWin(_pPix); \
++ (yoff) = __fbPixOffYWin(_pPix); \
++ } else { \
++ _pPix = (PixmapPtr) (pDrawable); \
++ (xoff) = __fbPixOffXPix(_pPix); \
++ (yoff) = __fbPixOffYPix(_pPix); \
++ } \
++ fbPrepareAccess(pDrawable); \
++ (pointer) = (FbStip *) _pPix->devPrivate.ptr; \
++ (stride) = ((int) _pPix->devKind) / sizeof (FbStip); (void)(stride); \
++ (bpp) = _pPix->drawable.bitsPerPixel; (void)(bpp); \
+ }
+
+ /*
+@@ -2082,16 +2079,9 @@ fbFillRegionSolid (DrawablePtr pDrawable,
+ FbBits xor);
+
+ extern _X_EXPORT pixman_image_t *
+-image_from_pict (PicturePtr pict,
+- Bool has_clip,
+- Bool is_src);
+-
+-extern _X_EXPORT pixman_image_t *
+-image_from_pict_18 (PicturePtr pict,
+- Bool has_clip,
+- int *xoff,
+- int *yoff);
+-
++image_from_pict (PicturePtr pict,
++ Bool has_clip,
++ Bool is_src);
+ extern _X_EXPORT void free_pixman_pict (PicturePtr, pixman_image_t *);
+
+ #endif /* _FB_H_ */
+diff --git xorg-server-1.7.6/fb/fbpict.c xorg-server-1.7.6/fb/fbpict.c
+index c046bae..8fdaa58 100644
+--- xorg-server-1.7.6/fb/fbpict.c
++++ xorg-server-1.7.6/fb/fbpict.c
+@@ -158,24 +158,19 @@ fbComposite (CARD8 op,
+ CARD16 height)
+ {
+ pixman_image_t *src, *mask, *dest;
+- int src_xoff, src_yoff;
+- int msk_xoff, msk_yoff;
+- int dst_xoff, dst_yoff;
+
+- miCompositeSourceValidate (pSrc, xSrc - xDst, ySrc - yDst, width, height);
++ miCompositeSourceValidate (pSrc, xSrc, ySrc, width, height);
+ if (pMask)
+- miCompositeSourceValidate (pMask, xMask - xDst, yMask - yDst, width, height);
++ miCompositeSourceValidate (pMask, xMask, yMask, width, height);
+
+- src = image_from_pict_18 (pSrc, FALSE, &src_xoff, &src_yoff);
+- mask = image_from_pict_18 (pMask, FALSE, &msk_xoff, &msk_yoff);
+- dest = image_from_pict_18 (pDst, TRUE, &dst_xoff, &dst_yoff);
++ src = image_from_pict (pSrc, TRUE, TRUE);
++ mask = image_from_pict (pMask, TRUE, TRUE);
++ dest = image_from_pict (pDst, TRUE, FALSE);
+
+ if (src && dest && !(pMask && !mask))
+ {
+ pixman_image_composite (op, src, mask, dest,
+- xSrc + src_xoff, ySrc + src_yoff,
+- xMask + msk_xoff, yMask + msk_yoff,
+- xDst + dst_xoff, yDst + dst_yoff,
++ xSrc, ySrc, xMask, yMask, xDst, yDst,
+ width, height);
+ }
+
+@@ -275,22 +270,22 @@ create_conical_gradient_image (PictGradient *gradient)
+
+ static pixman_image_t *
+ create_bits_picture (PicturePtr pict,
+- Bool has_clip,
+- int *xoff,
+- int *yoff)
++ Bool has_clip)
+ {
+- PixmapPtr pixmap;
+ FbBits *bits;
+ FbStride stride;
+- int bpp;
++ int bpp, xoff, yoff;
+ pixman_image_t *image;
+
+- fbGetDrawablePixmap (pict->pDrawable, pixmap, *xoff, *yoff);
+- fbGetPixmapBitsData(pixmap, bits, stride, bpp);
++ fbGetDrawable (pict->pDrawable, bits, stride, bpp, xoff, yoff);
++
++ bits = (FbBits*)((CARD8*)bits +
++ (pict->pDrawable->y + yoff) * stride * sizeof(FbBits) +
++ (pict->pDrawable->x + xoff) * (bpp / 8));
+
+ image = pixman_image_create_bits (
+ pict->format,
+- pixmap->drawable.width, pixmap->drawable.height,
++ pict->pDrawable->width, pict->pDrawable->height,
+ (uint32_t *)bits, stride * sizeof (FbStride));
+
+
+@@ -316,52 +311,30 @@ create_bits_picture (PicturePtr pict,
+ if (pict->clientClipType != CT_NONE)
+ pixman_image_set_has_client_clip (image, TRUE);
+
+- if (*xoff || *yoff)
+- pixman_region_translate (pict->pCompositeClip, *xoff, *yoff);
++ pixman_region_translate (pict->pCompositeClip, - pict->pDrawable->x, - pict->pDrawable->y);
+
+ pixman_image_set_clip_region (image, pict->pCompositeClip);
+
+- if (*xoff || *yoff)
+- pixman_region_translate (pict->pCompositeClip, -*xoff, -*yoff);
++ pixman_region_translate (pict->pCompositeClip, pict->pDrawable->x, pict->pDrawable->y);
+ }
+
+ /* Indexed table */
+ if (pict->pFormat->index.devPrivate)
+ pixman_image_set_indexed (image, pict->pFormat->index.devPrivate);
+
+- /* Add in drawable origin to position within the image */
+- *xoff += pict->pDrawable->x;
+- *yoff += pict->pDrawable->y;
+-
+ return image;
+ }
+
+ static void
+-set_image_properties (pixman_image_t *image, PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
++set_image_properties (pixman_image_t *image, PicturePtr pict)
+ {
+ pixman_repeat_t repeat;
+ pixman_filter_t filter;
+
+ if (pict->transform)
+ {
+- /* For source images, adjust the transform to account
+- * for the drawable offset within the pixman image,
+- * then set the offset to 0 as it will be used
+- * to compute positions within the transformed image.
+- */
+- if (!has_clip) {
+- struct pixman_transform adjusted;
+-
+- adjusted = *pict->transform;
+- pixman_transform_translate(&adjusted,
+- NULL,
+- pixman_int_to_fixed(*xoff),
+- pixman_int_to_fixed(*yoff));
+- pixman_image_set_transform (image, &adjusted);
+- *xoff = 0;
+- *yoff = 0;
+- } else
+- pixman_image_set_transform (image, pict->transform);
++ pixman_image_set_transform (
++ image, (pixman_transform_t *)pict->transform);
+ }
+
+ switch (pict->repeatType)
+@@ -388,8 +361,7 @@ set_image_properties (pixman_image_t *image, PicturePtr pict, Bool has_clip, int
+
+ if (pict->alphaMap)
+ {
+- int alpha_xoff, alpha_yoff;
+- pixman_image_t *alpha_map = image_from_pict_18 (pict->alphaMap, FALSE, &alpha_xoff, &alpha_yoff);
++ pixman_image_t *alpha_map = image_from_pict (pict->alphaMap, TRUE, TRUE);
+
+ pixman_image_set_alpha_map (
+ image, alpha_map, pict->alphaOrigin.x, pict->alphaOrigin.y);
+@@ -421,9 +393,10 @@ set_image_properties (pixman_image_t *image, PicturePtr pict, Bool has_clip, int
+ pixman_image_set_source_clipping (image, TRUE);
+ }
+
+-
+ pixman_image_t *
+-image_from_pict_18 (PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
++image_from_pict (PicturePtr pict,
++ Bool has_clip,
++ Bool is_src)
+ {
+ pixman_image_t *image = NULL;
+
+@@ -432,7 +405,7 @@ image_from_pict_18 (PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
+
+ if (pict->pDrawable)
+ {
+- image = create_bits_picture (pict, has_clip, xoff, yoff);
++ image = create_bits_picture (pict, has_clip);
+ }
+ else if (pict->pSourcePict)
+ {
+@@ -453,22 +426,14 @@ image_from_pict_18 (PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
+ else if (sp->type == SourcePictTypeConical)
+ image = create_conical_gradient_image (gradient);
+ }
+- *xoff = *yoff = 0;
+ }
+
+ if (image)
+- set_image_properties (image, pict, has_clip, xoff, yoff);
++ set_image_properties (image, pict);
+
+ return image;
+ }
+
+-pixman_image_t *
+-image_from_pict (PicturePtr pict, Bool has_clip, Bool is_src)
+-{
+- int xoff = 0, yoff = 0;
+- return image_from_pict_18(pict, has_clip, &xoff, &yoff);
+-}
+-
+ void
+ free_pixman_pict (PicturePtr pict, pixman_image_t *image)
+ {
+@@ -498,4 +463,3 @@ fbPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
+
+ return TRUE;
+ }
+-
+diff --git xorg-server-1.7.6/fb/fbtrap.c xorg-server-1.7.6/fb/fbtrap.c
+index 5b5aeae..b1e1eff 100644
+--- xorg-server-1.7.6/fb/fbtrap.c
++++ xorg-server-1.7.6/fb/fbtrap.c
+@@ -40,8 +40,7 @@ fbAddTraps (PicturePtr pPicture,
+ int ntrap,
+ xTrap *traps)
+ {
+- int image_xoff, image_yoff;
+- pixman_image_t *image = image_from_pict_18 (pPicture, FALSE, &image_xoff, &image_yoff);
++ pixman_image_t *image = image_from_pict (pPicture, FALSE, FALSE);
+
+ if (!image)
+ return;
+@@ -57,8 +56,7 @@ fbRasterizeTrapezoid (PicturePtr pPicture,
+ int x_off,
+ int y_off)
+ {
+- int mask_xoff, mask_yoff;
+- pixman_image_t *image = image_from_pict_18 (pPicture, FALSE, &mask_xoff, &mask_yoff);
++ pixman_image_t *image = image_from_pict (pPicture, FALSE, FALSE);
+
+ if (!image)
+ return;
+diff --git xorg-server-1.7.6/fb/wfbrename.h xorg-server-1.7.6/fb/wfbrename.h
+index e9cdca8..73ee510 100644
+--- xorg-server-1.7.6/fb/wfbrename.h
++++ xorg-server-1.7.6/fb/wfbrename.h
+@@ -187,5 +187,4 @@
+ #define fbZeroSegment wfbZeroSegment
+ #define free_pixman_pict wfb_free_pixman_pict
+ #define image_from_pict wfb_image_from_pict
+-#define image_from_pict_18 wfb_image_from_pict_18
+ #define composeFunctions wfbComposeFunctions
+--
+1.7.0.2
+
Added: trunk/dports/x11/xorg-server/files/0014-GLX-Remove-a-redundant-initialization.patch
===================================================================
--- trunk/dports/x11/xorg-server/files/0014-GLX-Remove-a-redundant-initialization.patch (rev 0)
+++ trunk/dports/x11/xorg-server/files/0014-GLX-Remove-a-redundant-initialization.patch 2010-03-30 01:13:20 UTC (rev 65659)
@@ -0,0 +1,27 @@
+From 163286ee33b016cf900f171bb3699bbb1ad2f8a5 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Mon, 22 Mar 2010 09:30:51 -0700
+Subject: [PATCH 14/14] GLX: Remove a redundant initialization
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+(cherry picked from commit 1c307d64d74ae8719680afcb750840851d33161f)
+---
+ glx/indirect_dispatch.c | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git xorg-server-1.7.6/glx/indirect_dispatch.c xorg-server-1.7.6/glx/indirect_dispatch.c
+index 6665519..ecd2bc8 100644
+--- xorg-server-1.7.6/glx/indirect_dispatch.c
++++ xorg-server-1.7.6/glx/indirect_dispatch.c
+@@ -98,8 +98,6 @@ void __glXDisp_CallLists(GLbyte * pc)
+ const GLenum type = *(GLenum *)(pc + 4);
+ const GLvoid * lists = (const GLvoid *)(pc + 8);
+
+- lists = (const GLvoid *) (pc + 8);
+-
+ CALL_CallLists( GET_DISPATCH(), (
+ n,
+ type,
+--
+1.7.0.2
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20100329/a9018932/attachment-0001.html>
More information about the macports-changes
mailing list