• R/O
  • SSH
  • HTTPS

gsfinder-wm5-rc: コミット


コミットメタ情報

リビジョン5 (tree)
日時2009-11-10 01:50:39
作者goriponsoft

ログメッセージ

GSFinder+ for W-ZERO3から反映させた修正内容は以下の通りです。日付は、GSFinder+ for W-ZERO3における修正日となっています。

2007/08/06
・画面の縦横切り替え後にステータスバー/アドレスバーのサイズがおかしくなる点を修正
・ユーザーパスの登録で末尾に'\'を付けるとメニューで正常に表示されなくなっていたのを修正
・WindowsMobile非対応部分を対応するように修正(※メニューの不完全部分を修正)
・「ユーザーパス」で登録したパスの表示が崩れていたのを修正
・「お気に入りの整理」を繰り返すとメニューが壊れていたのを修正

2007/08/18
・ファイル表示のアイコンの整列でソートの比較処理が一部うまく動いていなかったのを修正

2007/08/20
・内部での座標の取り扱いに誤り(符号の有無)があったので修正

2007/09/02
・フォルダ表示側で「コピー」「切り取り」を行った場合にコピー中の総ファイル数表示がおかしくなっていたのを修正
・フォルダ表示の「マイポケットPC」上で「コピー」「切り取り」が正常に動作していなかったので選択できないように修正

2007/09/04
・オプション設定の「ファイルの種類」およびファイルメニューの「プログラムの選択」で発生していた不正処理に対処

2007/09/09
・フォルダ表示で[クリア]または[BS]キーを押すと1回の操作で2階層上に移動してしまっていたのを修正
・検索ダイアログから抜けた後ファイル表示にフォーカスが移るよう修正

2007/09/16
・WS007SHにおいて「詳細」表示でファイル名の幅を狭くしすぎると次回起動時に落ちていたのを修正

2007/12/26
・「すべて選択」の後に「フォルダにコピー」を行った場合にハングアップする場合があったのを修正

2007/12/27
・機能していなかった[F2]/[F6]キー関連の無駄なコードを削除(※マクロPOCKETPCが定義済の場合のみ)
・フォルダコピーでのハングアップバグ修正に不完全な部分があったので再修正

2008/01/07
・ファイルの圧縮で不正な書庫が作成されていたのを修正
・オプション画面の「ファイルの種類」で処理に時間が掛かる場合にはウェイトカーソルを表示するよう修正

2008/01/14
・アドレスバーのプルダウンリストの余計な開閉を抑制するよう修正
・アドレスバーに入力したパス文字列の大小文字が実際のパスと違っていた場合にフォルダ表示が更新されなかったのを修正
・「お気に入りに追加」を行うと追加した項目に"~へのショートカット"が付く場合があったのを修正
・フォルダ表示から「お気に入りに追加」を行った場合にメニューへの反映が行われていなかったのを修正

2008/01/20
・縦横画面切り替え時にファイル表示で選択しているファイルが隠れてしまうことがあったのを修正
・オプション設定の「ファイルの種類」で「新しい拡張子の作成」ダイアログを開くとそれ以降画面をタップしないと操作が継続できなかったのを修正

2008/05/23
・フォルダ内のファイルの合計容量が2GBを超えた場合にステータスバーの表示がマイナス値になってしまっていたのを修正
・リストビューアイコンの遅延読み込みがうまく動作していなかったのを修正

2008/07/02
・ファイル日時表示の処理内に日時の文字列を格納するバッファのサイズを誤って指定していた部分があったのを修正
・ユーザーパス登録画面でタップ&ホールドのアニメーションが出せてしまっていたのを修正

2008/11/24
・アドレスバーに入力されたパスの末尾に'\'が付いていると上層フォルダへの移動がうまく行われなかったのを修正

変更サマリ

差分

