Fix game-list highight error when filtered (WB)
authorH.G. Muller <h.g.muller@hccnet.nl>
Wed, 13 Apr 2011 13:48:35 +0000 (15:48 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Thu, 14 Apr 2011 19:30:17 +0000 (21:30 +0200)
When the gamelist was filtered, the game that was highlingted was the
n-th game in the list rather than the n-th game in the file, when the
latter was loaded (and n did not exceed the number of filtered games).
This is fixed now by searching for the line in the listbox that starts
with the game number n, rather than taking the n-th line.

winboard/wgamelist.c

index 48aa85d..80ce9b6 100644 (file)
@@ -406,9 +406,15 @@ VOID GameListPopDown(void)
 \r
 VOID GameListHighlight(int index)\r
 {\r
+  char buf[MSG_SIZ];\r
+  int i, res = 0;\r
   if (gameListDialog == NULL) return;\r
+  for(i=0; res != LB_ERR; i++) {\r
+        res = SendDlgItemMessage( gameListDialog, OPT_GameListText, LB_GETTEXT, i, (LPARAM)buf );\r
+        if(index <= atoi( buf )) break;\r
+  }\r
   SendDlgItemMessage(gameListDialog, OPT_GameListText,\r
-    LB_SETCURSEL, index - 1, 0);\r
+    LB_SETCURSEL, i, 0);\r
 }\r
 \r
 \r