pulling in changes from xorg-server-1.2-apple branch

This commit is contained in:
Ben Byer 2007-11-04 05:13:19 -08:00
parent 181468db92
commit ff9929ed48
7 changed files with 34 additions and 32 deletions

Binary file not shown.

View File

@ -79,7 +79,7 @@ extern void X11ApplicationMain (int argc, const char *argv[],
extern int X11EnableKeyEquivalents; extern int X11EnableKeyEquivalents;
extern int quartzHasRoot, quartzEnableRootless; extern int quartzHasRoot, quartzEnableRootless;
#define APP_PREFS "org.x.x11" #define APP_PREFS "org.x.X11"
#define PREFS_APPSMENU "apps_menu" #define PREFS_APPSMENU "apps_menu"
#define PREFS_FAKEBUTTONS "enable_fake_buttons" #define PREFS_FAKEBUTTONS "enable_fake_buttons"

View File

@ -45,7 +45,7 @@
#include <unistd.h> #include <unistd.h>
#include <pthread.h> #include <pthread.h>
#define DEFAULTS_FILE "/usr/X11/lib/X11xserver/Xquartz.plist" #define DEFAULTS_FILE "/usr/X11/lib/X11/xserver/Xquartz.plist"
int X11EnableKeyEquivalents = TRUE; int X11EnableKeyEquivalents = TRUE;
int quartzHasRoot = FALSE, quartzEnableRootless = TRUE; int quartzHasRoot = FALSE, quartzEnableRootless = TRUE;
@ -311,6 +311,7 @@ static void message_kit_thread (SEL selector, NSObject *arg) {
[NSApp activateIgnoringOtherApps:YES]; [NSApp activateIgnoringOtherApps:YES];
if ([self modalWindow] == nil) [self activateX:YES]; if ([self modalWindow] == nil) [self activateX:YES];
QuartzMessageServerThread(kXDarwinBringAllToFront, 0);
} }
- (void) set_can_quit:(NSNumber *)state { - (void) set_can_quit:(NSNumber *)state {

View File

@ -1,5 +1,4 @@
/* X11Controller.m -- connect the IB ui, also the NSApp delegate /* X11Controller.m -- connect the IB ui, also the NSApp delegate
$Id: X11Controller.m,v 1.40 2006/09/06 21:19:32 jharper Exp $
Copyright (c) 2002-2007 Apple Inc. All rights reserved. Copyright (c) 2002-2007 Apple Inc. All rights reserved.
@ -294,26 +293,17 @@
- (void) launch_client:(NSString *)filename - (void) launch_client:(NSString *)filename
{ {
const char *command = [filename UTF8String]; const char *command = [filename UTF8String];
const char *shell; const char *argv[7];
const char *argv[5];
int child1, child2 = 0; int child1, child2 = 0;
int status; int status;
/* this old code doesn't work with csh ...
shell = getenv("SHELL");
if (shell == NULL) shell = "/bin/bash";
argv[0] = shell;
argv[1] = "-l";
argv[2] = "-c";
argv[3] = command;
argv[4] = NULL;
... but the new code doesn't work with spaces in a command :(
*/
argv[0] = "/usr/bin/login"; argv[0] = "/usr/bin/login";
argv[1] = "-fp"; argv[1] = "-fp";
argv[2] = getlogin(); argv[2] = getlogin();
argv[3] = "/bin/sh";
argv[4] = "-c";
argv[5] = command;
argv[6] = NULL;
/* Do the fork-twice trick to avoid having to reap zombies */ /* Do the fork-twice trick to avoid having to reap zombies */

View File

@ -2,8 +2,6 @@
* *
* Xplugin cursor support * Xplugin cursor support
* *
**************************************************************/
/*
* Copyright (c) 2001 Torrey T. Lyons and Greg Parker. * Copyright (c) 2001 Torrey T. Lyons and Greg Parker.
* Copyright (c) 2002 Apple Computer, Inc. * Copyright (c) 2002 Apple Computer, Inc.
* All Rights Reserved. * All Rights Reserved.
@ -84,8 +82,17 @@ load_cursor(CursorPtr src, int screen)
#ifdef ARGB_CURSOR #ifdef ARGB_CURSOR
if (src->bits->argb != NULL) if (src->bits->argb != NULL)
{ {
rowbytes = src->bits->width * sizeof(CARD32); #if BITMAP_BIT_ORDER == MSBFirst
rowbytes = src->bits->width * sizeof (CARD32);
data = (uint32_t *) src->bits->argb; data = (uint32_t *) src->bits->argb;
#else
const uint32_t *be_data=(uint32_t *) src->bits->argb;
unsigned i;
rowbytes = src->bits->width * sizeof (CARD32);
data=alloca (rowbytes * src->bits->height);
for(i=0;i<(src->bits->width*src->bits->height);i++)
data[i]=ntohl(be_data[i]);
#endif
} }
else else
#endif #endif

View File

@ -1,7 +1,6 @@
/* /*
* Xplugin rootless implementation frame functions * Xplugin rootless implementation frame functions
*/ *
/*
* Copyright (c) 2002 Apple Computer, Inc. All rights reserved. * Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
* Copyright (c) 2003 Torrey T. Lyons. All Rights Reserved. * Copyright (c) 2003 Torrey T. Lyons. All Rights Reserved.
* *
@ -411,7 +410,7 @@ xprInit(ScreenPtr pScreen)
* Given the id of a physical window, try to find the top-level (or root) * Given the id of a physical window, try to find the top-level (or root)
* X window that it represents. * X window that it represents.
*/ */
static WindowPtr WindowPtr
xprGetXWindow(xp_window_id wid) xprGetXWindow(xp_window_id wid)
{ {
RootlessWindowRec *winRec; RootlessWindowRec *winRec;

View File

@ -1,7 +1,6 @@
/* /*
* Xplugin rootless implementation screen functions * Xplugin rootless implementation screen functions
*/ *
/*
* Copyright (c) 2002 Apple Computer, Inc. All Rights Reserved. * Copyright (c) 2002 Apple Computer, Inc. All Rights Reserved.
* Copyright (c) 2004 Torrey T. Lyons. All Rights Reserved. * Copyright (c) 2004 Torrey T. Lyons. All Rights Reserved.
* *
@ -77,8 +76,14 @@ eventHandler(unsigned int type, const void *arg,
if (arg_size == sizeof(xp_window_id)) if (arg_size == sizeof(xp_window_id))
{ {
xp_window_id id = * (xp_window_id *) arg; xp_window_id id = * (xp_window_id *) arg;
WindowPtr pWin = xprGetXWindow(id);
QuartzMessageServerThread(kXDarwinWindowMoved, 1, id); BoxRec box;
xp_error retval = xp_get_window_bounds(id, &box);
if (retval != Success) {
ErrorF("Unable to find new bounds for window\n");
break;
}
QuartzMessageServerThread(kXDarwinWindowMoved, 3, pWin, box.x1, box.y1);
} }
break; break;
@ -177,15 +182,15 @@ xprAddPseudoramiXScreens(int *x, int *y, int *width, int *height)
frame = displayScreenBounds(dpy); frame = displayScreenBounds(dpy);
ErrorF("PseudoramiX screen %d added: %dx%d @ (%d,%d).\n", i, /* ErrorF("PseudoramiX screen %d added: %dx%d @ (%d,%d).\n", i,
(int)frame.size.width, (int)frame.size.height, (int)frame.size.width, (int)frame.size.height,
(int)frame.origin.x, (int)frame.origin.y); (int)frame.origin.x, (int)frame.origin.y); */
frame.origin.x -= unionRect.origin.x; frame.origin.x -= unionRect.origin.x;
frame.origin.y -= unionRect.origin.y; frame.origin.y -= unionRect.origin.y;
ErrorF("PseudoramiX screen %d placed at X11 coordinate (%d,%d).\n", /* ErrorF("PseudoramiX screen %d placed at X11 coordinate (%d,%d).\n",
i, (int)frame.origin.x, (int)frame.origin.y); i, (int)frame.origin.x, (int)frame.origin.y); */
PseudoramiXAddScreen(frame.origin.x, frame.origin.y, PseudoramiXAddScreen(frame.origin.x, frame.origin.y,
frame.size.width, frame.size.height); frame.size.width, frame.size.height);
@ -203,7 +208,7 @@ xprDisplayInit(void)
{ {
CGDisplayCount displayCount; CGDisplayCount displayCount;
ErrorF("Display mode: Rootless Quartz -- Xplugin implementation\n"); // ErrorF("Display mode: Rootless Quartz -- Xplugin implementation\n");
CGGetActiveDisplayList(0, NULL, &displayCount); CGGetActiveDisplayList(0, NULL, &displayCount);