[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ... |
Date: |
Tue, 01 Apr 2008 18:36:22 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 08/04/01 18:36:22
Modified files:
. : ChangeLog
server : edit_text_character.cpp edit_text_character.h
sprite_instance.cpp sprite_instance.h
server/parser : edit_text_character_def.cpp
edit_text_character_def.h
Log message:
* server/sprite_instance.{cpp,h}: streamline headers inclusion.
* server/edit_text_character.{cpp,h}: keep note about whether
text is defined, and don't register the text variable until
it is. Fixes bug #22472.
* server/parser/edit_text_character_def.{cpp,h}: keep note about
whether text is defined at definition time.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6139&r2=1.6140
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.cpp?cvsroot=gnash&r1=1.159&r2=1.160
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.h?cvsroot=gnash&r1=1.70&r2=1.71
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.492&r2=1.493
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.h?cvsroot=gnash&r1=1.174&r2=1.175
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/edit_text_character_def.cpp?cvsroot=gnash&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/edit_text_character_def.h?cvsroot=gnash&r1=1.24&r2=1.25
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6139
retrieving revision 1.6140
diff -u -b -r1.6139 -r1.6140
--- ChangeLog 1 Apr 2008 18:20:53 -0000 1.6139
+++ ChangeLog 1 Apr 2008 18:36:21 -0000 1.6140
@@ -1,5 +1,14 @@
2008-04-01 Sandro Santilli <address@hidden>
+ * server/sprite_instance.{cpp,h}: streamline headers inclusion.
+ * server/edit_text_character.{cpp,h}: keep note about whether
+ text is defined, and don't register the text variable until
+ it is. Fixes bug #22472.
+ * server/parser/edit_text_character_def.{cpp,h}: keep note about
+ whether text is defined at definition time.
+
+2008-04-01 Sandro Santilli <address@hidden>
+
* libmedia/gst/SoundHandlerGst.{cpp,h}: streamline headers
inclusion.
Index: server/edit_text_character.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/edit_text_character.cpp,v
retrieving revision 1.159
retrieving revision 1.160
diff -u -b -r1.159 -r1.160
--- server/edit_text_character.cpp 12 Mar 2008 16:04:05 -0000 1.159
+++ server/edit_text_character.cpp 1 Apr 2008 18:36:21 -0000 1.160
@@ -376,6 +376,7 @@
:
character(parent, id),
_text(L""),
+ _textDefined(def->has_text()),
m_def(def),
_font(0),
m_has_focus(false),
@@ -415,12 +416,14 @@
int version = VM::get().getSWFVersion();
+ if ( _textDefined )
+ {
setTextValue(utf8::decodeCanonicalString(m_def->get_default_text(),
version));
+ registerTextVariable();
+ }
m_dummy_style.push_back(fill_style());
- registerTextVariable();
-
reset_bounding_box(0, 0);
}
@@ -722,6 +725,8 @@
void
edit_text_character::updateText(const std::wstring& wstr)
{
+ _textDefined=true;
+
unsigned int maxLen = m_def->get_max_length();
std::wstring newText = wstr; // copy needed for eventual resize
@@ -1584,6 +1589,14 @@
log_debug(_("registerTextVariable() called"));
#endif
+ if ( ! _textDefined )
+ {
+#ifdef DEBUG_DYNTEXT_VARIABLES
+ log_debug(_("registerTextVariable() no-op call (has no text)"));
+#endif
+ return;
+ }
+
if ( _text_variable_registered )
{
#ifdef DEBUG_DYNTEXT_VARIABLES
Index: server/edit_text_character.h
===================================================================
RCS file: /sources/gnash/gnash/server/edit_text_character.h,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -b -r1.70 -r1.71
--- server/edit_text_character.h 27 Mar 2008 10:50:14 -0000 1.70
+++ server/edit_text_character.h 1 Apr 2008 18:36:21 -0000 1.71
@@ -115,6 +115,9 @@
/// Return value of our text.
std::string get_text_value() const;
+ /// Return true if this TextField has text defined
+ bool getTextDefined();
+
/// We have a "text" member.
void set_member(string_table::key name, const as_value& val,
string_table::key nsname = 0);
@@ -362,6 +365,12 @@
/// are then the same, which makes manipulating the string much easier.
std::wstring _text;
+ /// This flag will be true as soon as the TextField
+ /// is assigned a text value. Only way to be false is
+ /// when definition has the hasText flag set to false
+ /// and no actionscript added text.
+ bool _textDefined;
+
/// immutable definition of this object, as read
/// from the SWF stream. Assured to be not-NULL
/// by constructor. This might change in the future
Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.492
retrieving revision 1.493
diff -u -b -r1.492 -r1.493
--- server/sprite_instance.cpp 1 Apr 2008 13:32:51 -0000 1.492
+++ server/sprite_instance.cpp 1 Apr 2008 18:36:22 -0000 1.493
@@ -28,6 +28,7 @@
#include "MovieClipLoader.h" // @@ temp hack for loading tests
#include "as_value.h"
#include "as_function.h"
+#include "edit_text_character.h" // for registered variables
#include "edit_text_character_def.h" // @@ temp hack for createTextField exp.
#include "ControlTag.h"
#include "fn_call.h"
@@ -2375,6 +2376,7 @@
{
TextFieldPtr tf = *i;
val->set_string(tf->get_text_value());
+ // break ?
}
return true;
}
Index: server/sprite_instance.h
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.h,v
retrieving revision 1.174
retrieving revision 1.175
diff -u -b -r1.174 -r1.175
--- server/sprite_instance.h 27 Mar 2008 10:50:15 -0000 1.174
+++ server/sprite_instance.h 1 Apr 2008 18:36:22 -0000 1.175
@@ -25,7 +25,7 @@
#include "gnashconfig.h" // GNASH_USE_GC
#endif
-#include "edit_text_character.h" // temp hack
+//#include "edit_text_character.h" // temp hack
#include "movie_definition.h" // for inlines
#include "dlist.h" // DisplayList
#include "log.h"
@@ -47,6 +47,7 @@
class drag_state;
class LoadVariablesThread;
class gradient_record;
+ class edit_text_character;
}
namespace gnash
@@ -901,15 +902,10 @@
/// Forbid copy
- sprite_instance(const sprite_instance&)
- :
- character(NULL, 0)
- {
- abort();
- }
+ sprite_instance(const sprite_instance&);
/// Forbid assignment
- sprite_instance& operator=(const sprite_instance&) { abort(); return
*this; }
+ sprite_instance& operator=(const sprite_instance&);
/// Advance to a previous frame.
//
Index: server/parser/edit_text_character_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/edit_text_character_def.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- server/parser/edit_text_character_def.cpp 5 Mar 2008 03:56:02 -0000
1.18
+++ server/parser/edit_text_character_def.cpp 1 Apr 2008 18:36:22 -0000
1.19
@@ -44,7 +44,7 @@
in->align();
in->ensureBytes(1);
- bool has_text = in->read_bit();
+ m_has_text = in->read_bit();
m_word_wrap = in->read_bit();
m_multiline = in->read_bit();
m_password = in->read_bit();
@@ -93,7 +93,7 @@
in->read_string(m_variable_name);
- if (has_text)
+ if (m_has_text)
{
in->read_string(m_default_text);
}
Index: server/parser/edit_text_character_def.h
===================================================================
RCS file: /sources/gnash/gnash/server/parser/edit_text_character_def.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- server/parser/edit_text_character_def.h 27 Mar 2008 10:50:16 -0000
1.24
+++ server/parser/edit_text_character_def.h 1 Apr 2008 18:36:22 -0000
1.25
@@ -51,6 +51,11 @@
:
m_root_def(root_def),
m_format(),
+
+ m_has_text(true), // For an SWF-defined textfield we'll read
+ // this from the tag. Dynamic textfields
should
+ // behave as always having text by default
(not tested).
+
m_word_wrap(false),
m_multiline(false),
m_password(false),
@@ -213,6 +218,11 @@
return m_word_wrap;
}
+ /// Has text defined ?
+ bool has_text() const {
+ return m_has_text;
+ }
+
/// Get root movie definition
movie_definition* get_root_def() {
return m_root_def;
@@ -268,6 +278,7 @@
rect m_rect;
std::string m_variable_name;
text_format m_format;
+ bool m_has_text;
bool m_word_wrap;
bool m_multiline;
/// show asterisks instead of actual characters
- [Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ...,
Sandro Santilli <=
- [Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ..., Sandro Santilli, 2008/04/02
- [Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ..., Sandro Santilli, 2008/04/08
- [Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ..., Sandro Santilli, 2008/04/10
- [Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ..., Sandro Santilli, 2008/04/10
- [Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ..., Sandro Santilli, 2008/04/10
- [Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ..., Sandro Santilli, 2008/04/10
- [Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ..., Sandro Santilli, 2008/04/11
- [Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ..., Sandro Santilli, 2008/04/19