Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

修正 FileZilla 2.2.25 視窗最小化還原不正確的問題 part II
post by tommy @ 29 六月, 2006 14:38
2.2.24b 時修正過這個問題, 不過似乎同樣的方式在 2.2.25 版時並沒有作用. 所以早上做了另外的修正.
diff -Nur source/MainFrm.cpp source.patch/MainFrm.cpp
--- source/MainFrm.cpp Wed Jun 28 11:38:52 2006
+++ source.patch/MainFrm.cpp Thu Jun 29 10:23:54 2006
@@ -254,6 +254,8 @@
m_pDragWnd = NULL;
m_DropTarget = _T("");

+ m_bMaxBeforeTray = false;
+
m_bSwitchPaneLayout = FALSE;
}

@@ -3614,15 +3616,16 @@
WINDOWPLACEMENT placement;
placement.length = sizeof(WINDOWPLACEMENT);
placement.rcNormalPosition = m_PosData.NormalRect;
- placement.showCmd = SW_RESTORE;
+ if (m_bMaxBeforeTray)
+ placement.showCmd = SW_SHOWMAXIMIZED;
+ else
+ placement.showCmd = SW_RESTORE;
SetWindowPlacement(&placement);
m_PosData.state = 0;
}
else
- CFrameWnd::OnSysCommand( nID, lParam );
- if (nID == SC_MINIMIZE)
{
- if (COptions::GetOptionVal(OPTION_MINIMIZETOTRAY) == 1)
+ if (nID == SC_MINIMIZE || nID == SC_MINIMIZETRAY)
{
WINDOWPLACEMENT placement;
BOOL res=GetWindowPlacement(&placement);
@@ -3630,6 +3633,13 @@
m_bMaxBeforeTray = true;
else
m_bMaxBeforeTray = false;
+ }
+ CFrameWnd::OnSysCommand( nID, lParam );
+ }
+ if (nID == SC_MINIMIZE)
+ {
+ if (COptions::GetOptionVal(OPTION_MINIMIZETOTRAY) == 1)
+ {
ShowWindow(SW_HIDE);
m_TrayIcon.AddIcon();
m_TrayIcon.ShowIcon();
@@ -3637,19 +3647,17 @@
}
else if (nID == SC_MINIMIZETRAY)
{
- WINDOWPLACEMENT placement;
- BOOL res=GetWindowPlacement(&placement);
- if (placement.showCmd==SW_MAXIMIZE || placement.showCmd==SW_SHOWMAXIMIZED)
- m_bMaxBeforeTray = true;
- else
- m_bMaxBeforeTray = false;
ShowWindow(SW_HIDE);
m_TrayIcon.AddIcon();
m_TrayIcon.ShowIcon();
}
else if (nID == SC_RESTORE)
{
- ShowWindow(SW_SHOW);
+ if (m_bMaxBeforeTray)
+ ShowWindow(SW_SHOWMAXIMIZED);
+ else
+ ShowWindow(SW_SHOW);
+ m_bMaxBeforeTray = false;
m_TrayIcon.HideIcon();
}
}
@@ -3845,6 +3853,7 @@
ShowWindow(SW_SHOWMAXIMIZED);
else
ShowWindow(SW_SHOW);
+ m_bMaxBeforeTray = false;
m_TrayIcon.HideIcon();
}
 

這個 patch 應該可以解決這個問題. 可以到這兒抓這個 patch, 與使用這個 patch 加上其他之前我所做的 patch 的版本:
http://www.teatime.com.tw/~tommy/mypatch/fz2225_restore.patch
http://www.teatime.com.tw/~tommy/filezilla.zip  


2006/07/13: 上次忘了上傳 patch 到 sourceforge 給作者, 剛剛他回覆問我後續情形如何才發現, 在上傳這個 patch 之後, 作者表示已經進入目前的 CVS 中. 

 

Del.icio.us Furl HEMiDEMi Technorati MyShare
迴響
暱稱:
標題:
個人網頁:
電子郵件:
迴響

  

Bad Behavior 已經阻擋了 71 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS