'-dpi' fixes for Xephyr

This commit is contained in:
Matthew Allum 2004-09-01 11:13:36 +00:00
parent 16ff3a8727
commit 7c0aaa53bf
3 changed files with 22 additions and 37 deletions

View File

@ -83,9 +83,10 @@ ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv)
screen->height = height; screen->height = height;
} }
screen->width_mm = screen->width * hostx_mm_per_pixel_horizontal();
screen->height_mm = screen->height * hostx_mm_per_pixel_vertical(); if (screen->fb[0].depth && screen->fb[0].depth != hostx_get_depth())
ErrorF("\nXephyr screen depth must match hosts, ignoring.\n");
screen->fb[0].depth = hostx_get_depth(); screen->fb[0].depth = hostx_get_depth();
screen->rate = 72; screen->rate = 72;
@ -345,16 +346,17 @@ ephyrRandRGetInfo (ScreenPtr pScreen, Rotation *rotations)
{ {
RRRegisterSize (pScreen, RRRegisterSize (pScreen,
sizes[n].width, sizes[n].width,
sizes[n].height, sizes[n].height,
sizes[n].width * hostx_mm_per_pixel_horizontal(), (sizes[n].width * screen->width_mm)/screen->width,
sizes[n].height * hostx_mm_per_pixel_vertical()); (sizes[n].height *screen->height_mm)/screen->height
);
n++; n++;
} }
} }
pSize = RRRegisterSize (pScreen, pSize = RRRegisterSize (pScreen,
screen->width, screen->width,
screen->height, screen->height,
screen->width_mm, screen->width_mm,
screen->height_mm); screen->height_mm);
@ -372,8 +374,8 @@ ephyrRandRSetConfig (ScreenPtr pScreen,
RRScreenSizePtr pSize) RRScreenSizePtr pSize)
{ {
KdScreenPriv(pScreen); KdScreenPriv(pScreen);
KdScreenInfo *screen = pScreenPriv->screen; KdScreenInfo *screen = pScreenPriv->screen;
EphyrScrPriv *scrpriv = screen->driver; EphyrScrPriv *scrpriv = screen->driver;
Bool wasEnabled = pScreenPriv->enabled; Bool wasEnabled = pScreenPriv->enabled;
EphyrScrPriv oldscr; EphyrScrPriv oldscr;
int oldwidth; int oldwidth;

View File

@ -57,8 +57,6 @@ struct EphyrHostXVars
int depth; int depth;
XImage *ximg; XImage *ximg;
int win_width, win_height; int win_width, win_height;
double mm_per_pixel_vertical, mm_per_pixel_horizontal;
Bool use_host_cursor; Bool use_host_cursor;
Bool have_shm; Bool have_shm;
long damage_debug_nsec; long damage_debug_nsec;
@ -78,6 +76,7 @@ extern int kdMaxScanCode;
extern int kdMinKeyCode; extern int kdMinKeyCode;
extern int kdMaxKeyCode; extern int kdMaxKeyCode;
extern int kdKeymapWidth; extern int kdKeymapWidth;
extern int monitorResolution;
/* X Error traps */ /* X Error traps */
@ -189,11 +188,13 @@ hostx_init(void)
HostX.depth = DefaultDepth(HostX.dpy, HostX.screen); HostX.depth = DefaultDepth(HostX.dpy, HostX.screen);
HostX.visual = DefaultVisual(HostX.dpy, HostX.screen); HostX.visual = DefaultVisual(HostX.dpy, HostX.screen);
/* old way of getting dpi
HostX.mm_per_pixel_vertical = (double)DisplayHeightMM(HostX.dpy, HostX.screen) HostX.mm_per_pixel_vertical = (double)DisplayHeightMM(HostX.dpy, HostX.screen)
/ DisplayHeight(HostX.dpy, HostX.screen); / DisplayHeight(HostX.dpy, HostX.screen);
HostX.mm_per_pixel_horizontal = (double)DisplayWidthMM(HostX.dpy, HostX.screen) HostX.mm_per_pixel_horizontal = (double)DisplayWidthMM(HostX.dpy, HostX.screen)
/ DisplayWidth(HostX.dpy, HostX.screen); / DisplayWidth(HostX.dpy, HostX.screen);
*/
if (HostX.win_pre_existing != None) if (HostX.win_pre_existing != None)
{ {
@ -222,14 +223,14 @@ hostx_init(void)
else else
{ {
HostX.win = XCreateWindow(HostX.dpy, HostX.win = XCreateWindow(HostX.dpy,
HostX.winroot, HostX.winroot,
0,0,100,100, /* will resize */ 0,0,100,100, /* will resize */
0, 0,
CopyFromParent, CopyFromParent,
CopyFromParent, CopyFromParent,
CopyFromParent, CopyFromParent,
CWEventMask, CWEventMask,
&attr); &attr);
XStoreName(HostX.dpy, HostX.win, "Xephyr"); XStoreName(HostX.dpy, HostX.win, "Xephyr");
} }
@ -321,18 +322,6 @@ hostx_get_visual_masks (unsigned long *rmsk,
*bmsk = HostX.visual->blue_mask; *bmsk = HostX.visual->blue_mask;
} }
double
hostx_mm_per_pixel_vertical(void)
{
return HostX.mm_per_pixel_vertical;
}
double
hostx_mm_per_pixel_horizontal(void)
{
return HostX.mm_per_pixel_horizontal;
}
void* void*
hostx_screen_init (int width, int height) hostx_screen_init (int width, int height)

View File

@ -111,12 +111,6 @@ hostx_get_visual_masks (unsigned long *rmsk,
unsigned long *gmsk, unsigned long *gmsk,
unsigned long *bmsk); unsigned long *bmsk);
double
hostx_mm_per_pixel_vertical(void);
double
hostx_mm_per_pixel_horizontal(void);
void* void*
hostx_screen_init (int width, int height); hostx_screen_init (int width, int height);