aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/wlr/xwayland.h14
-rw-r--r--render/gles2/renderer.c4
-rw-r--r--rootston/desktop.c8
-rw-r--r--types/wlr_layer_shell.c5
-rw-r--r--xwayland/xwm.c1
5 files changed, 19 insertions, 13 deletions
diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h
index 1ee310ea..9b9d9cf9 100644
--- a/include/wlr/xwayland.h
+++ b/include/wlr/xwayland.h
@@ -166,21 +166,23 @@ void wlr_xwayland_set_cursor(struct wlr_xwayland *wlr_xwayland,
int32_t hotspot_x, int32_t hotspot_y);
void wlr_xwayland_surface_activate(struct wlr_xwayland_surface *surface,
- bool activated);
+ bool activated);
void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *surface,
- int16_t x, int16_t y, uint16_t width, uint16_t height);
+ int16_t x, int16_t y, uint16_t width, uint16_t height);
void wlr_xwayland_surface_close(struct wlr_xwayland_surface *surface);
void wlr_xwayland_surface_set_maximized(struct wlr_xwayland_surface *surface,
- bool maximized);
+ bool maximized);
void wlr_xwayland_surface_set_fullscreen(struct wlr_xwayland_surface *surface,
- bool fullscreen);
+ bool fullscreen);
void wlr_xwayland_set_seat(struct wlr_xwayland *xwayland,
- struct wlr_seat *seat);
+ struct wlr_seat *seat);
+
+bool wlr_xwayland_surface_is_unmanaged(
+ const struct wlr_xwayland_surface *surface);
-bool wlr_xwayland_surface_is_unmanaged(const struct wlr_xwayland_surface *surface);
#endif
diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c
index 8f3ce7f7..c8094847 100644
--- a/render/gles2/renderer.c
+++ b/render/gles2/renderer.c
@@ -322,11 +322,11 @@ static log_importance_t gles2_log_importance_to_wlr(GLenum type) {
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR: return L_ERROR;
case GL_DEBUG_TYPE_PORTABILITY_KHR: return L_DEBUG;
case GL_DEBUG_TYPE_PERFORMANCE_KHR: return L_DEBUG;
- case GL_DEBUG_TYPE_OTHER_KHR: return L_INFO;
+ case GL_DEBUG_TYPE_OTHER_KHR: return L_DEBUG;
case GL_DEBUG_TYPE_MARKER_KHR: return L_DEBUG;
case GL_DEBUG_TYPE_PUSH_GROUP_KHR: return L_DEBUG;
case GL_DEBUG_TYPE_POP_GROUP_KHR: return L_DEBUG;
- default: return L_INFO;
+ default: return L_DEBUG;
}
}
diff --git a/rootston/desktop.c b/rootston/desktop.c
index 1d2e9549..ab16ed3d 100644
--- a/rootston/desktop.c
+++ b/rootston/desktop.c
@@ -682,9 +682,11 @@ struct wlr_surface *desktop_surface_at(struct roots_desktop *desktop,
struct wlr_surface *surface = NULL;
struct wlr_output *wlr_output =
wlr_output_layout_output_at(desktop->layout, lx, ly);
- struct roots_output *roots_output;
+ struct roots_output *roots_output = NULL;
double ox = lx, oy = ly;
- *view = NULL;
+ if (view) {
+ *view = NULL;
+ }
if (wlr_output) {
roots_output = wlr_output->data;
@@ -834,7 +836,7 @@ struct roots_desktop *desktop_create(struct roots_server *server,
if (xcursor != NULL) {
struct wlr_xcursor_image *image = xcursor->images[0];
wlr_xwayland_set_cursor(desktop->xwayland, image->buffer,
- image->width, image->width, image->height, image->hotspot_x,
+ image->width * 4, image->width, image->height, image->hotspot_x,
image->hotspot_y);
}
}
diff --git a/types/wlr_layer_shell.c b/types/wlr_layer_shell.c
index cbf21f4a..b81fb4c6 100644
--- a/types/wlr_layer_shell.c
+++ b/types/wlr_layer_shell.c
@@ -353,10 +353,13 @@ static const struct zwlr_layer_shell_v1_interface layer_shell_implementation = {
};
static void client_handle_destroy(struct wl_resource *resource) {
+ struct wl_client *client = wl_resource_get_client(resource);
struct wlr_layer_shell *shell = layer_shell_from_resource(resource);
struct wlr_layer_surface *surface, *tmp = NULL;
wl_list_for_each_safe(surface, tmp, &shell->surfaces, link) {
- layer_surface_destroy(surface);
+ if (wl_resource_get_client(surface->resource) == client) {
+ layer_surface_destroy(surface);
+ }
}
wl_list_remove(wl_resource_get_link(resource));
}
diff --git a/xwayland/xwm.c b/xwayland/xwm.c
index 2743cc53..6702c3c9 100644
--- a/xwayland/xwm.c
+++ b/xwayland/xwm.c
@@ -1378,7 +1378,6 @@ void xwm_set_cursor(struct wlr_xwm *xwm, const uint8_t *pixels, uint32_t stride,
xcb_free_cursor(xwm->xcb_conn, xwm->cursor);
}
- stride *= 4;
int depth = 32;
xcb_pixmap_t pix = xcb_generate_id(xwm->xcb_conn);