Ticket #10252 (assigned Bug Report - General)
Opened 17 months ago
Last modified 14 months ago
Mac OS X menu bar, dock, and mouse not hidden if GUI size nonzero
| Reported by: | dgatwood <dgatwood@…> | Owned by: | nigel |
|---|---|---|---|
| Priority: | trivial | Milestone: | unknown |
| Component: | Ports - OSX | Version: | 0.24.1 |
| Severity: | low | Keywords: | |
| Cc: | Ticket locked: | no |
Description
If you change the GUI size and offset to compensate for overscan, MythTV incorrectly uses a normal window instead of a full-screen window, resulting in Mac OS X showing the menu bar and doc. MythTV should use these values for scaling the *content* of the window, not for setting the actual size and position of the window itself.
The net result is that unless you can find a reduced-size theme that will fit on your screen, you're pretty much hosed.
Attachments
Change History
comment:1 Changed 17 months ago by danielk
- Priority changed from major to trivial
- Severity changed from high to low
comment:2 Changed 14 months ago by nigel
- Status changed from new to assigned
- OS X code never did anything with the dock. (except in the Full Screen output module, which is a layer above the menu bar, dock, UI desktop picture, et c.) If you want the dock to be hidden, set it to hide in Mac OS? ("System Preferences" -> Dock -> "Automatically hide and show the Dock")
- The Mac output code was written assuming either Full Screen, or "one Window among the rest of your active apps" usage. Attaching to a TV that has overscan was never implemented. I would have thought that any display that overscanned would chop the menu bar off in its bezel, but I guess that is a bad assumption :-(
Two easy options - either always hide the Menu Bar when Appearance -> "Use window border" is off, or always hide it when the GUI Y offset is less than 22 pixels? e.g. undo https://github.com/MythTV/mythtv/commit/6116efda and augment the 'd->does_fill_screen' conditionals.
comment:3 Changed 14 months ago by dgatwood <dgatwood@…>
As I understand it (and this is from distant memory, so I may be wrong), Mac OS X automatically hides the dock and menu bar if you create a window and make it be a full-screen window at the appropriate level (above the dock). This only works if it is actually a full-screen window, however—that is, if the window starts at the upper left corner and extends to the lower right.
I *think* the problem is that MythTV, when you add overscan compensation, actually reduces the size of the window that it creates. It is thus no longer a full-screen window, so Mac OS X no longer hides the dock and menu bar automatically. At least that's the way it acts.
I can see two relatively easy ways to fix the problem:
- Add a full-screen black masking window behind the main drawing window, at a level greater than NSDockWindowLevel/kCGDockWindowLevel and less than your actual main window, sized to fit the screen without overscan compensation.
- Instead of shrinking the drawing window itself, create a smaller subwindow inside the main window (based on the overscan-compensated size) and draw inside that.

Nigel, I'll leave it to you if this is a won't fix or not, but I've just fixed the priority and severity fields.