summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--lib/Xconfig/monitor.pm4
-rw-r--r--lib/Xconfig/xfree.pm12
3 files changed, 12 insertions, 6 deletions
diff --git a/NEWS b/NEWS
index a36cdbd..c4bf7b1 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,5 @@
+- don't use 1280x1024 prefered resolution
+ (using prefered resolution only when adding explicit gtf modelines)
- workaround buggy fglrx driver: make dm restart xserver (#29550)
Version 0.15 - 3 April 2007, by Pascal "Pixel" Rigaux
diff --git a/lib/Xconfig/monitor.pm b/lib/Xconfig/monitor.pm
index d376f15..365e2da 100644
--- a/lib/Xconfig/monitor.pm
+++ b/lib/Xconfig/monitor.pm
@@ -215,9 +215,7 @@ sub probe_DDC() {
$monitor->{ModeLine} = Xconfig::xfree::default_ModeLine();
my $detailed_timings = $monitor->{detailed_timings} || [];
foreach (grep { !$_->{bad_ratio} } @$detailed_timings) {
- my $ratio = $_->{horizontal_active} / $_->{vertical_active};
-
- if (abs($ratio - 4 / 3) < 0.01) {
+ if (Xconfig::xfree::xorg_builtin_resolution($_->{horizontal_active}, $_->{vertical_active})) {
#- we don't want the 4/3 modelines otherwise they conflict with the Xorg builtin vesamodes
} else {
unshift @{$monitor->{ModeLine}},
diff --git a/lib/Xconfig/xfree.pm b/lib/Xconfig/xfree.pm
index 1e5eaaa..f1f5614 100644
--- a/lib/Xconfig/xfree.pm
+++ b/lib/Xconfig/xfree.pm
@@ -381,14 +381,20 @@ sub default_ModeLine() {
ModeLine_from_string(qq(Section "Monitor"\n) . (our $default_ModeLine) . qq(EndSection\n));
}
+sub xorg_builtin_resolution {
+ my ($X, $Y) = @_;
+ my $res = $X . 'x' . $Y;
+
+ $res eq '1280x1024' ||
+ $res ne '1400x1050' && $res ne '1152x864' && $Xconfig::xfree::resolution2ratio{$res} eq '4/3';
+}
+
sub add_gtf_ModeLines {
my ($raw_X, $resolutions) = @_;
my $banner = 'modeline generated by gtf(1) [handled by XFdrake]';
- my $res = $resolutions->[0]{X} . 'x' . $resolutions->[0]{Y};
my @to_add;
- if ($res ne '1280x1024' &&
- ($res eq '1400x1050' || $res eq '1152x864' || $Xconfig::xfree::resolution2ratio{$res} ne '4/3')) {
+ if (!xorg_builtin_resolution($resolutions->[0]{X}, $resolutions->[0]{Y})) {
@to_add = map {
my $resolution = $_;
map {