Mercurial > minori
diff dep/animone/src/win/win32.cc @ 342:adb79bdde329
dep/animone: fix tons of issues
for example, the window ID stuff was just... completely wrong. since we're
supporting multiple different window systems, it *has* to be a union rather
than just a single integer type. HWND is also not a DWORD, it's a pointer(!),
so now it's stored as a std::uintptr_t.
(this probably breaks things)
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Thu, 20 Jun 2024 03:03:05 -0400 |
parents | a7d4e5107531 |
children |
line wrap: on
line diff
--- a/dep/animone/src/win/win32.cc Wed Jun 19 23:21:19 2024 -0400 +++ b/dep/animone/src/win/win32.cc Thu Jun 20 03:03:05 2024 -0400 @@ -63,8 +63,8 @@ return true; } -static bool VerifyClassName(const std::wstring& name) { - static const std::set<std::wstring> invalid_names = { +static bool VerifyClassName(const std::string& name) { + static const std::set<std::string> invalid_names = { // System classes "#32770", // Dialog box "CabinetWClass", // Windows Explorer @@ -93,7 +93,7 @@ Window window; window.platform = WindowPlatform::Win32; - window.id = static_cast<unsigned int>(reinterpret_cast<ULONG_PTR>(hwnd)); + window.id.win32 = reinterpret_cast<std::uintptr_t>(hwnd); window.text = ToUtf8String(GetWindowText(hwnd)); window.class_name = ToUtf8String(GetWindowClassName(hwnd)); if (!VerifyClassName(window.class_name))