Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv484/src
Modified Files:
getname.c mswindow.c
Log Message:
Changing email address.
Finalizing changes list and cleaning up todo list for release.
Fix for messages that are printed outside viewable area - ScrollDC garbles scrolling
in such cases, so instead we shall use a full window redraw if the window is beyond
the client borders.
Index: getname.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/getname.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- getname.c 12 May 2006 01:58:37 -0000 1.6
+++ getname.c 13 Jan 2007 02:53:27 -0000 1.7
@@ -79,11 +79,11 @@
" No one takes responsibility for lost INL games etc.",
" Use at your own risk! If you don't like it, don't use it.",
"",
- "Comments, suggestions, bugreports to: williamb at its.caltech.edu",
+ "Comments, suggestions, bugreports to: billbalcerski at hotmail.com",
"",
"Include version and architecture info in bug reports",
"",
- "Patches to: williamb at its.caltech.edu",
+ "Patches to: billbalcerski at hotmail.com",
"",
};
int i, length;
Index: mswindow.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/mswindow.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -d -r1.40 -r1.41
--- mswindow.c 12 Jan 2007 18:06:55 -0000 1.40
+++ mswindow.c 13 Jan 2007 02:53:27 -0000 1.41
@@ -4539,6 +4539,9 @@
struct stringList *p;
int HiddenLines;
int y;
+ int clipped = 0;
+ RECT r;
+ WINDOWPLACEMENT loc;
FNHEADER_VOID;
if (!win->AddedStrings)
@@ -4546,6 +4549,8 @@
y = win->NumItems - win->TextHeight;
y = max (0, y);
+
+ loc.length = sizeof (WINDOWPLACEMENT); /* Have to set this */
// Just update scrollbar if we are looking back
if ((y - win->AddedStrings) > GetScrollPos (win->hwnd, SB_VERT))
@@ -4554,12 +4559,22 @@
win->AddedStrings = 0;
return;
}
- //Do full redraw if faster, only works for mapped windows
- if (win->AddedStrings > (win->TextHeight / 2) && W_IsMapped(window))
+ // For mapped windows, do full redraw if more than half of window content
+ // is changed, or if part of window is outside viewable area, because
+ // ScrollDC fails to properly scroll text in such cases
+ if (W_IsMapped(window))
{
- InvalidateRect (win->hwnd, NULL, FALSE);
- UpdateWindow (win->hwnd); //Generates paint msg, which calls RedrawScrolling
- return;
+ GetWindowPlacement (win->hwnd, &loc);
+ GetWindowRect (((Window *) baseWin)->hwnd, &r);
+ if (loc.rcNormalPosition.left < r.left || loc.rcNormalPosition.right > r.right
+ || loc.rcNormalPosition.top < r.top || loc.rcNormalPosition.bottom > r.bottom)
+ clipped = 1;
+ if (win->AddedStrings > (win->TextHeight / 2) || clipped)
+ {
+ InvalidateRect (win->hwnd, NULL, FALSE);
+ UpdateWindow (win->hwnd); //Generates paint msg, which calls RedrawScrolling
+ return;
+ }
}
//Setup the HDC