@@ -1284,16 +1284,23 @@ void MCCefBrowserBase::SetSource(const char *p_source)
12841284 m_browser->GetMainFrame ()->LoadString (t_source, t_url);
12851285}
12861286
1287+ #define MCCEF_VERTICAL_OVERFLOW_PROPERTY " document.body.style.overflowY"
1288+ #define MCCEF_HORIZONTAL_OVERFLOW_PROPERTY " document.body.style.overflowX"
1289+ inline const char *scrollbar_property (MCCefScrollbarDirection p_direction)
1290+ {
1291+ return p_direction == kMCCefScrollbarVertical ? MCCEF_VERTICAL_OVERFLOW_PROPERTY : MCCEF_HORIZONTAL_OVERFLOW_PROPERTY;
1292+ }
1293+
12871294// IM-2014-08-25: [[ Bug 13272 ]] Implement CEF browser scrollbar property.
1288- bool MCCefBrowserBase::GetOverflowHidden ()
1295+ bool MCCefBrowserBase::GetOverflowHidden (MCCefScrollbarDirection p_direction )
12891296{
12901297 // property available through JavaScript
12911298 bool t_success;
12921299 t_success = true ;
12931300
12941301 CefString t_value;
12951302
1296- t_success = EvalJavaScript (" document.body.style.overflow " , t_value);
1303+ t_success = EvalJavaScript (scrollbar_property (p_direction) , t_value);
12971304
12981305 // assume scrollbars are visible if property fetch fails
12991306 if (!t_success)
@@ -1303,7 +1310,7 @@ bool MCCefBrowserBase::GetOverflowHidden()
13031310}
13041311
13051312// IM-2014-08-25: [[ Bug 13272 ]] Implement CEF browser scrollbar property.
1306- void MCCefBrowserBase::SetOverflowHidden (bool p_hidden)
1313+ void MCCefBrowserBase::SetOverflowHidden (MCCefScrollbarDirection p_direction, bool p_hidden)
13071314{
13081315 // property available through JavaScript
13091316
@@ -1313,7 +1320,7 @@ void MCCefBrowserBase::SetOverflowHidden(bool p_hidden)
13131320 char *t_overflow_script;
13141321 t_overflow_script = nil;
13151322
1316- t_success = MCCStringFormat (t_overflow_script, " document.body.style.overflow = \" %s\" " , p_hidden ? " hidden" : " " );
1323+ t_success = MCCStringFormat (t_overflow_script, " %s = \" %s\" " , scrollbar_property (p_direction) , p_hidden ? " hidden" : " " );
13171324
13181325 CefString t_return_value;
13191326
@@ -1323,16 +1330,28 @@ void MCCefBrowserBase::SetOverflowHidden(bool p_hidden)
13231330 MCCStringFree (t_overflow_script);
13241331}
13251332
1326- bool MCCefBrowserBase::GetScrollbars (void )
1333+ bool MCCefBrowserBase::GetVerticalScrollbarEnabled (void )
1334+ {
1335+ // IM-2014-08-25: [[ Bug 13272 ]] Show / hide scrollbars by setting the overflow style to empty / "hidden".
1336+ return !GetOverflowHidden (kMCCefScrollbarVertical );
1337+ }
1338+
1339+ void MCCefBrowserBase::SetVerticalScrollbarEnabled (bool p_scrollbars)
13271340{
13281341 // IM-2014-08-25: [[ Bug 13272 ]] Show / hide scrollbars by setting the overflow style to empty / "hidden".
1329- return ! GetOverflowHidden ( );
1342+ /* UNCHECKED */ SetOverflowHidden ( kMCCefScrollbarVertical , !p_scrollbars );
13301343}
13311344
1332- void MCCefBrowserBase::SetScrollbars ( bool p_scrollbars )
1345+ bool MCCefBrowserBase::GetHorizontalScrollbarEnabled ( void )
13331346{
13341347 // IM-2014-08-25: [[ Bug 13272 ]] Show / hide scrollbars by setting the overflow style to empty / "hidden".
1335- /* UNCHECKED */ SetOverflowHidden (!p_scrollbars);
1348+ return !GetOverflowHidden (kMCCefScrollbarHorizontal );
1349+ }
1350+
1351+ void MCCefBrowserBase::SetHorizontalScrollbarEnabled (bool p_scrollbars)
1352+ {
1353+ // IM-2014-08-25: [[ Bug 13272 ]] Show / hide scrollbars by setting the overflow style to empty / "hidden".
1354+ /* UNCHECKED */ SetOverflowHidden (kMCCefScrollbarHorizontal , !p_scrollbars);
13361355}
13371356
13381357bool MCCefBrowserBase::GetRect (MCBrowserRect &r_rect)
@@ -1551,8 +1570,12 @@ bool MCCefBrowserBase::GetBoolProperty(MCBrowserProperty p_property, bool &r_val
15511570 r_value = GetEnableContextMenu ();
15521571 return true ;
15531572
1554- case kMCBrowserScrollbars :
1555- r_value = GetScrollbars ();
1573+ case kMCBrowserVerticalScrollbarEnabled :
1574+ r_value = GetVerticalScrollbarEnabled ();
1575+ return true ;
1576+
1577+ case kMCBrowserHorizontalScrollbarEnabled :
1578+ r_value = GetHorizontalScrollbarEnabled ();
15561579 return true ;
15571580
15581581 default :
@@ -1574,8 +1597,12 @@ bool MCCefBrowserBase::SetBoolProperty(MCBrowserProperty p_property, bool p_valu
15741597 SetEnableContextMenu (p_value);
15751598 return true ;
15761599
1577- case kMCBrowserScrollbars :
1578- SetScrollbars (p_value);
1600+ case kMCBrowserVerticalScrollbarEnabled :
1601+ SetVerticalScrollbarEnabled (p_value);
1602+ return true ;
1603+
1604+ case kMCBrowserHorizontalScrollbarEnabled :
1605+ SetHorizontalScrollbarEnabled (p_value);
15791606 return true ;
15801607
15811608 default :
0 commit comments