| @@ -304,61 +304,62 @@ void CardinalModuleWidget::onButton(const ButtonEvent& e) | |||||
| if (selected) { | if (selected) { | ||||
| if (e.button == GLFW_MOUSE_BUTTON_RIGHT) { | if (e.button == GLFW_MOUSE_BUTTON_RIGHT) { | ||||
| if (e.action == GLFW_PRESS) { | |||||
| if (e.action == GLFW_PRESS) { | |||||
| // Open selection context menu on right-click | |||||
| ui::Menu* menu = createMenu(); | ui::Menu* menu = createMenu(); | ||||
| patchUtils::appendSelectionContextMenu(menu); | patchUtils::appendSelectionContextMenu(menu); | ||||
| } | } | ||||
| e.consume(this); | e.consume(this); | ||||
| } | } | ||||
| if (e.button == GLFW_MOUSE_BUTTON_LEFT) { | |||||
| if (e.action == GLFW_PRESS) { | |||||
| // Toggle selection on Shift-click | |||||
| if ((e.mods & RACK_MOD_MASK) == GLFW_MOD_SHIFT) { | |||||
| APP->scene->rack->select(this, false); | |||||
| e.consume(NULL); | |||||
| return; | |||||
| } | |||||
| if (e.button == GLFW_MOUSE_BUTTON_LEFT) { | |||||
| if (e.action == GLFW_PRESS) { | |||||
| // Toggle selection on Shift-click | |||||
| if ((e.mods & RACK_MOD_MASK) == GLFW_MOD_SHIFT) { | |||||
| APP->scene->rack->select(this, false); | |||||
| e.consume(NULL); | |||||
| return; | |||||
| } | |||||
| internal->dragOffset = e.pos; | |||||
| } | |||||
| internal->dragOffset = e.pos; | |||||
| } | |||||
| e.consume(this); | |||||
| } | |||||
| e.consume(this); | |||||
| } | |||||
| return; | |||||
| return; | |||||
| } | } | ||||
| // Dispatch event to children | |||||
| Widget::onButton(e); | |||||
| e.stopPropagating(); | |||||
| if (e.isConsumed()) | |||||
| return; | |||||
| if (e.button == GLFW_MOUSE_BUTTON_LEFT) { | |||||
| if (e.action == GLFW_PRESS) { | |||||
| // Toggle selection on Shift-click | |||||
| if ((e.mods & RACK_MOD_MASK) == GLFW_MOD_SHIFT) { | |||||
| APP->scene->rack->select(this, true); | |||||
| e.consume(NULL); | |||||
| return; | |||||
| } | |||||
| // If module positions are locked, don't consume left-click | |||||
| if (settings::lockModules) { | |||||
| return; | |||||
| } | |||||
| internal->dragOffset = e.pos; | |||||
| } | |||||
| e.consume(this); | |||||
| } | |||||
| // Open context menu on right-click | |||||
| if (e.button == GLFW_MOUSE_BUTTON_RIGHT && e.action == GLFW_PRESS) { | |||||
| CardinalModuleWidget__createContextMenu(this, model, module); | |||||
| e.consume(this); | |||||
| } | |||||
| // Dispatch event to children | |||||
| Widget::onButton(e); | |||||
| e.stopPropagating(); | |||||
| if (e.isConsumed()) | |||||
| return; | |||||
| if (e.button == GLFW_MOUSE_BUTTON_LEFT) { | |||||
| if (e.action == GLFW_PRESS) { | |||||
| // Toggle selection on Shift-click | |||||
| if ((e.mods & RACK_MOD_MASK) == GLFW_MOD_SHIFT) { | |||||
| APP->scene->rack->select(this, true); | |||||
| e.consume(NULL); | |||||
| return; | |||||
| } | |||||
| // If module positions are locked, don't consume left-click | |||||
| if (settings::lockModules) { | |||||
| return; | |||||
| } | |||||
| internal->dragOffset = e.pos; | |||||
| } | |||||
| e.consume(this); | |||||
| } | |||||
| // Open context menu on right-click | |||||
| if (e.button == GLFW_MOUSE_BUTTON_RIGHT && e.action == GLFW_PRESS) { | |||||
| CardinalModuleWidget__createContextMenu(this, model, module); | |||||
| e.consume(this); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||