OLD | NEW |
1 /** | 1 /** |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2000 Stefan Schimanski (1Stein@gmx.de) | 4 * (C) 2000 Stefan Schimanski (1Stein@gmx.de) |
5 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. | 5 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 } else if (name == hspaceAttr) { | 271 } else if (name == hspaceAttr) { |
272 addHTMLLengthToStyle(style, CSSPropertyMarginLeft, value); | 272 addHTMLLengthToStyle(style, CSSPropertyMarginLeft, value); |
273 addHTMLLengthToStyle(style, CSSPropertyMarginRight, value); | 273 addHTMLLengthToStyle(style, CSSPropertyMarginRight, value); |
274 } else if (name == alignAttr) { | 274 } else if (name == alignAttr) { |
275 applyAlignmentAttributeToStyle(value, style); | 275 applyAlignmentAttributeToStyle(value, style); |
276 } else { | 276 } else { |
277 HTMLFrameOwnerElement::collectStyleForPresentationAttribute(name, value,
style); | 277 HTMLFrameOwnerElement::collectStyleForPresentationAttribute(name, value,
style); |
278 } | 278 } |
279 } | 279 } |
280 | 280 |
281 void HTMLPlugInElement::handleLocalEvents(Event* event) | 281 void HTMLPlugInElement::defaultEventHandler(Event* event) |
282 { | 282 { |
283 HTMLFrameOwnerElement::handleLocalEvents(event); | |
284 | |
285 // Firefox seems to use a fake event listener to dispatch events to plug-in | 283 // Firefox seems to use a fake event listener to dispatch events to plug-in |
286 // (tested with mouse events only). This is observable via different order | 284 // (tested with mouse events only). This is observable via different order |
287 // of events - in Firefox, event listeners specified in HTML attributes | 285 // of events - in Firefox, event listeners specified in HTML attributes |
288 // fires first, then an event gets dispatched to plug-in, and only then | 286 // fires first, then an event gets dispatched to plug-in, and only then |
289 // other event listeners fire. Hopefully, this difference does not matter in | 287 // other event listeners fire. Hopefully, this difference does not matter in |
290 // practice. | 288 // practice. |
| 289 |
| 290 // FIXME: Mouse down and scroll events are passed down to plug-in via custom |
| 291 // code in EventHandler; these code paths should be united. |
| 292 |
291 RenderObject* r = renderer(); | 293 RenderObject* r = renderer(); |
292 if (!r || !r->isWidget()) | 294 if (!r || !r->isWidget()) |
293 return; | 295 return; |
294 if (r->isEmbeddedObject()) { | 296 if (r->isEmbeddedObject()) { |
295 if (toRenderEmbeddedObject(r)->showsUnavailablePluginIndicator()) | 297 if (toRenderEmbeddedObject(r)->showsUnavailablePluginIndicator()) |
296 return; | 298 return; |
297 if (displayState() < Playing) | 299 if (displayState() < Playing) |
298 return; | 300 return; |
299 } | 301 } |
300 RefPtr<Widget> widget = toRenderWidget(r)->widget(); | 302 RefPtr<Widget> widget = toRenderWidget(r)->widget(); |
301 if (!widget) | 303 if (!widget) |
302 return; | 304 return; |
303 widget->handleEvent(event); | 305 widget->handleEvent(event); |
| 306 if (event->defaultHandled()) |
| 307 return; |
| 308 HTMLFrameOwnerElement::defaultEventHandler(event); |
304 } | 309 } |
305 | 310 |
306 RenderWidget* HTMLPlugInElement::renderWidgetForJSBindings() const | 311 RenderWidget* HTMLPlugInElement::renderWidgetForJSBindings() const |
307 { | 312 { |
308 // Needs to load the plugin immediatedly because this function is called | 313 // Needs to load the plugin immediatedly because this function is called |
309 // when JavaScript code accesses the plugin. | 314 // when JavaScript code accesses the plugin. |
310 // FIXME: Check if dispatching events here is safe. | 315 // FIXME: Check if dispatching events here is safe. |
311 document().updateLayoutIgnorePendingStylesheets(Document::RunPostLayoutTasks
Synchronously); | 316 document().updateLayoutIgnorePendingStylesheets(Document::RunPostLayoutTasks
Synchronously); |
312 return existingRenderWidget(); | 317 return existingRenderWidget(); |
313 } | 318 } |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 if (root.isOldestAuthorShadowRoot()) | 529 if (root.isOldestAuthorShadowRoot()) |
525 lazyReattachIfAttached(); | 530 lazyReattachIfAttached(); |
526 } | 531 } |
527 | 532 |
528 bool HTMLPlugInElement::useFallbackContent() const | 533 bool HTMLPlugInElement::useFallbackContent() const |
529 { | 534 { |
530 return hasAuthorShadowRoot(); | 535 return hasAuthorShadowRoot(); |
531 } | 536 } |
532 | 537 |
533 } | 538 } |
OLD | NEW |