[Haiku-commits] r28907 - haiku/trunk/src/servers/app
axeld at BerliOS
axeld at mail.berlios.de
Thu Jan 15 12:33:15 CET 2009
Author: axeld
Date: 2009-01-15 12:33:13 +0100 (Thu, 15 Jan 2009)
New Revision: 28907
ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28907&view=rev
Modified:
haiku/trunk/src/servers/app/Desktop.cpp
Log:
* Moved the screen change to a later point, as the workspace-leaving message
did arrive after the change; now it's: leave workspace, change screen,
enter workspace.
Modified: haiku/trunk/src/servers/app/Desktop.cpp
===================================================================
--- haiku/trunk/src/servers/app/Desktop.cpp 2009-01-14 23:26:10 UTC (rev 28906)
+++ haiku/trunk/src/servers/app/Desktop.cpp 2009-01-15 11:33:13 UTC (rev 28907)
@@ -945,14 +945,6 @@
int32 previousIndex = fCurrentWorkspace;
rgb_color previousColor = fWorkspaces[fCurrentWorkspace].Color();
bool movedMouseEventWindow = false;
- display_mode previousMode, newMode;
- fVirtualScreen.ScreenAt(0)->GetMode(&previousMode);
- fVirtualScreen.RestoreConfiguration(*this,
- fSettings->WorkspacesMessage(index));
- fVirtualScreen.ScreenAt(0)->GetMode(&newMode);
- // We only need to invalidate the entire desktop if we changed display modes
- if (memcmp(&previousMode, &newMode, sizeof(display_mode)))
- ScreenChanged(fVirtualScreen.ScreenAt(0), false);
if (fMouseEventWindow != NULL) {
if (fMouseEventWindow->IsNormal()) {
@@ -1010,6 +1002,17 @@
fPreviousWorkspace = fCurrentWorkspace;
fCurrentWorkspace = index;
+ // Change the display mode, if needed
+ // TODO: this needs to be done for all screens
+ display_mode previousMode, newMode;
+ fVirtualScreen.ScreenAt(0)->GetMode(&previousMode);
+ fVirtualScreen.RestoreConfiguration(*this,
+ fSettings->WorkspacesMessage(index));
+ fVirtualScreen.ScreenAt(0)->GetMode(&newMode);
+ // We only need to invalidate the entire desktop if we changed display modes
+ if (memcmp(&previousMode, &newMode, sizeof(display_mode)))
+ ScreenChanged(fVirtualScreen.ScreenAt(0), false);
+
// show windows, and include them in the changed region - but only
// those that were not visible before (or whose position changed)
More information about the Haiku-commits
mailing list