Merge pull request #1461 from c-edw/feature/WLRToplevelAndPopup

Remove wlr_xdg_surface_send_close.
This commit is contained in:
emersion 2019-01-15 09:09:08 +01:00 committed by GitHub
commit dc9c91b0a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 20 deletions

View File

@ -296,9 +296,14 @@ uint32_t wlr_xdg_toplevel_set_tiled(struct wlr_xdg_surface *surface,
uint32_t tiled_edges);
/**
* Request that this xdg surface closes.
* Request that this xdg toplevel closes.
*/
void wlr_xdg_surface_send_close(struct wlr_xdg_surface *surface);
void wlr_xdg_toplevel_send_close(struct wlr_xdg_surface *surface);
/**
* Request that this xdg popup closes.
**/
void wlr_xdg_popup_destroy(struct wlr_xdg_surface *surface);
/**
* Get the geometry for this positioner based on the anchor rect, gravity, and

View File

@ -248,9 +248,9 @@ static void close(struct roots_view *view) {
struct wlr_xdg_surface *surface = view->xdg_surface;
struct wlr_xdg_popup *popup = NULL;
wl_list_for_each(popup, &surface->popups, link) {
wlr_xdg_surface_send_close(popup->base);
wlr_xdg_popup_destroy(popup->base);
}
wlr_xdg_surface_send_close(surface);
wlr_xdg_toplevel_send_close(surface);
}
static void destroy(struct roots_view *view) {

View File

@ -517,22 +517,16 @@ void wlr_xdg_surface_ping(struct wlr_xdg_surface *surface) {
surface->client->ping_serial);
}
void wlr_xdg_surface_send_close(struct wlr_xdg_surface *surface) {
switch (surface->role) {
case WLR_XDG_SURFACE_ROLE_NONE:
assert(0 && "not reached");
break;
case WLR_XDG_SURFACE_ROLE_TOPLEVEL:
if (surface->toplevel) {
xdg_toplevel_send_close(surface->toplevel->resource);
}
break;
case WLR_XDG_SURFACE_ROLE_POPUP:
if (surface->popup) {
xdg_popup_send_popup_done(surface->popup->resource);
}
break;
}
void wlr_xdg_toplevel_send_close(struct wlr_xdg_surface *surface) {
assert(surface->toplevel);
assert(surface->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL);
xdg_toplevel_send_close(surface->toplevel->resource);
}
void wlr_xdg_popup_destroy(struct wlr_xdg_surface *surface) {
assert(surface->popup);
assert(surface->role == WLR_XDG_SURFACE_ROLE_POPUP);
xdg_popup_send_popup_done(surface->popup->resource);
}
static void xdg_popup_get_position(struct wlr_xdg_popup *popup,