--- trunk/exe/FolderDlgPPC.cpp (revision 4)
+++ trunk/exe/FolderDlgPPC.cpp (revision 5)
@@ -87,7 +87,7 @@
8787
8888 SHINITDLGINFO shidi;
8989 shidi.dwMask = SHIDIM_FLAGS;
90- shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;
90+ shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU;
9191 shidi.hDlg = hDlg;
9292 SHInitDialog(&shidi);
9393
--- trunk/exe/GSFinder.h (revision 4)
+++ trunk/exe/GSFinder.h (revision 5)
@@ -101,6 +101,9 @@
101101 #define REG_KEY_RECENT _T("Software\\GreenSoftware\\GSFinder+\\Settings\\Recent")
102102 //ADD END
103103
104+#define GET_X_LPARAM(lp) ((int)(signed short)LOWORD(lp))
105+#define GET_Y_LPARAM(lp) ((int)(signed short)HIWORD(lp))
106+
104107 //ADD START TODA (PocketPCのキー判定対処)
105108 #ifdef __POCKET_PC
106109 #define GET_KEYSTATE GetKeyState
@@ -143,7 +146,7 @@
143146 DWORD GetIMStatus();
144147 #endif
145148
146- void SetFormatSize(DWORD dwSize, TCHAR szBuff[64], LPTSTR lpszFmtKB, LPTSTR lpszFmtMB);
149+ void SetFormatSize(LONGLONG dwSize, TCHAR szBuff[64], LPTSTR lpszFmtKB, LPTSTR lpszFmtMB);
147150 LPCTSTR GetRootName(); //ADD TODA
148151 int AddRootIcon(HIMAGELIST hImageList); //ADD TODA
149152 HFONT MyCreateFont(int, BYTE, LPTSTR); //ADD TODA
--- trunk/exe/ListView.h (revision 4)
+++ trunk/exe/ListView.h (revision 5)
@@ -148,7 +148,7 @@
148148 LISTITEMINFO* m_lpliinfo;
149149 TCHAR m_szFolderFrom[MAX_PATH];
150150
151- UINT m_nFileSize;
151+ LONGLONG m_nFileSize;
152152
153153 //メニュー
154154 HMENU m_hMenuPopup;
@@ -193,15 +193,16 @@
193193 void OnSelEndOK();
194194 void OnColumnClick(NMLISTVIEW*);
195195
196- void MainWindowReset(LPCTSTR, int); //ADD TODA
196+ void MainWindowReset(LPCTSTR, LONGLONG); //ADD TODA
197197 void LoadFolderReset(LPCTSTR); //ADD TODA
198198 void LoadFolderSearch(LPCTSTR); //ADD TODA
199199 void LoadFolderFiles(LPCTSTR, BOOL); //ADD TODA
200200 void LoadFolderItem(LPCTSTR lpszPath, BOOL bTVUpdate = TRUE); //MOD TODA
201+ void InitFolderItem(LPCTSTR lpszPath);
201202 void LoadFolderItemSub(LPCTSTR); //ADD TODA
202203 void SelectFile(LPCTSTR); //ADD TODA
203- void AddFolderItemSub(LPCTSTR, LPCTSTR, DWORD, FILETIME, DWORD, UINT*, BOOL); //ADD TODA
204- void AddFolderItem(WIN32_FIND_DATA*, LPCTSTR, UINT*, BOOL bSelect=FALSE); //MOD TODA
204+ void AddFolderItemSub(LPCTSTR, LPCTSTR, DWORD, FILETIME, DWORD, LONGLONG*, BOOL); //ADD TODA
205+ void AddFolderItem(WIN32_FIND_DATA*, LPCTSTR, LONGLONG*, BOOL bSelect=FALSE); //MOD TODA
205206 void ComFileOpen(LPCTSTR); //ADD TODA
206207
207208 HMENU GetOpenAppSubMenu1(); //ADD TODA
@@ -240,8 +241,8 @@
240241 void OnFileRename();
241242 void OnEditCopyFileName();
242243 void OnEditCopyFilePath();
243- void OnEditCut();
244- void OnEditCopy();
244+ void OnEditCut(LPCWCH lpszFolderFrom = NULL);
245+ void OnEditCopy(LPCWCH lpszFolderFrom = NULL);
245246 void OnEditPaste(BOOL bUpdate = TRUE); //MOD TODA
246247 void OnEditSelectSwitch();
247248 void OnEditPasteShortcut(BOOL bUpdate = TRUE); //MOD TODA
--- trunk/exe/FileImageList.cpp (revision 4)
+++ trunk/exe/FileImageList.cpp (revision 5)
@@ -95,7 +95,6 @@
9595 ///////////////////////////////////////////////////////////////
9696 void CFileImageList::Destroy()
9797 {
98-
9998 while (!m_IndexBuff.IsEmpty())
10099 {
101100 IMAGELISTINDEX* pIndex = (IMAGELISTINDEX*)m_IndexBuff.RemoveAt(0);
@@ -104,6 +103,7 @@
104103 }
105104 ImageList_RemoveAll(m_hImageList);
106105 ImageList_Destroy(m_hImageList);
106+ m_hImageList = NULL;
107107 }
108108
109109 ///////////////////////////////////////////////////////////////
--- trunk/exe/FileProperty.cpp (revision 4)
+++ trunk/exe/FileProperty.cpp (revision 5)
@@ -208,7 +208,7 @@
208208 {
209209 FileTimeToLocalFileTime(&ftCreate, &ftCreate);
210210 FileTimeToSystemTime(&ftCreate, &st);
211- SetFormatDateTime(&st, szTime, sizeof(szTime)); //MOD TODA
211+ SetFormatDateTime(&st, szTime, 64); //MOD TODA
212212 wsprintf(szTemp, _T("%s"), szTime);
213213 SetWindowText(GetDlgItem(hDlg, IDC_FILE_CREATE_TIME), szTemp);
214214 }
@@ -221,7 +221,7 @@
221221 {
222222 FileTimeToLocalFileTime(&ftUpdate, &ftUpdate);
223223 FileTimeToSystemTime(&ftUpdate, &st);
224- SetFormatDateTime(&st, szTime, sizeof(szTime)); //MOD TODA
224+ SetFormatDateTime(&st, szTime, 64); //MOD TODA
225225 wsprintf(szTemp, _T("%s"), szTime);
226226 SetWindowText(GetDlgItem(hDlg, IDC_FILE_WRITE_TIME), szTemp);
227227 }
--- trunk/exe/CommandBandsPPC.cpp (revision 4)
+++ trunk/exe/CommandBandsPPC.cpp (revision 5)
@@ -39,6 +39,12 @@
3939 }
4040 break;
4141 }
42+ case WM_CHAR:
43+ //(プルダウンリストの余計な開閉を抑制)
44+ if (wParam == VK_RETURN)
45+ if (!SendMessage(g_MainWnd.m_CmdBands.m_hComboBox, CB_GETDROPPEDSTATE, 0, 0))
46+ return 0;
47+ break;
4248 default:
4349 break;
4450 }
--- trunk/exe/Compress.cpp (revision 4)
+++ trunk/exe/Compress.cpp (revision 5)
@@ -298,6 +298,11 @@
298298
299299 } //End of for
300300
301+ //ファイルリスト末尾の空白を削除(UnZip/UnLhaで不正な書庫が作成されるのを防ぐ)
302+ TCHAR *tc;
303+ while (*(tc = _tcsrchr(lpszPath, _T('\0')) - 1) == _T(' '))
304+ *tc = _T('\0');
305+
301306 //圧縮
302307 // BOOL bRtn = RunCompress((bAutoUnComp?szCurrentFolder:szEditPath), lpszPath, nCompDLL, bMoveDir);
303308 BOOL bRtn = RunCompress(szCurrentFolder, lpszPath, nCompDLL, bMoveDir);
--- trunk/exe/CopyDlg.cpp (revision 4)
+++ trunk/exe/CopyDlg.cpp (revision 5)
@@ -220,6 +220,10 @@
220220 return 0;
221221 }
222222
223+ //上層フォルダへの移動の項目を無視(全て選択→コピーでハングアップする問題への対処)
224+ if (pct->m_lpliinfo[i].nItem == LIST_ITEM_UPPER)
225+ continue;
226+
223227 //ADD START TODA
224228 //表示の更新
225229 TCHAR szTemp[MAX_PATH+4];
--- trunk/exe/GSFinder.cpp (revision 4)
+++ trunk/exe/GSFinder.cpp (revision 5)
@@ -710,7 +710,7 @@
710710 if (hFocus == g_MainWnd.m_TreeView.m_hWnd)
711711 {
712712 DWORD dwPos = GetMessagePos();
713- g_MainWnd.m_TreeView.OnRClick(LOWORD(dwPos), HIWORD(dwPos), TRUE);
713+ g_MainWnd.m_TreeView.OnRClick(GET_X_LPARAM(dwPos), GET_Y_LPARAM(dwPos), TRUE);
714714 }
715715 break;
716716 //Enterキー押下
@@ -887,10 +887,10 @@
887887 SetCapture(hWnd);
888888 g_bMoving = TRUE;
889889 if(g_MainWnd.m_bViewSide) {
890- g_nStartPos = LOWORD(lParam);
890+ g_nStartPos = GET_X_LPARAM(lParam);
891891 g_nLastWidth = g_MainWnd.m_nTreeViewWidth;
892892 } else {
893- g_nStartPos = HIWORD(lParam);
893+ g_nStartPos = GET_Y_LPARAM(lParam);
894894 g_nLastHeight = g_MainWnd.m_nTreeViewHeight;
895895 }
896896 break;
@@ -899,7 +899,7 @@
899899 if (g_bMoving)
900900 g_MainWnd.OnMouseMove(lParam, g_nStartPos, g_nLastWidth, g_nLastHeight);
901901 if(g_bDraging) {
902- POINT pt={LOWORD(lParam), HIWORD(lParam)};
902+ POINT pt = {GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)};
903903 g_MainWnd.OnMouseMove(pt);
904904 }
905905 break;
@@ -962,7 +962,7 @@
962962 #ifdef __POCKET_PC
963963 SHINITDLGINFO shidi;
964964 shidi.dwMask = SHIDIM_FLAGS;
965- shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;
965+ shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU;
966966 shidi.hDlg = hDlg;
967967 SHInitDialog(&shidi);
968968
@@ -1330,6 +1330,16 @@
13301330 DWORD dwStyle = GetWindowLong(hwndChild, GWL_STYLE) | TCS_BOTTOM;
13311331 ::SetWindowLong(hwndChild, GWL_STYLE, dwStyle);
13321332 }
1333+ //空のメニューバーを追加(WindowsMobile非対応部分への対処)
1334+ SHMENUBARINFO mbi;
1335+ memset(&mbi, 0, sizeof(SHMENUBARINFO));
1336+ mbi.cbSize = sizeof(SHMENUBARINFO);
1337+ mbi.hwndParent = hwndDlg;
1338+ //mbi.nToolBarId = 0;
1339+ mbi.hInstRes = g_hInst;
1340+ //mbi.nBmpId = 0;
1341+ //mbi.cBmpImages = 0;
1342+ SHCreateMenuBar(&mbi);
13331343 break;
13341344 }
13351345 case PSCB_GETVERSION:
@@ -1420,7 +1430,7 @@
14201430 }
14211431
14221432 //////////////////////////////////////////////////////////////////////////////////////
1423-void SetFormatSize(DWORD dwSize, TCHAR szBuff[64], LPTSTR lpszFmtKB, LPTSTR lpszFmtMB)
1433+void SetFormatSize(LONGLONG dwSize, TCHAR szBuff[64], LPTSTR lpszFmtKB, LPTSTR lpszFmtMB)
14241434 {
14251435 double fSize;
14261436 TCHAR szSize[64];
--- trunk/exe/FileSearch.cpp (revision 4)
+++ trunk/exe/FileSearch.cpp (revision 5)
@@ -592,7 +592,7 @@
592592 #ifdef __POCKET_PC
593593 SHINITDLGINFO shidi;
594594 shidi.dwMask = SHIDIM_FLAGS;
595- shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN;
595+ shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU;
596596 shidi.hDlg = m_hWnd;
597597 SHInitDialog(&shidi);
598598 #endif
--- trunk/exe/ListView.cpp (revision 4)
+++ trunk/exe/ListView.cpp (revision 5)
@@ -103,7 +103,7 @@
103103 #ifdef __POCKET_PC
104104 SHINITDLGINFO shidi;
105105 shidi.dwMask = SHIDIM_FLAGS;
106- shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN;
106+ shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU;
107107 shidi.hDlg = hDlg;
108108 SHInitDialog(&shidi);
109109 #else
@@ -558,7 +558,7 @@
558558
559559 //ADD START TODA
560560 ///////////////////////////////////////////////////////////////
561-void CListView::MainWindowReset(LPCTSTR lpszPath, int nAllSize)
561+void CListView::MainWindowReset(LPCTSTR lpszPath, LONGLONG nAllSize)
562562 {
563563 TCHAR szTemp[MAX_PATH];
564564
@@ -579,7 +579,7 @@
579579
580580 SetFormatInteger(szTemp, 64);
581581 wsprintf(szItemCount, IDS_FMT_OBJECTSCOUNT, szTemp);
582- wsprintf(szTemp, _T("%d"), nAllSize);
582+ wsprintf(szTemp, _T("I64%d"), nAllSize);
583583 SetFormatInteger(szTemp, 64);
584584 wsprintf(szAllSize, IDS_FMT_TOTALBYTES, szTemp);
585585 g_MainWnd.m_StatusWnd.SetTwoPaneText(szItemCount, szAllSize);
@@ -621,7 +621,7 @@
621621 void CListView::LoadFolderReset(LPCTSTR lpszPath)
622622 {
623623 //アイテム数、サイズのカウント
624- UINT nAllSize = 0;
624+ LONGLONG nAllSize = 0;
625625
626626 //ファイルの読み込み
627627 TCHAR szTemp[MAX_PATH];
@@ -658,7 +658,7 @@
658658 g_MainWnd.m_StatusWnd.SetSimpleText(szTemp);
659659
660660 //アイテム数、サイズのカウント
661- UINT nAllSize = 0;
661+ LONGLONG nAllSize = 0;
662662
663663 //アイテムの削除
664664 DeleteAllItem();
@@ -739,7 +739,7 @@
739739 m_lpHistory = m_lpHistoryCurrent;
740740
741741 //アイテム数、サイズのカウント
742- UINT nAllSize = 0;
742+ LONGLONG nAllSize = 0;
743743
744744 //アイテムの削除
745745 DeleteAllItem();
@@ -845,6 +845,22 @@
845845 }
846846
847847 ///////////////////////////////////////////////////////////////
848+//(WS007SHにおいて「詳細」表示でファイル名の幅を狭くしすぎると次回起動時に落ちていた問題への対処)
849+void CListView::InitFolderItem(LPCTSTR lpszPath)
850+{
851+ DisableUpdateNotify();
852+
853+ //検索処理の場合
854+ if(0 == wcscmp(lpszPath, SEARCH_FOLDER_NAME))
855+ LoadFolderSearch(lpszPath);
856+ else
857+ LoadFolderFiles(lpszPath, TRUE);
858+
859+ SetUpdateNotify(lpszPath);
860+ EnableUpdateNotify();
861+}
862+
863+///////////////////////////////////////////////////////////////
848864 void CListView::LoadFolderItemSub(LPCTSTR lpszPath)
849865 {
850866 //再描画停止
@@ -857,7 +873,7 @@
857873 m_dwUpperParam = NULL;
858874
859875 //アイテム数、サイズのカウント用
860- UINT nAllSize = 0;
876+ LONGLONG nAllSize = 0;
861877
862878 //ファイルの読み込み
863879 WIN32_FIND_DATA finddata;
@@ -929,7 +945,7 @@
929945
930946 //ADD START TODA (AddFolderItem()より処理移動)
931947 ///////////////////////////////////////////////////////////////
932-void CListView::AddFolderItemSub(LPCTSTR lpszPath, LPCTSTR lpszName, DWORD dwAttr, FILETIME ft, DWORD dwSize, UINT* lpAllSize, BOOL bSelect)
948+void CListView::AddFolderItemSub(LPCTSTR lpszPath, LPCTSTR lpszName, DWORD dwAttr, FILETIME ft, DWORD dwSize, LONGLONG* lpAllSize, BOOL bSelect)
933949 {
934950 if (FILE_ATTRIBUTE_DIRECTORY == (dwAttr & FILE_ATTRIBUTE_DIRECTORY))
935951 {
@@ -1026,7 +1042,7 @@
10261042 //ADD END
10271043
10281044 ///////////////////////////////////////////////////////////////
1029-void CListView::AddFolderItem(WIN32_FIND_DATA *finddata, LPCTSTR lpszPath, UINT* lpAllSize, BOOL bSelect)
1045+void CListView::AddFolderItem(WIN32_FIND_DATA *finddata, LPCTSTR lpszPath, LONGLONG* lpAllSize, BOOL bSelect)
10301046 {
10311047 //MDD START TODA (AddFolderItemSub()の呼び出しに変更)
10321048 if(finddata->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
@@ -1291,6 +1307,9 @@
12911307 ///////////////////////////////////////////////////////////////
12921308 void CListView::OnViewUpFolder()
12931309 {
1310+ //パス末尾の区切り文字を削除(パスの末尾に'\'が付いていると上層フォルダへの移動がうまく行われなかった問題への対処)
1311+ for (LPTSTR lpszTemp = _tcsrchr(m_szCurrentFolder, _T('\0')) - 1; *lpszTemp == _T('\\'); *lpszTemp-- = _T('\0'));
1312+
12941313 // TCHAR szPath[MAX_PATH] = _T(""); //DEL TODA (from GSFinder ver.1.99)
12951314 if (wcscmp(m_szCurrentFolder, _T(""))!=0)
12961315 {
@@ -1760,6 +1779,7 @@
17601779 {
17611780 int i = 0;
17621781 int nIndex = GetSelectedItemIndex(0);
1782+ ZeroMemory(lpListItemComp, sizeof(LISTITEMINFO)*nCount);//(全て選択→コピーでハングアップする問題への対処)
17631783 while (nIndex != -1)
17641784 {
17651785 LISTITEMCOMP* plic = GetListItemStruct(nIndex);
@@ -1915,7 +1935,7 @@
19151935 }
19161936 //ADD END
19171937 ////////////////////////////////////////////////////////////////
1918-void CListView::OnEditCut()
1938+void CListView::OnEditCut(LPCWCH lpszFolderFrom)
19191939 {
19201940 //切り取り
19211941 int nCount = GetValidAndSelectedCount();
@@ -1931,7 +1951,7 @@
19311951 LISTITEMINFO* pliinfo = new LISTITEMINFO[nCount];
19321952 MakeSelectedItemsStrings(pliinfo, nCount);
19331953
1934- wcscpy(m_szFolderFrom, m_szCurrentFolder);
1954+ wcscpy(m_szFolderFrom, lpszFolderFrom? lpszFolderFrom: m_szCurrentFolder);
19351955
19361956 m_lpliinfo = pliinfo;
19371957 m_nCount = nCount;
@@ -1960,7 +1980,7 @@
19601980 }
19611981 }
19621982 ////////////////////////////////////////////////////////////////
1963-void CListView::OnEditCopy()
1983+void CListView::OnEditCopy(LPCWCH lpszFolderFrom)
19641984 {
19651985 //コピー
19661986 if (m_lpliinfo)
@@ -1976,7 +1996,7 @@
19761996 LISTITEMINFO* pliinfo = new LISTITEMINFO[nCount];
19771997 MakeSelectedItemsStrings(pliinfo, nCount);
19781998
1979- wcscpy(m_szFolderFrom, m_szCurrentFolder);
1999+ wcscpy(m_szFolderFrom, lpszFolderFrom? lpszFolderFrom: m_szCurrentFolder);
19802000
19812001 m_lpliinfo = pliinfo;
19822002 m_nCount = nCount;
@@ -1984,11 +2004,7 @@
19842004
19852005 g_MainWnd.m_CmdBands.SetEnableEditPaste(TRUE);
19862006
1987- for (int i=0; i<ListView_GetItemCount(m_hWnd); i++)
1988- {
1989- if (ListView_GetItemState(m_hWnd, i, LVIS_SELECTED)==LVIS_SELECTED)
1990- ListView_SetItemState(m_hWnd, i, 0, LVIS_CUT);
1991- }
2007+ ListView_SetItemState(m_hWnd, -1, 0, LVIS_CUT);
19922008 }
19932009 }
19942010 ////////////////////////////////////////////////////////////////
@@ -2469,9 +2485,11 @@
24692485
24702486 int j = 0;
24712487 for (int i = 0; i < m_nOpenPthInfoCount; i++)
2488+ {
24722489 j = ID_TOOL_USERPATH_MENU+i; //add by kawa
24732490 DeleteMenu(hSubMenu1, j, MF_BYCOMMAND);//mod by kawa
24742491 DeleteMenu(hSubMenu2, j, MF_BYCOMMAND);//add by kawa
2492+ }
24752493
24762494 //セパレータ削除
24772495 DeleteUserPathMenuSep(hSubMenu1);//mod by kawa
@@ -2594,9 +2612,11 @@
25942612 DeleteFavoritesItem(m_lpFavorites);
25952613 int j=0; //add by kawa
25962614 for (int i = 0; i < m_nFavoritesCount; i++)
2615+ {
25972616 j=ID_TOOL_FAVORITES_LNK + i ;//add by kawa
25982617 DeleteMenu(hSubMenu1, j, MF_BYCOMMAND);//mod by kawa
25992618 DeleteMenu(hSubMenu2, j, MF_BYCOMMAND);//add by kawa
2619+ }
26002620 m_lpFavorites = m_lpFavoritesCurrent = NULL;
26012621 m_nFavoritesCount = 0;
26022622
@@ -2638,6 +2658,9 @@
26382658 HMENU hSubMenu1 = GetFavoritesSubMenu1(); //mod by kawa
26392659 HMENU hSubMenu2 = GetFavoritesSubMenu2(); //add by kawa
26402660
2661+ //メニュー削除
2662+ DeleteFavoritesMenu();
2663+
26412664 //メニュー作成
26422665 InitFavoritesSubMenu(hSubMenu1, g_MainWnd.m_szFavoritesPath); //mod by kawa
26432666 InitFavoritesSubMenu(hSubMenu2, g_MainWnd.m_szFavoritesPath); //add by kawa
@@ -2843,8 +2866,10 @@
28432866 return ID_FAVORITES_ADD;
28442867 else if (lpnkd->wVKey == 'U' && (GET_KEYSTATE(VK_CONTROL)&0x8000))
28452868 return ID_TOOL_USERPATH;
2869+#ifndef __POCKET_PC
28462870 else if (lpnkd->wVKey == VK_F2)
28472871 return ID_FILE_RENAME;
2872+#endif
28482873 else if (lpnkd->wVKey == VK_F3)
28492874 return ID_EDIT_FILESEARCH;
28502875 else if (lpnkd->wVKey == VK_F4)
@@ -2851,11 +2876,13 @@
28512876 return ID_TOOL_OPTION;
28522877 else if (lpnkd->wVKey == VK_F5)
28532878 return ID_VIEW_UPDATE;
2879+#ifndef __POCKET_PC
28542880 else if (lpnkd->wVKey == VK_F6)
28552881 {
28562882 if (g_MainWnd.m_CmdBands.m_Settings.bShowAddressBar)
28572883 SetFocus(g_MainWnd.m_CmdBands.m_hComboBox);
28582884 }
2885+#endif
28592886 else if ((lpnkd->wVKey == 'M' && (GET_KEYSTATE(VK_CONTROL)&0x8000)) ||
28602887 (lpnkd->wVKey == VK_CONTROL && (GET_KEYSTATE(VK_MENU)&0x8000)))
28612888 {
@@ -3031,10 +3058,7 @@
30313058 if (lpnmdi->item.mask & LVIF_IMAGE)
30323059 {
30333060 if (lplic->nIcon == -1)
3034- //MOD START TODA
3035-// lpnmdi->item.iImage = m_pFileImageList->GetImageListIndex(lplic->lpszName, m_szCurrentFolder, lplic->dwAttr);
3036- lpnmdi->item.iImage = m_pFileImageList->GetImageListIndex(lplic->lpszName, lplic->lpszPath, lplic->dwAttr);
3037- //MOD END
3061+ lpnmdi->item.iImage = lplic->nIcon = m_pFileImageList->GetImageListIndex(lplic->lpszName, lplic->lpszPath, lplic->dwAttr);
30383062 else
30393063 lpnmdi->item.iImage = lplic->nIcon;
30403064 }
@@ -3166,8 +3190,8 @@
31663190 LVHITTESTINFO lv_ht;
31673191 memset(&lv_ht, 0x00, sizeof(lv_ht));
31683192 lv_ht.flags = LVHT_ONITEM;
3169- lv_ht.pt.x = LOWORD(dwPos);
3170- lv_ht.pt.y = HIWORD(dwPos);
3193+ lv_ht.pt.x = GET_X_LPARAM(dwPos);
3194+ lv_ht.pt.y = GET_Y_LPARAM(dwPos);
31713195 int nIndex = ListView_HitTest(m_hWnd, &lv_ht);
31723196 if(ListView_GetItemState(m_hWnd, nIndex, LVIS_SELECTED)!=LVIS_SELECTED)
31733197 m_nSelectItem = 0;
@@ -3474,8 +3498,8 @@
34743498 {
34753499 DWORD dwPos = GetMessagePos();
34763500 POINT pt;
3477- pt.x = LOWORD(dwPos);
3478- pt.y = HIWORD(dwPos);
3501+ pt.x = GET_X_LPARAM(dwPos);
3502+ pt.y = GET_Y_LPARAM(dwPos);
34793503 // ScreenToClient(m_hWnd, &pt);
34803504 HMENU hMenu;
34813505 hMenu = GetSubMenu(m_hMenuPopup, 4);
@@ -3598,8 +3622,11 @@
35983622 //お気に入りのディレクトリへ移動
35993623 wcscpy(m_szCurrentFolder, g_MainWnd.m_szFavoritesPath);
36003624
3601- //ショートカットの貼り付け
3625+ //ショートカットの貼り付け(追加した項目に"〜へのショートカット"が付く場合があった問題への対処)
3626+ BOOL bTemp = m_Settings.bNotShortcutName;
3627+ m_Settings.bNotShortcutName = TRUE;
36023628 OnEditPasteShortcut(FALSE);
3629+ m_Settings.bNotShortcutName = bTemp;
36033630
36043631 //選択の解除
36053632 ListView_SetItemState(m_hWnd, -1, 0, LVIS_SELECTED);
@@ -3617,7 +3644,7 @@
36173644 OnViewUpdate(g_MainWnd.m_szFavoritesPath);
36183645
36193646 //お気に入りメニューの再作成
3620- DeleteFavoritesMenu();
3647+ //DeleteFavoritesMenu(); //(InitFavoritesMenu()内に移動)
36213648 InitFavoritesMenu();
36223649 }
36233650
@@ -3829,6 +3856,7 @@
38293856 LoadFolderItem(SEARCH_FOLDER_NAME);
38303857 }
38313858 delete pDlg;
3859+ SetFocus(m_hWnd);//(検索ダイアログから抜けた後ファイル表示にフォーカスが移らなかった問題への対処)
38323860 }
38333861 ///////////////////////////////////////////////////////////////
38343862 void CListView::OnGotoFolderDropDown()
--- trunk/exe/Association.cpp (revision 4)
+++ trunk/exe/Association.cpp (revision 5)
@@ -162,6 +162,7 @@
162162 {
163163 BOOL bRtn = g_pOption->OnOKNewFiletype(hDlg);
164164 EndDialog(hDlg, (INT)bRtn);
165+ SetFocus(g_pOption->m_hWnd);//(「新しい拡張子の作成」ダイアログを開くとそれ以降画面をタップしないと操作が継続できなかった問題への対処)
165166 return TRUE;
166167 }
167168 //キャンセルボタン押下
@@ -400,6 +401,7 @@
400401
401402 //取得データ格納
402403 APPLICATIONLIST *lpList = new APPLICATIONLIST;
404+ ZeroMemory(lpList, sizeof(APPLICATIONLIST));
403405 //1.拡張子
404406 lpList->lpszExt = NULL;
405407 //2.キー名
@@ -543,6 +545,7 @@
543545 continue;
544546
545547 nIconID = 0;
548+ ZeroMemory(szIconPath, sizeof(szIconPath));
546549 dwType = REG_SZ;
547550 dwDataSize = MAX_PATH*sizeof(TCHAR);
548551 if (ERROR_SUCCESS==RegQueryValueEx(hKeyWk, _T(""), 0, &dwType, lpData, &dwDataSize))
@@ -615,6 +618,7 @@
615618
616619 //取得データ格納
617620 APPLICATIONLIST *lpList = new APPLICATIONLIST;
621+ ZeroMemory(lpList, sizeof(APPLICATIONLIST));
618622 //1.拡張子
619623 lpList->lpszExt = new TCHAR[wcslen(szExt)];
620624 wcscpy(lpList->lpszExt, (szExt+1));
@@ -1043,7 +1047,7 @@
10431047 #ifdef __POCKET_PC
10441048 SHINITDLGINFO shidi;
10451049 shidi.dwMask = SHIDIM_FLAGS;
1046- shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN;
1050+ shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU;
10471051 shidi.hDlg = m_hWnd;
10481052 SHInitDialog(&shidi);
10491053 #endif
@@ -1190,6 +1194,9 @@
11901194 ///////////////////////////////////////////////////////////////
11911195 void CAssociation::OnInitFiletype()
11921196 {
1197+ //カーソルを処理中にする
1198+ HCURSOR hCursor = SetCursor(LoadCursor(NULL, IDC_WAIT));
1199+
11931200 //ウィンドウ初期化
11941201 //リストビューの行選択化
11951202 ListView_SetExtendedListViewStyle(m_hListView2,
@@ -1222,6 +1229,9 @@
12221229
12231230 //ボタン設定
12241231 OnClickFiletype();
1232+
1233+ //カーソルを元に戻す
1234+ SetCursor(hCursor);
12251235 }
12261236
12271237 ///////////////////////////////////////////////////////////////
--- trunk/exe/TreeView2.cpp (revision 4)
+++ trunk/exe/TreeView2.cpp (revision 5)
@@ -29,6 +29,12 @@
2929 g_MainWnd.m_ListView.OnGoFront();
3030 return 0;
3131 }
32+ //BSキー押下(1回の操作で2階層上に移動してしまう問題への対処)
33+ if(wParam == VK_BACK)
34+ {
35+ g_MainWnd.m_TreeView.OnViewUpFolder();
36+ return 0;
37+ }
3238 break;
3339 //タップ開始時
3440 case WM_LBUTTONDOWN:
@@ -243,7 +249,7 @@
243249 TreeView_GetItem(m_hWnd, &tvi);
244250
245251 //対象のディレクトリの場合
246- if (wcscmp(szName, szChildName) == 0)
252+ if (_wcsicmp(szName, szChildName) == 0)//(パス文字列の大小文字が実際のパスと違う場合にフォルダ表示が更新されなかった問題への対処)
247253 {
248254 hSelectItem = hParent = hChild;
249255 lpszStart = wcschr(lpszStart, _T('\\'));
@@ -653,9 +659,13 @@
653659 return;
654660 }
655661
656- //右クリックメニュー作成
657- HMENU hMenu;
658- hMenu = GetSubMenu(g_MainWnd.m_ListView.m_hMenuPopup, 1);
662+ //右クリックメニュー作成(マイポケットPC上で「コピー」「切り取り」が正常に動作していなかった問題への対処)
663+ HMENU hMenu = GetSubMenu(g_MainWnd.m_ListView.m_hMenuPopup, 1);
664+ UINT uEnable = g_MainWnd.m_ListView.m_nCount? (MF_BYCOMMAND|MF_ENABLED): (MF_BYCOMMAND|MF_GRAYED);
665+ EnableMenuItem(hMenu, ID_EDIT_PASTE, uEnable);
666+ uEnable = (_tcscmp(szChildName, GetRootName()) == 0)? (MF_BYCOMMAND|MF_GRAYED): (MF_BYCOMMAND|MF_ENABLED);
667+ EnableMenuItem(hMenu, ID_EDIT_CUT, uEnable);
668+ EnableMenuItem(hMenu, ID_EDIT_COPY, uEnable);
659669
660670 //圧縮/検索の有効/無効判定
661671 //g_MainWnd.m_CmdBands.SetEnableCompressSelected(hMenu, 0, 2, g_MainWnd.m_ListView.m_Settings.nCompDLL);
@@ -998,8 +1008,8 @@
9981008 TVHITTESTINFO tv_ht;
9991009 memset(&tv_ht, 0x00, sizeof(tv_ht));
10001010 tv_ht.flags = TVHT_ONITEM;
1001- tv_ht.pt.x = LOWORD(dwPos);
1002- tv_ht.pt.y = HIWORD(dwPos);
1011+ tv_ht.pt.x = GET_X_LPARAM(dwPos);
1012+ tv_ht.pt.y = GET_Y_LPARAM(dwPos);
10031013 ScreenToClient(m_hWnd, &(tv_ht.pt));
10041014
10051015 HTREEITEM hItem = TreeView_HitTest(m_hWnd, &tv_ht);
@@ -1043,8 +1053,8 @@
10431053 {
10441054 DWORD dwPos = GetMessagePos();
10451055 POINT pt;
1046- pt.x = LOWORD(dwPos);
1047- pt.y = HIWORD(dwPos);
1056+ pt.x = GET_X_LPARAM(dwPos);
1057+ pt.y = GET_Y_LPARAM(dwPos);
10481058 // ScreenToClient(m_hWnd, &pt);
10491059 HMENU hMenu;
10501060 hMenu = GetSubMenu(g_MainWnd.m_ListView.m_hMenuPopup, 4);
@@ -1171,7 +1181,11 @@
11711181 g_MainWnd.m_ListView.SelectFile(szPath);
11721182
11731183 //コピー処理を実行
1174- g_MainWnd.m_ListView.OnEditCopy();
1184+ WCHAR szFromPath[MAX_PATH], *ptr;
1185+ _tcscpy(szFromPath, szPath);
1186+ if (ptr = _tcsrchr(szFromPath, _T('\\'))) //フォルダ表示での「コピー元フォルダ」は、カレントフォルダの1階層上を指定
1187+ *ptr = _T('\0');
1188+ g_MainWnd.m_ListView.OnEditCopy(szFromPath);
11751189
11761190 //元のディレクトリへ戻る
11771191 g_MainWnd.m_ListView.LoadFolderItem(szPath, FALSE);
@@ -1186,7 +1200,11 @@
11861200 g_MainWnd.m_ListView.SelectFile(szPath);
11871201
11881202 //切り取り処理を実行
1189- g_MainWnd.m_ListView.OnEditCut();
1203+ WCHAR szFromPath[MAX_PATH], *ptr;
1204+ _tcscpy(szFromPath, szPath);
1205+ if (ptr = _tcsrchr(szFromPath, _T('\\'))) //フォルダ表示での「コピー元フォルダ」は、カレントフォルダの1階層上を指定
1206+ *ptr = _T('\0');
1207+ g_MainWnd.m_ListView.OnEditCut(szFromPath);
11901208
11911209 //元のディレクトリへ戻る
11921210 g_MainWnd.m_ListView.LoadFolderItem(szPath, FALSE);
@@ -1393,11 +1411,17 @@
13931411 //お気に入りのディレクトリへ移動
13941412 wcscpy(g_MainWnd.m_ListView.m_szCurrentFolder, g_MainWnd.m_szFavoritesPath);
13951413
1396- //ショートカットの貼り付け
1414+ //ショートカットの貼り付け(追加した項目に"〜へのショートカット"が付く場合があった問題への対処)
1415+ BOOL bTemp = g_MainWnd.m_ListView.m_Settings.bNotShortcutName;
1416+ g_MainWnd.m_ListView.m_Settings.bNotShortcutName = TRUE;
13971417 g_MainWnd.m_ListView.OnEditPasteShortcut(FALSE);
1418+ g_MainWnd.m_ListView.m_Settings.bNotShortcutName = bTemp;
13981419
13991420 //元のディレクトリへ戻る
14001421 g_MainWnd.m_ListView.LoadFolderItem(szPath, FALSE);
1422+
1423+ //お気に入りメニューの再作成(フォルダ表示から「お気に入りに追加」を行った場合にメニューへの反映が行われていなかった問題への対処)
1424+ g_MainWnd.m_ListView.InitFavoritesMenu();
14011425 }
14021426 #ifdef __POCKET_PC
14031427 ///////////////////////////////////////////////////////////////
@@ -1404,7 +1428,7 @@
14041428 void CTreeView::OnTapAndHold()
14051429 {
14061430 DWORD dwPos = GetMessagePos();
1407- OnRClick(LOWORD(dwPos), HIWORD(dwPos), TRUE);
1431+ OnRClick(GET_X_LPARAM(dwPos), GET_Y_LPARAM(dwPos), TRUE);
14081432 }
14091433 #endif
14101434 ///////////////////////////////////////////////////////////////
--- trunk/exe/UserPathDlg.cpp (revision 4)
+++ trunk/exe/UserPathDlg.cpp (revision 5)
@@ -74,7 +74,7 @@
7474 #ifdef __POCKET_PC
7575 SHINITDLGINFO shidi;
7676 shidi.dwMask = SHIDIM_FLAGS;
77- shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN;
77+ shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU;
7878 shidi.hDlg = m_hWnd;
7979 SHInitDialog(&shidi);
8080 #endif
@@ -248,6 +248,8 @@
248248 }
249249
250250 //正常の場合
251+ while (szPath[_tcslen(szPath)-1] == _T('\\')) //末尾の\を削除(メニューで表示されなくなる問題への対処)
252+ szPath[_tcslen(szPath)-1] = _T('\0');
251253 ListView_SetItemText(m_hList, pDispInfo->item.iItem, 0, szPath);
252254 ModPath(pDispInfo->item.iItem, szPath);
253255 }
@@ -334,6 +336,12 @@
334336 LPNMHDR pNMHDR = (LPNMHDR)lParam;
335337 switch (pNMHDR->code)
336338 {
339+ //(タップ&ホールドおよびプレス&ホールドのアニメーションが出ないようにする)
340+ case NM_RECOGNIZEGESTURE:
341+ {
342+ SetWindowLong(hDlg, DWL_MSGRESULT, 1);
343+ return TRUE;
344+ }
337345 //名前の変更開始
338346 case LVN_BEGINLABELEDIT:
339347 {
--- trunk/exe/ListSort.cpp (revision 4)
+++ trunk/exe/ListSort.cpp (revision 5)
@@ -9,6 +9,8 @@
99
1010 if (pList1->nItem < pList2->nItem)
1111 return -1;
12+ else if (pList1->nItem > pList2->nItem)
13+ return 1;
1214 else if (pList1->nItem == pList2->nItem)
1315 {
1416 //MOD START TODA 文字列比較の高速化 (from Y.Nagamidori)
@@ -23,8 +25,6 @@
2325 return bRaise ? wcsicmp(pList1->lpszName, pList2->lpszName) : wcscmp(pList2->lpszName, pList1->lpszName);
2426 //MOD END
2527 }
26- else if (pList1->nItem > pList2->nItem)
27- return 1;
2828
2929 return 0;
3030 }
@@ -39,6 +39,8 @@
3939 //MOD START TODA 文字列比較の高速化 (from Y.Nagamidori)
4040 if (pList1->nItem < pList2->nItem)
4141 return -1;
42+ else if (pList1->nItem > pList2->nItem)
43+ return 1;
4244 else if (pList1->nItem == pList2->nItem)
4345 {
4446 /*TCHAR szName1[MAX_PATH];
@@ -95,10 +97,8 @@
9597 return bRaise ? 1 : -1;
9698 }
9799 else
98- return wcsicmp(pList1->lpszName, pList2->lpszName);
100+ return bRaise? wcsicmp(pList1->lpszName, pList2->lpszName): wcsicmp(pList2->lpszName, pList1->lpszName);
99101 }
100- else if (pList1->nItem > pList2->nItem)
101- return 1;
102102 //MOD END
103103
104104 return 0;
@@ -113,6 +113,8 @@
113113 //MOD START TODA 文字列比較の高速化 (from Y.Nagamidori)
114114 if (pList1->nItem < pList2->nItem)
115115 return -1;
116+ else if (pList1->nItem > pList2->nItem)
117+ return 1;
116118 else if (pList1->nItem == pList2->nItem)
117119 {
118120 /*TCHAR szName1[MAX_PATH];
@@ -168,10 +170,8 @@
168170 }
169171 }
170172 else
171- return wcsicmp(pList1->lpszName, pList2->lpszName);
173+ return bRaise? wcsicmp(pList1->lpszName, pList2->lpszName): wcsicmp(pList2->lpszName, pList1->lpszName);
172174 }
173- else if (pList1->nItem > pList2->nItem)
174- return 1;
175175 //MOD END
176176
177177 return 0;
--- trunk/exe/MainWnd.cpp (revision 4)
+++ trunk/exe/MainWnd.cpp (revision 5)
@@ -267,7 +267,7 @@
267267 //ADD START TODA
268268 SetFocus(m_ListView.m_hWnd);
269269 //ADD END
270- m_ListView.LoadFolderItem(m_ListView.m_szCurrentFolder);
270+ m_ListView.InitFolderItem(m_ListView.m_szCurrentFolder);//(WS007SHにおいて「詳細」表示でファイル名の幅を狭くしすぎると次回起動時に落ちていた問題への対処)
271271 // SetCursor(hCursor); //DEL TODA
272272 m_hwndPrev = m_ListView.m_hWnd;
273273 }
@@ -282,29 +282,34 @@
282282 void CMainWnd::OnSize(int nWidth, int nHeight)
283283 {
284284 #ifdef __POCKET_PC
285- //MOD START TODA (from GSFinder ver.1.99)
286- //サイズを調整
287- RECT rctSB, rctTB, rctAB;
285+ //サイズを調整(画面の縦横切り替え後にステータスバー/アドレスバーのサイズがおかしくなる問題への対処)
286+ RECT rctSB, rctTB, rctAB, rctCB;
288287 if (m_StatusWnd.m_hWnd)
289288 GetWindowRect(m_StatusWnd.m_hWnd, &rctSB);
290289 if (m_CmdBands.m_hToolbar)
291290 GetWindowRect(m_CmdBands.m_hToolbar, &rctTB);
292291 if (m_CmdBands.m_hAddressbar)
292+ {
293293 GetWindowRect(m_CmdBands.m_hAddressbar, &rctAB);
294+ GetWindowRect(m_CmdBands.m_hComboBox, &rctCB);
295+ }
296+ rctSB.left = rctTB.left = rctAB.left = 0;
297+ rctSB.right = rctTB.right = rctAB.right = GetSystemMetrics(SM_CXSCREEN);
294298 if (m_CmdBands.m_Settings.bShowAddressBar)
299+ {
300+ int ss = 2;
295301 MoveWindow(m_CmdBands.m_hAddressbar, 0, 0, RECT_WIDTH(&rctAB), RECT_HEIGHT(&rctAB), TRUE);
302+ MoveWindow(m_CmdBands.m_hComboBox, ss, ss, RECT_WIDTH(&rctAB) - ss * 2, RECT_HEIGHT(&rctCB), TRUE);
303+ }
304+
296305 if (m_CmdBands.m_Settings.bShowToolBar)
297- MoveWindow(m_CmdBands.m_hToolbar, 0,
298- nHeight - RECT_HEIGHT(&rctTB), RECT_WIDTH(&rctTB), RECT_HEIGHT(&rctTB), TRUE);
306+ MoveWindow(m_CmdBands.m_hToolbar, rctTB.left, nHeight - RECT_HEIGHT(&rctTB), RECT_WIDTH(&rctTB), RECT_HEIGHT(&rctTB), TRUE);
299307 if (m_bShowStatusWnd)
300308 {
301309 if (m_CmdBands.m_Settings.bShowToolBar)
302- MoveWindow(m_StatusWnd.m_hWnd, 0,
303- nHeight - RECT_HEIGHT(&rctSB) - RECT_HEIGHT(&rctTB),
304- RECT_WIDTH(&rctSB), RECT_HEIGHT(&rctSB), TRUE);
310+ MoveWindow(m_StatusWnd.m_hWnd, rctSB.left, nHeight - RECT_HEIGHT(&rctSB) - RECT_HEIGHT(&rctTB), RECT_WIDTH(&rctSB), RECT_HEIGHT(&rctSB), TRUE);
305311 else
306- MoveWindow(m_StatusWnd.m_hWnd, 0,
307- nHeight - RECT_HEIGHT(&rctSB), RECT_WIDTH(&rctSB), RECT_HEIGHT(&rctSB), TRUE);
312+ MoveWindow(m_StatusWnd.m_hWnd, rctSB.left, nHeight - RECT_HEIGHT(&rctSB), RECT_WIDTH(&rctSB), RECT_HEIGHT(&rctSB), TRUE);
308313 }
309314 int nLVTop, nLVBottom;
310315 if (m_CmdBands.m_Settings.bShowAddressBar)
@@ -344,83 +349,83 @@
344349 m_bShowStatusWnd &&
345350 !m_CmdBands.m_Settings.bShowAddressBar)
346351 nLVBottom = nHeight - RECT_HEIGHT(&rctSB);
347- //MOD END
348352
349-//MOD START TODA
350-// if (m_CmdBands.m_Settings.bShowAddressBar)
351-// SetWindowPos(m_ListView.m_hWnd, HWND_TOP, 0, nLVTop - 2 , nWidth, nLVBottom + 3, SWP_SHOWWINDOW);
352-// else
353-// MoveWindow(m_ListView.m_hWnd, 0, nLVTop , nWidth, nLVBottom, TRUE);
354353 if (m_CmdBands.m_Settings.bShowAddressBar)
355354 {
356355 if (m_bShowFolder)
357356 {
358- if(m_bViewSide)
357+ if (m_bViewSide)
359358 {
359+ int ntvw = m_nTreeViewWidth;
360+ int split = APP_SPLIT_SIZE;
360361 SetWindowPos(m_TreeView.m_hWnd, HWND_TOP,
361362 0,
362- nLVTop - 2,
363- m_nTreeViewWidth,
364- nLVBottom + 2, SWP_SHOWWINDOW);
363+ nLVTop,
364+ ntvw,
365+ nLVBottom, SWP_SHOWWINDOW);
365366 SetWindowPos(m_ListView.m_hWnd, HWND_TOP,
366- 0 + (m_nTreeViewWidth + APP_SPLIT_SIZE),
367- nLVTop - 2,
368- nWidth - (m_nTreeViewWidth + APP_SPLIT_SIZE),
369- nLVBottom + 2, SWP_SHOWWINDOW);
367+ 0 + (ntvw + split),
368+ nLVTop,
369+ nWidth - (ntvw + split),
370+ nLVBottom, SWP_SHOWWINDOW);
370371 }
371372 else
372373 {
374+ int ntvh = m_nTreeViewHeight;
375+ int split = APP_SPLIT_SIZE;
373376 SetWindowPos(m_TreeView.m_hWnd, HWND_TOP,
374377 0,
375- nLVTop - 2,
378+ nLVTop,
376379 nWidth,
377- m_nTreeViewHeight, SWP_SHOWWINDOW);
380+ ntvh, SWP_SHOWWINDOW);
378381 SetWindowPos(m_ListView.m_hWnd, HWND_TOP,
379382 0,
380- (nLVTop - 2) + (m_nTreeViewHeight + APP_SPLIT_SIZE),
383+ nLVTop + (ntvh + split),
381384 nWidth,
382- (nLVBottom + 2) - (m_nTreeViewHeight + APP_SPLIT_SIZE), SWP_SHOWWINDOW);
385+ nLVBottom - (ntvh + split), SWP_SHOWWINDOW);
383386 }
384387 }
385388 else
386- SetWindowPos(m_ListView.m_hWnd, HWND_TOP, 0, nLVTop - 2 , nWidth, nLVBottom + 2, SWP_SHOWWINDOW);
387-
389+ SetWindowPos(m_ListView.m_hWnd, HWND_TOP, 0, nLVTop , nWidth, nLVBottom, SWP_SHOWWINDOW);
388390 }
389391 else
390392 {
391393 if (m_bShowFolder)
392394 {
393- if(m_bViewSide)
395+ if (m_bViewSide)
394396 {
397+ int ntvw = m_nTreeViewWidth;
398+ int split = APP_SPLIT_SIZE;
395399 MoveWindow(m_TreeView.m_hWnd,
396400 0,
397401 nLVTop,
398- m_nTreeViewWidth,
402+ ntvw,
399403 nLVBottom, TRUE);
400404 MoveWindow(m_ListView.m_hWnd,
401- 0 + (m_nTreeViewWidth + APP_SPLIT_SIZE),
405+ 0 + (ntvw + split),
402406 nLVTop,
403- nWidth - (m_nTreeViewWidth + APP_SPLIT_SIZE),
407+ nWidth - (ntvw + split),
404408 nLVBottom, TRUE);
405409 }
406410 else
407411 {
412+ int ntvh = m_nTreeViewHeight;
413+ int split = APP_SPLIT_SIZE;
408414 MoveWindow(m_TreeView.m_hWnd,
409415 0,
410416 nLVTop,
411417 nWidth,
412- m_nTreeViewHeight, TRUE);
418+ ntvh, TRUE);
413419 MoveWindow(m_ListView.m_hWnd,
414420 0,
415- nLVTop + (m_nTreeViewHeight + APP_SPLIT_SIZE),
421+ nLVTop + (ntvh + split),
416422 nWidth,
417- nLVBottom - (m_nTreeViewHeight + APP_SPLIT_SIZE), TRUE);
423+ nLVBottom - (ntvh + split), TRUE);
418424 }
419425 }
420426 else
421427 MoveWindow(m_ListView.m_hWnd, 0, nLVTop , nWidth, nLVBottom, TRUE);
422428 }
423-//MOD END
424429 #else
425430 //サイズを調整
426431 RECT rctCB, rctSB;
@@ -1122,16 +1127,6 @@
11221127 if (SipGetInfo(&si)) {
11231128 if (si.fdwFlags & SIPF_ON) {
11241129 OnSize(RECT_WIDTH(&si.rcVisibleDesktop), RECT_HEIGHT(&si.rcVisibleDesktop));
1125-
1126- //選択しているものを見えるようにする
1127- for (int i = 0; i < ListView_GetItemCount(m_ListView.m_hWnd); i++)
1128- {
1129- if (ListView_GetItemState(m_ListView.m_hWnd, i, LVIS_FOCUSED) == LVIS_FOCUSED)
1130- {
1131- ListView_EnsureVisible(m_ListView.m_hWnd, i, FALSE);
1132- break;
1133- }
1134- }
11351130 }
11361131 else
11371132 {
@@ -1142,6 +1137,11 @@
11421137 }
11431138 }
11441139 m_dwLastSipInfo = si.fdwFlags;
1140+
1141+ //選択しているものを見えるようにする(縦横画面切り替え時にファイル表示で選択しているファイルが隠れてしまうことがあった問題への対処)
1142+ int nItem = ListView_GetNextItem(m_ListView.m_hWnd, -1, LVNI_ALL|LVNI_FOCUSED);
1143+ if (nItem >= 0)
1144+ ListView_EnsureVisible(m_ListView.m_hWnd, nItem, FALSE);
11451145 #else
11461146 RECT rc;
11471147 GetClientRect(m_hWnd, &rc);
@@ -1160,7 +1160,7 @@
11601160 //ステータスバーのサイズ調整
11611161 if(m_bShowStatusWnd) {
11621162 SendMessage(m_StatusWnd.m_hWnd, WM_SIZE, wParam, lParam);
1163- m_StatusWnd.OnSize(LOWORD(lParam), HIWORD(lParam));
1163+ m_StatusWnd.OnSize(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
11641164 }
11651165 }
11661166
@@ -1170,7 +1170,7 @@
11701170 //MOD START TODA (移動範囲設定 from Y.Nagamidori)
11711171 if(m_bViewSide)
11721172 {
1173- int x = LOWORD(lParam);
1173+ int x = GET_X_LPARAM(lParam);
11741174
11751175 //移動範囲設定(下限/上限)
11761176 int min = 20;
--- trunk/readme.txt (revision 4)
+++ trunk/readme.txt (revision 5)
@@ -0,0 +1,152 @@
1+========================================================================
2+GSFinder+ for WM5 リコンパイル版
3+2008年12月・ごりぽんソフトウェア
4+========================================================================
5+
6+●概要
7+ 現時点(2008年12月現在)で、拙作GSFinder+ for W-ZERO3で行われた不具合の修
8+正のうち、GSFinder+シリーズ全般に適用できる物を、かわ。氏の公開されている
9+GSFinder+ for WM5に対して反映させたものです。
10+
11+かわ。氏
12+「GSFinder+ for WM5」
13+http://www.geocities.jp/gsfinder_wm5/
14+
15+
16+●動作環境
17+ WindowsMobile5 PocketPCおよびWindowsMobile6以降のClassic/Professional。
18+ WindowsMobile5 PocketPCのSDKでビルドしているため、WindowsMobile5
19+SmartphoneおよびWindowsMobile6以降のStandardでは動作しません。
20+ WindowsMobile2003のPocketPCでも動作するはずですが、前述の通りビルドに使っ
21+ているSDKがWindowsMobile5向けのものなので、何かしら問題が出る可能性はあり
22+ます。
23+
24+
25+●インストール
26+ デバイスにGSFinder-WM5J-recomp.CAB(日本語版)または
27+GSFinder-WM5E-recomp.CAB(英語版)をコピーし、ファイルエクスプローラ等から
28+実行(タップするなど)してインストールしてください。
29+
30+
31+●使用方法
32+ 基本的な操作方法やメニューなどは元のバージョンに準じます。
33+ 不具合修正のみなので、操作方法に違いはありません。
34+
35+
36+●アンインストール
37+ スタート→設定→システム→プログラムの削除から、
38+"goripon GSFinder+ for WindowsMobile(recomp)"を選んでアンインストールして
39+ください。
40+
41+
42+●注意事項
43+ 本ソフトウェアの使用による、いかなる損害に対しても、作者は責任を負いま
44+せん。利用は個人の責任でお願いします。
45+ また、本ソフトウェアについて、かわ。氏、および歴代のGSFinder作者諸氏に
46+は問い合わせをしないでください。
47+ 動作・バグ報告、情報提供、要望などは、このテキストに記載のある連絡先ま
48+でお寄せください。
49+ 商業誌や商業ベースのWEBページに掲載する場合は、(可能であれば掲載予定の
50+内容を添えて)事前に許可を取ってください。本ソフトウェアは基本的に取り扱わ
51+れること自体は拒否しませんが、原作者の居るものですので、私が原作者と勘違
52+いされるような扱いはしないでください。
53+
54+
55+●謝辞
56+ GSFinder+ WM5をソースごと公開してくれているかわ。氏および歴代のGSFinder
57+作者の方々に感謝します。
58+ 色々な報告や要望をくれた皆様やブログのコメントにも感謝です。
59+
60+
61+●ソースコードの配布とライセンスについて
62+ 元にしたGSFinder+シリーズがGNU General Public Licenseに従って配布されて
63+いますので、本ソフトウェアもそれに準じます。
64+ ソースコードは実行ファイルと同じ場所で公開されていますので、そこから入
65+手してください。
66+
67+
68+●同梱されているソフトウェアについて
69+ DLL同梱版には以下のソフトウェアを同梱しています。
70+
71+MToda氏
72+「Unofficial UnZip.dll for WindowsCE」
73+http://page.freett.com/todamitsu/UnZip.htm
74+「Unofficial UnLHA.dll for WindowsCE」
75+http://page.freett.com/todamitsu/UnLha.htm
76+
77+ UnZip.dll/UnLha.dllについては、MToda氏に連絡が取れなかったため、原作者
78+であるUema2氏に連絡を取って、添付に問題が無い(付属のドキュメント記載のラ
79+イセンス通りである)ことを確認しています。
80+
81+uema2氏によるオリジナル版UnZip.dll/UnLha.dll
82+http://hp.vector.co.jp/authors/VA023546/soft/unXXXce.html
83+
84+
85+●連絡先
86+ごりぽんソフトウェア・ごりぽん
87+メール:goriponsoft@gmail.com
88+ブログ:http://d.hatena.ne.jp/goriponsoft/
89+
90+
91+●修正内容
92+ GSFinder+ for W-ZERO3から反映させた修正内容は以下の通りです。日付は、
93+GSFinder+ for W-ZERO3における修正日となっています。
94+
95+2007/08/06
96+・画面の縦横切り替え後にステータスバー/アドレスバーのサイズがおかしくなる点を修正
97+・ユーザーパスの登録で末尾に'\'を付けるとメニューで正常に表示されなくなっていたのを修正
98+・WindowsMobile非対応部分を対応するように修正(※メニューの不完全部分を修正)
99+・「ユーザーパス」で登録したパスの表示が崩れていたのを修正
100+・「お気に入りの整理」を繰り返すとメニューが壊れていたのを修正
101+
102+2007/08/18
103+・ファイル表示のアイコンの整列でソートの比較処理が一部うまく動いていなかったのを修正
104+
105+2007/08/20
106+・内部での座標の取り扱いに誤り(符号の有無)があったので修正
107+
108+2007/09/02
109+・フォルダ表示側で「コピー」「切り取り」を行った場合にコピー中の総ファイル数表示がおかしくなっていたのを修正
110+・フォルダ表示の「マイポケットPC」上で「コピー」「切り取り」が正常に動作していなかったので選択できないように修正
111+
112+2007/09/04
113+・オプション設定の「ファイルの種類」およびファイルメニューの「プログラムの選択」で発生していた不正処理に対処
114+
115+2007/09/09
116+・フォルダ表示で[クリア]または[BS]キーを押すと1回の操作で2階層上に移動してしまっていたのを修正
117+・検索ダイアログから抜けた後ファイル表示にフォーカスが移るよう修正
118+
119+2007/09/16
120+・WS007SHにおいて「詳細」表示でファイル名の幅を狭くしすぎると次回起動時に落ちていたのを修正
121+
122+2007/12/26
123+・「すべて選択」の後に「フォルダにコピー」を行った場合にハングアップする場合があったのを修正
124+
125+2007/12/27
126+・機能していなかった[F2]/[F6]キー関連の無駄なコードを削除(※マクロ__POCKETPCが定義済の場合のみ)
127+・フォルダコピーでのハングアップバグ修正に不完全な部分があったので再修正
128+
129+2008/01/07
130+・ファイルの圧縮で不正な書庫が作成されていたのを修正
131+・オプション画面の「ファイルの種類」で処理に時間が掛かる場合にはウェイトカーソルを表示するよう修正
132+
133+2008/01/14
134+・アドレスバーのプルダウンリストの余計な開閉を抑制するよう修正
135+・アドレスバーに入力したパス文字列の大小文字が実際のパスと違っていた場合にフォルダ表示が更新されなかったのを修正
136+・「お気に入りに追加」を行うと追加した項目に"〜へのショートカット"が付く場合があったのを修正
137+・フォルダ表示から「お気に入りに追加」を行った場合にメニューへの反映が行われていなかったのを修正
138+
139+2008/01/20
140+・縦横画面切り替え時にファイル表示で選択しているファイルが隠れてしまうことがあったのを修正
141+・オプション設定の「ファイルの種類」で「新しい拡張子の作成」ダイアログを開くとそれ以降画面をタップしないと操作が継続できなかったのを修正
142+
143+2008/05/23
144+・フォルダ内のファイルの合計容量が2GBを超えた場合にステータスバーの表示がマイナス値になってしまっていたのを修正
145+・リストビューアイコンの遅延読み込みがうまく動作していなかったのを修正
146+
147+2008/07/02
148+・ファイル日時表示の処理内に日時の文字列を格納するバッファのサイズを誤って指定していた部分があったのを修正
149+・ユーザーパス登録画面でタップ&ホールドのアニメーションが出せてしまっていたのを修正
150+
151+2008/11/24
152+・アドレスバーに入力されたパスの末尾に'\'が付いていると上層フォルダへの移動がうまく行われなかったのを修正
旧リポジトリブラウザで表示