blob: 7f0aa8d42be91432809ebb3ef72f2357cb820949 [file] [log] [blame]
// Copyright 2021 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 "remoting/host/desktop_and_cursor_composer_notifier.h"
#include "remoting/proto/event.pb.h"
namespace remoting {
DesktopAndCursorComposerNotifier::DesktopAndCursorComposerNotifier(
InputStub* input_stub,
EventHandler* event_handler)
: InputFilter(input_stub), event_handler_(event_handler) {}
DesktopAndCursorComposerNotifier::~DesktopAndCursorComposerNotifier() = default;
void DesktopAndCursorComposerNotifier::InjectMouseEvent(
const protocol::MouseEvent& event) {
NotifyEventHandler(event.has_delta_x() || event.has_delta_y());
InputFilter::InjectMouseEvent(event);
}
void DesktopAndCursorComposerNotifier::OnLocalInput() {
NotifyEventHandler(true);
}
void DesktopAndCursorComposerNotifier::NotifyEventHandler(bool enabled) {
if (enabled != is_enabled_ || !has_triggered_) {
event_handler_->SetComposeEnabled(enabled);
is_enabled_ = enabled;
has_triggered_ = true;
}
}
} // namespace remoting