summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/windows/winmain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/windows/winmain.cpp')
-rw-r--r--src/osd/windows/winmain.cpp18
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);