Commit 4a0045f2 authored by Xiaoqian Dai's avatar Xiaoqian Dai Committed by Chromium LUCI CQ

capture mode: Still show mouse if we're in dev tablet mode.

Bug: None
Change-Id: I174f12dbaecc64e83f8fabbe53a481549dc79a87
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2600052Reviewed-by: default avatarAhmed Fakhry <afakhry@chromium.org>
Commit-Queue: Xiaoqian Dai <xdai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#839177}
parent cb7be476
......@@ -1461,7 +1461,9 @@ bool CaptureModeSession::IsInCountDownAnimation() const {
void CaptureModeSession::UpdateCursor(const gfx::Point& location_in_screen,
bool is_touch) {
// Hide mouse cursor in tablet mode.
if (TabletModeController::Get()->InTabletMode()) {
auto* tablet_mode_controller = Shell::Get()->tablet_mode_controller();
if (tablet_mode_controller->InTabletMode() &&
!tablet_mode_controller->IsInDevTabletMode()) {
cursor_setter_->HideCursor();
return;
}
......
......@@ -1206,6 +1206,15 @@ TEST_F(CaptureModeTest, FullscreenCursorStates) {
EXPECT_FALSE(controller->IsActive());
EXPECT_FALSE(cursor_manager->IsCursorLocked());
EXPECT_EQ(original_cursor_type, cursor_manager->GetCursor().type());
// Test that if we're in tablet mode for dev purpose, the cursor should still
// be visible.
Shell::Get()->tablet_mode_controller()->SetEnabledForDev(true);
StartCaptureSession(CaptureModeSource::kFullscreen, CaptureModeType::kImage);
EXPECT_EQ(controller->type(), CaptureModeType::kImage);
EXPECT_TRUE(cursor_manager->IsCursorLocked());
event_generator->MoveMouseTo(gfx::Point(175, 175));
EXPECT_TRUE(cursor_manager->IsCursorVisible());
}
TEST_F(CaptureModeTest, WindowCursorStates) {
......
......@@ -527,6 +527,10 @@ void TabletModeController::StopObservingAnimation(bool record_stats,
DeleteScreenshot();
}
bool TabletModeController::IsInDevTabletMode() const {
return tablet_mode_behavior_ == kOnForDev;
}
void TabletModeController::AddObserver(TabletModeObserver* observer) {
tablet_mode_observers_.AddObserver(observer);
}
......
......@@ -123,6 +123,10 @@ class ASH_EXPORT TabletModeController
// clamshell.
void StopObservingAnimation(bool record_stats, bool delete_screenshot);
// Returns true if we're in tablet mode for development purpose (please refer
// to kOnForDev for more details.)
bool IsInDevTabletMode() const;
// TabletMode:
void AddObserver(TabletModeObserver* observer) override;
void RemoveObserver(TabletModeObserver* observer) override;
......@@ -209,6 +213,16 @@ class ASH_EXPORT TabletModeController
bool always_show_overview_button = false;
ForcePhysicalTabletState force_physical_tablet_state =
ForcePhysicalTabletState::kDefault;
bool operator==(const TabletModeBehavior& other) const {
return use_sensor == other.use_sensor &&
observe_display_events == other.observe_display_events &&
observe_pointer_device_events ==
other.observe_pointer_device_events &&
block_internal_input_device == other.block_internal_input_device &&
always_show_overview_button == other.always_show_overview_button &&
force_physical_tablet_state == other.force_physical_tablet_state;
}
};
private:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment