summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/components/channeltabswitcherhandy.cpp4
-rw-r--r--src/components/channeltabswitcherhandy.hpp2
-rw-r--r--src/components/chatwindow.cpp4
3 files changed, 10 insertions, 0 deletions
diff --git a/src/components/channeltabswitcherhandy.cpp b/src/components/channeltabswitcherhandy.cpp
index 9abceed..609d17c 100644
--- a/src/components/channeltabswitcherhandy.cpp
+++ b/src/components/channeltabswitcherhandy.cpp
@@ -113,6 +113,10 @@ void ChannelTabSwitcherHandy::GoForwardOnCurrent() {
AdvanceOnCurrent(1);
}
+int ChannelTabSwitcherHandy::GetNumberOfTabs() const {
+ return hdy_tab_view_get_n_pages(m_tab_view);
+}
+
void ChannelTabSwitcherHandy::CheckUnread(Snowflake id) {
if (auto it = m_pages.find(id); it != m_pages.end()) {
hdy_tab_page_set_needs_attention(it->second, Abaddon::Get().GetDiscordClient().GetUnreadStateForChannel(id) > -1);
diff --git a/src/components/channeltabswitcherhandy.hpp b/src/components/channeltabswitcherhandy.hpp
index 37a71ee..561d463 100644
--- a/src/components/channeltabswitcherhandy.hpp
+++ b/src/components/channeltabswitcherhandy.hpp
@@ -25,6 +25,8 @@ public:
void GoBackOnCurrent();
void GoForwardOnCurrent();
+ [[nodiscard]] int GetNumberOfTabs() const;
+
private:
void CheckUnread(Snowflake id);
void ClearPage(HdyTabPage *page);
diff --git a/src/components/chatwindow.cpp b/src/components/chatwindow.cpp
index fcaf6c4..8667488 100644
--- a/src/components/chatwindow.cpp
+++ b/src/components/chatwindow.cpp
@@ -170,6 +170,10 @@ void ChatWindow::SetTopic(const std::string &text) {
#ifdef WITH_LIBHANDY
void ChatWindow::OpenNewTab(Snowflake id) {
+ // open if its the first tab (in which case it really isnt a tab but whatever)
+ if (m_tab_switcher->GetNumberOfTabs() == 0) {
+ m_signal_action_channel_click.emit(id, false);
+ }
m_tab_switcher->AddChannelTab(id);
}