'-dpi' fixes for Xephyr
This commit is contained in:
parent
16ff3a8727
commit
7c0aaa53bf
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user