wayland: Cleanup event source comments, headers, and error reporting

Replace instances of fprintf(stderr, ...) with SDL_SetError(), replace C++ comments with C style, use a uniform format for multi-line comments, and remove unused headers as poll and select aren't used in this file (the SDL function which calls them is used instead).
This commit is contained in:
Frank Praznik 2022-10-15 14:05:35 -04:00 committed by Sam Lantinga
parent 22461383c6
commit ed412c1385
1 changed files with 44 additions and 42 deletions

View File

@ -57,9 +57,7 @@
#define BTN_SIDE (0x113) #define BTN_SIDE (0x113)
#define BTN_EXTRA (0x114) #define BTN_EXTRA (0x114)
#endif #endif
#include <sys/select.h>
#include <sys/mman.h> #include <sys/mman.h>
#include <poll.h>
#include <unistd.h> #include <unistd.h>
#include <errno.h> #include <errno.h>
#include <xkbcommon/xkbcommon.h> #include <xkbcommon/xkbcommon.h>
@ -844,11 +842,11 @@ static const struct wl_pointer_listener pointer_listener = {
pointer_handle_motion, pointer_handle_motion,
pointer_handle_button, pointer_handle_button,
pointer_handle_axis, pointer_handle_axis,
pointer_handle_frame, // Version 5 pointer_handle_frame, /* Version 5 */
pointer_handle_axis_source, // Version 5 pointer_handle_axis_source, /* Version 5 */
pointer_handle_axis_stop, // Version 5 pointer_handle_axis_stop, /* Version 5 */
pointer_handle_axis_discrete, // Version 5 pointer_handle_axis_discrete, /* Version 5 */
pointer_handle_axis_value120 // Version 8 pointer_handle_axis_value120 /* Version 8 */
}; };
static void static void
@ -953,7 +951,7 @@ keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard,
close(fd); close(fd);
if (!input->xkb.keymap) { if (!input->xkb.keymap) {
fprintf(stderr, "failed to compile keymap\n"); SDL_SetError("failed to compile keymap\n");
return; return;
} }
@ -969,7 +967,7 @@ keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard,
input->xkb.state = WAYLAND_xkb_state_new(input->xkb.keymap); input->xkb.state = WAYLAND_xkb_state_new(input->xkb.keymap);
if (!input->xkb.state) { if (!input->xkb.state) {
fprintf(stderr, "failed to create XKB state\n"); SDL_SetError("failed to create XKB state\n");
WAYLAND_xkb_keymap_unref(input->xkb.keymap); WAYLAND_xkb_keymap_unref(input->xkb.keymap);
input->xkb.keymap = NULL; input->xkb.keymap = NULL;
return; return;
@ -997,7 +995,7 @@ keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard,
input->xkb.compose_state = WAYLAND_xkb_compose_state_new(input->xkb.compose_table, input->xkb.compose_state = WAYLAND_xkb_compose_state_new(input->xkb.compose_table,
XKB_COMPOSE_STATE_NO_FLAGS); XKB_COMPOSE_STATE_NO_FLAGS);
if (!input->xkb.compose_state) { if (!input->xkb.compose_state) {
fprintf(stderr, "could not create XKB compose state\n"); SDL_SetError("could not create XKB compose state\n");
WAYLAND_xkb_compose_table_unref(input->xkb.compose_table); WAYLAND_xkb_compose_table_unref(input->xkb.compose_table);
input->xkb.compose_table = NULL; input->xkb.compose_table = NULL;
} }
@ -1075,7 +1073,7 @@ keyboard_input_get_text(char text[8], const struct SDL_WaylandInput *input, uint
return SDL_FALSE; return SDL_FALSE;
} }
// TODO can this happen? /* TODO: Can this happen? */
if (WAYLAND_xkb_state_key_get_syms(input->xkb.state, key + 8, &syms) != 1) { if (WAYLAND_xkb_state_key_get_syms(input->xkb.state, key + 8, &syms) != 1) {
return SDL_FALSE; return SDL_FALSE;
} }
@ -1132,10 +1130,11 @@ keyboard_handle_key(void *data, struct wl_keyboard *keyboard,
has_text = keyboard_input_get_text(text, input, key, SDL_PRESSED, &handled_by_ime); has_text = keyboard_input_get_text(text, input, key, SDL_PRESSED, &handled_by_ime);
} else { } else {
if (keyboard_repeat_key_is_set(&input->keyboard_repeat, key)) { if (keyboard_repeat_key_is_set(&input->keyboard_repeat, key)) {
// Send any due key repeat events before stopping the repeat and generating the key up event /* Send any due key repeat events before stopping the repeat and generating the key up event.
// Compute time based on the Wayland time, as it reports when the release event happened * Compute time based on the Wayland time, as it reports when the release event happened.
// Using SDL_GetTicks would be wrong, as it would report when the release event is processed, * Using SDL_GetTicks would be wrong, as it would report when the release event is processed,
// which may be off if the application hasn't pumped events for a while * which may be off if the application hasn't pumped events for a while.
*/
keyboard_repeat_handle(&input->keyboard_repeat, time - input->keyboard_repeat.wl_press_time); keyboard_repeat_handle(&input->keyboard_repeat, time - input->keyboard_repeat.wl_press_time);
keyboard_repeat_clear(&input->keyboard_repeat); keyboard_repeat_clear(&input->keyboard_repeat);
} }
@ -1276,7 +1275,7 @@ static const struct wl_keyboard_listener keyboard_listener = {
keyboard_handle_leave, keyboard_handle_leave,
keyboard_handle_key, keyboard_handle_key,
keyboard_handle_modifiers, keyboard_handle_modifiers,
keyboard_handle_repeat_info, // Version 4 keyboard_handle_repeat_info, /* Version 4 */
}; };
static void static void
@ -1329,7 +1328,7 @@ seat_handle_name(void *data, struct wl_seat *wl_seat, const char *name)
static const struct wl_seat_listener seat_listener = { static const struct wl_seat_listener seat_listener = {
seat_handle_capabilities, seat_handle_capabilities,
seat_handle_name, // Version 2 seat_handle_name, /* Version 2 */
}; };
static void static void
@ -1371,9 +1370,9 @@ static const struct wl_data_source_listener data_source_listener = {
data_source_handle_target, data_source_handle_target,
data_source_handle_send, data_source_handle_send,
data_source_handle_cancelled, data_source_handle_cancelled,
data_source_handle_dnd_drop_performed, // Version 3 data_source_handle_dnd_drop_performed, /* Version 3 */
data_source_handle_dnd_finished, // Version 3 data_source_handle_dnd_finished, /* Version 3 */
data_source_handle_action, // Version 3 data_source_handle_action, /* Version 3 */
}; };
static void static void
@ -1488,8 +1487,8 @@ data_offer_handle_actions(void *data, struct wl_data_offer *wl_data_offer,
static const struct wl_data_offer_listener data_offer_listener = { static const struct wl_data_offer_listener data_offer_listener = {
data_offer_handle_offer, data_offer_handle_offer,
data_offer_handle_source_actions, // Version 3 data_offer_handle_source_actions, /* Version 3 */
data_offer_handle_actions, // Version 3 data_offer_handle_actions, /* Version 3 */
}; };
static void static void
@ -1574,19 +1573,19 @@ data_device_handle_motion(void *data, struct wl_data_device *wl_data_device,
} }
/* Decodes URI escape sequences in string buf of len bytes /* Decodes URI escape sequences in string buf of len bytes
(excluding the terminating NULL byte) in-place. Since * (excluding the terminating NULL byte) in-place. Since
URI-encoded characters take three times the space of * URI-encoded characters take three times the space of
normal characters, this should not be an issue. * normal characters, this should not be an issue.
*
Returns the number of decoded bytes that wound up in * Returns the number of decoded bytes that wound up in
the buffer, excluding the terminating NULL byte. * the buffer, excluding the terminating NULL byte.
*
The buffer is guaranteed to be NULL-terminated but * The buffer is guaranteed to be NULL-terminated but
may contain embedded NULL bytes. * may contain embedded NULL bytes.
*
On error, -1 is returned. * On error, -1 is returned.
*
FIXME: This was shamelessly copied from SDL_x11events.c * FIXME: This was shamelessly copied from SDL_x11events.c
*/ */
static int Wayland_URIDecode(char *buf, int len) { static int Wayland_URIDecode(char *buf, int len) {
int ri, wi, di; int ri, wi, di;
@ -1649,10 +1648,10 @@ static int Wayland_URIDecode(char *buf, int len) {
} }
/* Convert URI to local filename /* Convert URI to local filename
return filename if possible, else NULL * return filename if possible, else NULL
*
FIXME: This was shamelessly copied from SDL_x11events.c * FIXME: This was shamelessly copied from SDL_x11events.c
*/ */
static char* Wayland_URIToLocal(char* uri) { static char* Wayland_URIToLocal(char* uri) {
char *file = NULL; char *file = NULL;
SDL_bool local; SDL_bool local;
@ -2582,7 +2581,8 @@ int Wayland_input_lock_pointer(struct SDL_WaylandInput *input)
return -1; return -1;
/* If we have a pointer confine active, we must destroy it here because /* If we have a pointer confine active, we must destroy it here because
* creating a locked pointer otherwise would be a protocol error. */ * creating a locked pointer otherwise would be a protocol error.
*/
for (window = vd->windows; window; window = window->next) for (window = vd->windows; window; window = window->next)
pointer_confine_destroy(window); pointer_confine_destroy(window);
@ -2661,11 +2661,13 @@ int Wayland_input_confine_pointer(struct SDL_WaylandInput *input, SDL_Window *wi
return -1; return -1;
/* A confine may already be active, in which case we should destroy it and /* A confine may already be active, in which case we should destroy it and
* create a new one. */ * create a new one.
*/
pointer_confine_destroy(window); pointer_confine_destroy(window);
/* We cannot create a confine if the pointer is already locked. Defer until /* We cannot create a confine if the pointer is already locked. Defer until
* the pointer is unlocked. */ * the pointer is unlocked.
*/
if (d->relative_mouse_mode) if (d->relative_mouse_mode)
return 0; return 0;