[Summary] Fixing a number of bugs, which are “wrong selection of Markers”

This commit is contained in:
Valeriy Kamyshniy 2015-02-05 19:39:45 +02:00
parent 94841f69fe
commit bea8a4ee0a
2 changed files with 15 additions and 9 deletions

View file

@ -363,6 +363,7 @@ Marker::Marker (ARDOUR::Location* l, PublicEditor& ed, ArdourCanvas::Container&
, left_drag_handle (0)
, right_drag_handle (0)
, frame_position (start_pos)
, _selected (false)
, _type (type)
, _shown (false)
, _height (height)
@ -518,16 +519,19 @@ Marker::canvas_height_set (double h)
void
Marker::set_selected (bool yn)
{
if(yn != _selected) {
_selected = yn;
/* only show selection status for non-skip (range) markers */
if (_location && !_location->is_skip()) {
if (yn) {
set_color (ARDOUR_UI::config()->get_canvasvar_LocationSelected());
} else {
reset_color ();
}
if (yn) {
set_color (ARDOUR_UI::config()->get_canvasvar_LocationSelected());
} else {
reset_color ();
}
}
ARDOUR_UI::instance()->set_session_dirty ();
ARDOUR_UI::instance()->set_session_dirty ();
}
}
void

View file

@ -85,12 +85,13 @@ class Marker : public sigc::trackable
void set_name (const std::string&);
void set_selected (bool yn);
void set_color (ArdourCanvas::Color);
void reset_color ();
bool selected () const { return _selected; }
void set_color (ArdourCanvas::Color);
void reset_color ();
void set_position (framepos_t start, framepos_t end = -1) {
return _set_position (start, end);
}
}
framepos_t position() const { return frame_position; }
@ -139,6 +140,7 @@ class Marker : public sigc::trackable
double unit_position;
framepos_t frame_position;
double _shift;
bool _selected;
Type _type;
int name_height;
bool _shown;