From 295232667eb25f6eef9ed3b06d6a71a5cdcc9476 Mon Sep 17 00:00:00 2001
From: adrido <addi@king-arthur.eu>
Date: Sat, 29 Oct 2016 18:01:37 +0200
Subject: [PATCH] Windows: Add manifest file and set "High DPI Aware" true

This resolves washy font and incorrect mouse handling on Windows if
a screen with high DPI is used.
---
 misc/minetest.exe.manifest | 15 +++++++++++++++
 src/CMakeLists.txt         |  3 ++-
 2 files changed, 17 insertions(+), 1 deletion(-)
 create mode 100644 misc/minetest.exe.manifest

diff --git a/misc/minetest.exe.manifest b/misc/minetest.exe.manifest
new file mode 100644
index 000000000..3c32b0f8b
--- /dev/null
+++ b/misc/minetest.exe.manifest
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+        <security>
+            <requestedPrivileges>
+                <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
+            </requestedPrivileges>
+        </security>
+    </trustInfo>
+    <application xmlns="urn:schemas-microsoft-com:asm.v3">
+        <windowsSettings>
+            <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
+        </windowsSettings>
+    </application>
+</assembly>
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index cb04c9425..1983bb078 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -474,6 +474,7 @@ set(common_SRCS
 # This gives us the icon and file version information
 if(WIN32)
 	set(WINRESOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../misc/winresource.rc")
+	set(MINETEST_EXE_MANIFEST_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../misc/minetest.exe.manifest")
 	if(MINGW)
 		if(NOT CMAKE_RC_COMPILER)
 			set(CMAKE_RC_COMPILER "windres.exe")
@@ -486,7 +487,7 @@ if(WIN32)
 			DEPENDS ${WINRESOURCE_FILE})
 		SET(common_SRCS ${common_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o)
 	else(MINGW) # Probably MSVC
-		set(common_SRCS ${common_SRCS} ${WINRESOURCE_FILE})
+		set(common_SRCS ${common_SRCS} ${WINRESOURCE_FILE} ${MINETEST_EXE_MANIFEST_FILE})
 	endif(MINGW)
 endif()
 
-- 
GitLab