diff options
Diffstat (limited to 'src/osd/windows/winmain.cpp')
-rw-r--r-- | src/osd/windows/winmain.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/osd/windows/winmain.cpp b/src/osd/windows/winmain.cpp index f1df872456f..2f7df659f44 100644 --- a/src/osd/windows/winmain.cpp +++ b/src/osd/windows/winmain.cpp @@ -21,6 +21,7 @@ #include "winutil.h" #include "winfile.h" #include "modules/diagnostics/diagnostics_module.h" +#include "modules/lib/osdlib.h" #include "modules/monitor/monitor_common.h" // standard C headers @@ -180,6 +181,17 @@ int main(int argc, char *argv[]) if (!isatty(fileno(stderr))) setvbuf(stderr, (char *) nullptr, _IOFBF, 64); + { + // Disable legacy mouse to pointer event translation - it's broken: + // * No WM_POINTERLEAVE event when mouse pointer moves directly to an + // overlapping window from the same process. + // * Still receive occasional WM_MOUSEMOVE events. + OSD_DYNAMIC_API(user32, "User32.dll", "User32.dll"); + OSD_DYNAMIC_API_FN(user32, BOOL, WINAPI, EnableMouseInPointer, BOOL); + if (OSD_DYNAMIC_API_TEST(EnableMouseInPointer)) + OSD_DYNAMIC_CALL(EnableMouseInPointer, FALSE); + } + // initialize common controls InitCommonControls(); @@ -340,12 +352,6 @@ void windows_osd_interface::init(running_machine &machine) // initialize the subsystems osd_common_t::init_subsystems(); - // notify listeners of screen configuration - for (const auto &info : osd_common_t::window_list()) - { - machine.output().set_value(string_format("Orientation(%s)", info->monitor()->devicename()), dynamic_cast<win_window_info &>(*info).m_targetorient); - } - // hook up the debugger log if (options.oslog()) machine.add_logerror_callback(&windows_osd_interface::output_oslog); |