input: don't crash on mouse motion events on the render timer surface

This commit is contained in:
Daniel Eklöf 2020-08-14 07:35:01 +02:00
parent 823a7c0318
commit 44557dc7cf
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 8 additions and 1 deletions

View file

@ -1072,6 +1072,7 @@ wl_pointer_enter(void *data, struct wl_pointer *wl_pointer,
case TERM_SURF_SEARCH: case TERM_SURF_SEARCH:
case TERM_SURF_SCROLLBACK_INDICATOR: case TERM_SURF_SCROLLBACK_INDICATOR:
case TERM_SURF_RENDER_TIMER:
case TERM_SURF_TITLE: case TERM_SURF_TITLE:
render_xcursor_set(seat, term, XCURSOR_LEFT_PTR); render_xcursor_set(seat, term, XCURSOR_LEFT_PTR);
break; break;
@ -1151,6 +1152,7 @@ wl_pointer_leave(void *data, struct wl_pointer *wl_pointer,
case TERM_SURF_GRID: case TERM_SURF_GRID:
case TERM_SURF_SEARCH: case TERM_SURF_SEARCH:
case TERM_SURF_SCROLLBACK_INDICATOR: case TERM_SURF_SCROLLBACK_INDICATOR:
case TERM_SURF_RENDER_TIMER:
case TERM_SURF_TITLE: case TERM_SURF_TITLE:
case TERM_SURF_BORDER_LEFT: case TERM_SURF_BORDER_LEFT:
case TERM_SURF_BORDER_RIGHT: case TERM_SURF_BORDER_RIGHT:
@ -1187,6 +1189,7 @@ wl_pointer_motion(void *data, struct wl_pointer *wl_pointer,
case TERM_SURF_NONE: case TERM_SURF_NONE:
case TERM_SURF_SEARCH: case TERM_SURF_SEARCH:
case TERM_SURF_SCROLLBACK_INDICATOR: case TERM_SURF_SCROLLBACK_INDICATOR:
case TERM_SURF_RENDER_TIMER:
case TERM_SURF_BUTTON_MINIMIZE: case TERM_SURF_BUTTON_MINIMIZE:
case TERM_SURF_BUTTON_MAXIMIZE: case TERM_SURF_BUTTON_MAXIMIZE:
case TERM_SURF_BUTTON_CLOSE: case TERM_SURF_BUTTON_CLOSE:
@ -1433,6 +1436,7 @@ wl_pointer_button(void *data, struct wl_pointer *wl_pointer,
case TERM_SURF_SEARCH: case TERM_SURF_SEARCH:
case TERM_SURF_SCROLLBACK_INDICATOR: case TERM_SURF_SCROLLBACK_INDICATOR:
case TERM_SURF_RENDER_TIMER:
break; break;
case TERM_SURF_GRID: { case TERM_SURF_GRID: {

View file

@ -2412,12 +2412,14 @@ term_print(struct terminal *term, wchar_t wc, int width)
enum term_surface enum term_surface
term_surface_kind(const struct terminal *term, const struct wl_surface *surface) term_surface_kind(const struct terminal *term, const struct wl_surface *surface)
{ {
if (surface == term->window->surface) if (likely(surface == term->window->surface))
return TERM_SURF_GRID; return TERM_SURF_GRID;
else if (surface == term->window->search_surface) else if (surface == term->window->search_surface)
return TERM_SURF_SEARCH; return TERM_SURF_SEARCH;
else if (surface == term->window->scrollback_indicator_surface) else if (surface == term->window->scrollback_indicator_surface)
return TERM_SURF_SCROLLBACK_INDICATOR; return TERM_SURF_SCROLLBACK_INDICATOR;
else if (surface == term->window->render_timer_surface)
return TERM_SURF_RENDER_TIMER;
else if (surface == term->window->csd.surface[CSD_SURF_TITLE]) else if (surface == term->window->csd.surface[CSD_SURF_TITLE])
return TERM_SURF_TITLE; return TERM_SURF_TITLE;
else if (surface == term->window->csd.surface[CSD_SURF_LEFT]) else if (surface == term->window->csd.surface[CSD_SURF_LEFT])

View file

@ -194,6 +194,7 @@ enum term_surface {
TERM_SURF_GRID, TERM_SURF_GRID,
TERM_SURF_SEARCH, TERM_SURF_SEARCH,
TERM_SURF_SCROLLBACK_INDICATOR, TERM_SURF_SCROLLBACK_INDICATOR,
TERM_SURF_RENDER_TIMER,
TERM_SURF_TITLE, TERM_SURF_TITLE,
TERM_SURF_BORDER_LEFT, TERM_SURF_BORDER_LEFT,
TERM_SURF_BORDER_RIGHT, TERM_SURF_BORDER_RIGHT,