Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(175)

Unified Diff: webkit/glue/webframe_impl.cc

Issue 7319: get webframe_impl.cc to compile on linux (Closed)
Patch Set: merge fixes from icefox Created 12 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/glue/webframe_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/glue/webframe_impl.cc
diff --git a/webkit/glue/webframe_impl.cc b/webkit/glue/webframe_impl.cc
index fd3ceb1cc70753c5ace474497e562d60bacbf3cd..accc174bb0ac904c4c1ab03a7c0bc0562700d9a0 100644
--- a/webkit/glue/webframe_impl.cc
+++ b/webkit/glue/webframe_impl.cc
@@ -147,6 +147,10 @@
#include "webkit/port/page/ChromeClientWin.h"
#include "webkit/port/platform/WidgetClientWin.h"
+#if defined(OS_LINUX)
+#include <gdk/gdk.h>
+#endif
+
using WebCore::ChromeClientWin;
using WebCore::Color;
using WebCore::Document;
@@ -244,7 +248,6 @@ static void FrameContentAsPlainText(int max_chars, Frame* frame,
// Recursively walk the children.
FrameTree* frame_tree = frame->tree();
- Frame* cur_child = frame_tree->firstChild();
for (Frame* cur_child = frame_tree->firstChild(); cur_child;
cur_child = cur_child->tree()->nextSibling()) {
// Make sure the frame separator won't fill up the buffer, and give up if
@@ -277,13 +280,13 @@ MSVC_POP_WARNING()
allows_scrolling_(true),
margin_width_(-1),
margin_height_(-1),
- last_match_count_(-1),
- total_matchcount_(-1),
inspected_node_(NULL),
active_tickmark_frame_(NULL),
active_tickmark_(WidgetClientWin::kNoTickmark),
locating_active_rect_(false),
last_active_range_(NULL),
+ last_match_count_(-1),
+ total_matchcount_(-1),
frames_scoping_count_(-1),
scoping_complete_(false),
next_invalidate_after_(0),
@@ -723,10 +726,10 @@ void WebFrameImpl::GetContentAsPlainText(int max_chars,
void WebFrameImpl::InvalidateArea(AreaToInvalidate area) {
ASSERT(frame() && frame()->view());
- FrameView* view = frame()->view();
-
#if defined(OS_WIN)
// TODO(pinkerton): Fix Mac invalidation to be more like Win ScrollView
+ FrameView* view = frame()->view();
+
if ((area & INVALIDATE_ALL) == INVALIDATE_ALL) {
view->addToDirtyRegion(view->frameGeometry());
} else {
@@ -752,10 +755,10 @@ void WebFrameImpl::InvalidateArea(AreaToInvalidate area) {
void WebFrameImpl::InvalidateTickmark(RefPtr<WebCore::Range> tickmark) {
ASSERT(frame() && frame()->view());
- FrameView* view = frame()->view();
-
#if defined(OS_WIN)
// TODO(pinkerton): Fix Mac invalidation to be more like Win ScrollView
+ FrameView* view = frame()->view();
+
IntRect pos = tickmark->boundingBox();
pos.move(-view->contentsX(), -view->contentsY());
view->addToDirtyRegion(pos);
@@ -1491,6 +1494,7 @@ void WebFrameImpl::Paint(gfx::PlatformCanvas* canvas, const gfx::Rect& rect) {
}
}
+// TODO(tc): Merge these as they are almost identical across platforms.
#if defined(OS_WIN)
gfx::BitmapPlatformDevice WebFrameImpl::CaptureImage(bool scroll_to_zero) {
// Must layout before painting.
@@ -1527,7 +1531,20 @@ gfx::BitmapPlatformDevice WebFrameImpl::CaptureImage(bool scroll_to_zero) {
}
#else
gfx::BitmapPlatformDevice WebFrameImpl::CaptureImage(bool scroll_to_zero) {
- NOTIMPLEMENTED();
+ // Must layout before painting.
+ Layout();
+
+ gfx::PlatformCanvasLinux canvas(frameview()->width(), frameview()->height(),
+ true);
+ PlatformContextSkia context(&canvas);
+
+ GraphicsContext gc(reinterpret_cast<PlatformGraphicsContext*>(&context));
+ frameview()->paint(&gc, IntRect(0, 0, frameview()->width(),
+ frameview()->height()));
+
+ gfx::BitmapPlatformDevice& device =
+ static_cast<gfx::BitmapPlatformDevice&>(canvas.getTopPlatformDevice());
+ return device;
}
#endif
« no previous file with comments | « webkit/glue/webframe_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698