X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/bbb7298cff7190e07a6e6f2fc6a0bd345064e233..0e9ce565a659cf20f1d9d83c9f0d4236fd78f8e2:/mac/macevlog.c diff --git a/mac/macevlog.c b/mac/macevlog.c index bd7e8556..7eb047e9 100644 --- a/mac/macevlog.c +++ b/mac/macevlog.c @@ -1,4 +1,4 @@ -/* $Id: macevlog.c,v 1.3 2003/02/19 01:03:47 ben Exp $ */ +/* $Id: macevlog.c,v 1.5 2003/02/23 13:00:38 ben Exp $ */ /* * Copyright (c) 2003 Ben Harris * All rights reserved. @@ -46,6 +46,7 @@ static void mac_clickeventlog(WindowPtr, EventRecord *); static void mac_activateeventlog(WindowPtr, EventRecord *); static void mac_groweventlog(WindowPtr, EventRecord *); static void mac_updateeventlog(WindowPtr); +static void mac_closeeventlog(WindowPtr); static void mac_createeventlog(Session *s) { @@ -65,6 +66,7 @@ static void mac_createeventlog(Session *s) wi->activate = &mac_activateeventlog; wi->grow = &mac_groweventlog; wi->update = &mac_updateeventlog; + wi->close = &mac_closeeventlog; SetWRefCon(s->eventlog_window, (long)wi); GetPort(&saveport); SetPort((GrafPtr)GetWindowPort(s->eventlog_window)); @@ -86,7 +88,6 @@ static void mac_createeventlog(Session *s) #else (*s->eventlog)->selFlags = lExtendDrag | lNoDisjoint | lNoExtend; #endif - ShowWindow(s->eventlog_window); } void mac_freeeventlog(Session *s) @@ -110,7 +111,7 @@ void logevent(void *frontend, char *str) { Terminal *term = frontend; Session *s = term->frontend; - ListBounds bounds; + ListBounds bounds, visible; Cell cell = { 0, 0 }; if (s->eventlog == NULL) @@ -120,12 +121,18 @@ void logevent(void *frontend, char *str) #if TARGET_API_MAC_CARBON GetListDataBounds(s->eventlog, &bounds); + GetListVisibleCells(s->eventlog, &visible); #else bounds = (*s->eventlog)->dataBounds; + visible = (*s->eventlog)->visible; #endif + cell.v = bounds.bottom; LAddRow(1, cell.v, s->eventlog); LSetCell(str, strlen(str), cell, s->eventlog); + /* ">=" and "2" because there can be a blank cell below the last one. */ + if (visible.bottom >= bounds.bottom) + LScroll(0, 2, s->eventlog); } static void mac_draweventloggrowicon(Session *s) @@ -246,9 +253,16 @@ static void mac_updateeventlog(WindowPtr window) EndUpdate(window); } +static void mac_closeeventlog(WindowPtr window) +{ + + HideWindow(window); +} + void mac_showeventlog(Session *s) { + SelectWindow(s->eventlog_window); ShowWindow(s->eventlog_window); }