diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2003-08-01 20:48:32 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2003-08-01 20:48:32 +0000 |
commit | 0b3d57562f0ef60c905e16559f46fe64174a6839 (patch) | |
tree | f0329fcb5a739434572dc577a1bd4a3a75b0b558 /perl-install/Xconfig/xfree4.pm | |
parent | 77b45e03e0c9a231bcceb551b199162464c25f9f (diff) | |
download | drakx-0b3d57562f0ef60c905e16559f46fe64174a6839.tar drakx-0b3d57562f0ef60c905e16559f46fe64174a6839.tar.gz drakx-0b3d57562f0ef60c905e16559f46fe64174a6839.tar.bz2 drakx-0b3d57562f0ef60c905e16559f46fe64174a6839.tar.xz drakx-0b3d57562f0ef60c905e16559f46fe64174a6839.zip |
=> do as Chris Picton suggested
Chris Picton said (nearly one year ago :-/) :
I have found the need for many low res screen resolutions for such
thingas as movie playing, xmame, etc.
The method XFdrake uses to enable modes is to enumerate each mode in the
XF86Config file. For example (a newly created file):
Subsection "Display"
Depth 24
Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480"
EndSubsection
It would be better (at least under XFree 4, which automatically provides
resoltions from the monitor, if it is capable), to not limit the modes
provided to the user
If I use instead, the following:
Subsection "Display"
Depth 24
Virtual 1280 960
EndSubsection
My maximum mode is exactly the same as before, but I have many more low
resolution modes.
Diffstat (limited to 'perl-install/Xconfig/xfree4.pm')
-rw-r--r-- | perl-install/Xconfig/xfree4.pm | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/perl-install/Xconfig/xfree4.pm b/perl-install/Xconfig/xfree4.pm index a6b1e424d..5c2d23286 100644 --- a/perl-install/Xconfig/xfree4.pm +++ b/perl-install/Xconfig/xfree4.pm @@ -84,13 +84,16 @@ sub set_wacoms { sub depths { 8, 15, 16, 24 } sub set_resolution { - my ($raw_X, $resolution, $Screen) = @_; - - $resolution = +{ %$resolution }; - #- XFree4 doesn't like depth 32, silently replacing it with 24 - $resolution->{Depth} = 24 if $resolution->{Depth} eq '32'; + my ($raw_X, $resolution, $o_Screen_) = @_; + + foreach my $Screen ($o_Screen_ ? $o_Screen_ : $raw_X->get_screens) { + $Screen ||= $raw_X->get_default_screen or internal_error('no screen'); - $raw_X->SUPER::set_resolution($resolution, $Screen); + $Screen->{DefaultColorDepth} = { val => $resolution->{Depth} eq '32' ? 24 : $resolution->{Depth} }; + $Screen->{Display} = [ map { + { l => { Depth => { val => $_ }, Virtual => { val => join(' ', @$resolution{'X', 'Y'}) } } }; + } $raw_X->depths ]; + } } sub get_device_section_fields { |