-/** Handle an expose event.
- * @param event Event from GTK.
- */
-bool
-EditorSummary::on_expose_event (GdkEventExpose* event)
-{
- CairoWidget::on_expose_event (event);
-
- if (_session == 0) {
- return false;
- }
-
- cairo_t* cr = gdk_cairo_create (get_window()->gobj());
-
- /* Render the view rectangle. If there is an editor visual pending, don't update
- the view rectangle now --- wait until the expose event that we'll get after
- the visual change. This prevents a flicker.
- */
-
- if (_editor->pending_visual_change.idle_handler_id < 0) {
- get_editor (&_view_rectangle_x, &_view_rectangle_y);
- }
-
- cairo_move_to (cr, _view_rectangle_x.first, _view_rectangle_y.first);
- cairo_line_to (cr, _view_rectangle_x.second, _view_rectangle_y.first);
- cairo_line_to (cr, _view_rectangle_x.second, _view_rectangle_y.second);
- cairo_line_to (cr, _view_rectangle_x.first, _view_rectangle_y.second);
- cairo_line_to (cr, _view_rectangle_x.first, _view_rectangle_y.first);
- cairo_set_source_rgba (cr, 1, 1, 1, 0.25);
- cairo_fill_preserve (cr);
- cairo_set_line_width (cr, 1);
- cairo_set_source_rgba (cr, 1, 1, 1, 0.5);
- cairo_stroke (cr);
-
- /* Playhead */
-
- cairo_set_line_width (cr, 1);
- /* XXX: colour should be set from configuration file */
- cairo_set_source_rgba (cr, 1, 0, 0, 1);
-
- double const p = (_editor->playhead_cursor->current_frame - _start) * _x_scale;
- cairo_move_to (cr, p, 0);
- cairo_line_to (cr, p, _height);
- cairo_stroke (cr);
- _last_playhead = p;
-
- cairo_destroy (cr);
-
- return true;
-}
-