Module: wine Branch: master Commit: 19be7d620d31de34fd86d5faa3895bebf6818659 URL: http://source.winehq.org/git/wine.git/?a=commit;h=19be7d620d31de34fd86d5faa3...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Jun 30 21:37:56 2008 +0200
mshtml: Added support for DOCHOSTUIFLAG_SCROLL_NO DOCHOSTINFO flag.
---
dlls/mshtml/oleobj.c | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/dlls/mshtml/oleobj.c b/dlls/mshtml/oleobj.c index 5e7181c..0b1dd6b 100644 --- a/dlls/mshtml/oleobj.c +++ b/dlls/mshtml/oleobj.c @@ -61,6 +61,32 @@ static ULONG WINAPI OleObject_Release(IOleObject *iface) return IHTMLDocument2_Release(HTMLDOC(This)); }
+static void update_hostinfo(HTMLDocument *This, DOCHOSTUIINFO *hostinfo) +{ + nsIScrollable *scrollable; + nsresult nsres; + + if(!This->nscontainer) + return; + + nsres = nsIWebBrowser_QueryInterface(This->nscontainer->webbrowser, &IID_nsIScrollable, (void**)&scrollable); + if(NS_SUCCEEDED(nsres)) { + nsres = nsIScrollable_SetDefaultScrollbarPreferences(scrollable, ScrollOrientation_Y, + (hostinfo->dwFlags & DOCHOSTUIFLAG_SCROLL_NO) ? Scrollbar_Never : Scrollbar_Always); + if(NS_FAILED(nsres)) + ERR("Could not set default Y scrollbar prefs: %08x\n", nsres); + + nsres = nsIScrollable_SetDefaultScrollbarPreferences(scrollable, ScrollOrientation_X, + hostinfo->dwFlags & DOCHOSTUIFLAG_SCROLL_NO ? Scrollbar_Never : Scrollbar_Auto); + if(NS_FAILED(nsres)) + ERR("Could not set default X scrollbar prefs: %08x\n", nsres); + + nsIScrollable_Release(scrollable); + }else { + ERR("Could not get nsIScrollable: %08x\n", nsres); + } +} + static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite *pClientSite) { HTMLDocument *This = OLEOBJ_THIS(iface); @@ -103,6 +129,7 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite TRACE("hostinfo = {%u %08x %08x %s %s}\n", hostinfo.cbSize, hostinfo.dwFlags, hostinfo.dwDoubleClick, debugstr_w(hostinfo.pchHostCss), debugstr_w(hostinfo.pchHostNS)); + update_hostinfo(This, &hostinfo); This->hostinfo = hostinfo; }