Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.1:Update
xorg-x11-server
bug524724-defaultModesForLowerSizeOnly.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bug524724-defaultModesForLowerSizeOnly.patch of Package xorg-x11-server
Index: xorg-server-1.5.2/hw/xfree86/modes/xf86Crtc.c =================================================================== --- xorg-server-1.5.2.orig/hw/xfree86/modes/xf86Crtc.c +++ xorg-server-1.5.2/hw/xfree86/modes/xf86Crtc.c @@ -1418,6 +1418,7 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, int max_clock = 0; double clock; enum { sync_config, sync_edid, sync_default } sync_source = sync_default; + int maxMonX = 0, maxMonY = 0; while (output->probed_modes != NULL) xf86DeleteMode(&output->probed_modes, output->probed_modes); @@ -1554,6 +1555,28 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, xf86ValidateModesClocks(scrn, output_modes, &min_clock, &max_clock, 1); } + /* + * Get monitor resolution. + * This is an approximation: get the biggest supported mode + */ + if (output_modes) + for (mode = output_modes; mode != NULL; mode = mode->next) { + if (mode->HDisplay > maxMonX) + maxMonX = mode->HDisplay; + if (mode->VDisplay > maxMonY) + maxMonY = mode->VDisplay; + if (mode->next == output_modes) + break; + } + if (config_modes) + for (mode = config_modes; mode != NULL; mode = mode->next) { + if (mode->HDisplay > maxMonX) + maxMonX = mode->HDisplay; + if (mode->VDisplay > maxMonY) + maxMonY = mode->VDisplay; + if (mode->next == config_modes) + break; + } output->probed_modes = NULL; output->probed_modes = xf86ModesAdd (output->probed_modes, config_modes); @@ -1561,6 +1584,13 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, output->probed_modes = xf86ModesAdd (output->probed_modes, default_modes); /* + * Only allow modes lower than max monitor resolution + */ + if (maxMonX && maxMonY) + xf86ValidateModesSize (scrn, output->probed_modes, + maxMonX, maxMonY, 0); + + /* * Check all modes against max size */ if (maxX && maxY)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor