|
|
@ -605,6 +605,8 @@ static void xdg_surface_handle_get_popup(struct wl_client *client,
|
|
|
|
// positioner properties
|
|
|
|
// positioner properties
|
|
|
|
memcpy(&surface->popup->positioner, &positioner->attrs,
|
|
|
|
memcpy(&surface->popup->positioner, &positioner->attrs,
|
|
|
|
sizeof(struct wlr_xdg_positioner));
|
|
|
|
sizeof(struct wlr_xdg_positioner));
|
|
|
|
|
|
|
|
surface->popup->geometry =
|
|
|
|
|
|
|
|
wlr_xdg_positioner_get_geometry(&positioner->attrs);
|
|
|
|
|
|
|
|
|
|
|
|
wl_resource_set_implementation(surface->popup->resource,
|
|
|
|
wl_resource_set_implementation(surface->popup->resource,
|
|
|
|
&xdg_popup_implementation, surface,
|
|
|
|
&xdg_popup_implementation, surface,
|
|
|
@ -612,8 +614,6 @@ static void xdg_surface_handle_get_popup(struct wl_client *client,
|
|
|
|
|
|
|
|
|
|
|
|
if (parent) {
|
|
|
|
if (parent) {
|
|
|
|
surface->popup->parent = parent->surface;
|
|
|
|
surface->popup->parent = parent->surface;
|
|
|
|
surface->popup->geometry =
|
|
|
|
|
|
|
|
wlr_xdg_positioner_get_geometry(&positioner->attrs);
|
|
|
|
|
|
|
|
wl_list_insert(&parent->popups, &surface->popup->link);
|
|
|
|
wl_list_insert(&parent->popups, &surface->popup->link);
|
|
|
|
wlr_signal_emit_safe(&parent->events.new_popup, surface->popup);
|
|
|
|
wlr_signal_emit_safe(&parent->events.new_popup, surface->popup);
|
|
|
|
}
|
|
|
|
}
|
|
|
|