fix: xdg surface handle pending configure + dont update usable area when new layer surface firt create
This commit is contained in:
21
view.c
21
view.c
@ -26,10 +26,9 @@ static int handle_configure_timeout(void *data)
|
||||
return 0; /* ignored per wl_event_loop docs */
|
||||
}
|
||||
|
||||
static void diyac_view_configure(struct diyac_view *view, struct wlr_box geo)
|
||||
void diya_view_set_pending_configure_serial(struct diyac_view* view, uint32_t serial)
|
||||
{
|
||||
view->pending_size = geo;
|
||||
view->configuration_serial = wlr_xdg_toplevel_set_size(view->xdg_toplevel, geo.width, geo.height);
|
||||
view->configuration_serial = serial;
|
||||
if (!view->configuration_timeout)
|
||||
{
|
||||
view->configuration_timeout = wl_event_loop_add_timer(view->server->wl_event_loop, handle_configure_timeout, view);
|
||||
@ -37,10 +36,24 @@ static void diyac_view_configure(struct diyac_view *view, struct wlr_box geo)
|
||||
wl_event_source_timer_update(view->configuration_timeout, CONFIGURE_TIMEOUT_MS);
|
||||
}
|
||||
|
||||
static void diyac_view_configure(struct diyac_view *view, struct wlr_box geo)
|
||||
{
|
||||
view->pending_size = geo;
|
||||
uint32_t serial = wlr_xdg_toplevel_set_size(view->xdg_toplevel, geo.width, geo.height);
|
||||
if(serial > 0)
|
||||
{
|
||||
diya_view_set_pending_configure_serial(view, serial);
|
||||
}
|
||||
}
|
||||
|
||||
static void diyac_view_set_activated(struct diyac_view *view, bool activated)
|
||||
{
|
||||
struct diyac_server *server = view->server;
|
||||
wlr_xdg_toplevel_set_activated(view->xdg_toplevel, activated);
|
||||
uint32_t serial = wlr_xdg_toplevel_set_activated(view->xdg_toplevel, activated);
|
||||
if(serial > 0)
|
||||
{
|
||||
diya_view_set_pending_configure_serial(view, serial);
|
||||
}
|
||||
if (view->toplevel.handle)
|
||||
{
|
||||
wlr_foreign_toplevel_handle_v1_set_activated(view->toplevel.handle, activated);
|
||||
|
Reference in New Issue
Block a user