浏览代码

added setting the focus back to the previous focused window when closing ditto's window

git-svn-id: svn://svn.code.sf.net/p/ditto-cp/code/trunk@625 595ec19a-5cb4-439b-94a8-42fb3063c22c
sabrogden 13 年之前
父节点
当前提交
2ff3194f14
共有 3 个文件被更改,包括 15 次插入11 次删除
  1. 13 9
      QPasteWnd.cpp
  2. 1 1
      QPasteWnd.h
  3. 1 1
      QuickPaste.cpp

+ 13 - 9
QPasteWnd.cpp

@@ -381,7 +381,7 @@ void CQPasteWnd::OnActivate(UINT nState, CWnd *pWndOther, BOOL bMinimized)
 
         if(!g_Opt.m_bShowPersistent)
         {
-            HideQPasteWindow();
+            HideQPasteWindow(false);
         }
 		else if(g_Opt.GetAutoHide())
 		{
@@ -411,7 +411,7 @@ void CQPasteWnd::OnActivate(UINT nState, CWnd *pWndOther, BOOL bMinimized)
     }
 }
 
-BOOL CQPasteWnd::HideQPasteWindow()
+BOOL CQPasteWnd::HideQPasteWindow(bool releaseFocus)
 {
     Log(_T("Start of HideQPasteWindow"));
 
@@ -428,7 +428,6 @@ BOOL CQPasteWnd::HideQPasteWindow()
 	}
 
     theApp.m_bShowingQuickPaste = false;
-    //theApp.m_activeWnd.ReleaseFocus();
 
     KillTimer(TIMER_FILL_CACHE);
 
@@ -461,6 +460,10 @@ BOOL CQPasteWnd::HideQPasteWindow()
         }
     }
 
+	if(releaseFocus)
+	{
+		theApp.m_activeWnd.ReleaseFocus();
+	}
 
     Log(StrF(_T("End of HideQPasteWindow, ItemCount: %d"), m_listItems.size()));
 
@@ -2109,7 +2112,7 @@ void CQPasteWnd::OnMenuEdititem()
     m_lstHeader.GetSelectionItemData(IDs);
     theApp.EditItems(IDs, true);
 
-    HideQPasteWindow();
+    HideQPasteWindow(false);
 }
 
 void CQPasteWnd::OnMenuNewclip()
@@ -2118,7 +2121,7 @@ void CQPasteWnd::OnMenuNewclip()
     IDs.Add(-1);
     theApp.EditItems(IDs, true);
 
-    HideQPasteWindow();
+    HideQPasteWindow(false);
 }
 
 
@@ -2438,12 +2441,13 @@ BOOL CQPasteWnd::PreTranslateMessage(MSG *pMsg)
 								if(g_Opt.GetShowPersistent() && this->GetMinimized() == false)
 								{
 									MinMaxWindow(FORCE_MIN);
+									theApp.m_activeWnd.ReleaseFocus();
 								}
 								else
 								{
 									if(m_GroupTree.IsWindowVisible() == FALSE)
 									{
-										HideQPasteWindow();
+										HideQPasteWindow(true);
 										return TRUE;
 									}
 								}
@@ -2580,7 +2584,7 @@ LRESULT CQPasteWnd::OnProperties(WPARAM wParam, LPARAM lParam)
 
 void CQPasteWnd::OnClose()
 {
-    HideQPasteWindow();
+    HideQPasteWindow(true);
 }
 
 void CQPasteWnd::OnBegindrag(NMHDR *pNMHDR, LRESULT *pResult)
@@ -3051,7 +3055,7 @@ LRESULT CQPasteWnd::OnGroupTreeMessage(WPARAM wParam, LPARAM lParam)
     CWnd *p = GetFocus();
     if(p == NULL)
     {
-        HideQPasteWindow();
+        HideQPasteWindow(false);
     }
 
     m_bHideWnd = true;
@@ -3102,7 +3106,7 @@ LRESULT CQPasteWnd::OnToolTipWndInactive(WPARAM wParam, LPARAM lParam)
         CWnd *p = GetFocus();
         if(p == NULL)
         {
-            HideQPasteWindow();
+            HideQPasteWindow(false);
         }
     }
 

+ 1 - 1
QPasteWnd.h

@@ -128,7 +128,7 @@ public:
     void RefreshNc();
     void UpdateStatus(bool bRepaintImmediately = false); // regenerates the status (caption) text
     BOOL FillList(CString csSQLSearch = "");
-    BOOL HideQPasteWindow();
+    BOOL HideQPasteWindow(bool releaseFocus);
     BOOL ShowQPasteWindow(BOOL bFillList = TRUE);
     void MoveControls();
 

+ 1 - 1
QuickPaste.cpp

@@ -241,7 +241,7 @@ void CQuickPaste::HideQPasteWnd()
 	if(m_pwndPaste)
 	{
 		if (IsWindow(m_pwndPaste->m_hWnd))
-			m_pwndPaste->HideQPasteWindow();
+			m_pwndPaste->HideQPasteWindow(true);
 	}
 }