mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 05:48:40 +00:00
reflect dpi change events appropriately in font size / window pos & size
This commit is contained in:
@@ -548,7 +548,14 @@ os_w32_wnd_proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||||||
case WM_DPICHANGED:
|
case WM_DPICHANGED:
|
||||||
{
|
{
|
||||||
F32 new_dpi = (F32)(wParam & 0xffff);
|
F32 new_dpi = (F32)(wParam & 0xffff);
|
||||||
|
RECT suggested_new_rect = *(RECT *)lParam;
|
||||||
window->dpi = new_dpi;
|
window->dpi = new_dpi;
|
||||||
|
SetWindowPos(window->hwnd, 0,
|
||||||
|
suggested_new_rect.left,
|
||||||
|
suggested_new_rect.top,
|
||||||
|
suggested_new_rect.right - suggested_new_rect.left,
|
||||||
|
suggested_new_rect.bottom - suggested_new_rect.top,
|
||||||
|
0);
|
||||||
}break;
|
}break;
|
||||||
|
|
||||||
//- rjf: [file drop]
|
//- rjf: [file drop]
|
||||||
|
|||||||
@@ -5176,6 +5176,19 @@ rd_window_frame(void)
|
|||||||
cfg_node_release(rd_state->cfg, cfg_node_child_from_string(window, str8_lit("maximized")));
|
cfg_node_release(rd_state->cfg, cfg_node_child_from_string(window, str8_lit("maximized")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- rjf: DPI changes -> xform font size / window size
|
||||||
|
F32 dpi = os_dpi_from_window(ws->os);
|
||||||
|
if(dpi != ws->last_dpi)
|
||||||
|
{
|
||||||
|
fnt_reset();
|
||||||
|
F32 current_font_size = rd_font_size();
|
||||||
|
F32 new_font_size = current_font_size * (dpi / ws->last_dpi);
|
||||||
|
new_font_size = Clamp(6.f, new_font_size, 72.f);
|
||||||
|
CFG_Node *font_size_cfg = cfg_node_child_from_string_or_alloc(rd_state->cfg, window, str8_lit("font_size"));
|
||||||
|
cfg_node_new_replacef(rd_state->cfg, font_size_cfg, "%I64u", (U64)new_font_size);
|
||||||
|
ws->last_dpi = dpi;
|
||||||
|
}
|
||||||
|
|
||||||
//- rjf: commit position
|
//- rjf: commit position
|
||||||
Rng2F32 window_rect = os_rect_from_window(ws->os);
|
Rng2F32 window_rect = os_rect_from_window(ws->os);
|
||||||
if(!is_fullscreen && !is_maximized && !is_minimized)
|
if(!is_fullscreen && !is_maximized && !is_minimized)
|
||||||
|
|||||||
Reference in New Issue
Block a user