mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-02-05 04:06:11 -05:00
Compare commits
6 commits
0.20.0-rc1
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
90f9f59041 | ||
|
|
7cb4e30bfd | ||
|
|
98196bbd89 | ||
|
|
4fe51aa439 | ||
|
|
12c9502edf | ||
|
|
7f87e258b2 |
5 changed files with 40 additions and 25 deletions
|
|
@ -49,30 +49,30 @@ struct wlr_cursor {
|
|||
* your responsibility.
|
||||
*/
|
||||
struct {
|
||||
struct wl_signal motion;
|
||||
struct wl_signal motion_absolute;
|
||||
struct wl_signal button;
|
||||
struct wl_signal axis;
|
||||
struct wl_signal motion; // struct wlr_pointer_motion_event
|
||||
struct wl_signal motion_absolute; // struct wlr_pointer_motion_absolute_event
|
||||
struct wl_signal button; // struct wlr_pointer_button_event
|
||||
struct wl_signal axis; // struct wlr_pointer_axis_event
|
||||
struct wl_signal frame;
|
||||
struct wl_signal swipe_begin;
|
||||
struct wl_signal swipe_update;
|
||||
struct wl_signal swipe_end;
|
||||
struct wl_signal pinch_begin;
|
||||
struct wl_signal pinch_update;
|
||||
struct wl_signal pinch_end;
|
||||
struct wl_signal hold_begin;
|
||||
struct wl_signal hold_end;
|
||||
struct wl_signal swipe_begin; // struct wlr_pointer_swipe_begin_event
|
||||
struct wl_signal swipe_update; // struct wlr_pointer_swipe_update_event
|
||||
struct wl_signal swipe_end; // struct wlr_pointer_swipe_end_event
|
||||
struct wl_signal pinch_begin; // struct wlr_pointer_pinch_begin_event
|
||||
struct wl_signal pinch_update; // struct wlr_pointer_pinch_update_event
|
||||
struct wl_signal pinch_end; // struct wlr_pointer_pinch_end_event
|
||||
struct wl_signal hold_begin; // struct wlr_pointer_hold_begin_event
|
||||
struct wl_signal hold_end; // struct wlr_pointer_hold_end_event
|
||||
|
||||
struct wl_signal touch_up;
|
||||
struct wl_signal touch_down;
|
||||
struct wl_signal touch_motion;
|
||||
struct wl_signal touch_cancel;
|
||||
struct wl_signal touch_up; // struct wlr_touch_up_event
|
||||
struct wl_signal touch_down; // struct wlr_touch_down_event
|
||||
struct wl_signal touch_motion; // struct wlr_touch_motion_event
|
||||
struct wl_signal touch_cancel; // struct wlr_touch_cancel_event
|
||||
struct wl_signal touch_frame;
|
||||
|
||||
struct wl_signal tablet_tool_axis;
|
||||
struct wl_signal tablet_tool_proximity;
|
||||
struct wl_signal tablet_tool_tip;
|
||||
struct wl_signal tablet_tool_button;
|
||||
struct wl_signal tablet_tool_axis; // struct wlr_tablet_tool_axis_event
|
||||
struct wl_signal tablet_tool_proximity; // struct wlr_tablet_tool_proximity_event
|
||||
struct wl_signal tablet_tool_tip; // struct wlr_tablet_tool_tip_event
|
||||
struct wl_signal tablet_tool_button; // struct wlr_tablet_tool_button_event
|
||||
} events;
|
||||
|
||||
void *data;
|
||||
|
|
|
|||
|
|
@ -167,10 +167,9 @@ bool wlr_drm_syncobj_timeline_check(struct wlr_drm_syncobj_timeline *timeline,
|
|||
etime = ETIME;
|
||||
#endif
|
||||
|
||||
uint32_t signaled_point;
|
||||
int ret = drmSyncobjTimelineWait(timeline->drm_fd, &timeline->handle, &point, 1, 0, flags, &signaled_point);
|
||||
int ret = drmSyncobjTimelineWait(timeline->drm_fd, &timeline->handle, &point, 1, 0, flags, NULL);
|
||||
if (ret != 0 && ret != -etime) {
|
||||
wlr_log_errno(WLR_ERROR, "drmSyncobjWait() failed");
|
||||
wlr_log_errno(WLR_ERROR, "drmSyncobjTimelineWait() failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -956,7 +956,7 @@ static void handle_tablet_tool_axis(struct wl_listener *listener, void *data) {
|
|||
|
||||
static void handle_tablet_tool_button(struct wl_listener *listener,
|
||||
void *data) {
|
||||
struct wlr_tablet_tool_button *event = data;
|
||||
struct wlr_tablet_tool_button_event *event = data;
|
||||
struct wlr_cursor_device *device;
|
||||
device = wl_container_of(listener, device, tablet_tool_button);
|
||||
wl_signal_emit_mutable(&device->cursor->events.tablet_tool_button, event);
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ void wlr_keyboard_group_remove_keyboard(struct wlr_keyboard_group *group,
|
|||
void wlr_keyboard_group_destroy(struct wlr_keyboard_group *group) {
|
||||
struct keyboard_group_device *device, *tmp_device;
|
||||
wl_list_for_each_safe(device, tmp_device, &group->devices, link) {
|
||||
wlr_keyboard_group_remove_keyboard(group, device->keyboard);
|
||||
remove_keyboard_group_device(device);
|
||||
}
|
||||
|
||||
// Now group->keys might not be empty if a wlr_keyboard has emitted
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include <assert.h>
|
||||
#include <drm_fourcc.h>
|
||||
#include <poll.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <wlr/types/wlr_buffer.h>
|
||||
|
|
@ -2881,5 +2882,20 @@ xcb_connection_t *wlr_xwayland_get_xwm_connection(
|
|||
}
|
||||
|
||||
void xwm_schedule_flush(struct wlr_xwm *xwm) {
|
||||
struct pollfd pollfd = {
|
||||
.fd = xcb_get_file_descriptor(xwm->xcb_conn),
|
||||
.events = POLLOUT,
|
||||
};
|
||||
if (poll(&pollfd, 1, 0) < 0) {
|
||||
wlr_log(WLR_ERROR, "poll() failed");
|
||||
return;
|
||||
}
|
||||
|
||||
// If we can write immediately, do so
|
||||
if (pollfd.revents & POLLOUT) {
|
||||
xcb_flush(xwm->xcb_conn);
|
||||
return;
|
||||
}
|
||||
|
||||
wl_event_source_fd_update(xwm->event_source, WL_EVENT_READABLE | WL_EVENT_WRITABLE);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue