summaryrefslogtreecommitdiffstats
path: root/perl-install/Xconfig/screen.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/Xconfig/screen.pm')
-rw-r--r--perl-install/Xconfig/screen.pm25
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;
}