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); 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 * 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_surface *surface = view->xdg_surface;
struct wlr_xdg_popup *popup = NULL; struct wlr_xdg_popup *popup = NULL;
wl_list_for_each(popup, &surface->popups, link) { 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) { 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); surface->client->ping_serial);
} }
void wlr_xdg_surface_send_close(struct wlr_xdg_surface *surface) { void wlr_xdg_toplevel_send_close(struct wlr_xdg_surface *surface) {
switch (surface->role) { assert(surface->toplevel);
case WLR_XDG_SURFACE_ROLE_NONE: assert(surface->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL);
assert(0 && "not reached"); xdg_toplevel_send_close(surface->toplevel->resource);
break; }
case WLR_XDG_SURFACE_ROLE_TOPLEVEL:
if (surface->toplevel) { void wlr_xdg_popup_destroy(struct wlr_xdg_surface *surface) {
xdg_toplevel_send_close(surface->toplevel->resource); assert(surface->popup);
} assert(surface->role == WLR_XDG_SURFACE_ROLE_POPUP);
break; xdg_popup_send_popup_done(surface->popup->resource);
case WLR_XDG_SURFACE_ROLE_POPUP:
if (surface->popup) {
xdg_popup_send_popup_done(surface->popup->resource);
}
break;
}
} }
static void xdg_popup_get_position(struct wlr_xdg_popup *popup, static void xdg_popup_get_position(struct wlr_xdg_popup *popup,