Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaria Volvenkova <d.volvenkova@corp.mail.ru>2016-06-21 17:07:46 +0300
committerVladimir Byko-Ianko <v.bykoianko@corp.mail.ru>2016-06-24 16:02:06 +0300
commit6d433ff0cafe85066601bea7dd7b82400d71a51a (patch)
tree472152f737314f702eb89a9826e60fe0cb3e4e00 /drape_frontend
parent99ebfac3a1a4e7a0bd77e5c155f62fb9545732bb (diff)
Selected feature's overlays can't be displaced.
Diffstat (limited to 'drape_frontend')
-rw-r--r--drape_frontend/drape_engine.cpp4
-rw-r--r--drape_frontend/drape_engine.hpp2
-rwxr-xr-xdrape_frontend/frontend_renderer.cpp3
-rw-r--r--drape_frontend/message_subclasses.hpp24
4 files changed, 18 insertions, 15 deletions
diff --git a/drape_frontend/drape_engine.cpp b/drape_frontend/drape_engine.cpp
index ecd729ae7a..d45db5ef08 100644
--- a/drape_frontend/drape_engine.cpp
+++ b/drape_frontend/drape_engine.cpp
@@ -305,10 +305,10 @@ FeatureID DrapeEngine::GetVisiblePOI(m2::PointD const & glbPoint)
return result;
}
-void DrapeEngine::SelectObject(SelectionShape::ESelectedObject obj, m2::PointD const & pt, bool isAnim)
+void DrapeEngine::SelectObject(SelectionShape::ESelectedObject obj, m2::PointD const & pt, FeatureID const & featureId, bool isAnim)
{
m_threadCommutator->PostMessage(ThreadsCommutator::RenderThread,
- make_unique_dp<SelectObjectMessage>(obj, pt, isAnim),
+ make_unique_dp<SelectObjectMessage>(obj, pt, featureId, isAnim),
MessagePriority::High);
}
diff --git a/drape_frontend/drape_engine.hpp b/drape_frontend/drape_engine.hpp
index 8799059452..421509a1ea 100644
--- a/drape_frontend/drape_engine.hpp
+++ b/drape_frontend/drape_engine.hpp
@@ -116,7 +116,7 @@ public:
void SetUserPositionListener(TUserPositionChangedFn && fn);
FeatureID GetVisiblePOI(m2::PointD const & glbPoint);
- void SelectObject(SelectionShape::ESelectedObject obj, m2::PointD const & pt, bool isAnim);
+ void SelectObject(SelectionShape::ESelectedObject obj, m2::PointD const & pt, FeatureID const & featureID, bool isAnim);
void DeselectObject();
bool GetMyPosition(m2::PointD & myPosition);
SelectionShape::ESelectedObject GetSelectedObject();
diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp
index 1f1ffa9286..3b06a0adbf 100755
--- a/drape_frontend/frontend_renderer.cpp
+++ b/drape_frontend/frontend_renderer.cpp
@@ -440,10 +440,11 @@ void FrontendRenderer::AcceptMessage(ref_ptr<Message> message)
case Message::SelectObject:
{
ref_ptr<SelectObjectMessage> msg = message;
+ m_overlayTree->SetSelectedFeature(msg->IsDismiss() ? FeatureID() : msg->GetFeatureID());
if (m_selectionShape == nullptr)
{
m_selectObjectMessage = make_unique_dp<SelectObjectMessage>(msg->GetSelectedObject(), msg->GetPosition(),
- msg->IsAnim());
+ msg->GetFeatureID(), msg->IsAnim());
break;
}
ProcessSelection(msg);
diff --git a/drape_frontend/message_subclasses.hpp b/drape_frontend/message_subclasses.hpp
index 4122e85397..49e327af05 100644
--- a/drape_frontend/message_subclasses.hpp
+++ b/drape_frontend/message_subclasses.hpp
@@ -471,31 +471,33 @@ class SelectObjectMessage : public Message
{
public:
struct DismissTag {};
+
SelectObjectMessage(DismissTag)
- : SelectObjectMessage(SelectionShape::OBJECT_EMPTY, m2::PointD::Zero(), false, true)
+ : m_selected(SelectionShape::OBJECT_EMPTY)
+ , m_glbPoint(m2::PointD::Zero())
+ , m_isAnim(false)
+ , m_isDismiss(true)
{}
- SelectObjectMessage(SelectionShape::ESelectedObject selectedObject, m2::PointD const & glbPoint, bool isAnim)
- : SelectObjectMessage(selectedObject, glbPoint, isAnim, false)
+ SelectObjectMessage(SelectionShape::ESelectedObject selectedObject, m2::PointD const & glbPoint, FeatureID const & featureID, bool isAnim)
+ : m_selected(selectedObject)
+ , m_glbPoint(glbPoint)
+ , m_featureID(featureID)
+ , m_isAnim(isAnim)
+ , m_isDismiss(false)
{}
Type GetType() const override { return SelectObject; }
m2::PointD const & GetPosition() const { return m_glbPoint; }
SelectionShape::ESelectedObject GetSelectedObject() const { return m_selected; }
+ FeatureID const & GetFeatureID() const { return m_featureID; }
bool IsAnim() const { return m_isAnim; }
bool IsDismiss() const { return m_isDismiss; }
private:
- SelectObjectMessage(SelectionShape::ESelectedObject obj, m2::PointD const & pt, bool isAnim, bool isDismiss)
- : m_selected(obj)
- , m_glbPoint(pt)
- , m_isAnim(isAnim)
- , m_isDismiss(isDismiss)
- {}
-
-private:
SelectionShape::ESelectedObject m_selected;
m2::PointD m_glbPoint;
+ FeatureID m_featureID;
bool m_isAnim;
bool m_isDismiss;
};