summaryrefslogtreecommitdiff
path: root/Userland/Services
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Services')
-rw-r--r--Userland/Services/WindowServer/ConnectionFromClient.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/Userland/Services/WindowServer/ConnectionFromClient.cpp b/Userland/Services/WindowServer/ConnectionFromClient.cpp
index 76f05ff10f..e36c2d2774 100644
--- a/Userland/Services/WindowServer/ConnectionFromClient.cpp
+++ b/Userland/Services/WindowServer/ConnectionFromClient.cpp
@@ -1128,12 +1128,14 @@ Messages::WindowServer::GetScreenBitmapAroundCursorResponse ConnectionFromClient
Messages::WindowServer::GetColorUnderCursorResponse ConnectionFromClient::get_color_under_cursor()
{
+ auto screen_scale_factor = ScreenInput::the().cursor_location_screen().scale_factor();
// FIXME: Add a mechanism to get screen bitmap without cursor, so we don't have to do this
// manual translation to avoid sampling the color on the actual cursor itself.
- auto cursor_location = ScreenInput::the().cursor_location().translated(-1, -1);
+ auto cursor_location = (ScreenInput::the().cursor_location() * screen_scale_factor).translated(-1, -1);
auto& screen_with_cursor = ScreenInput::the().cursor_location_screen();
+ auto scaled_screen_rect = screen_with_cursor.rect() * screen_scale_factor;
- if (!screen_with_cursor.rect().contains(cursor_location))
+ if (!scaled_screen_rect.contains(cursor_location))
return Optional<Color> {};
return { Compositor::the().color_at_position({}, screen_with_cursor, cursor_location) };