… | |
… | |
163 | $map->signal_connect_after (motion_notify_event => sub { |
163 | $map->signal_connect_after (motion_notify_event => sub { |
164 | my ($map, $event) = @_; |
164 | my ($map, $event) = @_; |
165 | |
165 | |
166 | return unless $self->{draw_mode}; |
166 | return unless $self->{draw_mode}; |
167 | |
167 | |
|
|
168 | my ($X, $Y) = @{$self->{draw_mode}}[1,2]; |
168 | my ($x, $y) = $map->coord ($map->get_pointer); |
169 | my ($x, $y) = $map->coord ($map->get_pointer); |
169 | |
170 | |
170 | return if $x == $self->{draw_mode}[1] |
171 | while ($x != $X || $y != $Y) { |
171 | && $y == $self->{draw_mode}[2]; |
172 | $X++ if $X < $x; |
|
|
173 | $X-- if $X > $x; |
|
|
174 | $Y++ if $Y < $y; |
|
|
175 | $Y-- if $Y > $y; |
172 | |
176 | |
173 | @{$self->{draw_mode}}[1,2] = ($x, $y); |
|
|
174 | |
|
|
175 | if ($self->{draw_mode}[0] == 1) { |
177 | if ($self->{draw_mode}[0] == 1) { |
176 | $self->place_pick ($x, $y); |
178 | $self->place_pick ($X, $Y); |
177 | return 1; |
|
|
178 | |
|
|
179 | } elsif ($self->{draw_mode}[0] == 2) { |
179 | } elsif ($self->{draw_mode}[0] == 2) { |
180 | $self->delete_arch ($x, $y); |
180 | $self->delete_arch ($X, $Y); |
181 | return 1; |
181 | } |
182 | |
|
|
183 | } |
182 | } |
184 | |
183 | |
|
|
184 | @{$self->{draw_mode}}[1,2] = ($X, $Y); |
|
|
185 | |
185 | 0 |
186 | 1 |
186 | }); |
187 | }); |
187 | |
188 | |
188 | $map->signal_connect (button_release_event => sub { |
189 | $map->signal_connect (button_release_event => sub { |
189 | my ($map, $event) = @_; |
190 | my ($map, $event) = @_; |
190 | |
191 | |