gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/movie_root.cpp server/mo...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/movie_root.cpp server/mo...
Date: Fri, 20 Oct 2006 14:30:15 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/10/20 14:30:15

Modified files:
        .              : ChangeLog 
        server         : movie_root.cpp movie_root.h 

Log message:
                * server/movie_root.{cpp,h} (notify_mouse_moved, 
notify_mouse_clicked):
                  delegate return code to fire_mouse_events, changed to return 
bool;              (fire_mouse_events): delegate return to 
generate_mouse_events,
                  changed to return bool. Ok, final effect is we *sometime* 
return
                  false (when NO event is actually triggered). Still partial as 
an
                  implementation but a little step forward.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1324&r2=1.1325
http://cvs.savannah.gnu.org/viewcvs/gnash/server/movie_root.cpp?cvsroot=gnash&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/gnash/server/movie_root.h?cvsroot=gnash&r1=1.17&r2=1.18

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1324
retrieving revision 1.1325
diff -u -b -r1.1324 -r1.1325
--- ChangeLog   20 Oct 2006 14:10:25 -0000      1.1324
+++ ChangeLog   20 Oct 2006 14:30:14 -0000      1.1325
@@ -1,5 +1,11 @@
 2006-10-20 Sandro Santilli <address@hidden>
 
+       * server/movie_root.{cpp,h} (notify_mouse_moved, notify_mouse_clicked): 
+         delegate return code to fire_mouse_events, changed to return bool;
+         (fire_mouse_events): delegate return to generate_mouse_events, 
+         changed to return bool. Ok, final effect is we *sometime* return
+         false (when NO event is actually triggered). Still partial as an
+         implementation but a little step forward.
        * testsuite/actionscript.all/swf_exists.exp: strip PASSED/FAILED
          from test output labels.
 

Index: server/movie_root.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/movie_root.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- server/movie_root.cpp       19 Oct 2006 09:17:06 -0000      1.18
+++ server/movie_root.cpp       20 Oct 2006 14:30:15 -0000      1.19
@@ -124,15 +124,8 @@
 {
     m_mouse_x = x;
     m_mouse_y = y;
-    fire_mouse_event();
+    return fire_mouse_event();
 
-       // theoretically, we should return wheter
-       // any action triggered by this event requires
-       // display redraw, this is not implemented currently
-       // so we always return true (TODO).
-       // See page about events_handling (in movie_interface.h)
-       // for more information.
-       return true;
 }
 
 bool
@@ -143,15 +136,7 @@
     } else {
         m_mouse_buttons &= ~button_mask;
     }
-    fire_mouse_event();
-
-       // theoretically, we should return wheter
-       // any action triggered by this event requires
-       // display redraw, this is not implemented currently
-       // so we always return true (TODO).
-       // See page about events_handling (in movie_interface.h)
-       // for more information.
-       return true;
+    return fire_mouse_event();
 }
 
 void
@@ -163,11 +148,19 @@
     fire_mouse_event();
 }
 
-void generate_mouse_button_events(mouse_button_state* ms)
+// Return wheter any action triggered by this event requires display redraw.
+// See page about events_handling (in movie_interface.h)
+//
+/// TODO: make this code more readable !
+bool
+generate_mouse_button_events(mouse_button_state* ms)
 {
        smart_ptr<movie>        active_entity = ms->m_active_entity;
        smart_ptr<movie>        topmost_entity = ms->m_topmost_entity;
 
+       // Did this event trigger any action that needs redisplay ?
+       bool need_redisplay = false;
+
        if (ms->m_mouse_button_state_last == 1)
        {
                // Mouse button was down.
@@ -184,6 +177,11 @@
                                active_entity = topmost_entity;
                                
active_entity->on_button_event(event_id::DRAG_OVER);
                                ms->m_mouse_inside_entity_last = true;
+
+                               // TODO: have on_button_event return
+                               //       wheter the action must trigger
+                               //       a redraw.
+                               need_redisplay=true;
                        }
                }
 
@@ -196,6 +194,10 @@
                                if (active_entity != NULL)
                                {
                                        
active_entity->on_button_event(event_id::DRAG_OVER);
+                                       // TODO: have on_button_event return
+                                       //       wheter the action must trigger
+                                       //       a redraw.
+                                       need_redisplay=true;
                                }
                                ms->m_mouse_inside_entity_last = true;
                        }
