CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/10/18 16:28:45
Modified files: . : ChangeLog server : edit_text_character.cpp edit_text_character.h Log message: * server/edit_text_character.{cpp,h}: fix an invalidated bounds problem on set/kill focus. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4635&r2=1.4636 http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.cpp?cvsroot=gnash&r1=1.127&r2=1.128 http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.h?cvsroot=gnash&r1=1.57&r2=1.58 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.4635 retrieving revision 1.4636 diff -u -b -r1.4635 -r1.4636 --- ChangeLog 18 Oct 2007 15:56:54 -0000 1.4635 +++ ChangeLog 18 Oct 2007 16:28:45 -0000 1.4636 @@ -1,3 +1,8 @@ +2007-10-18 Sandro Santilli <[EMAIL PROTECTED]> + + * server/edit_text_character.{cpp,h}: fix an invalidated bounds + problem on set/kill focus. + 2007-10-18 Tomas Groth Christensen <[EMAIL PROTECTED]> * libmedia/VideoDecoder.h,libmedia/gst/VideoDecoder{Ffmpeg.Gst}.{h,cpp}: Index: server/edit_text_character.cpp =================================================================== RCS file: /sources/gnash/gnash/server/edit_text_character.cpp,v retrieving revision 1.127 retrieving revision 1.128 diff -u -b -r1.127 -r1.128 --- server/edit_text_character.cpp 18 Oct 2007 13:51:33 -0000 1.127 +++ server/edit_text_character.cpp 18 Oct 2007 16:28:45 -0000 1.128 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: edit_text_character.cpp,v 1.127 2007/10/18 13:51:33 strk Exp $ */ +/* $Id: edit_text_character.cpp,v 1.128 2007/10/18 16:28:45 strk Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -575,30 +575,13 @@ { case event_id::SETFOCUS: { - if (m_has_focus == false) - { -#ifdef NEW_KEY_LISTENER_LIST_DESIGN - _vm.getRoot().add_key_listener(KeyListener(this, KeyListener::ON_CLIP_DEF)); -#else - _vm.getRoot().add_key_listener(this); -#endif - m_has_focus = true; - m_cursor = _text.size(); - format_text(); - } + setFocus(); break; } case event_id::KILLFOCUS: { - if (m_has_focus == true) - { - movie_root& root = _vm.getRoot(); - root.setFocus(NULL); - root.remove_key_listener(this); - m_has_focus = false; - format_text(); - } + killFocus(); break; } @@ -2079,6 +2062,40 @@ callMethod(key, env); } +void +edit_text_character::setFocus() +{ + if ( m_has_focus ) return; // nothing to do + + set_invalidated(); + + m_has_focus = true; + +#ifdef NEW_KEY_LISTENER_LIST_DESIGN + _vm.getRoot().add_key_listener(KeyListener(this, KeyListener::ON_CLIP_DEF)); +#else + _vm.getRoot().add_key_listener(this); +#endif + + m_cursor = _text.size(); + format_text(); +} + +void +edit_text_character::killFocus() +{ + if ( ! m_has_focus ) return; // nothing to do + + set_invalidated(); + + m_has_focus = false; + + movie_root& root = _vm.getRoot(); + root.setFocus(NULL); + root.remove_key_listener(this); + format_text(); // is this needed ? +} + } // namespace gnash Index: server/edit_text_character.h =================================================================== RCS file: /sources/gnash/gnash/server/edit_text_character.h,v retrieving revision 1.57 retrieving revision 1.58 diff -u -b -r1.57 -r1.58 --- server/edit_text_character.h 18 Oct 2007 14:13:04 -0000 1.57 +++ server/edit_text_character.h 18 Oct 2007 16:28:45 -0000 1.58 @@ -280,6 +280,12 @@ private: + /// Set focus + void setFocus(); + + /// Kill focus + void killFocus(); + /// Call this function when willing to invoke the onChanged event handler void onChanged(); _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit