From c70e56839df5a0942c00cb29707db1a2e021cf00 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Thu, 23 Jan 2003 13:10:51 +0000 Subject: introduce ->is_fbdev, and use it to simplify ->set_resolution --- perl-install/Xconfig/xfree3.pm | 18 ++++++++---------- perl-install/Xconfig/xfree4.pm | 14 +++++++++----- perl-install/Xconfig/xfreeX.pm | 2 +- 3 files changed, 18 insertions(+), 16 deletions(-) (limited to 'perl-install/Xconfig') diff --git a/perl-install/Xconfig/xfree3.pm b/perl-install/Xconfig/xfree3.pm index afb890d91..139b07d97 100644 --- a/perl-install/Xconfig/xfree3.pm +++ b/perl-install/Xconfig/xfree3.pm @@ -84,16 +84,6 @@ sub set_wacoms { } sub depths { 8, 15, 16, 24, 32 } -sub set_resolution { - my ($raw_X, $resolution, $Screen) = @_; - - $resolution = +{ %$resolution }; - if (my $Screen_ = $Screen || $raw_X->get_default_screen) { - #- use framebuffer if Screen is - $resolution->{fbdev} = 1 if val($Screen_->{Driver}) eq 'fbdev'; - } - $raw_X->SUPER::set_resolution($resolution, $Screen); -} sub get_device_section_fields { qw(VendorName BoardName Chipset VideoRam); #-); @@ -111,6 +101,14 @@ sub new_device_sections { @l; } +sub is_fbdev { + my ($raw_X, $Screen) = @_; + + my $Screen_ = $Screen || $raw_X->get_default_screen or return; + + val($Screen_->{Driver}) eq 'fbdev'; +} + sub set_Option {} diff --git a/perl-install/Xconfig/xfree4.pm b/perl-install/Xconfig/xfree4.pm index 7dd57dab1..a6b1e424d 100644 --- a/perl-install/Xconfig/xfree4.pm +++ b/perl-install/Xconfig/xfree4.pm @@ -87,11 +87,6 @@ sub set_resolution { my ($raw_X, $resolution, $Screen) = @_; $resolution = +{ %$resolution }; - if (my $Screen_ = $Screen || $raw_X->get_default_screen) { - #- use framebuffer if corresponding Device has Driver framebuffer - my $Device = $raw_X->get_Section_by_Identifier('Device', val($Screen_->{Device})) or internal_error("no device named $Screen_->{Device}"); - $resolution->{fbdev} = 1 if val($Device->{Driver}) eq 'fbdev'; - } #- XFree4 doesn't like depth 32, silently replacing it with 24 $resolution->{Depth} = 24 if $resolution->{Depth} eq '32'; @@ -122,6 +117,15 @@ sub new_screen_sections { @l; } +sub is_fbdev { + my ($raw_X, $Screen) = @_; + + my $Screen_ = $Screen || $raw_X->get_default_screen or return; + + my $Device = $raw_X->get_Section_by_Identifier('Device', val($Screen_->{Device})) or internal_error("no device named $Screen_->{Device}"); + val($Device->{Driver}) eq 'fbdev'; +} + sub set_Option { my ($_raw_X, $category, $node, @names) = @_; diff --git a/perl-install/Xconfig/xfreeX.pm b/perl-install/Xconfig/xfreeX.pm index 8351c5685..5ffe2c0b3 100644 --- a/perl-install/Xconfig/xfreeX.pm +++ b/perl-install/Xconfig/xfreeX.pm @@ -185,7 +185,7 @@ sub set_resolution { $Screen->{DefaultColorDepth} = { val => $resolution->{Depth} }; $Screen->{Display} = [ map { my $modes = do { - if ($resolution->{fbdev}) { + if ($raw_X->is_fbdev($Screen)) { '"default"'; } else { my @Modes = grep { -- cgit v1.2.1