Move InputEventObserver to api::BrowserWindow

This commit is contained in:
Cheng Zhao 2018-02-22 17:07:08 +09:00
parent aa3eafcea1
commit c611eb061d
7 changed files with 32 additions and 59 deletions

View file

@ -172,6 +172,10 @@ void BrowserWindow::Init(v8::Isolate* isolate,
// window's JS wrapper gets initialized.
if (!parent.IsEmpty())
parent->child_windows_.Set(isolate, ID(), wrapper);
auto* host = web_contents->web_contents()->GetRenderViewHost();
if (host)
host->GetWidget()->AddInputEventObserver(this);
}
BrowserWindow::~BrowserWindow() {
@ -185,6 +189,26 @@ BrowserWindow::~BrowserWindow() {
base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, window_.release());
}
void BrowserWindow::OnInputEvent(const blink::WebInputEvent& event) {
switch (event.GetType()) {
case blink::WebInputEvent::kGestureScrollBegin:
case blink::WebInputEvent::kGestureScrollUpdate:
case blink::WebInputEvent::kGestureScrollEnd:
Emit("scroll-touch-edge");
break;
default:
break;
}
}
void BrowserWindow::RenderViewHostChanged(content::RenderViewHost* old_host,
content::RenderViewHost* new_host) {
if (old_host)
old_host->GetWidget()->RemoveInputEventObserver(this);
if (new_host)
new_host->GetWidget()->AddInputEventObserver(this);
}
void BrowserWindow::RenderViewCreated(
content::RenderViewHost* render_view_host) {
if (!window_->transparent())
@ -386,10 +410,6 @@ void BrowserWindow::OnWindowScrollTouchEnd() {
Emit("scroll-touch-end");
}
void BrowserWindow::OnWindowScrollTouchEdge() {
Emit("scroll-touch-edge");
}
void BrowserWindow::OnWindowSwipe(const std::string& direction) {
Emit("swipe", direction);
}