From c1a075785b762701753c906467d092a3c9bb82df Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Sat, 12 Mar 2005 19:52:34 +0000
Subject: [PATCH] fix: when we select some text and release the button on a
 tagged text, do not open url

---
 plugins/gtkgui/chat.py | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/plugins/gtkgui/chat.py b/plugins/gtkgui/chat.py
index af237300f..c5211a0e4 100644
--- a/plugins/gtkgui/chat.py
+++ b/plugins/gtkgui/chat.py
@@ -405,15 +405,6 @@ class chat:
 
 	def hyperlink_handler(self, texttag, widget, event, iter, kind):
 		if event.type == gtk.gdk.BUTTON_RELEASE:
-			#FIXME (nk to yann):
-			# can we know if that button release had also before selected text?
-			# let's say we have http://be this is nice
-			# and I start to select (with my mouse) the text from right to left
-			# starting with nice. SO I go nice is this eb//:ptth and just stop
-			# pressing the mouse button then we will launch the mailer/browser
-			# which is not what the user want is there sth you do to fix this?
-			# maybe check before launching if we have a selection with non empty
-			# text in it?
 			begin_iter = iter.copy()
 			#we get the begining of the tag
 			while not begin_iter.begins_tag(texttag):
@@ -422,6 +413,12 @@ class chat:
 			#we get the end of the tag
 			while not end_iter.ends_tag(texttag):
 				end_iter.forward_char()
+			begin_sel, end_sel = widget.get_buffer().get_selection_bounds()
+			if begin_sel.in_range(begin_iter, end_iter) or\
+				end_sel.in_range(begin_iter, end_iter):
+				# we have selected a text and release the button in an url, we don't
+				# want to open the url
+				return
 			word = begin_iter.get_text(end_iter)
 			if event.button == 3:
 				self.make_link_menu(event, kind, word)