[Top][All Lists]
[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();
};
- [Gnash-commit] gnash ChangeLog server/movie_root.cpp server/mo...,
Sandro Santilli <=