}
}
-void FocusRing::requestToShow(const IntPoint& position)
+void FocusRing::requestToShow(const IntPoint& position, bool immediately)
{
if (!m_imagePath.isNull())
return;
+ if (immediately) {
+ if (m_focusRingObject && evas_object_visible_get(m_focusRingObject))
+ return;
+ else {
+ if (m_showTimer) {
+ ecore_timer_del(m_showTimer);
+ m_showTimer = 0;
+ }
+
+ m_position = position;
+ show(IntRect());
+ return;
+ }
+ }
+
m_position = position;
if (m_showTimer)
}
if (m_imagePath.isNull()) {
- evas_object_color_set(m_focusRingObject, focusRingColor.red(), focusRingColor.green(), focusRingColor.blue(), focusRingColor.alpha());
+ int r, g, b;
+ r = (focusRingColor.red() * focusRingColor.alpha()) / 255;
+ g = (focusRingColor.green() * focusRingColor.alpha()) / 255;
+ b = (focusRingColor.blue() * focusRingColor.alpha()) / 255;
+ evas_object_color_set(m_focusRingObject, r, g, b, focusRingColor.alpha());
evas_object_move(m_focusRingObject, focusRingRect.x(), focusRingRect.y());
evas_object_resize(m_focusRingObject, focusRingRect.width(), focusRingRect.height());
} else {