PointerEventsHitRules.cpp [plain text]
#include "config.h"
#include "PointerEventsHitRules.h"
namespace WebCore {
PointerEventsHitRules::PointerEventsHitRules(EHitTesting hitTesting, const HitTestRequest& request, PointerEvents pointerEvents)
: requireVisible(false)
, requireFill(false)
, requireStroke(false)
, canHitStroke(false)
, canHitFill(false)
{
if (request.svgClipContent())
pointerEvents = PointerEvents::Fill;
if (hitTesting == SVG_PATH_HITTESTING) {
switch (pointerEvents)
{
case PointerEvents::VisiblePainted:
case PointerEvents::Auto: requireFill = true;
requireStroke = true;
FALLTHROUGH;
case PointerEvents::Visible:
requireVisible = true;
canHitFill = true;
canHitStroke = true;
break;
case PointerEvents::VisibleFill:
requireVisible = true;
canHitFill = true;
break;
case PointerEvents::VisibleStroke:
requireVisible = true;
canHitStroke = true;
break;
case PointerEvents::Painted:
requireFill = true;
requireStroke = true;
FALLTHROUGH;
case PointerEvents::All:
canHitFill = true;
canHitStroke = true;
break;
case PointerEvents::Fill:
canHitFill = true;
break;
case PointerEvents::Stroke:
canHitStroke = true;
break;
case PointerEvents::None:
break;
}
} else {
switch (pointerEvents)
{
case PointerEvents::VisiblePainted:
case PointerEvents::Auto: requireVisible = true;
requireFill = true;
requireStroke = true;
canHitFill = true;
canHitStroke = true;
break;
case PointerEvents::VisibleFill:
case PointerEvents::VisibleStroke:
case PointerEvents::Visible:
requireVisible = true;
canHitFill = true;
canHitStroke = true;
break;
case PointerEvents::Painted:
requireFill = true;
requireStroke = true;
canHitFill = true;
canHitStroke = true;
break;
case PointerEvents::Fill:
case PointerEvents::Stroke:
case PointerEvents::All:
canHitFill = true;
canHitStroke = true;
break;
case PointerEvents::None:
break;
}
}
}
}