MGR: Update Tasks panel only when necessary, trying again to fix redraw glitch on Windows; fix Mac Messages tab not getting deselection events due to wxWidgets bug.

svn path=/trunk/boinc/; revision=16587
This commit is contained in:
Charlie Fenton 2008-12-01 09:44:01 +00:00
parent 659becc98c
commit 0e401b7f8d
5 changed files with 32 additions and 2 deletions

View File

@ -9714,3 +9714,16 @@ David 28 Nov 2008
update_translations.php
user/
get_project_config.php
Charlie 1 Dec 2008
- MGR: In Messages tab, work around Mac wxWidgets bug: virtual list control
does not post deselection events; I had previously done this for the
Projects, Tasks and Transfers tabs.
- MGR: Update Tasks panel only when necessary to try again to fix latest
instance of cosmetic bug reported by David on Windows.
clientgui/
ViewMessages.cpp
ViewProjects.cpp
ViewTransfers.cpp
ViewWork.cpp

View File

@ -51,6 +51,7 @@ BEGIN_EVENT_TABLE (CViewMessages, CBOINCBaseView)
EVT_BUTTON(ID_TASK_MESSAGES_FILTERBYPROJECT, CViewMessages::OnMessagesFilter)
EVT_LIST_ITEM_SELECTED(ID_LIST_MESSAGESVIEW, CViewMessages::OnListSelected)
EVT_LIST_ITEM_DESELECTED(ID_LIST_MESSAGESVIEW, CViewMessages::OnListDeselected)
EVT_LIST_CACHE_HINT(ID_LIST_MESSAGESVIEW, CViewMessages::OnCacheHint)
END_EVENT_TABLE ()

View File

@ -650,7 +650,7 @@ bool CViewProjects::IsSelectionManagementNeeded() {
void CViewProjects::UpdateSelection() {
CTaskItemGroup* pGroup = NULL;
PROJECT* project = NULL;
CMainDocument* pDoc = wxGetApp().GetDocument();
CMainDocument* pDoc = NULL;
int i, n, row;
bool wasSuspended=false, wasNoNewWork=false;
bool enableUpdate = false;
@ -660,6 +660,12 @@ void CViewProjects::UpdateSelection() {
bool enableDetach = false;
bool enableProperties = false;
if(!m_bForceUpdateSelection) {
return;
}
pDoc = wxGetApp().GetDocument();
wxASSERT(pDoc);
wxASSERT(wxDynamicCast(pDoc, CMainDocument));
wxASSERT(m_pTaskPane);

View File

@ -441,6 +441,10 @@ bool CViewTransfers::IsSelectionManagementNeeded() {
void CViewTransfers::UpdateSelection() {
CTaskItemGroup* pGroup = m_TaskGroups[0];
if(!m_bForceUpdateSelection) {
return;
}
CBOINCBaseView::PreUpdateSelection();
if (m_pListPane->GetSelectedItemCount()) {

View File

@ -590,7 +590,7 @@ void CViewWork::UpdateSelection() {
RESULT* result = NULL;
PROJECT* project = NULL;
CC_STATUS status;
CMainDocument* pDoc = wxGetApp().GetDocument();
CMainDocument* pDoc = NULL;
int i, n, row;
bool wasSuspended=false, all_same_project=false;
std::string first_project_url;
@ -599,6 +599,12 @@ void CViewWork::UpdateSelection() {
bool enableAbort = false;
bool enableProperties = false;
if(!m_bForceUpdateSelection) {
return;
}
pDoc = wxGetApp().GetDocument();
wxASSERT(NULL != pDoc);
wxASSERT(wxDynamicCast(pDoc, CMainDocument));
wxASSERT(NULL != m_pTaskPane);