-
Notifications
You must be signed in to change notification settings - Fork 23
WIP: Enable being above fullscreen #17
WIP: Enable being above fullscreen #17
Conversation
This looks good to me from just a brief code review. So if it solves Travis' issue from #11 then I'm good to merge this (once we get confirmation). Also, thanks for digging into this! |
Some Notes. I can try and peak later in to the code and give more feedback. Thanks for working on this!
|
I played around with this today too and found some problems. The The kiosk mode also seems to cause the timer window (the small one) to hover above the current full screen app you have focus on after the full-screen timer goes off. This makes it harder to know where the small window went and find it again. The solution seems to be to remove the kiosk mode. Doing that made it work much better for me, and the full-screen window still showed up over the full screen app (though there was a gap for the non-visible menubar in the bounds, but that seems minor). |
Great input! I did indeed add kiosk to avoid the gap, we can live with the gap. I'll remove it. |
src/windows/windows.js
Outdated
@@ -10,7 +11,7 @@ exports.createTimerWindow = () => { | |||
} | |||
|
|||
let {width, height} = electron.screen.getPrimaryDisplay().workAreaSize | |||
timerWindow = new electron.BrowserWindow({ | |||
timerWindow = createBrowserWindowOnCurrentScreen({ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It doesn't seem like calling the helper method here does anything significant. I can't seem to get the small timer window to be above full-screen apps. And if it did launch in a full screen space then it would follow that app around which seems a bit odd to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't have access to my mac but when I do I will look into this. Since it was a while since I did the changes I have a hard time remembering which tests I performed.
Thanks for the feedback @TravisBumgarner!
I think this is good feedback and an improvement to this could be made independently of this PR, I won't look into that in this PR.
I'll have a look, added it as a "Todo" in the description here so I won't forget
Can you provide some more information on this? Steps to reproduce? Any pattern on when it occurs? |
Yeah my bad that issue has been fixed. I am having some success with the app being on top of fullscreen apps but it is far from perfect. With
With
With
|
One option could be to focus only on letting the fullscreen mob timer window interrupt fullscreen apps and not touch timer window or settings window |
I think that's probably the best option -- just have the fullscreen window interrupt fullscreen apps. The common use case for the mob timer is that the users are not in fullscreen mode (at least I assume that, based on the usages I know about directly and the feedback we've had thus far). The small timer window is designed to float over other windows so you always see it. But that's kind of the opposite of using an app in fullscreen mode; when you go fullscreen on a Mac it's all about focusing on one single application. And it interacts with the Spaces virtual screen stuff which makes things more complicated (especially if there are multiple monitors). So my gut feeling is that we should avoid getting too complicated in the fullscreen case. If the "fullscreen" timer window can interrupt fullscreen usage, that's great. Users who want fullscreen code editors (for example) probably don't want the small timer floating around on them. But they will want to know when the time is up (otherwise why are they using the timer?) so let's just cover that case. |
I have rolled back as much as possible in this PR while still solving the main obstacle: Interrupt fullscreen apps on mac I am not sure if there is any downside to using bounds instead of workAreaSize (should cover menu bars/start menus) but I think we can tackle that change separately! I am unable to test this on Mac yet since that laptop was left at my workplace over the weekend. |
Use bounds to get full screen size including menu bars
9bfde22
to
49e4e31
Compare
I just tested your latest changes on my Mac and I think it's working great per the discussion above. So I'm going to merge it and we can cover any further changes in a separate PR (if needed). |
Great, thanks |
Discussion in #11
Why?
In order to be able to develop in fullscreen mode on Mac OS
And still see the mob timer and be interrupted by the fullscreen window to switch mobber
We want the fullscreen window to open on top of the fullscreen display or interrupt it by switching the active desktop
How?
screen-saver
for the fullscreen window to be on top of everything else.Tests