mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Move OnCursorChange from CefRenderHandler to CefDisplayHandler
The cursor change can now be handled by the client with both windowed and off-screen rendering. Returning true from OnCursorChange will disable the default cursor change behavior. This is functionally equivalent to the CefBrowserHost::SetMouseCursorChangeDisabled method, so that method has been removed.
This commit is contained in:
6
BUILD.gn
6
BUILD.gn
@ -556,6 +556,8 @@ static_library("libcef_static") {
|
|||||||
"libcef/browser/menu_runner.h",
|
"libcef/browser/menu_runner.h",
|
||||||
"libcef/browser/native/browser_platform_delegate_native.cc",
|
"libcef/browser/native/browser_platform_delegate_native.cc",
|
||||||
"libcef/browser/native/browser_platform_delegate_native.h",
|
"libcef/browser/native/browser_platform_delegate_native.h",
|
||||||
|
"libcef/browser/native/cursor_util.h",
|
||||||
|
"libcef/browser/native/cursor_util.cc",
|
||||||
"libcef/browser/navigate_params.cc",
|
"libcef/browser/navigate_params.cc",
|
||||||
"libcef/browser/navigate_params.h",
|
"libcef/browser/navigate_params.h",
|
||||||
"libcef/browser/navigation_entry_impl.cc",
|
"libcef/browser/navigation_entry_impl.cc",
|
||||||
@ -938,6 +940,7 @@ static_library("libcef_static") {
|
|||||||
"libcef/browser/alloy/alloy_browser_main_win.cc",
|
"libcef/browser/alloy/alloy_browser_main_win.cc",
|
||||||
"libcef/browser/native/browser_platform_delegate_native_win.cc",
|
"libcef/browser/native/browser_platform_delegate_native_win.cc",
|
||||||
"libcef/browser/native/browser_platform_delegate_native_win.h",
|
"libcef/browser/native/browser_platform_delegate_native_win.h",
|
||||||
|
"libcef/browser/native/cursor_util_win.cc",
|
||||||
"libcef/browser/native/file_dialog_runner_win.cc",
|
"libcef/browser/native/file_dialog_runner_win.cc",
|
||||||
"libcef/browser/native/file_dialog_runner_win.h",
|
"libcef/browser/native/file_dialog_runner_win.h",
|
||||||
"libcef/browser/native/javascript_dialog_runner_win.cc",
|
"libcef/browser/native/javascript_dialog_runner_win.cc",
|
||||||
@ -951,7 +954,6 @@ static_library("libcef_static") {
|
|||||||
"libcef/browser/native/native_menu_win.h",
|
"libcef/browser/native/native_menu_win.h",
|
||||||
"libcef/browser/osr/browser_platform_delegate_osr_win.cc",
|
"libcef/browser/osr/browser_platform_delegate_osr_win.cc",
|
||||||
"libcef/browser/osr/browser_platform_delegate_osr_win.h",
|
"libcef/browser/osr/browser_platform_delegate_osr_win.h",
|
||||||
"libcef/browser/osr/render_widget_host_view_osr_win.cc",
|
|
||||||
|
|
||||||
# Part of //chrome/utility.
|
# Part of //chrome/utility.
|
||||||
"//chrome/utility/printing_handler.cc",
|
"//chrome/utility/printing_handler.cc",
|
||||||
@ -982,11 +984,11 @@ static_library("libcef_static") {
|
|||||||
sources += includes_linux + [
|
sources += includes_linux + [
|
||||||
"libcef/browser/native/browser_platform_delegate_native_linux.cc",
|
"libcef/browser/native/browser_platform_delegate_native_linux.cc",
|
||||||
"libcef/browser/native/browser_platform_delegate_native_linux.h",
|
"libcef/browser/native/browser_platform_delegate_native_linux.h",
|
||||||
|
"libcef/browser/native/cursor_util_linux.cc",
|
||||||
"libcef/browser/native/menu_runner_linux.cc",
|
"libcef/browser/native/menu_runner_linux.cc",
|
||||||
"libcef/browser/native/menu_runner_linux.h",
|
"libcef/browser/native/menu_runner_linux.h",
|
||||||
"libcef/browser/osr/browser_platform_delegate_osr_linux.cc",
|
"libcef/browser/osr/browser_platform_delegate_osr_linux.cc",
|
||||||
"libcef/browser/osr/browser_platform_delegate_osr_linux.h",
|
"libcef/browser/osr/browser_platform_delegate_osr_linux.h",
|
||||||
"libcef/browser/osr/render_widget_host_view_osr_linux.cc",
|
|
||||||
"libcef/browser/printing/print_dialog_linux.cc",
|
"libcef/browser/printing/print_dialog_linux.cc",
|
||||||
"libcef/browser/printing/print_dialog_linux.h",
|
"libcef/browser/printing/print_dialog_linux.h",
|
||||||
]
|
]
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
// by hand. See the translator.README.txt file in the tools directory for
|
// by hand. See the translator.README.txt file in the tools directory for
|
||||||
// more information.
|
// more information.
|
||||||
//
|
//
|
||||||
// $hash=6cb00a0fa3631a46903abb3a783f315895511db2$
|
// $hash=965eb2e55afec0a4618a7acd9478b9c1215be29d$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_
|
||||||
@ -562,19 +562,6 @@ typedef struct _cef_browser_host_t {
|
|||||||
struct _cef_navigation_entry_visitor_t* visitor,
|
struct _cef_navigation_entry_visitor_t* visitor,
|
||||||
int current_only);
|
int current_only);
|
||||||
|
|
||||||
///
|
|
||||||
// Set whether mouse cursor change is disabled.
|
|
||||||
///
|
|
||||||
void(CEF_CALLBACK* set_mouse_cursor_change_disabled)(
|
|
||||||
struct _cef_browser_host_t* self,
|
|
||||||
int disabled);
|
|
||||||
|
|
||||||
///
|
|
||||||
// Returns true (1) if mouse cursor change is disabled.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* is_mouse_cursor_change_disabled)(
|
|
||||||
struct _cef_browser_host_t* self);
|
|
||||||
|
|
||||||
///
|
///
|
||||||
// If a misspelled word is currently selected in an editable node calling this
|
// If a misspelled word is currently selected in an editable node calling this
|
||||||
// function will replace it with the specified |word|.
|
// function will replace it with the specified |word|.
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
// by hand. See the translator.README.txt file in the tools directory for
|
// by hand. See the translator.README.txt file in the tools directory for
|
||||||
// more information.
|
// more information.
|
||||||
//
|
//
|
||||||
// $hash=951c936c8070dbf9bd246cc766b81cdfe06a3d81$
|
// $hash=eada7e92085d96497f4e69f3e8a7e8aa6746b175$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_
|
||||||
@ -141,6 +141,19 @@ typedef struct _cef_display_handler_t {
|
|||||||
struct _cef_display_handler_t* self,
|
struct _cef_display_handler_t* self,
|
||||||
struct _cef_browser_t* browser,
|
struct _cef_browser_t* browser,
|
||||||
double progress);
|
double progress);
|
||||||
|
|
||||||
|
///
|
||||||
|
// Called when the browser's cursor has changed. If |type| is CT_CUSTOM then
|
||||||
|
// |custom_cursor_info| will be populated with the custom cursor information.
|
||||||
|
// Return true (1) if the cursor change was handled or false (0) for default
|
||||||
|
// handling.
|
||||||
|
///
|
||||||
|
int(CEF_CALLBACK* on_cursor_change)(
|
||||||
|
struct _cef_display_handler_t* self,
|
||||||
|
struct _cef_browser_t* browser,
|
||||||
|
cef_cursor_handle_t cursor,
|
||||||
|
cef_cursor_type_t type,
|
||||||
|
const struct _cef_cursor_info_t* custom_cursor_info);
|
||||||
} cef_display_handler_t;
|
} cef_display_handler_t;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
// by hand. See the translator.README.txt file in the tools directory for
|
// by hand. See the translator.README.txt file in the tools directory for
|
||||||
// more information.
|
// more information.
|
||||||
//
|
//
|
||||||
// $hash=e642fc1fe3b97a90c0eae7f0fc0a5cfd385e3e17$
|
// $hash=f9806cd79f33b6a762fff25edd4189ae42bc8fd2$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_
|
||||||
@ -159,17 +159,6 @@ typedef struct _cef_render_handler_t {
|
|||||||
cef_rect_t const* dirtyRects,
|
cef_rect_t const* dirtyRects,
|
||||||
void* shared_handle);
|
void* shared_handle);
|
||||||
|
|
||||||
///
|
|
||||||
// Called when the browser's cursor has changed. If |type| is CT_CUSTOM then
|
|
||||||
// |custom_cursor_info| will be populated with the custom cursor information.
|
|
||||||
///
|
|
||||||
void(CEF_CALLBACK* on_cursor_change)(
|
|
||||||
struct _cef_render_handler_t* self,
|
|
||||||
struct _cef_browser_t* browser,
|
|
||||||
cef_cursor_handle_t cursor,
|
|
||||||
cef_cursor_type_t type,
|
|
||||||
const struct _cef_cursor_info_t* custom_cursor_info);
|
|
||||||
|
|
||||||
///
|
///
|
||||||
// Called when the user starts dragging content in the web view. Contextual
|
// Called when the user starts dragging content in the web view. Contextual
|
||||||
// information about the dragged content is supplied by |drag_data|. (|x|,
|
// information about the dragged content is supplied by |drag_data|. (|x|,
|
||||||
|
@ -42,13 +42,13 @@
|
|||||||
// way that may cause binary incompatibility with other builds. The universal
|
// way that may cause binary incompatibility with other builds. The universal
|
||||||
// hash value will change if any platform is affected whereas the platform hash
|
// hash value will change if any platform is affected whereas the platform hash
|
||||||
// values will change only if that particular platform is affected.
|
// values will change only if that particular platform is affected.
|
||||||
#define CEF_API_HASH_UNIVERSAL "22df40aa24a8bd920a2d18500c94dcc1b2c9508f"
|
#define CEF_API_HASH_UNIVERSAL "7f349b7262bfe13bda037370004f56a6081e543b"
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
#define CEF_API_HASH_PLATFORM "7698e6c4e3bc0f749609a0172a24d34cddbe8a1f"
|
#define CEF_API_HASH_PLATFORM "8a5523fec15255e2fb1de64deaa15dc3554b91e5"
|
||||||
#elif defined(OS_MAC)
|
#elif defined(OS_MAC)
|
||||||
#define CEF_API_HASH_PLATFORM "5189bd75f9d076d7f136bf140b6cc5990ad452ec"
|
#define CEF_API_HASH_PLATFORM "f572c8f7d3aee3cd3b85bd398b0ba43eb7fe79a0"
|
||||||
#elif defined(OS_LINUX)
|
#elif defined(OS_LINUX)
|
||||||
#define CEF_API_HASH_PLATFORM "96412a3d498054d352e5f9dcf5ad8ff90917c361"
|
#define CEF_API_HASH_PLATFORM "abf4cc6ff102e5cd019aaf51f13eb30f9bfeae45"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -592,18 +592,6 @@ class CefBrowserHost : public virtual CefBaseRefCounted {
|
|||||||
CefRefPtr<CefNavigationEntryVisitor> visitor,
|
CefRefPtr<CefNavigationEntryVisitor> visitor,
|
||||||
bool current_only) = 0;
|
bool current_only) = 0;
|
||||||
|
|
||||||
///
|
|
||||||
// Set whether mouse cursor change is disabled.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual void SetMouseCursorChangeDisabled(bool disabled) = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
// Returns true if mouse cursor change is disabled.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual bool IsMouseCursorChangeDisabled() = 0;
|
|
||||||
|
|
||||||
///
|
///
|
||||||
// If a misspelled word is currently selected in an editable node calling
|
// If a misspelled word is currently selected in an editable node calling
|
||||||
// this method will replace it with the specified |word|.
|
// this method will replace it with the specified |word|.
|
||||||
|
@ -135,6 +135,19 @@ class CefDisplayHandler : public virtual CefBaseRefCounted {
|
|||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual void OnLoadingProgressChange(CefRefPtr<CefBrowser> browser,
|
virtual void OnLoadingProgressChange(CefRefPtr<CefBrowser> browser,
|
||||||
double progress) {}
|
double progress) {}
|
||||||
|
|
||||||
|
///
|
||||||
|
// Called when the browser's cursor has changed. If |type| is CT_CUSTOM then
|
||||||
|
// |custom_cursor_info| will be populated with the custom cursor information.
|
||||||
|
// Return true if the cursor change was handled or false for default handling.
|
||||||
|
///
|
||||||
|
/*--cef()--*/
|
||||||
|
virtual bool OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
|
CefCursorHandle cursor,
|
||||||
|
cef_cursor_type_t type,
|
||||||
|
const CefCursorInfo& custom_cursor_info) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_CEF_DISPLAY_HANDLER_H_
|
#endif // CEF_INCLUDE_CEF_DISPLAY_HANDLER_H_
|
||||||
|
@ -52,7 +52,6 @@
|
|||||||
/*--cef(source=client)--*/
|
/*--cef(source=client)--*/
|
||||||
class CefRenderHandler : public virtual CefBaseRefCounted {
|
class CefRenderHandler : public virtual CefBaseRefCounted {
|
||||||
public:
|
public:
|
||||||
typedef cef_cursor_type_t CursorType;
|
|
||||||
typedef cef_drag_operations_mask_t DragOperation;
|
typedef cef_drag_operations_mask_t DragOperation;
|
||||||
typedef cef_drag_operations_mask_t DragOperationsMask;
|
typedef cef_drag_operations_mask_t DragOperationsMask;
|
||||||
typedef cef_paint_element_type_t PaintElementType;
|
typedef cef_paint_element_type_t PaintElementType;
|
||||||
@ -162,16 +161,6 @@ class CefRenderHandler : public virtual CefBaseRefCounted {
|
|||||||
const RectList& dirtyRects,
|
const RectList& dirtyRects,
|
||||||
void* shared_handle) {}
|
void* shared_handle) {}
|
||||||
|
|
||||||
///
|
|
||||||
// Called when the browser's cursor has changed. If |type| is CT_CUSTOM then
|
|
||||||
// |custom_cursor_info| will be populated with the custom cursor information.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
|
||||||
CefCursorHandle cursor,
|
|
||||||
CursorType type,
|
|
||||||
const CefCursorInfo& custom_cursor_info) {}
|
|
||||||
|
|
||||||
///
|
///
|
||||||
// Called when the user starts dragging content in the web view. Contextual
|
// Called when the user starts dragging content in the web view. Contextual
|
||||||
// information about the dragged content is supplied by |drag_data|.
|
// information about the dragged content is supplied by |drag_data|.
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include "libcef/browser/context.h"
|
#include "libcef/browser/context.h"
|
||||||
#include "libcef/browser/devtools/devtools_manager.h"
|
#include "libcef/browser/devtools/devtools_manager.h"
|
||||||
#include "libcef/browser/media_capture_devices_dispatcher.h"
|
#include "libcef/browser/media_capture_devices_dispatcher.h"
|
||||||
|
#include "libcef/browser/native/cursor_util.h"
|
||||||
#include "libcef/browser/osr/osr_util.h"
|
#include "libcef/browser/osr/osr_util.h"
|
||||||
#include "libcef/browser/request_context_impl.h"
|
#include "libcef/browser/request_context_impl.h"
|
||||||
#include "libcef/browser/thread_util.h"
|
#include "libcef/browser/thread_util.h"
|
||||||
@ -102,10 +103,11 @@ class CefWidgetHostInterceptor
|
|||||||
|
|
||||||
// WidgetHostInterceptorForTesting method:
|
// WidgetHostInterceptorForTesting method:
|
||||||
void SetCursor(const ui::Cursor& cursor) override {
|
void SetCursor(const ui::Cursor& cursor) override {
|
||||||
if (browser_->IsMouseCursorChangeDisabled()) {
|
if (cursor_util::OnCursorChange(browser_, cursor)) {
|
||||||
// Don't change the cursor.
|
// Don't change the cursor.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GetForwardingInterface()->SetCursor(cursor);
|
GetForwardingInterface()->SetCursor(cursor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -643,18 +645,6 @@ bool AlloyBrowserHostImpl::IsBackgroundHost() {
|
|||||||
return is_background_host_;
|
return is_background_host_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::SetMouseCursorChangeDisabled(bool disabled) {
|
|
||||||
base::AutoLock lock_scope(state_lock_);
|
|
||||||
if (mouse_cursor_change_disabled_ == disabled)
|
|
||||||
return;
|
|
||||||
mouse_cursor_change_disabled_ = disabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AlloyBrowserHostImpl::IsMouseCursorChangeDisabled() {
|
|
||||||
base::AutoLock lock_scope(state_lock_);
|
|
||||||
return mouse_cursor_change_disabled_;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AlloyBrowserHostImpl::IsWindowRenderingDisabled() {
|
bool AlloyBrowserHostImpl::IsWindowRenderingDisabled() {
|
||||||
return IsWindowless();
|
return IsWindowless();
|
||||||
}
|
}
|
||||||
|
@ -119,8 +119,6 @@ class AlloyBrowserHostImpl : public CefBrowserHostBase,
|
|||||||
CefRefPtr<CefDictionaryValue> params) override;
|
CefRefPtr<CefDictionaryValue> params) override;
|
||||||
CefRefPtr<CefRegistration> AddDevToolsMessageObserver(
|
CefRefPtr<CefRegistration> AddDevToolsMessageObserver(
|
||||||
CefRefPtr<CefDevToolsMessageObserver> observer) override;
|
CefRefPtr<CefDevToolsMessageObserver> observer) override;
|
||||||
void SetMouseCursorChangeDisabled(bool disabled) override;
|
|
||||||
bool IsMouseCursorChangeDisabled() override;
|
|
||||||
bool IsWindowRenderingDisabled() override;
|
bool IsWindowRenderingDisabled() override;
|
||||||
void WasResized() override;
|
void WasResized() override;
|
||||||
void WasHidden(bool hidden) override;
|
void WasHidden(bool hidden) override;
|
||||||
@ -388,9 +386,6 @@ class AlloyBrowserHostImpl : public CefBrowserHostBase,
|
|||||||
// on the UI thread.
|
// on the UI thread.
|
||||||
bool window_destroyed_ = false;
|
bool window_destroyed_ = false;
|
||||||
|
|
||||||
// True if mouse cursor change is disabled.
|
|
||||||
bool mouse_cursor_change_disabled_ = false;
|
|
||||||
|
|
||||||
// Used for creating and managing file dialogs.
|
// Used for creating and managing file dialogs.
|
||||||
std::unique_ptr<CefFileDialogManager> file_dialog_manager_;
|
std::unique_ptr<CefFileDialogManager> file_dialog_manager_;
|
||||||
|
|
||||||
|
@ -265,15 +265,6 @@ CefRefPtr<CefRegistration> ChromeBrowserHostImpl::AddDevToolsMessageObserver(
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChromeBrowserHostImpl::SetMouseCursorChangeDisabled(bool disabled) {
|
|
||||||
NOTIMPLEMENTED();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ChromeBrowserHostImpl::IsMouseCursorChangeDisabled() {
|
|
||||||
NOTIMPLEMENTED();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ChromeBrowserHostImpl::IsWindowRenderingDisabled() {
|
bool ChromeBrowserHostImpl::IsWindowRenderingDisabled() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -97,8 +97,6 @@ class ChromeBrowserHostImpl : public CefBrowserHostBase {
|
|||||||
CefRefPtr<CefDictionaryValue> params) override;
|
CefRefPtr<CefDictionaryValue> params) override;
|
||||||
CefRefPtr<CefRegistration> AddDevToolsMessageObserver(
|
CefRefPtr<CefRegistration> AddDevToolsMessageObserver(
|
||||||
CefRefPtr<CefDevToolsMessageObserver> observer) override;
|
CefRefPtr<CefDevToolsMessageObserver> observer) override;
|
||||||
void SetMouseCursorChangeDisabled(bool disabled) override;
|
|
||||||
bool IsMouseCursorChangeDisabled() override;
|
|
||||||
bool IsWindowRenderingDisabled() override;
|
bool IsWindowRenderingDisabled() override;
|
||||||
void WasResized() override;
|
void WasResized() override;
|
||||||
void WasHidden(bool hidden) override;
|
void WasHidden(bool hidden) override;
|
||||||
|
63
libcef/browser/native/cursor_util.cc
Normal file
63
libcef/browser/native/cursor_util.cc
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
// Copyright 2020 The Chromium Embedded Framework Authors. Portions copyright
|
||||||
|
// 2012 The Chromium Authors. All rights reserved. Use of this source code is
|
||||||
|
// governed by a BSD-style license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
#include "libcef/browser/native/cursor_util.h"
|
||||||
|
|
||||||
|
#include "libcef/browser/browser_host_base.h"
|
||||||
|
|
||||||
|
#include "content/common/cursors/webcursor.h"
|
||||||
|
#include "ui/base/cursor/mojom/cursor_type.mojom.h"
|
||||||
|
|
||||||
|
namespace cursor_util {
|
||||||
|
|
||||||
|
bool OnCursorChange(CefBrowserHostBase* browser, const ui::Cursor& ui_cursor) {
|
||||||
|
auto client = browser->GetClient();
|
||||||
|
if (!client)
|
||||||
|
return false;
|
||||||
|
auto handler = client->GetDisplayHandler();
|
||||||
|
if (!handler)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
const cef_cursor_type_t cursor_type =
|
||||||
|
static_cast<cef_cursor_type_t>(ui_cursor.type());
|
||||||
|
CefCursorInfo custom_cursor_info;
|
||||||
|
if (ui_cursor.type() == ui::mojom::CursorType::kCustom) {
|
||||||
|
custom_cursor_info.hotspot.x = ui_cursor.custom_hotspot().x();
|
||||||
|
custom_cursor_info.hotspot.y = ui_cursor.custom_hotspot().y();
|
||||||
|
custom_cursor_info.image_scale_factor = ui_cursor.image_scale_factor();
|
||||||
|
custom_cursor_info.buffer = ui_cursor.custom_bitmap().getPixels();
|
||||||
|
custom_cursor_info.size.width = ui_cursor.custom_bitmap().width();
|
||||||
|
custom_cursor_info.size.height = ui_cursor.custom_bitmap().height();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool handled = false;
|
||||||
|
|
||||||
|
#if defined(USE_AURA)
|
||||||
|
content::WebCursor web_cursor(ui_cursor);
|
||||||
|
|
||||||
|
CefCursorHandle platform_cursor;
|
||||||
|
if (ui_cursor.type() == ui::mojom::CursorType::kCustom) {
|
||||||
|
// |web_cursor| owns the resulting |platform_cursor|.
|
||||||
|
platform_cursor =
|
||||||
|
cursor_util::ToCursorHandle(web_cursor.GetPlatformCursor(ui_cursor));
|
||||||
|
} else {
|
||||||
|
platform_cursor = cursor_util::GetPlatformCursor(ui_cursor.type());
|
||||||
|
}
|
||||||
|
|
||||||
|
handled = handler->OnCursorChange(browser, platform_cursor, cursor_type,
|
||||||
|
custom_cursor_info);
|
||||||
|
#elif defined(OS_MAC)
|
||||||
|
// |web_cursor| owns the resulting |native_cursor|.
|
||||||
|
content::WebCursor web_cursor(ui_cursor);
|
||||||
|
CefCursorHandle native_cursor = web_cursor.GetNativeCursor();
|
||||||
|
handled = handler->OnCursorChange(browser, native_cursor, cursor_type,
|
||||||
|
custom_cursor_info);
|
||||||
|
#else
|
||||||
|
NOTIMPLEMENTED();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace cursor_util
|
27
libcef/browser/native/cursor_util.h
Normal file
27
libcef/browser/native/cursor_util.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// Copyright 2020 The Chromium Embedded Framework Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
#ifndef CEF_LIBCEF_BROWSER_NATIVE_CURSOR_UTIL_H_
|
||||||
|
#define CEF_LIBCEF_BROWSER_NATIVE_CURSOR_UTIL_H_
|
||||||
|
|
||||||
|
#include "include/internal/cef_types.h"
|
||||||
|
|
||||||
|
#include "ui/base/cursor/cursor.h"
|
||||||
|
#include "ui/base/cursor/mojom/cursor_type.mojom-forward.h"
|
||||||
|
|
||||||
|
class CefBrowserHostBase;
|
||||||
|
|
||||||
|
namespace cursor_util {
|
||||||
|
|
||||||
|
#if defined(USE_AURA)
|
||||||
|
cef_cursor_handle_t GetPlatformCursor(ui::mojom::CursorType type);
|
||||||
|
cef_cursor_handle_t ToCursorHandle(ui::PlatformCursor cursor);
|
||||||
|
#endif // defined(USE_AURA)
|
||||||
|
|
||||||
|
// Returns true if the client handled the cursor change.
|
||||||
|
bool OnCursorChange(CefBrowserHostBase* browser, const ui::Cursor& ui_cursor);
|
||||||
|
|
||||||
|
} // namespace cursor_util
|
||||||
|
|
||||||
|
#endif // CEF_LIBCEF_BROWSER_NATIVE_CURSOR_UTIL_H_
|
@ -1,9 +1,8 @@
|
|||||||
// Copyright (c) 2014 The Chromium Embedded Framework Authors.
|
// Copyright 2020 The Chromium Embedded Framework Authors. All rights reserved.
|
||||||
// Portions copyright (c) 2012 The Chromium Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
#include "libcef/browser/osr/render_widget_host_view_osr.h"
|
#include "libcef/browser/native/cursor_util.h"
|
||||||
|
|
||||||
#include "ui/base/cursor/cursor_factory.h"
|
#include "ui/base/cursor/cursor_factory.h"
|
||||||
|
|
||||||
@ -11,8 +10,9 @@
|
|||||||
#include "ui/base/x/x11_cursor.h"
|
#include "ui/base/x/x11_cursor.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CefCursorHandle CefRenderWidgetHostViewOSR::GetPlatformCursor(
|
namespace cursor_util {
|
||||||
ui::mojom::CursorType type) {
|
|
||||||
|
cef_cursor_handle_t GetPlatformCursor(ui::mojom::CursorType type) {
|
||||||
auto cursor = ui::CursorFactory::GetInstance()->GetDefaultCursor(type);
|
auto cursor = ui::CursorFactory::GetInstance()->GetDefaultCursor(type);
|
||||||
if (cursor) {
|
if (cursor) {
|
||||||
return ToCursorHandle(*cursor);
|
return ToCursorHandle(*cursor);
|
||||||
@ -20,13 +20,14 @@ CefCursorHandle CefRenderWidgetHostViewOSR::GetPlatformCursor(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
CefCursorHandle CefRenderWidgetHostViewOSR::ToCursorHandle(
|
cef_cursor_handle_t ToCursorHandle(ui::PlatformCursor cursor) {
|
||||||
ui::PlatformCursor cursor) {
|
|
||||||
#if defined(USE_X11)
|
#if defined(USE_X11)
|
||||||
// See https://crbug.com/1029142 for background.
|
// See https://crbug.com/1029142 for background.
|
||||||
return static_cast<CefCursorHandle>(
|
return static_cast<cef_cursor_handle_t>(
|
||||||
static_cast<ui::X11Cursor*>(cursor)->xcursor());
|
static_cast<ui::X11Cursor*>(cursor)->xcursor());
|
||||||
#else
|
#else
|
||||||
return cursor;
|
return cursor;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace cursor_util
|
@ -1,42 +1,21 @@
|
|||||||
// Copyright (c) 2014 The Chromium Embedded Framework Authors.
|
// Copyright 2020 The Chromium Embedded Framework Authors. Portions copyright
|
||||||
// Portions copyright (c) 2012 The Chromium Authors. All rights reserved.
|
// 2012 The Chromium Authors. All rights reserved. Use of this source code is
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// governed by a BSD-style license that can be found in the LICENSE file.
|
||||||
// found in the LICENSE file.
|
|
||||||
|
|
||||||
#include "libcef/browser/osr/render_widget_host_view_osr.h"
|
#include "libcef/browser/native/cursor_util.h"
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
#include "libcef/common/app_manager.h"
|
#include "libcef/common/app_manager.h"
|
||||||
|
|
||||||
|
#include "ui/base/cursor/mojom/cursor_type.mojom.h"
|
||||||
#include "ui/resources/grit/ui_unscaled_resources.h"
|
#include "ui/resources/grit/ui_unscaled_resources.h"
|
||||||
|
|
||||||
|
namespace cursor_util {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
class CefCompositorHostWin : public gfx::WindowImpl {
|
|
||||||
public:
|
|
||||||
CefCompositorHostWin() {
|
|
||||||
// Create a hidden 1x1 borderless window.
|
|
||||||
set_window_style(WS_POPUP | WS_SYSMENU);
|
|
||||||
Init(NULL, gfx::Rect(0, 0, 1, 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
~CefCompositorHostWin() override { DestroyWindow(hwnd()); }
|
|
||||||
|
|
||||||
private:
|
|
||||||
CR_BEGIN_MSG_MAP_EX(CefCompositorHostWin)
|
|
||||||
CR_MSG_WM_PAINT(OnPaint)
|
|
||||||
CR_END_MSG_MAP()
|
|
||||||
|
|
||||||
CR_MSG_MAP_CLASS_DECLARATIONS(CefCompositorHostWin)
|
|
||||||
|
|
||||||
void OnPaint(HDC dc) { ValidateRect(hwnd(), NULL); }
|
|
||||||
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(CefCompositorHostWin);
|
|
||||||
};
|
|
||||||
|
|
||||||
// From content/common/cursors/webcursor_win.cc.
|
// From content/common/cursors/webcursor_win.cc.
|
||||||
|
|
||||||
LPCWSTR ToCursorID(ui::mojom::CursorType type) {
|
LPCWSTR ToCursorID(ui::mojom::CursorType type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case ui::mojom::CursorType::kPointer:
|
case ui::mojom::CursorType::kPointer:
|
||||||
@ -152,8 +131,7 @@ bool IsSystemCursorID(LPCWSTR cursor_id) {
|
|||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
CefCursorHandle CefRenderWidgetHostViewOSR::GetPlatformCursor(
|
cef_cursor_handle_t GetPlatformCursor(ui::mojom::CursorType type) {
|
||||||
ui::mojom::CursorType type) {
|
|
||||||
// Using a dark 1x1 bit bmp kNone cursor may still cause DWM to do composition
|
// Using a dark 1x1 bit bmp kNone cursor may still cause DWM to do composition
|
||||||
// work unnecessarily. Better to totally remove it from the screen.
|
// work unnecessarily. Better to totally remove it from the screen.
|
||||||
// crbug.com/1069698
|
// crbug.com/1069698
|
||||||
@ -173,7 +151,8 @@ CefCursorHandle CefRenderWidgetHostViewOSR::GetPlatformCursor(
|
|||||||
return LoadCursor(module_handle, cursor_id);
|
return LoadCursor(module_handle, cursor_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
CefCursorHandle CefRenderWidgetHostViewOSR::ToCursorHandle(
|
cef_cursor_handle_t ToCursorHandle(ui::PlatformCursor cursor) {
|
||||||
ui::PlatformCursor cursor) {
|
|
||||||
return cursor;
|
return cursor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace cursor_util
|
@ -604,54 +604,7 @@ void CefRenderWidgetHostViewOSR::InitAsFullscreen(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CefRenderWidgetHostViewOSR::UpdateCursor(
|
void CefRenderWidgetHostViewOSR::UpdateCursor(
|
||||||
const content::WebCursor& cursor) {
|
const content::WebCursor& cursor) {}
|
||||||
TRACE_EVENT0("cef", "CefRenderWidgetHostViewOSR::UpdateCursor");
|
|
||||||
if (!browser_impl_.get())
|
|
||||||
return;
|
|
||||||
|
|
||||||
CefRefPtr<CefRenderHandler> handler =
|
|
||||||
browser_impl_->GetClient()->GetRenderHandler();
|
|
||||||
CHECK(handler);
|
|
||||||
|
|
||||||
const auto& ui_cursor = cursor.cursor();
|
|
||||||
|
|
||||||
const cef_cursor_type_t cursor_type =
|
|
||||||
static_cast<cef_cursor_type_t>(ui_cursor.type());
|
|
||||||
CefCursorInfo custom_cursor_info;
|
|
||||||
if (ui_cursor.type() == ui::mojom::CursorType::kCustom) {
|
|
||||||
custom_cursor_info.hotspot.x = ui_cursor.custom_hotspot().x();
|
|
||||||
custom_cursor_info.hotspot.y = ui_cursor.custom_hotspot().y();
|
|
||||||
custom_cursor_info.image_scale_factor = ui_cursor.image_scale_factor();
|
|
||||||
custom_cursor_info.buffer = ui_cursor.custom_bitmap().getPixels();
|
|
||||||
custom_cursor_info.size.width = ui_cursor.custom_bitmap().width();
|
|
||||||
custom_cursor_info.size.height = ui_cursor.custom_bitmap().height();
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(USE_AURA)
|
|
||||||
content::WebCursor web_cursor(ui_cursor);
|
|
||||||
|
|
||||||
CefCursorHandle platform_cursor;
|
|
||||||
if (ui_cursor.type() == ui::mojom::CursorType::kCustom) {
|
|
||||||
// |web_cursor| owns the resulting |platform_cursor|.
|
|
||||||
platform_cursor = ToCursorHandle(web_cursor.GetPlatformCursor(ui_cursor));
|
|
||||||
} else {
|
|
||||||
platform_cursor = GetPlatformCursor(ui_cursor.type());
|
|
||||||
}
|
|
||||||
|
|
||||||
handler->OnCursorChange(browser_impl_.get(), platform_cursor, cursor_type,
|
|
||||||
custom_cursor_info);
|
|
||||||
#elif defined(OS_MAC)
|
|
||||||
// |web_cursor| owns the resulting |native_cursor|.
|
|
||||||
content::WebCursor web_cursor(cursor);
|
|
||||||
CefCursorHandle native_cursor = web_cursor.GetNativeCursor();
|
|
||||||
handler->OnCursorChange(browser_impl_.get(), native_cursor, cursor_type,
|
|
||||||
custom_cursor_info);
|
|
||||||
#else
|
|
||||||
// TODO(port): Implement this method to work on other platforms as part of
|
|
||||||
// off-screen rendering support.
|
|
||||||
NOTREACHED();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
content::CursorManager* CefRenderWidgetHostViewOSR::GetCursorManager() {
|
content::CursorManager* CefRenderWidgetHostViewOSR::GetCursorManager() {
|
||||||
return cursor_manager_.get();
|
return cursor_manager_.get();
|
||||||
|
@ -328,11 +328,6 @@ class CefRenderWidgetHostViewOSR
|
|||||||
// opaqueness changes.
|
// opaqueness changes.
|
||||||
void UpdateBackgroundColorFromRenderer(SkColor color);
|
void UpdateBackgroundColorFromRenderer(SkColor color);
|
||||||
|
|
||||||
#if defined(USE_AURA)
|
|
||||||
CefCursorHandle GetPlatformCursor(ui::mojom::CursorType type);
|
|
||||||
CefCursorHandle ToCursorHandle(ui::PlatformCursor cursor);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// The background color of the web content.
|
// The background color of the web content.
|
||||||
SkColor background_color_;
|
SkColor background_color_;
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// implementations. See the translator.README.txt file in the tools directory
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
// for more information.
|
// for more information.
|
||||||
//
|
//
|
||||||
// $hash=516b55b7ea53e2de2b096e85ba0eb83f2a2693f3$
|
// $hash=fa230168d79d0644b518d042bf3f9370e6eccf8c$
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "libcef_dll/cpptoc/browser_host_cpptoc.h"
|
#include "libcef_dll/cpptoc/browser_host_cpptoc.h"
|
||||||
@ -621,39 +621,6 @@ browser_host_get_navigation_entries(struct _cef_browser_host_t* self,
|
|||||||
current_only ? true : false);
|
current_only ? true : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CEF_CALLBACK
|
|
||||||
browser_host_set_mouse_cursor_change_disabled(struct _cef_browser_host_t* self,
|
|
||||||
int disabled) {
|
|
||||||
shutdown_checker::AssertNotShutdown();
|
|
||||||
|
|
||||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
||||||
|
|
||||||
DCHECK(self);
|
|
||||||
if (!self)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Execute
|
|
||||||
CefBrowserHostCppToC::Get(self)->SetMouseCursorChangeDisabled(
|
|
||||||
disabled ? true : false);
|
|
||||||
}
|
|
||||||
|
|
||||||
int CEF_CALLBACK
|
|
||||||
browser_host_is_mouse_cursor_change_disabled(struct _cef_browser_host_t* self) {
|
|
||||||
shutdown_checker::AssertNotShutdown();
|
|
||||||
|
|
||||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
||||||
|
|
||||||
DCHECK(self);
|
|
||||||
if (!self)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
// Execute
|
|
||||||
bool _retval = CefBrowserHostCppToC::Get(self)->IsMouseCursorChangeDisabled();
|
|
||||||
|
|
||||||
// Return type: bool
|
|
||||||
return _retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CEF_CALLBACK
|
void CEF_CALLBACK
|
||||||
browser_host_replace_misspelling(struct _cef_browser_host_t* self,
|
browser_host_replace_misspelling(struct _cef_browser_host_t* self,
|
||||||
const cef_string_t* word) {
|
const cef_string_t* word) {
|
||||||
@ -1367,10 +1334,6 @@ CefBrowserHostCppToC::CefBrowserHostCppToC() {
|
|||||||
GetStruct()->add_dev_tools_message_observer =
|
GetStruct()->add_dev_tools_message_observer =
|
||||||
browser_host_add_dev_tools_message_observer;
|
browser_host_add_dev_tools_message_observer;
|
||||||
GetStruct()->get_navigation_entries = browser_host_get_navigation_entries;
|
GetStruct()->get_navigation_entries = browser_host_get_navigation_entries;
|
||||||
GetStruct()->set_mouse_cursor_change_disabled =
|
|
||||||
browser_host_set_mouse_cursor_change_disabled;
|
|
||||||
GetStruct()->is_mouse_cursor_change_disabled =
|
|
||||||
browser_host_is_mouse_cursor_change_disabled;
|
|
||||||
GetStruct()->replace_misspelling = browser_host_replace_misspelling;
|
GetStruct()->replace_misspelling = browser_host_replace_misspelling;
|
||||||
GetStruct()->add_word_to_dictionary = browser_host_add_word_to_dictionary;
|
GetStruct()->add_word_to_dictionary = browser_host_add_word_to_dictionary;
|
||||||
GetStruct()->is_window_rendering_disabled =
|
GetStruct()->is_window_rendering_disabled =
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// implementations. See the translator.README.txt file in the tools directory
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
// for more information.
|
// for more information.
|
||||||
//
|
//
|
||||||
// $hash=1e329026cfad131337e794e5501367604f62fdb6$
|
// $hash=a6a81143ea8792ba5643643389f4dc2a8815174a$
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "libcef_dll/cpptoc/display_handler_cpptoc.h"
|
#include "libcef_dll/cpptoc/display_handler_cpptoc.h"
|
||||||
@ -252,6 +252,41 @@ display_handler_on_loading_progress_change(struct _cef_display_handler_t* self,
|
|||||||
CefBrowserCToCpp::Wrap(browser), progress);
|
CefBrowserCToCpp::Wrap(browser), progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CEF_CALLBACK display_handler_on_cursor_change(
|
||||||
|
struct _cef_display_handler_t* self,
|
||||||
|
cef_browser_t* browser,
|
||||||
|
cef_cursor_handle_t cursor,
|
||||||
|
cef_cursor_type_t type,
|
||||||
|
const struct _cef_cursor_info_t* custom_cursor_info) {
|
||||||
|
shutdown_checker::AssertNotShutdown();
|
||||||
|
|
||||||
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||||
|
|
||||||
|
DCHECK(self);
|
||||||
|
if (!self)
|
||||||
|
return 0;
|
||||||
|
// Verify param: browser; type: refptr_diff
|
||||||
|
DCHECK(browser);
|
||||||
|
if (!browser)
|
||||||
|
return 0;
|
||||||
|
// Verify param: custom_cursor_info; type: struct_byref_const
|
||||||
|
DCHECK(custom_cursor_info);
|
||||||
|
if (!custom_cursor_info)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
// Translate param: custom_cursor_info; type: struct_byref_const
|
||||||
|
CefCursorInfo custom_cursor_infoObj;
|
||||||
|
if (custom_cursor_info)
|
||||||
|
custom_cursor_infoObj.Set(*custom_cursor_info, false);
|
||||||
|
|
||||||
|
// Execute
|
||||||
|
bool _retval = CefDisplayHandlerCppToC::Get(self)->OnCursorChange(
|
||||||
|
CefBrowserCToCpp::Wrap(browser), cursor, type, custom_cursor_infoObj);
|
||||||
|
|
||||||
|
// Return type: bool
|
||||||
|
return _retval;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
// CONSTRUCTOR - Do not edit by hand.
|
// CONSTRUCTOR - Do not edit by hand.
|
||||||
@ -268,6 +303,7 @@ CefDisplayHandlerCppToC::CefDisplayHandlerCppToC() {
|
|||||||
GetStruct()->on_auto_resize = display_handler_on_auto_resize;
|
GetStruct()->on_auto_resize = display_handler_on_auto_resize;
|
||||||
GetStruct()->on_loading_progress_change =
|
GetStruct()->on_loading_progress_change =
|
||||||
display_handler_on_loading_progress_change;
|
display_handler_on_loading_progress_change;
|
||||||
|
GetStruct()->on_cursor_change = display_handler_on_cursor_change;
|
||||||
}
|
}
|
||||||
|
|
||||||
// DESTRUCTOR - Do not edit by hand.
|
// DESTRUCTOR - Do not edit by hand.
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// implementations. See the translator.README.txt file in the tools directory
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
// for more information.
|
// for more information.
|
||||||
//
|
//
|
||||||
// $hash=2e22f210ff06337ac41e71a00b9dc6edce08e6d8$
|
// $hash=22da80871c4a9dfc9989f577456b7e3d987e805d$
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "libcef_dll/cpptoc/render_handler_cpptoc.h"
|
#include "libcef_dll/cpptoc/render_handler_cpptoc.h"
|
||||||
@ -324,38 +324,6 @@ render_handler_on_accelerated_paint(struct _cef_render_handler_t* self,
|
|||||||
CefBrowserCToCpp::Wrap(browser), type, dirtyRectsList, shared_handle);
|
CefBrowserCToCpp::Wrap(browser), type, dirtyRectsList, shared_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CEF_CALLBACK render_handler_on_cursor_change(
|
|
||||||
struct _cef_render_handler_t* self,
|
|
||||||
cef_browser_t* browser,
|
|
||||||
cef_cursor_handle_t cursor,
|
|
||||||
cef_cursor_type_t type,
|
|
||||||
const struct _cef_cursor_info_t* custom_cursor_info) {
|
|
||||||
shutdown_checker::AssertNotShutdown();
|
|
||||||
|
|
||||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
||||||
|
|
||||||
DCHECK(self);
|
|
||||||
if (!self)
|
|
||||||
return;
|
|
||||||
// Verify param: browser; type: refptr_diff
|
|
||||||
DCHECK(browser);
|
|
||||||
if (!browser)
|
|
||||||
return;
|
|
||||||
// Verify param: custom_cursor_info; type: struct_byref_const
|
|
||||||
DCHECK(custom_cursor_info);
|
|
||||||
if (!custom_cursor_info)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Translate param: custom_cursor_info; type: struct_byref_const
|
|
||||||
CefCursorInfo custom_cursor_infoObj;
|
|
||||||
if (custom_cursor_info)
|
|
||||||
custom_cursor_infoObj.Set(*custom_cursor_info, false);
|
|
||||||
|
|
||||||
// Execute
|
|
||||||
CefRenderHandlerCppToC::Get(self)->OnCursorChange(
|
|
||||||
CefBrowserCToCpp::Wrap(browser), cursor, type, custom_cursor_infoObj);
|
|
||||||
}
|
|
||||||
|
|
||||||
int CEF_CALLBACK
|
int CEF_CALLBACK
|
||||||
render_handler_start_dragging(struct _cef_render_handler_t* self,
|
render_handler_start_dragging(struct _cef_render_handler_t* self,
|
||||||
cef_browser_t* browser,
|
cef_browser_t* browser,
|
||||||
@ -536,7 +504,6 @@ CefRenderHandlerCppToC::CefRenderHandlerCppToC() {
|
|||||||
GetStruct()->on_popup_size = render_handler_on_popup_size;
|
GetStruct()->on_popup_size = render_handler_on_popup_size;
|
||||||
GetStruct()->on_paint = render_handler_on_paint;
|
GetStruct()->on_paint = render_handler_on_paint;
|
||||||
GetStruct()->on_accelerated_paint = render_handler_on_accelerated_paint;
|
GetStruct()->on_accelerated_paint = render_handler_on_accelerated_paint;
|
||||||
GetStruct()->on_cursor_change = render_handler_on_cursor_change;
|
|
||||||
GetStruct()->start_dragging = render_handler_start_dragging;
|
GetStruct()->start_dragging = render_handler_start_dragging;
|
||||||
GetStruct()->update_drag_cursor = render_handler_update_drag_cursor;
|
GetStruct()->update_drag_cursor = render_handler_update_drag_cursor;
|
||||||
GetStruct()->on_scroll_offset_changed =
|
GetStruct()->on_scroll_offset_changed =
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// implementations. See the translator.README.txt file in the tools directory
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
// for more information.
|
// for more information.
|
||||||
//
|
//
|
||||||
// $hash=a362e11e85ce68488bbb0f5232b01f53cffeec1d$
|
// $hash=9751b66edccb575f54c07bf14da39516f52b7402$
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "libcef_dll/ctocpp/browser_host_ctocpp.h"
|
#include "libcef_dll/ctocpp/browser_host_ctocpp.h"
|
||||||
@ -567,37 +567,6 @@ void CefBrowserHostCToCpp::GetNavigationEntries(
|
|||||||
_struct, CefNavigationEntryVisitorCppToC::Wrap(visitor), current_only);
|
_struct, CefNavigationEntryVisitorCppToC::Wrap(visitor), current_only);
|
||||||
}
|
}
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall")
|
|
||||||
void CefBrowserHostCToCpp::SetMouseCursorChangeDisabled(bool disabled) {
|
|
||||||
shutdown_checker::AssertNotShutdown();
|
|
||||||
|
|
||||||
cef_browser_host_t* _struct = GetStruct();
|
|
||||||
if (CEF_MEMBER_MISSING(_struct, set_mouse_cursor_change_disabled))
|
|
||||||
return;
|
|
||||||
|
|
||||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
||||||
|
|
||||||
// Execute
|
|
||||||
_struct->set_mouse_cursor_change_disabled(_struct, disabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall")
|
|
||||||
bool CefBrowserHostCToCpp::IsMouseCursorChangeDisabled() {
|
|
||||||
shutdown_checker::AssertNotShutdown();
|
|
||||||
|
|
||||||
cef_browser_host_t* _struct = GetStruct();
|
|
||||||
if (CEF_MEMBER_MISSING(_struct, is_mouse_cursor_change_disabled))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
||||||
|
|
||||||
// Execute
|
|
||||||
int _retval = _struct->is_mouse_cursor_change_disabled(_struct);
|
|
||||||
|
|
||||||
// Return type: bool
|
|
||||||
return _retval ? true : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall")
|
NO_SANITIZE("cfi-icall")
|
||||||
void CefBrowserHostCToCpp::ReplaceMisspelling(const CefString& word) {
|
void CefBrowserHostCToCpp::ReplaceMisspelling(const CefString& word) {
|
||||||
shutdown_checker::AssertNotShutdown();
|
shutdown_checker::AssertNotShutdown();
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// implementations. See the translator.README.txt file in the tools directory
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
// for more information.
|
// for more information.
|
||||||
//
|
//
|
||||||
// $hash=c9abd1293472afbac964aac4cd7dd4cac9dd8e58$
|
// $hash=07e94d03d7ceb97115adedb4cc641318cd77975b$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_LIBCEF_DLL_CTOCPP_BROWSER_HOST_CTOCPP_H_
|
#ifndef CEF_LIBCEF_DLL_CTOCPP_BROWSER_HOST_CTOCPP_H_
|
||||||
@ -84,8 +84,6 @@ class CefBrowserHostCToCpp : public CefCToCppRefCounted<CefBrowserHostCToCpp,
|
|||||||
CefRefPtr<CefDevToolsMessageObserver> observer) OVERRIDE;
|
CefRefPtr<CefDevToolsMessageObserver> observer) OVERRIDE;
|
||||||
void GetNavigationEntries(CefRefPtr<CefNavigationEntryVisitor> visitor,
|
void GetNavigationEntries(CefRefPtr<CefNavigationEntryVisitor> visitor,
|
||||||
bool current_only) OVERRIDE;
|
bool current_only) OVERRIDE;
|
||||||
void SetMouseCursorChangeDisabled(bool disabled) OVERRIDE;
|
|
||||||
bool IsMouseCursorChangeDisabled() OVERRIDE;
|
|
||||||
void ReplaceMisspelling(const CefString& word) OVERRIDE;
|
void ReplaceMisspelling(const CefString& word) OVERRIDE;
|
||||||
void AddWordToDictionary(const CefString& word) OVERRIDE;
|
void AddWordToDictionary(const CefString& word) OVERRIDE;
|
||||||
bool IsWindowRenderingDisabled() OVERRIDE;
|
bool IsWindowRenderingDisabled() OVERRIDE;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// implementations. See the translator.README.txt file in the tools directory
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
// for more information.
|
// for more information.
|
||||||
//
|
//
|
||||||
// $hash=11c971f10c02ae341f62e70dca05528f78c8d1a2$
|
// $hash=16db2529b69497fdccf21d56531906127e473044$
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "libcef_dll/ctocpp/display_handler_ctocpp.h"
|
#include "libcef_dll/ctocpp/display_handler_ctocpp.h"
|
||||||
@ -249,6 +249,34 @@ void CefDisplayHandlerCToCpp::OnLoadingProgressChange(
|
|||||||
progress);
|
progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NO_SANITIZE("cfi-icall")
|
||||||
|
bool CefDisplayHandlerCToCpp::OnCursorChange(
|
||||||
|
CefRefPtr<CefBrowser> browser,
|
||||||
|
CefCursorHandle cursor,
|
||||||
|
cef_cursor_type_t type,
|
||||||
|
const CefCursorInfo& custom_cursor_info) {
|
||||||
|
shutdown_checker::AssertNotShutdown();
|
||||||
|
|
||||||
|
cef_display_handler_t* _struct = GetStruct();
|
||||||
|
if (CEF_MEMBER_MISSING(_struct, on_cursor_change))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||||
|
|
||||||
|
// Verify param: browser; type: refptr_diff
|
||||||
|
DCHECK(browser.get());
|
||||||
|
if (!browser.get())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Execute
|
||||||
|
int _retval =
|
||||||
|
_struct->on_cursor_change(_struct, CefBrowserCppToC::Wrap(browser),
|
||||||
|
cursor, type, &custom_cursor_info);
|
||||||
|
|
||||||
|
// Return type: bool
|
||||||
|
return _retval ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
// CONSTRUCTOR - Do not edit by hand.
|
// CONSTRUCTOR - Do not edit by hand.
|
||||||
|
|
||||||
CefDisplayHandlerCToCpp::CefDisplayHandlerCToCpp() {}
|
CefDisplayHandlerCToCpp::CefDisplayHandlerCToCpp() {}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// implementations. See the translator.README.txt file in the tools directory
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
// for more information.
|
// for more information.
|
||||||
//
|
//
|
||||||
// $hash=2a5e7a2afb4d183e4688ef7aec8d12d2bc1d5212$
|
// $hash=4874f1f7e3c35cb0b079b65c03aed01f9cc30e47$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_LIBCEF_DLL_CTOCPP_DISPLAY_HANDLER_CTOCPP_H_
|
#ifndef CEF_LIBCEF_DLL_CTOCPP_DISPLAY_HANDLER_CTOCPP_H_
|
||||||
@ -57,6 +57,10 @@ class CefDisplayHandlerCToCpp
|
|||||||
const CefSize& new_size) override;
|
const CefSize& new_size) override;
|
||||||
void OnLoadingProgressChange(CefRefPtr<CefBrowser> browser,
|
void OnLoadingProgressChange(CefRefPtr<CefBrowser> browser,
|
||||||
double progress) override;
|
double progress) override;
|
||||||
|
bool OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
|
CefCursorHandle cursor,
|
||||||
|
cef_cursor_type_t type,
|
||||||
|
const CefCursorInfo& custom_cursor_info) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CEF_LIBCEF_DLL_CTOCPP_DISPLAY_HANDLER_CTOCPP_H_
|
#endif // CEF_LIBCEF_DLL_CTOCPP_DISPLAY_HANDLER_CTOCPP_H_
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// implementations. See the translator.README.txt file in the tools directory
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
// for more information.
|
// for more information.
|
||||||
//
|
//
|
||||||
// $hash=f592f3806c9f87ee6c691b9f072cee4d6bb4650e$
|
// $hash=b9bf8bf4ccc5ef6a43f86ef697617fc6fe8470a5$
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "libcef_dll/ctocpp/render_handler_ctocpp.h"
|
#include "libcef_dll/ctocpp/render_handler_ctocpp.h"
|
||||||
@ -265,30 +265,6 @@ void CefRenderHandlerCToCpp::OnAcceleratedPaint(CefRefPtr<CefBrowser> browser,
|
|||||||
delete[] dirtyRectsList;
|
delete[] dirtyRectsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall")
|
|
||||||
void CefRenderHandlerCToCpp::OnCursorChange(
|
|
||||||
CefRefPtr<CefBrowser> browser,
|
|
||||||
CefCursorHandle cursor,
|
|
||||||
CursorType type,
|
|
||||||
const CefCursorInfo& custom_cursor_info) {
|
|
||||||
shutdown_checker::AssertNotShutdown();
|
|
||||||
|
|
||||||
cef_render_handler_t* _struct = GetStruct();
|
|
||||||
if (CEF_MEMBER_MISSING(_struct, on_cursor_change))
|
|
||||||
return;
|
|
||||||
|
|
||||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
||||||
|
|
||||||
// Verify param: browser; type: refptr_diff
|
|
||||||
DCHECK(browser.get());
|
|
||||||
if (!browser.get())
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Execute
|
|
||||||
_struct->on_cursor_change(_struct, CefBrowserCppToC::Wrap(browser), cursor,
|
|
||||||
type, &custom_cursor_info);
|
|
||||||
}
|
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall")
|
NO_SANITIZE("cfi-icall")
|
||||||
bool CefRenderHandlerCToCpp::StartDragging(CefRefPtr<CefBrowser> browser,
|
bool CefRenderHandlerCToCpp::StartDragging(CefRefPtr<CefBrowser> browser,
|
||||||
CefRefPtr<CefDragData> drag_data,
|
CefRefPtr<CefDragData> drag_data,
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// implementations. See the translator.README.txt file in the tools directory
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
// for more information.
|
// for more information.
|
||||||
//
|
//
|
||||||
// $hash=ed8882abe62f08d4746a646307ef74d4987780c4$
|
// $hash=be7b5b4b7b8782c7bd3a4c52ed75bc3c9c044265$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_LIBCEF_DLL_CTOCPP_RENDER_HANDLER_CTOCPP_H_
|
#ifndef CEF_LIBCEF_DLL_CTOCPP_RENDER_HANDLER_CTOCPP_H_
|
||||||
@ -57,10 +57,6 @@ class CefRenderHandlerCToCpp
|
|||||||
PaintElementType type,
|
PaintElementType type,
|
||||||
const RectList& dirtyRects,
|
const RectList& dirtyRects,
|
||||||
void* shared_handle) override;
|
void* shared_handle) override;
|
||||||
void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
|
||||||
CefCursorHandle cursor,
|
|
||||||
CursorType type,
|
|
||||||
const CefCursorInfo& custom_cursor_info) override;
|
|
||||||
bool StartDragging(CefRefPtr<CefBrowser> browser,
|
bool StartDragging(CefRefPtr<CefBrowser> browser,
|
||||||
CefRefPtr<CefDragData> drag_data,
|
CefRefPtr<CefDragData> drag_data,
|
||||||
DragOperationsMask allowed_ops,
|
DragOperationsMask allowed_ops,
|
||||||
|
@ -1285,7 +1285,7 @@ void BrowserWindowOsrGtk::OnPaint(CefRefPtr<CefBrowser> browser,
|
|||||||
void BrowserWindowOsrGtk::OnCursorChange(
|
void BrowserWindowOsrGtk::OnCursorChange(
|
||||||
CefRefPtr<CefBrowser> browser,
|
CefRefPtr<CefBrowser> browser,
|
||||||
CefCursorHandle cursor,
|
CefCursorHandle cursor,
|
||||||
CefRenderHandler::CursorType type,
|
cef_cursor_type_t type,
|
||||||
const CefCursorInfo& custom_cursor_info) {
|
const CefCursorInfo& custom_cursor_info) {
|
||||||
CEF_REQUIRE_UI_THREAD();
|
CEF_REQUIRE_UI_THREAD();
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ class BrowserWindowOsrGtk : public BrowserWindow,
|
|||||||
int height) OVERRIDE;
|
int height) OVERRIDE;
|
||||||
void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
CefCursorHandle cursor,
|
CefCursorHandle cursor,
|
||||||
CefRenderHandler::CursorType type,
|
cef_cursor_type_t type,
|
||||||
const CefCursorInfo& custom_cursor_info) OVERRIDE;
|
const CefCursorInfo& custom_cursor_info) OVERRIDE;
|
||||||
bool StartDragging(CefRefPtr<CefBrowser> browser,
|
bool StartDragging(CefRefPtr<CefBrowser> browser,
|
||||||
CefRefPtr<CefDragData> drag_data,
|
CefRefPtr<CefDragData> drag_data,
|
||||||
|
@ -73,7 +73,7 @@ class BrowserWindowOsrMac : public BrowserWindow,
|
|||||||
int height) OVERRIDE;
|
int height) OVERRIDE;
|
||||||
void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
CefCursorHandle cursor,
|
CefCursorHandle cursor,
|
||||||
CefRenderHandler::CursorType type,
|
cef_cursor_type_t type,
|
||||||
const CefCursorInfo& custom_cursor_info) OVERRIDE;
|
const CefCursorInfo& custom_cursor_info) OVERRIDE;
|
||||||
bool StartDragging(CefRefPtr<CefBrowser> browser,
|
bool StartDragging(CefRefPtr<CefBrowser> browser,
|
||||||
CefRefPtr<CefDragData> drag_data,
|
CefRefPtr<CefDragData> drag_data,
|
||||||
|
@ -1323,7 +1323,7 @@ class BrowserWindowOsrMacImpl {
|
|||||||
int height);
|
int height);
|
||||||
void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
CefCursorHandle cursor,
|
CefCursorHandle cursor,
|
||||||
CefRenderHandler::CursorType type,
|
cef_cursor_type_t type,
|
||||||
const CefCursorInfo& custom_cursor_info);
|
const CefCursorInfo& custom_cursor_info);
|
||||||
bool StartDragging(CefRefPtr<CefBrowser> browser,
|
bool StartDragging(CefRefPtr<CefBrowser> browser,
|
||||||
CefRefPtr<CefDragData> drag_data,
|
CefRefPtr<CefDragData> drag_data,
|
||||||
@ -1655,7 +1655,7 @@ void BrowserWindowOsrMacImpl::OnPaint(
|
|||||||
void BrowserWindowOsrMacImpl::OnCursorChange(
|
void BrowserWindowOsrMacImpl::OnCursorChange(
|
||||||
CefRefPtr<CefBrowser> browser,
|
CefRefPtr<CefBrowser> browser,
|
||||||
CefCursorHandle cursor,
|
CefCursorHandle cursor,
|
||||||
CefRenderHandler::CursorType type,
|
cef_cursor_type_t type,
|
||||||
const CefCursorInfo& custom_cursor_info) {
|
const CefCursorInfo& custom_cursor_info) {
|
||||||
CEF_REQUIRE_UI_THREAD();
|
CEF_REQUIRE_UI_THREAD();
|
||||||
REQUIRE_MAIN_THREAD();
|
REQUIRE_MAIN_THREAD();
|
||||||
@ -1877,7 +1877,7 @@ void BrowserWindowOsrMac::OnPaint(CefRefPtr<CefBrowser> browser,
|
|||||||
void BrowserWindowOsrMac::OnCursorChange(
|
void BrowserWindowOsrMac::OnCursorChange(
|
||||||
CefRefPtr<CefBrowser> browser,
|
CefRefPtr<CefBrowser> browser,
|
||||||
CefCursorHandle cursor,
|
CefCursorHandle cursor,
|
||||||
CefRenderHandler::CursorType type,
|
cef_cursor_type_t type,
|
||||||
const CefCursorInfo& custom_cursor_info) {
|
const CefCursorInfo& custom_cursor_info) {
|
||||||
impl_->OnCursorChange(browser, cursor, type, custom_cursor_info);
|
impl_->OnCursorChange(browser, cursor, type, custom_cursor_info);
|
||||||
}
|
}
|
||||||
|
@ -333,7 +333,7 @@ void ClientHandler::OnBeforeContextMenu(CefRefPtr<CefBrowser> browser,
|
|||||||
|
|
||||||
model->AddSeparator();
|
model->AddSeparator();
|
||||||
model->AddItem(CLIENT_ID_CURSOR_CHANGE_DISABLED, "Cursor change disabled");
|
model->AddItem(CLIENT_ID_CURSOR_CHANGE_DISABLED, "Cursor change disabled");
|
||||||
if (browser->GetHost()->IsMouseCursorChangeDisabled())
|
if (mouse_cursor_change_disabled_)
|
||||||
model->SetChecked(CLIENT_ID_CURSOR_CHANGE_DISABLED, true);
|
model->SetChecked(CLIENT_ID_CURSOR_CHANGE_DISABLED, true);
|
||||||
|
|
||||||
model->AddSeparator();
|
model->AddSeparator();
|
||||||
@ -370,8 +370,7 @@ bool ClientHandler::OnContextMenuCommand(CefRefPtr<CefBrowser> browser,
|
|||||||
ShowSSLInformation(browser);
|
ShowSSLInformation(browser);
|
||||||
return true;
|
return true;
|
||||||
case CLIENT_ID_CURSOR_CHANGE_DISABLED:
|
case CLIENT_ID_CURSOR_CHANGE_DISABLED:
|
||||||
browser->GetHost()->SetMouseCursorChangeDisabled(
|
mouse_cursor_change_disabled_ = !mouse_cursor_change_disabled_;
|
||||||
!browser->GetHost()->IsMouseCursorChangeDisabled());
|
|
||||||
return true;
|
return true;
|
||||||
case CLIENT_ID_OFFLINE:
|
case CLIENT_ID_OFFLINE:
|
||||||
offline_ = !offline_;
|
offline_ = !offline_;
|
||||||
@ -469,6 +468,16 @@ bool ClientHandler::OnAutoResize(CefRefPtr<CefBrowser> browser,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ClientHandler::OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
|
CefCursorHandle cursor,
|
||||||
|
cef_cursor_type_t type,
|
||||||
|
const CefCursorInfo& custom_cursor_info) {
|
||||||
|
CEF_REQUIRE_UI_THREAD();
|
||||||
|
|
||||||
|
// Return true to disable default handling of cursor changes.
|
||||||
|
return mouse_cursor_change_disabled_;
|
||||||
|
}
|
||||||
|
|
||||||
void ClientHandler::OnBeforeDownload(
|
void ClientHandler::OnBeforeDownload(
|
||||||
CefRefPtr<CefBrowser> browser,
|
CefRefPtr<CefBrowser> browser,
|
||||||
CefRefPtr<CefDownloadItem> download_item,
|
CefRefPtr<CefDownloadItem> download_item,
|
||||||
@ -595,10 +604,6 @@ void ClientHandler::OnAfterCreated(CefRefPtr<CefBrowser> browser) {
|
|||||||
message_router_->AddHandler(*(it), false);
|
message_router_->AddHandler(*(it), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disable mouse cursor change if requested via the command-line flag.
|
|
||||||
if (mouse_cursor_change_disabled_)
|
|
||||||
browser->GetHost()->SetMouseCursorChangeDisabled(true);
|
|
||||||
|
|
||||||
// Set offline mode if requested via the command-line flag.
|
// Set offline mode if requested via the command-line flag.
|
||||||
if (offline_)
|
if (offline_)
|
||||||
SetOfflineState(browser, true);
|
SetOfflineState(browser, true);
|
||||||
|
@ -152,6 +152,10 @@ class ClientHandler : public CefClient,
|
|||||||
int line) OVERRIDE;
|
int line) OVERRIDE;
|
||||||
bool OnAutoResize(CefRefPtr<CefBrowser> browser,
|
bool OnAutoResize(CefRefPtr<CefBrowser> browser,
|
||||||
const CefSize& new_size) OVERRIDE;
|
const CefSize& new_size) OVERRIDE;
|
||||||
|
bool OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
|
CefCursorHandle cursor,
|
||||||
|
cef_cursor_type_t type,
|
||||||
|
const CefCursorInfo& custom_cursor_info) OVERRIDE;
|
||||||
|
|
||||||
// CefDownloadHandler methods
|
// CefDownloadHandler methods
|
||||||
void OnBeforeDownload(CefRefPtr<CefBrowser> browser,
|
void OnBeforeDownload(CefRefPtr<CefBrowser> browser,
|
||||||
|
@ -118,16 +118,6 @@ void ClientHandlerOsr::OnAcceleratedPaint(
|
|||||||
osr_delegate_->OnAcceleratedPaint(browser, type, dirtyRects, share_handle);
|
osr_delegate_->OnAcceleratedPaint(browser, type, dirtyRects, share_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClientHandlerOsr::OnCursorChange(CefRefPtr<CefBrowser> browser,
|
|
||||||
CefCursorHandle cursor,
|
|
||||||
CursorType type,
|
|
||||||
const CefCursorInfo& custom_cursor_info) {
|
|
||||||
CEF_REQUIRE_UI_THREAD();
|
|
||||||
if (!osr_delegate_)
|
|
||||||
return;
|
|
||||||
osr_delegate_->OnCursorChange(browser, cursor, type, custom_cursor_info);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ClientHandlerOsr::StartDragging(
|
bool ClientHandlerOsr::StartDragging(
|
||||||
CefRefPtr<CefBrowser> browser,
|
CefRefPtr<CefBrowser> browser,
|
||||||
CefRefPtr<CefDragData> drag_data,
|
CefRefPtr<CefDragData> drag_data,
|
||||||
@ -167,6 +157,21 @@ void ClientHandlerOsr::OnAccessibilityTreeChange(CefRefPtr<CefValue> value) {
|
|||||||
osr_delegate_->UpdateAccessibilityTree(value);
|
osr_delegate_->UpdateAccessibilityTree(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ClientHandlerOsr::OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
|
CefCursorHandle cursor,
|
||||||
|
cef_cursor_type_t type,
|
||||||
|
const CefCursorInfo& custom_cursor_info) {
|
||||||
|
CEF_REQUIRE_UI_THREAD();
|
||||||
|
if (ClientHandler::OnCursorChange(browser, cursor, type,
|
||||||
|
custom_cursor_info)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (osr_delegate_) {
|
||||||
|
osr_delegate_->OnCursorChange(browser, cursor, type, custom_cursor_info);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void ClientHandlerOsr::OnAccessibilityLocationChange(
|
void ClientHandlerOsr::OnAccessibilityLocationChange(
|
||||||
CefRefPtr<CefValue> value) {
|
CefRefPtr<CefValue> value) {
|
||||||
CEF_REQUIRE_UI_THREAD();
|
CEF_REQUIRE_UI_THREAD();
|
||||||
|
@ -49,10 +49,6 @@ class ClientHandlerOsr : public ClientHandler,
|
|||||||
CefRenderHandler::PaintElementType type,
|
CefRenderHandler::PaintElementType type,
|
||||||
const CefRenderHandler::RectList& dirtyRects,
|
const CefRenderHandler::RectList& dirtyRects,
|
||||||
void* share_handle) {}
|
void* share_handle) {}
|
||||||
virtual void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
|
||||||
CefCursorHandle cursor,
|
|
||||||
CefRenderHandler::CursorType type,
|
|
||||||
const CefCursorInfo& custom_cursor_info) = 0;
|
|
||||||
virtual bool StartDragging(CefRefPtr<CefBrowser> browser,
|
virtual bool StartDragging(CefRefPtr<CefBrowser> browser,
|
||||||
CefRefPtr<CefDragData> drag_data,
|
CefRefPtr<CefDragData> drag_data,
|
||||||
CefRenderHandler::DragOperationsMask allowed_ops,
|
CefRenderHandler::DragOperationsMask allowed_ops,
|
||||||
@ -66,8 +62,13 @@ class ClientHandlerOsr : public ClientHandler,
|
|||||||
const CefRange& selection_range,
|
const CefRange& selection_range,
|
||||||
const CefRenderHandler::RectList& character_bounds) = 0;
|
const CefRenderHandler::RectList& character_bounds) = 0;
|
||||||
|
|
||||||
virtual void UpdateAccessibilityTree(CefRefPtr<CefValue> value) = 0;
|
// These methods match the CefDisplayHandler interface.
|
||||||
|
virtual void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
|
CefCursorHandle cursor,
|
||||||
|
cef_cursor_type_t type,
|
||||||
|
const CefCursorInfo& custom_cursor_info) = 0;
|
||||||
|
|
||||||
|
virtual void UpdateAccessibilityTree(CefRefPtr<CefValue> value) = 0;
|
||||||
virtual void UpdateAccessibilityLocation(CefRefPtr<CefValue> value) = 0;
|
virtual void UpdateAccessibilityLocation(CefRefPtr<CefValue> value) = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -114,10 +115,6 @@ class ClientHandlerOsr : public ClientHandler,
|
|||||||
CefRenderHandler::PaintElementType type,
|
CefRenderHandler::PaintElementType type,
|
||||||
const CefRenderHandler::RectList& dirtyRects,
|
const CefRenderHandler::RectList& dirtyRects,
|
||||||
void* share_handle) OVERRIDE;
|
void* share_handle) OVERRIDE;
|
||||||
void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
|
||||||
CefCursorHandle cursor,
|
|
||||||
CursorType type,
|
|
||||||
const CefCursorInfo& custom_cursor_info) OVERRIDE;
|
|
||||||
bool StartDragging(CefRefPtr<CefBrowser> browser,
|
bool StartDragging(CefRefPtr<CefBrowser> browser,
|
||||||
CefRefPtr<CefDragData> drag_data,
|
CefRefPtr<CefDragData> drag_data,
|
||||||
CefRenderHandler::DragOperationsMask allowed_ops,
|
CefRenderHandler::DragOperationsMask allowed_ops,
|
||||||
@ -130,6 +127,12 @@ class ClientHandlerOsr : public ClientHandler,
|
|||||||
const CefRange& selection_range,
|
const CefRange& selection_range,
|
||||||
const CefRenderHandler::RectList& character_bounds) OVERRIDE;
|
const CefRenderHandler::RectList& character_bounds) OVERRIDE;
|
||||||
|
|
||||||
|
// CefDisplayHandler methods.
|
||||||
|
bool OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
|
CefCursorHandle cursor,
|
||||||
|
cef_cursor_type_t type,
|
||||||
|
const CefCursorInfo& custom_cursor_info) OVERRIDE;
|
||||||
|
|
||||||
// CefAccessibilityHandler methods.
|
// CefAccessibilityHandler methods.
|
||||||
void OnAccessibilityTreeChange(CefRefPtr<CefValue> value) OVERRIDE;
|
void OnAccessibilityTreeChange(CefRefPtr<CefValue> value) OVERRIDE;
|
||||||
void OnAccessibilityLocationChange(CefRefPtr<CefValue> value) OVERRIDE;
|
void OnAccessibilityLocationChange(CefRefPtr<CefValue> value) OVERRIDE;
|
||||||
|
@ -1027,7 +1027,7 @@ void OsrWindowWin::OnAcceleratedPaint(
|
|||||||
|
|
||||||
void OsrWindowWin::OnCursorChange(CefRefPtr<CefBrowser> browser,
|
void OsrWindowWin::OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
CefCursorHandle cursor,
|
CefCursorHandle cursor,
|
||||||
CefRenderHandler::CursorType type,
|
cef_cursor_type_t type,
|
||||||
const CefCursorInfo& custom_cursor_info) {
|
const CefCursorInfo& custom_cursor_info) {
|
||||||
CEF_REQUIRE_UI_THREAD();
|
CEF_REQUIRE_UI_THREAD();
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ class OsrWindowWin
|
|||||||
void* share_handle) OVERRIDE;
|
void* share_handle) OVERRIDE;
|
||||||
void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
CefCursorHandle cursor,
|
CefCursorHandle cursor,
|
||||||
CefRenderHandler::CursorType type,
|
cef_cursor_type_t type,
|
||||||
const CefCursorInfo& custom_cursor_info) OVERRIDE;
|
const CefCursorInfo& custom_cursor_info) OVERRIDE;
|
||||||
bool StartDragging(CefRefPtr<CefBrowser> browser,
|
bool StartDragging(CefRefPtr<CefBrowser> browser,
|
||||||
CefRefPtr<CefDragData> drag_data,
|
CefRefPtr<CefDragData> drag_data,
|
||||||
|
@ -1149,15 +1149,16 @@ class OSRTestHandler : public RoutingTestHandler,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnCursorChange(CefRefPtr<CefBrowser> browser,
|
bool OnCursorChange(CefRefPtr<CefBrowser> browser,
|
||||||
CefCursorHandle cursor,
|
CefCursorHandle cursor,
|
||||||
CursorType type,
|
cef_cursor_type_t type,
|
||||||
const CefCursorInfo& custom_cursor_info) override {
|
const CefCursorInfo& custom_cursor_info) override {
|
||||||
if (test_type_ == OSR_TEST_CURSOR && started()) {
|
if (test_type_ == OSR_TEST_CURSOR && started()) {
|
||||||
EXPECT_EQ(CT_HAND, type);
|
EXPECT_EQ(CT_HAND, type);
|
||||||
EXPECT_EQ(nullptr, custom_cursor_info.buffer);
|
EXPECT_EQ(nullptr, custom_cursor_info.buffer);
|
||||||
DestroySucceededTestSoon();
|
DestroySucceededTestSoon();
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnImeCompositionRangeChanged(
|
void OnImeCompositionRangeChanged(
|
||||||
|
Reference in New Issue
Block a user