#include "modules/desktop_capture/linux/x11/mouse_cursor_monitor_x11.h"
#include <X11/Xlib.h>
#include <X11/extensions/Xfixes.h>
#include <X11/extensions/xfixeswire.h>
#include <stddef.h>
#include <stdint.h>
#include <algorithm>
#include <memory>
#include "modules/desktop_capture/desktop_capture_options.h"
#include "modules/desktop_capture/desktop_capture_types.h"
#include "modules/desktop_capture/desktop_frame.h"
#include "modules/desktop_capture/desktop_geometry.h"
#include "modules/desktop_capture/linux/x11/x_error_trap.h"
#include "modules/desktop_capture/mouse_cursor.h"
#include "modules/desktop_capture/mouse_cursor_monitor.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
namespace {
Window GetTopLevelWindow(Display* display, Window window) { … }
}
namespace webrtc {
MouseCursorMonitorX11::MouseCursorMonitorX11(
const DesktopCaptureOptions& options,
Window window)
: … { … }
MouseCursorMonitorX11::~MouseCursorMonitorX11() { … }
void MouseCursorMonitorX11::Init(Callback* callback, Mode mode) { … }
void MouseCursorMonitorX11::Capture() { … }
bool MouseCursorMonitorX11::HandleXEvent(const XEvent& event) { … }
void MouseCursorMonitorX11::CaptureCursor() { … }
MouseCursorMonitor* MouseCursorMonitorX11::CreateForWindow(
const DesktopCaptureOptions& options,
WindowId window) { … }
MouseCursorMonitor* MouseCursorMonitorX11::CreateForScreen(
const DesktopCaptureOptions& options,
ScreenId screen) { … }
std::unique_ptr<MouseCursorMonitor> MouseCursorMonitorX11::Create(
const DesktopCaptureOptions& options) { … }
}