 				{
 					invalidate();
 				}
+			}
+			if (usePointer)
+			{
+				m_usePointer = true;
+				if (!buttonMode)
+				{
+					buttonMode = true;
+					useHandCursor = true;
+				}
+			}
+			else if (buttonMode && m_currentStyles.cursor != 'pointer')
+			{
+				buttonMode = false;
+				useHandCursor = false;
 			}
 			m_lastHoverIndex = index;
 		}

				return;
			}
			
			for (var i : int = m_nodesMap.length; i--;)
			{
				var def : Object = m_nodesMap[i];
				var node : XML = def.node;
				if (int(m_nodesMap[i].start) <= index && int(m_nodesMap[i].end) > index)
				{
					if (!def.hover)
					{

		
		protected override function applyStyles() : void
		{
			if (m_usePointer && m_currentStyles.cursor != 'pointer')
			{
				var oldCursor : String = m_currentStyles.cursor;
				m_currentStyles.cursor = 'pointer';
				super.applyStyles();
				m_currentStyles.cursor = oldCursor;
			}
			else
			{
				super.applyStyles();
			}
			
			//TODO: find a way to re-enable tab stops
//			var fmt : TextFormat = new TextFormat();
