trigger_ui: allow grabbing() for Gate + Repeat (TODO: Repeat is borked)
This commit is contained in:
parent
a44ce7c075
commit
4f5779e67d
@ -66,6 +66,7 @@ using namespace PBD;
|
||||
|
||||
TriggerEntry::TriggerEntry (Item* item, TriggerReference tr)
|
||||
: ArdourCanvas::Rectangle (item)
|
||||
, _grabbed (false)
|
||||
{
|
||||
set_layout_sensitive (true); // why???
|
||||
|
||||
@ -642,7 +643,14 @@ TriggerEntry::play_button_event (GdkEvent* ev)
|
||||
case GDK_BUTTON_PRESS:
|
||||
switch (ev->button.button) {
|
||||
case 1:
|
||||
trigger()->bang ();
|
||||
if (trigger()->launch_style () == Trigger::Gate ||
|
||||
trigger()->launch_style () == Trigger::Repeat) {
|
||||
trigger()->bang ();
|
||||
_grabbed = true;
|
||||
play_button->grab();
|
||||
} else {
|
||||
trigger()->bang ();
|
||||
}
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
@ -651,9 +659,10 @@ TriggerEntry::play_button_event (GdkEvent* ev)
|
||||
case GDK_BUTTON_RELEASE:
|
||||
switch (ev->button.button) {
|
||||
case 1:
|
||||
if (trigger()->launch_style () == Trigger::Gate ||
|
||||
trigger()->launch_style () == Trigger::Repeat) {
|
||||
if (_grabbed) {
|
||||
trigger()->unbang ();
|
||||
play_button->ungrab();
|
||||
_grabbed = false;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
|
@ -73,6 +73,8 @@ public:
|
||||
bool follow_button_event (GdkEvent*);
|
||||
|
||||
private:
|
||||
bool _grabbed;
|
||||
|
||||
double _poly_size;
|
||||
double _poly_margin;
|
||||
|
||||
@ -109,6 +111,8 @@ private:
|
||||
void drag_leave (Glib::RefPtr<Gdk::DragContext> const&, guint);
|
||||
void drag_data_received (Glib::RefPtr<Gdk::DragContext> const&, int, int, Gtk::SelectionData const&, guint, guint);
|
||||
|
||||
bool triggerbox_event (GdkEvent*);
|
||||
|
||||
uint64_t slot_at_y (int) const;
|
||||
|
||||
sigc::connection _update_connection;
|
||||
|
Loading…
Reference in New Issue
Block a user