Xquartz: General Cleanup
General code cleanup, whitespace, dead code removal, added missing prototypes.
Made Xquartz come to foreground later in startup, so it doesn't appear for Xquartz -version
(cherry picked from commit 36922e8ff4
)
This commit is contained in:
parent
7ef7727b80
commit
42802a8e6b
|
@ -238,6 +238,10 @@ static int indexForScanlinePad[ 65 ] = {
|
|||
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
void DarwinHandleGUI(int argc, char **argv, char **envp);
|
||||
#endif
|
||||
|
||||
int
|
||||
main(int argc, char *argv[], char *envp[])
|
||||
{
|
||||
|
|
|
@ -64,40 +64,38 @@ extern X11Application *X11App;
|
|||
|
||||
#endif /* __OBJC__ */
|
||||
|
||||
extern void X11ApplicationSetWindowMenu (int nitems, const char **items,
|
||||
void X11ApplicationSetWindowMenu (int nitems, const char **items,
|
||||
const char *shortcuts);
|
||||
extern void X11ApplicationSetWindowMenuCheck (int idx);
|
||||
extern void X11ApplicationSetFrontProcess (void);
|
||||
extern void X11ApplicationSetCanQuit (int state);
|
||||
extern void X11ApplicationServerReady (void);
|
||||
extern void X11ApplicationShowHideMenubar (int state);
|
||||
void X11ApplicationSetWindowMenuCheck (int idx);
|
||||
void X11ApplicationSetFrontProcess (void);
|
||||
void X11ApplicationSetCanQuit (int state);
|
||||
void X11ApplicationServerReady (void);
|
||||
void X11ApplicationShowHideMenubar (int state);
|
||||
|
||||
extern void X11ApplicationMain (int argc, const char *argv[],
|
||||
void (*server_thread) (void *),
|
||||
void *server_arg);
|
||||
void X11ApplicationMain(int argc, char **argv, void (*server_thread) (void *), void *server_arg);
|
||||
|
||||
extern int X11EnableKeyEquivalents;
|
||||
extern int quartzHasRoot, quartzEnableRootless;
|
||||
|
||||
#define APP_PREFS "org.x.X11"
|
||||
|
||||
#define PREFS_APPSMENU "apps_menu"
|
||||
#define PREFS_FAKEBUTTONS "enable_fake_buttons"
|
||||
#define PREFS_SYSBEEP "enable_system_beep"
|
||||
#define PREFS_KEYEQUIVS "enable_key_equivalents"
|
||||
#define PREFS_KEYMAP_FILE "keymap_file"
|
||||
#define PREFS_SYNC_KEYMAP "sync_keymap"
|
||||
#define PREFS_DEPTH "depth"
|
||||
#define PREFS_NO_AUTH "no_auth"
|
||||
#define PREFS_NO_TCP "nolisten_tcp"
|
||||
#define PREFS_DONE_XINIT_CHECK "done_xinit_check"
|
||||
#define PREFS_NO_QUIT_ALERT "no_quit_alert"
|
||||
#define PREFS_FAKE_BUTTON2 "fake_button2"
|
||||
#define PREFS_FAKE_BUTTON3 "fake_button3"
|
||||
#define PREFS_ROOTLESS "rootless"
|
||||
#define PREFS_FULLSCREEN_HOTKEYS "fullscreen_hotkeys"
|
||||
#define PREFS_SWAP_ALT_META "swap_alt_meta"
|
||||
#define PREFS_XP_OPTIONS "xp_options"
|
||||
#define PREFS_ENABLE_STEREO "enable_stereo"
|
||||
#define PREFS_APPSMENU "apps_menu"
|
||||
#define PREFS_FAKEBUTTONS "enable_fake_buttons"
|
||||
#define PREFS_SYSBEEP "enable_system_beep"
|
||||
#define PREFS_KEYEQUIVS "enable_key_equivalents"
|
||||
#define PREFS_KEYMAP_FILE "keymap_file"
|
||||
#define PREFS_SYNC_KEYMAP "sync_keymap"
|
||||
#define PREFS_DEPTH "depth"
|
||||
#define PREFS_NO_AUTH "no_auth"
|
||||
#define PREFS_NO_TCP "nolisten_tcp"
|
||||
#define PREFS_DONE_XINIT_CHECK "done_xinit_check"
|
||||
#define PREFS_NO_QUIT_ALERT "no_quit_alert"
|
||||
#define PREFS_FAKE_BUTTON2 "fake_button2"
|
||||
#define PREFS_FAKE_BUTTON3 "fake_button3"
|
||||
#define PREFS_ROOTLESS "rootless"
|
||||
#define PREFS_FULLSCREEN_HOTKEYS "fullscreen_hotkeys"
|
||||
#define PREFS_SWAP_ALT_META "swap_alt_meta"
|
||||
#define PREFS_XP_OPTIONS "xp_options"
|
||||
#define PREFS_ENABLE_STEREO "enable_stereo"
|
||||
|
||||
#endif /* X11APPLICATION_H */
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#endif
|
||||
|
||||
#include "quartzCommon.h"
|
||||
#include "quartzForeground.h"
|
||||
|
||||
#import "X11Application.h"
|
||||
#include <Carbon/Carbon.h>
|
||||
|
@ -82,8 +83,8 @@ static mach_port_t _port;
|
|||
static void send_nsevent (NSEventType type, NSEvent *e);
|
||||
|
||||
/* Quartz mode initialization routine. This is often dynamically loaded
|
||||
but is statically linked into this X server. */
|
||||
extern Bool QuartzModeBundleInit(void);
|
||||
but is statically linked into this X server. */
|
||||
Bool QuartzModeBundleInit(void);
|
||||
|
||||
static void init_ports (void) {
|
||||
kern_return_t r;
|
||||
|
@ -789,44 +790,43 @@ environment?", @"Startup xinitrc dialog");
|
|||
[X11App prefs_synchronize];
|
||||
}
|
||||
|
||||
void X11ApplicationMain (int argc, const char *argv[],
|
||||
void (*server_thread) (void *), void *server_arg) {
|
||||
NSAutoreleasePool *pool;
|
||||
|
||||
void X11ApplicationMain (int argc, char **argv, void (*server_thread) (void *), void *server_arg) {
|
||||
NSAutoreleasePool *pool;
|
||||
|
||||
#ifdef DEBUG
|
||||
while (access ("/tmp/x11-block", F_OK) == 0) sleep (1);
|
||||
while (access ("/tmp/x11-block", F_OK) == 0) sleep (1);
|
||||
#endif
|
||||
|
||||
pool = [[NSAutoreleasePool alloc] init];
|
||||
X11App = (X11Application *) [X11Application sharedApplication];
|
||||
init_ports ();
|
||||
[NSApp read_defaults];
|
||||
[NSBundle loadNibNamed:@"main" owner:NSApp];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:NSApp
|
||||
pool = [[NSAutoreleasePool alloc] init];
|
||||
X11App = (X11Application *) [X11Application sharedApplication];
|
||||
init_ports ();
|
||||
[NSApp read_defaults];
|
||||
[NSBundle loadNibNamed:@"main" owner:NSApp];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:NSApp
|
||||
selector:@selector (became_key:)
|
||||
name:NSWindowDidBecomeKeyNotification object:nil];
|
||||
check_xinitrc ();
|
||||
|
||||
/*
|
||||
* The xpr Quartz mode is statically linked into this server.
|
||||
* Initialize all the Quartz functions.
|
||||
*/
|
||||
QuartzModeBundleInit();
|
||||
|
||||
/* Calculate the height of the menubar so we can avoid it. */
|
||||
aquaMenuBarHeight = NSHeight([[NSScreen mainScreen] frame]) -
|
||||
check_xinitrc ();
|
||||
|
||||
/*
|
||||
* The xpr Quartz mode is statically linked into this server.
|
||||
* Initialize all the Quartz functions.
|
||||
*/
|
||||
QuartzModeBundleInit();
|
||||
|
||||
/* Calculate the height of the menubar so we can avoid it. */
|
||||
aquaMenuBarHeight = NSHeight([[NSScreen mainScreen] frame]) -
|
||||
NSMaxY([[NSScreen mainScreen] visibleFrame]);
|
||||
|
||||
if (!create_thread (server_thread, server_arg)) {
|
||||
ErrorF("can't create secondary thread\n");
|
||||
exit (1);
|
||||
}
|
||||
|
||||
[NSApp run];
|
||||
|
||||
/* not reached */
|
||||
}
|
||||
if (!create_thread (server_thread, server_arg)) {
|
||||
ErrorF("can't create secondary thread\n");
|
||||
exit (1);
|
||||
}
|
||||
|
||||
QuartzMoveToForeground();
|
||||
|
||||
[NSApp run];
|
||||
/* not reached */
|
||||
}
|
||||
|
||||
/* event conversion */
|
||||
|
||||
|
|
|
@ -78,8 +78,4 @@
|
|||
|
||||
#endif /* __OBJC__ */
|
||||
|
||||
extern void X11ControllerMain (int argc, const char *argv[],
|
||||
void (*server_thread) (void *),
|
||||
void *server_arg);
|
||||
|
||||
#endif /* X11CONTROLLER_H */
|
||||
|
|
|
@ -337,7 +337,7 @@
|
|||
/* Setup environment */
|
||||
temp = getenv("DISPLAY");
|
||||
if (temp == NULL || temp[0] == 0) {
|
||||
snprintf(buf, sizeof(buf), ":%s", display);
|
||||
snprintf(buf, sizeof(buf), ":%s", display);
|
||||
setenv("DISPLAY", buf, TRUE);
|
||||
}
|
||||
|
||||
|
@ -741,9 +741,3 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
|
|||
}
|
||||
|
||||
@end
|
||||
|
||||
void X11ControllerMain (int argc, const char *argv[],
|
||||
void (*server_thread) (void *), void *server_arg)
|
||||
{
|
||||
X11ApplicationMain (argc, argv, server_thread, server_arg);
|
||||
}
|
||||
|
|
|
@ -715,16 +715,6 @@ int ddxProcessArgument( int argc, char *argv[], int i )
|
|||
return 1;
|
||||
}
|
||||
|
||||
if ( !strcmp( argv[i], "-quartz" ) ) {
|
||||
ErrorF( "Running in parallel with Mac OS X Quartz window server.\n" );
|
||||
return 1;
|
||||
}
|
||||
|
||||
// The Mac OS X front end uses this argument, which we just ignore here.
|
||||
if ( !strcmp( argv[i], "-nostartx" ) ) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// This command line arg is passed when launched from the Aqua GUI.
|
||||
if ( !strncmp( argv[i], "-psn_", 5 ) ) {
|
||||
return 1;
|
||||
|
@ -876,9 +866,9 @@ void ddxUseMsg( void )
|
|||
ErrorF("-keymap <file> : read the keymapping from a file instead of the kernel.\n");
|
||||
ErrorF("-version : show the server version.\n");
|
||||
ErrorF("\n");
|
||||
ErrorF("Quartz modes (Experimental / In Development):\n");
|
||||
ErrorF("-fullscreen : run full screen in parallel with Mac OS X window server.\n");
|
||||
ErrorF("-rootless : run rootless inside Mac OS X window server.\n");
|
||||
// ErrorF("Quartz modes (Experimental / In Development):\n");
|
||||
// ErrorF("-fullscreen : run full screen in parallel with Mac OS X window server.\n");
|
||||
// ErrorF("-rootless : run rootless inside Mac OS X window server.\n");
|
||||
ErrorF("\n");
|
||||
ErrorF("Options ignored in rootless mode:\n");
|
||||
ErrorF("-size <height> <width> : use a screen resolution of <height> x <width>.\n");
|
||||
|
@ -896,7 +886,8 @@ void ddxGiveUp( void )
|
|||
{
|
||||
ErrorF( "Quitting XQuartz...\n" );
|
||||
|
||||
QuartzGiveUp();
|
||||
//if (!quartzRootless)
|
||||
// quartzProcs->ReleaseScreens();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
|
||||
// Shared global variables for Quartz modes
|
||||
int quartzEventWriteFD = -1;
|
||||
int quartzStartClients = 1;
|
||||
int quartzRootless = -1;
|
||||
int quartzUseSysBeep = 0;
|
||||
int quartzUseAGL = 1;
|
||||
|
@ -408,12 +407,10 @@ QuartzMessageServerThread(
|
|||
* QuartzProcessEvent
|
||||
* Process Quartz specific events.
|
||||
*/
|
||||
void QuartzProcessEvent(
|
||||
xEvent *xe)
|
||||
{
|
||||
void QuartzProcessEvent(xEvent *xe) {
|
||||
switch (xe->u.u.type) {
|
||||
case kXDarwinControllerNotify:
|
||||
DEBUG_LOG("kXDarwinControllerNotify\n");
|
||||
DEBUG_LOG("kXDarwinControllerNotify\n");
|
||||
AppleWMSendEvent(AppleWMControllerNotify,
|
||||
AppleWMControllerNotifyMask,
|
||||
xe->u.clientMessage.u.l.longs0,
|
||||
|
@ -421,7 +418,7 @@ void QuartzProcessEvent(
|
|||
break;
|
||||
|
||||
case kXDarwinPasteboardNotify:
|
||||
DEBUG_LOG("kXDarwinPasteboardNotify\n");
|
||||
DEBUG_LOG("kXDarwinPasteboardNotify\n");
|
||||
AppleWMSendEvent(AppleWMPasteboardNotify,
|
||||
AppleWMPasteboardNotifyMask,
|
||||
xe->u.clientMessage.u.l.longs0,
|
||||
|
@ -429,7 +426,7 @@ void QuartzProcessEvent(
|
|||
break;
|
||||
|
||||
case kXDarwinActivate:
|
||||
DEBUG_LOG("kXDarwinActivate\n");
|
||||
DEBUG_LOG("kXDarwinActivate\n");
|
||||
QuartzShow(xe->u.keyButtonPointer.rootX,
|
||||
xe->u.keyButtonPointer.rootY);
|
||||
AppleWMSendEvent(AppleWMActivationNotify,
|
||||
|
@ -438,7 +435,7 @@ void QuartzProcessEvent(
|
|||
break;
|
||||
|
||||
case kXDarwinDeactivate:
|
||||
DEBUG_LOG("kXDarwinDeactivate\n");
|
||||
DEBUG_LOG("kXDarwinDeactivate\n");
|
||||
AppleWMSendEvent(AppleWMActivationNotify,
|
||||
AppleWMActivationNotifyMask,
|
||||
AppleWMIsInactive, 0);
|
||||
|
@ -446,23 +443,23 @@ void QuartzProcessEvent(
|
|||
break;
|
||||
|
||||
case kXDarwinDisplayChanged:
|
||||
DEBUG_LOG("kXDarwinDisplayChanged\n");
|
||||
DEBUG_LOG("kXDarwinDisplayChanged\n");
|
||||
QuartzUpdateScreens();
|
||||
break;
|
||||
|
||||
case kXDarwinWindowState:
|
||||
DEBUG_LOG("kXDarwinWindowState\n");
|
||||
DEBUG_LOG("kXDarwinWindowState\n");
|
||||
RootlessNativeWindowStateChanged(xe->u.clientMessage.u.l.longs0,
|
||||
xe->u.clientMessage.u.l.longs1);
|
||||
break;
|
||||
|
||||
case kXDarwinWindowMoved:
|
||||
DEBUG_LOG("kXDarwinWindowMoved\n");
|
||||
RootlessNativeWindowMoved ((WindowPtr)xe->u.clientMessage.u.l.longs0);
|
||||
DEBUG_LOG("kXDarwinWindowMoved\n");
|
||||
RootlessNativeWindowMoved ((WindowPtr)xe->u.clientMessage.u.l.longs0);
|
||||
break;
|
||||
|
||||
case kXDarwinToggleFullscreen:
|
||||
DEBUG_LOG("kXDarwinToggleFullscreen\n");
|
||||
DEBUG_LOG("kXDarwinToggleFullscreen\n");
|
||||
#ifdef DARWIN_DDX_MISSING
|
||||
if (quartzEnableRootless) QuartzSetFullscreen(!quartzHasRoot);
|
||||
else if (quartzHasRoot) QuartzHide();
|
||||
|
@ -473,6 +470,7 @@ void QuartzProcessEvent(
|
|||
break;
|
||||
|
||||
case kXDarwinSetRootless:
|
||||
DEBUG_LOG("kXDarwinSetRootless\n");
|
||||
#ifdef DARWIN_DDX_MISSING
|
||||
QuartzSetRootless(xe->u.clientMessage.u.l.longs0);
|
||||
if (!quartzEnableRootless && !quartzHasRoot) QuartzHide();
|
||||
|
@ -498,34 +496,11 @@ void QuartzProcessEvent(
|
|||
break;
|
||||
|
||||
case kXDarwinBringAllToFront:
|
||||
DEBUG_LOG("kXDarwinBringAllToFront\n");
|
||||
RootlessOrderAllWindows();
|
||||
DEBUG_LOG("kXDarwinBringAllToFront\n");
|
||||
RootlessOrderAllWindows();
|
||||
break;
|
||||
|
||||
default:
|
||||
ErrorF("Unknown application defined event type %d.\n", xe->u.u.type);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* QuartzGiveUp
|
||||
* Cleanup before X server shutdown
|
||||
* Release the screen and restore the Aqua cursor.
|
||||
*/
|
||||
void QuartzGiveUp(void)
|
||||
{
|
||||
#if 0
|
||||
// Trying to switch cursors when quitting causes deadlock
|
||||
int i;
|
||||
|
||||
for (i = 0; i < screenInfo.numScreens; i++) {
|
||||
if (screenInfo.screens[i]) {
|
||||
QuartzSuspendXCursor(screenInfo.screens[i]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!quartzRootless)
|
||||
quartzProcs->ReleaseScreens();
|
||||
}
|
||||
|
|
|
@ -64,7 +64,6 @@ typedef struct {
|
|||
|
||||
// Data stored at startup for Cocoa front end
|
||||
extern int quartzEventWriteFD;
|
||||
extern int quartzStartClients;
|
||||
|
||||
// User preferences used by Quartz modes
|
||||
extern int quartzRootless;
|
||||
|
|
|
@ -34,8 +34,8 @@
|
|||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <CoreFoundation/CoreFoundation.h>
|
||||
#include "quartzForeground.h"
|
||||
#include "quartzCommon.h"
|
||||
#include "X11Application.h"
|
||||
#include "darwin.h"
|
||||
#include "quartz.h"
|
||||
#include "opaque.h"
|
||||
|
@ -52,9 +52,6 @@
|
|||
char **envpGlobal; // argcGlobal and argvGlobal
|
||||
// are from dix/globals.c
|
||||
|
||||
|
||||
void X11ControllerMain(int argc, char *argv[], void (*server_thread) (void *), void *server_arg);
|
||||
|
||||
static void server_thread (void *arg) {
|
||||
extern int main(int argc, char **argv, char **envp);
|
||||
exit (main (argcGlobal, argvGlobal, envpGlobal));
|
||||
|
@ -68,22 +65,16 @@ static void server_thread (void *arg) {
|
|||
* server. On the second call this function loads the user
|
||||
* preferences set by the Mac OS X front end.
|
||||
*/
|
||||
void DarwinHandleGUI(
|
||||
int argc,
|
||||
char *argv[],
|
||||
char *envp[] )
|
||||
{
|
||||
void DarwinHandleGUI(int argc, char **argv, char **envp) {
|
||||
static Bool been_here = FALSE;
|
||||
int i;
|
||||
int fd[2];
|
||||
|
||||
QuartzMoveToForeground();
|
||||
|
||||
if (been_here) {
|
||||
return;
|
||||
}
|
||||
been_here = TRUE;
|
||||
|
||||
|
||||
// Make a pipe to pass events
|
||||
assert( pipe(fd) == 0 );
|
||||
darwinEventReadFD = fd[0];
|
||||
|
@ -95,26 +86,14 @@ void DarwinHandleGUI(
|
|||
argvGlobal = argv;
|
||||
envpGlobal = envp;
|
||||
|
||||
quartzStartClients = 1;
|
||||
for (i = 1; i < argc; i++) {
|
||||
// Display version info without starting Mac OS X UI if requested
|
||||
if (!strcmp( argv[i], "-showconfig" ) || !strcmp( argv[i], "-version" )) {
|
||||
DarwinPrintBanner();
|
||||
exit(0);
|
||||
}
|
||||
|
||||
// Determine if we need to start X clients
|
||||
// and what display mode to use
|
||||
if (!strcmp(argv[i], "-nostartx")) {
|
||||
quartzStartClients = 0;
|
||||
} else if (!strcmp( argv[i], "-fullscreen")) {
|
||||
quartzRootless = 0;
|
||||
} else if (!strcmp( argv[i], "-rootless")) {
|
||||
quartzRootless = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Initially I ran the X server on the main thread, and received
|
||||
events on the second thread. But now we may be using Carbon,
|
||||
that needs to run on the main thread. (Otherwise, when it's
|
||||
|
@ -127,6 +106,6 @@ void DarwinHandleGUI(
|
|||
extern void _InitHLTB(void);
|
||||
|
||||
_InitHLTB();
|
||||
X11ControllerMain(argc, argv, server_thread, NULL);
|
||||
X11ApplicationMain(argc, argv, server_thread, NULL);
|
||||
exit(0);
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
|
||||
#include "screenint.h"
|
||||
|
||||
extern Bool QuartzModeBundleInit(void);
|
||||
Bool QuartzModeBundleInit(void);
|
||||
|
||||
void AppleDRIExtensionInit(void);
|
||||
void xprAppleWMInit(void);
|
||||
|
|
Loading…
Reference in New Issue
Block a user