1928e054931d357326613c78e62f4d850b7c442ffJeff Brown/* 2928e054931d357326613c78e62f4d850b7c442ffJeff Brown * Copyright (C) 2011 The Android Open Source Project 3928e054931d357326613c78e62f4d850b7c442ffJeff Brown * 4928e054931d357326613c78e62f4d850b7c442ffJeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 5928e054931d357326613c78e62f4d850b7c442ffJeff Brown * you may not use this file except in compliance with the License. 6928e054931d357326613c78e62f4d850b7c442ffJeff Brown * You may obtain a copy of the License at 7928e054931d357326613c78e62f4d850b7c442ffJeff Brown * 8928e054931d357326613c78e62f4d850b7c442ffJeff Brown * http://www.apache.org/licenses/LICENSE-2.0 9928e054931d357326613c78e62f4d850b7c442ffJeff Brown * 10928e054931d357326613c78e62f4d850b7c442ffJeff Brown * Unless required by applicable law or agreed to in writing, software 11928e054931d357326613c78e62f4d850b7c442ffJeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 12928e054931d357326613c78e62f4d850b7c442ffJeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13928e054931d357326613c78e62f4d850b7c442ffJeff Brown * See the License for the specific language governing permissions and 14928e054931d357326613c78e62f4d850b7c442ffJeff Brown * limitations under the License. 15928e054931d357326613c78e62f4d850b7c442ffJeff Brown */ 16928e054931d357326613c78e62f4d850b7c442ffJeff Brown 17928e054931d357326613c78e62f4d850b7c442ffJeff Brown#define LOG_TAG "InputWindow" 18928e054931d357326613c78e62f4d850b7c442ffJeff Brown 19928e054931d357326613c78e62f4d850b7c442ffJeff Brown#include "InputWindow.h" 20928e054931d357326613c78e62f4d850b7c442ffJeff Brown 21928e054931d357326613c78e62f4d850b7c442ffJeff Brown#include <cutils/log.h> 22928e054931d357326613c78e62f4d850b7c442ffJeff Brown 23928e054931d357326613c78e62f4d850b7c442ffJeff Brownnamespace android { 24928e054931d357326613c78e62f4d850b7c442ffJeff Brown 25cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown// --- InputWindowInfo --- 26928e054931d357326613c78e62f4d850b7c442ffJeff Brown 27cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brownbool InputWindowInfo::touchableRegionContainsPoint(int32_t x, int32_t y) const { 28fbf097732137a32930d151f7ba6816a5b870c32aJeff Brown return touchableRegion.contains(x, y); 29928e054931d357326613c78e62f4d850b7c442ffJeff Brown} 30928e054931d357326613c78e62f4d850b7c442ffJeff Brown 31cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brownbool InputWindowInfo::frameContainsPoint(int32_t x, int32_t y) const { 324fb76253f255f0adb8a64835af37bb9176ee4016Jeff Brown return x >= frameLeft && x <= frameRight 334fb76253f255f0adb8a64835af37bb9176ee4016Jeff Brown && y >= frameTop && y <= frameBottom; 34928e054931d357326613c78e62f4d850b7c442ffJeff Brown} 35928e054931d357326613c78e62f4d850b7c442ffJeff Brown 36cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brownbool InputWindowInfo::isTrustedOverlay() const { 37928e054931d357326613c78e62f4d850b7c442ffJeff Brown return layoutParamsType == TYPE_INPUT_METHOD 38928e054931d357326613c78e62f4d850b7c442ffJeff Brown || layoutParamsType == TYPE_INPUT_METHOD_DIALOG 39928e054931d357326613c78e62f4d850b7c442ffJeff Brown || layoutParamsType == TYPE_SECURE_SYSTEM_OVERLAY; 40928e054931d357326613c78e62f4d850b7c442ffJeff Brown} 41928e054931d357326613c78e62f4d850b7c442ffJeff Brown 42cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brownbool InputWindowInfo::supportsSplitTouch() const { 439302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown return layoutParamsFlags & FLAG_SPLIT_TOUCH; 44928e054931d357326613c78e62f4d850b7c442ffJeff Brown} 45928e054931d357326613c78e62f4d850b7c442ffJeff Brown 46cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown 47cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown// --- InputWindowHandle --- 48cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown 49cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff BrownInputWindowHandle::InputWindowHandle(const sp<InputApplicationHandle>& inputApplicationHandle) : 50cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown inputApplicationHandle(inputApplicationHandle), mInfo(NULL) { 51cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown} 52cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown 53cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff BrownInputWindowHandle::~InputWindowHandle() { 54cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown delete mInfo; 55cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown} 56cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown 57cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brownvoid InputWindowHandle::releaseInfo() { 58cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown if (mInfo) { 59cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown delete mInfo; 60cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown mInfo = NULL; 61cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown } 62cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown} 63cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown 64928e054931d357326613c78e62f4d850b7c442ffJeff Brown} // namespace android 65