[Ttssh2-commit] [3350] SCP転送ウィンドウのキャンセル処理をひとまとめにした。

svnno****@sourc***** svnno****@sourc*****
2009年 4月 27日 (月) 01:13:29 JST


Revision: 3350
          http://svn.sourceforge.jp/view?root=ttssh2&view=rev&rev=3350
Author:   yutakapon
Date:     2009-04-27 01:13:29 +0900 (Mon, 27 Apr 2009)

Log Message:
-----------
SCP転送ウィンドウのキャンセル処理をひとまとめにした。
ただし、親ウィンドウを最小化すると、転送処理が中断されてしまう。

Modified Paths:
--------------
    trunk/ttssh2/ttxssh/ssh.c


-------------- next part --------------
Modified: trunk/ttssh2/ttxssh/ssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ssh.c	2009-04-24 14:58:32 UTC (rev 3349)
+++ trunk/ttssh2/ttxssh/ssh.c	2009-04-26 16:13:29 UTC (rev 3350)
@@ -8099,6 +8099,17 @@
 	return TRUE;
 }
 
+static int is_canceled_window(HWND hd)
+{
+	// Å¬‰»‚³‚ê‚Ä‚¢‚é‚Æ‚«‚́AƒLƒƒƒ“ƒZƒ‹‚Å‚Í‚È‚¢B
+	if (IsIconic(hd))
+		return 0;
+	// ƒEƒBƒ“ƒhƒE‚ªŒ©‚¦‚È‚­‚È‚Á‚½‚çAƒLƒƒƒ“ƒZƒ‹‚³‚ꂽB
+	if (IsWindowVisible(hd) == 0)
+		return 1;
+	return 0;
+}
+
 static unsigned __stdcall ssh_scp_thread(void FAR * p)
 {
 	Channel_t *c = (Channel_t *)p;
@@ -8115,7 +8126,7 @@
 
 	do {
 		// Cancelƒ{ƒ^ƒ“‚ª‰Ÿ‰º‚³‚ꂽ‚çƒEƒBƒ“ƒhƒE‚ªÁ‚¦‚éB
-		if (IsWindow(hWnd) == 0)
+		if (is_canceled_window(hWnd))
 			goto cancel_abort;
 
 		// ƒtƒ@ƒCƒ‹‚©‚ç“ǂݍž‚ñ‚¾ƒf[ƒ^‚Í‚©‚Ȃ炸ƒT[ƒo‚Ö‘—M‚·‚éB
@@ -8239,7 +8250,7 @@
 
 	for (;;) {
 		// Cancelƒ{ƒ^ƒ“‚ª‰Ÿ‰º‚³‚ꂽ‚çƒEƒBƒ“ƒhƒE‚ªÁ‚¦‚éB
-		if (IsWindow(hWnd) == 0)
+		if (is_canceled_window(hWnd))
 			goto cancel_abort;
 
 		if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) != 0) {



Ttssh2-commit メーリングリストの案内