• R/O
  • HTTP
  • SSH
  • HTTPS

dokopop: Commit

dokopop source repository


Commit MetaInfo

Revision74a1d44a16c34e940f75b7145c7723fc5d30a9b1 (tree)
Time2017-11-05 17:09:47
Authortnishi <sgm00353@nift...>
Commitertnishi

Log Message

[C] Adobe Reader上で検索をすると、それ以降どのアプリ上でも検索できなくなる問題の暫定対策

Change Summary

Incremental Difference

--- a/DCHook/DCHook.cpp
+++ b/DCHook/DCHook.cpp
@@ -313,6 +313,7 @@ char VxDpathName[256]; // HK95.vxd path
313313 DWORD siPageSize = 0;
314314 HWND hwndOrg = NULL;
315315 HWND hwndAMODI = NULL;
316+bool RequireHwndAMODI = false;
316317 bool OnlyAMODI = false;
317318 bool tryAMODI = false;
318319 bool MoveSend = false;
@@ -890,8 +891,11 @@ int WINAPI Config2( const struct TDCHConfig *cfg )
890891 ScaleY = cfg->ScaleY;
891892 NumPrevWords = cfg->UseNumPrev ? cfg->NumPrevWords : 1;
892893
894+ RequireHwndAMODI = false;
895+
893896 if (cfg->UseAMODI){
894897 if (!ExtAMODI){
898+ RequireHwndAMODI = true;
895899 if (!hwndAMODI)
896900 hwndAMODI = FindAMODI();
897901 }
@@ -1196,6 +1200,21 @@ bool DoCapture(HWND hwnd, POINT pt, bool movesend, bool image_only, bool runOnLa
11961200 CursorPoint = ScreenPoint = pt;
11971201 ScreenToClient( hwnd, &CursorPoint );
11981202
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+
11991218 if (!image_only && !runOnLaunchedProc){
12001219 //DBW("hwnd:%08X %d %d", (int)hwnd, CursorPoint.x, CursorPoint.y);
12011220 if ((!hwndAMODI && !ExtAMODI) || !OnlyAMODI){
Show on old repository browser