diff --git a/bazaar/ChromiumBrowser/ClientHandler.cpp b/bazaar/ChromiumBrowser/ClientHandler.cpp index 3e95902c0..207033a35 100644 --- a/bazaar/ChromiumBrowser/ClientHandler.cpp +++ b/bazaar/ChromiumBrowser/ClientHandler.cpp @@ -23,7 +23,7 @@ bool ClientHandler::OnConsoleMessage(CefRefPtr browser, const CefStr return true; } - +#if CHROME_VERSION_BUILD > 2357 bool ClientHandler::OnBeforePopup(CefRefPtr browser, CefRefPtr frame, const CefString& target_url, @@ -35,6 +35,17 @@ bool ClientHandler::OnBeforePopup(CefRefPtr browser, CefRefPtr& client, CefBrowserSettings& settings, bool* no_javascript_access) +#else +bool ClientHandler::OnBeforePopup(CefRefPtr browser, + CefRefPtr frame, + const CefString& target_url, + const CefString& target_frame_name, + const CefPopupFeatures& popupFeatures, + CefWindowInfo& windowInfo, + CefRefPtr& client, + CefBrowserSettings& settings, + bool* no_javascript_access) +#endif { RLOG(Upp::Format("Popup canceled, frame name: '%s', url '%s'", target_frame_name.ToString().c_str(), target_url.ToString().c_str())); // Cancel popups diff --git a/bazaar/ChromiumBrowser/ClientHandler.h b/bazaar/ChromiumBrowser/ClientHandler.h index 918634c58..eb4515e60 100644 --- a/bazaar/ChromiumBrowser/ClientHandler.h +++ b/bazaar/ChromiumBrowser/ClientHandler.h @@ -10,7 +10,11 @@ #undef ITEM #include "include/cef_client.h" +#include "include/cef_version.h" +#ifndef CHROME_VERSION_BUILD +#error "Unknown CEF version" +#endif class ClientHandler : public CefClient, public CefLifeSpanHandler, public CefDisplayHandler, public CefLoadHandler, public CefFocusHandler, public CefContextMenuHandler, @@ -41,7 +45,7 @@ public: virtual CefRefPtr GetContextMenuHandler() OVERRIDE { return this; } virtual CefRefPtr GetJSDialogHandler() OVERRIDE { return this; } - +#if (CHROME_VERSION_BUILD >= 2357) virtual bool OnBeforePopup(CefRefPtr browser, CefRefPtr frame, const CefString& target_url, @@ -53,6 +57,17 @@ public: CefRefPtr& client, CefBrowserSettings& settings, bool* no_javascript_access) OVERRIDE; +#else + virtual bool OnBeforePopup(CefRefPtr browser, + CefRefPtr frame, + const CefString& target_url, + const CefString& target_frame_name, + const CefPopupFeatures& popupFeatures, + CefWindowInfo& windowInfo, + CefRefPtr& client, + CefBrowserSettings& settings, + bool* no_javascript_access) OVERRIDE; +#endif virtual void OnLoadError(CefRefPtr browser, CefRefPtr frame, diff --git a/bazaar/ChromiumBrowserExample/ChromiumBrowserExample.h b/bazaar/ChromiumBrowserExample/ChromiumBrowserExample.h index f73225beb..b72d3ded8 100644 --- a/bazaar/ChromiumBrowserExample/ChromiumBrowserExample.h +++ b/bazaar/ChromiumBrowserExample/ChromiumBrowserExample.h @@ -3,6 +3,7 @@ #include #include +#include "Utils.h" namespace Upp{ @@ -12,7 +13,8 @@ namespace Upp{ class ChromiumBrowserExample : public WithChromiumBrowserExampleLayout { private: - + + void Close() { Upp::ShowKeyboard(false); TopWindow::Close(); } void OnUrlChange(String url) { Url.SetData(url); Url.CancelSelection(); } void OnTakeFocus() { Url.SetFocus(); } void OnConsoleMessage(String url, int line, String msg) { RLOG(Format("Console message: url=%s, line=%d, msg=%s", url, line, msg)); } diff --git a/bazaar/ChromiumBrowserExample/main.cpp b/bazaar/ChromiumBrowserExample/main.cpp index 3c51efb20..dbf82ab00 100644 --- a/bazaar/ChromiumBrowserExample/main.cpp +++ b/bazaar/ChromiumBrowserExample/main.cpp @@ -1,5 +1,4 @@ #include "ChromiumBrowserExample.h" -#include "Utils.h" using namespace Upp; @@ -32,7 +31,12 @@ ChromiumBrowserExample::ChromiumBrowserExample() Go.WhenAction = THISBACK(OnBrowse); Stop.WhenAction = callback(&Browser, &ChromiumBrowser::Stop); +#ifdef PLATFORM_WIN32 Maximize(); +#elif defined(PLATFORM_LINUX) + //Delayed maximization - workaround for linux backend + SetTimeCallback(100, THISBACK1(Maximize, false)); +#endif } @@ -45,7 +49,6 @@ GUI_APP_MAIN ChromiumBrowser::ChildProcess(); }else{ ChromiumBrowserExample().Run(); - ::ShowKeyboard(false); } }