/*\r
* wedittags.c -- EditTags window for WinBoard\r
*\r
- * Copyright 1995, 2009, 2010, 2011 Free Software Foundation, Inc.\r
+ * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.\r
*\r
* Enhancements Copyright 2005 Alessandro Scotti\r
*\r
GetClientRect(hDlg, &rect);\r
sizeX = rect.right;\r
sizeY = rect.bottom;\r
+ SendDlgItemMessage( hDlg, OPT_TagsText, EM_SETEVENTMASK, 0, ENM_MOUSEEVENTS );\r
if (wpTags.x != CW_USEDEFAULT && wpTags.y != CW_USEDEFAULT &&\r
wpTags.width != CW_USEDEFAULT && wpTags.height != CW_USEDEFAULT) {\r
WINDOWPLACEMENT wp;\r
case WM_COMMAND:\r
switch (LOWORD(wParam)) {\r
case IDOK:\r
+ case OPT_TagsSave:\r
if (canEditTags) {\r
char *p, *q;\r
/* Read changed options from the dialog box */\r
}\r
*p = NULLCHAR; err = 0;\r
if(resPtr) *resPtr = strdup(str); else\r
- if(bookUp) SaveToBook(str); else\r
+ if(bookUp) SaveToBook(str), DisplayBook(currentMove); else\r
err = ReplaceTags(str, &gameInfo);\r
if (err) DisplayError(_("Error replacing tags."), err);\r
\r
free(str);\r
}\r
- TagsPopDown();\r
+ if(LOWORD(wParam) == IDOK) TagsPopDown();\r
return TRUE;\r
\r
case IDCANCEL:\r
}\r
break;\r
\r
+ case WM_NOTIFY: // [HGM] vari: cloned from whistory.c\r
+ if( wParam == OPT_TagsText ) {\r
+ MSGFILTER * lpMF = (MSGFILTER *) lParam;\r
+\r
+ if( lpMF->msg == WM_RBUTTONDOWN ) {\r
+ POINTL pt;\r
+ LRESULT index;\r
+\r
+ pt.x = LOWORD( lpMF->lParam );\r
+ pt.y = HIWORD( lpMF->lParam );\r
+\r
+ index = SendDlgItemMessage( hDlg, OPT_TagsText, EM_CHARFROMPOS, 0, (LPARAM) &pt );\r
+\r
+ hwndText = GetDlgItem(hDlg, OPT_TagsText); // cloned from above\r
+ len = GetWindowTextLength(hwndText);\r
+ str = (char *) malloc(len + 1);\r
+ GetWindowText(hwndText, str, len + 1);\r
+ if(bookUp) PlayBookMove(str, index);\r
+ free(str);\r
+\r
+ /* Zap the message for good: apparently, returning non-zero is not enough */\r
+ lpMF->msg = WM_USER;\r
+\r
+ return TRUE;\r
+ }\r
+ }\r
+ break;\r
+\r
case WM_SIZE:\r
newSizeX = LOWORD(lParam);\r
newSizeY = HIWORD(lParam);\r
if (editTagsDialog) {\r
SendMessage(editTagsDialog, WM_INITDIALOG, 0, 0);\r
ShowWindow(editTagsDialog, SW_SHOW);\r
+ if(bookUp) SetFocus(hwndMain);\r
} else {\r
lpProc = MakeProcInstance((FARPROC)EditTagsDialog, hInst);\r
CreateDialog(hInst, MAKEINTRESOURCE(DLG_EditTags),\r