diff --git a/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc b/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc index 68323a0f86..772ec8b3d5 100644 --- a/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc +++ b/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc @@ -206,11 +206,12 @@ void MouseCursorMonitorX11::CaptureCursor() { std::unique_ptr image( new BasicDesktopFrame(DesktopSize(img->width, img->height))); - uint64_t* src = reinterpret_cast(img->pixels); + // Xlib stores 32-bit data in longs, even if longs are 64-bits long. + unsigned long* src = img->pixels; uint32_t* dst = reinterpret_cast(image->data()); uint32_t* dst_end = dst + (img->width * img->height); while (dst < dst_end) { - *dst++ = *src++; + *dst++ = static_cast(*src++); } DesktopVector hotspot(std::min(img->width, img->xhot),