Ignore surface.map_toplevel() if already mapped

dev
Kristian Høgsberg 14 years ago
parent 175e6cec39
commit 8f66a57b4d
  1. 5
      compositor/compositor.c
  2. 1
      compositor/compositor.h

@ -130,6 +130,7 @@ wlsc_surface_create(struct wlsc_compositor *compositor,
wl_list_init(&surface->surface.destroy_listener_list); wl_list_init(&surface->surface.destroy_listener_list);
wl_list_init(&surface->link); wl_list_init(&surface->link);
surface->mapped = 0;
glGenTextures(1, &surface->texture); glGenTextures(1, &surface->texture);
glBindTexture(GL_TEXTURE_2D, surface->texture); glBindTexture(GL_TEXTURE_2D, surface->texture);
@ -440,12 +441,16 @@ surface_map_toplevel(struct wl_client *client,
{ {
struct wlsc_surface *es = (struct wlsc_surface *) surface; struct wlsc_surface *es = (struct wlsc_surface *) surface;
if (es->mapped)
return;
es->x = 10 + random() % 400; es->x = 10 + random() % 400;
es->y = 10 + random() % 400; es->y = 10 + random() % 400;
wlsc_surface_update_matrix(es); wlsc_surface_update_matrix(es);
wl_list_insert(es->compositor->surface_list.prev, &es->link); wl_list_insert(es->compositor->surface_list.prev, &es->link);
wlsc_compositor_schedule_repaint(es->compositor); wlsc_compositor_schedule_repaint(es->compositor);
es->mapped = 1;
} }
static void static void

@ -146,6 +146,7 @@ struct wlsc_surface {
struct wlsc_matrix matrix_inv; struct wlsc_matrix matrix_inv;
struct wl_visual *visual; struct wl_visual *visual;
struct wl_buffer *buffer; struct wl_buffer *buffer;
int mapped;
}; };
void void

Loading…
Cancel
Save