Clip host resize requests to the size of the desktop.
authorben <ben@cda61777-01e9-0310-a592-d414129be87e>
Tue, 11 Feb 2003 23:10:34 +0000 (23:10 +0000)
committerben <ben@cda61777-01e9-0310-a592-d414129be87e>
Tue, 11 Feb 2003 23:10:34 +0000 (23:10 +0000)
git-svn-id: svn://svn.tartarus.org/sgt/putty@2835 cda61777-01e9-0310-a592-d414129be87e

mac/README.mac
mac/macterm.c

index 54cb666..1c0de3f 100644 (file)
@@ -1,4 +1,4 @@
-$Id: README.mac,v 1.26 2003/02/10 23:49:58 ben Exp $
+$Id: README.mac,v 1.27 2003/02/11 23:10:34 ben Exp $
 
 Information about PuTTY for the Mac OS
 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@@ -77,7 +77,6 @@ Known bugs:
 Unimplemented features (should be done before release):
  * TCP urgent data.
  * Listening sockets.
- * Clipping host resize requests to screen size.
  * Changing font size in reponse to resize requests.
  * Full screen mode.
  * Session configuration.
index fbf9412..d0abf66 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: macterm.c,v 1.69 2003/02/07 01:38:12 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
@@ -1477,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);
 }