@@ -209,6 +211,10 @@
                                if (active_entity != NULL)
                                {
                                        
active_entity->on_button_event(event_id::DRAG_OUT);
+                                       // TODO: have on_button_event return
+                                       //       wheter the action must trigger
+                                       //       a redraw.
+                                       need_redisplay=true;
                                }
                                ms->m_mouse_inside_entity_last = false;
                        }
@@ -226,6 +232,10 @@
                                {
                                        // onRelease
                                        
active_entity->on_button_event(event_id::RELEASE);
+                                       // TODO: have on_button_event return
+                                       //       wheter the action must trigger
+                                       //       a redraw.
+                                       need_redisplay=true;
                                }
                                else
                                {
@@ -233,6 +243,10 @@
                                        if (active_entity->get_track_as_menu() 
== false)
                                        {
                                                
active_entity->on_button_event(event_id::RELEASE_OUTSIDE);
+                                       // TODO: have on_button_event return
+                                       //       wheter the action must trigger
+                                       //       a redraw.
+                                               need_redisplay=true;
                                        }
                                }
                        }
@@ -250,6 +264,10 @@
                        if (active_entity != NULL)
                        {
                                
active_entity->on_button_event(event_id::ROLL_OUT);
+                               // TODO: have on_button_event return
+                               //       wheter the action must trigger
+                               //       a redraw.
+                               need_redisplay=true;
                        }
 
                        active_entity = topmost_entity;
@@ -258,6 +276,10 @@
                        if (active_entity != NULL)
                        {
                                
active_entity->on_button_event(event_id::ROLL_OVER);
+                               // TODO: have on_button_event return
+                               //       wheter the action must trigger
+                               //       a redraw.
+                               need_redisplay=true;
                        }
 
                        ms->m_mouse_inside_entity_last = true;
@@ -280,6 +302,10 @@
                                if (current_active_entity != NULL)
                                {
                                        
current_active_entity->on_event(event_id::KILLFOCUS);
+                                       // TODO: have on_button_event return
+                                       //       wheter the action must trigger
+                                       //       a redraw.
+                                       need_redisplay=true;
                                        mroot->set_active_entity(NULL);
                                }
 
@@ -296,6 +322,10 @@
                        if (active_entity != NULL)
                        {
                                active_entity->on_button_event(event_id::PRESS);
+                               // TODO: have on_button_event return
+                               //       wheter the action must trigger
+                               //       a redraw.
+                               need_redisplay=true;
                        }
                        ms->m_mouse_inside_entity_last = true;
                        ms->m_mouse_button_state_last = 1;
@@ -306,21 +336,24 @@
        // into the state struct.
        ms->m_active_entity = active_entity;
        ms->m_topmost_entity = topmost_entity;
+
+       //if ( ! need_redisplay ) log_msg("Hurray, an event didnt' trigger 
redisplay!");
+       return need_redisplay;
 }
 
 
-void
+bool
 movie_root::fire_mouse_event()
 {
 //         GNASH_REPORT_FUNCTION;
-//             dbglogfile << "X is: " << x << " Y is: " << y << " Button is: "
-//                        << buttons << endl;
 
     // Generate a mouse event
     m_mouse_button_state.m_topmost_entity =
         m_movie->get_topmost_mouse_entity(PIXELS_TO_TWIPS(m_mouse_x), 
PIXELS_TO_TWIPS(m_mouse_y));
     m_mouse_button_state.m_mouse_button_state_current = (m_mouse_buttons & 1);
-    generate_mouse_button_events(&m_mouse_button_state);
+
+    return generate_mouse_button_events(&m_mouse_button_state);
+
 }
 
 void

Index: server/movie_root.h
===================================================================
RCS file: /sources/gnash/gnash/server/movie_root.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- server/movie_root.h 19 Oct 2006 09:17:06 -0000      1.17
+++ server/movie_root.h 20 Oct 2006 14:30:15 -0000      1.18
@@ -35,7 +35,7 @@
 // 
 //
 
-/* $Id: movie_root.h,v 1.17 2006/10/19 09:17:06 strk Exp $ */
+/* $Id: movie_root.h,v 1.18 2006/10/20 14:30:15 strk Exp $ */
 
 #ifndef GNASH_MOVIE_ROOT_H
 #define GNASH_MOVIE_ROOT_H
@@ -302,7 +302,12 @@
        }
 
 private:
-        void fire_mouse_event();
+
+       /// This function should return TRUE iff any action triggered
+       /// by the event requires redraw, see \ref events_handling for
+       /// more info.
+       ///
+        bool fire_mouse_event();
 
 };
 




reply via email to

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