Changeset View
Changeset View
Standalone View
Standalone View
plugins/platforms/x11/windowed/x11windowed_output.cpp
Show First 20 Lines • Show All 41 Lines • ▼ Show 20 Line(s) | |||||
42 | X11WindowedOutput::~X11WindowedOutput() | 42 | X11WindowedOutput::~X11WindowedOutput() | ||
43 | { | 43 | { | ||
44 | xcb_unmap_window(m_backend->connection(), m_window); | 44 | xcb_unmap_window(m_backend->connection(), m_window); | ||
45 | xcb_destroy_window(m_backend->connection(), m_window); | 45 | xcb_destroy_window(m_backend->connection(), m_window); | ||
46 | delete m_winInfo; | 46 | delete m_winInfo; | ||
47 | xcb_flush(m_backend->connection()); | 47 | xcb_flush(m_backend->connection()); | ||
48 | } | 48 | } | ||
49 | 49 | | |||
50 | void X11WindowedOutput::init() | 50 | void X11WindowedOutput::init(const QPoint &logicalPosition, const QSize &pixelSize) | ||
51 | { | 51 | { | ||
52 | KWayland::Server::OutputDeviceInterface::Mode mode; | ||||
53 | mode.id = 0; | ||||
54 | mode.size = pixelSize; | ||||
55 | mode.flags = KWayland::Server::OutputDeviceInterface::ModeFlag::Current; | ||||
56 | mode.refreshRate = 60000; // TODO: get refresh rate via randr | ||||
57 | AbstractWaylandOutput::initWaylandOutputDevice("model_TODO", "manufacturer_TODO", | ||||
58 | "UUID_TODO", { mode }); | ||||
59 | | ||||
60 | setEnabled(true); | ||||
61 | setGeometry(logicalPosition, pixelSize); | ||||
62 | setScale(m_backend->initialOutputScale()); | ||||
63 | | ||||
52 | uint32_t mask = XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK; | 64 | uint32_t mask = XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK; | ||
53 | const uint32_t values[] = { | 65 | const uint32_t values[] = { | ||
54 | m_backend->screen()->black_pixel, | 66 | m_backend->screen()->black_pixel, | ||
55 | XCB_EVENT_MASK_KEY_PRESS | | 67 | XCB_EVENT_MASK_KEY_PRESS | | ||
56 | XCB_EVENT_MASK_KEY_RELEASE | | 68 | XCB_EVENT_MASK_KEY_RELEASE | | ||
57 | XCB_EVENT_MASK_BUTTON_PRESS | | 69 | XCB_EVENT_MASK_BUTTON_PRESS | | ||
58 | XCB_EVENT_MASK_BUTTON_RELEASE | | 70 | XCB_EVENT_MASK_BUTTON_RELEASE | | ||
59 | XCB_EVENT_MASK_POINTER_MOTION | | 71 | XCB_EVENT_MASK_POINTER_MOTION | | ||
60 | XCB_EVENT_MASK_ENTER_WINDOW | | 72 | XCB_EVENT_MASK_ENTER_WINDOW | | ||
61 | XCB_EVENT_MASK_LEAVE_WINDOW | | 73 | XCB_EVENT_MASK_LEAVE_WINDOW | | ||
62 | XCB_EVENT_MASK_STRUCTURE_NOTIFY | | 74 | XCB_EVENT_MASK_STRUCTURE_NOTIFY | | ||
63 | XCB_EVENT_MASK_EXPOSURE | 75 | XCB_EVENT_MASK_EXPOSURE | ||
64 | }; | 76 | }; | ||
65 | xcb_create_window(m_backend->connection(), | 77 | xcb_create_window(m_backend->connection(), | ||
66 | XCB_COPY_FROM_PARENT, | 78 | XCB_COPY_FROM_PARENT, | ||
67 | m_window, | 79 | m_window, | ||
68 | m_backend->screen()->root, | 80 | m_backend->screen()->root, | ||
69 | 0, 0, | 81 | 0, 0, | ||
70 | pixelSize().width(), pixelSize().height(), | 82 | pixelSize.width(), pixelSize.height(), | ||
71 | 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, XCB_COPY_FROM_PARENT, | 83 | 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, XCB_COPY_FROM_PARENT, | ||
72 | mask, values); | 84 | mask, values); | ||
73 | 85 | | |||
74 | // select xinput 2 events | 86 | // select xinput 2 events | ||
75 | initXInputForWindow(); | 87 | initXInputForWindow(); | ||
76 | 88 | | |||
77 | m_winInfo = new NETWinInfo(m_backend->connection(), | 89 | m_winInfo = new NETWinInfo(m_backend->connection(), | ||
78 | m_window, | 90 | m_window, | ||
▲ Show 20 Lines • Show All 78 Lines • Show Last 20 Lines |