Commit graph

137 commits

Author SHA1 Message Date
Ben Gotow
d186dceb4b Add correct window check for wheel events. See description
Tested that with two windows, events are fired on the correct BrowserWindow instance and not both, and that scrolling a window which is in the background works properly.
2016-01-21 16:36:48 -08:00
Ben Gotow
e96e674201 Properly clean up NSEvent monitor 2016-01-21 16:31:31 -08:00
Ben Gotow
bd2252ea55 Extend NativeWindow to track touch-based scroll events on OS X
In N1, we want to implement the famous "swipe to archive" action on threads in the user's inbox. Chrome exposes `scroll` and `wheel` events, but these aren't sufficient to implement the interaction because the element needs to "snap" when the user lifts their fingers from the trackpad, not when they / we stop receiving `wheel` / `scroll` events. These events may stop before the user lifts their fingers, or continue after the user has lifted their fingers if they had enough momentum for the gesture to continue.

This exposes BrowserWindow `scroll-touch-down` and `scroll-touch-up`, which fire immeditaely when the user touches two fingers to the trackpad, and again when the user lifts their fingers. Combined with the existing wheel event should allow for "swipe-to-archive" and other similar interactions.

Note: This is only implemented on Mac OS X and the events don't fire unless you're using a trackpad!

Related: #1486, #2683, https://github.com/nylas/N1/issues/541
2016-01-21 09:40:21 -08:00
Cheng Zhao
712f11a9a3 Merge pull request #4112 from evgenyzinoviev/resize-animate-pr
Animate window resizing on OS X
2016-01-16 12:12:00 +08:00
evgenyzinoviev
b75dccb0be arguments handing rewritten, doc updated 2016-01-15 17:31:31 +01:00
evgenyzinoviev
2598b00b41 Animate window resizing on OS X 2016-01-15 05:59:58 +01:00
evgenyzinoviev
cda88db77c Added option to prevent a window from being moved on OS X 2016-01-15 03:58:57 +01:00
Omri Litov
943e46f3bd Fix linux and mac build errors 2016-01-08 00:27:53 +02:00
Omri Litov
3f0c007578 Added getNativeWindowHandle 2016-01-07 22:38:35 +02:00
Cheng Zhao
10f663d017 Fix hiding fullscreen button on EL Capitan 2016-01-07 15:46:40 +08:00
Cheng Zhao
e90435e236 Remove visual artifacts of hidden-inset window 2015-12-23 12:38:11 +08:00
jaanus
aa2f7aaf3a Fixes #2810: correct look of hidden-inset windows in full screen.
`hidden` and `hidden-inset` windows differ only by the hidden-inset window having a toolbar. Yet, the toolbar yields an incorrect look in fullscreen mode. So, we hide and recreate the toolbar for such windows when going to/from fullscreen.

There are some visible artifacts during the fullscreen animations, as the toolbar gets created and destroyed. When entering fullscreen, you see a toolbar that then disappears. When going back to normal window, you see the traffic light buttons jump around a little bit. Yet, this is definitely better than the current broken fullscreen look.
2015-12-22 20:31:55 +02:00
Cheng Zhao
774ba2a235 Merge pull request #3706 from billyct/master
support an api with SetIgnoreMouseEvents for osx
2015-12-09 12:00:16 +08:00
Cheng Zhao
0f2f9b5543 No need to use CommandDispatcher 2015-12-08 11:20:07 +08:00
Cheng Zhao
73e7773d84 Update to API changes of Chrome 47 2015-12-07 19:56:23 +08:00
billyct
5f092a6c65 support an api with SetIgnoreMouseEvents, and worked fine with osx 2015-12-06 10:14:54 +08:00
Cheng Zhao
6c1878d15b mac: Clears the delegate when window is going to be closed
Since EL Capitan it is possible that the methods of delegate would get
called after the window has been closed.

Refs atom/atom#9584.
2015-11-26 13:56:56 +08:00
Cheng Zhao
8e2faba8f7 Small style fix 2015-11-20 13:06:42 +08:00
Ben Gotow
d427ae1030 Support the "desktop" window type on Mac OS X
Adds the desktop window type referenced in https://github.com/atom/electron/issues/2899 for compatiblity with the linux version. Note that on Mac OS X, the desktop window cannot receive input events (seems to be a limitation of being behind the desktop).

In this diff I also removed the `standardWindow` option from the docs, in favor of an additional `textured` value for window `type` on Mac OS X. The old `standardWindow` option continues to work, but seemed more confusing. If this seems like a bad idea, I can revert that change.
2015-11-19 00:39:45 -08:00
Cheng Zhao
860c46b3c1 Separate options from switches
On Windows the case sensitivity of command line switches are ignored, so
--nodeIntegraion will become --nodeintegration.

