From 19be7d620d31de34fd86d5faa3895bebf6818659 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Mon, 30 Jun 2008 21:37:56 +0200 Subject: [PATCH] mshtml: Added support for DOCHOSTUIFLAG_SCROLL_NO DOCHOSTINFO flag. --- dlls/mshtml/oleobj.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/dlls/mshtml/oleobj.c b/dlls/mshtml/oleobj.c index 5e7181c28d6..0b1dd6bd31c 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; }