diff --git a/scriptengines/javascript/simplejavascriptapplet.cpp b/scriptengines/javascript/simplejavascriptapplet.cpp index 860e87dcb..7575295f0 100644 --- a/scriptengines/javascript/simplejavascriptapplet.cpp +++ b/scriptengines/javascript/simplejavascriptapplet.cpp @@ -575,8 +575,23 @@ QScriptValue SimpleJavaScriptApplet::newPlasmaSvg(QScriptContext *context, QScri parent = qscriptvalue_cast(context->argument(1)); } + bool parentedToApplet = false; + if (!parent) { + QScriptValue appletValue = engine->globalObject().property("plasmoid"); + //kDebug() << "appletValue is " << appletValue.toString(); + + QObject *appletObject = appletValue.toQObject(); + if (appletObject) { + AppletInterface *interface = qobject_cast(appletObject); + if (interface) { + parentedToApplet = true; + parent = interface->applet(); + } + } + } + Svg *svg = new Svg(parent); - svg->setImagePath(findSvg(engine, filename)); + svg->setImagePath(parentedToApplet ? filename : findSvg(engine, filename)); return engine->newQObject(svg); } @@ -593,8 +608,23 @@ QScriptValue SimpleJavaScriptApplet::newPlasmaFrameSvg(QScriptContext *context, parent = qscriptvalue_cast(context->argument(1)); } + bool parentedToApplet = false; + if (!parent) { + QScriptValue appletValue = engine->globalObject().property("plasmoid"); + //kDebug() << "appletValue is " << appletValue.toString(); + + QObject *appletObject = appletValue.toQObject(); + if (appletObject) { + AppletInterface *interface = qobject_cast(appletObject); + if (interface) { + parentedToApplet = true; + parent = interface->applet(); + } + } + } + FrameSvg *frameSvg = new FrameSvg(parent); - frameSvg->setImagePath(findSvg(engine, filename)); + frameSvg->setImagePath(parentedToApplet ? filename : findSvg(engine, filename)); return engine->newQObject(frameSvg); }