* improve performance on CanvasProgramChange
git-svn-id: svn://localhost/ardour2/branches/3.0@4404 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
176813b0ab
commit
9ec23634ec
@ -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;
|
||||
}
|
||||
|
@ -61,6 +61,7 @@ private:
|
||||
uint8_t _channel;
|
||||
uint8_t _program;
|
||||
Gtk::Menu _popup;
|
||||
bool _popup_initialized;
|
||||
};
|
||||
|
||||
} // namespace Canvas
|
||||
|
Loading…
Reference in New Issue
Block a user