Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(269)

Side by Side Diff: win8/metro_driver/chrome_app_view_ash.cc

Issue 300003002: Use the win32 device scale factor in Chrome ASH on Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed include Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « win8/metro_driver/chrome_app_view_ash.h ('k') | win8/metro_driver/direct3d_helper.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "win8/metro_driver/stdafx.h" 5 #include "win8/metro_driver/stdafx.h"
6 #include "win8/metro_driver/chrome_app_view_ash.h" 6 #include "win8/metro_driver/chrome_app_view_ash.h"
7 7
8 #include <corewindow.h> 8 #include <corewindow.h>
9 #include <shellapi.h> 9 #include <shellapi.h>
10 #include <windows.foundation.h> 10 #include <windows.foundation.h>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "base/files/file_path.h" 14 #include "base/files/file_path.h"
15 #include "base/message_loop/message_loop.h" 15 #include "base/message_loop/message_loop.h"
16 #include "base/path_service.h" 16 #include "base/path_service.h"
17 #include "base/threading/thread.h" 17 #include "base/threading/thread.h"
18 #include "base/win/metro.h" 18 #include "base/win/metro.h"
19 #include "base/win/win_util.h" 19 #include "base/win/win_util.h"
20 #include "base/win/windows_version.h" 20 #include "base/win/windows_version.h"
21 #include "chrome/common/chrome_switches.h" 21 #include "chrome/common/chrome_switches.h"
22 #include "ipc/ipc_channel.h" 22 #include "ipc/ipc_channel.h"
23 #include "ipc/ipc_channel_proxy.h" 23 #include "ipc/ipc_channel_proxy.h"
24 #include "ipc/ipc_sender.h" 24 #include "ipc/ipc_sender.h"
25 #include "ui/events/gestures/gesture_sequence.h" 25 #include "ui/events/gestures/gesture_sequence.h"
26 #include "ui/gfx/geometry/point_conversions.h"
27 #include "ui/gfx/win/dpi.h"
26 #include "ui/metro_viewer/metro_viewer_messages.h" 28 #include "ui/metro_viewer/metro_viewer_messages.h"
27 #include "win8/metro_driver/file_picker_ash.h" 29 #include "win8/metro_driver/file_picker_ash.h"
28 #include "win8/metro_driver/ime/ime_popup_monitor.h" 30 #include "win8/metro_driver/ime/ime_popup_monitor.h"
29 #include "win8/metro_driver/ime/input_source.h" 31 #include "win8/metro_driver/ime/input_source.h"
30 #include "win8/metro_driver/ime/text_service.h" 32 #include "win8/metro_driver/ime/text_service.h"
31 #include "win8/metro_driver/metro_driver.h" 33 #include "win8/metro_driver/metro_driver.h"
32 #include "win8/metro_driver/winrt_utils.h" 34 #include "win8/metro_driver/winrt_utils.h"
33 #include "win8/viewer/metro_viewer_constants.h" 35 #include "win8/viewer/metro_viewer_constants.h"
34 36
35 typedef winfoundtn::ITypedEventHandler< 37 typedef winfoundtn::ITypedEventHandler<
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 sei.lpParameters = parameters.c_str(); 357 sei.lpParameters = parameters.c_str();
356 ::ShellExecuteEx(&sei); 358 ::ShellExecuteEx(&sei);
357 return true; 359 return true;
358 } 360 }
359 361
360 } // namespace 362 } // namespace
361 363
362 // This class helps decoding the pointer properties of an event. 364 // This class helps decoding the pointer properties of an event.
363 class ChromeAppViewAsh::PointerInfoHandler { 365 class ChromeAppViewAsh::PointerInfoHandler {
364 public: 366 public:
365 PointerInfoHandler() 367 PointerInfoHandler(float metro_dpi_scale, float win32_dpi_scale)
366 : x_(0), 368 : x_(0),
367 y_(0), 369 y_(0),
368 wheel_delta_(0), 370 wheel_delta_(0),
369 update_kind_(winui::Input::PointerUpdateKind_Other), 371 update_kind_(winui::Input::PointerUpdateKind_Other),
370 timestamp_(0), 372 timestamp_(0),
371 pointer_id_(0), 373 pointer_id_(0),
372 mouse_down_flags_(0), 374 mouse_down_flags_(0),
373 is_horizontal_wheel_(0) {} 375 is_horizontal_wheel_(0),
376 metro_dpi_scale_(metro_dpi_scale),
377 win32_dpi_scale_(win32_dpi_scale) {}
374 378
375 HRESULT Init(winui::Core::IPointerEventArgs* args) { 379 HRESULT Init(winui::Core::IPointerEventArgs* args) {
376 HRESULT hr = args->get_CurrentPoint(&pointer_point_); 380 HRESULT hr = args->get_CurrentPoint(&pointer_point_);
377 if (FAILED(hr)) 381 if (FAILED(hr))
378 return hr; 382 return hr;
379 383
380 winfoundtn::Point point; 384 winfoundtn::Point point;
381 hr = pointer_point_->get_Position(&point); 385 hr = pointer_point_->get_Position(&point);
382 if (FAILED(hr)) 386 if (FAILED(hr))
383 return hr; 387 return hr;
384 388
385 mswr::ComPtr<winui::Input::IPointerPointProperties> properties; 389 mswr::ComPtr<winui::Input::IPointerPointProperties> properties;
386 hr = pointer_point_->get_Properties(&properties); 390 hr = pointer_point_->get_Properties(&properties);
387 if (FAILED(hr)) 391 if (FAILED(hr))
388 return hr; 392 return hr;
389 393
390 hr = properties->get_PointerUpdateKind(&update_kind_); 394 hr = properties->get_PointerUpdateKind(&update_kind_);
391 if (FAILED(hr)) 395 if (FAILED(hr))
392 return hr; 396 return hr;
393 397
394 hr = properties->get_MouseWheelDelta(&wheel_delta_); 398 hr = properties->get_MouseWheelDelta(&wheel_delta_);
395 if (FAILED(hr)) 399 if (FAILED(hr))
396 return hr; 400 return hr;
397 401
398 is_horizontal_wheel_ = 0; 402 is_horizontal_wheel_ = 0;
399 properties->get_IsHorizontalMouseWheel(&is_horizontal_wheel_); 403 properties->get_IsHorizontalMouseWheel(&is_horizontal_wheel_);
400 404
401 x_ = point.X; 405 // The input coordinates are in DIP based on the metro scale factor.
402 y_ = point.Y; 406 // We want to convert it to DIP based on the win32 scale factor.
403 407 // We scale the point by the metro scale factor and then scale down
408 // via the win32 scale factor which achieves the needful.
cpu_(ooo_6.6-7.5) 2014/05/27 21:56:27 keep up to "scale factor."
ananta 2014/05/27 22:46:16 Please elaborate. Did you indicate changing "We sc
409 gfx::Point dip_point_metro(point.X, point.Y);
410 gfx::Point scaled_point_metro =
411 gfx::ToCeiledPoint(gfx::ScalePoint(dip_point_metro, metro_dpi_scale_));
412 gfx::Point dip_point_win32 =
413 gfx::ToCeiledPoint(gfx::ScalePoint(scaled_point_metro,
414 1.0 / win32_dpi_scale_));
415 x_ = dip_point_win32.x();
416 y_ = dip_point_win32.y();
417
404 pointer_point_->get_Timestamp(&timestamp_); 418 pointer_point_->get_Timestamp(&timestamp_);
405 pointer_point_->get_PointerId(&pointer_id_); 419 pointer_point_->get_PointerId(&pointer_id_);
406 // Map the OS touch event id to a range allowed by the gesture recognizer. 420 // Map the OS touch event id to a range allowed by the gesture recognizer.
407 if (IsTouch()) 421 if (IsTouch())
408 pointer_id_ %= ui::GestureSequence::kMaxGesturePoints; 422 pointer_id_ %= ui::GestureSequence::kMaxGesturePoints;
409 423
410 boolean left_button_state; 424 boolean left_button_state;
411 hr = properties->get_IsLeftButtonPressed(&left_button_state); 425 hr = properties->get_IsLeftButtonPressed(&left_button_state);
412 if (FAILED(hr)) 426 if (FAILED(hr))
413 return hr; 427 return hr;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 mswr::ComPtr<winui::Input::IPointerPoint> pointer_point_; 509 mswr::ComPtr<winui::Input::IPointerPoint> pointer_point_;
496 uint64 timestamp_; 510 uint64 timestamp_;
497 511
498 // Bitmask of ui::EventFlags corresponding to the buttons that are currently 512 // Bitmask of ui::EventFlags corresponding to the buttons that are currently
499 // down. 513 // down.
500 uint32 mouse_down_flags_; 514 uint32 mouse_down_flags_;
501 515
502 // Set to true for a horizontal wheel message. 516 // Set to true for a horizontal wheel message.
503 boolean is_horizontal_wheel_; 517 boolean is_horizontal_wheel_;
504 518
519 // The metro device scale factor as reported by the winrt interfaces.
520 float metro_dpi_scale_;
521 // The win32 dpi scale which is queried via GetDeviceCaps. Please refer to
522 // ui/gfx/win/dpi.cc for more information.
523 float win32_dpi_scale_;
524
505 DISALLOW_COPY_AND_ASSIGN(PointerInfoHandler); 525 DISALLOW_COPY_AND_ASSIGN(PointerInfoHandler);
506 }; 526 };
507 527
508 ChromeAppViewAsh::ChromeAppViewAsh() 528 ChromeAppViewAsh::ChromeAppViewAsh()
509 : mouse_down_flags_(ui::EF_NONE), 529 : mouse_down_flags_(ui::EF_NONE),
510 ui_channel_(nullptr), 530 ui_channel_(nullptr),
511 core_window_hwnd_(NULL), 531 core_window_hwnd_(NULL),
512 scale_(0) { 532 metro_dpi_scale_(0),
533 win32_dpi_scale_(0) {
513 DVLOG(1) << __FUNCTION__; 534 DVLOG(1) << __FUNCTION__;
514 globals.previous_state = 535 globals.previous_state =
515 winapp::Activation::ApplicationExecutionState_NotRunning; 536 winapp::Activation::ApplicationExecutionState_NotRunning;
516 } 537 }
517 538
518 ChromeAppViewAsh::~ChromeAppViewAsh() { 539 ChromeAppViewAsh::~ChromeAppViewAsh() {
519 DVLOG(1) << __FUNCTION__; 540 DVLOG(1) << __FUNCTION__;
520 } 541 }
521 542
522 IFACEMETHODIMP 543 IFACEMETHODIMP
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
622 this, &ChromeAppViewAsh::OnEdgeGestureCompleted).Get(), 643 this, &ChromeAppViewAsh::OnEdgeGestureCompleted).Get(),
623 &edgeevent_token_); 644 &edgeevent_token_);
624 CheckHR(hr); 645 CheckHR(hr);
625 } 646 }
626 647
627 // By initializing the direct 3D swap chain with the corewindow 648 // By initializing the direct 3D swap chain with the corewindow
628 // we can now directly blit to it from the browser process. 649 // we can now directly blit to it from the browser process.
629 direct3d_helper_.Initialize(window); 650 direct3d_helper_.Initialize(window);
630 DVLOG(1) << "Initialized Direct3D."; 651 DVLOG(1) << "Initialized Direct3D.";
631 652
632 scale_ = GetModernUIScale(); 653 // On Windows 8+ the WinRT interface IDisplayProperties which we use to get
633 DVLOG(1) << "Scale is " << scale_; 654 // device scale factor does not return the correct values in metro mode.
655 // To workaround this we retrieve the device scale factor via the win32 way
656 // and scale input coordinates accordingly to pass them in DIP to chrome.
657 // TODO(ananta). Investigate and fix.
658 metro_dpi_scale_ = GetModernUIScale();
659 win32_dpi_scale_ = gfx::GetDPIScale();
660 DVLOG(1) << "Metro Scale is " << metro_dpi_scale_;
661 DVLOG(1) << "Win32 Scale is " << win32_dpi_scale_;
634 return S_OK; 662 return S_OK;
635 } 663 }
636 664
637 IFACEMETHODIMP 665 IFACEMETHODIMP
638 ChromeAppViewAsh::Load(HSTRING entryPoint) { 666 ChromeAppViewAsh::Load(HSTRING entryPoint) {
639 // On Win7 |entryPoint| is NULL. 667 // On Win7 |entryPoint| is NULL.
640 DVLOG(1) << __FUNCTION__; 668 DVLOG(1) << __FUNCTION__;
641 return S_OK; 669 return S_OK;
642 } 670 }
643 671
(...skipping 24 matching lines...) Expand all
668 ChromeChannelListener ui_channel_listener(&ui_loop_, this); 696 ChromeChannelListener ui_channel_listener(&ui_loop_, this);
669 IPC::ChannelProxy ui_channel(win8::kMetroViewerIPCChannelName, 697 IPC::ChannelProxy ui_channel(win8::kMetroViewerIPCChannelName,
670 IPC::Channel::MODE_NAMED_CLIENT, 698 IPC::Channel::MODE_NAMED_CLIENT,
671 &ui_channel_listener, 699 &ui_channel_listener,
672 io_thread.message_loop_proxy()); 700 io_thread.message_loop_proxy());
673 ui_channel_ = &ui_channel; 701 ui_channel_ = &ui_channel;
674 702
675 // Upon receipt of the MetroViewerHostMsg_SetTargetSurface message the 703 // Upon receipt of the MetroViewerHostMsg_SetTargetSurface message the
676 // browser will use D3D from the browser process to present to our Window. 704 // browser will use D3D from the browser process to present to our Window.
677 ui_channel_->Send(new MetroViewerHostMsg_SetTargetSurface( 705 ui_channel_->Send(new MetroViewerHostMsg_SetTargetSurface(
678 gfx::NativeViewId(core_window_hwnd_), scale_)); 706 gfx::NativeViewId(core_window_hwnd_), win32_dpi_scale_));
679 DVLOG(1) << "ICoreWindow sent " << core_window_hwnd_; 707 DVLOG(1) << "ICoreWindow sent " << core_window_hwnd_;
680 708
681 // Send an initial size message so that the Ash root window host gets sized 709 // Send an initial size message so that the Ash root window host gets sized
682 // correctly. 710 // correctly.
683 RECT rect = {0}; 711 RECT rect = {0};
684 ::GetWindowRect(core_window_hwnd_, &rect); 712 ::GetWindowRect(core_window_hwnd_, &rect);
685 ui_channel_->Send( 713 ui_channel_->Send(
686 new MetroViewerHostMsg_WindowSizeChanged(rect.right - rect.left, 714 new MetroViewerHostMsg_WindowSizeChanged(rect.right - rect.left,
687 rect.bottom - rect.top)); 715 rect.bottom - rect.top));
688 716
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
1040 // in turn launches the chrome browser process in desktop mode via 1068 // in turn launches the chrome browser process in desktop mode via
1041 // ShellExecute. If we call ICoreWindow::Activate before this, then 1069 // ShellExecute. If we call ICoreWindow::Activate before this, then
1042 // Windows kills the metro chrome process when it calls ShellExecute. Seems 1070 // Windows kills the metro chrome process when it calls ShellExecute. Seems
1043 // to be a bug. 1071 // to be a bug.
1044 window_->Activate(); 1072 window_->Activate();
1045 return S_OK; 1073 return S_OK;
1046 } 1074 }
1047 1075
1048 HRESULT ChromeAppViewAsh::OnPointerMoved(winui::Core::ICoreWindow* sender, 1076 HRESULT ChromeAppViewAsh::OnPointerMoved(winui::Core::ICoreWindow* sender,
1049 winui::Core::IPointerEventArgs* args) { 1077 winui::Core::IPointerEventArgs* args) {
1050 PointerInfoHandler pointer; 1078 PointerInfoHandler pointer(metro_dpi_scale_, win32_dpi_scale_);
1051 HRESULT hr = pointer.Init(args); 1079 HRESULT hr = pointer.Init(args);
1052 if (FAILED(hr)) 1080 if (FAILED(hr))
1053 return hr; 1081 return hr;
1054 1082
1055 if (pointer.IsMouse()) { 1083 if (pointer.IsMouse()) {
1056 GenerateMouseEventFromMoveIfNecessary(pointer); 1084 GenerateMouseEventFromMoveIfNecessary(pointer);
1057 ui_channel_->Send(new MetroViewerHostMsg_MouseMoved( 1085 ui_channel_->Send(new MetroViewerHostMsg_MouseMoved(
1058 pointer.x(), 1086 pointer.x(),
1059 pointer.y(), 1087 pointer.y(),
1060 mouse_down_flags_ | GetKeyboardEventFlags())); 1088 mouse_down_flags_ | GetKeyboardEventFlags()));
1061 } else { 1089 } else {
1062 DCHECK(pointer.IsTouch()); 1090 DCHECK(pointer.IsTouch());
1063 ui_channel_->Send(new MetroViewerHostMsg_TouchMoved(pointer.x(), 1091 ui_channel_->Send(new MetroViewerHostMsg_TouchMoved(pointer.x(),
1064 pointer.y(), 1092 pointer.y(),
1065 pointer.timestamp(), 1093 pointer.timestamp(),
1066 pointer.pointer_id())); 1094 pointer.pointer_id()));
1067 } 1095 }
1068 return S_OK; 1096 return S_OK;
1069 } 1097 }
1070 1098
1071 // NOTE: From experimentation, it seems like Metro only sends a PointerPressed 1099 // NOTE: From experimentation, it seems like Metro only sends a PointerPressed
1072 // event for the first button pressed and the last button released in a sequence 1100 // event for the first button pressed and the last button released in a sequence
1073 // of mouse events. 1101 // of mouse events.
1074 // For example, a sequence of LEFT_DOWN, RIGHT_DOWN, LEFT_UP, RIGHT_UP results 1102 // For example, a sequence of LEFT_DOWN, RIGHT_DOWN, LEFT_UP, RIGHT_UP results
1075 // only in PointerPressed(LEFT)/PointerReleased(RIGHT) events. Intermediary 1103 // only in PointerPressed(LEFT)/PointerReleased(RIGHT) events. Intermediary
1076 // presses and releases are tracked in OnPointMoved(). 1104 // presses and releases are tracked in OnPointMoved().
1077 HRESULT ChromeAppViewAsh::OnPointerPressed( 1105 HRESULT ChromeAppViewAsh::OnPointerPressed(
1078 winui::Core::ICoreWindow* sender, 1106 winui::Core::ICoreWindow* sender,
1079 winui::Core::IPointerEventArgs* args) { 1107 winui::Core::IPointerEventArgs* args) {
1080 PointerInfoHandler pointer; 1108 PointerInfoHandler pointer(metro_dpi_scale_, win32_dpi_scale_);
1081 HRESULT hr = pointer.Init(args); 1109 HRESULT hr = pointer.Init(args);
1082 if (FAILED(hr)) 1110 if (FAILED(hr))
1083 return hr; 1111 return hr;
1084 1112
1085 if (pointer.IsMouse()) { 1113 if (pointer.IsMouse()) {
1086 mouse_down_flags_ = pointer.mouse_down_flags(); 1114 mouse_down_flags_ = pointer.mouse_down_flags();
1087 SendMouseButton(pointer.x(), pointer.y(), 0, ui::ET_MOUSE_PRESSED, 1115 SendMouseButton(pointer.x(), pointer.y(), 0, ui::ET_MOUSE_PRESSED,
1088 mouse_down_flags_ | GetKeyboardEventFlags(), 1116 mouse_down_flags_ | GetKeyboardEventFlags(),
1089 pointer.changed_button(), pointer.is_horizontal_wheel()); 1117 pointer.changed_button(), pointer.is_horizontal_wheel());
1090 } else { 1118 } else {
1091 DCHECK(pointer.IsTouch()); 1119 DCHECK(pointer.IsTouch());
1092 ui_channel_->Send(new MetroViewerHostMsg_TouchDown(pointer.x(), 1120 ui_channel_->Send(new MetroViewerHostMsg_TouchDown(pointer.x(),
1093 pointer.y(), 1121 pointer.y(),
1094 pointer.timestamp(), 1122 pointer.timestamp(),
1095 pointer.pointer_id())); 1123 pointer.pointer_id()));
1096 } 1124 }
1097 return S_OK; 1125 return S_OK;
1098 } 1126 }
1099 1127
1100 HRESULT ChromeAppViewAsh::OnPointerReleased( 1128 HRESULT ChromeAppViewAsh::OnPointerReleased(
1101 winui::Core::ICoreWindow* sender, 1129 winui::Core::ICoreWindow* sender,
1102 winui::Core::IPointerEventArgs* args) { 1130 winui::Core::IPointerEventArgs* args) {
1103 PointerInfoHandler pointer; 1131 PointerInfoHandler pointer(metro_dpi_scale_, win32_dpi_scale_);
1104 HRESULT hr = pointer.Init(args); 1132 HRESULT hr = pointer.Init(args);
1105 if (FAILED(hr)) 1133 if (FAILED(hr))
1106 return hr; 1134 return hr;
1107 1135
1108 if (pointer.IsMouse()) { 1136 if (pointer.IsMouse()) {
1109 mouse_down_flags_ = ui::EF_NONE; 1137 mouse_down_flags_ = ui::EF_NONE;
1110 SendMouseButton(pointer.x(), pointer.y(), 0, ui::ET_MOUSE_RELEASED, 1138 SendMouseButton(pointer.x(), pointer.y(), 0, ui::ET_MOUSE_RELEASED,
1111 static_cast<uint32>(pointer.changed_button()) | 1139 static_cast<uint32>(pointer.changed_button()) |
1112 GetKeyboardEventFlags(), 1140 GetKeyboardEventFlags(),
1113 pointer.changed_button(), 1141 pointer.changed_button(),
1114 pointer.is_horizontal_wheel()); 1142 pointer.is_horizontal_wheel());
1115 } else { 1143 } else {
1116 DCHECK(pointer.IsTouch()); 1144 DCHECK(pointer.IsTouch());
1117 ui_channel_->Send(new MetroViewerHostMsg_TouchUp(pointer.x(), 1145 ui_channel_->Send(new MetroViewerHostMsg_TouchUp(pointer.x(),
1118 pointer.y(), 1146 pointer.y(),
1119 pointer.timestamp(), 1147 pointer.timestamp(),
1120 pointer.pointer_id())); 1148 pointer.pointer_id()));
1121 } 1149 }
1122 return S_OK; 1150 return S_OK;
1123 } 1151 }
1124 1152
1125 HRESULT ChromeAppViewAsh::OnWheel( 1153 HRESULT ChromeAppViewAsh::OnWheel(
1126 winui::Core::ICoreWindow* sender, 1154 winui::Core::ICoreWindow* sender,
1127 winui::Core::IPointerEventArgs* args) { 1155 winui::Core::IPointerEventArgs* args) {
1128 PointerInfoHandler pointer; 1156 PointerInfoHandler pointer(metro_dpi_scale_, win32_dpi_scale_);
1129 HRESULT hr = pointer.Init(args); 1157 HRESULT hr = pointer.Init(args);
1130 if (FAILED(hr)) 1158 if (FAILED(hr))
1131 return hr; 1159 return hr;
1132 DCHECK(pointer.IsMouse()); 1160 DCHECK(pointer.IsMouse());
1133 SendMouseButton(pointer.x(), pointer.y(), pointer.wheel_delta(), 1161 SendMouseButton(pointer.x(), pointer.y(), pointer.wheel_delta(),
1134 ui::ET_MOUSEWHEEL, ui::EF_NONE, ui::EF_NONE, 1162 ui::ET_MOUSEWHEEL, ui::EF_NONE, ui::EF_NONE,
1135 pointer.is_horizontal_wheel()); 1163 pointer.is_horizontal_wheel());
1136 return S_OK; 1164 return S_OK;
1137 } 1165 }
1138 1166
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
1361 mswr::ComPtr<winapp::Core::ICoreApplicationExit> app_exit; 1389 mswr::ComPtr<winapp::Core::ICoreApplicationExit> app_exit;
1362 CheckHR(core_app.As(&app_exit)); 1390 CheckHR(core_app.As(&app_exit));
1363 globals.app_exit = app_exit.Detach(); 1391 globals.app_exit = app_exit.Detach();
1364 } 1392 }
1365 1393
1366 IFACEMETHODIMP 1394 IFACEMETHODIMP
1367 ChromeAppViewFactory::CreateView(winapp::Core::IFrameworkView** view) { 1395 ChromeAppViewFactory::CreateView(winapp::Core::IFrameworkView** view) {
1368 *view = mswr::Make<ChromeAppViewAsh>().Detach(); 1396 *view = mswr::Make<ChromeAppViewAsh>().Detach();
1369 return (*view) ? S_OK : E_OUTOFMEMORY; 1397 return (*view) ? S_OK : E_OUTOFMEMORY;
1370 } 1398 }
OLDNEW
« no previous file with comments | « win8/metro_driver/chrome_app_view_ash.h ('k') | win8/metro_driver/direct3d_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698