Fix map search bug causing duplicate requests properly (#4037, #4040)

master
Ansariel Hiller 2025-05-07 17:21:53 +02:00 committed by GitHub
parent 2c0e90a72d
commit bb9adf3329
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 22 additions and 19 deletions

View File

@ -406,9 +406,12 @@ bool LLFloaterWorldMap::postBuild()
F32 slider_zoom = mMapView->getZoom();
mZoomSlider->setValue(slider_zoom);
mTrackCtrlsPanel = getChild<LLPanel>("layout_panel_4");
mSearchButton = getChild<LLButton>("DoSearch");
getChild<LLPanel>("expand_btn_panel")->setMouseDownCallback(boost::bind(&LLFloaterWorldMap::onExpandCollapseBtn, this));
setDefaultBtn(NULL);
mTrackCtrlsPanel->setDefaultBtn(nullptr);
onChangeMaturity();
@ -728,7 +731,7 @@ void LLFloaterWorldMap::trackAvatar( const LLUUID& avatar_id, const std::string&
{
LLTracker::stopTracking(false);
}
setDefaultBtn("Teleport");
mTrackCtrlsPanel->setDefaultBtn(mTeleportButton);
}
void LLFloaterWorldMap::trackLandmark( const LLUUID& landmark_item_id )
@ -773,7 +776,7 @@ void LLFloaterWorldMap::trackLandmark( const LLUUID& landmark_item_id )
{
LLTracker::stopTracking(false);
}
setDefaultBtn("Teleport");
mTrackCtrlsPanel->setDefaultBtn(mTeleportButton);
}
@ -782,7 +785,7 @@ void LLFloaterWorldMap::trackEvent(const LLItemInfo &event_info)
mShowParcelInfo = false;
mTrackedStatus = LLTracker::TRACKING_LOCATION;
LLTracker::trackLocation(event_info.getGlobalPosition(), event_info.getName(), event_info.getToolTip(), LLTracker::LOCATION_EVENT);
setDefaultBtn("Teleport");
mTrackCtrlsPanel->setDefaultBtn(mTeleportButton);
}
void LLFloaterWorldMap::trackGenericItem(const LLItemInfo &item)
@ -790,7 +793,7 @@ void LLFloaterWorldMap::trackGenericItem(const LLItemInfo &item)
mShowParcelInfo = false;
mTrackedStatus = LLTracker::TRACKING_LOCATION;
LLTracker::trackLocation(item.getGlobalPosition(), item.getName(), item.getToolTip(), LLTracker::LOCATION_ITEM);
setDefaultBtn("Teleport");
mTrackCtrlsPanel->setDefaultBtn(mTeleportButton);
}
void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global)
@ -804,7 +807,7 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global)
S32 world_x = S32(pos_global.mdV[0] / 256);
S32 world_y = S32(pos_global.mdV[1] / 256);
LLWorldMapMessage::getInstance()->sendMapBlockRequest(world_x, world_y, world_x, world_y, true);
setDefaultBtn("");
mTrackCtrlsPanel->setDefaultBtn(nullptr);
// clicked on a non-region - turn off coord display
enableTeleportCoordsDisplay( false );
@ -818,7 +821,7 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global)
LLTracker::stopTracking(false);
LLWorldMap::getInstance()->setTracking(pos_global);
LLWorldMap::getInstance()->setTrackingInvalid();
setDefaultBtn("");
mTrackCtrlsPanel->setDefaultBtn(nullptr);
// clicked on a down region - turn off coord display
enableTeleportCoordsDisplay( false );
@ -849,7 +852,7 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global)
// we have a valid region - turn on coord display
enableTeleportCoordsDisplay( true );
setDefaultBtn("Teleport");
mTrackCtrlsPanel->setDefaultBtn(mTeleportButton);
}
// enable/disable teleport destination coordinates
@ -964,7 +967,7 @@ void LLFloaterWorldMap::trackURL(const std::string& region_name, S32 x_coord, S3
local_pos.mV[VZ] = (F32)z_coord;
LLVector3d global_pos = sim_info->getGlobalPos(local_pos);
trackLocation(global_pos);
setDefaultBtn("Teleport");
mTrackCtrlsPanel->setDefaultBtn(mTeleportButton);
}
else
{
@ -1375,11 +1378,11 @@ void LLFloaterWorldMap::updateSearchEnabled()
if (childHasKeyboardFocus("location") &&
mLocationEditor->getValue().asString().length() > 0)
{
setDefaultBtn("DoSearch");
mTrackCtrlsPanel->setDefaultBtn(mSearchButton);
}
else
{
setDefaultBtn(NULL);
mTrackCtrlsPanel->setDefaultBtn(nullptr);
}
}
@ -1800,7 +1803,7 @@ void LLFloaterWorldMap::onCommitSearchResult()
mLocationEditor->setValue(sim_name);
trackLocation(pos_global);
setDefaultBtn("Teleport");
mTrackCtrlsPanel->setDefaultBtn(mTeleportButton);
break;
}
}

View File

@ -226,6 +226,7 @@ private:
LLButton* mShowDestinationButton = nullptr;
LLButton* mCopySlurlButton = nullptr;
LLButton* mGoHomeButton = nullptr;
LLButton* mSearchButton = nullptr;
LLCheckBoxCtrl* mPeopleCheck = nullptr;
LLCheckBoxCtrl* mInfohubCheck = nullptr;
@ -245,6 +246,8 @@ private:
LLSliderCtrl* mZoomSlider = nullptr;
LLPanel* mTrackCtrlsPanel = nullptr;
boost::signals2::connection mTeleportFinishConnection;
};

View File

@ -532,9 +532,9 @@
width="16" />
<search_editor
follows="top|right"
search_button_visible="false"
search_button_visible="false"
height="22"
text_readonly_color="DkGray"
text_readonly_color="DkGray"
label="Regions by Name"
layout="topleft"
top_delta="-2"
@ -542,10 +542,7 @@
name="location"
select_on_focus="true"
tool_tip="Type the name of a region"
width="152">
<search_editor.commit_callback
function="WMap.Location" />
</search_editor>
width="152"/>
<button
follows="top|right"
height="23"
@ -556,7 +553,7 @@
name="DoSearch"
tool_tip="Search for region"
width="62">
<button.mouse_down_callback
<button.commit_callback
function="WMap.Location" />
</button>
<button