From 45e3db77f235bbae038ebb8f19738cc394b4d28d Mon Sep 17 00:00:00 2001
From: Brendan Dahl <brendan.dahl@gmail.com>
Date: Wed, 15 Feb 2012 14:38:18 -0800
Subject: [PATCH] Fix the font inspector.

---
 src/debugger.js | 23 +++++++++--------------
 web/viewer.js   |  1 +
 2 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/src/debugger.js b/src/debugger.js
index 3741eb0f0..d647e7489 100644
--- a/src/debugger.js
+++ b/src/debugger.js
@@ -7,31 +7,26 @@ var FontInspector = (function FontInspectorClosure() {
   var fonts;
   var panelWidth = 300;
   var active = false;
+  var fontAttribute = 'data-font-name';
   function removeSelection() {
-    var divs = document.getElementsByTagName('div');
+    var divs = document.querySelectorAll('div[' + fontAttribute + ']');
     for (var i = 0; i < divs.length; ++i) {
-      var div = divs[i], style = div.getAttribute('style');
-      if (!style || style.indexOf('pdfFont') < 0) continue;
-      var m = /(pdfFont\d+)/.exec(style);
-      div.dataset.fontName = '';
+      var div = divs[i];
       div.className = '';
     }
   }
   function resetSelection() {
-    var divs = document.getElementsByTagName('div');
+    var divs = document.querySelectorAll('div[' + fontAttribute + ']');
     for (var i = 0; i < divs.length; ++i) {
-      var div = divs[i], style = div.getAttribute('style');
-      if (!style || style.indexOf('pdfFont') < 0) continue;
-      var m = /(pdfFont\d+)/.exec(style);
-      div.dataset.fontName = m[1];
+      var div = divs[i];
       div.className = 'debuggerHideText';
     }
   }
   function selectFont(fontName, show) {
-    var divs = document.getElementsByTagName('div');
+    var divs = document.querySelectorAll('div[' + fontAttribute + '=' +
+                                         fontName + ']');
     for (var i = 0; i < divs.length; ++i) {
-      var div = divs[i], style = div.getAttribute('style');
-      if (div.dataset.fontName != fontName) continue;
+      var div = divs[i];
       div.className = show ? 'debuggerShowText' : 'debuggerHideText';
     }
   }
@@ -75,7 +70,7 @@ var FontInspector = (function FontInspectorClosure() {
         document.body.addEventListener('click', textLayerClick, true);
         resetSelection();
       } else {
-        document.body.removeEventListener('click', textLayerClick);
+        document.body.removeEventListener('click', textLayerClick, true);
         removeSelection();
       }
     },
diff --git a/web/viewer.js b/web/viewer.js
index 5381f69c1..602979e2e 100644
--- a/web/viewer.js
+++ b/web/viewer.js
@@ -1085,6 +1085,7 @@ var TextLayerBuilder = function textLayerBuilder(textLayerDiv) {
     // vScale and hScale already contain the scaling to pixel units
     var fontHeight = fontSize * text.geom.vScale;
     textDiv.dataset.canvasWidth = text.canvasWidth * text.geom.hScale;
+    textDiv.dataset.fontName = fontName;
 
     textDiv.style.fontSize = fontHeight + 'px';
     textDiv.style.left = text.geom.x + 'px';