We should separate options from switches so we use "nodeIntegraion" in
options, while passing "--node-integration" in command line.
2015-11-13 14:05:49 +08:00
Cheng Zhao
e36d455d51 Add setBackgroundColor method 2015-10-23 11:35:33 +08:00
Cheng Zhao
d092c6acc9 osx: Implement draggable region with mouseDownCanMoveWindow
Previously we implemented draggable region by tracking mouse position,
it is buggy and causing some problems. But it is interesting that until
this didn't cause troubles until recently.
2015-10-21 08:54:46 +08:00
Cheng Zhao
898db4d6bd osx: Set resizable flag when creating window
Setting resizable for frameless window before it is shown will change
its size.
2015-10-06 15:23:23 +08:00
Cheng Zhao
6fea6cf58a osx: Fix setting size constraints for frameless window 2015-10-06 15:15:23 +08:00
Cheng Zhao
d19ead1907 osx: Call setContentMinSize in SetContentSizeConstraints 2015-10-05 20:09:29 +08:00
Cheng Zhao
279407f7a3 osx: Fix converting size for frameless window 2015-10-05 20:07:20 +08:00
Cheng Zhao
8577f2b52f osx: Add NativeWindow::SetSizeConstraints 2015-10-05 20:07:20 +08:00
Cheng Zhao
8d61531f4e Revert #2879 2015-10-01 17:46:11 +08:00
Cheng Zhao
7884a2319c osx: Make draggable region work for window with hidden titlebar 2015-09-25 16:38:36 +08:00
Cheng Zhao
6f944ad49b Clean up code 2015-09-25 16:21:08 +08:00
Cheng Zhao
da57a3101f Call WasShown when showing window
Otherwise WebContents would be invisible when window is hidden at first
and then show later.

Refs #2879.
2015-09-24 18:16:41 +08:00
jaanus
5d8f1dd404 Implements #2734 “New API to configure BrowserWindow title bar on Mac”
New API supported on Yosemite 10.10 and newer.
2015-09-14 16:50:00 +02:00
Cheng Zhao
290b221d79 mac: Do not set rounded corner by adding layer 2015-08-26 15:58:44 +08:00
Cheng Zhao
1505dc207b mac: Disable resizing window when changing style mask 2015-08-05 14:12:55 +08:00
Cheng Zhao
58b1172025 Avoid exposing data members to subclass 2015-08-05 12:46:32 +08:00
Cheng Zhao
58c0486236 Remove duplicate UpdateDraggableRegions 2015-08-05 12:32:22 +08:00
Haojian Wu
c69002b0dd Fix: browser window will be resiable when calling window.setResizable(false) twice. 2015-07-31 09:57:08 +08:00
Cheng Zhao
df35700b94 Style fixes
* Use under_score for variable names in C++
* Use const& when possible
* Line length <= 80
2015-07-23 10:07:58 +08:00
Cheng Zhao
ea1b89c699 Merge pull request #2250 from EyeSee360/master
Maintain an aspect ratio for content within a window
2015-07-23 09:45:42 +08:00
Michael S. Barthelemy
6d25c81bd1 changes requested for pull request #2250 into electron master 2015-07-22 10:23:31 -04:00
Cheng Zhao
891d107a51 mac: Always use GetSize for frameless window 2015-07-21 10:34:37 +08:00
Cheng Zhao
3ea878941b mac: Always call SetSize for framless window 2015-07-21 10:29:05 +08:00
Michael S. Barthelemy
6656afd57f fix bug with computing the case where we should constrain via height 2015-07-17 10:25:30 -04:00
Michael S. Barthelemy
666aca7803 add function maintainAspectRatioOfInteriorContent to BrowserWindow in order to enforce an aspect ratio for an electron window 2015-07-16 13:54:51 -04:00
Cheng Zhao
9f52b11761 Remove NativeWindow::GetWebContents 2015-06-25 14:54:00 +08:00
Cheng Zhao
62c44ee47b Rename CloseWebContents to RequestToClosePage 2015-06-25 13:27:51 +08:00
Cheng Zhao
fb5fe7a714 Decouple WebContentsDelegate from NativeWindow 2015-06-25 11:07:23 +08:00
Cheng Zhao
5236b0c067 Don't create WebContents in NativeWindow 2015-06-25 09:47:57 +08:00
deepak1556
9a60fde59b alias move and moved event on OS X 2015-05-22 12:24:12 +05:30
deepak1556
3a5977e09f window: adding resize and move events 2015-05-22 12:13:00 +05:30