mirror of
https://gitlab.freedesktop.org/wayland/weston
synced 2024-10-15 22:27:18 +00:00
Revert "compositor: Add internal support to track idle inhibition requests"
This reverts commit f8300c87d5
.
(Accidental landing)
This commit is contained in:
parent
873a3f8c4c
commit
08976ac7bf
|
@ -485,8 +485,6 @@ weston_surface_create(struct weston_compositor *compositor)
|
|||
|
||||
wl_list_init(&surface->pointer_constraints);
|
||||
|
||||
surface->inhibit_idling = false;
|
||||
|
||||
return surface;
|
||||
}
|
||||
|
||||
|
@ -2322,42 +2320,15 @@ weston_output_schedule_repaint_reset(struct weston_output *output)
|
|||
TL_POINT("core_repaint_exit_loop", TLP_OUTPUT(output), TLP_END);
|
||||
}
|
||||
|
||||
/** Retrieves a mask of outputs that should inhibit screensaving
|
||||
*
|
||||
* \param compositor The compositor instance.
|
||||
* \return An output mask indicating the ids of all inhibiting outputs
|
||||
*
|
||||
* Checks for surfaces whose clients have requested that they
|
||||
* disable the screenserver and display powersaving. Note
|
||||
* the output ids for these surfaces.
|
||||
*/
|
||||
WL_EXPORT uint32_t
|
||||
weston_compositor_inhibited_outputs(struct weston_compositor *compositor)
|
||||
{
|
||||
struct weston_view *view;
|
||||
uint32_t inhibited_outputs_mask = 0;
|
||||
|
||||
wl_list_for_each(view, &compositor->view_list, link) {
|
||||
/* Does the view's surface inhibit this output? */
|
||||
if (!view->surface->inhibit_idling)
|
||||
continue;
|
||||
|
||||
inhibited_outputs_mask |= view->output_mask;
|
||||
}
|
||||
return inhibited_outputs_mask;
|
||||
}
|
||||
|
||||
static int
|
||||
output_repaint_timer_handler(void *data)
|
||||
{
|
||||
struct weston_output *output = data;
|
||||
struct weston_compositor *compositor = output->compositor;
|
||||
uint32_t inhibited_outputs_mask = weston_compositor_inhibited_outputs(compositor);
|
||||
|
||||
if (output->repaint_needed &&
|
||||
compositor->state != WESTON_COMPOSITOR_SLEEPING &&
|
||||
compositor->state != WESTON_COMPOSITOR_OFFSCREEN &&
|
||||
(compositor->state != WESTON_COMPOSITOR_SLEEPING
|
||||
|| inhibited_outputs_mask & (1 << output->id)) &&
|
||||
weston_output_repaint(output) == 0)
|
||||
return 0;
|
||||
|
||||
|
@ -2479,15 +2450,9 @@ weston_output_schedule_repaint(struct weston_output *output)
|
|||
{
|
||||
struct weston_compositor *compositor = output->compositor;
|
||||
struct wl_event_loop *loop;
|
||||
uint32_t inhibited_outputs_mask = weston_compositor_inhibited_outputs(compositor);
|
||||
|
||||
/* If we're offscreen, or if we're sleeping and the monitor
|
||||
* isn't currently being inhibited by an active surface, then
|
||||
* skip repainting.
|
||||
*/
|
||||
if (compositor->state == WESTON_COMPOSITOR_OFFSCREEN ||
|
||||
(compositor->state == WESTON_COMPOSITOR_SLEEPING &&
|
||||
!(inhibited_outputs_mask & (1 << output->id))))
|
||||
if (compositor->state == WESTON_COMPOSITOR_SLEEPING ||
|
||||
compositor->state == WESTON_COMPOSITOR_OFFSCREEN)
|
||||
return;
|
||||
|
||||
if (!output->repaint_needed)
|
||||
|
@ -3937,19 +3902,10 @@ weston_compositor_dpms(struct weston_compositor *compositor,
|
|||
enum dpms_enum state)
|
||||
{
|
||||
struct weston_output *output;
|
||||
uint32_t inhibited_outputs_mask = weston_compositor_inhibited_outputs(compositor);
|
||||
|
||||
wl_list_for_each(output, &compositor->output_list, link) {
|
||||
if (!output->set_dpms)
|
||||
continue;
|
||||
|
||||
/* If output is idle-inhibited, don't toggle to any DPMS state except ON. */
|
||||
if (state != WESTON_DPMS_ON &&
|
||||
inhibited_outputs_mask & (1 << output->id))
|
||||
continue;
|
||||
|
||||
output->set_dpms(output, state);
|
||||
}
|
||||
wl_list_for_each(output, &compositor->output_list, link)
|
||||
if (output->set_dpms)
|
||||
output->set_dpms(output, state);
|
||||
}
|
||||
|
||||
/** Restores the compositor to active status
|
||||
|
|
|
@ -1155,14 +1155,6 @@ struct weston_surface {
|
|||
|
||||
/* An list of per seat pointer constraints. */
|
||||
struct wl_list pointer_constraints;
|
||||
|
||||
/*
|
||||
* Indicates the surface prefers no screenblanking, screensaving,
|
||||
* or other automatic obscurement to kick in while the surface is
|
||||
* considered "active" by the shell.
|
||||
*/
|
||||
bool inhibit_idling;
|
||||
|
||||
};
|
||||
|
||||
struct weston_subsurface {
|
||||
|
@ -1339,8 +1331,6 @@ void
|
|||
weston_output_schedule_repaint(struct weston_output *output);
|
||||
void
|
||||
weston_output_damage(struct weston_output *output);
|
||||
uint32_t
|
||||
weston_compositor_inhibited_outputs(struct weston_compositor *compositor);
|
||||
void
|
||||
weston_compositor_schedule_repaint(struct weston_compositor *compositor);
|
||||
void
|
||||
|
|
Loading…
Reference in a new issue