views: Support configuration of initial window show state

Known issues:
- Exiting full-screen mode currently crashes with the Chrome runtime
  (see issue #3182).
This commit is contained in:
Marshall Greenblatt
2021-09-07 17:04:55 +03:00
parent 2b40cab3fe
commit dc1f934865
16 changed files with 147 additions and 17 deletions

View File

@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=b43e6106fde84f3bab4dd566efab23a50adaf94d$
// $hash=839098c445b1d3203bc482fc5d1555e1f9b87646$
//
#ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_WINDOW_DELEGATE_CAPI_H_
@ -99,6 +99,13 @@ typedef struct _cef_window_delegate_t {
struct _cef_window_delegate_t* self,
struct _cef_window_t* window);
///
// Return the initial show state for |window|.
///
cef_show_state_t(CEF_CALLBACK* get_initial_show_state)(
struct _cef_window_delegate_t* self,
struct _cef_window_t* window);
///
// Return true (1) if |window| should be created without a frame or title bar.
// The window will be resizable if can_resize() returns true (1). Use

View File

@ -42,13 +42,13 @@
// way that may cause binary incompatibility with other builds. The universal
// hash value will change if any platform is affected whereas the platform hash
// values will change only if that particular platform is affected.
#define CEF_API_HASH_UNIVERSAL "b737ecfff4042edbbcb166d0af38556cb0ab8212"
#define CEF_API_HASH_UNIVERSAL "6198f526f7dcccda1b66b81826ac030c1f76fd15"
#if defined(OS_WIN)
#define CEF_API_HASH_PLATFORM "7a55350a33b3cb6cb82659df7f4ee756b95482ef"
#define CEF_API_HASH_PLATFORM "7b514a69fd70f75f8a7ddba848136a9cdd8182d4"
#elif defined(OS_MAC)
#define CEF_API_HASH_PLATFORM "24e05cd9bb4be12dfec61c5e19f0b279fc658f1d"
#define CEF_API_HASH_PLATFORM "e33e34f6268be00c7eb4a69bdc97d6f5f3bc6154"
#elif defined(OS_LINUX)
#define CEF_API_HASH_PLATFORM "55203c04095f193d3eb9966c40b601aad54188d2"
#define CEF_API_HASH_PLATFORM "edbea2dd852cfcf63a0f57d7495e5d69e87f0052"
#endif
#ifdef __cplusplus

View File

@ -1159,7 +1159,7 @@ typedef enum {
// A resource that a plugin requested.
///
RT_PLUGIN_RESOURCE,
///
// A main-frame service worker navigation preload request.
///
@ -3219,6 +3219,16 @@ typedef enum {
CEF_DOCKING_MODE_CUSTOM,
} cef_docking_mode_t;
///
// Show states supported by CefWindowDelegate::GetInitialShowState.
///
typedef enum {
CEF_SHOW_STATE_NORMAL = 1,
CEF_SHOW_STATE_MINIMIZED,
CEF_SHOW_STATE_MAXIMIZED,
CEF_SHOW_STATE_FULLSCREEN,
} cef_show_state_t;
#ifdef __cplusplus
}
#endif

View File

@ -91,6 +91,14 @@ class CefWindowDelegate : public CefPanelDelegate {
return CefRect();
}
///
// Return the initial show state for |window|.
///
/*--cef(default_retval=CEF_SHOW_STATE_NORMAL)--*/
virtual cef_show_state_t GetInitialShowState(CefRefPtr<CefWindow> window) {
return CEF_SHOW_STATE_NORMAL;
}
///
// Return true if |window| should be created without a frame or title bar. The
// window will be resizable if CanResize() returns true. Use