From 0aa2544d04dbd4b6ee665b551ed165e4fb02d2fa Mon Sep 17 00:00:00 2001 From: Enrico Tassi Date: Wed, 15 Jul 2015 10:36:12 +0200 Subject: Imported Upstream version 8.5~beta2+dfsg --- ide/wg_Find.ml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'ide/wg_Find.ml') diff --git a/ide/wg_Find.ml b/ide/wg_Find.ml index b6f63a3b..a0949ca0 100644 --- a/ide/wg_Find.ml +++ b/ide/wg_Find.ml @@ -8,6 +8,8 @@ type mode = [ `FIND | `REPLACE ] +let b2c = Ideutils.byte_offset_to_char_offset + class finder name (view : GText.view) = let widget = Wg_Detachable.detachable @@ -61,8 +63,10 @@ class finder name (view : GText.view) = method replace () = if self#may_replace () then let txt = self#get_selected_word () in + let () = view#buffer#begin_user_action () in let _ = view#buffer#delete_selection () in let _ = view#buffer#insert_interactive (self#replacement txt) in + let () = view#buffer#end_user_action () in self#find_forward () else self#find_forward () @@ -85,8 +89,8 @@ class finder name (view : GText.view) = try let i = Str.search_backward regexp text (String.length text - 1) in let j = Str.match_end () in - Some(view#buffer#start_iter#forward_chars i, - view#buffer#start_iter#forward_chars j) + Some(view#buffer#start_iter#forward_chars (b2c text i), + view#buffer#start_iter#forward_chars (b2c text j)) with Not_found -> None method private forward_search starti = @@ -95,7 +99,7 @@ class finder name (view : GText.view) = try let i = Str.search_forward regexp text 0 in let j = Str.match_end () in - Some(starti#forward_chars i, starti#forward_chars j) + Some(starti#forward_chars (b2c text i), starti#forward_chars (b2c text j)) with Not_found -> None method replace_all () = @@ -115,7 +119,9 @@ class finder name (view : GText.view) = let () = view#buffer#delete_mark (`MARK stop_mark) in replace_at next in - replace_at view#buffer#start_iter + let () = view#buffer#begin_user_action () in + let () = replace_at view#buffer#start_iter in + view#buffer#end_user_action () method private set_not_found () = find_entry#misc#modify_base [`NORMAL, `NAME "#F7E6E6"]; -- cgit v1.2.3