[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198
darin at apple.com
darin at apple.com
Mon Feb 21 00:06:09 UTC 2011
The following commit has been merged in the webkit-1.3 branch:
commit 135616375ecddab7e15a25354c0f81c1444ee56b
Author: darin at apple.com <darin at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Jan 28 02:12:39 2011 +0000
2011-01-27 Darin Adler <darin at apple.com>
Reviewed by Dan Bernstein.
Changing cursor style has no effect until the mouse moves
https://bugs.webkit.org/show_bug.cgi?id=14344
rdar://problem/7563712
No tests added because we don't have infrastructure for testing actual cursor
changes (as opposed to cursor style computation) at this time. We might add it later.
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added.
* page/EventHandler.h: Ditto.
* rendering/RenderObject.cpp:
(WebCore::areNonIdenticalCursorListsEqual): Added.
(WebCore::areCursorsEqual): Added.
(WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if
cursor styles changed.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76891 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index a63c810..07a5eca 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,24 @@
+2011-01-27 Darin Adler <darin at apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ Changing cursor style has no effect until the mouse moves
+ https://bugs.webkit.org/show_bug.cgi?id=14344
+ rdar://problem/7563712
+
+ No tests added because we don't have infrastructure for testing actual cursor
+ changes (as opposed to cursor style computation) at this time. We might add it later.
+
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added.
+ * page/EventHandler.h: Ditto.
+
+ * rendering/RenderObject.cpp:
+ (WebCore::areNonIdenticalCursorListsEqual): Added.
+ (WebCore::areCursorsEqual): Added.
+ (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if
+ cursor styles changed.
+
2011-01-27 Leo Yang <leo.yang at torchmobile.com.cn>
Reviewed by Dirk Schulze.
diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp
index b2988cb..272984c 100644
--- a/Source/WebCore/page/EventHandler.cpp
+++ b/Source/WebCore/page/EventHandler.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
* Copyright (C) 2006 Alexey Proskuryakov (ap at webkit.org)
*
* Redistribution and use in source and binary forms, with or without
@@ -2152,6 +2152,15 @@ void EventHandler::scheduleHoverStateUpdate()
m_hoverTimer.startOneShot(0);
}
+void EventHandler::dispatchFakeMouseMoveEventSoon()
+{
+ if (m_mousePressed)
+ return;
+
+ if (!m_fakeMouseMoveEventTimer.isActive())
+ m_fakeMouseMoveEventTimer.startOneShot(fakeMouseMoveInterval);
+}
+
void EventHandler::dispatchFakeMouseMoveEventSoonInQuad(const FloatQuad& quad)
{
FrameView* view = m_frame->view();
diff --git a/Source/WebCore/page/EventHandler.h b/Source/WebCore/page/EventHandler.h
index 6a7aac9..3e15291 100644
--- a/Source/WebCore/page/EventHandler.h
+++ b/Source/WebCore/page/EventHandler.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006, 2007, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2007, 2009, 2010, 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -108,6 +108,7 @@ public:
RenderObject* autoscrollRenderer() const;
void updateAutoscrollRenderer();
+ void dispatchFakeMouseMoveEventSoon();
void dispatchFakeMouseMoveEventSoonInQuad(const FloatQuad&);
HitTestResult hitTestResultAtPoint(const IntPoint&, bool allowShadowContent, bool ignoreClipping = false,
diff --git a/Source/WebCore/rendering/RenderObject.cpp b/Source/WebCore/rendering/RenderObject.cpp
index 4c4ccce..038e8a9 100644
--- a/Source/WebCore/rendering/RenderObject.cpp
+++ b/Source/WebCore/rendering/RenderObject.cpp
@@ -3,7 +3,7 @@
* (C) 1999 Antti Koivisto (koivisto at kde.org)
* (C) 2000 Dirk Mueller (mueller at kde.org)
* (C) 2004 Allan Sandfeld Jensen (kde at carewolf.com)
- * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserved.
* Copyright (C) 2009 Google Inc. All rights reserved.
* Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
*
@@ -31,6 +31,7 @@
#include "CSSStyleSelector.h"
#include "Chrome.h"
#include "ContentData.h"
+#include "CursorList.h"
#include "DashArray.h"
#include "EditingBoundary.h"
#include "FloatQuad.h"
@@ -1859,6 +1860,17 @@ void RenderObject::styleWillChange(StyleDifference diff, const RenderStyle* newS
}
}
+static bool areNonIdenticalCursorListsEqual(const RenderStyle* a, const RenderStyle* b)
+{
+ ASSERT(a->cursors() != b->cursors());
+ return a->cursors() && b->cursors() && *a->cursors() == *b->cursors();
+}
+
+static inline bool areCursorsEqual(const RenderStyle* a, const RenderStyle* b)
+{
+ return a->cursor() == b->cursor() && (a->cursors() == b->cursors() || areNonIdenticalCursorListsEqual(a, b));
+}
+
void RenderObject::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
{
if (s_affectsParentBlock)
@@ -1884,6 +1896,11 @@ void RenderObject::styleDidChange(StyleDifference diff, const RenderStyle* oldSt
// Don't check for repaint here; we need to wait until the layer has been
// updated by subclasses before we know if we have to repaint (in setStyle()).
+
+ if (!areCursorsEqual(oldStyle, style())) {
+ if (Frame* frame = this->frame())
+ frame->eventHandler()->dispatchFakeMouseMoveEventSoon();
+ }
}
void RenderObject::updateFillImages(const FillLayer* oldLayers, const FillLayer* newLayers)
diff --git a/Source/WebKit/mac/Misc/WebIconDatabase.mm b/Source/WebKit/mac/Misc/WebIconDatabase.mm
index 14ef037..67ab904 100644
--- a/Source/WebKit/mac/Misc/WebIconDatabase.mm
+++ b/Source/WebKit/mac/Misc/WebIconDatabase.mm
@@ -559,10 +559,8 @@ static NSData* iconDataFromPathForIconURL(NSString *databasePath, NSString *icon
@implementation WebIconDatabasePrivate
@end
- at interface ThreadEnabler : NSObject {
-}
+ at interface ThreadEnabler : NSObject
+ (void)enableThreading;
-
- (void)threadEnablingSelector:(id)arg;
@end
@@ -570,7 +568,6 @@ static NSData* iconDataFromPathForIconURL(NSString *databasePath, NSString *icon
- (void)threadEnablingSelector:(id)arg
{
- return;
}
+ (void)enableThreading
@@ -589,7 +586,7 @@ bool importToWebCoreFormat()
if (![NSThread isMultiThreaded])
[ThreadEnabler enableThreading];
ASSERT([NSThread isMultiThreaded]);
-
+
// Get the directory the old icon database *should* be in
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *databaseDirectory = [defaults objectForKey:WebIconDatabaseImportDirectoryDefaultsKey];
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list