--- deliantra/Deliantra-Client/DC/UI.pm 2007/07/20 18:19:45 1.387 +++ deliantra/Deliantra-Client/DC/UI.pm 2007/07/20 18:30:03 1.388 @@ -115,8 +115,12 @@ if ($GRAB) { if ($ev->{button} == 4 || $ev->{button} == 5) { # mousewheel - $ev->{dx} = 0; - $ev->{dy} = $ev->{button} * 2 - 9; + my $delta = $ev->{button} * 2 - 9; + my $shift = $ev->{mod} & CFPlus::KMOD_SHIFT; + + $ev->{dx} = $shift ? $delta : 0; + $ev->{dy} = $shift ? 0 : $delta; + $GRAB->emit (mouse_wheel => $ev); } else { $GRAB->emit (button_down => $ev) @@ -1135,9 +1139,11 @@ sub invoke_mouse_wheel { my ($self, $ev) = @_; - return 0 unless $ev->{dy}; # only vertical movements for now + $self->{vslider}->emit (mouse_wheel => $ev) + if $ev->{dy}; - $self->{vslider}->emit (mouse_wheel => $ev); + $self->{hslider}->emit (mouse_wheel => $ev) + if $ev->{dx}; 1 }