fikovnik / ShiftIt

Managing windows size and position in OSX
5.53k stars 360 forks source link

External monitor causes shiftit to think window is in fullscreen #213

Open larsenwork opened 8 years ago

larsenwork commented 8 years ago

Even though it isn't. Unplugging and reattaching the monitor fixed the problem. Running macOS Sierra btw

NSError stack trace:
org.shiftitapp.shifit.error:20103 - Windows in fullscreen are not supported
2016-08-05 10:26:42.983 ShiftIt[375/0x7fffcff4d3c0] [lvl=3] -[ShiftItAppDelegate invokeShiftItActionByIdentifier_:] Execution of ShiftIt action: right failed: Windows in fullscreen are not supported
larsenwork commented 8 years ago

Hmm, only temporarily fixed it — issue's back again EDIT: It appears to be when i have my laptop in fullscreen mode but my external monitor i "normal" mode with multiple windows shown at the same time. When I then try to "shiftit" any of the windows on the external monitor it gives me the aforementioned error

fikovnik commented 8 years ago

It looks like it does not identify correctly which window is actually in focus. Could this be the problem? I almost never use the windows in fullscreen so I have never tested shifted on that.

larsenwork commented 8 years ago

@fikovnik sounds plausible, any way to log what window shiftit think is in focus?

fikovnik commented 8 years ago

@larsenwork do know a bit objective-c?

larsenwork commented 8 years ago

@fikovnik some, my brother does, so he can help me — any pointers?

fikovnik commented 8 years ago

Excellent. I would start looking into WindowGeometryShiftItAction into execute method. There it uses a window context to get the focused window:

[windowContext getFocusedWindow:&window error:&cause]

I think this should be the starting point for debugging.

DaveyJake commented 8 years ago

Any update on this? Just installed macOS Sierra today and noticed the issue as well.

Interesting to note: When Chrome is fullscreen on one of my (three) external monitors ShiftIt will work but only for the front-most non-focused Chrome window. It will not work on other apps even if they're focused. Sublime Text 3 is one I'm currently experiencing this issue with.

The error I get is as follows:

NSError stack trace:
org.shiftitapp.shifit.error:20103 - Windows in fullscreen are not supported
2016-09-24 00:01:48.589 ShiftIt[42814/0x7fffc2b353c0] [lvl=3] -[ShiftItAppDelegate invokeShiftItActionByIdentifier_:] Execution of ShiftIt action: left failed: Windows in fullscreen are not supported
biddster commented 8 years ago

Seeing exactly the same as above with WebStorm/AppCode etc.

rahimnathwani commented 7 years ago

I'm seeing the same issue as DaveyJake on the most recent versions of OSX and ShiftIt. My setup is rMBP with two external monitors. I frequently have Chrome as full-screen on one of the 3 screens, and I can't control any other apps with Chrome.

I'm glad to have found this issue log, as it didn't occur to me that it was related to full-screening Chrome on one screen. Now I guess I can work around it by not full-screening anything.

odlp commented 7 years ago

The 1.6.4-beta version fixes this for me, using fullscreen iterm2 on one monitor, and assorted windows on the other monitor.

As referenced in #230

loilo commented 6 years ago

1.6.4-beta fixed this for me, but now that ShiftIt updated to the stable release of 1.6.4, it's broken again. 🙁