gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/sprite_instance.cpp serv...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/sprite_instance.cpp serv...
Date: Wed, 13 Feb 2008 18:44:08 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/02/13 18:44:08

Modified files:
        .              : ChangeLog 
        server         : sprite_instance.cpp sprite_instance.h 
        testsuite/misc-ming.all: PrototypeEventListenersTestRunner.cpp 

Log message:
                * server/sprite_instance.{cpp,h}: always register as a key and 
mouse
                  listener, not relying on equipment of a known handler (as 
that would
                  miss prototype assignments).
                * 
testsuite/misc-ming.all/PrototypeEventListenersTestRunner.cpp: fix
                  bogus check.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5642&r2=1.5643
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.472&r2=1.473
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.h?cvsroot=gnash&r1=1.168&r2=1.169
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/misc-ming.all/PrototypeEventListenersTestRunner.cpp?cvsroot=gnash&r1=1.2&r2=1.3

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5642
retrieving revision 1.5643
diff -u -b -r1.5642 -r1.5643
--- ChangeLog   13 Feb 2008 17:53:06 -0000      1.5642
+++ ChangeLog   13 Feb 2008 18:44:07 -0000      1.5643
@@ -1,5 +1,13 @@
 2008-02-13 Sandro Santilli <address@hidden>
 
+       * server/sprite_instance.{cpp,h}: always register as a key and mouse
+         listener, not relying on equipment of a known handler (as that would
+         miss prototype assignments).
+       * testsuite/misc-ming.all/PrototypeEventListenersTestRunner.cpp: fix
+         bogus check.
+
+2008-02-13 Sandro Santilli <address@hidden>
+
        * testsuite/misc-ming.all/Makefile.am: enable test
          PrototypeEventListenersTestRunner
 

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.472
retrieving revision 1.473
diff -u -b -r1.472 -r1.473
--- server/sprite_instance.cpp  12 Feb 2008 20:56:29 -0000      1.472
+++ server/sprite_instance.cpp  13 Feb 2008 18:44:08 -0000      1.473
@@ -2098,8 +2098,6 @@
   is_jumping_back(false),
   _callingFrameActions(false),
   m_as_environment(),
-  m_has_key_event(false),
-  m_has_mouse_event(false),
   _text_variables(),
   m_sound_stream_id(-1),
   _userCxform(),
@@ -2125,17 +2123,8 @@
   // We might have been deleted by Quit... 
   //assert(isDestroyed());
 
-  if (m_has_key_event)
-  {
     _vm.getRoot().remove_key_listener(this);
-  }
-
-  if (m_has_mouse_event)
-  {
     _vm.getRoot().remove_mouse_listener(this);
-  }
-
-  //m_display_list.clear();
 
   for (LoadVariablesThreads::iterator it=_loadVariableRequests.begin();
       it != _loadVariableRequests.end(); ++it)
@@ -2622,10 +2611,10 @@
   //log_debug(_("sprite[%p]::set_member(%s, %s)"), (void*)this, 
VM::get().getStringTable().value(name), val.to_debug_string().c_str());
 #endif
 
-  if ( val.is_function() )
-  {
-    checkForKeyOrMouseEvent(VM::get().getStringTable().value(name));
-  }
+  //if ( val.is_function() )
+  //{
+  //  checkForKeyOrMouseEvent(VM::get().getStringTable().value(name));
+  //}
 
   // Try textfield variables
   //
@@ -3821,19 +3810,8 @@
 void
 sprite_instance::registerAsListener()
 {
-  if (m_has_key_event)
-  {
     _vm.getRoot().add_key_listener(this);
-  }
-  // Mouse events listening is done in has_mouse_event directly.
-  // This shows to work better for attachMovieTest.swf,
-  // but might actually be a completely unrelated issue.
-  // In particular, copying event handlers in attachMovie should
-  // be more closely inspected (and need more ad-hoc testcases)
-  //if (m_has_mouse_event)
-  //{
-    //_vm.getRoot().add_mouse_listener(this);
-  //}
+    _vm.getRoot().add_mouse_listener(this);
 }
   
 
