jquery-qtip2-rails 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. data/README.md +16 -13
  2. data/jquery-qtip2-rails.gemspec +7 -4
  3. data/lib/jquery-qtip2-rails/version.rb +1 -1
  4. data/test/dummy/README.rdoc +261 -0
  5. data/test/dummy/Rakefile +7 -0
  6. data/test/dummy/app/assets/javascripts/application.js +16 -0
  7. data/test/dummy/app/assets/javascripts/home.js +48 -0
  8. data/test/dummy/app/assets/stylesheets/application.css +14 -0
  9. data/test/dummy/app/assets/stylesheets/home.css +4 -0
  10. data/test/dummy/app/controllers/application_controller.rb +3 -0
  11. data/test/dummy/app/controllers/home_controller.rb +5 -0
  12. data/test/dummy/app/helpers/application_helper.rb +2 -0
  13. data/test/dummy/app/helpers/home_helper.rb +2 -0
  14. data/test/dummy/app/mailers/.gitkeep +0 -0
  15. data/test/dummy/app/models/.gitkeep +0 -0
  16. data/test/dummy/app/views/home/index.html.erb +14 -0
  17. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  18. data/test/dummy/config.ru +4 -0
  19. data/test/dummy/config/application.rb +68 -0
  20. data/test/dummy/config/boot.rb +10 -0
  21. data/test/dummy/config/environment.rb +5 -0
  22. data/test/dummy/config/environments/development.rb +31 -0
  23. data/test/dummy/config/environments/production.rb +64 -0
  24. data/test/dummy/config/environments/test.rb +35 -0
  25. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  26. data/test/dummy/config/initializers/inflections.rb +15 -0
  27. data/test/dummy/config/initializers/mime_types.rb +5 -0
  28. data/test/dummy/config/initializers/secret_token.rb +7 -0
  29. data/test/dummy/config/initializers/session_store.rb +8 -0
  30. data/test/dummy/config/initializers/wrap_parameters.rb +10 -0
  31. data/test/dummy/config/locales/en.yml +5 -0
  32. data/test/dummy/config/routes.rb +3 -0
  33. data/test/dummy/lib/assets/.gitkeep +0 -0
  34. data/test/dummy/log/.gitkeep +0 -0
  35. data/test/dummy/public/404.html +26 -0
  36. data/test/dummy/public/422.html +26 -0
  37. data/test/dummy/public/500.html +25 -0
  38. data/test/dummy/public/favicon.ico +0 -0
  39. data/test/dummy/script/rails +6 -0
  40. data/vendor/assets/jquery-qtip/jquery-qtip/src/ajax/ajax.js +3 -2
  41. data/vendor/assets/jquery-qtip/jquery-qtip/src/{styles.css → basic.css} +0 -0
  42. data/vendor/assets/jquery-qtip/jquery-qtip/src/core.css +27 -22
  43. data/vendor/assets/jquery-qtip/jquery-qtip/src/core.js +162 -315
  44. data/vendor/assets/jquery-qtip/jquery-qtip/src/{extra.css → css3.css} +70 -30
  45. data/vendor/assets/jquery-qtip/jquery-qtip/src/imagemap/imagemap.js +59 -45
  46. data/vendor/assets/jquery-qtip/jquery-qtip/src/intro.js +31 -29
  47. data/vendor/assets/jquery-qtip/jquery-qtip/src/modal/modal.js +7 -5
  48. data/vendor/assets/jquery-qtip/jquery-qtip/src/outro.js +2 -2
  49. data/vendor/assets/jquery-qtip/jquery-qtip/src/svg/svg.js +8 -8
  50. data/vendor/assets/jquery-qtip/jquery-qtip/src/tips/tips.css +7 -3
  51. data/vendor/assets/jquery-qtip/jquery-qtip/src/tips/tips.js +159 -147
  52. data/vendor/assets/jquery-qtip/jquery-qtip/src/viewport/viewport.js +112 -0
  53. data/vendor/assets/jquery-qtip/jquery.qtip.basic.css +5 -0
  54. data/vendor/assets/jquery-qtip/jquery.qtip.basic.js +0 -1
  55. data/vendor/assets/jquery-qtip/jquery.qtip.css +3 -4
  56. data/vendor/assets/jquery-qtip/jquery.qtip.js +5 -5
  57. metadata +103 -8
  58. data/vendor/assets/jquery-qtip/jquery-qtip/src/header.txt +0 -14
