My initial Cairo implementation on Windows had a few mistakes: 1. It improperly put some "GraphicsContextPlatformPrivate" code in the general Windows implementation. 2. The higher-level calls need to call the platform-private windows calls that keep the WorldTransform in sync. 3. The concatCTM method didn't even do anything with the passed transform -- a clear bug! 4. SVG does not rotate or scale properly in the current implementation.
Created attachment 19237 [details] Initial patch based on discussions with Alp Toker
Comment on attachment 19237 [details] Initial patch based on discussions with Alp Toker Looks like you have some strange indenting in the ChangeLog. r=me
Committed revision 30500.
This patch completely broke the non-Windows case. Unconditional calls such as: m_data->save(); are using method which are declared: #if PLATFORM(WIN) // On Windows, we need to update the HDC for form controls to draw in the right place. void save(); I'm going to roll this out so it can be addressed.
Rolled out in r30500.
It looks like I screwed up the patch by omitting the non-Windows case. I have a building GTK Webkit on a Linux box, which I will use to test this patch again.
Created attachment 19287 [details] Updated patch with missing non-Windows stanza
Yes, I agree that the #if/def is perhaps clunky, but it's the approach used in the CoreGraphics implementations on Mac and WIndows. I have now built and run this patch on Windows, Mac, and GTK+. Current patch was generated against today's SVN head.
Comment on attachment 19287 [details] Updated patch with missing non-Windows stanza ChangeLog has some tabs in it. When working on WebKit patches please make sure your editor is set in a mode that won't add tabs. r=me
Committed revision 30533.
(In reply to comment #5) > Rolled out in r30500. > It was actually rolled out in r30513.
(In reply to comment #11) > (In reply to comment #5) > > Rolled out in r30500. > > > > It was actually rolled out in r30513. > So why the bug is resolved as FIXED?
(In reply to comment #12) > (In reply to comment #11) > > (In reply to comment #5) > > > Rolled out in r30500. > > > > > > > It was actually rolled out in r30513. > > > > So why the bug is resolved as FIXED? > Because I recommitted in r30533 (comment 10) after Brent tweaked it. I just happened to see that comment and mentioned it for the sake of correctness.