forked from bartvdbraak/blender
Fix: Open tmp windows with size multiplied by virtual pixelsize
Opening a tmp window on a 4K display with virtual pixelsize set to double results in a too small window. For Retina this seems to be handled on GHOST level already, so multiply by virtual pixelsize only.
This commit is contained in:
parent
19137e86bb
commit
505a31bd22
@ -371,17 +371,14 @@ void wm_window_title(wmWindowManager *wm, wmWindow *win)
|
||||
}
|
||||
}
|
||||
|
||||
static float wm_window_get_virtual_pixelsize(void)
|
||||
{
|
||||
return ((U.virtual_pixel == VIRTUAL_PIXEL_NATIVE) ? 1.0f : 2.0f);
|
||||
}
|
||||
|
||||
float wm_window_pixelsize(wmWindow *win)
|
||||
{
|
||||
float pixelsize = GHOST_GetNativePixelSize(win->ghostwin);
|
||||
|
||||
switch (U.virtual_pixel) {
|
||||
default:
|
||||
case VIRTUAL_PIXEL_NATIVE:
|
||||
return pixelsize;
|
||||
case VIRTUAL_PIXEL_DOUBLE:
|
||||
return 2.0f * pixelsize;
|
||||
}
|
||||
return (GHOST_GetNativePixelSize(win->ghostwin) * wm_window_get_virtual_pixelsize());
|
||||
}
|
||||
|
||||
/* belongs to below */
|
||||
@ -626,6 +623,7 @@ wmWindow *WM_window_open_temp(bContext *C, const rcti *rect_init, int type)
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
const char *title;
|
||||
rcti rect = *rect_init;
|
||||
const short px_virtual = (short)wm_window_get_virtual_pixelsize();
|
||||
|
||||
/* changes rect to fit within desktop */
|
||||
wm_window_check_position(&rect);
|
||||
@ -642,10 +640,11 @@ wmWindow *WM_window_open_temp(bContext *C, const rcti *rect_init, int type)
|
||||
win->posx = rect.xmin;
|
||||
win->posy = rect.ymin;
|
||||
}
|
||||
|
||||
win->sizex = BLI_rcti_size_x(&rect);
|
||||
win->sizey = BLI_rcti_size_y(&rect);
|
||||
|
||||
|
||||
/* multiply with virtual pixelsize, ghost handles native one (e.g. for retina) */
|
||||
win->sizex = BLI_rcti_size_x(&rect) * px_virtual;
|
||||
win->sizey = BLI_rcti_size_y(&rect) * px_virtual;
|
||||
|
||||
if (win->ghostwin) {
|
||||
wm_window_set_size(win, win->sizex, win->sizey);
|
||||
wm_window_raise(win);
|
||||
|
Loading…
Reference in New Issue
Block a user