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 notifcation issues are | 780 // Take this out when the documented input pane notification 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 |