| 
					
				 | 
			
			
				@@ -100,6 +100,8 @@ CCP_MainApp::CCP_MainApp() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	m_GroupText = "History";
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	m_FocusID = -1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	ClearOldGroupState();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	m_bAsynchronousRefreshView = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	m_lClipsSent = 0;
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -625,7 +627,43 @@ void CCP_MainApp::IC_Paste() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // Groups
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-BOOL CCP_MainApp::EnterGroupID(long lID)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void CCP_MainApp::SaveCurrentGroupState()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	m_oldGroupID = m_GroupID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	m_oldGroupParentID = m_GroupParentID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	m_oldGroupText = m_GroupText;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void CCP_MainApp::ClearOldGroupState()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	m_oldGroupID = -2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	m_oldGroupParentID = -2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	m_oldGroupText = _T("");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+BOOL CCP_MainApp::TryEnterOldGroupState()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	BOOL enteredGroup = FALSE;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if(m_oldGroupID > -2)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		m_GroupID = m_oldGroupID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		m_GroupParentID = m_oldGroupParentID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		m_GroupText = m_oldGroupText;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ClearOldGroupState();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		theApp.RefreshView();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(QPasteWnd())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			QPasteWnd()->UpdateStatus(true);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		enteredGroup = TRUE;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return enteredGroup;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+BOOL CCP_MainApp::EnterGroupID(long lID, BOOL clearOldGroupState/* = TRUE*/, BOOL saveCurrentGroupState/* = FALSE*/)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	BOOL bResult = FALSE;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -634,6 +672,16 @@ BOOL CCP_MainApp::EnterGroupID(long lID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	DWORD startTick = GetTickCount();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if(clearOldGroupState)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ClearOldGroupState();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if(saveCurrentGroupState)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		SaveCurrentGroupState();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// if we are switching to the parent, focus on the previous group
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if(m_GroupParentID == lID && m_GroupID > 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		m_FocusID = m_GroupID;
 
			 |