double x = event.x / allocation.width;
double y = event.y / allocation.height;
- focus_locked = x > 0.5 && y >= focus_starts[0] && y < focus_starts[focus_end - focus_first];
+ focus_locked = x < 0.5 && y >= focus_starts[0] && y < focus_starts[focus_end - focus_first];
if (focus_locked)
{
protected void draw(Cairo.Context context)
{
// White background (FIXME: get from style)
- context.set_source_rgb(1, 1, 1);
+ context.set_source_rgb(0.7, 0.7, 0.7);
context.paint();
context.set_source_rgb(0, 0, 0);
context.set_source_rgba(0, 0, 0, 1);
context.new_path();
- context.move_to(0, (y1+y0)/2);
context.set_font_size(y1-y0);
+ Cairo.FontExtents extents;
+ context.font_extents(out extents);
+ context.move_to(0, y1-extents.descent);
context.text_path(list[idx]);
context.fill();
context.stroke();
}
// Paint focus lock area
+ context.set_source_rgba(1, 1, 1, 0.2);
+ context.new_path();
+ context.rectangle(0, focus_starts[0], 0.5, focus_starts[focus_end - focus_first]);
+ context.fill();
+ context.stroke();
+
+ // Paint focus movement area
context.set_source_rgba(0.8, 1, 1, 0.8);
context.new_path();
- context.rectangle(0.5, focus_starts[0], 1, focus_starts[focus_end - focus_first]);
+ context.rectangle(0.5, 0, 1, 1);
context.fill();
context.stroke();
}