[PATCH 23/45] [WinHelp]: the latest pages must be at the top of the list
Eric Pouech
eric.pouech at orange.fr
Sun Mar 23 04:19:39 CDT 2008
A+
---
programs/winhelp/winhelp.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/programs/winhelp/winhelp.c b/programs/winhelp/winhelp.c
index c9d70c4..3a96bf1 100644
--- a/programs/winhelp/winhelp.c
+++ b/programs/winhelp/winhelp.c
@@ -487,16 +487,17 @@ static void WINHELP_AddHistory(WINHELP_WINDOW* win, HLPFILE_PAGE* page)
if (i == Globals.history.index)
{
num = sizeof(Globals.history.set) / sizeof(Globals.history.set[0]);
+ /* we're full, remove latest entry */
if (Globals.history.index == num)
{
- /* we're full, remove latest entry */
- HLPFILE_FreeHlpFile(Globals.history.set[0].page->file);
- memmove(&Globals.history.set[0], &Globals.history.set[1],
- (num - 1) * sizeof(Globals.history.set[0]));
+ HLPFILE_FreeHlpFile(Globals.history.set[num - 1].page->file);
Globals.history.index--;
}
- Globals.history.set[Globals.history.index].page = page;
- Globals.history.set[Globals.history.index++].wininfo = win->info;
+ memmove(&Globals.history.set[1], &Globals.history.set[0],
+ Globals.history.index * sizeof(Globals.history.set[0]));
+ Globals.history.set[0].page = page;
+ Globals.history.set[0].wininfo = win->info;
+ Globals.history.index++;
page->file->wRefCount++;
if (win->hHistoryWnd) InvalidateRect(win->hHistoryWnd, NULL, TRUE);
}
@@ -1142,7 +1143,8 @@ static LRESULT CALLBACK WINHELP_HistoryWndProc(HWND hWnd, UINT msg, WPARAM wPara
for (i = 0; i < Globals.history.index; i++)
{
- TextOut(hDc, 0, i * tm.tmHeight, Globals.history.set[i].page->lpszTitle,
+ TextOut(hDc, 0, i * tm.tmHeight,
+ Globals.history.set[i].page->lpszTitle,
strlen(Globals.history.set[i].page->lpszTitle));
}
EndPaint(hWnd, &ps);
More information about the wine-patches
mailing list