Set initial location correctly.

This commit is contained in:
John Preston 2024-07-16 18:13:17 +02:00
parent 6f86acf712
commit e83704982f
2 changed files with 14 additions and 9 deletions

View file

@ -332,14 +332,15 @@ void VenuesController::rowPaintIcon(
p.drawImage(x, y, data.image); p.drawImage(x, y, data.image);
} }
[[nodiscard]] QByteArray DefaultCenter() { [[nodiscard]] QByteArray DefaultCenter(Core::GeoLocation initial) {
if (!LastExactLocation) { const auto &use = initial.exact() ? initial : LastExactLocation;
if (!use) {
return "null"; return "null";
} }
return "["_q return "["_q
+ QByteArray::number(LastExactLocation.point.x()) + QByteArray::number(use.point.x())
+ ","_q + ","_q
+ QByteArray::number(LastExactLocation.point.y()) + QByteArray::number(use.point.y())
+ "]"_q; + "]"_q;
} }
@ -496,6 +497,10 @@ void VenuesController::rowPaintIcon(
status->moveToLeft(statusPosition.x(), statusPosition.y(), width); status->moveToLeft(statusPosition.x(), statusPosition.y(), width);
}, name->lifetime()); }, name->lifetime());
icon->setAttribute(Qt::WA_TransparentForMouseEvents);
name->setAttribute(Qt::WA_TransparentForMouseEvents);
status->setAttribute(Qt::WA_TransparentForMouseEvents);
return result; return result;
} }
@ -681,9 +686,9 @@ void LocationPicker::setup(const Descriptor &descriptor) {
setupWindow(descriptor); setupWindow(descriptor);
setupWebview(descriptor); setupWebview(descriptor);
_initialProvided = descriptor.initial.exact(); _initialProvided = descriptor.initial;
const auto initial = _initialProvided const auto initial = _initialProvided.exact()
? descriptor.initial ? _initialProvided
: LastExactLocation; : LastExactLocation;
if (initial) { if (initial) {
venuesRequest(initial); venuesRequest(initial);
@ -964,7 +969,7 @@ void LocationPicker::mapReady() {
Expects(_scroll != nullptr); Expects(_scroll != nullptr);
const auto token = _config.mapsToken.toUtf8(); const auto token = _config.mapsToken.toUtf8();
const auto center = DefaultCenter(); const auto center = DefaultCenter(_initialProvided);
const auto bounds = DefaultBounds(); const auto bounds = DefaultBounds();
const auto protocol = *kProtocolOverride const auto protocol = *kProtocolOverride
? "'"_q + kProtocolOverride + "'" ? "'"_q + kProtocolOverride + "'"

View file

@ -133,8 +133,8 @@ private:
ScrollArea *_scroll = nullptr; ScrollArea *_scroll = nullptr;
std::unique_ptr<Webview::Window> _webview; std::unique_ptr<Webview::Window> _webview;
SingleQueuedInvokation _updateStyles; SingleQueuedInvokation _updateStyles;
Core::GeoLocation _initialProvided;
bool _subscribedToColors = false; bool _subscribedToColors = false;
bool _initialProvided = false;
base::Timer _geocoderResolveTimer; base::Timer _geocoderResolveTimer;
Core::GeoLocation _geocoderResolvePostponed; Core::GeoLocation _geocoderResolvePostponed;