Jacek Caban : mshtml: Reimplement IHTMLStyle:: get_backgroundPositionY using background-position property.

Alexandre Julliard julliard at winehq.org
Fri Feb 25 11:19:48 CST 2011


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Feb 25 14:12:26 2011 +0100

mshtml: Reimplement IHTMLStyle::get_backgroundPositionY using background-position property.

---

 dlls/mshtml/htmlstyle.c |   29 ++++++++++++++++++++++++++++-
 1 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/dlls/mshtml/htmlstyle.c b/dlls/mshtml/htmlstyle.c
index f21ff87..dffc39e 100644
--- a/dlls/mshtml/htmlstyle.c
+++ b/dlls/mshtml/htmlstyle.c
@@ -1136,8 +1136,35 @@ static HRESULT WINAPI HTMLStyle_put_backgroundPositionY(IHTMLStyle *iface, VARIA
 static HRESULT WINAPI HTMLStyle_get_backgroundPositionY(IHTMLStyle *iface, VARIANT *p)
 {
     HTMLStyle *This = impl_from_IHTMLStyle(iface);
+    nsAString pos_str;
+    BSTR ret;
+    HRESULT hres;
+
     TRACE("(%p)->(%p)\n", This, p);
-    return get_nsstyle_attr_var(This->nsstyle, STYLEID_BACKGROUND_POSITION_Y, p, 0);
+
+    nsAString_Init(&pos_str, NULL);
+    hres = get_nsstyle_attr_nsval(This->nsstyle, STYLEID_BACKGROUND_POSITION, &pos_str);
+    if(SUCCEEDED(hres)) {
+        const PRUnichar *pos, *posy;
+
+        nsAString_GetData(&pos_str, &pos);
+        posy = strchrW(pos, ' ');
+        if(posy) {
+            ret = SysAllocString(posy+1);
+            if(!ret)
+                hres = E_OUTOFMEMORY;
+        }else {
+            ret = NULL;
+        }
+    }
+    nsAString_Finish(&pos_str);
+    if(FAILED(hres))
+        return hres;
+
+    TRACE("returning %s\n", debugstr_w(ret));
+    V_VT(p) = VT_BSTR;
+    V_BSTR(p) = ret;
+    return S_OK;
 }
 
 static HRESULT WINAPI HTMLStyle_put_wordSpacing(IHTMLStyle *iface, VARIANT v)




More information about the wine-cvs mailing list