Jacek Caban : mshtml: hr element is not a space element for moving functions.

Alexandre Julliard julliard at winehq.org
Mon Feb 11 14:19:27 CST 2008


Module: wine
Branch: master
Commit: 9f877fec9dcfe38063aa9846fe710bd575db7dbd
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9f877fec9dcfe38063aa9846fe710bd575db7dbd

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sun Feb 10 19:47:00 2008 +0100

mshtml: hr element is not a space element for moving functions.

---

 dlls/mshtml/txtrange.c |   44 ++++++++++++++++++++++++++++----------------
 1 files changed, 28 insertions(+), 16 deletions(-)

diff --git a/dlls/mshtml/txtrange.c b/dlls/mshtml/txtrange.c
index bd398b9..7e505df 100644
--- a/dlls/mshtml/txtrange.c
+++ b/dlls/mshtml/txtrange.c
@@ -661,18 +661,29 @@ static WCHAR next_char(const dompos_t *pos, dompos_t *new_pos)
             return *p;
 
         case ELEMENT_NODE:
-            if(!is_space_elem(iter))
-                break;
-
-            if(cspace)
-                dompos_release(&last_space);
-            cspace = '\n';
+            if(is_elem_tag(iter, brW)) {
+                if(cspace)
+                    dompos_release(&last_space);
+                cspace = '\n';
+
+                nsIDOMNode_AddRef(iter);
+                last_space.node = iter;
+                last_space.type = ELEMENT_NODE;
+                last_space.off = 0;
+                last_space.p = NULL;
+            }else if(is_elem_tag(iter, hrW)) {
+                if(cspace) {
+                    *new_pos = last_space;
+                    nsIDOMNode_Release(iter);
+                    return cspace;
+                }
 
-            nsIDOMNode_AddRef(iter);
-            last_space.node = iter;
-            last_space.type = ELEMENT_NODE;
-            last_space.off = 0;
-            last_space.p = NULL;
+                new_pos->node = iter;
+                new_pos->type = ELEMENT_NODE;
+                new_pos->off = 0;
+                new_pos->p = NULL;
+                return '\n';
+            }
         }
 
         tmp = iter;
@@ -745,11 +756,12 @@ static WCHAR prev_char(HTMLTxtRange *This, const dompos_t *pos, dompos_t *new_po
         }
 
         case ELEMENT_NODE:
-            if(!is_space_elem(iter))
-                break;
-
-            if(skip_space) {
-                skip_space = FALSE;
+            if(is_elem_tag(iter, brW)) {
+                if(skip_space) {
+                    skip_space = FALSE;
+                    break;
+                }
+            }else if(!is_elem_tag(iter, hrW)) {
                 break;
             }
 




More information about the wine-cvs mailing list