windowing/windowserver/nga/SERVER/POINTER.CPP
branchRCL_3
changeset 18 57c618273d5c
parent 17 e375a7921169
child 19 bbf46f59e123
equal deleted inserted replaced
17:e375a7921169 18:57c618273d5c
   530 				case TPointerEvent::EOutOfRange:
   530 				case TPointerEvent::EOutOfRange:
   531 					priority=EEventPriorityHigh;
   531 					priority=EEventPriorityHigh;
   532 					break;
   532 					break;
   533 				default:;
   533 				default:;
   534 				}
   534 				}
       
   535 #ifdef LOG_WSERV_EVENTS
       
   536 			RDebug::Printf("{EVNT}TWsPointer::QueuePointerEvent After adding event to clientqueue Event State %d ", iState);
       
   537 #endif
   535 			queue->QueueEvent(aEvent,priority);
   538 			queue->QueueEvent(aEvent,priority);
   536 			}
   539 			}
   537 		}
   540 		}
   538 	return EFalse;
   541 	return EFalse;
   539 	}
   542 	}
   859 	// re-log and update parent position
   862 	// re-log and update parent position
   860 	TPoint parPos;
   863 	TPoint parPos;
   861 	ReLogCurrentWindow(pointerEvent.iPosition,parPos,aForceInGroup);
   864 	ReLogCurrentWindow(pointerEvent.iPosition,parPos,aForceInGroup);
   862 	pointerEvent.iParentPosition=parPos;
   865 	pointerEvent.iParentPosition=parPos;
   863 	
   866 	
       
   867 	
       
   868 #ifdef LOG_WSERV_EVENTS
       
   869 	RDebug::Printf("{EVNT}TWsPointer::ProcessEvent Event send to this window %U", reinterpret_cast<TUint32>(iCurrentWindow));
       
   870 	RDebug::Printf("{EVNT}TWsPointer::ProcessEvent EventType %d and Event State %d ", eventType, iState);
       
   871 #endif
   864 	// update state
   872 	// update state
   865 	switch(eventType)
   873 	switch(eventType)
   866 		{
   874 		{
   867 		case TPointerEvent::EButton1Down:
   875 		case TPointerEvent::EButton1Down:
   868 			if (iGrabWindow==NULL && iCurrentWindow->HasPointerGrab())
   876 			if (iGrabWindow==NULL && iCurrentWindow->HasPointerGrab())
  1010 */
  1018 */
  1011 void TWsPointer::ProcessOutOfRangeEvent(TWsEvent& aEvent,const CWsWindowGroup* aForceInGroup, TBool aNatural)
  1019 void TWsPointer::ProcessOutOfRangeEvent(TWsEvent& aEvent,const CWsWindowGroup* aForceInGroup, TBool aNatural)
  1012 	{
  1020 	{
  1013 	if (iState != EPointerStateOutOfRange)
  1021 	if (iState != EPointerStateOutOfRange)
  1014 		{
  1022 		{
       
  1023 #ifdef LOG_WSERV_EVENTS
       
  1024        RDebug::Printf("{EVNT}TWsPointer::ProcessOutOfRangeEvent Pointer Number = %d, iState =%d ", iNumber, iState); 
       
  1025 #endif
       
  1026 
  1015 		// OutOfRange event generated by driver doesn't contain correct coordinates,
  1027 		// OutOfRange event generated by driver doesn't contain correct coordinates,
  1016 		// we update them from last state in order to deliver event to the proper window.
  1028 		// we update them from last state in order to deliver event to the proper window.
  1017 		SendEnterExitEvent(EEventPointerExit);
  1029 		SendEnterExitEvent(EEventPointerExit);
  1018 		
  1030 		
  1019 		iState = EPointerStateOutOfRange;
  1031 		iState = EPointerStateOutOfRange;
  1397 	{
  1409 	{
  1398 	iPreviousPrimaryPointer = iPrimaryPointer;
  1410 	iPreviousPrimaryPointer = iPrimaryPointer;
  1399 	
  1411 	
  1400 	TRawEvent::TType type=aRawEvent.Type();
  1412 	TRawEvent::TType type=aRawEvent.Type();
  1401 	TInt pointerNumber = aRawEvent.PointerNumber();
  1413 	TInt pointerNumber = aRawEvent.PointerNumber();
  1402 
  1414     
       
  1415 #ifdef LOG_WSERV_EVENTS
       
  1416 	RDebug::Printf("{EVNT}TWsPointer::UpdatePrimaryPointer Current Primary pointer = %d",iPrimaryPointer);
       
  1417 	RDebug::Printf("{EVNT}TWsPointer::UpdatePrimaryPointer Pointer Number= %d  State = %x XY(%d,%d)",iPointers[0].iNumber,iPointers[0].iState,iPointers[0].iPos.iX,iPointers[0].iPos.iY);
       
  1418     RDebug::Printf("{EVNT}TWsPointer::UpdatePrimaryPointer Pointer Number= %d  State = %x XY(%d,%d)",iPointers[1].iNumber,iPointers[1].iState,iPointers[1].iPos.iX,iPointers[1].iPos.iY);
       
  1419 #endif
       
  1420 	
  1403 	// If primary pointer is out of range, then the first pointer that will 
  1421 	// If primary pointer is out of range, then the first pointer that will 
  1404 	// start being detected (come back in range) will become primary.
  1422 	// start being detected (come back in range) will become primary.
  1405 	if (iPointers[iPrimaryPointer].iState == EPointerStateOutOfRange)
  1423 	if (iPointers[iPrimaryPointer].iState == EPointerStateOutOfRange)
  1406 		{
  1424 		{
  1407 		if (type != TRawEvent::EPointer3DOutOfRange && iPointers[pointerNumber].iState == EPointerStateOutOfRange)
  1425 		if (type != TRawEvent::EPointer3DOutOfRange && iPointers[pointerNumber].iState == EPointerStateOutOfRange)
  1408 			{
  1426 			{
  1409 			iPrimaryPointer = pointerNumber;
  1427 			iPrimaryPointer = pointerNumber;
       
  1428 #ifdef LOG_WSERV_EVENTS
       
  1429 	        RDebug::Printf("{EVNT}TWsPointer::UpdatePrimaryPointer New Primary pointer(case OutRange) = %d",iPrimaryPointer);
       
  1430 #endif
  1410 			}
  1431 			}
  1411 		return;
  1432 		return;
  1412 		}
  1433 		}
  1413 	
  1434 	
  1414 	// if non-primary pointer sends EButton1Down event, and actual primary pointer
  1435 	// if non-primary pointer sends EButton1Down event, and actual primary pointer
  1415 	// is not down, then the pointer which has sent EButton1Down becomes primary.
  1436 	// is not down, then the pointer which has sent EButton1Down becomes primary.
  1416 	if (type == TRawEvent::EButton1Down && 
  1437 	if (type == TRawEvent::EButton1Down && 
  1417 		iPointers[iPrimaryPointer].iState != EPointerStateDown)
  1438 		iPointers[iPrimaryPointer].iState != EPointerStateDown)
  1418 		{
  1439 		{ 
  1419 		iPrimaryPointer = pointerNumber;
  1440 		iPrimaryPointer = pointerNumber;
       
  1441 #ifdef LOG_WSERV_EVENTS
       
  1442         RDebug::Printf("{EVNT}TWsPointer::UpdatePrimaryPointer New Primary pointer(case ButtonDown) = %d",iPrimaryPointer);
       
  1443 #endif
  1420 		return;
  1444 		return;
  1421 		}
  1445 		}
  1422 	}
  1446 	}
  1423 
  1447 
  1424 /** Sets Z coordinate threshold values for TPointerEvent::EEnterCloseProximity 
  1448 /** Sets Z coordinate threshold values for TPointerEvent::EEnterCloseProximity