diff options
author | David Robillard <d@drobilla.net> | 2008-02-02 17:22:04 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-02-02 17:22:04 +0000 |
commit | 80c3677c837cc9eb432df3d65a34aba543fa7258 (patch) | |
tree | ca23bb7e5bff6c35c151d73221002a9ce3abfe1a /gtk2_ardour/editor.cc | |
parent | 9f63ab9931e6478472853bdda58da47ea29ac125 (diff) |
Merge with 2.0-ongoing R2988
git-svn-id: svn://localhost/ardour2/branches/3.0@2991 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r-- | gtk2_ardour/editor.cc | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 5c93877e07..d26f01f76b 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -1803,12 +1803,25 @@ Editor::add_region_context_items (StreamView* sv, boost::shared_ptr<Region> regi items.push_back (CheckMenuElem (_("Lock"))); CheckMenuItem* region_lock_item = static_cast<CheckMenuItem*>(&items.back()); - fooc = region_lock_item->signal_activate().connect (mem_fun(*this, &Editor::toggle_region_lock)); if (region->locked()) { - fooc.block (true); region_lock_item->set_active(); - fooc.block (false); } + region_lock_item->signal_activate().connect (mem_fun(*this, &Editor::toggle_region_lock)); + + items.push_back (CheckMenuElem (_("Glue to Bars&Beats"))); + CheckMenuItem* bbt_glue_item = static_cast<CheckMenuItem*>(&items.back()); + + switch (region->positional_lock_style()) { + case Region::MusicTime: + bbt_glue_item->set_active (true); + break; + default: + bbt_glue_item->set_active (true); + break; + } + + bbt_glue_item->signal_activate().connect (bind (mem_fun (*this, &Editor::set_region_lock_style), Region::MusicTime)); + items.push_back (CheckMenuElem (_("Mute"))); CheckMenuItem* region_mute_item = static_cast<CheckMenuItem*>(&items.back()); fooc = region_mute_item->signal_activate().connect (mem_fun(*this, &Editor::toggle_region_mute)); @@ -3366,15 +3379,25 @@ Editor::hide_verbose_canvas_cursor () verbose_cursor_visible = false; } +double +Editor::clamp_verbose_cursor_x (double x) +{ + return min (horizontal_adjustment.get_value() + canvas_width - 75.0, x); +} + +double +Editor::clamp_verbose_cursor_y (double y) +{ + return min (vertical_adjustment.get_value() + canvas_height - 50.0, y); +} + void Editor::set_verbose_canvas_cursor (const string & txt, double x, double y) { - /* XXX get origin of canvas relative to root window, - add x and y and check compared to gdk_screen_{width,height} - */ verbose_canvas_cursor->property_text() = txt.c_str(); - verbose_canvas_cursor->property_x() = x; - verbose_canvas_cursor->property_y() = y; + /* don't get too close to the edge */ + verbose_canvas_cursor->property_x() = clamp_verbose_cursor_x (x); + verbose_canvas_cursor->property_y() = clamp_verbose_cursor_x (y); } void |