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 "canvas/debug.h"
#include <gtkmm/menu.h>
#include <gtkmm/menuitem.h>
#include "time_axis_view.h" #include "time_axis_view.h"
#include "streamview.h" #include "streamview.h"
#include "editor_summary.h" #include "editor_summary.h"
@ -35,6 +38,8 @@
#include "route_time_axis.h" #include "route_time_axis.h"
#include "ui_config.h" #include "ui_config.h"
#include "pbd/i18n.h"
using namespace std; using namespace std;
using namespace ARDOUR; using namespace ARDOUR;
using Gtkmm2ext::Keyboard; using Gtkmm2ext::Keyboard;
@ -424,6 +429,8 @@ EditorSummary::on_key_release_event (GdkEventKey* key)
return false; return false;
} }
#include "gtkmm2ext/utils.h"
/** Handle a button press. /** Handle a button press.
* @param ev GTK event. * @param ev GTK event.
*/ */
@ -432,6 +439,16 @@ EditorSummary::on_button_press_event (GdkEventButton* ev)
{ {
_old_follow_playhead = _editor->follow_playhead (); _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) { if (ev->button != 1) {
return true; 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 void
EditorSummary::set_cursor (Position p) EditorSummary::set_cursor (Position p)
{ {

View file

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