@@ -1,11 +1,11 @@
1
- /*! Add shadows to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */
1
+ /* Add shadows to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */
2
2
  .ui-tooltip-shadow{
3
3
  -webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
4
4
  -moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
5
5
  box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
6
6
  }
7
7
 
8
- /*! Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */
8
+ /* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */
9
9
  .ui-tooltip-rounded,
10
10
  .ui-tooltip-tipsy,
11
11
  .ui-tooltip-bootstrap{
@@ -14,7 +14,7 @@
14
14
  border-radius: 5px;
15
15
  }
16
16
 
17
- /*! Youtube tooltip style */
17
+ /* Youtube tooltip style */
18
18
  .ui-tooltip-youtube{
19
19
  -moz-border-radius: 2px;
20
20
  -webkit-border-radius: 2px;
@@ -28,12 +28,11 @@
28
28
  border-width: 0;
29
29
 
30
30
  background: #4A4A4A;
31
+ background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black));
32
+ background-image: -webkit-linear-gradient(top,#4A4A4A 0,black 100%);
31
33
  background-image: -moz-linear-gradient(top,#4A4A4A 0,black 100%);
32
34
  background-image: -ms-linear-gradient(top,#4A4A4A 0,black 100%);
33
35
  background-image: -o-linear-gradient(top,#4A4A4A 0,black 100%);
34
- background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black));
35
- background-image: -webkit-linear-gradient(top,#4A4A4A 0,black 100%);
36
- background-image: linear-gradient(to bottom,#4A4A4A 0,black 100%);
37
36
  }
38
37
 
39
38
  .ui-tooltip-youtube .ui-tooltip-titlebar{
@@ -62,8 +61,11 @@
62
61
  .ui-tooltip-jtools{
63
62
  background: #232323;
64
63
  background: rgba(0, 0, 0, 0.7);
65
- background-image: -moz-linear-gradient(top, #717171, #232323);
66
64
  background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323));
65
+ background-image: -moz-linear-gradient(top, #717171, #232323);
66
+ background-image: -webkit-linear-gradient(top, #717171, #232323);
67
+ background-image: -ms-linear-gradient(top, #717171, #232323);
68
+ background-image: -o-linear-gradient(top, #717171, #232323);
67
69
 
68
70
  border: 2px solid #ddd;
69
71
  border: 2px solid rgba(241,241,241,1);
@@ -137,7 +139,7 @@
137
139
  background: rgba(0, 0, 0, .87);
138
140
 
139
141
  color: white;
140
- border: 0px solid transparent;
142
+ border: 0 solid transparent;
141
143
 
142
144
  font-size: 11px;
143
145
  font-family: 'Lucida Grande', sans-serif;
@@ -185,8 +187,11 @@
185
187
 
186
188
  color: white;
187
189
  background: #3A79B8;
188
- background-image: -moz-linear-gradient(top, #3A79B8, #2E629D);
189
190
  background-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D));
191
+ background-image: -webkit-linear-gradient(top, #3A79B8, #2E629D);
192
+ background-image: -moz-linear-gradient(top, #3A79B8, #2E629D);
193
+ background-image: -ms-linear-gradient(top, #3A79B8, #2E629D);
194
+ background-image: -o-linear-gradient(top, #3A79B8, #2E629D);
190
195
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);
191
196
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)";
192
197
  }
@@ -209,52 +214,86 @@
209
214
  * Does not work with IE 7.
210
215
  */
211
216
  .ui-tooltip-bootstrap{
212
- font-size: 13px;
213
- line-height: 18px;
214
-
217
+ /** Taken from Bootstrap body */
218
+ font-size: 14px;
219
+ line-height: 20px;
215
220
  color: #333333;
216
- background-color: #ffffff;
217
-
218
221
 
222
+ /** Taken from Bootstrap .popover */
223
+ padding: 1px;
224
+ background-color: #ffffff;
219
225
  border: 1px solid #ccc;
220
226
  border: 1px solid rgba(0, 0, 0, 0.2);
221
-
222
- *border-right-width: 2px;
223
- *border-bottom-width: 2px;
224
-
225
- -webkit-border-radius: 5px;
226
- -moz-border-radius: 5px;
227
- border-radius: 5px;
228
-
227
+ -webkit-border-radius: 6px;
228
+ -moz-border-radius: 6px;
229
+ border-radius: 6px;
229
230
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
230
231
  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
231
232
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
232
-
233
233
  -webkit-background-clip: padding-box;
234
234
  -moz-background-clip: padding;
235
235
  background-clip: padding-box;
236
236
  }
237
237
 
238
238
  .ui-tooltip-bootstrap .ui-tooltip-titlebar{
239
- font-size: 18px;
240
- line-height: 22px;
241
-
242
- border-bottom: 1px solid #ccc;
243
- background-color: transparent;
239
+ /** Taken from Bootstrap .popover-title */
240
+ padding: 8px 14px;
241
+ margin: 0;
242
+ font-size: 14px;
243
+ font-weight: normal;
244
+ line-height: 18px;
245
+ background-color: #f7f7f7;
246
+ border-bottom: 1px solid #ebebeb;
247
+ -webkit-border-radius: 5px 5px 0 0;
248
+ -moz-border-radius: 5px 5px 0 0;
249
+ border-radius: 5px 5px 0 0;
244
250
  }
245
251
 
246
252
  .ui-tooltip-bootstrap .ui-tooltip-titlebar .ui-state-default{
247
- right: 9px; top: 49%;
253
+ /**
254
+ * Overrides qTip2:
255
+ * .ui-tooltip-titlebar .ui-state-default{
256
+ * [...]
257
+ * right: 4px;
258
+ * top: 50%;
259
+ * [...]
260
+ * border-style: solid;
261
+ * }
262
+ */
263
+ right: 11px;
264
+ top: 45%;
248
265
  border-style: none;
249
266
  }
250
267
 
268
+ .ui-tooltip-bootstrap .ui-tooltip-content{
269
+ /** Taken from Bootstrap .popover-content */
270
+ padding: 9px 14px;
271
+ }
272
+
251
273
  .ui-tooltip-bootstrap .ui-tooltip-icon{
252
- background: white;
274
+ /**
275
+ * Overrides qTip2:
276
+ * .ui-tooltip-default .ui-tooltip-icon {
277
+ * border-color: #CCC;
278
+ * background: #F1F1F1;
279
+ * color: #777;
280
+ * }
281
+ */
282
+ background: transparent;
253
283
  }
254
284
 
255
285
  .ui-tooltip-bootstrap .ui-tooltip-icon .ui-icon{
286
+ /**
287
+ * Overrides qTip2:
288
+ * .ui-tooltip-icon .ui-icon{
289
+ * width: 18px;
290
+ * height: 14px;
291
+ * }
292
+ */
256
293
  width: auto;
257
294
  height: auto;
295
+
296
+ /* Taken from Bootstrap .close */
258
297
  float: right;
259
298
  font-size: 20px;
260
299
  font-weight: bold;
@@ -266,6 +305,7 @@
266
305
  }
267
306
 
268
307
  .ui-tooltip-bootstrap .ui-tooltip-icon .ui-icon:hover{
308
+ /* Taken from Bootstrap .close:hover */
269
309
  color: #000000;
270
310
  text-decoration: none;
271
311
  cursor: pointer;
@@ -1,15 +1,20 @@
1
- PLUGINS.imagemap = function(area, corner, flip)
1
+ PLUGINS.imagemap = function(api, area, corner, adjustMethod)
2
2
  {
3
3
  if(!area.jquery) { area = $(area); }
4
4
 
5
- var shape = (area[0].shape || area.attr('shape')).toLowerCase(),
6
- baseCoords = (area[0].coords || area.attr('coords')).split(','),
5
+ var cache = (api.cache.areas = {}),
6
+ shape = (area[0].shape || area.attr('shape')).toLowerCase(),
7
+ coordsString = area[0].coords || area.attr('coords'),
8
+ baseCoords = coordsString.split(','),
7
9
  coords = [],
8
10
  image = $('img[usemap="#'+area.parent('map').attr('name')+'"]'),
9
11
  imageOffset = image.offset(),
10
12
  result = {
11
13
  width: 0, height: 0,
12
- offset: { top: 1e10, right: 0, bottom: 0, left: 1e10 }
14
+ position: {
15
+ top: 1e10, right: 0,
16
+ bottom: 0, left: 1e10
17
+ }
13
18
  },
14
19
  i = 0, next = 0, dimensions;
15
20
 
@@ -30,27 +35,27 @@ PLUGINS.imagemap = function(area, corner, flip)
30
35
  newWidth = Math.floor(newWidth / 2);
31
36
  newHeight = Math.floor(newHeight / 2);
32
37
 
33
- if(corner.x === 'left'){ compareX = newWidth; }
34
- else if(corner.x === 'right'){ compareX = result.width - newWidth; }
38
+ if(corner.x === LEFT){ compareX = newWidth; }
39
+ else if(corner.x === RIGHT){ compareX = result.width - newWidth; }
35
40
  else{ compareX += Math.floor(newWidth / 2); }
36
41
 
37
- if(corner.y === 'top'){ compareY = newHeight; }
38
- else if(corner.y === 'bottom'){ compareY = result.height - newHeight; }
42
+ if(corner.y === TOP){ compareY = newHeight; }
43
+ else if(corner.y === BOTTOM){ compareY = result.height - newHeight; }
39
44
  else{ compareY += Math.floor(newHeight / 2); }
40
45
 
41
46
  i = coords.length; while(i--)
42
47
  {
43
48
  if(coords.length < 2){ break; }
44
49
 
45
- realX = coords[i][0] - result.offset.left;
46
- realY = coords[i][1] - result.offset.top;
50
+ realX = coords[i][0] - result.position.left;
51
+ realY = coords[i][1] - result.position.top;
47
52
 
48
- if((corner.x === 'left' && realX >= compareX) ||
49
- (corner.x === 'right' && realX <= compareX) ||
50
- (corner.x === 'center' && (realX < compareX || realX > (result.width - compareX))) ||
51
- (corner.y === 'top' && realY >= compareY) ||
52
- (corner.y === 'bottom' && realY <= compareY) ||
53
- (corner.y === 'center' && (realY < compareY || realY > (result.height - compareY)))) {
53
+ if((corner.x === LEFT && realX >= compareX) ||
54
+ (corner.x === RIGHT && realX <= compareX) ||
55
+ (corner.x === CENTER && (realX < compareX || realX > (result.width - compareX))) ||
56
+ (corner.y === TOP && realY >= compareY) ||
57
+ (corner.y === BOTTOM && realY <= compareY) ||
58
+ (corner.y === CENTER && (realY < compareY || realY > (result.height - compareY)))) {
54
59
  coords.splice(i, 1);
55
60
  }
56
61
  }
@@ -69,16 +74,18 @@ PLUGINS.imagemap = function(area, corner, flip)
69
74
  {
70
75
  next = [ parseInt(baseCoords[--i], 10), parseInt(baseCoords[i+1], 10) ];
71
76
 
72
- if(next[0] > result.offset.right){ result.offset.right = next[0]; }
73
- if(next[0] < result.offset.left){ result.offset.left = next[0]; }
74
- if(next[1] > result.offset.bottom){ result.offset.bottom = next[1]; }
75
- if(next[1] < result.offset.top){ result.offset.top = next[1]; }
77
+ if(next[0] > result.position.right){ result.position.right = next[0]; }
78
+ if(next[0] < result.position.left){ result.position.left = next[0]; }
79
+ if(next[1] > result.position.bottom){ result.position.bottom = next[1]; }
80
+ if(next[1] < result.position.top){ result.position.top = next[1]; }
76
81
 
77
82
  coords.push(next);
78
83
  }
79
84
  }
80
85
  else {
81
- coords = $.map(baseCoords, function(coord){ return parseInt(coord, 10); });
86
+ i = -1; while(i++ < baseCoords.length) {
87
+ coords.push( parseInt(baseCoords[i], 10) );
88
+ }
82
89
  }
83
90
 
84
91
  // Calculate details
@@ -88,7 +95,7 @@ PLUGINS.imagemap = function(area, corner, flip)
88
95
  result = {
89
96
  width: Math.abs(coords[2] - coords[0]),
90
97
  height: Math.abs(coords[3] - coords[1]),
91
- offset: {
98
+ position: {
92
99
  left: Math.min(coords[0], coords[2]),
93
100
  top: Math.min(coords[1], coords[3])
94
101
  }
@@ -99,35 +106,42 @@ PLUGINS.imagemap = function(area, corner, flip)
99
106
  result = {
100
107
  width: coords[2] + 2,
101
108
  height: coords[2] + 2,
102
- offset: { left: coords[0], top: coords[1] }
109
+ position: { left: coords[0], top: coords[1] }
103
110
  };
104
111
  break;
105
112
 
106
113
  case 'poly':
107
- $.extend(result, {
108
- width: Math.abs(result.offset.right - result.offset.left),
109
- height: Math.abs(result.offset.bottom - result.offset.top)
110
- });
111
-
112
- if(corner.string() === 'centercenter') {
113
- result.offset = {
114
- left: result.offset.left + (result.width / 2),
115
- top: result.offset.top + (result.height / 2)
114
+ result.width = Math.abs(result.position.right - result.position.left);
115
+ result.height = Math.abs(result.position.bottom - result.position.top);
116
+
117
+ if(corner.abbrev() === 'c') {
118
+ result.position = {
119
+ left: result.position.left + (result.width / 2),
120
+ top: result.position.top + (result.height / 2)
116
121
  };
117
122
  }
118
123
  else {
119
- result.offset = polyCoordinates(result, coords.slice(), corner);
120
-
121
- // If flip adjustment is enabled, also calculate the closest opposite point
122
- if(flip && (flip[0] === 'flip' || flip[1] === 'flip')) {
123
- result.flipoffset = polyCoordinates(result, coords.slice(), {
124
- x: corner.x === 'left' ? 'right' : corner.x === 'right' ? 'left' : 'center',
125
- y: corner.y === 'top' ? 'bottom' : corner.y === 'bottom' ? 'top' : 'center'
126
- });
127
-
128
- result.flipoffset.left -= result.offset.left;
129
- result.flipoffset.top -= result.offset.top;
124
+ // Calculate if we can't find a cached value
125
+ if(!cache[corner+coordsString]) {
126
+ result.position = polyCoordinates(result, coords.slice(), corner);
127
+
128
+ // If flip adjustment is enabled, also calculate the closest opposite point
129
+ if(adjustMethod && (adjustMethod[0] === 'flip' || adjustMethod[1] === 'flip')) {
130
+ result.offset = polyCoordinates(result, coords.slice(), {
131
+ x: corner.x === LEFT ? RIGHT : corner.x === RIGHT ? LEFT : CENTER,
132
+ y: corner.y === TOP ? BOTTOM : corner.y === BOTTOM ? TOP : CENTER
133
+ });
134
+
135
+ result.offset.left -= result.position.left;
136
+ result.offset.top -= result.position.top;
137
+ }
138
+
139
+ // Store the result
140
+ cache[corner+coordsString] = result;
130
141
  }
142
+
143
+ // Grab the cached result
144
+ result = cache[corner+coordsString];
131
145
  }
132
146
 
133
147
  result.width = result.height = 0;
@@ -135,8 +149,8 @@ PLUGINS.imagemap = function(area, corner, flip)
135
149
  }
136
150
 
137
151
  // Add image position to offset coordinates
138
- result.offset.left += imageOffset.left;
139
- result.offset.top += imageOffset.top;
152
+ result.position.left += imageOffset.left;
153
+ result.position.top += imageOffset.top;
140
154
 
141
155
  return result;
142
156
  };
@@ -1,25 +1,41 @@
1
1
  /*jslint browser: true, onevar: true, undef: true, nomen: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: true */
2
2
  /*global window: false, jQuery: false, console: false, define: false */
3
3
 
4
+ /* Cache window, document, undefined */
5
+ (function( window, document, undefined ) {
6
+
4
7
  // Uses AMD or browser globals to create a jQuery plugin.
5
- (function(factory) {
8
+ (function( factory ) {
9
+ "use strict";
6
10
  if(typeof define === 'function' && define.amd) {
7
11
  define(['jquery'], factory);
8
12
  }
9
- else {
13
+ else if(jQuery && !jQuery.fn.qtip) {
10
14
  factory(jQuery);
11
15
  }
12
16
  }
13
17
  (function($) {
18
+ /* This currently causes issues with Safari 6, so for it's disabled */
19
+ //"use strict"; // (Dis)able ECMAScript "strict" operation for this function. See more: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
14
20
 
15
- "use strict"; // Enable ECMAScript "strict" operation for this function. See more: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
16
-
17
21
  // Munge the primitives - Paul Irish tip
18
22
  var TRUE = true,
19
23
  FALSE = false,
20
24
  NULL = null,
21
- undefined,
22
-
25
+
26
+ // Side names and other stuff
27
+ X = 'x', Y = 'y',
28
+ WIDTH = 'width',
29
+ HEIGHT = 'height',
30
+ TOP = 'top',
31
+ LEFT = 'left',
32
+ BOTTOM = 'bottom',
33
+ RIGHT = 'right',
34
+ CENTER = 'center',
35
+ FLIP = 'flip',
36
+ FLIPINVERT = 'flipinvert',
37
+ SHIFT = 'shift',
38
+
23
39
  // Shortcut vars
24
40
  QTIP, PLUGINS, MOUSE,
25
41
  usedIDs = {},
@@ -30,29 +46,15 @@
30
46
  defaultClass = uitooltip + '-default',
31
47
  focusClass = uitooltip + '-focus',
32
48
  hoverClass = uitooltip + '-hover',
33
- fluidClass = uitooltip + '-fluid',
34
- hideOffset = '-31000px',
35
49
  replaceSuffix = '_replacedByqTip',
36
50
  oldtitle = 'oldtitle',
37
- trackingBound;
38
-
39
- /* Thanks to Paul Irish for this one: http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/ */
40
- function log() {
41
- log.history = log.history || [];
42
- log.history.push(arguments);
43
-
44
- // Make sure console is present
45
- if('object' === typeof console) {
46
-
47
- // Setup console and arguments
48
- var c = console[ console.warn ? 'warn' : 'log' ],
49
- args = Array.prototype.slice.call(arguments), a;
50
-
51
- // Add qTip2 marker to first argument if it's a string
52
- if(typeof arguments[0] === 'string') { args[0] = 'qTip2: ' + args[0]; }
53
-
54
- // Apply console.warn or .log if not supported
55
- a = c.apply ? c.apply(console, args) : c(args);
56
- }
57
- }
51
+ trackingBound,
52
+ redrawContainer;
53
+
54
+ /*
55
+ * redraw() container for width/height calculations
56
+ */
57
+ redrawContainer = $('<div/>', { id: 'qtip-rcontainer' });
58
+ $(function() { redrawContainer.appendTo(document.body); });
59
+
58
60
 
@@ -21,7 +21,9 @@ function Modal(api)
21
21
  // Show the modal if not visible already and tooltip is visible
22
22
  elems.overlay.toggle( tooltip.is(':visible') );
23
23
  },
24
- '^content.text$': updateFocusable
24
+ '^content.text$': function() {
25
+ updateFocusable();
26
+ }
25
27
  };
26
28
 
27
29
  function updateFocusable() {
@@ -211,7 +213,7 @@ function Modal(api)
211
213
  docBody.bind('focusin'+namespace, stealFocus);
212
214
 
213
215
  // Blur the current item and focus anything in the modal we an
214
- focusInputs( $('body *') );
216
+ focusInputs( $('body :focus') );
215
217
  }
216
218
  }
217
219
  else {
@@ -300,11 +302,11 @@ PLUGINS.modal.sanitize = function(opts) {
300
302
  };
301
303
 
302
304
  // Base z-index for all modal tooltips (use qTip core z-index as a base)
303
- PLUGINS.modal.zindex = QTIP.zindex + 1000;
305
+ PLUGINS.modal.zindex = QTIP.zindex - 200;
304
306
 
305
307
  // Defines the selector used to select all 'focusable' elements within the modal when using the show.modal.stealfocus option.
306
- // Selectors initially taken from http://stackoverflow.com/questions/7668525/is-there-a-jquery-selector-to-get-all-elements-that-can-get-focus
307
- PLUGINS.modal.focusable = ['a[href]', 'area[href]', 'input', 'select', 'textarea', 'button', 'iframe', 'object', 'embed', '[tabindex]', '[contenteditable]']
308
+ // Selectors initially taken from http://stackoverflow.com/questions/7668525/is-there-a-jquery-selector-to-get-all-elements-that-can-get-focus
309
+ PLUGINS.modal.focusable = ['a[href]', 'area[href]', 'input', 'select', 'textarea', 'button', 'iframe', 'object', 'embed', '[tabindex]', '[contenteditable]'];
308
310
 
309
311
  // Extend original api defaults
310
312
  $.extend(TRUE, QTIP.defaults, {