From eae6a838571b66aa4dc4d1fb4d08029200ab503c Mon Sep 17 00:00:00 2001 From: Prabir Pradhan Date: Thu, 5 Jan 2023 19:03:09 +0000 Subject: DO NOT MERGE: Revert "Check display id of the last hover window before it is cleared" This reverts commit ff0c66e855925476c5ce06ad133f9084e725f96a. Reason for revert: b/263272128 This platform change causes a regression in CTS tests. Since the CTS test fix will only be released in the next quarterly release, we must wait for the test to be released before landing this fix. Change-Id: If2db80acb83f6731f66b49f8827f428a85e27370 --- .../inputflinger/dispatcher/InputDispatcher.cpp | 11 ++--- .../inputflinger/tests/InputDispatcher_test.cpp | 53 ---------------------- 2 files changed, 4 insertions(+), 60 deletions(-) diff --git a/services/inputflinger/dispatcher/InputDispatcher.cpp b/services/inputflinger/dispatcher/InputDispatcher.cpp index 3267753712..5c47be9be0 100644 --- a/services/inputflinger/dispatcher/InputDispatcher.cpp +++ b/services/inputflinger/dispatcher/InputDispatcher.cpp @@ -4727,13 +4727,10 @@ void InputDispatcher::setInputWindowsLocked( updateWindowHandlesForDisplayLocked(windowInfoHandles, displayId); const std::vector>& windowHandles = getWindowHandlesLocked(displayId); - if (mLastHoverWindowHandle) { - const WindowInfo* lastHoverWindowInfo = mLastHoverWindowHandle->getInfo(); - if (lastHoverWindowInfo->displayId == displayId && - std::find(windowHandles.begin(), windowHandles.end(), mLastHoverWindowHandle) == - windowHandles.end()) { - mLastHoverWindowHandle = nullptr; - } + if (mLastHoverWindowHandle && + std::find(windowHandles.begin(), windowHandles.end(), mLastHoverWindowHandle) == + windowHandles.end()) { + mLastHoverWindowHandle = nullptr; } std::optional changes = diff --git a/services/inputflinger/tests/InputDispatcher_test.cpp b/services/inputflinger/tests/InputDispatcher_test.cpp index fce0f999b5..58617f7383 100644 --- a/services/inputflinger/tests/InputDispatcher_test.cpp +++ b/services/inputflinger/tests/InputDispatcher_test.cpp @@ -2189,59 +2189,6 @@ TEST_F(InputDispatcherTest, HoverEnterMouseClickAndHoverExit) { ADISPLAY_ID_DEFAULT, 0 /* expectedFlag */); } -TEST_F(InputDispatcherTest, HoverEnterMoveRemoveWindowsInSecondDisplay) { - std::shared_ptr application = std::make_shared(); - sp windowDefaultDisplay = - sp::make(application, mDispatcher, "DefaultDisplay", - ADISPLAY_ID_DEFAULT); - windowDefaultDisplay->setFrame(Rect(0, 0, 600, 800)); - sp windowSecondDisplay = - sp::make(application, mDispatcher, "SecondDisplay", - SECOND_DISPLAY_ID); - windowSecondDisplay->setFrame(Rect(0, 0, 600, 800)); - - mDispatcher->setInputWindows({{ADISPLAY_ID_DEFAULT, {windowDefaultDisplay}}, - {SECOND_DISPLAY_ID, {windowSecondDisplay}}}); - - // Set cursor position in window in default display and check that hover enter and move - // events are generated. - ASSERT_EQ(InputEventInjectionResult::SUCCEEDED, - injectMotionEvent(mDispatcher, - MotionEventBuilder(AMOTION_EVENT_ACTION_HOVER_MOVE, - AINPUT_SOURCE_MOUSE) - .displayId(ADISPLAY_ID_DEFAULT) - .pointer(PointerBuilder(0, AMOTION_EVENT_TOOL_TYPE_MOUSE) - .x(300) - .y(600)) - .build())); - windowDefaultDisplay->consumeEvent(AINPUT_EVENT_TYPE_MOTION, AMOTION_EVENT_ACTION_HOVER_ENTER, - ADISPLAY_ID_DEFAULT, 0 /* expectedFlag */); - windowDefaultDisplay->consumeEvent(AINPUT_EVENT_TYPE_MOTION, AMOTION_EVENT_ACTION_HOVER_MOVE, - ADISPLAY_ID_DEFAULT, 0 /* expectedFlag */); - - // Remove all windows in secondary display and check that no event happens on window in - // primary display. - mDispatcher->setInputWindows({{SECOND_DISPLAY_ID, {}}}); - windowDefaultDisplay->assertNoEvents(); - - // Move cursor position in window in default display and check that only hover move - // event is generated and not hover enter event. - mDispatcher->setInputWindows({{ADISPLAY_ID_DEFAULT, {windowDefaultDisplay}}, - {SECOND_DISPLAY_ID, {windowSecondDisplay}}}); - ASSERT_EQ(InputEventInjectionResult::SUCCEEDED, - injectMotionEvent(mDispatcher, - MotionEventBuilder(AMOTION_EVENT_ACTION_HOVER_MOVE, - AINPUT_SOURCE_MOUSE) - .displayId(ADISPLAY_ID_DEFAULT) - .pointer(PointerBuilder(0, AMOTION_EVENT_TOOL_TYPE_MOUSE) - .x(400) - .y(700)) - .build())); - windowDefaultDisplay->consumeEvent(AINPUT_EVENT_TYPE_MOTION, AMOTION_EVENT_ACTION_HOVER_MOVE, - ADISPLAY_ID_DEFAULT, 0 /* expectedFlag */); - windowDefaultDisplay->assertNoEvents(); -} - TEST_F(InputDispatcherTest, DispatchMouseEventsUnderCursor) { std::shared_ptr application = std::make_shared(); -- cgit v1.2.3 From 95f919794466fffee6f41322dfc055d21e10eaf8 Mon Sep 17 00:00:00 2001 From: Mariia Sandrikova Date: Fri, 6 Jan 2023 01:20:47 +0000 Subject: Clean up debug.sf.ignore_hwc_physical_display_orientation Temporary property was introduced in Ie0a9859a43948b97414c97db279ff4d32bce3ac1 Test: manual Fix: 246793311 Change-Id: Ic7e102201196285cba18e12e27c7cd4d40dcc8e4 --- services/surfaceflinger/SurfaceFlinger.cpp | 6 +----- services/surfaceflinger/SurfaceFlinger.h | 5 ----- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 4d93e7ec50..f6880ce1f3 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -422,9 +422,6 @@ SurfaceFlinger::SurfaceFlinger(Factory& factory) : SurfaceFlinger(factory, SkipI property_get("debug.sf.treat_170m_as_sRGB", value, "0"); mTreat170mAsSrgb = atoi(value); - mIgnoreHwcPhysicalDisplayOrientation = - base::GetBoolProperty("debug.sf.ignore_hwc_physical_display_orientation"s, false); - // We should be reading 'persist.sys.sf.color_saturation' here // but since /data may be encrypted, we need to wait until after vold // comes online to attempt to read the property. The property is @@ -2404,8 +2401,7 @@ ui::Rotation SurfaceFlinger::getPhysicalDisplayOrientation(DisplayId displayId, if (!id) { return ui::ROTATION_0; } - if (!mIgnoreHwcPhysicalDisplayOrientation && - getHwComposer().getComposer()->isSupported( + if (getHwComposer().getComposer()->isSupported( Hwc2::Composer::OptionalFeature::PhysicalDisplayOrientation)) { switch (getHwComposer().getPhysicalDisplayOrientation(*id)) { case Hwc2::AidlTransform::ROT_90: diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h index 678495da3b..51d721626e 100644 --- a/services/surfaceflinger/SurfaceFlinger.h +++ b/services/surfaceflinger/SurfaceFlinger.h @@ -353,11 +353,6 @@ public: // on this behavior to increase contrast for some media sources. bool mTreat170mAsSrgb = false; - // Allows to ignore physical orientation provided through hwc API in favour of - // 'ro.surface_flinger.primary_display_orientation'. - // TODO(b/246793311): Clean up a temporary property - bool mIgnoreHwcPhysicalDisplayOrientation = false; - protected: // We're reference counted, never destroy SurfaceFlinger directly virtual ~SurfaceFlinger(); -- cgit v1.2.3