# # # patch "lib/perl/ComboAutoCompletion.pm" # from [beec6576db8d416488a8ac5a8ef58b518b9f1d0b] # to [d4c849b5553fa05b897d026ae411d1bbdb28df78] # # patch "mtn-browse" # from [f4566e7120ad4d448858d753f280912755b1630f] # to [d7724d1cf5c29bbbdc938800b211641c9dbce8e9] # ============================================================ --- lib/perl/ComboAutoCompletion.pm beec6576db8d416488a8ac5a8ef58b518b9f1d0b +++ lib/perl/ComboAutoCompletion.pm d4c849b5553fa05b897d026ae411d1bbdb28df78 @@ -93,6 +93,7 @@ sub activate_auto_completion($$) my($change_state, $combo_details, $details, + $move_to_end, $name); # Sort out the precise details depending upon which comboboxentry widget @@ -102,6 +103,7 @@ sub activate_auto_completion($$) { $change_state = BRANCH_CHANGED; $combo_details = $instance->{branch_combo_details}; + $move_to_end = 1; $name = __("branch"); } elsif ($comboboxentry == $instance->{revision_comboboxentry}) @@ -114,6 +116,7 @@ sub activate_auto_completion($$) { $change_state = DIRECTORY_CHANGED; $combo_details = $instance->{directory_combo_details}; + $move_to_end = 1; $name = __("directory"); } else @@ -126,6 +129,7 @@ sub activate_auto_completion($$) $details = {instance => $instance, change_state => $change_state, combo_details => $combo_details, + move_to_end => $move_to_end, name => $name}; $comboboxentry->signal_connect("changed", \&auto_completion_comboboxentry_changed_cb, @@ -200,6 +204,7 @@ sub auto_completion_comboboxentry_change my $value; my $change_state = $details->{change_state}; my $combo_details = $details->{combo_details}; + my $move_to_end = $details->{move_to_end}; # For some reason best known to itself, Gtk+ calls this callback when the # user presses a key for the first time (but not subsequently) after a @@ -218,6 +223,7 @@ sub auto_completion_comboboxentry_change $instance->{appbar}->clear_stack(); &{$instance->{update_handler}}($instance, $change_state); hide_tooltip_window(); + $widget->child()->set_position(-1) if ($move_to_end); last; } } @@ -358,7 +364,6 @@ sub auto_completion_comboboxentry_key_re $instance->{appbar}->clear_stack(); hide_tooltip_window(); } - $wm->update_gui(); $combo_details->{value} = $value; $combo_details->{complete} = $complete; @@ -371,6 +376,10 @@ sub auto_completion_comboboxentry_key_re my @item_list; + $busy = 1; + $wm->make_busy($instance, 1); + $wm->update_gui(); + foreach my $item (@{$combo_details->{list}}) { my $item_len = length($item); @@ -385,11 +394,10 @@ sub auto_completion_comboboxentry_key_re $combo_details->{complete} = 1 if ($len == $item_len); } } + if (! $user_preferences->{static_lists}) { my $counter = 1; - $busy = 1; - $wm->make_busy($instance, 1); $instance->{appbar}->set_progress_percentage(0); $instance->{appbar}->push(__x("Populating {name} list", name => $name)); @@ -418,10 +426,18 @@ sub auto_completion_comboboxentry_key_re # Update the window state on a significant change. - &{$instance->{update_handler}}($instance, $change_state) - if ($combo_details->{complete} != $old_complete - || ($combo_details->{complete} - && $combo_details->{value} ne $old_value)); + if ($combo_details->{complete} != $old_complete + || ($combo_details->{complete} + && $combo_details->{value} ne $old_value)) + { + if (! $busy) + { + $busy = 1; + $wm->make_busy($instance, 1); + } + $wm->update_gui(); + &{$instance->{update_handler}}($instance, $change_state); + } $wm->make_busy($instance, 0) if ($busy); ============================================================ --- mtn-browse f4566e7120ad4d448858d753f280912755b1630f +++ mtn-browse d7724d1cf5c29bbbdc938800b211641c9dbce8e9 @@ -1208,6 +1208,8 @@ sub directory_up_button_clicked_cb($$) } $counter = 1; $browser->{directory_comboboxentry}->get_model()->clear(); + $browser->{directory_comboboxentry}->child()->set_text($value); + $browser->{directory_comboboxentry}->child()->set_position(-1); foreach my $item (@directory_list) { $browser->{directory_comboboxentry}->append_text($item); @@ -1224,8 +1226,12 @@ sub directory_up_button_clicked_cb($$) $browser->{appbar}->set_progress_percentage(0); } + else + { + $browser->{directory_comboboxentry}->child()->set_text($value); + $browser->{directory_comboboxentry}->child()->set_position(-1); + } - $browser->{directory_comboboxentry}->child()->set_text($value); $browser->{appbar}->clear_stack(); $wm->update_gui(); @@ -1700,6 +1706,7 @@ sub manifest_browser_treeview_row_activa $browser->{directory_combo_details}->{complete} = 1; $browser->{directory_comboboxentry}->child()-> set_text($manifest_entry->{name}); + $browser->{directory_comboboxentry}->child()->set_position(-1); $browser->{appbar}->clear_stack(); &{$browser->{update_handler}}($browser, DIRECTORY_CHANGED); } @@ -2891,6 +2898,7 @@ sub update_browser_state($$) $wm->update_gui(); $browser->{directory_comboboxentry}->child()-> set_text($browser->{directory_combo_details}->{value}); + $browser->{directory_comboboxentry}->child()->set_position(-1); $browser->{appbar}->set_progress_percentage(0); $browser->{appbar}->set_status(""); foreach my $widget (@{$browser->{revision_sensitive_group}})