# # # patch "FindText.pm" # from [bd4864c583ac0258554cbf366d52c028a587896f] # to [1ed4fb06ae9a50815ead9253eb8c327a2ee6f16f] # # patch "mtn-browse" # from [4ca9e9de6f150b84a8404ffe0dc4c48e2f4ffefe] # to [0fe7623067ba6fb3c228e5fa2a5bfefcc5fd2061] # ============================================================ --- FindText.pm bd4864c583ac0258554cbf366d52c028a587896f +++ FindText.pm 1ed4fb06ae9a50815ead9253eb8c327a2ee6f16f @@ -95,6 +95,8 @@ sub find_text($$) get_find_text_window($parent, $text_view) if (! defined(find_current_window($text_view))); + delete($text_view->{find_text_disabled}); + } # ############################################################################## @@ -167,6 +169,18 @@ sub enable_find_text($$) } } + # Ammend the textview object to reflect its file text enabled/disabled + # state. + + if ($enable) + { + delete($text_view->{find_text_disabled}); + } + else + { + $text_view->{find_text_disabled} = 1; + } + } # ############################################################################## @@ -228,17 +242,24 @@ sub find_text_textview_populate_popup_cb # dialog. $menu_item = Gtk2::MenuItem->new("_Find"); - $menu_item->signal_connect - ("activate", - sub { - my($widget, $details) = @_; - return if ($details->{instance}->{in_cb}); - local $details->{instance}->{in_cb} = 1; - find_text($details->{instance}->{window}, - $details->{textview_widget}); - }, - {instance => $instance, - textview_widget => $widget}); + if ($widget->{find_text_disabled}) + { + $menu_item->set_sensitive(FALSE); + } + else + { + $menu_item->signal_connect + ("activate", + sub { + my($widget, $details) = @_; + return if ($details->{instance}->{in_cb}); + local $details->{instance}->{in_cb} = 1; + find_text($details->{instance}->{window}, + $details->{textview_widget}); + }, + {instance => $instance, + textview_widget => $widget}); + } $menu_item->show(); $separator = Gtk2::SeparatorMenuItem->new(); $separator->show(); @@ -276,6 +297,8 @@ sub find_text_textview_key_press_event_c return FALSE if ($instance->{in_cb}); local $instance->{in_cb} = 1; + return FALSE if ($widget->{find_text_disabled}); + my($consumed_modifiers, $keymap, $keyval, ============================================================ --- mtn-browse 4ca9e9de6f150b84a8404ffe0dc4c48e2f4ffefe +++ mtn-browse 0fe7623067ba6fb3c228e5fa2a5bfefcc5fd2061 @@ -125,7 +125,6 @@ sub display_file($$); sub determine_mime_type($$$$); sub directory_up_button_clicked_cb($$); sub display_file($$); -sub enable_find_text_dialog($$); sub file_change_history_button_clicked_cb($$); sub find_files_button_clicked_cb($$); sub get_browser_window(;$$$$$); @@ -1638,7 +1637,6 @@ sub get_browser_window(;$$$$$) ("key_press_event", \&find_text_textview_key_press_event_cb, $browser); - $browser->{file_view_sv_enabled_find_text} = 1; $browser->{file_view_sv}->show_all(); local $browser->{in_cb} = 1; @@ -2263,7 +2261,7 @@ sub update_browser_state($$) $widget->set_sensitive(FALSE); } reset_find_text($browser->{file_view_sv}); - enable_find_text_dialog($browser, 0); + enable_find_text($browser->{file_view_sv}, 0); # Display the selected file's contents. @@ -2280,7 +2278,7 @@ sub update_browser_state($$) { $widget->set_sensitive(TRUE); } - enable_find_text_dialog($browser, 1); + enable_find_text($browser->{file_view_sv}, 1); } # Update the file details labels. @@ -2324,7 +2322,7 @@ sub update_browser_state($$) set_label_value($browser->{file_id_value_label}, ""); set_label_value($browser->{last_update_value_label}, ""); set_label_value($browser->{file_revision_id_value_label}, ""); - enable_find_text_dialog($browser, 0); + enable_find_text($browser->{file_view_sv}, 0); } @@ -2637,53 +2635,6 @@ sub setup_mtn_object($$) # ############################################################################## # -# Routine - enable_find_text_dialog -# -# Description - Enable or disable any find text dialog associated with the -# specified browser instance. -# -# Data - $browser : The browser instance that is to have any -# associated find text dialog enabled or disabled. -# $enable : True if the find text dialog is to be enabled, -# otherwise false if it is to be disabled. -# -############################################################################## - - - -sub enable_find_text_dialog($$) -{ - - my($browser, $enable) = @_; - - enable_find_text($browser->{file_view_sv}, $enable); - if ($enable) - { - if (! $browser->{file_view_sv_enabled_find_text}) - { - $browser->{file_view_sv}->signal_handler_unblock - ($browser->{file_view_sv_populate_popup_handler}); - $browser->{file_view_sv}->signal_handler_unblock - ($browser->{file_view_sv_key_press_handler}); - $browser->{file_view_sv_enabled_find_text} = 1; - } - } - else - { - if ($browser->{file_view_sv_enabled_find_text}) - { - $browser->{file_view_sv}->signal_handler_block - ($browser->{file_view_sv_populate_popup_handler}); - $browser->{file_view_sv}->signal_handler_block - ($browser->{file_view_sv_key_press_handler}); - $browser->{file_view_sv_enabled_find_text} = 0; - } - } - -} -# -############################################################################## -# # Routine - mtn_db_locked_handler # # Description - This routine is called when ever a locked database