| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/aura/remote_root_window_host_win.h" | 5 #include "ui/aura/remote_root_window_host_win.h" |
| 6 | 6 |
| 7 #include <windows.h> | 7 #include <windows.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 478 } | 478 } |
| 479 | 479 |
| 480 void RemoteWindowTreeHostWin::OnDeviceScaleFactorChanged( | 480 void RemoteWindowTreeHostWin::OnDeviceScaleFactorChanged( |
| 481 float device_scale_factor) { | 481 float device_scale_factor) { |
| 482 NOTIMPLEMENTED(); | 482 NOTIMPLEMENTED(); |
| 483 } | 483 } |
| 484 | 484 |
| 485 void RemoteWindowTreeHostWin::PrepareForShutdown() { | 485 void RemoteWindowTreeHostWin::PrepareForShutdown() { |
| 486 } | 486 } |
| 487 | 487 |
| 488 ui::EventProcessor* RemoteWindowTreeHostWin::GetEventProcessor() { |
| 489 return delegate_->GetEventProcessor(); |
| 490 } |
| 491 |
| 488 void RemoteWindowTreeHostWin::CancelComposition() { | 492 void RemoteWindowTreeHostWin::CancelComposition() { |
| 489 if (!host_) | 493 if (!host_) |
| 490 return; | 494 return; |
| 491 host_->Send(new MetroViewerHostMsg_ImeCancelComposition); | 495 host_->Send(new MetroViewerHostMsg_ImeCancelComposition); |
| 492 } | 496 } |
| 493 | 497 |
| 494 void RemoteWindowTreeHostWin::OnTextInputClientUpdated( | 498 void RemoteWindowTreeHostWin::OnTextInputClientUpdated( |
| 495 const std::vector<int32>& input_scopes, | 499 const std::vector<int32>& input_scopes, |
| 496 const std::vector<gfx::Rect>& composition_character_bounds) { | 500 const std::vector<gfx::Rect>& composition_character_bounds) { |
| 497 if (!host_) | 501 if (!host_) |
| (...skipping 17 matching lines...) Expand all Loading... |
| 515 gfx::Point result( x * scale_factor, y * scale_factor); | 519 gfx::Point result( x * scale_factor, y * scale_factor); |
| 516 return result; | 520 return result; |
| 517 } | 521 } |
| 518 | 522 |
| 519 void RemoteWindowTreeHostWin::OnMouseMoved(int32 x, int32 y, int32 flags) { | 523 void RemoteWindowTreeHostWin::OnMouseMoved(int32 x, int32 y, int32 flags) { |
| 520 if (ignore_mouse_moves_until_set_cursor_ack_) | 524 if (ignore_mouse_moves_until_set_cursor_ack_) |
| 521 return; | 525 return; |
| 522 | 526 |
| 523 gfx::Point location = PointFromNativeEvent(x, y); | 527 gfx::Point location = PointFromNativeEvent(x, y); |
| 524 ui::MouseEvent event(ui::ET_MOUSE_MOVED, location, location, flags, 0); | 528 ui::MouseEvent event(ui::ET_MOUSE_MOVED, location, location, flags, 0); |
| 525 delegate_->OnHostMouseEvent(&event); | 529 SendEventToProcessor(&event); |
| 526 } | 530 } |
| 527 | 531 |
| 528 void RemoteWindowTreeHostWin::OnMouseButton( | 532 void RemoteWindowTreeHostWin::OnMouseButton( |
| 529 const MetroViewerHostMsg_MouseButtonParams& params) { | 533 const MetroViewerHostMsg_MouseButtonParams& params) { |
| 530 gfx::Point location = PointFromNativeEvent(params.x, params.y); | 534 gfx::Point location = PointFromNativeEvent(params.x, params.y); |
| 531 ui::MouseEvent mouse_event(params.event_type, location, location, | 535 ui::MouseEvent mouse_event(params.event_type, location, location, |
| 532 static_cast<int>(params.flags), | 536 static_cast<int>(params.flags), |
| 533 static_cast<int>(params.changed_button)); | 537 static_cast<int>(params.changed_button)); |
| 534 | 538 |
| 535 SetEventFlags(params.flags | key_event_flags()); | 539 SetEventFlags(params.flags | key_event_flags()); |
| 536 if (params.event_type == ui::ET_MOUSEWHEEL) { | 540 if (params.event_type == ui::ET_MOUSEWHEEL) { |
| 537 int x_offset = params.is_horizontal_wheel ? params.extra : 0; | 541 int x_offset = params.is_horizontal_wheel ? params.extra : 0; |
| 538 int y_offset = !params.is_horizontal_wheel ? params.extra : 0; | 542 int y_offset = !params.is_horizontal_wheel ? params.extra : 0; |
| 539 ui::MouseWheelEvent wheel_event(mouse_event, x_offset, y_offset); | 543 ui::MouseWheelEvent wheel_event(mouse_event, x_offset, y_offset); |
| 540 delegate_->OnHostMouseEvent(&wheel_event); | 544 SendEventToProcessor(&wheel_event); |
| 541 } else if (params.event_type == ui::ET_MOUSE_PRESSED) { | 545 } else if (params.event_type == ui::ET_MOUSE_PRESSED) { |
| 542 // TODO(shrikant): Ideally modify code in event.cc by adding automatic | 546 // TODO(shrikant): Ideally modify code in event.cc by adding automatic |
| 543 // tracking of double clicks in synthetic MouseEvent constructor code. | 547 // tracking of double clicks in synthetic MouseEvent constructor code. |
| 544 // Non-synthetic MouseEvent constructor code does automatically track | 548 // Non-synthetic MouseEvent constructor code does automatically track |
| 545 // this. Need to use some caution while modifying synthetic constructor | 549 // this. Need to use some caution while modifying synthetic constructor |
| 546 // as many tests and other code paths depend on it and apparently | 550 // as many tests and other code paths depend on it and apparently |
| 547 // specifically depend on non implicit tracking of previous mouse event. | 551 // specifically depend on non implicit tracking of previous mouse event. |
| 548 if (last_mouse_click_event_ && | 552 if (last_mouse_click_event_ && |
| 549 ui::MouseEvent::IsRepeatedClickEvent(mouse_event, | 553 ui::MouseEvent::IsRepeatedClickEvent(mouse_event, |
| 550 *last_mouse_click_event_)) { | 554 *last_mouse_click_event_)) { |
| 551 mouse_event.SetClickCount(2); | 555 mouse_event.SetClickCount(2); |
| 552 } else { | 556 } else { |
| 553 mouse_event.SetClickCount(1); | 557 mouse_event.SetClickCount(1); |
| 554 } | 558 } |
| 555 last_mouse_click_event_ .reset(new ui::MouseEvent(mouse_event)); | 559 last_mouse_click_event_ .reset(new ui::MouseEvent(mouse_event)); |
| 556 delegate_->OnHostMouseEvent(&mouse_event); | 560 SendEventToProcessor(&mouse_event); |
| 557 } else { | 561 } else { |
| 558 delegate_->OnHostMouseEvent(&mouse_event); | 562 SendEventToProcessor(&mouse_event); |
| 559 } | 563 } |
| 560 } | 564 } |
| 561 | 565 |
| 562 void RemoteWindowTreeHostWin::OnKeyDown(uint32 vkey, | 566 void RemoteWindowTreeHostWin::OnKeyDown(uint32 vkey, |
| 563 uint32 repeat_count, | 567 uint32 repeat_count, |
| 564 uint32 scan_code, | 568 uint32 scan_code, |
| 565 uint32 flags) { | 569 uint32 flags) { |
| 566 DispatchKeyboardMessage(ui::ET_KEY_PRESSED, vkey, repeat_count, scan_code, | 570 DispatchKeyboardMessage(ui::ET_KEY_PRESSED, vkey, repeat_count, scan_code, |
| 567 flags, false); | 571 flags, false); |
| 568 } | 572 } |
| (...skipping 20 matching lines...) Expand all Loading... |
| 589 | 593 |
| 590 void RemoteWindowTreeHostWin::OnTouchDown(int32 x, | 594 void RemoteWindowTreeHostWin::OnTouchDown(int32 x, |
| 591 int32 y, | 595 int32 y, |
| 592 uint64 timestamp, | 596 uint64 timestamp, |
| 593 uint32 pointer_id) { | 597 uint32 pointer_id) { |
| 594 gfx::Point location = PointFromNativeEvent(x, y); | 598 gfx::Point location = PointFromNativeEvent(x, y); |
| 595 ui::TouchEvent event(ui::ET_TOUCH_PRESSED, | 599 ui::TouchEvent event(ui::ET_TOUCH_PRESSED, |
| 596 location, | 600 location, |
| 597 pointer_id, | 601 pointer_id, |
| 598 base::TimeDelta::FromMicroseconds(timestamp)); | 602 base::TimeDelta::FromMicroseconds(timestamp)); |
| 599 delegate_->OnHostTouchEvent(&event); | 603 SendEventToProcessor(&event); |
| 600 } | 604 } |
| 601 | 605 |
| 602 void RemoteWindowTreeHostWin::OnTouchUp(int32 x, | 606 void RemoteWindowTreeHostWin::OnTouchUp(int32 x, |
| 603 int32 y, | 607 int32 y, |
| 604 uint64 timestamp, | 608 uint64 timestamp, |
| 605 uint32 pointer_id) { | 609 uint32 pointer_id) { |
| 606 gfx::Point location = PointFromNativeEvent(x, y); | 610 gfx::Point location = PointFromNativeEvent(x, y); |
| 607 ui::TouchEvent event(ui::ET_TOUCH_RELEASED, | 611 ui::TouchEvent event(ui::ET_TOUCH_RELEASED, |
| 608 location, | 612 location, |
| 609 pointer_id, | 613 pointer_id, |
| 610 base::TimeDelta::FromMicroseconds(timestamp)); | 614 base::TimeDelta::FromMicroseconds(timestamp)); |
| 611 delegate_->OnHostTouchEvent(&event); | 615 SendEventToProcessor(&event); |
| 612 } | 616 } |
| 613 | 617 |
| 614 void RemoteWindowTreeHostWin::OnTouchMoved(int32 x, | 618 void RemoteWindowTreeHostWin::OnTouchMoved(int32 x, |
| 615 int32 y, | 619 int32 y, |
| 616 uint64 timestamp, | 620 uint64 timestamp, |
| 617 uint32 pointer_id) { | 621 uint32 pointer_id) { |
| 618 gfx::Point location = PointFromNativeEvent(x, y); | 622 gfx::Point location = PointFromNativeEvent(x, y); |
| 619 ui::TouchEvent event(ui::ET_TOUCH_MOVED, | 623 ui::TouchEvent event(ui::ET_TOUCH_MOVED, |
| 620 location, | 624 location, |
| 621 pointer_id, | 625 pointer_id, |
| 622 base::TimeDelta::FromMicroseconds(timestamp)); | 626 base::TimeDelta::FromMicroseconds(timestamp)); |
| 623 delegate_->OnHostTouchEvent(&event); | 627 SendEventToProcessor(&event); |
| 624 } | 628 } |
| 625 | 629 |
| 626 void RemoteWindowTreeHostWin::OnFileSaveAsDone(bool success, | 630 void RemoteWindowTreeHostWin::OnFileSaveAsDone(bool success, |
| 627 const base::FilePath& filename, | 631 const base::FilePath& filename, |
| 628 int filter_index) { | 632 int filter_index) { |
| 629 if (success) | 633 if (success) |
| 630 file_saveas_completion_callback_.Run(filename, filter_index, NULL); | 634 file_saveas_completion_callback_.Run(filename, filter_index, NULL); |
| 631 else | 635 else |
| 632 failure_callback_.Run(NULL); | 636 failure_callback_.Run(NULL); |
| 633 file_saveas_completion_callback_.Reset(); | 637 file_saveas_completion_callback_.Reset(); |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 737 : keyup_message[index]); | 741 : keyup_message[index]); |
| 738 ::PostThreadMessage(::GetCurrentThreadId(), | 742 ::PostThreadMessage(::GetCurrentThreadId(), |
| 739 message, | 743 message, |
| 740 vkey, | 744 vkey, |
| 741 repeat_count | scan_code >> 15); | 745 repeat_count | scan_code >> 15); |
| 742 } else { | 746 } else { |
| 743 ui::KeyEvent event(type, | 747 ui::KeyEvent event(type, |
| 744 ui::KeyboardCodeForWindowsKeyCode(vkey), | 748 ui::KeyboardCodeForWindowsKeyCode(vkey), |
| 745 flags, | 749 flags, |
| 746 is_character); | 750 is_character); |
| 747 delegate_->OnHostKeyEvent(&event); | 751 SendEventToProcessor(&event); |
| 748 } | 752 } |
| 749 } | 753 } |
| 750 | 754 |
| 751 void RemoteWindowTreeHostWin::SetEventFlags(uint32 flags) { | 755 void RemoteWindowTreeHostWin::SetEventFlags(uint32 flags) { |
| 752 if (flags == event_flags_) | 756 if (flags == event_flags_) |
| 753 return; | 757 return; |
| 754 event_flags_ = flags; | 758 event_flags_ = flags; |
| 755 SetVirtualKeyStates(event_flags_); | 759 SetVirtualKeyStates(event_flags_); |
| 756 } | 760 } |
| 757 | 761 |
| 758 } // namespace aura | 762 } // namespace aura |
| OLD | NEW |