@@ -4122,13 +4100,6 @@
 }
 
 void
-sprite_instance::has_mouse_event()
-{
-  m_has_mouse_event = true;
-  _vm.getRoot().add_mouse_listener(this);
-}
-
-void 
 sprite_instance::loadVariables(URL url, short sendVarsMethod)
 {
   // Check host security
@@ -4284,35 +4255,6 @@
 
 }
 
-void
-sprite_instance::checkForKeyOrMouseEvent(const std::string& name)
-{
-  // short-cut
-  if ( name.size() < 9 ) return;
-
-  // TODO: don't use strcmp/strcasecmp, we're a C++ application after all !
-
-  typedef int (*cmp_t) (const char*, const char*);
-  cmp_t cmp = strcmp;
-  if ( _vm.getSWFVersion() < 7 ) cmp = strcasecmp;
-
-  const char* ptr = name.c_str();
-  
-  // AFAIK, there is no user defined "onKeyPress" event handler!
-  if ( ! cmp(ptr, "onKeyDown") 
-    || ! cmp(ptr, "onKeyUp"))
-  {
-    has_key_event();
-  }
-  else if ( ! cmp(ptr, "onMouseDown")
-    || ! cmp(ptr, "onMouseUp") 
-    || ! cmp(ptr, "onMouseMove") )
-  {
-    has_mouse_event();
-  }
-
-}
-
 geometry::Range2d<float>
 sprite_instance::getBounds() const
 {

Index: server/sprite_instance.h
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.h,v
retrieving revision 1.168
retrieving revision 1.169
diff -u -b -r1.168 -r1.169
--- server/sprite_instance.h    12 Feb 2008 20:56:29 -0000      1.168
+++ server/sprite_instance.h    13 Feb 2008 18:44:08 -0000      1.169
@@ -103,12 +103,6 @@
                TAG_DLIST  = 1<<1
        };
 
-       virtual void has_key_event() {
-               m_has_key_event = true;
-       }
-
-       virtual void has_mouse_event();
-
        /// \brief
        /// Return this sprite's root as
        /// specified at contruction time
@@ -908,17 +902,6 @@
        /// Forbid assignment
        sprite_instance& operator=(const sprite_instance&) { abort(); return 
*this; }
 
-       /// \brief
-       /// Call has_key_event() or has_mouse_event()
-       /// if the given string correspond to an event handler
-       /// for which registering as a listener of Mouse or Key is needed
-       //
-       ///
-       /// @param name
-       ///     Member name. 
-       ///
-       void checkForKeyOrMouseEvent(const std::string& name);
-
        /// Advance to a previous frame.
        //
        /// This function will basically restore the DisplayList as it 
supposedly
@@ -1019,11 +1002,6 @@
        /// Increment m_current_frame, and take care of looping.
        void increment_frame_and_check_for_loop();
 
-       /// key events are: KEY_DOWN, KEY_PRESS, KEY_UP
-       bool m_has_key_event;
-
-       bool m_has_mouse_event;
-
        typedef boost::intrusive_ptr< edit_text_character > TextFieldPtr;
        typedef std::vector< TextFieldPtr > TextFieldPtrVect;
 

Index: testsuite/misc-ming.all/PrototypeEventListenersTestRunner.cpp
===================================================================
RCS file: 
/sources/gnash/gnash/testsuite/misc-ming.all/PrototypeEventListenersTestRunner.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- testsuite/misc-ming.all/PrototypeEventListenersTestRunner.cpp       13 Feb 
2008 15:07:46 -0000      1.2
+++ testsuite/misc-ming.all/PrototypeEventListenersTestRunner.cpp       13 Feb 
2008 18:44:08 -0000      1.3
@@ -53,7 +53,7 @@
        // for variables lookup (consistency checking)
        string_table& st = root->getVM().getStringTable();
 
-       check_equals(root->get_frame_count(), 1);
+       check_equals(root->get_frame_count(), 2);
        check_equals(root->get_current_frame(), 0);
 
        // first frame is just Dejagnu clip...




reply via email to

[Prev in Thread] Current Thread [Next in Thread]