wayland: remove all usages of wayl_terminal_from_surface()

Use the 'user data' pointer from the wayland surface instead.
This commit is contained in:
Daniel Eklöf 2020-02-29 12:13:58 +01:00
parent 43c0551806
commit c917a74f48
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 6 additions and 19 deletions

View file

@ -88,9 +88,11 @@ keyboard_enter(void *data, struct wl_keyboard *wl_keyboard, uint32_t serial,
assert(surface != NULL);
struct wayland *wayl = data;
struct wl_window *win = wl_surface_get_user_data(surface);
struct terminal *term = win->term;
wayl->kbd_focus = term;
wayl->input_serial = serial;
wayl->kbd_focus = wayl_terminal_from_surface(wayl, surface);
assert(wayl->kbd_focus != NULL);
term_kbd_focus_in(wayl->kbd_focus);
term_xcursor_update(wayl->kbd_focus);
@ -147,7 +149,8 @@ keyboard_leave(void *data, struct wl_keyboard *wl_keyboard, uint32_t serial,
assert(
wayl->kbd_focus == NULL ||
surface == NULL || /* Seen on Sway 1.2 */
wayl_terminal_from_surface(wayl, surface) == wayl->kbd_focus);
((const struct wl_window *)wl_surface_get_user_data(surface))->term == wayl->kbd_focus
);
struct terminal *old_focused = wayl->kbd_focus;
wayl->kbd_focus = NULL;

View file

@ -1150,19 +1150,6 @@ wayl_reload_cursor_theme(struct wayland *wayl, struct terminal *term)
return render_xcursor_set(term);
}
struct terminal *
wayl_terminal_from_surface(struct wayland *wayl, struct wl_surface *surface)
{
tll_foreach(wayl->terms, it) {
if (term_surface_kind(it->item, surface) != TERM_SURF_NONE)
return it->item;
}
assert(false);
LOG_WARN("surface %p doesn't map to a terminal", surface);
return NULL;
}
void
wayl_flush(struct wayland *wayl)
{

View file

@ -205,8 +205,5 @@ void wayl_destroy(struct wayland *wayl);
void wayl_flush(struct wayland *wayl);
void wayl_roundtrip(struct wayland *wayl);
struct terminal *wayl_terminal_from_surface(
struct wayland *wayl, struct wl_surface *surface);
struct wl_window *wayl_win_init(struct terminal *term);
void wayl_win_destroy(struct wl_window *win);