* feat: Add BrowserWindow option to ignore Mission Control (macOS)
* There are many circumstances when app developers may want to hide their
windows from mission control. E.g., full screen overlays, small helper
windows, dialogs, etc.
* This PR adds the functionality, docs, and tests.
* chore:Rename variables
* Update shell/browser/native_window_mac.h
Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com>
Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* refactor: use views NonClientHitTest for draggable regions on mac
* iwyu
* add backport of 9bb5f0316
* chore: update patches
* remove some unneeded functions
* remove test for triggering when BW is focused
* chore: update patches
* simplify views/mac split now that the draggable logic is the same
* Apply suggestions from code review
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* Update shell/browser/native_window.h
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fix build
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* rebase "feat: enable windows control overlay on Windows"
* correct compilation error
* fix linting errors
* modify includes and build file
* change `hidden` option to `overlay`
* add patch to fix visual layout
* add button background color parameter
* add button text color parameter
* modify `overlay` in docs and modify button hover/press transition color
* change `text` to `symbol`
* remove todo and fix `text` replacement
* add new titleBarOverlay property and remove titleBarStyle `overlay`
* update browser and frameless window docs
* remove chromium patches
* chore: update patches
* change button hover color, update trailing `_`, update test file
* add dchecks, update title bar drawing checks, update test file
* modify for mac and linux builds
* update docs with overlayColor and overlaySymbolColor
* add corner and side hit test info
* modify docs and copyright info
* modify `titlebar_overlay_` as boolean or object
* move `title_bar_style_ to `NativeWindow`
* update docs with boolean and object titlebar_overlay_
* add `IsEmpty` checks
* move get options for boolean and object checks
* fix linting error
* disable `use_lld` for macos
* Update docs/api/frameless-window.md
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Update docs/api/frameless-window.md
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Update docs/api/frameless-window.md
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Apply docs suggestions from code review
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* modify `true` option description `titleBarOverlay`
* ci: cleanup keychain after tests on arm64 mac (#30472)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* feat: Raise a browser view via `BrowserWindow.setTopBrowserView()`.
This is similar to removing and re-adding a browser view, but avoids a visible flicker as the browser view is not removed from the window when using `setTopBrowserView`. Note: if the given browser view is not attached to the window, it will be added.
This commit contains the macOS implementation.
* feat: setTopBrowserView support for Windows and Linux
* docs: add info about setTopBrowserView
* docs: Clarify behavior when browserView is not yet attached.
* fix: throw en error when browserView is not attached to the window
* fix: build error
* fix: test
* fix: add test case
* fix: tests
* fix: reparenting
* fix: close second window in tests
Co-authored-by: sentialx <sentialx@gmail.com>
* fix: optionally transform processes on win.SetVisibleOnAllWorkspaces on macOS, making it backwards-compatible with v9.2.1 (#27101)
* fix: optionally transform processes on win.SetVisibleOnAllWorkspaces on macOS, making it backwards-compatible with v9.2.1 (#27101)
Co-authored-by: Cyrus Roshan <cyrusroshan@users.noreply.github.com>
* Rewrite titleBarStyle impls with WindowButtonsView
* Remove fullscreenWindowTitle option
* Make buttons show correctly under RTL
* Fix docs about traffic lights position
* Fix test on fullscreen resizable
* Fix button states with closabe/minimizable/fullscreenable
* Fix typo
* Deprecate the fullscreenWindowTitle option
* fix: do not crash if the window is closed syncronously with a nativeTheme change
* fix: propogate preferred color scheme to the renderer and keep it up to date
* feat: default gtk darkTheme option to nativeTheme.shouldUseDarkColors for better platform support
* chore: update syntax for PR feedback
* refactor: only define SetGTKDarkThemeEnabled when needed
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
* feat: custom positioning for traffic light buttons
* remove NSLog and unnecessary call-site in IsVisible()
* no longer need to check if entering fullscreen
* change API to take a point object
Co-authored-by: tonyfwoo <55114329+tonyfwoo@users.noreply.github.com>
* refactor: convert Menu and globalShortcut to gin
* refactor: convert api::Cookies to gin
* refactor: convert View and WebContentsView to gin
* refactor: convert WebContents related classes to gin
* refactor: convert powerMonitor to gin
* refactor: prepare for header change
* refactor: remove last uses of mate::EventEmitter
* refactor: remove mate::EventEmitter
* refactor: move trackable_object to gin_helper
* fix: custom converter should not use Handle
* fix: no more need to check if icon is empty
It was a bug that the Handle<NativeImage> can be non-empty when the
image file does not exist. The bug was caused by the converter code
writing out the image even when the convertion fails.
The bug was work-arounded by adding an additional check, but since the
original bug had been fixed, the additional check is no longer needed.
* fix: should always set frameId even when callback is null
* fix: do not mix gin/mate handles for NativeImage