FFFTPのソースコードです。
修订版 | 948f80c440c0251ec470882c68da56346d0d89c1 (tree) |
---|---|
时间 | 2012-04-26 00:02:23 |
作者 | s_kawamoto <s_kawamoto@user...> |
Commiter | s_kawamoto |
Fix bugs of unexpected operation unlocking.
@@ -1077,6 +1077,9 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA | ||
1077 | 1077 | break; |
1078 | 1078 | |
1079 | 1079 | case MENU_REMOTE_UPDIR : |
1080 | + // デッドロック対策 | |
1081 | + if(AskUserOpeDisabled() == YES) | |
1082 | + break; | |
1080 | 1083 | SuppressRefresh = 1; |
1081 | 1084 | SetCurrentDirAsDirHist(); |
1082 | 1085 | ChangeDir(WIN_REMOTE, ".."); |
@@ -1084,6 +1087,9 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA | ||
1084 | 1087 | break; |
1085 | 1088 | |
1086 | 1089 | case MENU_LOCAL_UPDIR : |
1090 | + // デッドロック対策 | |
1091 | + if(AskUserOpeDisabled() == YES) | |
1092 | + break; | |
1087 | 1093 | SetCurrentDirAsDirHist(); |
1088 | 1094 | ChangeDir(WIN_LOCAL, ".."); |
1089 | 1095 | break; |
@@ -1286,6 +1292,9 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA | ||
1286 | 1292 | break; |
1287 | 1293 | |
1288 | 1294 | case MENU_REFRESH : |
1295 | + // デッドロック対策 | |
1296 | + if(AskUserOpeDisabled() == YES) | |
1297 | + break; | |
1289 | 1298 | // 同時接続対応 |
1290 | 1299 | CancelFlg = NO; |
1291 | 1300 | SuppressRefresh = 1; |
@@ -1312,6 +1321,9 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA | ||
1312 | 1321 | break; |
1313 | 1322 | |
1314 | 1323 | case REFRESH_REMOTE : |
1324 | + // デッドロック対策 | |
1325 | + if(AskUserOpeDisabled() == YES) | |
1326 | + break; | |
1315 | 1327 | // 同時接続対応 |
1316 | 1328 | CancelFlg = NO; |
1317 | 1329 | SuppressRefresh = 1; |
@@ -1380,6 +1392,9 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA | ||
1380 | 1392 | break; |
1381 | 1393 | |
1382 | 1394 | case MENU_DOTFILE : |
1395 | + // デッドロック対策 | |
1396 | + if(AskUserOpeDisabled() == YES) | |
1397 | + break; | |
1383 | 1398 | // 同時接続対応 |
1384 | 1399 | CancelFlg = NO; |
1385 | 1400 | DotFile ^= 1; |
@@ -103,7 +103,9 @@ static int TmpRemoteDirSort; | ||
103 | 103 | |
104 | 104 | static int SyncMove = NO; |
105 | 105 | |
106 | -static int HideUI = NO; | |
106 | +// デッドロック対策 | |
107 | +//static int HideUI = NO; | |
108 | +static int HideUI = 0; | |
107 | 109 | |
108 | 110 | |
109 | 111 | /* 2007/09/21 sunasunamix ここから *********************/ |
@@ -588,7 +590,9 @@ HWND GetRemoteTbarWnd(void) | ||
588 | 590 | |
589 | 591 | int GetHideUI(void) |
590 | 592 | { |
591 | - return(HideUI); | |
593 | + // デッドロック対策 | |
594 | +// return(HideUI); | |
595 | + return (HideUI > 0 ? YES : NO); | |
592 | 596 | } |
593 | 597 | |
594 | 598 |
@@ -608,7 +612,9 @@ void MakeButtonsFocus(void) | ||
608 | 612 | int Count; |
609 | 613 | int Win; |
610 | 614 | |
611 | - if(HideUI == NO) | |
615 | + // デッドロック対策 | |
616 | +// if(HideUI == NO) | |
617 | + if(HideUI == 0) | |
612 | 618 | { |
613 | 619 | hWndMain = GetMainHwnd(); |
614 | 620 | hWndFocus = GetFocus(); |
@@ -766,7 +772,9 @@ void DisableUserOpe(void) | ||
766 | 772 | { |
767 | 773 | int i; |
768 | 774 | |
769 | - HideUI = YES; | |
775 | + // デッドロック対策 | |
776 | +// HideUI = YES; | |
777 | + HideUI++; | |
770 | 778 | |
771 | 779 | for(i = 0; i < sizeof(HideMenus) / sizeof(int); i++) |
772 | 780 | { |
@@ -796,7 +804,11 @@ void EnableUserOpe(void) | ||
796 | 804 | { |
797 | 805 | int i; |
798 | 806 | |
799 | - if(HideUI == YES) | |
807 | + // デッドロック対策 | |
808 | +// if(HideUI == YES) | |
809 | + if(HideUI > 0) | |
810 | + HideUI--; | |
811 | + if(HideUI == 0) | |
800 | 812 | { |
801 | 813 | for(i = 0; i < sizeof(HideMenus) / sizeof(int); i++) |
802 | 814 | { |
@@ -812,7 +824,8 @@ void EnableUserOpe(void) | ||
812 | 824 | HideHostKanjiButton(); |
813 | 825 | HideLocalKanjiButton(); |
814 | 826 | |
815 | - HideUI = NO; | |
827 | + // バグ修正 | |
828 | +// HideUI = NO; | |
816 | 829 | |
817 | 830 | MakeButtonsFocus(); |
818 | 831 | } |
@@ -832,7 +845,9 @@ void EnableUserOpe(void) | ||
832 | 845 | |
833 | 846 | int AskUserOpeDisabled(void) |
834 | 847 | { |
835 | - return(HideUI); | |
848 | + // デッドロック対策 | |
849 | +// return(HideUI); | |
850 | + return (HideUI > 0 ? YES : NO); | |
836 | 851 | } |
837 | 852 | |
838 | 853 |
@@ -1758,7 +1773,9 @@ void LocalRbuttonMenu(int Pos) | ||
1758 | 1773 | UINT Flg3; |
1759 | 1774 | int Count; |
1760 | 1775 | |
1761 | - if(HideUI == NO) | |
1776 | + // デッドロック対策 | |
1777 | +// if(HideUI == NO) | |
1778 | + if(HideUI == 0) | |
1762 | 1779 | { |
1763 | 1780 | Flg1 = 0; |
1764 | 1781 | if(AskConnecting() == NO) |
@@ -1823,7 +1840,9 @@ void RemoteRbuttonMenu(int Pos) | ||
1823 | 1840 | UINT Flg3; |
1824 | 1841 | int Count; |
1825 | 1842 | |
1826 | - if(HideUI == NO) | |
1843 | + // デッドロック対策 | |
1844 | +// if(HideUI == NO) | |
1845 | + if(HideUI == 0) | |
1827 | 1846 | { |
1828 | 1847 | Flg1 = 0; |
1829 | 1848 | if(AskConnecting() == NO) |