| 1945 | } |
| 1946 | |
| 1947 | void ModularSynth::MouseReleased(int intX, int intY, int button, const juce::MouseInputSource& source) |
| 1948 | { |
| 1949 | mMousePos.x = intX; |
| 1950 | mMousePos.y = intY; |
| 1951 | mMouseMovedSignificantlySincePressed = source.hasMovedSignificantlySincePressed(); |
| 1952 | |
| 1953 | if (button >= 0 && button < (int)mIsMouseButtonHeld.size()) |
| 1954 | mIsMouseButtonHeld[button] = false; |
| 1955 | |
| 1956 | mIsMousePanning = false; |
| 1957 | |
| 1958 | bool rightButton = button == 2; |
| 1959 | |
| 1960 | if (button == 3) |
| 1961 | return; |
| 1962 | |
| 1963 | float x = GetMouseX(&mModuleContainer); |
| 1964 | float y = GetMouseY(&mModuleContainer); |
| 1965 | |
| 1966 | if (GetTopModalFocusItem()) |
| 1967 | { |
| 1968 | GetTopModalFocusItem()->MouseReleased(); |
| 1969 | } |
| 1970 | |
| 1971 | if (mResizeModule) |
| 1972 | mResizeModule = nullptr; |
| 1973 | |
| 1974 | if (mMoveModule) |
| 1975 | { |
| 1976 | Prefab::sJustReleasedModule = mMoveModule; |
| 1977 | if (!mMouseMovedSignificantlySincePressed) |
| 1978 | { |
| 1979 | if (mMoveModule->WasMinimizeAreaClicked()) |
| 1980 | { |
| 1981 | mMoveModule->ToggleMinimized(); |
| 1982 | mMoveModule = nullptr; |
| 1983 | } |
| 1984 | |
| 1985 | if (!mMoveModuleCanStickToCursor) |
| 1986 | mMoveModule = nullptr; |
| 1987 | } |
| 1988 | else |
| 1989 | { |
| 1990 | mMoveModule = nullptr; |
| 1991 | } |
| 1992 | } |
| 1993 | |
| 1994 | mUILayerModuleContainer.MouseReleased(); |
| 1995 | mModuleContainer.MouseReleased(); |
| 1996 | |
| 1997 | if (mHeldSample) |
| 1998 | { |
| 1999 | IDrawableModule* module = GetModuleAtCursor(); |
| 2000 | if (module) |
| 2001 | { |
| 2002 | float moduleX, moduleY; |
| 2003 | module->GetPosition(moduleX, moduleY); |
| 2004 | module->SampleDropped(x - moduleX, y - moduleY, GetHeldSample()); |
nothing calls this directly
no test coverage detected