FFFTPのソースコードです。
Revisión | 1970bc4212a46498a13f7e010701729156842689 (tree) |
---|---|
Tiempo | 2016-06-14 21:45:08 |
Autor | s_kawamoto <s_kawamoto@user...> |
Commiter | s_kawamoto |
Fix bugs of drag-and-drop handling.
Change behavior of workaround for deadlock.
@@ -242,7 +242,7 @@ FONT 9, "MS Shell Dlg", 0, 0, 0x0 | ||
242 | 242 | BEGIN |
243 | 243 | DEFPUSHBUTTON "OK",IDOK,133,294,50,14 |
244 | 244 | ICON ffftp,-1,7,4,20,20 |
245 | - CTEXT "FFFTP Ver 1.99a",-1,113,11,90,8 | |
245 | + CTEXT "FFFTP Ver 1.99a-20160614",-1,113,11,90,8 | |
246 | 246 | CTEXT "FFFTPはfreewareです",-1,7,279,305,8 |
247 | 247 | CTEXT "Copyright(C) 1997-2010 Sota & ご協力いただいた方々\nCopyright (C) 2011-2016 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, うなー, Asami, fortran90, tomo1192, Yuji Tanaka, Moriguchi Hirokazu, ふうせん)",-1,7,25,305,44,SS_NOPREFIX |
248 | 248 | CTEXT "",ABOUT_JRE,7,96,305,8 |
@@ -2213,8 +2213,8 @@ nodrop_csr CURSOR "nodrop_c.cur" | ||
2213 | 2213 | // |
2214 | 2214 | |
2215 | 2215 | VS_VERSION_INFO VERSIONINFO |
2216 | - FILEVERSION 1,99,1,0 | |
2217 | - PRODUCTVERSION 1,99,1,0 | |
2216 | + FILEVERSION 1,99,1,1 | |
2217 | + PRODUCTVERSION 1,99,1,1 | |
2218 | 2218 | FILEFLAGSMASK 0x3fL |
2219 | 2219 | #ifdef _DEBUG |
2220 | 2220 | FILEFLAGS 0x1L |
@@ -2232,12 +2232,12 @@ BEGIN | ||
2232 | 2232 | VALUE "Comments", "これはフリーソフトウエアです。" |
2233 | 2233 | VALUE "CompanyName", "Sota, FFFTP Project" |
2234 | 2234 | VALUE "FileDescription", "FFFTP" |
2235 | - VALUE "FileVersion", "1, 99, 1, 0" | |
2235 | + VALUE "FileVersion", "1, 99, 1, 1" | |
2236 | 2236 | VALUE "InternalName", "FFFTP" |
2237 | 2237 | VALUE "LegalCopyright", "Copyright (C) 1997-2010 Sota & ご協力いただいた方々\nCopyright (C) 2011-2016 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, うなー, Asami, fortran90, tomo1192, Yuji Tanaka, Moriguchi Hirokazu, ふうせん)." |
2238 | 2238 | VALUE "OriginalFilename", "FFFTP.exe" |
2239 | 2239 | VALUE "ProductName", "FFFTP" |
2240 | - VALUE "ProductVersion", "1, 99, 1, 0" | |
2240 | + VALUE "ProductVersion", "1, 99, 1, 1" | |
2241 | 2241 | END |
2242 | 2242 | END |
2243 | 2243 | BLOCK "VarFileInfo" |
@@ -242,7 +242,7 @@ FONT 9, "MS Shell Dlg", 0, 0, 0x0 | ||
242 | 242 | BEGIN |
243 | 243 | DEFPUSHBUTTON "OK",IDOK,132,296,50,14 |
244 | 244 | ICON ffftp,-1,7,4,20,20 |
245 | - CTEXT "FFFTP Ver 1.99a",-1,110,11,90,8 | |
245 | + CTEXT "FFFTP Ver 1.99a-20160614",-1,110,11,90,8 | |
246 | 246 | CTEXT "FFFTP is freeware",-1,7,281,301,8 |
247 | 247 | CTEXT "Copyright(C) 1997-2010 Sota && cooperators\nCopyright (C) 2011-2016 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka, Moriguchi Hirokazu, Fu-sen)",-1,7,25,301,44 |
248 | 248 | CTEXT "",ABOUT_JRE,7,93,301,8 |
@@ -2253,8 +2253,8 @@ nodrop_csr CURSOR "nodrop_c.cur" | ||
2253 | 2253 | // |
2254 | 2254 | |
2255 | 2255 | VS_VERSION_INFO VERSIONINFO |
2256 | - FILEVERSION 1,99,1,0 | |
2257 | - PRODUCTVERSION 1,99,1,0 | |
2256 | + FILEVERSION 1,99,1,1 | |
2257 | + PRODUCTVERSION 1,99,1,1 | |
2258 | 2258 | FILEFLAGSMASK 0x3fL |
2259 | 2259 | #ifdef _DEBUG |
2260 | 2260 | FILEFLAGS 0x1L |
@@ -2272,12 +2272,12 @@ BEGIN | ||
2272 | 2272 | VALUE "Comments", "This software is Free Software" |
2273 | 2273 | VALUE "CompanyName", "Sota, FFFTP Project" |
2274 | 2274 | VALUE "FileDescription", "FFFTP" |
2275 | - VALUE "FileVersion", "1, 99, 1, 0" | |
2275 | + VALUE "FileVersion", "1, 99, 1, 1" | |
2276 | 2276 | VALUE "InternalName", "FFFTP" |
2277 | 2277 | VALUE "LegalCopyright", "Copyright (C) 1997-2010 Sota & cooperators\nCopyright (C) 2011-2016 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka, Moriguchi Hirokazu, Fu-sen)." |
2278 | 2278 | VALUE "OriginalFilename", "FFFTP.exe" |
2279 | 2279 | VALUE "ProductName", "FFFTP" |
2280 | - VALUE "ProductVersion", "1, 99, 1, 0" | |
2280 | + VALUE "ProductVersion", "1, 99, 1, 1" | |
2281 | 2281 | END |
2282 | 2282 | END |
2283 | 2283 | BLOCK "VarFileInfo" |
@@ -72,16 +72,16 @@ | ||
72 | 72 | //#define PROGRAM_VERSION_NUM 1972 /* バージョン */ |
73 | 73 | // 64ビット対応 |
74 | 74 | #ifdef _WIN64 |
75 | -#define VER_STR "1.99a 64bit" | |
75 | +#define VER_STR "1.99a-20160614 64bit" | |
76 | 76 | #else |
77 | -#define VER_STR "1.99a" | |
77 | +#define VER_STR "1.99a-20160614" | |
78 | 78 | #endif |
79 | 79 | #define VER_NUM 1990 /* 設定バージョン */ |
80 | 80 | #define PROGRAM_VERSION_NUM 1990 /* バージョン */ |
81 | 81 | // ソフトウェア自動更新 |
82 | 82 | // リリースバージョンはリリース予定年(10進数4桁)+月(2桁)+日(2桁)+通し番号(0スタート2桁)とする |
83 | 83 | // 2014年7月31日中の30個目のリリースは2014073129 |
84 | -#define RELEASE_VERSION_NUM 2016051400 /* リリースバージョン */ | |
84 | +#define RELEASE_VERSION_NUM 2016061400 /* リリースバージョン */ | |
85 | 85 | |
86 | 86 | |
87 | 87 | // SourceForge.JPによるフォーク |
@@ -178,6 +178,8 @@ static int IgnoreOld = NO; | ||
178 | 178 | static int IgnoreExist = NO; |
179 | 179 | |
180 | 180 | static int Dragging = NO; |
181 | +// 特定の操作を行うと異常終了するバグ修正 | |
182 | +static int DragFirstTime = NO; | |
181 | 183 | |
182 | 184 | static int StratusMode; /* 0=ファイル, 1=ディレクトリ, 2=リンク */ |
183 | 185 |
@@ -542,7 +544,9 @@ static void doTransferRemoteFile(void) | ||
542 | 544 | // FFFTPにダウンロード要求を出し、ダウンロードの完了を待つ。 |
543 | 545 | PostMessage(GetMainHwnd(), WM_COMMAND, MAKEWPARAM(MENU_DOWNLOAD, 0), 0); |
544 | 546 | |
545 | - for (i = 0 ; i < 10 ; i++) { | |
547 | + // 特定の操作を行うと異常終了するバグ修正 | |
548 | +// for (i = 0 ; i < 10 ; i++) { | |
549 | + for (i = 0 ; i < 1000 ; i++) { | |
546 | 550 | MSG msg; |
547 | 551 | |
548 | 552 | if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { |
@@ -561,7 +565,20 @@ static void doTransferRemoteFile(void) | ||
561 | 565 | // OLE D&D中にメインウィンドウをユーザに操作させると、おかしくなるので、 |
562 | 566 | // 隠しモーダルダイアログを作る。 |
563 | 567 | // (2007.9.11 yutaka) |
564 | - DialogBox(GetFtpInst(), MAKEINTRESOURCE(IDD_OLEDRAG), GetMainHwnd(), (DLGPROC)doOleDlgProc); | |
568 | + // 特定の操作を行うと異常終了するバグ修正 | |
569 | +// DialogBox(GetFtpInst(), MAKEINTRESOURCE(IDD_OLEDRAG), GetMainHwnd(), (DLGPROC)doOleDlgProc); | |
570 | + while(1) | |
571 | + { | |
572 | + MSG msg; | |
573 | + if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) | |
574 | + { | |
575 | + TranslateMessage(&msg); | |
576 | + DispatchMessage(&msg); | |
577 | + } | |
578 | + else if(AskTransferNow() == NO) | |
579 | + break; | |
580 | + Sleep(10); | |
581 | + } | |
565 | 582 | |
566 | 583 | // ダウンロード先を元に戻す |
567 | 584 | SetLocalDirHist(LocDir); |
@@ -897,6 +914,8 @@ static LRESULT FileListCommonWndProc(HWND hWnd, UINT message, WPARAM wParam, LPA | ||
897 | 914 | return(CallWindowProc(ProcPtr, hWnd, message, wParam, lParam)); |
898 | 915 | |
899 | 916 | case WM_DRAGDROP: |
917 | + // 特定の操作を行うと異常終了するバグ修正 | |
918 | + DragFirstTime = YES; | |
900 | 919 | // OLE D&Dを開始する (yutaka) |
901 | 920 | doDragDrop(hWnd, message, wParam, lParam); |
902 | 921 | return (TRUE); |
@@ -920,9 +939,13 @@ static LRESULT FileListCommonWndProc(HWND hWnd, UINT message, WPARAM wParam, LPA | ||
920 | 939 | char *PathDir; |
921 | 940 | |
922 | 941 | // 特定の操作を行うと異常終了するバグ修正 |
923 | - GetCursorPos(&Point); | |
924 | - hWndPnt = WindowFromPoint(Point); | |
925 | - hWndParent = GetParent(hWndPnt); | |
942 | + if(DragFirstTime == YES) | |
943 | + { | |
944 | + GetCursorPos(&Point); | |
945 | + hWndPnt = WindowFromPoint(Point); | |
946 | + hWndParent = GetParent(hWndPnt); | |
947 | + } | |
948 | + DragFirstTime = NO; | |
926 | 949 | DisableUserOpe(); |
927 | 950 | CancelFlg = NO; |
928 | 951 |
@@ -927,6 +927,9 @@ void EnableUserOpe(void) | ||
927 | 927 | // バグ修正 |
928 | 928 | // HideUI = NO; |
929 | 929 | |
930 | + // バグ修正 | |
931 | + SetFocus(GetMainHwnd()); | |
932 | + | |
930 | 933 | MakeButtonsFocus(); |
931 | 934 | } |
932 | 935 | return; |