shell: Start the input panel slide slightly on the output

If a surface is not on any output, scheduling a repaint for it is a no-op.
weston_view_schedule_repaint() schedules repaints for all outputs that
overlap with the surface extents, but if the surface is completely
outside all outputs nothing will be scheduled.  Fix this for now by starting
the slide slightly into the output.
dev
Kristian Høgsberg 11 years ago
parent 2eebcd34fc
commit 0e45e8712a
  1. 4
      desktop-shell/input-panel.c

@ -75,7 +75,7 @@ show_input_panels(struct wl_listener *listener, void *data)
weston_view_geometry_dirty(ipsurf->view); weston_view_geometry_dirty(ipsurf->view);
weston_view_update_transform(ipsurf->view); weston_view_update_transform(ipsurf->view);
weston_surface_damage(ipsurf->surface); weston_surface_damage(ipsurf->surface);
weston_slide_run(ipsurf->view, ipsurf->surface->height, weston_slide_run(ipsurf->view, ipsurf->surface->height * 0.9,
0, NULL, NULL); 0, NULL, NULL);
} }
} }
@ -138,7 +138,7 @@ input_panel_configure(struct weston_surface *surface, int32_t sx, int32_t sy)
&ip_surface->view->layer_link); &ip_surface->view->layer_link);
weston_view_update_transform(ip_surface->view); weston_view_update_transform(ip_surface->view);
weston_surface_damage(surface); weston_surface_damage(surface);
weston_slide_run(ip_surface->view, ip_surface->view->surface->height, 0, NULL, NULL); weston_slide_run(ip_surface->view, ip_surface->view->surface->height * 0.9, 0, NULL, NULL);
} }
} }

Loading…
Cancel
Save