fix: scroll to bottom when setting a channel (#5748)
This commit is contained in:
+1
-1
@@ -142,7 +142,7 @@
|
|||||||
- Dev: 7TV's `entitlement.reset` is now explicitly ignored. (#5685)
|
- Dev: 7TV's `entitlement.reset` is now explicitly ignored. (#5685)
|
||||||
- Dev: Qt 6.8 and later now default to the GDI fontengine. (#5710)
|
- Dev: Qt 6.8 and later now default to the GDI fontengine. (#5710)
|
||||||
- Dev: Moved to condition variables when shutting down worker threads. (#5721, #5733)
|
- Dev: Moved to condition variables when shutting down worker threads. (#5721, #5733)
|
||||||
- Dev: Reduced layouts in channel views when setting a channel. (#5737)
|
- Dev: Reduced layouts in channel views when setting a channel. (#5737, #5748)
|
||||||
|
|
||||||
## 2.5.1
|
## 2.5.1
|
||||||
|
|
||||||
|
|||||||
@@ -168,10 +168,11 @@ void addTwitchEmoteSets(const std::shared_ptr<const EmoteMap> &local,
|
|||||||
void loadEmojis(ChannelView &view, const std::vector<EmojiPtr> &emojiMap)
|
void loadEmojis(ChannelView &view, const std::vector<EmojiPtr> &emojiMap)
|
||||||
{
|
{
|
||||||
ChannelPtr emojiChannel(new Channel("", Channel::Type::None));
|
ChannelPtr emojiChannel(new Channel("", Channel::Type::None));
|
||||||
|
// set the channel first to make sure the scrollbar is at the top
|
||||||
|
view.setChannel(emojiChannel);
|
||||||
|
|
||||||
emojiChannel->addMessage(makeEmojiMessage(emojiMap),
|
emojiChannel->addMessage(makeEmojiMessage(emojiMap),
|
||||||
MessageContext::Original);
|
MessageContext::Original);
|
||||||
|
|
||||||
view.setChannel(emojiChannel);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loadEmojis(Channel &channel, const std::vector<EmojiPtr> &emojiMap,
|
void loadEmojis(Channel &channel, const std::vector<EmojiPtr> &emojiMap,
|
||||||
|
|||||||
@@ -237,9 +237,6 @@ void ReplyThreadPopup::addMessagesFromThread()
|
|||||||
sourceChannel->getName(), Channel::Type::None);
|
sourceChannel->getName(), Channel::Type::None);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->ui_.threadView->setChannel(this->virtualChannel_);
|
|
||||||
this->ui_.threadView->setSourceChannel(sourceChannel);
|
|
||||||
|
|
||||||
auto rootOverrideFlags =
|
auto rootOverrideFlags =
|
||||||
std::optional<MessageFlags>(this->thread_->root()->flags);
|
std::optional<MessageFlags>(this->thread_->root()->flags);
|
||||||
rootOverrideFlags->set(MessageFlag::DoNotLog);
|
rootOverrideFlags->set(MessageFlag::DoNotLog);
|
||||||
@@ -258,6 +255,9 @@ void ReplyThreadPopup::addMessagesFromThread()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this->ui_.threadView->setChannel(this->virtualChannel_);
|
||||||
|
this->ui_.threadView->setSourceChannel(sourceChannel);
|
||||||
|
|
||||||
this->messageConnection_ =
|
this->messageConnection_ =
|
||||||
std::make_unique<pajlada::Signals::ScopedConnection>(
|
std::make_unique<pajlada::Signals::ScopedConnection>(
|
||||||
sourceChannel->messageAppended.connect(
|
sourceChannel->messageAppended.connect(
|
||||||
|
|||||||
@@ -1074,6 +1074,13 @@ void ChannelView::setChannel(const ChannelPtr &underlyingChannel)
|
|||||||
this->updateID();
|
this->updateID();
|
||||||
|
|
||||||
this->queueLayout();
|
this->queueLayout();
|
||||||
|
if (!this->isVisible() && !this->scrollBar_->isVisible())
|
||||||
|
{
|
||||||
|
// If we're not visible and the scrollbar is not (yet) visible,
|
||||||
|
// we need to make sure that it's at the bottom when this view is laid
|
||||||
|
// out later.
|
||||||
|
this->scrollBar_->scrollToBottom();
|
||||||
|
}
|
||||||
this->queueUpdate();
|
this->queueUpdate();
|
||||||
|
|
||||||
// Notifications
|
// Notifications
|
||||||
|
|||||||
Reference in New Issue
Block a user