hrev45223 adds 2 changesets to branch 'master' old head: ec96e7af1a0ac6dd9fc51dc3f88a5344154a002b new head: c33a865c7c3ce73ab74354a41ac83cf4de20d726 overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=c33a865+%5Eec96e7a ---------------------------------------------------------------------------- c491b5a: When the workspace changes use the passed in workspace screen mode ...instead of the current workspace screen mode that we are switching from. Fixes #9415 Also don't ignore the returned the status code when updating the screen mode. c33a865: Style fixes only. [ John Scipione <jscipione@xxxxxxxxx> ] ---------------------------------------------------------------------------- 5 files changed, 25 insertions(+), 17 deletions(-) src/preferences/screen/AlertView.cpp | 1 - src/preferences/screen/ScreenApplication.cpp | 4 +-- src/preferences/screen/ScreenMode.cpp | 1 - src/preferences/screen/ScreenWindow.cpp | 35 +++++++++++++++--------- src/preferences/screen/ScreenWindow.h | 1 + ############################################################################ Commit: c491b5ad85c60a4b07821f7e9fbf34f60a26375e URL: http://cgit.haiku-os.org/haiku/commit/?id=c491b5a Author: John Scipione <jscipione@xxxxxxxxx> Date: Thu Jan 31 19:17:31 2013 UTC Ticket: https://dev.haiku-os.org/ticket/9415 When the workspace changes use the passed in workspace screen mode ...instead of the current workspace screen mode that we are switching from. Fixes #9415 Also don't ignore the returned the status code when updating the screen mode. ---------------------------------------------------------------------------- diff --git a/src/preferences/screen/ScreenWindow.cpp b/src/preferences/screen/ScreenWindow.cpp index c0f7b45..4acde46 100644 --- a/src/preferences/screen/ScreenWindow.cpp +++ b/src/preferences/screen/ScreenWindow.cpp @@ -803,15 +803,24 @@ ScreenWindow::_UpdateControls() void ScreenWindow::_UpdateActiveMode() { + _UpdateActiveMode(current_workspace()); +} + + +void +ScreenWindow::_UpdateActiveMode(int32 workspace) +{ // Usually, this function gets called after a mode // has been set manually; still, as the graphics driver // is free to fiddle with mode passed, we better ask // what kind of mode we actually got - fScreenMode.Get(fActive); - fSelected = fActive; + if (fScreenMode.Get(fActive, workspace) == B_OK) { + fSelected = fActive; - _UpdateMonitor(); - _UpdateControls(); + _UpdateMonitor(); + _BuildSupportedColorSpaces(); + _UpdateControls(); + } } @@ -851,11 +860,12 @@ ScreenWindow::ScreenChanged(BRect frame, color_space mode) void ScreenWindow::WorkspaceActivated(int32 workspace, bool state) { - fScreenMode.GetOriginalMode(fOriginal, workspace); - _UpdateActiveMode(); + if (fScreenMode.GetOriginalMode(fOriginal, workspace) == B_OK) { + _UpdateActiveMode(workspace); - BMessage message(UPDATE_DESKTOP_COLOR_MSG); - PostMessage(&message, fMonitorView); + BMessage message(UPDATE_DESKTOP_COLOR_MSG); + PostMessage(&message, fMonitorView); + } } diff --git a/src/preferences/screen/ScreenWindow.h b/src/preferences/screen/ScreenWindow.h index b5bedd8..aa90542 100644 --- a/src/preferences/screen/ScreenWindow.h +++ b/src/preferences/screen/ScreenWindow.h @@ -50,6 +50,7 @@ private: void _CheckRefreshMenu(); void _UpdateActiveMode(); + void _UpdateActiveMode(int32 workspace); void _UpdateWorkspaceButtons(); void _UpdateRefreshControl(); void _UpdateMonitorView(); ############################################################################ Revision: hrev45223 Commit: c33a865c7c3ce73ab74354a41ac83cf4de20d726 URL: http://cgit.haiku-os.org/haiku/commit/?id=c33a865 Author: John Scipione <jscipione@xxxxxxxxx> Date: Thu Jan 31 19:29:15 2013 UTC Style fixes only. ---------------------------------------------------------------------------- diff --git a/src/preferences/screen/AlertView.cpp b/src/preferences/screen/AlertView.cpp index 1105abe..a6567d4 100644 --- a/src/preferences/screen/AlertView.cpp +++ b/src/preferences/screen/AlertView.cpp @@ -168,4 +168,3 @@ AlertView::InitIcon() return icon; } - diff --git a/src/preferences/screen/ScreenApplication.cpp b/src/preferences/screen/ScreenApplication.cpp index 3461a77..f022380 100644 --- a/src/preferences/screen/ScreenApplication.cpp +++ b/src/preferences/screen/ScreenApplication.cpp @@ -51,11 +51,11 @@ ScreenApplication::MessageReceived(BMessage* message) switch (message->what) { case SET_CUSTOM_REFRESH_MSG: case MAKE_INITIAL_MSG: - fScreenWindow->PostMessage(message); + fScreenWindow->PostMessage(message); break; default: - BApplication::MessageReceived(message); + BApplication::MessageReceived(message); break; } } diff --git a/src/preferences/screen/ScreenMode.cpp b/src/preferences/screen/ScreenMode.cpp index a4177ec..545b631 100644 --- a/src/preferences/screen/ScreenMode.cpp +++ b/src/preferences/screen/ScreenMode.cpp @@ -677,4 +677,3 @@ ScreenMode::_GetDisplayMode(const screen_mode& mode, display_mode& displayMode) return true; } - diff --git a/src/preferences/screen/ScreenWindow.cpp b/src/preferences/screen/ScreenWindow.cpp index 4acde46..43febab 100644 --- a/src/preferences/screen/ScreenWindow.cpp +++ b/src/preferences/screen/ScreenWindow.cpp @@ -713,11 +713,11 @@ ScreenWindow::_UpdateControls() _UpdateWorkspaceButtons(); BMenuItem* item = fSwapDisplaysMenu->ItemAt((int32)fSelected.swap_displays); - if (item && !item->IsMarked()) + if (item != NULL && !item->IsMarked()) item->SetMarked(true); item = fUseLaptopPanelMenu->ItemAt((int32)fSelected.use_laptop_panel); - if (item && !item->IsMarked()) + if (item != NULL && !item->IsMarked()) item->SetMarked(true); for (int32 i = 0; i < fTVStandardMenu->CountItems(); i++) { @@ -768,7 +768,7 @@ ScreenWindow::_UpdateControls() for (int32 i = 0; i < kCombineModeCount; i++) { if (kCombineModes[i].mode == fSelected.combine) { item = fCombineMenu->ItemAt(i); - if (item && !item->IsMarked()) + if (item != NULL && !item->IsMarked()) item->SetMarked(true); break; } @@ -788,7 +788,7 @@ ScreenWindow::_UpdateControls() index++; } - if (item && !item->IsMarked()) + if (item != NULL && !item->IsMarked()) item->SetMarked(true); _UpdateColorLabel(); @@ -1320,4 +1320,3 @@ ScreenWindow::_Apply() alert->Go(); } } -