dokopop source repository
Revision | 74a1d44a16c34e940f75b7145c7723fc5d30a9b1 (tree) |
---|---|
Time | 2017-11-05 17:09:47 |
Author | tnishi <sgm00353@nift...> |
Commiter | tnishi |
[C] Adobe Reader上で検索をすると、それ以降どのアプリ上でも検索できなくなる問題の暫定対策
@@ -313,6 +313,7 @@ char VxDpathName[256]; // HK95.vxd path | ||
313 | 313 | DWORD siPageSize = 0; |
314 | 314 | HWND hwndOrg = NULL; |
315 | 315 | HWND hwndAMODI = NULL; |
316 | +bool RequireHwndAMODI = false; | |
316 | 317 | bool OnlyAMODI = false; |
317 | 318 | bool tryAMODI = false; |
318 | 319 | bool MoveSend = false; |
@@ -890,8 +891,11 @@ int WINAPI Config2( const struct TDCHConfig *cfg ) | ||
890 | 891 | ScaleY = cfg->ScaleY; |
891 | 892 | NumPrevWords = cfg->UseNumPrev ? cfg->NumPrevWords : 1; |
892 | 893 | |
894 | + RequireHwndAMODI = false; | |
895 | + | |
893 | 896 | if (cfg->UseAMODI){ |
894 | 897 | if (!ExtAMODI){ |
898 | + RequireHwndAMODI = true; | |
895 | 899 | if (!hwndAMODI) |
896 | 900 | hwndAMODI = FindAMODI(); |
897 | 901 | } |
@@ -1196,6 +1200,21 @@ bool DoCapture(HWND hwnd, POINT pt, bool movesend, bool image_only, bool runOnLa | ||
1196 | 1200 | CursorPoint = ScreenPoint = pt; |
1197 | 1201 | ScreenToClient( hwnd, &CursorPoint ); |
1198 | 1202 | |
1203 | +#if 1 // acrobat reader上でclickするとhwndAMODIがnullになってしまう場合があるため(原因不明) | |
1204 | + // ・reader上ではmouse eventがピタッと止まる | |
1205 | + // ・reader上でclickしただけではnullにならない | |
1206 | + // ・reader上でctrl+clickすると、reader上からmouseを外すとnullになっている | |
1207 | + // ・reader上でshift+click, alt+click, ctrl+clickではnullにならない | |
1208 | + // ・設定をAlt+clickに変更すると、Alt+clickでnullになり、Ctrl+clickではnullにならない | |
1209 | + // まるでDokoPop!対策をしているかのようだ。いずれにせよ、mouse eventがまったく来ない、 | |
1210 | + // おそらくreaderのほうでmouse hookを呼ばないようにしているのだろう、 | |
1211 | + // なので、null原因が仮にわかったとしても、reader上では検索ができないはず | |
1212 | + if (RequireHwndAMODI){ | |
1213 | + if (!hwndAMODI) | |
1214 | + hwndAMODI = FindAMODI(); | |
1215 | + } | |
1216 | +#endif | |
1217 | + | |
1199 | 1218 | if (!image_only && !runOnLaunchedProc){ |
1200 | 1219 | //DBW("hwnd:%08X %d %d", (int)hwnd, CursorPoint.x, CursorPoint.y); |
1201 | 1220 | if ((!hwndAMODI && !ExtAMODI) || !OnlyAMODI){ |