Birunthan Mohanathas
06fcf2c19d
Add support for BrowserView autoresizing
2017-04-13 01:27:31 +03:00
Birunthan Mohanathas
638eae1080
Remove MenuLayout in favor of NativeWindowViews::Layout
2017-04-13 01:27:31 +03:00
Birunthan Mohanathas
8b9f7e5b00
Implement initial, experimental BrowserView API
...
Right now, `<webview>` is the only way to embed additional content in a
`BrowserWindow`. Unfortunately `<webview>` suffers from a [number of
problems](https://github.com/electron/electron/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Awebview%20 ).
To make matters worse, many of these are upstream Chromium bugs instead
of Electron-specific bugs.
For us at [Figma](https://www.figma.com ), the main issue is very slow
performance.
Despite the upstream improvements to `<webview>` through the OOPIF work, it is
probable that there will continue to be `<webview>`-specific bugs in the
future.
Therefore, this introduces a `<webview>` alternative to called `BrowserView`,
which...
- is a thin wrapper around `api::WebContents` (so bugs in `BrowserView` will
likely also be bugs in `BrowserWindow` web contents)
- is instantiated in the main process like `BrowserWindow` (and unlike
`<webview>`, which lives in the DOM of a `BrowserWindow` web contents)
- needs to be added to a `BrowserWindow` to display something on the screen
This implements the most basic API. The API is expected to evolve and change in
the near future and has consequently been marked as experimental. Please do not
use this API in production unless you are prepared to deal with breaking
changes.
In the future, we will want to change the API to support multiple
`BrowserView`s per window. We will also want to consider z-ordering
auto-resizing, and possibly even nested views.
2017-04-13 01:27:27 +03:00
Kevin Sawicki
52801c4a41
Use internal IsVisible method
2017-02-15 08:28:55 -08:00
Kevin Sawicki
db79f4f450
Implement Activate instead of CanFocus
2017-02-15 08:28:55 -08:00
Kevin Sawicki
bda8af8dd3
Just use visible state in CanFocus delegate
2017-02-15 08:28:55 -08:00
Kevin Sawicki
be79417a03
Include CanFocus on Windows and map to state
2017-02-15 08:28:55 -08:00
Kevin Sawicki
643cb5d6de
Remove unused variable
2017-02-14 11:13:23 -08:00
Kevin Sawicki
82f452568c
🎨 Minor formatting tweaks
2017-02-14 11:09:15 -08:00
Gary Wilber
f19924bcb0
Add Invalidate method to NativeWindow and add Mac implementation
2017-02-13 19:41:24 -08:00
Cheng Zhao
be29ea4dad
libgtk2ui => libgtkui
2017-02-06 10:34:29 -08:00
leethomas
1f5518b91e
throw an error for out of bounds window levels
2017-01-24 20:14:09 -08:00
leethomas
7a0a87a6f3
implement relative window levels, closes #8153
2017-01-23 23:42:33 -08:00
Kevin Sawicki
e82b41724d
Restore thick frame full screen case
2017-01-18 14:40:42 -08:00
Kevin Sawicki
e5aad9857d
Merge pull request #7765 from liusy182/maximize-fix
...
fix for Window hidden behind taskbar after maximize #7672
2017-01-09 09:47:39 -08:00
liusi
b853671132
fix fullscreen, maximize, unmaximize
2016-12-15 14:01:03 +08:00
Samuel Attard
c65033a13b
Revert "incorrect position when restored from maximize-on-top-drag under Windows #7630 "
...
This reverts commit a2b3abbf47
.
2016-11-22 15:49:56 +11:00
liusi
00d9baa605
fix linting error
2016-11-15 13:23:59 +08:00
liusi
356d0520ae
fix linting error
2016-11-11 17:57:22 +08:00
liusi
a69ee76705
fix review comments
2016-11-08 15:36:37 +08:00
liusi
0e9d973715
toggle thick_frame_ along with resizable change
2016-11-03 12:13:06 +08:00
liusi
7880d37d73
merge changes from master
2016-11-01 10:20:47 +08:00
Cheng Zhao
92f8c105d9
Merge pull request #7766 from liusy182/window-size-restore
...
incorrect position when restored from maximize-on-top-drag under Windows #7630
2016-10-31 11:04:35 +09:00
liusy182
c657186920
address review comments
2016-10-30 09:50:22 +08:00
liusi
a2b3abbf47
incorrect position when restored from maximize-on-top-drag under Windows #7630
2016-10-27 17:42:43 +08:00
liusi
c61414e11b
fix for Window hidden behind taskbar after maximize #7672
2016-10-27 17:14:31 +08:00
Kevin Sawicki
98387e50cc
Focus window on menu bar click
2016-10-24 11:49:51 +09:00
Paul Betts
6fdf40b038
Code Cleanup
2016-10-14 12:17:32 -07:00
Cheng Zhao
4d8c1c61a5
Revert "Fix for issues seen on frameless window (Windows) when at 200% resolution"
2016-10-03 20:41:52 +09:00
Brian Clifton
52340b43f5
Possible fix for issues seen on frameless window (Windows) when at 200%
2016-09-29 10:48:36 -07:00
Kevin Sawicki
c336cf59c1
Ignore level when calling SetAlwaysOnTop on Widget
2016-09-22 09:38:04 -07:00
adammeyer
783d47f78b
custom window level as string
2016-09-21 22:49:06 -04:00
adammeyer
fbb3a288ec
Allow custom window level when sending window to top
2016-09-21 13:35:59 -04:00
Kevin Sawicki
6285500cdc
Sort includes alphabetically
2016-08-26 15:30:02 -07:00
Kevin Sawicki
459c80da4e
Only change window state when fullscreen is true
2016-08-24 14:30:29 -07:00
Cheng Zhao
06d2dfe119
Merge pull request #6788 from electron/felix-progress-enum
...
Use enum to declare ProgressState
2016-08-18 14:35:00 +09:00
Samuel Attard
2fa7aa3c71
Save the thumbar buttons when setting them
...
Then restore the buttons when restoring the taskbar icon
2016-08-13 01:55:42 +10:00
Felix Rieseberg
8b85ee8a20
🔧 Use enum to declare ProgressState
...
As recommended in #6768 , this commit adds an enum for progress states for windows.
2016-08-10 08:56:26 -07:00
Cheng Zhao
dd79c71302
Style fixes for SetProgressBar
2016-08-09 21:02:14 +09:00
Felix Rieseberg
73c91dae9e
🔧 Enable mode indication for setProgressBar
...
This commit enables setting a mode for the setProgressBar method.
Old behavior is kept intact, usage is entirely optional.
2016-08-08 15:52:20 -07:00
Kevin Sawicki
dbddf5028a
Adjust y position if menu bar is visible
2016-08-04 13:18:58 -07:00
Kevin Sawicki
a190495df3
Use bounds for converting window/content sizes
2016-08-04 11:27:27 -07:00
Kevin Sawicki
4751f971e2
Use View::GetBoundsInScreen to compute content bounds
2016-08-04 09:58:36 -07:00
Kevin Sawicki
4f90abce23
Set bounds size to content size
2016-08-04 09:58:36 -07:00
Kevin Sawicki
48cc13d009
Add BrowserWindow.getClientBounds API
2016-08-04 09:58:35 -07:00
Cheng Zhao
0c1d91a895
display.h needs to be used together with screen.h
2016-07-22 23:37:20 +09:00
Cheng Zhao
cf6f4708bc
Fix building on Windows
2016-07-21 11:20:43 -06:00
Cheng Zhao
6850500a65
Fix building on Linux
2016-07-21 07:09:01 -06:00
Cheng Zhao
b57665330c
Merge branch 'master' into chrome52
2016-07-21 05:34:36 -06:00
Cheng Zhao
a1a870fe43
Auto-hide menubar when in fullscreen
2016-07-11 13:10:19 +09:00
Cheng Zhao
e8e2763131
win: Add toolbar type for BrowserWindow
2016-07-11 12:46:50 +09:00
Cheng Zhao
f77b9db069
Fix unmaximize() not working
2016-07-09 23:16:57 +09:00
Cheng Zhao
5979c1464f
Remember bounds instead of size
2016-07-09 23:10:36 +09:00
Cheng Zhao
c4de246bfb
Correctly handle unmaximize
2016-07-09 23:04:42 +09:00
Cheng Zhao
baff744601
Use setBounds to implement maximize for window without thickFrame
2016-07-09 22:49:55 +09:00
Cheng Zhao
2ece9e2885
Add thickFrame option
2016-07-09 21:49:15 +09:00
Kevin Sawicki
2faf00dc19
Only use default accelerator in Windows/Linux app menu
2016-07-07 11:50:19 -07:00
Cheng Zhao
41b8dda071
For hidden window focus() should do nothing
2016-07-05 10:34:52 +09:00
Cheng Zhao
381689d3ed
Fix building on Windows
2016-07-05 09:31:29 +09:00
Milan Burda
c243cf0c0f
Add BrowserWindow.prototype.setContentProtection(enable)
2016-06-22 10:40:33 +02:00
Cheng Zhao
5674e8d114
Only define enable/disable API for views
2016-06-20 15:44:50 +09:00
Cheng Zhao
e33e4be257
macOS: Use sheet window as modal window
2016-06-20 14:49:24 +09:00
Cheng Zhao
1866dbe608
Move disable counter to NativeWindow from api::Window
2016-06-20 11:48:46 +09:00
Cheng Zhao
02acce8991
linux: Make modal dialog show more smoothly
2016-06-20 11:16:41 +09:00
Cheng Zhao
9aa7291627
linux: Implement win.disable/enable/isEnabled() API
2016-06-20 11:16:41 +09:00
Cheng Zhao
f4bec78ccb
linux: Implement win.setParentWindow(parent)
2016-06-20 11:16:41 +09:00
Cheng Zhao
4c3c4437da
win: Implement win.disable/enable/isEnabled() API
2016-06-20 11:16:41 +09:00
Cheng Zhao
85ba382027
Add "parent" option for BrowserWindow
2016-06-20 11:16:41 +09:00
Cheng Zhao
473413e874
views: Initial implementation of win.setParentWindow(parent)
...
But it doesn't work, aparrently Chromium doesn't support changing
parent window dynamically on desktop.
2016-06-20 11:16:41 +09:00
Cheng Zhao
1a4b4a65c9
mac: Add win.disable/enable/isEnabled() API
2016-06-20 11:16:41 +09:00
Cheng Zhao
fd42e3dc84
mac: Add win.setParentWindow(parent) API
2016-06-20 11:16:41 +09:00
Cheng Zhao
50f1837097
On Windows focusable: false also means skipTaskbar: true
2016-06-13 17:24:45 +09:00
Cheng Zhao
8eca728e0a
Add focusable option
2016-06-13 17:10:28 +09:00
Milan Burda
7a1d1ee0ea
Add BrowserWindow.prototype.setIgnoreFocus
2016-06-12 20:20:57 +02:00
Cheng Zhao
f8b69c1fac
Implement SetIgnoreMouseEvents for Linux
2016-06-07 20:23:29 +09:00
Cheng Zhao
cae25cab3e
Implement SetIgnoreMouseEvents for Windows
2016-06-07 19:38:41 +09:00
Cheng Zhao
32b692b60c
Fix NativeWindow::Focus not moving focus to window
...
Chromium's implementation is somehow not working as expected, the new
implementation follows the behavior of wmctrl.
2016-06-06 16:59:31 +09:00
Cheng Zhao
aea2135016
Keep copies of window icons
2016-05-31 17:47:45 +09:00
Daniel Pham
d1c302800f
Fix: Properly notify observers when window prevents close
2016-05-25 19:26:57 -04:00
Cheng Zhao
3182485e68
No need to reference the icon in Tray
2016-05-20 22:44:02 +09:00
Cheng Zhao
a93c9462ed
Add BrowserWindow.setIcon
2016-05-20 22:22:15 +09:00
Cheng Zhao
d26480b74e
Correctly set window icon from ICO
2016-05-20 19:46:05 +09:00
Cheng Zhao
e77582baee
Fix compilation warnings introduced by VS 2015
2016-05-13 11:12:01 +09:00
Cheng Zhao
99a9aa085e
views: Delay the focus/blur event to next tick
2016-04-13 11:02:34 +09:00
Cheng Zhao
cb470cb94b
Use BrowserWindow's backgroundColor as renderer view's background color
2016-04-02 20:46:50 +09:00
Arek Sredzki
c1267b2320
Added 'show' & 'hide' events to browser-window, fixed visibilitychange event in renderer
2016-03-10 13:51:31 -08:00
Cheng Zhao
2be368bded
SetFullScreen should not work at all when not fullscreenable
...
This follows the logic of OS X.
2016-03-05 21:38:06 +09:00
brenca
a06392459e
Making fullsceenable work on Linux
2016-02-27 22:37:42 +01:00
Heilig Benedek
bb42c85df8
resolve update conflicts
2016-02-27 03:23:10 +01:00
Heilig Benedek
bb0ac688b2
Reverted SetFullscreenable disabling maximize button on Windows and removed that from the docs.
2016-02-27 03:07:53 +01:00
Cheng Zhao
49f995925c
Notify the global menu bar when window is mapped
2016-02-23 15:43:32 +08:00
Heilig Benedek
39bb670719
Revert will-enter-full-screen event, matching osx fullscreen: false behaviour on windows instead
2016-02-22 10:23:56 +01:00
Heilig Benedek
a8ae14e94f
Introducing a will-enter-full-screen event that's cancellable
2016-02-09 01:17:05 +01:00
Cheng Zhao
cc560a3900
spec: Fix failing tests on Windows
2016-01-24 14:31:37 +08:00
Cheng Zhao
c41de501cb
spec: Test the -able methods
2016-01-24 14:31:37 +08:00
Cheng Zhao
239bfe970c
Make hasShadow work on Windows/Linux
2016-01-24 14:31:37 +08:00
Cheng Zhao
d704b3f7ba
Reorgnize how attributes work
2016-01-24 14:31:37 +08:00
Cheng Zhao
5372b6cd91
Fullscreenable => FullScreenable
2016-01-24 14:31:36 +08:00
Cheng Zhao
8cabe0f008
Merge pull request #4156 from evgenyzinoviev/windows-pr
...
Improvements in BrowserWindow
2016-01-22 23:42:41 -08:00
evgenyzinoviev
ef51e4e108
maximizable and fullscreenable
2016-01-22 23:21:46 +01:00
Cheng Zhao
21f5e27a5e
Merge pull request #4161 from gabriel/master
...
Support backgroundColor for window on mac
2016-01-21 15:42:21 -07:00
Gabriel Handford
239baa3e9a
Support backgroundColor for window on mac
2016-01-21 11:07:33 -08:00
evgenyzinoviev
fd5c249cb8
fix for windows
2016-01-19 16:58:19 +01:00
evgenyzinoviev
0a79204abb
IsMovable to return true on Linux
2016-01-19 16:44:04 +01:00
evgenyzinoviev
c3049e1e99
docs updated
2016-01-19 16:14:59 +01:00
evgenyzinoviev
2a554cb138
added or/and improved closable, minimizable, movable, resizable features for windows on os x and windows
2016-01-19 16:14:57 +01:00
evgenyzinoviev
64f310168c
code style fix
2016-01-15 17:40:42 +01: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
Cheng Zhao
3ca5b0ce23
win: Don't change transparent window's style
...
Close #1952 .
2016-01-06 23:02:33 +08:00
Cheng Zhao
d3d8ab7c66
linux: Fix pressing Alt not toggling window menu bar
2015-12-24 11:43:14 +08:00
Cheng Zhao
73e7773d84
Update to API changes of Chrome 47
2015-12-07 19:56:23 +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
4a6134f3f7
win: Set native window's background color
2015-10-23 11:17:14 +08:00
Robo
9411508d3e
browser: option to set window background color
2015-10-22 09:54:29 +05:30
Cheng Zhao
6aec8b092c
views: Fix crash when setSizeConstrains is called early
2015-10-15 16:36:28 +08:00
Cheng Zhao
f607e81fac
views: Make size constraints work immediately after set
2015-10-06 16:16:02 +08:00
Cheng Zhao
e06778178a
linux: Restore size constraints when became sizable
2015-10-06 16:09:03 +08:00
Cheng Zhao
60fb406c61
views: Fix content size constraints in window with menubar
2015-10-06 00:15:47 +08:00
Cheng Zhao
bb49515145
Separate Windows specific code of NativeWindow to another file
2015-10-06 00:13:57 +08:00
Cheng Zhao
857acd2574
win: Fix GetContentSize for minimized window
2015-10-05 21:06:57 +08:00
Cheng Zhao
3b1ee994e2
views: Remove hack on setting min/max size for frameless window
2015-10-05 20:37:08 +08:00
Cheng Zhao
a9b0111c3e
views: Use the quicker way of return content size
...
Converting content size to window size on high DPI systems will lose
percise and have 1px offset sometimes.
2015-10-05 20:07:20 +08:00
Cheng Zhao
a76ea00249
views: Implement NativeWindow::SetSizeConstraints
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
526cee7ec3
Merge tag 'v0.33.6'
2015-10-05 19:58:47 +08:00
Cheng Zhao
7de3aa3cc1
Fix typo, closes #2990
2015-10-05 19:57:14 +08:00
Cheng Zhao
2b9b4c6789
Merge pull request #2979 from etiktin/fix_calculating_min_max_4_frameless
...
Fix calculating min/max size in frameless view
2015-10-05 15:10:27 +08:00
Cheng Zhao
de24ed7cea
Merge pull request #2985 from etiktin/fix_restore_size_windows
...
[Windows] Fix restore/unmaximize wrong window size
2015-10-05 15:09:24 +08:00
Eran Tiktin
4d02fc58fa
Fix restore/unmaximize wrong window size
...
This resolves #2498 .
2015-10-05 03:29:02 +03:00
Cheng Zhao
791f988aba
linux: Fix pressing Alt not showing menubar
2015-10-04 16:32:08 +08:00
Eran Tiktin
aea1f8aebb
Fix calculating min/max size in frameless views
...
The minimum and maximum size that frameless windows had used, was
incorrect. It included the border, so when it was called it actually
added that to the size, so window increased in size. The fix makes sure
that the view will use the frameless size.
This fixes #2945 and partially fixes #1806 (it also refers to some other
issues with hidpi which might still exist).
2015-10-03 22:09:57 +03:00
Cheng Zhao
8d61531f4e
Revert #2879
2015-10-01 17:46:11 +08:00
Cheng Zhao
83c514001e
Move devtools API to WebContents
2015-10-01 11:25:31 +08:00
Eran Tiktin
ee0f0f6cfc
Fix window state events on Windows
...
This commit fixes the issue we had with window state events not firing
when triggered through Aero Snap.
Instead of listening to command from the system menu (SC_MAXIMIZE etc.),
we use the WM_SIZE event.
This resolves #1381 .
2015-09-29 02:20:09 +03: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
Cheng Zhao
6e75af5c0f
Move SetOverlayIcon to TaskbarHost
2015-08-06 13:07:00 +08:00
Cheng Zhao
2d6f8350cb
Move SetProgressBar to TaskbarHost
2015-08-06 12:54:00 +08:00
Cheng Zhao
a28f70e85c
Decouple TaskbarHost from NativeWindow
2015-08-06 11:10:34 +08:00
Cheng Zhao
8f8c3aef87
ThumbarHost => TaskbarHost
2015-08-06 10:30:22 +08:00
Cheng Zhao
39af10cc8d
Move thumbar_host_ from TreeHost to NativeWindow
2015-08-06 10:25:50 +08:00
Cheng Zhao
d175a68586
Add MessageHandlerDelegate
2015-08-06 10:15:27 +08:00
Haojian Wu
2f1cb8b52a
Expose NativeWindow.setThumbarButtons API to all platforms.
2015-08-05 22:30:05 +08:00
Haojian Wu
78eac4116c
Polish thumbar code.
...
* Fix a memory leak in thumbar initialization.
* Check the number of thumbar buttons, should be <= 7.
* Correct to check thumbar button click event.
2015-08-05 19:38:12 +08:00
Haojian Wu
dfd076a3e5
Move atom_desktop_window_tree_host_win to atom/browser/ui/win directory.
2015-08-05 13:55:06 +08:00
Haojian Wu
54af048f04
win: Add BrowserWindow.setThumbarButtons API.
2015-08-05 13:55:02 +08:00
Cheng Zhao
bbd6c927b1
Remove a few unused headers
2015-08-05 13:18:41 +08:00
Cheng Zhao
adbb909b39
Move ShouldUseGlobalMenuBar to x_window_utils
2015-08-05 13:16:03 +08:00
Cheng Zhao
58b1172025
Avoid exposing data members to subclass
2015-08-05 12:46:32 +08:00