diff options
Diffstat (limited to 'perl-install/Xconfig/screen.pm')
-rw-r--r-- | perl-install/Xconfig/screen.pm | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/perl-install/Xconfig/screen.pm b/perl-install/Xconfig/screen.pm index 89e416a4d..761c5defd 100644 --- a/perl-install/Xconfig/screen.pm +++ b/perl-install/Xconfig/screen.pm @@ -7,7 +7,7 @@ use common; sub configure { - my ($raw_X) = @_; + my ($raw_X, $card) = @_; my @devices = $raw_X->get_devices; my @monitors = $raw_X->get_monitors; @@ -17,12 +17,25 @@ sub configure { @monitors = $raw_X->get_monitors; } - my @sections = mapn { - my ($device, $monitor) = @_; - { Device => $device->{Identifier}, Monitor => $monitor->{Identifier} } - } \@devices, \@monitors; + if ($card->{server}) { + $raw_X->{xfree3}->set_screens({ Device => $devices[0]{Identifier}, Monitor => $monitors[0]{Identifier}, + Driver => $Xconfig::card::serversdriver{$card->{server}} || internal_error("bad XFree3 server $card->{server}"), + }); + } else { + @{$raw_X->{xfree3}} = (); + } + + if ($card->{Driver}) { + my @sections = mapn { + my ($device, $monitor) = @_; + { Device => $device->{Identifier}, Monitor => $monitor->{Identifier} } + } \@devices, \@monitors; + + $raw_X->{xfree4}->set_screens(@sections); + } else { + @{$raw_X->{xfree4}} = (); + } - $raw_X->set_screens(@sections); 1; } |