--- deliantra/Deliantra-Client/DC/MapWidget.pm 2007/08/14 13:25:25 1.118 +++ deliantra/Deliantra-Client/DC/MapWidget.pm 2007/08/28 01:23:47 1.119 @@ -26,11 +26,6 @@ @_ ); - $self->{completer} = new CFPlus::MapWidget::Command:: - command => $self->{command}, - tooltip => "#completer_help", - ; - $self } @@ -49,16 +44,16 @@ $tooltip = "$data\n\n$tooltip"; $tooltip =~ s/\s+$//; - $self->{completer}{command}{$command} = [$data, $tooltip, $widget, $cb, ++$self->{command_id}]; + $::COMPLETER->{command}{$command} = [$data, $tooltip, $widget, $cb, ++$self->{command_id}]; } sub clr_commands { my ($self) = @_; - %{$self->{completer}{command}} = (); + %{$::COMPLETER->{command}} = (); - $self->{completer}->hide - if $self->{completer}; + $::COMPLETER->hide + if $::COMPLETER; } sub server_login { @@ -327,50 +322,7 @@ $mod &= CFPlus::KMOD_CTRL | CFPlus::KMOD_ALT | CFPlus::KMOD_SHIFT; - if ($sym == 9) { - ($mod & CFPlus::KMOD_SHIFT ? $::MESSAGE_WINDOW : $::PL_WINDOW)->toggle_visibility; - } elsif ($sym == CFPlus::SDLK_F1 && !$mod) { - $::HELP_WINDOW->toggle_visibility; - } elsif ($sym == CFPlus::SDLK_F2 && !$mod) { - ::toggle_player_page ($::STATS_PAGE); - } elsif ($sym == CFPlus::SDLK_F3 && !$mod) { - ::toggle_player_page ($::SKILL_PAGE); - } elsif ($sym == CFPlus::SDLK_F4 && !$mod) { - ::toggle_player_page ($::SPELL_PAGE); - } elsif ($sym == CFPlus::SDLK_F5 && !$mod) { - ::toggle_player_page ($::INVENTORY_PAGE); - } elsif ($sym == CFPlus::SDLK_F9 && !$mod) { - $::SETUP_DIALOG->toggle_visibility; - } elsif ($uni >= ord "0" && $uni <= ord "9" && $mod & CFPlus::KMOD_ALT) { - $::MESSAGE_WINDOW->user_switch_to_page (chr $uni); - } elsif (!$::CONN) { - return 0; # bindings further down need a valid connection - - } elsif ($uni == ord ",") { - $::CONN->user_send ("take"); - } elsif ($uni == ord " ") { - $::CONN->user_send ("apply"); - } elsif ($uni == 13) { - $::MESSAGE_WINDOW->activate_current; - } elsif ($uni == ord ".") { - $::CONN->user_send ($self->{completer}{last_command}) - if exists $self->{completer}{last_command}; - } elsif (my @macros = CFPlus::Macro::match_event $ev) { - $::CONN->macro_send ($_) for @macros; - } elsif (($sym == CFPlus::SDLK_KP_PLUS && !$mod) || $uni == ord "+") { - $::CONN->user_send ("rotateshoottype +"); - } elsif (($sym == CFPlus::SDLK_KP_MINUS && !$mod) || $uni == ord "-") { - $::CONN->user_send ("rotateshoottype -"); - } elsif ($uni == ord '!') { - $self->{completer}->set_prefix ("shout "); - $self->{completer}->show; - } elsif ($uni == ord '"') { - $self->{completer}->set_prefix ("$::CFG->{say_command} "); - $self->{completer}->show; - } elsif ($uni == ord "'") { - $self->{completer}->set_prefix (""); - $self->{completer}->show; - } elsif (my $dir = $DIR{(!!($mod & CFPlus::KMOD_ALT)) . ",$sym"}) { + if ($::CONN && (my $dir = $DIR{(!!($mod & CFPlus::KMOD_ALT)) . ",$sym"})) { if ($mod & CFPlus::KMOD_SHIFT) { $self->{shft}++; if ($dir->[0] != $self->{fire_dir}) { @@ -383,14 +335,11 @@ } else { $::CONN->user_send ("$dir->[1]"); } - } elsif ((ord 'a') <= $uni && $uni <= (ord 'z')) { - $self->{completer}->inject_key_down ($ev); - $self->{completer}->show; - } else { - return 0; + + return 1; } - 1 + 0 } sub invoke_key_up { @@ -528,7 +477,7 @@ return unless $self->{list}; my $focused = $CFPlus::UI::FOCUS == $self - || $CFPlus::UI::FOCUS == $self->{completer}{entry}; + || $CFPlus::UI::FOCUS == $::COMPLETER{entry}; return unless $focused || !$::FAST;