mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-04-24 09:38:32 +02:00
feat(dpi): default to per monitor v2
This commit ensures that the process starts with DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 set by default. https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setprocessdpiawarenesscontext fix #187
This commit is contained in:
@@ -48,9 +48,10 @@ features = [
|
|||||||
"Win32_Graphics_Gdi",
|
"Win32_Graphics_Gdi",
|
||||||
"Win32_System_Threading",
|
"Win32_System_Threading",
|
||||||
"Win32_System_RemoteDesktop",
|
"Win32_System_RemoteDesktop",
|
||||||
"Win32_UI_Input_KeyboardAndMouse",
|
|
||||||
"Win32_UI_Accessibility",
|
"Win32_UI_Accessibility",
|
||||||
"Win32_UI_WindowsAndMessaging"
|
"Win32_UI_HiDpi",
|
||||||
|
"Win32_UI_Input_KeyboardAndMouse",
|
||||||
|
"Win32_UI_WindowsAndMessaging",
|
||||||
]
|
]
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
|||||||
@@ -407,6 +407,7 @@ fn main() -> Result<()> {
|
|||||||
|
|
||||||
let process_id = WindowsApi::current_process_id();
|
let process_id = WindowsApi::current_process_id();
|
||||||
WindowsApi::allow_set_foreground_window(process_id)?;
|
WindowsApi::allow_set_foreground_window(process_id)?;
|
||||||
|
WindowsApi::set_process_dpi_awareness_context()?;
|
||||||
|
|
||||||
let (outgoing, incoming): (Sender<WindowManagerEvent>, Receiver<WindowManagerEvent>) =
|
let (outgoing, incoming): (Sender<WindowManagerEvent>, Receiver<WindowManagerEvent>) =
|
||||||
crossbeam_channel::unbounded();
|
crossbeam_channel::unbounded();
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ use windows::Win32::System::Threading::QueryFullProcessImageNameW;
|
|||||||
use windows::Win32::System::Threading::PROCESS_ACCESS_RIGHTS;
|
use windows::Win32::System::Threading::PROCESS_ACCESS_RIGHTS;
|
||||||
use windows::Win32::System::Threading::PROCESS_NAME_WIN32;
|
use windows::Win32::System::Threading::PROCESS_NAME_WIN32;
|
||||||
use windows::Win32::System::Threading::PROCESS_QUERY_INFORMATION;
|
use windows::Win32::System::Threading::PROCESS_QUERY_INFORMATION;
|
||||||
|
use windows::Win32::UI::HiDpi::SetProcessDpiAwarenessContext;
|
||||||
|
use windows::Win32::UI::HiDpi::DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2;
|
||||||
use windows::Win32::UI::Input::KeyboardAndMouse::SetFocus;
|
use windows::Win32::UI::Input::KeyboardAndMouse::SetFocus;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::AllowSetForegroundWindow;
|
use windows::Win32::UI::WindowsAndMessaging::AllowSetForegroundWindow;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::EnumWindows;
|
use windows::Win32::UI::WindowsAndMessaging::EnumWindows;
|
||||||
@@ -565,6 +567,12 @@ impl WindowsApi {
|
|||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn set_process_dpi_awareness_context() -> Result<()> {
|
||||||
|
unsafe { SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2) }
|
||||||
|
.ok()
|
||||||
|
.process()
|
||||||
|
}
|
||||||
|
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
pub fn system_parameters_info_w(
|
pub fn system_parameters_info_w(
|
||||||
action: SYSTEM_PARAMETERS_INFO_ACTION,
|
action: SYSTEM_PARAMETERS_INFO_ACTION,
|
||||||
|
|||||||
Reference in New Issue
Block a user