Changeset 87805 in webkit
- Timestamp:
- Jun 1, 2011 8:12:16 AM (13 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r87804 r87805 1 2011-06-01 Adam Roben <aroben@apple.com> 2 3 Move WebView's window geometry updating code to a new class 4 5 This will allow us to share this code with LayerTreeHostCAWin. 6 7 Prep work for <http://webkit.org/b/58054> <rdar://problem/9249839> REGRESSION (WebKit2): 8 Accelerated CSS animations have a lower framerate than in WebKit1 9 10 Reviewed by Anders Carlsson. 11 12 * Shared/win/CoalescedWindowGeometriesUpdater.cpp: Added. 13 (WebKit::CoalescedWindowGeometriesUpdater::CoalescedWindowGeometriesUpdater): 14 (WebKit::CoalescedWindowGeometriesUpdater::~CoalescedWindowGeometriesUpdater): 15 Simple constructor/destructor. 16 17 (WebKit::CoalescedWindowGeometriesUpdater::addPendingUpdate): 18 (WebKit::setWindowRegion): 19 (WebKit::CoalescedWindowGeometriesUpdater::updateGeometries): 20 * Shared/win/CoalescedWindowGeometriesUpdater.h: Added. 21 Moved code here... 22 23 * UIProcess/win/WebView.cpp: 24 (WebKit::WebView::scheduleChildWindowGeometryUpdate): 25 (WebKit::WebView::updateChildWindowGeometries): 26 * UIProcess/win/WebView.h: 27 ...from here. 28 29 * win/WebKit2.vcproj: Added new files. 30 1 31 2011-06-01 Adam Roben <aroben@apple.com> 2 32 -
trunk/Source/WebKit2/UIProcess/win/WebView.cpp
r86990 r87805 42 42 #include "WebPageProxy.h" 43 43 #include "WebPopupMenuProxyWin.h" 44 #include "WindowGeometry.h"45 44 #include <Commctrl.h> 46 45 #include <WebCore/BitmapInfo.h> … … 1532 1531 void WebView::scheduleChildWindowGeometryUpdate(const WindowGeometry& geometry) 1533 1532 { 1534 m_childWindowGeometriesToUpdate.set(geometry.window, geometry); 1535 } 1536 1537 static void setWindowRegion(HWND window, PassOwnPtr<HRGN> popRegion) 1538 { 1539 OwnPtr<HRGN> region = popRegion; 1540 1541 if (!::SetWindowRgn(window, region.get(), TRUE)) 1542 return; 1543 1544 // Windows owns the region now. 1545 region.leakPtr(); 1533 m_geometriesUpdater.addPendingUpdate(geometry); 1546 1534 } 1547 1535 1548 1536 void WebView::updateChildWindowGeometries() 1549 1537 { 1550 HashMap<HWND, WindowGeometry> geometriesToUpdate; 1551 geometriesToUpdate.swap(m_childWindowGeometriesToUpdate); 1552 1553 HDWP deferWindowPos = ::BeginDeferWindowPos(geometriesToUpdate.size()); 1554 1555 for (HashMap<HWND, WindowGeometry>::const_iterator::Values it = geometriesToUpdate.begin().values(), end = geometriesToUpdate.end().values(); it != end; ++it) { 1556 const WindowGeometry& geometry = *it; 1557 1558 if (!::IsWindow(geometry.window)) 1559 continue; 1560 1561 UINT flags = SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOZORDER; 1562 if (geometry.visible) 1563 flags |= SWP_SHOWWINDOW; 1564 else 1565 flags |= SWP_HIDEWINDOW; 1566 1567 deferWindowPos = ::DeferWindowPos(deferWindowPos, geometry.window, 0, geometry.frame.x(), geometry.frame.y(), geometry.frame.width(), geometry.frame.height(), flags); 1568 1569 setWindowRegion(geometry.window, adoptPtr(::CreateRectRgn(geometry.clipRect.x(), geometry.clipRect.y(), geometry.clipRect.maxX(), geometry.clipRect.maxY()))); 1570 } 1571 1572 ::EndDeferWindowPos(deferWindowPos); 1538 m_geometriesUpdater.updateGeometries(); 1573 1539 } 1574 1540 -
trunk/Source/WebKit2/UIProcess/win/WebView.h
r86956 r87805 28 28 29 29 #include "APIObject.h" 30 #include "CoalescedWindowGeometriesUpdater.h" 30 31 #include "PageClient.h" 31 32 #include "WKView.h" … … 275 276 bool m_gestureReachedScrollingLimit; 276 277 277 HashMap<HWND, WindowGeometry> m_childWindowGeometriesToUpdate;278 CoalescedWindowGeometriesUpdater m_geometriesUpdater; 278 279 279 280 #if ENABLE(FULLSCREEN_API) -
trunk/Source/WebKit2/win/WebKit2.vcproj
r86990 r87805 1171 1171 > 1172 1172 <File 1173 RelativePath="..\Shared\win\CoalescedWindowGeometriesUpdater.cpp" 1174 > 1175 </File> 1176 <File 1177 RelativePath="..\Shared\win\CoalescedWindowGeometriesUpdater.h" 1178 > 1179 </File> 1180 <File 1173 1181 RelativePath="..\Shared\win\CommandLineWin.cpp" 1174 1182 >
Note: See TracChangeset
for help on using the changeset viewer.