SF.net SVN: mahogany:[7590] trunk/M
[email protected] Tue, 08 Dec 2009 13:23:12 +0000
| Newsgroups | gmane.mail.mahogany.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision: 7590
http://mahogany.svn.sourceforge.net/mahogany/?rev=7590&view=rev
Author: vadz
Date: 2009-12-08 13:23:12 +0000 (Tue, 08 Dec 2009)
Log Message:
-----------
Fix folders reopening on resume from suspend under Windows Vista/7.
EVT_POWER_SUSPENDING event is not sent by these OS so our code reacting to it
was never called.
Modified Paths:
--------------
trunk/M/include/gui/wxMainFrame.h
trunk/M/src/gui/wxMainFrame.cpp
Modified: trunk/M/include/gui/wxMainFrame.h
===================================================================
--- trunk/M/include/gui/wxMainFrame.h 2009-12-05 01:03:17 UTC (rev 7589)
+++ trunk/M/include/gui/wxMainFrame.h 2009-12-08 13:23:12 UTC (rev 7590)
@@ -68,10 +68,8 @@
void OnAbout(wxCommandEvent &) { OnMenuCommand(WXMENU_HELP_ABOUT);}
#ifdef wxHAS_POWER_EVENTS
- void OnPowerSuspending(wxPowerEvent& event);
void OnPowerSuspended(wxPowerEvent& event);
- void OnPowerSuspendCancel(wxPowerEvent& event) { DoResume(); }
- void OnPowerResume(wxPowerEvent&) { DoResume(); }
+ void OnPowerResume(wxPowerEvent& event);
#endif // wxHAS_POWER_EVENTS
@@ -128,9 +126,6 @@
#ifdef wxHAS_POWER_EVENTS
- /// Reopen the folders closed when we suspended
- void DoResume();
-
// the list of folders automatically closed when we suspended or NULL
MFolderList *m_foldersToReopen;
Modified: trunk/M/src/gui/wxMainFrame.cpp
===================================================================
--- trunk/M/src/gui/wxMainFrame.cpp 2009-12-05 01:03:17 UTC (rev 7589)
+++ trunk/M/src/gui/wxMainFrame.cpp 2009-12-08 13:23:12 UTC (rev 7590)
@@ -565,9 +565,7 @@
EVT_CHOICE(IDC_IDENT_COMBO, wxMainFrame::OnIdentChange)
#ifdef wxHAS_POWER_EVENTS
- EVT_POWER_SUSPENDING(wxMainFrame::OnPowerSuspending)
EVT_POWER_SUSPENDED(wxMainFrame::OnPowerSuspended)
- EVT_POWER_SUSPEND_CANCEL(wxMainFrame::OnPowerSuspendCancel)
EVT_POWER_RESUME(wxMainFrame::OnPowerResume)
#endif // wxHAS_POWER_EVENTS
END_EVENT_TABLE()
@@ -1130,7 +1128,7 @@
#ifdef wxHAS_POWER_EVENTS
-void wxMainFrame::OnPowerSuspending(wxPowerEvent& event)
+void wxMainFrame::OnPowerSuspended(wxPowerEvent& WXUNUSED(event))
{
ASSERT_MSG( !m_foldersToReopen, _T("didn't resume from last suspend?") );
@@ -1139,31 +1137,27 @@
int nClosed = MailFolder::CloseAll(m_foldersToReopen);
if ( nClosed < 0 )
{
- DoResume();
-
- wxLogError(_("The system cannot be suspended because some folders "
- "are still opened."));
- event.Veto();
+ wxLogWarning(_("Failed to gracefully close some opened folders on "
+ "system suspend."));
}
else if ( nClosed )
{
wxLogStatus(_("Closed %lu folders which will be reopened on resume."),
(unsigned long)m_foldersToReopen->size());
}
- else // no open folders
+
+ if ( nClosed <= 0 )
{
+ // we don't need it finally
delete m_foldersToReopen;
m_foldersToReopen = NULL;
}
-}
-void wxMainFrame::OnPowerSuspended(wxPowerEvent& WXUNUSED(event))
-{
- // save all options
+ // save all options just in case
Profile::FlushAll();
}
-void wxMainFrame::DoResume()
+void wxMainFrame::OnPowerResume(wxPowerEvent& WXUNUSED(event))
{
if ( !m_foldersToReopen )
return;
@@ -1173,7 +1167,7 @@
MFolderList *foldersToReopen = m_foldersToReopen;
m_foldersToReopen = NULL;
- wxLogStatus(_("Reopening %lu folders"),
+ wxLogStatus(_("Reopening %lu folders on system resume"),
(unsigned long)foldersToReopen->size());
for ( MFolderList::iterator i = foldersToReopen->begin();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev