idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp
branchRCL_3
changeset 43 899e4666ea9a
parent 22 040e93e348f6
parent 38 79311d856354
child 49 515194ff9f15
--- a/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp	Fri Mar 26 15:15:17 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp	Wed May 12 13:12:59 2010 +0300
@@ -43,7 +43,6 @@
 #include "xneditmode.h"
 #include "xneditor.h"
 #include "xntext.h"
-#include "xnhittest.h"
 #include "xnscrollablecontroladapter.h"
 #include "xnviewdata.h"
 #include "xnrootdata.h"
@@ -266,8 +265,6 @@
     CXnDomNode& aEventNode, CXnDomNode& aTriggerNode, CXnNode& aEventData );
 static void RunFullScreenEffectL(
     CXnUiEngine& aEngine, CXnDomNode& aEventNode );
-static void RunActivateViewL(
-    CXnNodeImpl* aThis, CXnUiEngine& aEngine, CXnDomNode& aEventNode );
 static void RunActivateNextViewL( CXnUiEngine& aEngine, CXnDomNode& aEventNode );
 static void RunActivatePreviousViewL( CXnUiEngine& aEngine, CXnDomNode& aEventNode );
 static void RunAddViewL( CXnUiEngine& aEngine, CXnDomNode& aEventNode );
@@ -895,7 +892,7 @@
     TInt level( XnDirtyLevel::ENone );
 
     EnableStatePropertyL(
-        aNode, aPseudoClass, CXnNode::WidthL,
+        aNode, aPseudoClass, &CXnNode::WidthL,
         aLayoutPropertyCache->iWidth,
         aLayoutPropertyCache->iWidths, level );
 
@@ -2773,39 +2770,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// RunActivateViewL
-// -----------------------------------------------------------------------------
-//
-static void RunActivateViewL(
-    CXnNodeImpl* aThis,
-    CXnUiEngine& aEngine,
-    CXnDomNode& aEventNode )
-    {
-    CXnDomList& children( aEventNode.ChildNodes() );
-
-    TInt count( children.Length() );
-
-    for ( TInt i = 0; i < count; ++i )
-        {
-        CXnDomNode* node = static_cast< CXnDomNode* >( children.Item( i ) );
-
-        const TDesC8& type( node->Name() );
-
-        if ( type == XnPropertyNames::action::KProperty )
-            {
-            const TDesC8& id( node->AttributeValue( XnPropertyNames::action::KValue ) );
-
-            CXnNode* viewNode( aEngine.FindNodeByIdL( id, aThis->Namespace() ) );
-
-            if ( viewNode )
-                {
-                aEngine.ActivateViewL( *viewNode );
-                }
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
 // RunActivateNextViewL
 // -----------------------------------------------------------------------------
 //
@@ -3560,7 +3524,8 @@
 
                     if ( menuIf )
                         {
-                        menuIf->TryDisplayingMenuBarL( *menuId );
+                        aEngine.Editor()->SetTargetPlugin( aEngine.FocusedNode() );
+                        menuIf->TryDisplayingMenuBarL( *menuId, EFalse );
                         }
 
                     CleanupStack::PopAndDestroy( menuId );
@@ -3947,10 +3912,6 @@
         {
         RunRemoveViewL( aEngine, aEventNode );
         }
-    else if ( nameString == XnPropertyNames::action::event::KActivateView )
-        {
-        RunActivateViewL( aThis, aEngine, aEventNode );
-        }
     else if ( nameString == XnPropertyNames::action::event::KActivate )
         {
         RunActivateL( aThis, aEngine, aEventNode );
@@ -7125,19 +7086,9 @@
 
                 XnComponentInterface::MakeInterfaceL( popup, tooltipNode );
 
-                if ( popup )
+                if ( popup && aSource != XnEventSource::EStylus )
                     {
-                    if ( aSource == XnEventSource::EStylus )
-                        {
-                        const TTimeIntervalMicroSeconds32 delay( 1000 * 100 );                       
-                        const TTimeIntervalMicroSeconds32 display( 1000 * 1000 * 6 );                                                
-                        
-                        popup->ShowPopupL( aRect, delay, display );
-                        }
-                    else
-                        {
-                        popup->ShowPopupL( aRect );
-                        }
+                    popup->ShowPopupL( aRect );
                     }
                 }
             }
@@ -9080,15 +9031,34 @@
         }
     if ( source != -1 && target != -1 )
         {
+        TBool swap = EFalse;
+        CXnPluginData* data( aTarget->UiEngine()->ViewManager()->
+                ActiveViewData().Plugin( aTarget ) );
+        if ( data && !data->Occupied() )
+            {
+            // target is empty widget, swap widget places
+            swap = ETrue;
+            }
+        
         if ( target < source )
             {
             iChildren.InsertL( aSource, target );
             iChildren.Remove( source + 1 );
+            if ( swap )
+                {
+                iChildren.Remove( target + 1 );
+                iChildren.InsertL( aTarget, source );
+                }
             }
         else if ( source < target )
             {
             iChildren.Remove( source );
             iChildren.InsertL( aSource, target );
+            if ( swap )
+                {
+                iChildren.Insert( aTarget, source );
+                iChildren.Remove( target );
+                }
             }
 
         // put the locked nodes to the original places