diff options
author | emersion <contact@emersion.fr> | 2017-10-31 10:54:05 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2017-10-31 12:30:57 +0100 |
commit | ae9a46fc9bc81051ef732a178b47017d8c2e591f (patch) | |
tree | b5f4cbb31d0bb35608d6e084fa728059ce3f7349 | |
parent | 6a74a3586fba7b8c3592d2a94d6b06190c3165b1 (diff) |
Remove outdated TODOs, use wlr_surface_has_buffer
-rw-r--r-- | examples/multi-pointer.c | 2 | ||||
-rw-r--r-- | examples/pointer.c | 2 | ||||
-rw-r--r-- | rootston/output.c | 2 | ||||
-rw-r--r-- | types/wlr_output.c | 8 |
4 files changed, 5 insertions, 9 deletions
diff --git a/examples/multi-pointer.c b/examples/multi-pointer.c index 3cfa3910..e1ac2734 100644 --- a/examples/multi-pointer.c +++ b/examples/multi-pointer.c @@ -84,8 +84,6 @@ static void handle_output_add(struct output_state *ostate) { example_config_configure_cursor(sample->config, cursor->cursor, sample->compositor); - // TODO the cursor must be set depending on which surface it is - // displayed over which should happen in the compositor. struct wlr_xcursor_image *image = sample->xcursor->images[0]; wlr_cursor_set_image(cursor->cursor, image->buffer, image->width, image->width, image->height, image->hotspot_x, image->hotspot_y); diff --git a/examples/pointer.c b/examples/pointer.c index 83122421..8927314e 100644 --- a/examples/pointer.c +++ b/examples/pointer.c @@ -108,8 +108,6 @@ static void handle_output_add(struct output_state *ostate) { example_config_configure_cursor(sample->config, sample->cursor, sample->compositor); - // TODO the cursor must be set depending on which surface it is displayed - // over which should happen in the compositor. struct wlr_xcursor_image *image = sample->xcursor->images[0]; wlr_cursor_set_image(sample->cursor, image->buffer, image->width, image->width, image->height, image->hotspot_x, image->hotspot_y); diff --git a/rootston/output.c b/rootston/output.c index 6ca302d8..9e1cd4d5 100644 --- a/rootston/output.c +++ b/rootston/output.c @@ -223,8 +223,6 @@ void output_add_notify(struct wl_listener *listener, void *data) { cursor_load_config(config, input->cursor, input, desktop); - // TODO the cursor must be set depending on which surface it is displayed - // over which should happen in the compositor. struct wlr_xcursor *xcursor = get_default_xcursor(input->xcursor_theme); struct wlr_xcursor_image *image = xcursor->images[0]; wlr_cursor_set_image(input->cursor, image->buffer, image->width, diff --git a/types/wlr_output.c b/types/wlr_output.c index 3cdeecfe..3804f2e3 100644 --- a/types/wlr_output.c +++ b/types/wlr_output.c @@ -241,13 +241,15 @@ static void output_cursor_render(struct wlr_output_cursor *cursor) { struct wlr_texture *texture = cursor->texture; struct wlr_renderer *renderer = cursor->renderer; if (cursor->surface != NULL) { + // Some clients commit a cursor surface with a NULL buffer to hide it. + if (!wlr_surface_has_buffer(cursor->surface)) { + return; + } texture = cursor->surface->texture; renderer = cursor->surface->renderer; } - // We check texture->valid because some clients set a cursor surface - // with a NULL buffer to hide it - if (renderer && texture && texture->valid) { + if (texture != NULL && renderer != NULL) { glViewport(0, 0, cursor->output->width, cursor->output->height); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |