[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-datatype-cvs
Subject:    [Datatype-cvs] flash/flashhost/platform/win32
From:       ping () helixcommunity ! org
Date:       2008-06-30 22:32:00
Message-ID: 200806302233.m5UMXa0M016231 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/datatype/flash/flashhost/platform/win32
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv24931/platform/win32

Modified Files:
      Tag: hxclient_3_1_0_atlas
	flash_guest_player_ax.cpp 
Log Message:
Keep tracking the active Windowless Flash instance who has the current focus and only \
send keyboard messages to that instance.

Fixed B#220114



Index: flash_guest_player_ax.cpp
===================================================================
RCS file: /cvsroot/datatype/flash/flashhost/platform/win32/flash_guest_player_ax.cpp,v
 retrieving revision 1.21.2.39
retrieving revision 1.21.2.40
diff -u -d -r1.21.2.39 -r1.21.2.40
--- flash_guest_player_ax.cpp	24 Jun 2008 17:54:41 -0000	1.21.2.39
+++ flash_guest_player_ax.cpp	30 Jun 2008 22:31:57 -0000	1.21.2.40
@@ -1338,12 +1338,9 @@
         case  WM_MBUTTONDBLCLK:
         case  WM_MOUSEHOVER:
         case  WM_MOUSEACTIVATE:
-        case  WM_KEYUP:
-        case  WM_KEYDOWN:
         case  WM_SETCURSOR:
         case  WM_SETFOCUS:
         case  WM_KILLFOCUS:
-        case  WM_CHAR:
         case  WM_MOUSEWHEEL:
         {
             if (m_lpInPlaceObjWindowless)
@@ -1359,6 +1356,26 @@
             }
             break;
         }
+        case  WM_KEYUP:
+        case  WM_KEYDOWN:
+        case  WM_CHAR:
+        {
+            // There can be multiple Windowless Flash instances
+            // Only send keyboard message to the Flash instance who has the current \
focus +            // from SetFocus(TRUE)
+            if (CFlashGuestPlayer::zm_ulIDHasFocus == m_ulID && \
m_lpInPlaceObjWindowless) +            {
+                LRESULT res;
+                hr = m_lpInPlaceObjWindowless->OnWindowMessage(pEvent->event,
+                                (WPARAM)pEvent->param1, (LPARAM)pEvent->param2, \
&res); +                if (hr == S_OK)
+                {
+                    pEvent->handled = TRUE;
+                    retVal = res;
+                }
+            }
+            break;
+        }
         case  WM_SIZE:
         {
             RECT rPos;
@@ -2026,6 +2043,8 @@
 STDMETHODIMP CFlashGuestPlayerAX::SetFocus(HXBOOL fFocus)
 {
     HXLOGL4(HXLOG_FPHR, "CFlashGuestPlayerAX::SetFocus()");
+    HX_ASSERT(m_ulID);
+    CFlashGuestPlayer::zm_ulIDHasFocus = m_ulID;
     return S_OK;
 }
 


_______________________________________________
Datatype-cvs mailing list
Datatype-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic