Index: ui/base/ime/remote_input_method_win.cc |
diff --git a/ui/base/ime/remote_input_method_win.cc b/ui/base/ime/remote_input_method_win.cc |
index 3f0ff991e9e5906f5caf1284e8783849cb81ad86..3167c20ffb4c13a8ad6a07db83c16fa4f04c51a7 100644 |
--- a/ui/base/ime/remote_input_method_win.cc |
+++ b/ui/base/ime/remote_input_method_win.cc |
@@ -6,6 +6,8 @@ |
#include "base/observer_list.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "base/win/metro.h" |
+#include "base/win/scoped_handle.h" |
#include "ui/base/ime/input_method.h" |
#include "ui/base/ime/input_method_delegate.h" |
#include "ui/base/ime/input_method_observer.h" |
@@ -373,6 +375,17 @@ class RemoteInputMethodWin : public InputMethod, |
} // namespace |
+bool IsRemoteInputMethodWinRequired(gfx::AcceleratedWidget widget) { |
+ DWORD process_id = 0; |
+ if (GetWindowThreadProcessId(widget, &process_id) == 0) |
+ return false; |
+ base::win::ScopedHandle process_handle(::OpenProcess( |
+ PROCESS_QUERY_LIMITED_INFORMATION, FALSE, process_id)); |
+ if (!process_handle.IsValid()) |
+ return false; |
+ return base::win::IsProcessImmersive(process_handle.Get()); |
+} |
+ |
RemoteInputMethodPrivateWin::RemoteInputMethodPrivateWin() {} |
scoped_ptr<InputMethod> CreateRemoteInputMethodWin( |