[haiku-commits] Re: haiku: hrev45273 - in src: apps/deskbar kits/tracker

  • From: John Scipione <jscipione@xxxxxxxxx>
  • To: "haiku-commits@xxxxxxxxxxxxx" <haiku-commits@xxxxxxxxxxxxx>
  • Date: Tue, 12 Feb 2013 12:01:21 -0500

On Tue, Feb 12, 2013 at 7:11 AM, "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx> wrote:
> On February 12, 2013 at 4:08 AM jscipione@xxxxxxxxx wrote:
>>  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);
>> +  }
>
> Unless I'm completely mistaken, please revert this change. What do you think 
> the
> above flag is supposed to do?
> If it doesn't as advertized, it should be fixed, not worked around.
> If the intention is to keep it on the same workspace when it's activated, but
> open, the change is valid, of course, however, it still works around the root
> cause of bug #8000.

To my understanding B_NOT_ANCHORED_ON_ACTIVATE causes the window to
move to the current workspace when activated if it already exists on
another workspace. I'm not sure what this flag is _suppose_ to do in
the case a hidden window, but, it does not seem to switch the
workspace of hidden windows, thus #8000.

B_NO_WORKSPACE_ACTIVATION causes the current workspace to stay even if
the window gets activated on another workspace.

So there are 2 changes made by my patch, a change to the behavior of
hidden windows, and a change to the behavior of non-hidden windows.

If the window is hidden it should be moved to the current workspace
because the window can effectively be thought of as workspaces-less.

If the window is not hidden, should we switch to the workspace the
window resides on or should we yank the window to the current
workspace? I've switched from to the former behavior from the latter.

The hidden window case seems obvious, the non-hidden window case there
is wiggle room for argument. Do we want override the default and make
the prefs window to come to the current workspace, or do you want to
switch to the workspace the prefs window is at? Whatever is decided,
we should do the same thing for Deskbar preferences too.

Thanks for listening.

Other related posts: