Pass the ComponentWindow to ItemVTable::input_event

This commit is contained in:
Simon Hausmann 2020-09-18 13:45:47 +02:00
parent 72ee03a1a5
commit 7053aee0c8
15 changed files with 125 additions and 55 deletions

View file

@ -135,7 +135,7 @@ namespace private_api {
template<typename GetDynamic>
inline InputEventResult process_input_event(ComponentRef component, int64_t &mouse_grabber,
MouseEvent mouse_event, Slice<ItemTreeNode> tree,
GetDynamic get_dynamic)
GetDynamic get_dynamic, const ComponentWindow *window)
{
if (mouse_grabber != -1) {
auto item_index = mouse_grabber & 0xffffffff;
@ -152,11 +152,11 @@ inline InputEventResult process_input_event(ComponentRef component, int64_t &mou
reinterpret_cast<char *>(component.instance)
+ item_node.item.item.offset,
},
mouse_event);
mouse_event, window);
break;
case ItemTreeNode::Tag::DynamicTree: {
ComponentRef comp = get_dynamic(item_node.dynamic_tree.index, rep_index);
result = comp.vtable->input_event(comp, mouse_event);
result = comp.vtable->input_event(comp, mouse_event, window);
} break;
}
if (result != InputEventResult::GrabMouse) {
@ -165,7 +165,7 @@ inline InputEventResult process_input_event(ComponentRef component, int64_t &mou
return result;
} else {
return cbindgen_private::sixtyfps_process_ungrabbed_mouse_event(component, mouse_event,
&mouse_grabber);
window, &mouse_grabber);
}
}
}