};
static void
-weston_desktop_xdg_surface_schedule_configure(struct weston_desktop_xdg_surface *surface,
- bool force);
+weston_desktop_xdg_surface_schedule_configure(struct weston_desktop_xdg_surface *surface);
static void
weston_desktop_xdg_toplevel_ensure_added(struct weston_desktop_xdg_toplevel *toplevel)
weston_desktop_api_surface_added(toplevel->base.desktop,
toplevel->base.desktop_surface);
- weston_desktop_xdg_surface_schedule_configure(&toplevel->base, true);
+ weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
toplevel->added = true;
}
struct weston_desktop_xdg_toplevel *toplevel = user_data;
toplevel->pending.state.maximized = maximized;
- weston_desktop_xdg_surface_schedule_configure(&toplevel->base, false);
+ weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
}
static void
struct weston_desktop_xdg_toplevel *toplevel = user_data;
toplevel->pending.state.fullscreen = fullscreen;
- weston_desktop_xdg_surface_schedule_configure(&toplevel->base, false);
+ weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
}
static void
struct weston_desktop_xdg_toplevel *toplevel = user_data;
toplevel->pending.state.resizing = resizing;
- weston_desktop_xdg_surface_schedule_configure(&toplevel->base, false);
+ weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
}
static void
struct weston_desktop_xdg_toplevel *toplevel = user_data;
toplevel->pending.state.activated = activated;
- weston_desktop_xdg_surface_schedule_configure(&toplevel->base, false);
+ weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
}
static void
toplevel->pending.size.width = width;
toplevel->pending.size.height = height;
- weston_desktop_xdg_surface_schedule_configure(&toplevel->base, false);
+ weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
}
static void
weston_desktop_xdg_popup_committed(struct weston_desktop_xdg_popup *popup)
{
if (!popup->committed)
- weston_desktop_xdg_surface_schedule_configure(&popup->base, true);
+ weston_desktop_xdg_surface_schedule_configure(&popup->base);
popup->committed = true;
weston_desktop_xdg_popup_update_position(popup->base.desktop_surface,
popup);
static bool
weston_desktop_xdg_toplevel_state_compare(struct weston_desktop_xdg_toplevel *toplevel)
{
+ if (!toplevel->base.configured)
+ return false;
+
if (toplevel->pending.state.activated != toplevel->current.state.activated)
return false;
if (toplevel->pending.state.fullscreen != toplevel->current.state.fullscreen)
}
static void
-weston_desktop_xdg_surface_schedule_configure(struct weston_desktop_xdg_surface *surface,
- bool force)
+weston_desktop_xdg_surface_schedule_configure(struct weston_desktop_xdg_surface *surface)
{
struct wl_display *display = weston_desktop_get_display(surface->desktop);
struct wl_event_loop *loop = wl_display_get_event_loop(display);
- bool pending_same = !force;
+ bool pending_same = false;
switch (surface->role) {
case WESTON_DESKTOP_XDG_SURFACE_ROLE_NONE:
assert(0 && "not reached");
break;
case WESTON_DESKTOP_XDG_SURFACE_ROLE_TOPLEVEL:
- pending_same = pending_same &&
- weston_desktop_xdg_toplevel_state_compare((struct weston_desktop_xdg_toplevel *) surface);
+ pending_same = weston_desktop_xdg_toplevel_state_compare((struct weston_desktop_xdg_toplevel *) surface);
break;
case WESTON_DESKTOP_XDG_SURFACE_ROLE_POPUP:
break;