X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/538bfd1db93a9aac6c2bb52382bb7900042de092..c7bd96b8b0848ba5fabe6e0b36d94e4071c1638a:/mac/mac.c diff --git a/mac/mac.c b/mac/mac.c index ed73070a..4f7c2fcf 100644 --- a/mac/mac.c +++ b/mac/mac.c @@ -1,4 +1,4 @@ -/* $Id: mac.c,v 1.54 2003/03/06 23:44:47 ben Exp $ */ +/* $Id: mac.c,v 1.59 2003/05/10 12:27:38 ben Exp $ */ /* * Copyright (c) 1999, 2003 Ben Harris * All rights reserved. @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -194,8 +195,11 @@ static void mac_startup(void) { fatalbox("Unable to create menu bar."); SetMenuBar(menuBar); AppendResMenu(GetMenuHandle(mApple), 'DRVR'); - if (mac_gestalts.menuattr & gestaltMenuMgrAquaLayoutMask) + if (mac_gestalts.menuattr & gestaltMenuMgrAquaLayoutMask) { DeleteMenuItem(GetMenuHandle(mFile), iQuit); + /* Also delete the separator above the Quit item. */ + DeleteMenuItem(GetMenuHandle(mFile), iQuit - 1); + } mac_adjustmenus(); DrawMenuBar(); InitCursor(); @@ -266,6 +270,8 @@ static void mac_eventloop(void) { sk_poll(); if (!gotevent) mac_pollterm(); + if (mac_gestalts.apprvers >= 0x100 && mac_frontwindow() != NULL) + IdleControls(mac_frontwindow()); } DisposeRgn(cursrgn); } @@ -655,27 +661,22 @@ int agent_exists(void) return FALSE; } -void agent_query(void *in, int inlen, void **out, int *outlen) +int agent_query(void *in, int inlen, void **out, int *outlen, + void (*callback)(void *, void *, int), void *callback_ctx) { *out = NULL; *outlen = 0; + return 1; } /* Temporary null routines for testing. */ -/* - * FIXME: verify_ssh_host_key() should be passed a frontend handle, - * but backends have to have a terminal handle instead, because they - * pass it to from_backend(), so we accept a terminal handle here as - * well, and hope no-one tries to call us with sensible arguments. - */ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, char *keystr, char *fingerprint) { Str255 stuff; - Terminal *term = frontend; - Session *s = term->frontend; + Session *s = frontend; /* * This function is horribly wrong. For one thing, the alert @@ -684,9 +685,9 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, * should use the Notification Manager to wake up the user. In * any case, we shouldn't hold up processing of other connections' * data just because this one's waiting for the user. It should - * also handle a host key cache, of course, and see the note above - * about the "frontend" argument and the one below about closing - * the connection. All in all, a bit of a mess really. + * also handle a host key cache, of course, and see the note below + * about closing the connection. All in all, a bit of a mess + * really. */ stuff[0] = sprintf((char *)(&stuff[1]), @@ -773,6 +774,16 @@ void platform_get_x11_auth(char *display, int *proto, /* SGT: I have no idea whether Mac X servers need anything here. */ } +void update_specials_menu(void *frontend) +{ + Session *s = frontend; + WindowPtr front; + + front = mac_frontwindow(); + if (front != NULL && mac_windowsession(front) == s) + mac_adjustmenus(); +} + /* * Local Variables: * c-file-style: "simon"