Skip to content
Snippets Groups Projects
Commit db77ff9d authored by svornost's avatar svornost
Browse files

Add context menu item to allow saving images from FCHost.

parent 49f4a26d
No related branches found
No related tags found
1 merge request!11639Add context menu item to allow saving images from FCHost
......@@ -242,6 +242,35 @@ bool FCHostHandler::OnPreKeyEvent(CefRefPtr<CefBrowser> browser,
}
void FCHostHandler::OnBeforeContextMenu(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefContextMenuParams> params,
CefRefPtr<CefMenuModel> model)
{
CEF_REQUIRE_UI_THREAD();
if (params->HasImageContents() && params->GetSourceUrl() != "")
model->AddItem(MENU_ID_USER_FIRST, "Save Image...");
}
bool FCHostHandler::OnContextMenuCommand(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefContextMenuParams> params,
int command_id,
EventFlags event_flags)
{
CEF_REQUIRE_UI_THREAD();
switch (command_id) {
case MENU_ID_USER_FIRST:
browser->GetHost()->StartDownload(params->GetSourceUrl());
return true;
default:
return false;
}
}
void FCHostHandler::CloseAllBrowsers(bool force_close) {
if (!CefCurrentlyOn(TID_UI)) {
// Execute on the UI thread.
......
......@@ -14,6 +14,7 @@ class FCHostHandler : public CefClient,
public CefLoadHandler,
public CefDownloadHandler,
public CefKeyboardHandler,
public CefContextMenuHandler,
private CefDialogHandler {
public:
explicit FCHostHandler(bool use_views);
......@@ -32,6 +33,7 @@ class FCHostHandler : public CefClient,
virtual CefRefPtr<CefLoadHandler> GetLoadHandler() override { return this; }
virtual CefRefPtr<CefDownloadHandler> GetDownloadHandler() override { return this; }
virtual CefRefPtr<CefKeyboardHandler> GetKeyboardHandler() override { return this; }
virtual CefRefPtr<CefContextMenuHandler> GetContextMenuHandler() override { return this; }
CefRefPtr< CefDialogHandler > GetDialogHandler() override { return this; }
bool OnFileDialog(CefRefPtr<CefBrowser> browser, CefDialogHandler::FileDialogMode mode,
......@@ -74,6 +76,17 @@ class FCHostHandler : public CefClient,
CefEventHandle os_event,
bool* is_keyboard_shortcut) override;
// CefContextMenuHandler methods:
virtual void OnBeforeContextMenu(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefContextMenuParams> params,
CefRefPtr<CefMenuModel> model) override;
virtual bool OnContextMenuCommand(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefContextMenuParams> params,
int command_id,
EventFlags event_flags) override;
// Request that all existing browser windows close.
void CloseAllBrowsers(bool force_close);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment