History

bail early when removing entity focus

Zach Pomerantz committed 10 years ago

Commit 95eb52a1 parent 5b9606f1 file · +16 −4Browse files

Showing the changes to interface/src/Application.cpp (1 of 1 file). Show all

Unified · Split

interface/src/Application.cpp+16−4
@@ -3677,7 +3677,18 @@ void Application::setKeyboardFocusEntity(QUuid id) { · 3676 unmodified lines
36773677 void Application::setKeyboardFocusEntity(EntityItemID entityItemID) {
36783678 auto entityScriptingInterface = DependencyManager::get<EntityScriptingInterface>();
36793679 if (_keyboardFocusedItem.get() != entityItemID) {
3680+ // reset focused entity
36803681 _keyboardFocusedItem.set(UNKNOWN_ENTITY_ID);
3682+ if (_keyboardFocusHighlight) {
3683+ _keyboardFocusHighlight->setVisible(false);
3684+ }
3685+
3686+ // if invalid, return without expensive (locking) operations
3687+ if (entityItemID == UNKNOWN_ENTITY_ID) {
3688+ return;
3689+ }
3690+
3691+ // if valid, query properties
36813692 auto properties = entityScriptingInterface->getEntityProperties(entityItemID);
36823693 if (!properties.getLocked() && properties.getVisible()) {
36833694 auto entity = getEntities()->getTree()->findEntityByID(entityItemID);
@@ -3688,6 +3699,8 @@ void Application::setKeyboardFocusEntity(EntityItemID entityItemID) { · 4 unmodified lines
36883699 }
36893700 _keyboardFocusedItem.set(entityItemID);
36903701 _lastAcceptedKeyPress = usecTimestampNow();
3702+
3703+ // create a focus
36913704 if (_keyboardFocusHighlightID < 0 || !getOverlays().isAddedOverlay(_keyboardFocusHighlightID)) {
36923705 _keyboardFocusHighlight = std::make_shared<Cube3DOverlay>();
36933706 _keyboardFocusHighlight->setAlpha(1.0f);
@@ -3699,17 +3712,16 @@ void Application::setKeyboardFocusEntity(EntityItemID entityItemID) { · 5 unmodified lines
36993712 _keyboardFocusHighlight->setColorPulse(1.0);
37003713 _keyboardFocusHighlight->setIgnoreRayIntersection(true);
37013714 _keyboardFocusHighlight->setDrawInFront(false);
3715+ _keyboardFocusHighlightID = getOverlays().addOverlay(_keyboardFocusHighlight);
37023716 }
3717+
3718+ // position the focus
37033719 _keyboardFocusHighlight->setRotation(entity->getRotation());
37043720 _keyboardFocusHighlight->setPosition(entity->getPosition());
37053721 _keyboardFocusHighlight->setDimensions(entity->getDimensions() * 1.05f);
37063722 _keyboardFocusHighlight->setVisible(true);
3707− _keyboardFocusHighlightID = getOverlays().addOverlay(_keyboardFocusHighlight);
37083723 }
37093724 }
3710− if (_keyboardFocusedItem.get() == UNKNOWN_ENTITY_ID && _keyboardFocusHighlight) {
3711− _keyboardFocusHighlight->setVisible(false);
3712− }
37133725 }
37143726 }
37153727

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t