aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/modes/xf86Crtc.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-08-07 08:28:39 +0200
committermarha <marha@users.sourceforge.net>2012-08-07 08:28:39 +0200
commit666141b21e89c617ca466af62ebcb56dc4f5450c (patch)
tree4d0cddde47b6d8cbc92395dc2091849f89d68138 /xorg-server/hw/xfree86/modes/xf86Crtc.c
parente158f8fc4a9cf2f884d156ff2dfc0870facfbcba (diff)
parentf8e35ebbe71eed74ccf68af8ccda4182f1edc7f0 (diff)
downloadvcxsrv-666141b21e89c617ca466af62ebcb56dc4f5450c.tar.gz
vcxsrv-666141b21e89c617ca466af62ebcb56dc4f5450c.tar.bz2
vcxsrv-666141b21e89c617ca466af62ebcb56dc4f5450c.zip
Merge remote-tracking branch 'origin/released'
Conflicts: xorg-server/hw/xwin/glx/indirect.c xorg-server/hw/xwin/winclipboardwndproc.c xorg-server/hw/xwin/winmultiwindowicons.c xorg-server/hw/xwin/winmultiwindowwindow.c xorg-server/hw/xwin/winmultiwindowwm.c xorg-server/hw/xwin/winwin32rootlesswindow.c xorg-server/hw/xwin/winwindow.h
Diffstat (limited to 'xorg-server/hw/xfree86/modes/xf86Crtc.c')
-rw-r--r--xorg-server/hw/xfree86/modes/xf86Crtc.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/xorg-server/hw/xfree86/modes/xf86Crtc.c b/xorg-server/hw/xfree86/modes/xf86Crtc.c
index 2628409d2..154f684c4 100644
--- a/xorg-server/hw/xfree86/modes/xf86Crtc.c
+++ b/xorg-server/hw/xfree86/modes/xf86Crtc.c
@@ -734,9 +734,6 @@ xf86CrtcCloseScreen(ScreenPtr screen)
for (c = 0; c < config->num_crtc; c++) {
xf86CrtcPtr crtc = config->crtc[c];
- if (crtc->randr_crtc->scanout_pixmap)
- RRCrtcDetachScanoutPixmap(crtc->randr_crtc);
-
crtc->randr_crtc = NULL;
}
/* detach any providers */
@@ -2073,12 +2070,13 @@ xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
/*
* If there's no preferred mode, but only one monitor, pick the
- * biggest mode for its aspect ratio, assuming one exists.
+ * biggest mode for its aspect ratio or 4:3, assuming one exists.
*/
if (!ret)
do {
int i = 0;
float aspect = 0.0;
+ DisplayModePtr a = NULL, b = NULL;
/* count the number of enabled outputs */
for (i = 0, p = -1; nextEnabledOutput(config, enabled, &p); i++);
@@ -2092,8 +2090,11 @@ xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
aspect = (float) config->output[p]->mm_width /
(float) config->output[p]->mm_height;
+ a = bestModeForAspect(config, enabled, 4.0/3.0);
if (aspect)
- preferred_match[p] = bestModeForAspect(config, enabled, aspect);
+ b = bestModeForAspect(config, enabled, aspect);
+
+ preferred_match[p] = biggestMode(a, b);
if (preferred_match[p])
ret = TRUE;