@@ -164,11 +164,17 @@ def filter_title(self, title):
164164 def _search_text (self , text , is_backward = False ):
165165 if self .search_term != text :
166166 self .search_term = text
167+
167168 if is_backward :
168169 self .web_page .findText (self .search_term , self .web_page .FindBackward )
169170 else :
170171 self .web_page .findText (self .search_term )
171172
173+ # Clean web page selection if search text is empty.
174+ if len (self .search_term ) == 0 :
175+ # singleShot with 0ms means below code will run on the next event loop.
176+ QTimer ().singleShot (0 , lambda : self .triggerPageAction (self .web_page .Unselect ))
177+
172178 @interactive
173179 def search_text_forward (self ):
174180 ''' Forward Search Text.'''
@@ -188,21 +194,16 @@ def search_text_backward(self):
188194 @interactive
189195 def action_quit (self ):
190196 ''' Quit action.'''
197+ # Clean search selections if search text is not empty.
191198 if self .search_term != "" :
192199 self ._search_text ("" )
200+
193201 if self .buffer .caret_browsing_mode :
194202 if self .buffer .caret_browsing_mark_activated :
195203 self .buffer .caret_toggle_mark ()
196204 else :
197205 self .buffer .caret_exit ()
198206
199- # Need wrap hasSelection, otherwise close web page will cause webengine crash.
200- try :
201- if self .web_page .hasSelection ():
202- self .triggerPageAction (self .web_page .Unselect )
203- except :
204- pass
205-
206207 def select_text_change (self ):
207208 ''' Change selected text.'''
208209 # Not translate text if just exit caret mode.
0 commit comments