]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - mac/macterm.c
Clip host resize requests to the size of the desktop.
[PuTTY.git] / mac / macterm.c
index 52c33b867675865ab7766721e33b698e0b555188..d0abf667ea4529401a1cf6d0dcca811511d60b72 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: macterm.c,v 1.68 2003/02/04 23:39:26 ben Exp $ */
+/* $Id: macterm.c,v 1.70 2003/02/11 23:10:34 ben Exp $ */
 /*
  * Copyright (c) 1999 Simon Tatham
  * Copyright (c) 1999, 2002 Ben Harris
@@ -135,7 +135,7 @@ void mac_startsession(Session *s)
        ActivatePalette(s->window);
     }
 
-    s->logctx = log_init(s, &s->cfg);
+    s->logctx = log_init(s->term, &s->cfg);
     term_provide_logctx(s->term, s->logctx);
 
     errmsg = s->back->init(s->term, &s->backhandle, &s->cfg, s->cfg.host,
@@ -462,6 +462,9 @@ void mac_adjusttermmenus(WindowPtr window) {
        EnableItem(menu, iPaste);
     DisableItem(menu, iClear);
     EnableItem(menu, iSelectAll);
+    menu = GetMenuHandle(mWindow);
+    EnableItem(menu, 0);
+    EnableItem(menu, iShowEventLog);
 }
 
 void mac_menuterm(WindowPtr window, short menu, short item) {
@@ -478,6 +481,14 @@ void mac_menuterm(WindowPtr window, short menu, short item) {
            term_do_paste(s->term);
            break;
        }
+       break;
+      case mWindow:
+       switch(item) {
+         case iShowEventLog:
+           mac_showeventlog(s);
+           break;
+       }
+       break;
     }
 }
            
@@ -986,6 +997,7 @@ void mac_closeterm(WindowPtr window)
     if (s->uni_to_font != NULL)
        DisposeUnicodeToTextInfo(&s->uni_to_font);
     term_free(s->term);
+    mac_freeeventlog(s);
     sfree((WinInfo *)GetWRefCon(s->window));
     DisposeWindow(s->window);
     DisposePalette(s->palette);
@@ -1465,9 +1477,24 @@ void set_raw_mouse_mode(void *frontend, int activate)
 /*
  * Resize the window at the emulator's request
  */
-void request_resize(void *frontend, int w, int h) {
+void request_resize(void *frontend, int w, int h)
+{
     Session *s = frontend;
+    RgnHandle grayrgn;
+    Rect graybox;
+    int wlim, hlim;
 
+    /* Arbitrarily clip to the size of the desktop. */
+    grayrgn = GetGrayRgn();
+#if TARGET_API_MAC_CARBON
+    GetRegionBounds(grayrgn, &graybox);
+#else
+    graybox = (*grayrgn)->rgnBBox;
+#endif
+    wlim = (graybox.right - graybox.left) / s->font_width;
+    hlim = (graybox.bottom - graybox.top) / s->font_height;
+    if (w > wlim) w = wlim;
+    if (h > hlim) h = hlim;
     term_size(s->term, h, w, s->cfg.savelines);
     mac_initfont(s);
 }
@@ -1729,11 +1756,6 @@ void do_scroll(Context ctx, int topline, int botline, int lines) {
     DisposeRgn(update);
 }
 
-void logevent(void *frontend, char *str) {
-
-    fprintf(stderr, "%s\n", str);
-}
-
 /* Dummy routine, only required in plink. */
 void ldisc_update(void *frontend, int echo, int edit)
 {