| Index: components/exo/pointer.cc
|
| diff --git a/components/exo/pointer.cc b/components/exo/pointer.cc
|
| index 750be6157548ad4dd89e9c3598b011f108b8ecd5..86762b1deb9864ddd83738ba5ad1676f2377f451 100644
|
| --- a/components/exo/pointer.cc
|
| +++ b/components/exo/pointer.cc
|
| @@ -103,7 +103,7 @@ void Pointer::SetCursor(Surface* surface, const gfx::Point& hotspot) {
|
| surface_->window()->Show();
|
|
|
| // Show widget now that cursor has been defined.
|
| - if (!widget_->IsVisible())
|
| + if (!widget_->IsVisible() && !is_direct_input_)
|
| widget_->Show();
|
| }
|
|
|
| @@ -251,8 +251,11 @@ void Pointer::OnMouseEvent(ui::MouseEvent* event) {
|
| break;
|
| }
|
|
|
| + if ((event->flags() & ui::EF_IS_SYNTHESIZED) == 0)
|
| + is_direct_input_ = (event->flags() & ui::EF_DIRECT_INPUT) != 0;
|
| +
|
| // Update cursor widget to reflect current focus and pointer location.
|
| - if (focus_) {
|
| + if (focus_ && !is_direct_input_) {
|
| if (!widget_)
|
| CreatePointerWidget();
|
|
|
| @@ -265,6 +268,8 @@ void Pointer::OnMouseEvent(ui::MouseEvent* event) {
|
| }
|
|
|
| UpdateCursorScale();
|
| + if (!widget_->IsVisible())
|
| + widget_->Show();
|
| } else {
|
| if (widget_ && widget_->IsVisible())
|
| widget_->Hide();
|
|
|