<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p><tt><font size="+2">Hello everyone,</font></tt></p>
<p><tt><font size="+2"><br>
</font></tt></p>
<p><tt><font size="+2">A couple of days ago, in a discussion with
plasma developers it was decided that Now Dock should better
support window masking (for animations etc.) in a separate
window than the main panel one. What is doing in the following
0.5 version is a technique based on a plasma mobile technique
in which all the presentation of the plasmoids for the panel
are done in a secondary window except on widgets unlocked
state for which a reparenting is taken into place and the
plasmoids are moved to original panel window in order for the
user to be able to add, remove, move plasmoids etc... This has
worked flawlessly and the animations and masking (transparent
areas are allowing the mouse events to go to underneath
windows) are working great.</font></tt></p>
<p><tt><font size="+2"><br>
</font></tt></p>
<p><tt><font size="+2">But one small problem arose with this
approach. The plasmoids when they are in the secondary window
(in locked widgets state that is) do not show their menu with
right-click. As it appears, I should provide that
functionality from my c++ code but I have a problem, the code
which is doing its magic is from containmentinterface.cpp:</font></tt></p>
<p><tt><font size="+2">----</font></tt></p>
<p><tt><font size="+2"> Plasma::Applet *applet = 0;<br>
foreach (QObject *appletObject, m_appletInterfaces) {<br>
if (AppletInterface *ai =
qobject_cast<AppletInterface *>(appletObject)) {<br>
if (ai->isVisible() &&
ai->contains(ai->mapFromItem(this, event->posF()))) {<br>
applet = ai->applet();<br>
break;<br>
} else {<br>
ai = 0;<br>
}<br>
}<br>
}</font></tt></p>
<p><tt><font size="+2">---<br>
</font></tt></p>
<p><tt><font size="+2">for the m_appletsInterfaces I can use the
plasmoid.applets variable to get them but AppletInterface is
not exposed in plasma library and I need it in order to get
its applet() ///Plasma::Applet</font></tt></p>
<p><tt><font size="+2"><br>
</font></tt></p>
<p><tt><font size="+2">any ideas ???</font></tt></p>
<p><tt><font size="+2"><br>
</font></tt></p>
<p><tt><font size="+2">regards,</font></tt></p>
<p><tt><font size="+2">michail</font></tt><br>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</p>
<p>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</p>
</body>
</html>