mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add support for draggable regions (issue #1645).
Regions are defined using the '-webkit-app-region: drag/no-drag' CSS property and passed to the CefDragHandler:: OnDraggableRegionsChanged callback.
This commit is contained in:
committed by
Marshall Greenblatt
parent
ead921a3f6
commit
c5b8b8b9c8
@ -46,6 +46,37 @@ int CEF_CALLBACK drag_handler_on_drag_enter(struct _cef_drag_handler_t* self,
|
||||
return _retval;
|
||||
}
|
||||
|
||||
void CEF_CALLBACK drag_handler_on_draggable_regions_changed(
|
||||
struct _cef_drag_handler_t* self, cef_browser_t* browser,
|
||||
size_t regionsCount, cef_draggable_region_t const* regions) {
|
||||
// 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: regions; type: simple_vec_byref_const
|
||||
DCHECK(regionsCount == 0 || regions);
|
||||
if (regionsCount > 0 && !regions)
|
||||
return;
|
||||
|
||||
// Translate param: regions; type: simple_vec_byref_const
|
||||
std::vector<CefDraggableRegion > regionsList;
|
||||
if (regionsCount > 0) {
|
||||
for (size_t i = 0; i < regionsCount; ++i) {
|
||||
regionsList.push_back(regions[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// Execute
|
||||
CefDragHandlerCppToC::Get(self)->OnDraggableRegionsChanged(
|
||||
CefBrowserCToCpp::Wrap(browser),
|
||||
regionsList);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
|
||||
@ -53,6 +84,8 @@ int CEF_CALLBACK drag_handler_on_drag_enter(struct _cef_drag_handler_t* self,
|
||||
|
||||
CefDragHandlerCppToC::CefDragHandlerCppToC() {
|
||||
GetStruct()->on_drag_enter = drag_handler_on_drag_enter;
|
||||
GetStruct()->on_draggable_regions_changed =
|
||||
drag_handler_on_draggable_regions_changed;
|
||||
}
|
||||
|
||||
template<> CefRefPtr<CefDragHandler> CefCppToC<CefDragHandlerCppToC,
|
||||
|
Reference in New Issue
Block a user