diff --git a/modules/juce_audio_basics/juce_audio_basics.cpp b/modules/juce_audio_basics/juce_audio_basics.cpp index c5a6bfa9fb..fae5bff83e 100644 --- a/modules/juce_audio_basics/juce_audio_basics.cpp +++ b/modules/juce_audio_basics/juce_audio_basics.cpp @@ -31,7 +31,7 @@ #include "juce_audio_basics.h" -#if JUCE_MINGW && ! defined (__SSE2__) +#if JUCE_MINGW #define JUCE_USE_SSE_INTRINSICS 0 #endif diff --git a/modules/juce_audio_processors/format_types/juce_VST3Headers.h b/modules/juce_audio_processors/format_types/juce_VST3Headers.h index de33170f17..ef37a65a7a 100644 --- a/modules/juce_audio_processors/format_types/juce_VST3Headers.h +++ b/modules/juce_audio_processors/format_types/juce_VST3Headers.h @@ -90,12 +90,13 @@ #define _set_abort_behavior(...) #endif #include + #include #include #include #include #include #include - #include + #include #include #include #include diff --git a/modules/juce_events/native/juce_win32_Messaging.cpp b/modules/juce_events/native/juce_win32_Messaging.cpp index f55e5401a9..12858ba64c 100644 --- a/modules/juce_events/native/juce_win32_Messaging.cpp +++ b/modules/juce_events/native/juce_win32_Messaging.cpp @@ -104,7 +104,7 @@ namespace WindowsMessageHelpers } } -#if JUCE_MODULE_AVAILABLE_juce_gui_extra +#if JUCE_MODULE_AVAILABLE_juce_gui_extra && ! JUCE_MINGW LRESULT juce_offerEventToActiveXControl (::MSG&); #endif @@ -119,7 +119,7 @@ bool MessageManager::dispatchNextMessageOnSystemQueue (const bool returnIfNoPend if (GetMessage (&m, (HWND) 0, 0, 0) >= 0) { - #if JUCE_MODULE_AVAILABLE_juce_gui_extra + #if JUCE_MODULE_AVAILABLE_juce_gui_extra && ! JUCE_MINGW if (juce_offerEventToActiveXControl (m) != S_FALSE) return true; #endif diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp index b710d391a2..a98f00e352 100644 --- a/modules/juce_gui_basics/juce_gui_basics.cpp +++ b/modules/juce_gui_basics/juce_gui_basics.cpp @@ -83,6 +83,7 @@ #if JUCE_MINGW #include + #define JUCE_DISABLE_WIN32_DPI_AWARENESS 1 #endif //============================================================================== diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp index 569c400131..a390474898 100644 --- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp @@ -206,6 +206,10 @@ extern void* getUser32Function (const char*); }; #endif +#if JUCE_MINGW +static bool canUseMultiTouch() { return false; } +static void checkForPointerAPI() { } +#else typedef BOOL (WINAPI* RegisterTouchWindowFunc) (HWND, ULONG); typedef BOOL (WINAPI* GetTouchInputInfoFunc) (HTOUCHINPUT, UINT, TOUCHINPUT*, int); typedef BOOL (WINAPI* CloseTouchInputHandleFunc) (HTOUCHINPUT); @@ -259,6 +263,7 @@ static void checkForPointerAPI() && getPointerTouchInfo != nullptr && getPointerPenInfo != nullptr); } +#endif static Rectangle rectangleFromRECT (const RECT& r) noexcept { @@ -1578,7 +1583,9 @@ private: case WM_MOUSEACTIVATE: case WM_NCMOUSEHOVER: case WM_MOUSEHOVER: +#if ! JUCE_MINGW case WM_TOUCH: +#endif case WM_POINTERUPDATE: case WM_NCPOINTERUPDATE: case WM_POINTERWHEEL: @@ -1694,8 +1701,10 @@ private: RegisterDragDrop (hwnd, dropTarget); +#if ! JUCE_MINGW if (canUseMultiTouch()) registerTouchWindow (hwnd, 0); +#endif setDPIAwareness(); setMessageFilter(); @@ -2025,8 +2034,10 @@ private: bool isTouchEvent() noexcept { +#if ! JUCE_MINGW if (registerTouchWindow == nullptr) return false; +#endif // Relevant info about touch/pen detection flags: // https://msdn.microsoft.com/en-us/library/windows/desktop/ms703320(v=vs.85).aspx @@ -2194,6 +2205,7 @@ private: static MouseInputSource::InputSourceType getPointerType (WPARAM wParam) { +#if ! JUCE_MINGW if (getPointerTypeFunction != nullptr) { POINTER_INPUT_TYPE pointerType; @@ -2207,6 +2219,7 @@ private: return MouseInputSource::InputSourceType::pen; } } +#endif return MouseInputSource::InputSourceType::mouse; } @@ -2228,6 +2241,7 @@ private: peer->handleMouseWheel (getPointerType (wParam), localPos, getMouseEventTime(), wheel); } +#if ! JUCE_MINGW bool doGestureEvent (LPARAM lParam) { GESTUREINFO gi; @@ -2403,6 +2417,7 @@ private: return touchInput; } +#endif bool handlePenInput (POINTER_PEN_INFO penInfo, Point pos, const float pressure, bool isDown, bool isUp) { @@ -2945,6 +2960,7 @@ private: return 1; +#if ! JUCE_MINGW //============================================================================== case WM_POINTERUPDATE: if (handlePointerInput (wParam, lParam, false, false)) @@ -2960,6 +2976,7 @@ private: if (handlePointerInput (wParam, lParam, false, true)) return 0; break; +#endif //============================================================================== case WM_MOUSEMOVE: doMouseMove (getPointFromLParam (lParam), false); return 0; @@ -2990,6 +3007,7 @@ private: return 0; +#if ! JUCE_MINGW case WM_TOUCH: if (getTouchInputInfo != nullptr) return doTouchEvent ((int) wParam, (HTOUCHINPUT) lParam); @@ -3001,6 +3019,7 @@ private: return 0; break; +#endif //============================================================================== case WM_SIZING: return handleSizeConstraining (*(RECT*) lParam, wParam); @@ -3898,6 +3917,7 @@ static BOOL CALLBACK enumMonitorsProc (HMONITOR hm, HDC, LPRECT r, LPARAM userIn const bool isMain = (info.dwFlags & 1 /* MONITORINFOF_PRIMARY */) != 0; double dpi = 0; + #if ! JUCE_DISABLE_WIN32_DPI_AWARENESS if (getDPIForMonitor != nullptr) { UINT dpiX = 0, dpiY = 0; @@ -3905,6 +3925,7 @@ static BOOL CALLBACK enumMonitorsProc (HMONITOR hm, HDC, LPRECT r, LPARAM userIn if (SUCCEEDED (getDPIForMonitor (hm, MDT_Default, &dpiX, &dpiY))) dpi = (dpiX + dpiY) / 2.0; } + #endif ((Array*) userInfo)->add (MonitorInfo (rectangleFromRECT (*r), isMain, dpi));