gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash/server edit_text_character.cpp edit_text_...


From: Vitaly Alexeev
Subject: [Gnash-commit] gnash/server edit_text_character.cpp edit_text_...
Date: Tue, 25 Jul 2006 12:53:41 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Vitaly Alexeev <alexeev>        06/07/25 12:53:41

Modified files:
        server         : edit_text_character.cpp edit_text_character.h 

Log message:
        fixed input_edit_text cursor bug (center, right alignment)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.cpp?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.h?cvsroot=gnash&r1=1.6&r2=1.7

Patches:
Index: edit_text_character.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/edit_text_character.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- edit_text_character.cpp     10 Jul 2006 22:51:07 -0000      1.7
+++ edit_text_character.cpp     25 Jul 2006 12:53:41 -0000      1.8
@@ -435,7 +435,7 @@
 #define WIDTH_FUDGE 80.0f
 
 
-void
+float
 edit_text_character::align_line(
                edit_text_character_def::alignment align,
                int last_line_start_record, float x)
@@ -452,7 +452,7 @@
                log_warning("TextField text doesn't fit in it's boundaries");
                log_warning(" m_def->width() == %g", m_def->width());
                log_warning(" m_def->get_right_margin() == %d", 
m_def->get_right_margin());
-               return;
+               return 0.0f;
        }
 
        float   shift_right = 0.0f;
@@ -460,7 +460,7 @@
        if (align == edit_text_character_def::ALIGN_LEFT)
        {
                // Nothing to do; already aligned left.
-               return;
+               return 0.0f;
        }
        else if (align == edit_text_character_def::ALIGN_CENTER)
        {
@@ -483,6 +483,7 @@
                        rec.m_style.m_x_offset += shift_right;
                }
        }
+       return shift_right;
 }
 
 const font*
@@ -761,13 +762,13 @@
                // TODO: HTML markup
        }
 
-       m_xcursor += _font->get_leading() * scale;
-       m_ycursor -= m_def->get_font_height() + (_font->get_leading() - 
_font->get_descent()) * scale;
-
        // Add this line to our output.
        m_text_glyph_records.push_back(rec);
 
-       align_line(m_def->get_alignment(), last_line_start_record, x);
+       float extra_space = align_line(m_def->get_alignment(), 
last_line_start_record, x);
+
+       m_xcursor += (int) extra_space;
+       m_ycursor -= m_def->get_font_height() + (_font->get_leading() - 
_font->get_descent()) * scale;
 
 }
 

Index: edit_text_character.h
===================================================================
RCS file: /sources/gnash/gnash/server/edit_text_character.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- edit_text_character.h       10 Jul 2006 13:47:12 -0000      1.6
+++ edit_text_character.h       25 Jul 2006 12:53:41 -0000      1.7
@@ -130,7 +130,7 @@
        /// m_text_glyph_records[], starting with
        /// last_line_start_record and going through the end of
        /// m_text_glyph_records.
-       void align_line(edit_text_character_def::alignment align,
+       float align_line(edit_text_character_def::alignment align,
                        int last_line_start_record, float x);
 
        /// Set our font, return previously set one.




reply via email to

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