1
|
=== modified file 'src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.mouse.js'
|
2
|
--- src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.mouse.js 2016-04-09 16:41:00 +0000
|
3
|
+++ src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.mouse.js 2016-04-19 19:57:19 +0000
|
4
|
@@ -24,6 +24,9 @@
|
5
|
** SBI 20160310 Added getEvents() to MouseMovable, fixed undeclared variable that was hidden
|
6
|
** by the variable "parent".
|
7
|
** 008 HC 20160406 Overhaul of window-activation logic.
|
8
|
+** 009 SBI 20160419 MouseMovable, MousePopupable, WindowClose, WindowIconify, WindowMaximize,
|
9
|
+** WindowStateChangedWorker are changed to catch mouse events from the global
|
10
|
+** mouse events dispatcher.
|
11
|
*/
|
12
|
|
13
|
"use strict";
|
14
|
@@ -331,7 +334,7 @@
|
15
|
document.addEventListener("mousedown", processMouseDragStart("mousedown"));
|
16
|
document.addEventListener("mouseup", processMouseDragStop ("mouseup"));
|
17
|
document.addEventListener("mousemove", processMouseDrag ("mousemove"));
|
18
|
-
|
19
|
+
|
20
|
/**
|
21
|
* Resizes the peer canvas according to given area.
|
22
|
*
|
23
|
@@ -348,7 +351,6 @@
|
24
|
ctx.fillRect(0, 0, area.width, area.height);
|
25
|
ctx.strokeStyle = "black";
|
26
|
ctx.strokeRect(0, 0, area.width, area.height);
|
27
|
-
|
28
|
}
|
29
|
|
30
|
/**
|
31
|
@@ -860,6 +862,20 @@
|
32
|
{
|
33
|
return { "mouseenter" : true, "mouseleave" : true};
|
34
|
};
|
35
|
+
|
36
|
+ /**
|
37
|
+ * Invokes a mouse event listener of the target mouse event type.
|
38
|
+ *
|
39
|
+ * @param {String} mouseOp
|
40
|
+ * The mouse events name
|
41
|
+ * @param {MouseEvent} evt
|
42
|
+ * The raised mouse event
|
43
|
+ */
|
44
|
+ this.handle = function(mouseOp, evt)
|
45
|
+ {
|
46
|
+ // no ops
|
47
|
+ };
|
48
|
+
|
49
|
};
|
50
|
|
51
|
/**
|
52
|
@@ -881,6 +897,9 @@
|
53
|
*/
|
54
|
function MouseMovable(win, wid, x, y, width, height)
|
55
|
{
|
56
|
+ /** Placeholder for the required mouse events listeners */
|
57
|
+ var handlers = {};
|
58
|
+
|
59
|
var mouseDrag = false;
|
60
|
var ma = { "x" : x, "y" : y, "width" : width, "height" : height };
|
61
|
// register the listeners
|
62
|
@@ -893,12 +912,12 @@
|
63
|
processMouseDragStop (this, "dblclick"), processMouseDragStart(this, "mousedown"),
|
64
|
processMouseDragStop (this, "mouseup"), processMouseDrag (this, "mousemove"),
|
65
|
processMouseDragStop (this, "mouseleave"), processMouseDragStop (this, "mouseout")];
|
66
|
- // win.canvas.addEventListener("drag", processMouseDrag(this, "drag"));
|
67
|
- addListeners(win, mops, listeners);
|
68
|
+
|
69
|
+ addListeners(handlers, mops, listeners);
|
70
|
|
71
|
this.deregisterListeners = function()
|
72
|
{
|
73
|
- removeListeners(win, mops, listeners);
|
74
|
+ removeListeners(handlers, mops, listeners);
|
75
|
};
|
76
|
|
77
|
this.getEvents = function()
|
78
|
@@ -915,6 +934,23 @@
|
79
|
return events;
|
80
|
};
|
81
|
|
82
|
+ /**
|
83
|
+ * Invokes a mouse event listener of the target mouse event type.
|
84
|
+ *
|
85
|
+ * @param {String} mouseOp
|
86
|
+ * The mouse events name
|
87
|
+ * @param {MouseEvent} evt
|
88
|
+ * The raised mouse event
|
89
|
+ */
|
90
|
+ this.handle = function(mouseOp, evt)
|
91
|
+ {
|
92
|
+ var listener = handlers[mouseOp];
|
93
|
+ if (listener !== undefined)
|
94
|
+ {
|
95
|
+ listener(evt);
|
96
|
+ }
|
97
|
+ };
|
98
|
+
|
99
|
function processMouseDragStop(mThis, mouseOp)
|
100
|
{
|
101
|
return function(evt)
|
102
|
@@ -956,7 +992,7 @@
|
103
|
}
|
104
|
|
105
|
var mousePos = win.getMousePos(evt);
|
106
|
-
|
107
|
+
|
108
|
if (mousePos.x >= ma.x &&
|
109
|
mousePos.x <= ma.x + ma.width &&
|
110
|
mousePos.y >= ma.y &&
|
111
|
@@ -984,7 +1020,6 @@
|
112
|
{
|
113
|
return;
|
114
|
}
|
115
|
-
|
116
|
var mousePos = win.getMousePos(evt);
|
117
|
|
118
|
var dx = evt.clientX - mThis.lastMouseEvent.clientX;
|
119
|
@@ -1027,7 +1062,7 @@
|
120
|
* @param {Function} stateChangedCallback
|
121
|
* A callback function for this window state change action.
|
122
|
*/
|
123
|
-function WindowStateChangedWorker(win, wid, x, y, width, height, stateChangedCallback)
|
124
|
+function WindowStateChangedWorker(win, wid, x, y, width, height, stateChangedCallback, handlers)
|
125
|
{
|
126
|
var ma = { "x" : x, "y" : y, "width" : width, "height" : height };
|
127
|
var mops = ["dblclick", "click", "mousedown", "mouseup"];
|
128
|
@@ -1036,7 +1071,7 @@
|
129
|
{
|
130
|
listeners[i] = processWindowState(this, mops[i]);
|
131
|
}
|
132
|
- addListeners(win, mops, listeners);
|
133
|
+ addListeners(handlers, mops, listeners);
|
134
|
|
135
|
function processWindowState(mThis, mouseOp)
|
136
|
{
|
137
|
@@ -1048,7 +1083,7 @@
|
138
|
{
|
139
|
return;
|
140
|
}
|
141
|
-
|
142
|
+
|
143
|
var mousePos = win.getMousePos(evt);
|
144
|
|
145
|
if (mousePos.x >= ma.x &&
|
146
|
@@ -1057,7 +1092,6 @@
|
147
|
mousePos.y <= ma.y + ma.height)
|
148
|
{
|
149
|
stateChangedCallback(win, evt, mousePos, opCode);
|
150
|
-
|
151
|
evt.preventDefault();
|
152
|
}
|
153
|
};
|
154
|
@@ -1070,7 +1104,7 @@
|
155
|
|
156
|
this.deregisterListeners = function()
|
157
|
{
|
158
|
- removeListeners(win, mops, listeners);
|
159
|
+ removeListeners(handlers, mops, listeners);
|
160
|
};
|
161
|
};
|
162
|
|
163
|
@@ -1092,7 +1126,10 @@
|
164
|
*/
|
165
|
function WindowClose(win, wid, x, y, width, height)
|
166
|
{
|
167
|
- this.wsc = new WindowStateChangedWorker(win, wid, x, y, width, height, windowCloseCallback);
|
168
|
+ /** Placeholder for the required mouse events listeners */
|
169
|
+ var handlers = {};
|
170
|
+
|
171
|
+ this.wsc = new WindowStateChangedWorker(win, wid, x, y, width, height, windowCloseCallback, handlers);
|
172
|
|
173
|
function windowCloseCallback(win, evt, mousePos, opCode)
|
174
|
{
|
175
|
@@ -1111,6 +1148,23 @@
|
176
|
{
|
177
|
this.wsc.deregisterListeners();
|
178
|
};
|
179
|
+
|
180
|
+ /**
|
181
|
+ * Invokes a mouse event listener of the target mouse event type.
|
182
|
+ *
|
183
|
+ * @param {String} mouseOp
|
184
|
+ * The mouse events name
|
185
|
+ * @param {MouseEvent} evt
|
186
|
+ * The raised mouse event
|
187
|
+ */
|
188
|
+ this.handle = function(mouseOp, evt)
|
189
|
+ {
|
190
|
+ var listener = handlers[mouseOp];
|
191
|
+ if (listener !== undefined)
|
192
|
+ {
|
193
|
+ listener(evt);
|
194
|
+ }
|
195
|
+ };
|
196
|
};
|
197
|
|
198
|
/**
|
199
|
@@ -1131,12 +1185,14 @@
|
200
|
*/
|
201
|
function WindowIconify(win, wid, x, y, width, height)
|
202
|
{
|
203
|
- this.wsc = new WindowStateChangedWorker(win, wid, x, y, width, height, windowIconifyCallback);
|
204
|
+ /** Placeholder for the required mouse events listeners */
|
205
|
+ var handlers = {};
|
206
|
+
|
207
|
+ this.wsc = new WindowStateChangedWorker(win, wid, x, y, width, height, windowIconifyCallback, handlers);
|
208
|
|
209
|
function windowIconifyCallback(win, evt, mousePos, opCode)
|
210
|
{
|
211
|
win.iconify();
|
212
|
-
|
213
|
p2j.socket.sendWindowIconState(win.id, true);
|
214
|
};
|
215
|
|
216
|
@@ -1149,6 +1205,23 @@
|
217
|
{
|
218
|
this.wsc.deregisterListeners();
|
219
|
};
|
220
|
+
|
221
|
+ /**
|
222
|
+ * Invokes a mouse event listener of the target mouse event type.
|
223
|
+ *
|
224
|
+ * @param {String} mouseOp
|
225
|
+ * The mouse events name
|
226
|
+ * @param {MouseEvent} evt
|
227
|
+ * The raised mouse event
|
228
|
+ */
|
229
|
+ this.handle = function(mouseOp, evt)
|
230
|
+ {
|
231
|
+ var listener = handlers[mouseOp];
|
232
|
+ if (listener !== undefined)
|
233
|
+ {
|
234
|
+ listener(evt);
|
235
|
+ }
|
236
|
+ };
|
237
|
};
|
238
|
|
239
|
/**
|
240
|
@@ -1169,7 +1242,10 @@
|
241
|
*/
|
242
|
function WindowMaximize(win, wid, x, y, width, height)
|
243
|
{
|
244
|
- this.wsc = new WindowStateChangedWorker(win, wid, x, y, width, height, windowMaximizeCallback);
|
245
|
+ /** Placeholder for the required mouse events listeners */
|
246
|
+ var handlers = {};
|
247
|
+
|
248
|
+ this.wsc = new WindowStateChangedWorker(win, wid, x, y, width, height, windowMaximizeCallback, handlers);
|
249
|
|
250
|
function windowMaximizeCallback(win, evt, mousePos, opCode)
|
251
|
{
|
252
|
@@ -1188,6 +1264,23 @@
|
253
|
{
|
254
|
this.wsc.deregisterListeners();
|
255
|
};
|
256
|
+
|
257
|
+ /**
|
258
|
+ * Invokes a mouse event listener of the target mouse event type.
|
259
|
+ *
|
260
|
+ * @param {String} mouseOp
|
261
|
+ * The mouse events name
|
262
|
+ * @param {MouseEvent} evt
|
263
|
+ * The raised mouse event
|
264
|
+ */
|
265
|
+ this.handle = function(mouseOp, evt)
|
266
|
+ {
|
267
|
+ var listener = handlers[mouseOp];
|
268
|
+ if (listener !== undefined)
|
269
|
+ {
|
270
|
+ listener(evt);
|
271
|
+ }
|
272
|
+ };
|
273
|
};
|
274
|
|
275
|
/**
|
276
|
@@ -1212,10 +1305,13 @@
|
277
|
*/
|
278
|
function MousePopupable(win, wid, x, y, width, height, btnId)
|
279
|
{
|
280
|
+ /** Placeholder for the required mouse events listeners */
|
281
|
+ var handlers = {};
|
282
|
+
|
283
|
var ma = { "x" : x, "y" : y, "width" : width, "height" : height };
|
284
|
var mops = ["click", "mousedown"];
|
285
|
var listeners = [processPopup(this, "click"), processPopup(this, "mousedown")];
|
286
|
- addListeners(win, mops, listeners);
|
287
|
+ addListeners(handlers, mops, listeners);
|
288
|
|
289
|
function processPopup(mThis, mouseOp)
|
290
|
{
|
291
|
@@ -1247,13 +1343,30 @@
|
292
|
|
293
|
this.deregisterListeners = function()
|
294
|
{
|
295
|
- removeListeners(win, mops, listeners);
|
296
|
+ removeListeners(handlers, mops, listeners);
|
297
|
};
|
298
|
|
299
|
this.getEvents = function()
|
300
|
{
|
301
|
return { "click" : true, "mouseDown" : true };
|
302
|
};
|
303
|
+
|
304
|
+ /**
|
305
|
+ * Invokes a mouse event listener of the target mouse event type.
|
306
|
+ *
|
307
|
+ * @param {String} mouseOp
|
308
|
+ * The mouse events name
|
309
|
+ * @param {MouseEvent} evt
|
310
|
+ * The raised mouse event
|
311
|
+ */
|
312
|
+ this.handle = function(mouseOp, evt)
|
313
|
+ {
|
314
|
+ var listener = handlers[mouseOp];
|
315
|
+ if (listener !== undefined)
|
316
|
+ {
|
317
|
+ listener(evt);
|
318
|
+ }
|
319
|
+ };
|
320
|
};
|
321
|
|
322
|
/**
|
323
|
@@ -1282,35 +1395,35 @@
|
324
|
/**
|
325
|
* Adds window events listeners.
|
326
|
*
|
327
|
- * @param {Window} win
|
328
|
- * The window for which the target events listeners must be added.
|
329
|
+ * @param {Object} obj
|
330
|
+ * The place-holder of the target events listeners.
|
331
|
* @param {Array} mops
|
332
|
* The handled events.
|
333
|
* @param {Array} listeners
|
334
|
* The target listeners corresponding to their handled events
|
335
|
*/
|
336
|
-function addListeners(win, mops, listeners)
|
337
|
+function addListeners(obj, mops, listeners)
|
338
|
{
|
339
|
for(var i = 0; i < listeners.length; i++)
|
340
|
{
|
341
|
- win.canvas.addEventListener(mops[i], listeners[i]);
|
342
|
+ obj[mops[i]] = listeners[i];
|
343
|
}
|
344
|
}
|
345
|
|
346
|
/**
|
347
|
* Removes window events listeners.
|
348
|
*
|
349
|
- * @param {Window} win
|
350
|
- * The window for which the target events handlers must be removed.
|
351
|
+ * @param {Object} obj
|
352
|
+ * The place-holder of the target events listeners.
|
353
|
* @param {Array} mops
|
354
|
* The handled events to remove.
|
355
|
* @param {Array} listeners
|
356
|
* The target listeners corresponding to their handled events
|
357
|
*/
|
358
|
-function removeListeners(win, mops, listeners)
|
359
|
+function removeListeners(obj, mops, listeners)
|
360
|
{
|
361
|
for(var i = 0; i < listeners.length; i++)
|
362
|
{
|
363
|
- win.canvas.removeEventListener(mops[i], listeners[i]);
|
364
|
+ delete obj[mops[i]];
|
365
|
}
|
366
|
}
|
367
|
|
368
|
=== modified file 'src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.screen.js'
|
369
|
--- src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.screen.js 2016-04-15 07:35:01 +0000
|
370
|
+++ src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.screen.js 2016-04-19 19:49:14 +0000
|
371
|
@@ -45,7 +45,9 @@
|
372
|
** the desktop background color and to notify the enclosed window about it,
|
373
|
** fixed TypedArray.slice is unsupported by IE.
|
374
|
** 011 HC 20160406 Overhaul of window-activation logic.
|
375
|
-** 012 SBI 20160414 Fixed doWindowActivationChange(...) and activateTopVisibleWindow(...).
|
376
|
+** 012 SBI 20160419 Fixed doWindowActivationChange(...) and activateTopVisibleWindow(...). Added
|
377
|
+** p2j.screen.getEventTarget(evt), changed MouseEventDispatcher to deliver mouse
|
378
|
+** events to the registered OS mouse widgets.
|
379
|
*/
|
380
|
|
381
|
"use strict";
|
382
|
@@ -223,9 +225,17 @@
|
383
|
*/
|
384
|
me.globalCache = {};
|
385
|
|
386
|
+ /**
|
387
|
+ * The mouse events global dispatcher.
|
388
|
+ */
|
389
|
var mouseEventDispatcher = new MouseEventDispatcher();
|
390
|
|
391
|
/**
|
392
|
+ * The global resize listener.
|
393
|
+ */
|
394
|
+ var resizeHandler;
|
395
|
+
|
396
|
+ /**
|
397
|
* Dispatch mouse events to the registered widgets.
|
398
|
*/
|
399
|
function MouseEventDispatcher()
|
400
|
@@ -235,13 +245,45 @@
|
401
|
var targetWidget;
|
402
|
var targetWindow;
|
403
|
var dragTimeout;
|
404
|
- var downTimeStamp;
|
405
|
-
|
406
|
- document.addEventListener("mousedown", mouseDownHandler, false);
|
407
|
- document.addEventListener("mouseup", mouseUpHandler, false);
|
408
|
- document.addEventListener("mousemove", mouseMoveHandler, false);
|
409
|
- document.addEventListener("click", mouseClickHandler, false);
|
410
|
-
|
411
|
+
|
412
|
+ document.addEventListener("mousedown", mouseDownHandler, false);
|
413
|
+ document.addEventListener("mouseup", mouseUpHandler, false);
|
414
|
+ document.addEventListener("mousemove", mouseMoveHandler, false);
|
415
|
+ document.addEventListener("click", mouseClickHandler, false);
|
416
|
+
|
417
|
+ document.addEventListener("contextmenu", commonHandler, false);
|
418
|
+ document.addEventListener("dblclick" , commonHandler, false);
|
419
|
+ document.addEventListener("mouseenter", commonHandler, false);
|
420
|
+ document.addEventListener("mouseleave", commonHandler, false);
|
421
|
+ document.addEventListener("mouseover", commonHandler, false);
|
422
|
+ document.addEventListener("mouseout", commonHandler, false);
|
423
|
+ document.addEventListener("wheel", commonHandler, false);
|
424
|
+ document.addEventListener("drag", commonHandler, false);
|
425
|
+
|
426
|
+ /**
|
427
|
+ * Dispatches a document widen events: "contextmenu", "dblclick", "mouseover", "mouseout",
|
428
|
+ * "mouseenter/mouseleave", "wheel", "drag" to the registered OS mouse widgets.
|
429
|
+ *
|
430
|
+ * @param {Event} evt
|
431
|
+ * The raised mouse event.
|
432
|
+ */
|
433
|
+ function commonHandler(evt)
|
434
|
+ {
|
435
|
+ var mouseOp = evt.type;
|
436
|
+
|
437
|
+ if (!down && !up)
|
438
|
+ {
|
439
|
+ targetWindow = p2j.screen.getEventTarget(evt);
|
440
|
+ }
|
441
|
+
|
442
|
+ if (targetWindow === undefined)
|
443
|
+ {
|
444
|
+ return;
|
445
|
+ }
|
446
|
+
|
447
|
+ dispatchEventToOSMouseWidgets(mouseOp, evt);
|
448
|
+ }
|
449
|
+
|
450
|
/**
|
451
|
* Handles a document widen "mousedown" event.
|
452
|
*
|
453
|
@@ -251,13 +293,15 @@
|
454
|
function mouseDownHandler(evt)
|
455
|
{
|
456
|
down = true;
|
457
|
- up = false;
|
458
|
- downTimeStamp = Date.now();
|
459
|
- targetWindow = p2j.screen.topVisibleWindow();
|
460
|
+ up = false;
|
461
|
+
|
462
|
+ targetWindow = p2j.screen.getEventTarget(evt);
|
463
|
+
|
464
|
if (targetWindow !== undefined)
|
465
|
{
|
466
|
targetWidget = targetWindow.findMouseSource(evt, targetWindow.mouseAwareWidgets["mousedown"]);
|
467
|
}
|
468
|
+
|
469
|
dispatchEvent("mousedown", evt);
|
470
|
}
|
471
|
|
472
|
@@ -269,7 +313,7 @@
|
473
|
*/
|
474
|
function mouseUpHandler(evt)
|
475
|
{
|
476
|
- up = true;
|
477
|
+ up = true;
|
478
|
down = false;
|
479
|
dispatchEvent("mouseup", evt);
|
480
|
}
|
481
|
@@ -283,6 +327,7 @@
|
482
|
function mouseClickHandler(evt)
|
483
|
{
|
484
|
dispatchEvent("click", evt);
|
485
|
+ up = false;
|
486
|
}
|
487
|
|
488
|
/**
|
489
|
@@ -297,7 +342,10 @@
|
490
|
{
|
491
|
return;
|
492
|
}
|
493
|
+ var mouseOp = evt.type;
|
494
|
|
495
|
+ dispatchEventToOSMouseWidgets(mouseOp, evt);
|
496
|
+
|
497
|
if (!dragTimeout)
|
498
|
{
|
499
|
//Sends drag notifications with the frequency that doesn't exceed one event per 100 ms.
|
500
|
@@ -325,7 +373,15 @@
|
501
|
return;
|
502
|
}
|
503
|
|
504
|
+ dispatchEventToOSMouseWidgets(mouseOp, evt);
|
505
|
+
|
506
|
+ if (targetWidget === undefined)
|
507
|
+ {
|
508
|
+ return;
|
509
|
+ }
|
510
|
+
|
511
|
var mousePos = targetWindow.getMousePos(evt);
|
512
|
+
|
513
|
// check if targetWidget belongs to "any mouse" widgets (listen all events)
|
514
|
// than sending mouseOp message is send to targetWidget
|
515
|
if (!targetWindow.anyMouseAwareWidgets.hasOwnProperty(targetWidget))
|
516
|
@@ -333,10 +389,6 @@
|
517
|
dispatchEventToAnyMouseWidgets(mouseOp, evt, mousePos);
|
518
|
}
|
519
|
|
520
|
- if (targetWidget === undefined)
|
521
|
- {
|
522
|
- return;
|
523
|
- }
|
524
|
|
525
|
if (!targetWindow.processOsEvents || !p2j.screen.processMouse)
|
526
|
{
|
527
|
@@ -353,6 +405,42 @@
|
528
|
}
|
529
|
|
530
|
/**
|
531
|
+ * Dispatches a mouse event to the registered OS mouse widgets.
|
532
|
+ *
|
533
|
+ * @param {String} mouseOp
|
534
|
+ * The mouse events name
|
535
|
+ * @param {MouseEvent} evt
|
536
|
+ * The raised mouse event
|
537
|
+ */
|
538
|
+ function dispatchEventToOSMouseWidgets(mouseOp, evt)
|
539
|
+ {
|
540
|
+ if (targetWindow === undefined)
|
541
|
+ {
|
542
|
+ return;
|
543
|
+ }
|
544
|
+
|
545
|
+ for (var osOp in targetWindow.osAwareWidgets)
|
546
|
+ {
|
547
|
+ if (targetWindow.osAwareWidgets.hasOwnProperty(osOp))
|
548
|
+ {
|
549
|
+ var osWidgets = targetWindow.osAwareWidgets[osOp];
|
550
|
+ for(var wid in osWidgets)
|
551
|
+ {
|
552
|
+ if (osWidgets.hasOwnProperty(wid))
|
553
|
+ {
|
554
|
+ var osWidget = osWidgets[wid];
|
555
|
+ if (evt.defaultPrevented)
|
556
|
+ {
|
557
|
+ return;
|
558
|
+ }
|
559
|
+ osWidget.handle(mouseOp, evt);
|
560
|
+ }
|
561
|
+ }
|
562
|
+ }
|
563
|
+ }
|
564
|
+ }
|
565
|
+
|
566
|
+ /**
|
567
|
* Dispatches event to any mouse widgets.
|
568
|
*
|
569
|
* @param {String} mouseOp
|
570
|
@@ -2845,7 +2933,29 @@
|
571
|
return getWindow(wid);
|
572
|
};
|
573
|
|
574
|
- /*
|
575
|
+ /**
|
576
|
+ * Get a target window that is a target for the received mouse event.
|
577
|
+ *
|
578
|
+ * @param evt
|
579
|
+ * The received mouse event.
|
580
|
+ *
|
581
|
+ * @return The window instance if there is a window that is a target for the received event,
|
582
|
+ * otherwise undefined.
|
583
|
+ */
|
584
|
+ me.getEventTarget = function(evt)
|
585
|
+ {
|
586
|
+ var el = evt.target;
|
587
|
+ if (el.id && el.id.indexOf("pwindow_") == 0)
|
588
|
+ {
|
589
|
+ var id = parseInt(el.id.substring(8));
|
590
|
+
|
591
|
+ return getWindow(id);
|
592
|
+ }
|
593
|
+
|
594
|
+ return undefined;
|
595
|
+ };
|
596
|
+
|
597
|
+ /**
|
598
|
* Retrieve the current font used to draw text.
|
599
|
*
|
600
|
* @return See above.
|
601
|
@@ -3062,7 +3172,7 @@
|
602
|
|
603
|
// register listener for window resize; this is added to the document, to allow event
|
604
|
// notification during mouse drag even if mouse is outside of the window
|
605
|
- var resizeHandler = new MouseResizeable();
|
606
|
+ resizeHandler = new MouseResizeable();
|
607
|
}
|
608
|
};
|
609
|
|
610
|
|