Permalink
Browse files

Update Tracker prefs window workspace behavior.

Basically make the Tracker preferences window work like most other
windows do as far as workspaces go.

Opens on your current workspace. If you switch workspaces then go
into Deskbar and select Tracker Preferences it will switch to
the workspace that already has the window open. If you close the
window, switch workspaces and then select preferences it will move
the window to your current workspace and show it.

This is similar to the fix for the same problem on the Deskbar
preferences window and for the same reason: the window gets hidden
when you close it, not actually deleted so we need to do a bit more
work to get the window to behave with workspaces. Hiding instead of
deleting the window allows us to remember where you were when you
closed the window, what tab you were on, what control had focus, etc.

Fixes #8000
  • Loading branch information...
1 parent 331c909 commit 3c6d2325c708750408ddbfa8863da9266d34bbb3 @jscipione jscipione committed Feb 12, 2013
Showing with 7 additions and 1 deletion.
  1. +7 −1 src/kits/tracker/TrackerSettingsWindow.cpp
@@ -70,11 +70,11 @@ const uint32 kRevertButtonPressed = 'Rebp';
#undef B_TRANSLATION_CONTEXT
#define B_TRANSLATION_CONTEXT "TrackerSettingsWindow"
+
TrackerSettingsWindow::TrackerSettingsWindow()
:
BWindow(BRect(80, 80, 450, 350), B_TRANSLATE("Tracker preferences"),
B_TITLED_WINDOW, B_NOT_MINIMIZABLE | B_NOT_RESIZABLE
- | B_NO_WORKSPACE_ACTIVATION | B_NOT_ANCHORED_ON_ACTIVATE
| B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE
| B_AUTO_UPDATE_SIZE_LIMITS)
{
@@ -184,6 +184,12 @@ TrackerSettingsWindow::Show()
Unlock();
}
+
+ if (IsHidden()) {
+ // move to current workspace
+ SetWorkspaces(B_CURRENT_WORKSPACE);
+ }
+
_inherited::Show();
}

0 comments on commit 3c6d232

Please sign in to comment.