| 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 "win8/metro_driver/stdafx.h" | 5 #include "win8/metro_driver/stdafx.h" |
| 6 #include "win8/metro_driver/chrome_app_view.h" | 6 #include "win8/metro_driver/chrome_app_view.h" |
| 7 | 7 |
| 8 #include <corewindow.h> | 8 #include <corewindow.h> |
| 9 #include <windows.applicationModel.datatransfer.h> | 9 #include <windows.applicationModel.datatransfer.h> |
| 10 #include <windows.foundation.h> | 10 #include <windows.foundation.h> |
| (...skipping 759 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 770 | 770 |
| 771 void ChromeAppView::CheckForOSKActivation() { | 771 void ChromeAppView::CheckForOSKActivation() { |
| 772 // Hack for checking if the OSK was displayed while we are in the foreground. | 772 // Hack for checking if the OSK was displayed while we are in the foreground. |
| 773 // The input pane notifications which are supposed to fire when the OSK is | 773 // The input pane notifications which are supposed to fire when the OSK is |
| 774 // shown and hidden don't seem to be firing in Windows 8 metro for us. | 774 // shown and hidden don't seem to be firing in Windows 8 metro for us. |
| 775 // The current hack is supposed to workaround that issue till we figure it | 775 // The current hack is supposed to workaround that issue till we figure it |
| 776 // out. Logic is to find the OSK window and see if we are the foreground | 776 // out. Logic is to find the OSK window and see if we are the foreground |
| 777 // process. If yes then fire the notification once for when the OSK is shown | 777 // process. If yes then fire the notification once for when the OSK is shown |
| 778 // and once for when it is hidden. | 778 // and once for when it is hidden. |
| 779 // TODO(ananta) | 779 // TODO(ananta) |
| 780 // Take this out when the documented input pane notification issues are | 780 // Take this out when the documented input pane notifcation issues are |
| 781 // addressed. | 781 // addressed. |
| 782 HWND osk = ::FindWindow(kOSKClassName, NULL); | 782 HWND osk = ::FindWindow(kOSKClassName, NULL); |
| 783 if (::IsWindow(osk)) { | 783 if (::IsWindow(osk)) { |
| 784 HWND foreground_window = ::GetForegroundWindow(); | 784 HWND foreground_window = ::GetForegroundWindow(); |
| 785 if (globals.host_windows.size() > 0 && | 785 if (globals.host_windows.size() > 0 && |
| 786 foreground_window == globals.host_windows.front().first) { | 786 foreground_window == globals.host_windows.front().first) { |
| 787 RECT osk_rect = {0}; | 787 RECT osk_rect = {0}; |
| 788 ::GetWindowRect(osk, &osk_rect); | 788 ::GetWindowRect(osk, &osk_rect); |
| 789 | 789 |
| 790 if (::IsWindowVisible(osk) && ::IsWindowEnabled(osk)) { | 790 if (::IsWindowVisible(osk) && ::IsWindowEnabled(osk)) { |
| (...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1207 CheckHR(core_app.As(&app_exit)); | 1207 CheckHR(core_app.As(&app_exit)); |
| 1208 globals.app_exit = app_exit.Detach(); | 1208 globals.app_exit = app_exit.Detach(); |
| 1209 } | 1209 } |
| 1210 | 1210 |
| 1211 IFACEMETHODIMP | 1211 IFACEMETHODIMP |
| 1212 ChromeAppViewFactory::CreateView(winapp::Core::IFrameworkView** view) { | 1212 ChromeAppViewFactory::CreateView(winapp::Core::IFrameworkView** view) { |
| 1213 globals.view = mswr::Make<ChromeAppView>().Detach(); | 1213 globals.view = mswr::Make<ChromeAppView>().Detach(); |
| 1214 *view = globals.view; | 1214 *view = globals.view; |
| 1215 return (*view) ? S_OK : E_OUTOFMEMORY; | 1215 return (*view) ? S_OK : E_OUTOFMEMORY; |
| 1216 } | 1216 } |
| OLD | NEW |