an awful lot of tweaks to drawing details
[ardour.git] / gtk2_ardour / editor_cursors.cc
index 9d8c255d2ffb26526b8910b425582279f0b46b60..557120c1db783b54fcd799816ab6d2fe8549c56b 100644 (file)
@@ -45,11 +45,11 @@ EditorCursor::EditorCursor (Editor& ed, bool (Editor::*callbck)(GdkEvent*,Ardour
        _time_bars_canvas_item.set_head_width (0, 16);
        _time_bars_canvas_item.set_head_outward (0, false);
        _time_bars_canvas_item.set_show_head (1, false); // head only
-       _time_bars_canvas_item.set_outline_width (1.5);
+       _time_bars_canvas_item.set_outline_width (0.5);
 
        _time_bars_canvas_item.set_data ("cursor", this);
        _track_canvas_item.set_data ("cursor", this);
-       _track_canvas_item.set_outline_width (1.5);
+       _track_canvas_item.set_outline_width (0.5);
 
        _time_bars_canvas_item.Event.connect (sigc::bind (sigc::mem_fun (ed, callbck), &_time_bars_canvas_item));
        _track_canvas_item.Event.connect (sigc::bind (sigc::mem_fun (ed, callbck), &_track_canvas_item));
@@ -70,7 +70,11 @@ EditorCursor::set_position (framepos_t frame)
 {
        PositionChanged (frame);
 
-       double const new_pos = _editor.sample_to_pixel (frame);
+       /* See Cairo FAQ question on single pixel lines to understand
+          why we add 0.5
+       */
+
+       double const new_pos = _editor.sample_to_pixel (frame) + 0.5;
 
        if (new_pos != _time_bars_canvas_item.x ()) {
                _time_bars_canvas_item.set_x (new_pos);