$NetBSD: patch-ba,v 1.1 2011/03/11 18:03:21 drochner Exp $

SVN revision 6432

--- src/bftextview2.c.orig	2010-12-27 02:11:21.000000000 +0000
+++ src/bftextview2.c
@@ -1339,10 +1339,11 @@ bluefish_text_view_button_press_event(Gt
 		}
 	}
 	if (event->button == 1) {
-		btv->needs_blockmatch = TRUE;
-		if (!btv->mark_set_idle)
-			btv->mark_set_idle = g_idle_add_full(G_PRIORITY_HIGH_IDLE, mark_set_idle_lcb, btv->master, NULL);
-
+		if (btv->show_mbhl) {
+			btv->needs_blockmatch = TRUE;
+			if (!btv->mark_set_idle)
+				btv->mark_set_idle = g_idle_add_full(G_PRIORITY_HIGH_IDLE, mark_set_idle_lcb, btv->master, NULL);
+		}
 	} else if (event->button == 3) {
 		GtkTextIter iter;
 		/* store the location of the right mouse button click for menu items like 'edit tag'
@@ -1404,10 +1405,10 @@ bluefish_text_view_key_release_event(Gtk
 	btv->insert_was_auto_indent = FALSE;
 
 	DBG_SIGNALS("bluefish_text_view_key_release_event for %p, keyval=%d\n", widget, kevent->keyval);
-
-	if (!btv->mark_set_idle && btv->needs_blockmatch)
-		btv->mark_set_idle = g_idle_add_full(G_PRIORITY_HIGH_IDLE, mark_set_idle_lcb, btv->master, NULL);
-
+	if (btv->show_mbhl) {
+		if (!btv->mark_set_idle && btv->needs_blockmatch)
+			btv->mark_set_idle = g_idle_add_full(G_PRIORITY_HIGH_IDLE, mark_set_idle_lcb, btv->master, NULL);
+	}
 	/* sometimes we receive a release event for a key that was not pressed in the textview widget!
 	   for example if you use the keyboard to navigate the menu, and press enter to activate an item, a 
 	   key release event is received in the textview widget.... so we have to check that ! */
@@ -1838,6 +1839,12 @@ bluefish_text_view_set_show_mbhl(Bluefis
 	}
 
 	btv->show_mbhl = show;
+	if (!show && btv->showing_blockmatch) {
+		GtkTextIter it1,it2;
+		gtk_text_buffer_get_bounds(btv->buffer, &it1, &it2);
+		gtk_text_buffer_remove_tag(btv->buffer, BLUEFISH_TEXT_VIEW(btv)->blockmatch, &it1, &it2);
+		btv->showing_blockmatch = FALSE;
+	}
 	gtk_widget_queue_draw(GTK_WIDGET(btv));
 	if (btv->slave)
 		gtk_widget_queue_draw(GTK_WIDGET(btv->slave));
