--- a/windowing/windowserver/nga/SERVER/EVENT.CPP Tue Jul 20 13:27:44 2010 +0300
+++ b/windowing/windowserver/nga/SERVER/EVENT.CPP Fri Jul 30 11:41:40 2010 +0300
@@ -34,6 +34,7 @@
#include "debugbar.h"
#include "advancedpointereventhelper.h"
#include "graphics/wsgraphicdrawerinternal.h"
+#include "debughelper.h"
GLREF_D CDebugLogBase *wsDebugLog;
@@ -384,6 +385,9 @@
#else
iEventHandlers.AppendL(TRawEventHandler(aEventHandler, aAdvancedPointersEnabled)); //Shouldn't leave
#endif
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Printf("_WSEVENT_POINTER: TWindowServerEvent::AddEventHandler Added handler = %d AdvancedPointerEnabled = %d", iEventHandlers.Count(),aAdvancedPointersEnabled);
+#endif
}
void TWindowServerEvent::RemoveEventHandler(const MEventHandler *aEventHandler)
@@ -394,6 +398,9 @@
{
if (iEventHandlers[ii].iEventHandler==aEventHandler)
{
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Printf("_WSEVENT_POINTER: TWindowServerEvent::RemoveEventHandler Removed handler = %d",ii);
+#endif
if (iEventHandlerCount>0)
{
iBinaryFlags |= ERemovedEventHandlerWhileProcessingRawEvents;
@@ -711,6 +718,9 @@
void TWindowServerEvent::QueueKeyEvent(CWsWindowGroup *aWin, TWsEvent &aEvent, TWservEventPriorities aPriority)
{
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Print(_L("_WSEVENT_KEY: TWindowServerEvent::QueueKeyEvent, Queuing event name %S for application read, window handle: %d"), &WsEventName(aEvent), CWsTop::FocusWindowGroup()->ClientHandle());
+#endif
aEvent.SetTimeNow();
aWin->EventQueue()->QueueEvent(aEvent, aPriority);
}
@@ -981,6 +991,9 @@
*/
void TWindowServerEvent::QueueKeyUpDown(const TRawEvent &aRawEvent)
{
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Print(_L("_WSEVENT_KEY: TWindowServerEvent::QueueKeyUpDown, Event Name: %S, Scan code: %d"), &RawEventName(aRawEvent), aRawEvent.ScanCode());
+#endif
TEventCode type = aRawEvent.Type() == TRawEvent::EKeyUp ? EEventKeyUp : EEventKeyDown;
// Check for key up/down capture
@@ -1159,7 +1172,11 @@
TBool isPointerEvent = TWsPointer::IsPointerEventType(eventType);
if (isPointerEvent)
{
- TWsPointer::UpdatePrimaryPointer(aRawEvent);
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Print(_L("_WSEVENT_POINTER: TWindowServerEvent::ProcessRawEvent EventName = %S PointerNumber = %d PrimaryPointerNumber = %d Coordinates = ( %d, %d )"),
+ &RawEventName(aRawEvent),aRawEvent.PointerNumber(),TWsPointer::PrimaryPointer(),aRawEvent.Pos().iX,aRawEvent.Pos().iY);
+#endif
+ TWsPointer::UpdatePrimaryPointer(aRawEvent);
}
TInt count=iEventHandlers.Count();
TInt ii;
@@ -1176,9 +1193,15 @@
{
if (CClick::IsHandler())
{
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Print(_L("_WSEVENT_KEY: Send event %S for Key Click"), &RawEventName(aRawEvent));
+#endif
SendEventToKeyClick(aRawEvent);
}
eventHandled = ETrue;
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Printf("_WSEVENT_POINTER: TWindowServerEvent::ProcessRawEvent Event Consumed by ANIM.dll Handler No = %d Advanced Pointer Enabled = %d",ii,handler.iAdvancedPointersEnabled);
+#endif
break;
}
}
@@ -1195,12 +1218,45 @@
}
if (eventHandled)
{
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Printf("_WSEVENT: Event is already handled by anim dll not by window server");
+ // This is to determine when we press the power button which bring power dialog
+ // whether it is a pointer event or key event
+ // Also when we plugin the charging cable this is to determine whether it is a pointer event or key event
+ RDebug::Print(_L("_WSEVENT: RawEvent Name = %S"), &RawEventName(aRawEvent));
+#endif
if (isPointerEvent)
{
- TWsPointer::RollbackPrimaryPointer();
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Printf("_WSEVENT_POINTER: TWindowServerEvent::ProcessRawEvent Pointer Number= %d State = %x XY(%d,%d)",TWsPointer::iPointers[0].iNumber,TWsPointer::iPointers[0].iState,TWsPointer::iPointers[0].iPos.iX,TWsPointer::iPointers[0].iPos.iY);
+ RDebug::Printf("_WSEVENT_POINTER: TWindowServerEvent::ProcessRawEvent Pointer Number= %d State = %x XY(%d,%d)",TWsPointer::iPointers[1].iNumber,TWsPointer::iPointers[1].iState,TWsPointer::iPointers[1].iPos.iX,TWsPointer::iPointers[1].iPos.iY);
+#endif
+ //Prevention of the phone pointer event "dead lock".
+ TPointerEvent::TType type;
+ TBool handled = ETrue;
+ GetPointerEvent(type, aRawEvent, handled);
+ switch(type)
+ {
+ case TPointerEvent::EButton1Down:
+ case TPointerEvent::EButton2Down:
+ case TPointerEvent::EButton3Down:
+ TWsPointer::iPointers[aRawEvent.PointerNumber()].iState = TWsPointer::EPointerStateDown;
+ break;
+ case TPointerEvent::EButton1Up:
+ case TPointerEvent::EButton2Up:
+ case TPointerEvent::EButton3Up:
+ TWsPointer::iPointers[aRawEvent.PointerNumber()].iState = TWsPointer::EPointerStateUp;
+ break;
+ case TPointerEvent::EOutOfRange:
+ TWsPointer::iPointers[aRawEvent.PointerNumber()].iState = TWsPointer::EPointerStateOutOfRange;
+ break;
+ default:
+ break;
+ }
}
return;
}
+
switch(eventType)
{
case TRawEvent::ERedraw:
@@ -1248,6 +1304,9 @@
break;
case TRawEvent::EKeyDown:
{
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Printf("_WSEVENT_KEY: TRawEvent::EKeyDown");
+#endif
_LIT(KWSERVDebugLogKeyDownArrival,"Key down arrives %d");
CScreen* screen = CWsTop::Screen();
WS_ASSERT_ALWAYS(screen, EWsPanicNoScreen);
@@ -1274,6 +1333,9 @@
break;
case TRawEvent::EKeyUp:
{
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Printf("_WSEVENT_KEY: TRawEvent::EKeyUp");
+#endif
_LIT(KWSERVDebugLogKeyUpArrival,"Key up arrives %d");
CScreen* screen = CWsTop::Screen();
WS_ASSERT_ALWAYS(screen, EWsPanicNoScreen);
@@ -1334,10 +1396,23 @@
default:
break;
}
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Printf("_WSEVENT_POINTER: TWindowServerEvent::ProcessRawEvent Number= %d State = %x XY(%d,%d)",TWsPointer::iPointers[0].iNumber,TWsPointer::iPointers[0].iState,TWsPointer::iPointers[0].iPos.iX,TWsPointer::iPointers[0].iPos.iY);
+ RDebug::Printf("_WSEVENT_POINTER: TWindowServerEvent::ProcessRawEvent Number= %d State = %x XY(%d,%d)",TWsPointer::iPointers[1].iNumber,TWsPointer::iPointers[1].iState,TWsPointer::iPointers[1].iPos.iX,TWsPointer::iPointers[1].iPos.iY);
+#endif
}
void TWindowServerEvent::ProcessKeyEvent(const TKeyEvent &aKeyEvent,TInt aRepeats)
{
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Printf("_WSEVENT_KEY: TWindowServerEvent::ProcessKeyEvent, key code: %d, repeat: %d", aKeyEvent.iCode, aRepeats);
+#endif
+ TKeyData keyData;
+ keyData.iModifiers=aKeyEvent.iModifiers;
+ keyData.iApp=0;
+ keyData.iHandle=0;
+ keyData.iIsCaptureKey=EFalse;
+ keyData.iKeyCode=aKeyEvent.iCode;
if (CKeyboardRepeat::IsAreadyActive())
{
CKeyboardRepeat::CancelRepeat(NULL);
@@ -1600,6 +1675,9 @@
void CRawEventReceiver::RunL()
{
+#ifdef LOG_WSERV_EVENTS
+ RDebug::Printf("_WSEVENT_KEY: CRawEventReceiver::RunL Entry point for event receiver");
+#endif
//__PROFILE_START(11);
if (TWsPointer::PreProcessDriverEvent(iEventBuf.Event()
#if defined(__WINS__)