[haiku-development] Re: BWindow fShowLevel vs window_info.show_hide_level

  • From: Ryan Leavengood <leavengood@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 13 Aug 2012 17:19:11 -0400

On Sun, Aug 12, 2012 at 4:23 PM, Ryan Leavengood <leavengood@xxxxxxxxx> wrote:
>
> I could maybe have used that to drop in my test code, but I still
> needed to run BeOS to test its behavior in this case. I'll keep this
> idea in mind in case I can never get that BeOS VM online.

I did end up mounting the BeOS vmdk image in a Haiku VM and it proved
useful to get the test code I was using in BeOS to see how it worked
in Haiku.

Back to the primary topic of this thread: I have some pending changes
which redefine fShowLevel in BWindow to match the show_hide_level in
the app_server, where 1 or more is hidden and 0 or less is shown. I
also combined the app_server message for Show and Hide to be one
message, AS_SHOW_HIDE_WINDOW, and the logic to actually show or hide
the window is now in the app_server. I also reworked the minimize
handling such that a hidden window can never be minimized and if a
minimized window is hidden it is also unminimized. This matches what
the BeBook says here:

http://www.haiku-os.org/legacy-docs/bebook/BWindow.html#BWindow_Show

This differs slightly from what BeOS actually does though, but I think
the BeOS behavior is not correct, at least based on what the BeBook
says.

Also making this change in BWindow matches how the identically named
fShowLevel in BView works. Given this I'm surprised it has been
backwards for so long ;)

I tested my changes pretty thoroughly and they work quite well. If
anyone who is paying attention has any reason I should not commit
these changes, please say here. I'll probably commit and push them by
Wednesday.

While all this seems like a lot of time and effort for fairly minor
part of Haiku, I think making sure things like this are solid and
consistent is worthwhile. Plus I learned a lot about BeOS/Haiku window
behavior and our BWindow and app_server code in the process, and that
is always useful.

-- 
Regards,
Ryan

Other related posts: