MacGapProject / MacGap2

MacGap 2
MIT License
1.19k stars 85 forks source link

Keep stoplight buttons, but extend web view into toolbar. #41

Open christopherjones opened 9 years ago

christopherjones commented 9 years ago

It's hard to explain, but this would be a great and simple addition to make the application appear more like your own and not a web view. Here's the link to what I am talking about more. http://stackoverflow.com/questions/25250762/xcode-swift-window-without-title-bar-but-with-close-minimize-and-resize-but

jeff-h commented 9 years ago

I also would have liked this option but when I looked into it, the biggest issue I found was enabling the window to be dragged. The only practical option I could come up with was for the Javascript to implement the window dragging itself (by using the mouse events to adjust the coordinates of the window). The problem with doing this is that certain OS X behaviours end up breaking e.g. dragging a window to a new space no longer works.

If we can get around this, or if it simply doesn't matter for some use cases, then it shouldn't be especially difficult to implement.

christopherjones commented 9 years ago

Hmm, I didn't think of that. There's no way to build a custom toolbar and have it be treated like a native toolbar? Would this "window.movableByWindowBackground = true" mentioned on stack overflow provide any help with that issue? Regardless, is there any easy way to implement this in the current project to play around with it?

rawcreative commented 9 years ago

This can only be done in 10.10 and while it’ll compile with a deploy target of 10.9, the code throws unrecognized selector errors to the console if you run it on anything but 10.10, so it’s not something we can add while we’re supporting 10.9.

If you want to play around with it anyway, open WindowController.m and add the code below to the bottom of awakeFromNib or the setWindowParams method.

self.window.titlebarAppearsTransparent = true;
self.window.movableByWindowBackground = true;
self.window.styleMask = self.window.styleMask | NSFullSizeContentViewWindowMask;
christopherjones commented 9 years ago

Great thanks. Works just like expected, and the toolbar still acts like a draggable toolbar except it is transparent. I understand that this won't work in 10.9, but it definitely helps in 10.10 screen shot 2014-11-12 at 3 08 33 pm

jeffroylance commented 7 years ago

Hate to reopen this, but with my install, the window can't be moved...

It seems something has changed that broke the self.window.movableByWindowBackground = true;

Does anyone know what changed?

On the upside, using this with photon has made it look completely native :-)

image

Thanks :-)