13
0

* improve performance on CanvasProgramChange

git-svn-id: svn://localhost/ardour2/branches/3.0@4404 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Hans Baier 2009-01-14 09:36:40 +00:00
parent 176813b0ab
commit 9ec23634ec
2 changed files with 7 additions and 1 deletions

View File

@ -36,9 +36,9 @@ CanvasProgramChange::CanvasProgramChange(
, _event_time(event_time)
, _channel(channel)
, _program(program)
, _popup_initialized(false)
{
set_text(text);
initialize_popup_menus();
}
CanvasProgramChange::~CanvasProgramChange()
@ -100,6 +100,11 @@ CanvasProgramChange::on_event(GdkEvent* ev)
switch (ev->type) {
case GDK_BUTTON_PRESS:
if (ev->button.button == 3) {
// lazy init
if (!_popup_initialized) {
initialize_popup_menus();
_popup_initialized = true;
}
_popup.popup(ev->button.button, ev->button.time);
return true;
}

View File

@ -61,6 +61,7 @@ private:
uint8_t _channel;
uint8_t _program;
Gtk::Menu _popup;
bool _popup_initialized;
};
} // namespace Canvas