Editor zooming: right-click on summary -> context menu -> reset to session extents.

This commit is contained in:
Ben Loftis 2017-08-26 23:32:02 -05:00
parent 631629b8e7
commit 7e300c93f2
2 changed files with 31 additions and 0 deletions

View File

@ -21,6 +21,9 @@
#include "canvas/debug.h"
#include <gtkmm/menu.h>
#include <gtkmm/menuitem.h>
#include "time_axis_view.h"
#include "streamview.h"
#include "editor_summary.h"
@ -35,6 +38,8 @@
#include "route_time_axis.h"
#include "ui_config.h"
#include "pbd/i18n.h"
using namespace std;
using namespace ARDOUR;
using Gtkmm2ext::Keyboard;
@ -424,6 +429,8 @@ EditorSummary::on_key_release_event (GdkEventKey* key)
return false;
}
#include "gtkmm2ext/utils.h"
/** Handle a button press.
* @param ev GTK event.
*/
@ -432,6 +439,16 @@ EditorSummary::on_button_press_event (GdkEventButton* ev)
{
_old_follow_playhead = _editor->follow_playhead ();
if (ev->button == 3) { //right-click: show the reset menu action
using namespace Gtk::Menu_Helpers;
Gtk::Menu* m = manage (new Gtk::Menu);
MenuList& items = m->items ();
items.push_back(MenuElem(_("Reset Summary to Extents"),
sigc::mem_fun(*this, &EditorSummary::reset_to_extents)));
m->popup (ev->button, ev->time);
return true;
}
if (ev->button != 1) {
return true;
}
@ -556,6 +573,18 @@ EditorSummary::get_position (double x, double y) const
}
}
void
EditorSummary::reset_to_extents()
{
//reset as if the user never went anywhere outside the extents
_leftmost = max_framepos;
_rightmost = 0;
_editor->temporal_zoom_extents ();
set_background_dirty ();
}
void
EditorSummary::set_cursor (Position p)
{

View File

@ -65,6 +65,8 @@ private:
bool on_enter_notify_event (GdkEventCrossing*);
bool on_leave_notify_event (GdkEventCrossing*);
void reset_to_extents ();
void centre_on_click (GdkEventButton *);
void render (Cairo::RefPtr<Cairo::Context> const&, cairo_rectangle_t*);
void render_region (RegionView*, cairo_t*, double) const;