@@ -4006,29 +4006,42 @@ void CEditWnd::ChangeFileNameNotify( const WCHAR* pszTabCaption, const WCHAR* _p
40064006
40074007 CRecentEditNode cRecentEditNode;
40084008 int nIndex = cRecentEditNode.FindItemByHwnd ( GetHwnd () );
4009+ bool changed = false ;
40094010 if ( -1 != nIndex )
40104011 {
40114012 EditNode *p = cRecentEditNode.GetItem ( nIndex );
40124013 if ( p )
40134014 {
4014- wcsncpy_s ( p->m_szTabCaption , _countof (p->m_szTabCaption ), pszTabCaption, _TRUNCATE );
4015+ decltype (p->m_szTabCaption ) caption;
4016+ wcsncpy_s (caption, _countof (caption), pszTabCaption, _TRUNCATE);
4017+ if (wcscmp (caption, p->m_szTabCaption ) != 0 ) {
4018+ wcscpy_s (p->m_szTabCaption , caption);
4019+ changed = true ;
4020+ }
40154021
40164022 // 2006.01.28 ryoji ファイル名、Grepモード追加
4017- wcsncpy_s ( p->m_szFilePath , _countof2 (p->m_szFilePath ), pszFilePath, _TRUNCATE );
4023+ decltype (p->m_szFilePath ) filePath;
4024+ wcsncpy_s (filePath, _countof2 (filePath), pszFilePath, _TRUNCATE );
4025+ if (wcscmp (filePath, p->m_szFilePath ) != 0 ) {
4026+ p->m_szFilePath = filePath;
4027+ changed = true ;
4028+ }
40184029
40194030 p->m_bIsGrep = bIsGrep;
40204031 }
40214032 }
40224033 cRecentEditNode.Terminate ();
40234034
4024- // ファイル名変更通知をブロードキャストする。
4025- int nGroup = CAppNodeManager::getInstance ()->GetEditNode ( GetHwnd () )->GetGroup ();
4026- CAppNodeGroupHandle (nGroup).PostMessageToAllEditors (
4027- MYWM_TAB_WINDOW_NOTIFY,
4028- (WPARAM)TWNT_FILE,
4029- (LPARAM)GetHwnd (),
4030- GetHwnd ()
4031- );
4035+ if (changed) {
4036+ // ファイル名変更通知をブロードキャストする。
4037+ int nGroup = CAppNodeManager::getInstance ()->GetEditNode ( GetHwnd () )->GetGroup ();
4038+ CAppNodeGroupHandle (nGroup).PostMessageToAllEditors (
4039+ MYWM_TAB_WINDOW_NOTIFY,
4040+ (WPARAM)TWNT_FILE,
4041+ (LPARAM)GetHwnd (),
4042+ GetHwnd ()
4043+ );
4044+ }
40324045
40334046 return ;
40344047}
0 commit comments