mirror of
https://github.com/X11Libre/xserver.git
synced 2026-09-27 21:22:26 +00:00
XQuartz: Pass along SIGINT and SIGTERM from the stub to X11.app
(cherry picked from commit 183ca5d68b4f34e248749f304ce140de11bd451b)
This commit is contained in:
parent
273df54685
commit
f12d7ad164
4 changed files with 27 additions and 36 deletions
|
|
@ -37,6 +37,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <pthread.h>
|
||||
#include <stdbool.h>
|
||||
#include <signal.h>
|
||||
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
|
|
@ -96,7 +97,6 @@ static pthread_t create_thread(void *func, void *arg) {
|
|||
return tid;
|
||||
}
|
||||
|
||||
#ifdef MACHO_STARTUP
|
||||
/*** Mach-O IPC Stuffs ***/
|
||||
|
||||
union MaxMsgSize {
|
||||
|
|
@ -303,6 +303,11 @@ kern_return_t do_request_fd_handoff_socket(mach_port_t port, string_t filename)
|
|||
return KERN_SUCCESS;
|
||||
}
|
||||
|
||||
kern_return_t do_request_pid(mach_port_t port, int *my_pid) {
|
||||
*my_pid = getpid();
|
||||
return KERN_SUCCESS;
|
||||
}
|
||||
|
||||
/*** Server Startup ***/
|
||||
kern_return_t do_start_x11_server(mach_port_t port, string_array_t argv,
|
||||
mach_msg_type_number_t argvCnt,
|
||||
|
|
@ -336,17 +341,11 @@ kern_return_t do_start_x11_server(mach_port_t port, string_array_t argv,
|
|||
}
|
||||
|
||||
int startup_trigger(int argc, char **argv, char **envp) {
|
||||
#else
|
||||
void *add_launchd_display_thread(void *data);
|
||||
|
||||
int main(int argc, char **argv, char **envp) {
|
||||
#endif
|
||||
Display *display;
|
||||
const char *s;
|
||||
|
||||
/* Take care of the case where we're called like a normal DDX */
|
||||
if(argc > 1 && argv[1][0] == ':') {
|
||||
#ifdef MACHO_STARTUP
|
||||
size_t i;
|
||||
kern_return_t kr;
|
||||
mach_port_t mp;
|
||||
|
|
@ -387,10 +386,6 @@ int main(int argc, char **argv, char **envp) {
|
|||
exit(EXIT_FAILURE);
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
#else
|
||||
create_thread(add_launchd_display_thread, NULL);
|
||||
return server_main(argc, argv, envp);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* If we have a process serial number and it's our only arg, act as if
|
||||
|
|
@ -424,7 +419,6 @@ int main(int argc, char **argv, char **envp) {
|
|||
return execute(command_from_prefs("startx_script", DEFAULT_STARTX));
|
||||
}
|
||||
|
||||
#ifdef MACHO_STARTUP
|
||||
/*** Main ***/
|
||||
int main(int argc, char **argv, char **envp) {
|
||||
Bool listenOnly = FALSE;
|
||||
|
|
@ -472,17 +466,6 @@ int main(int argc, char **argv, char **envp) {
|
|||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
#else
|
||||
|
||||
void *add_launchd_display_thread(void *data) {
|
||||
/* Start listening on the launchd fd */
|
||||
int launchd_fd = launchd_display_fd();
|
||||
if(launchd_fd != -1) {
|
||||
DarwinListenOnOpenFD(launchd_fd);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int execute(const char *command) {
|
||||
const char *newargv[7];
|
||||
|
|
|
|||
Loading…
Reference in a new issue