make embed labels selectable, let chat textview take focus

This commit is contained in:
ouwou 2023-01-28 19:05:57 -05:00
parent dfb006283c
commit ff47134dc6
2 changed files with 8 additions and 4 deletions

View File

@ -6,7 +6,6 @@
ChatList::ChatList() {
m_list.get_style_context()->add_class("messages");
set_can_focus(false);
set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS);
get_vadjustment()->signal_value_changed().connect(sigc::mem_fun(*this, &ChatList::OnVAdjustmentValueChanged));

View File

@ -166,7 +166,8 @@ Gtk::TextView *ChatMessageItemContainer::CreateTextComponent(const Message &data
if (data.IsPending)
tv->get_style_context()->add_class("pending");
tv->get_style_context()->add_class("message-text");
tv->set_can_focus(false);
tv->set_can_focus(true);
tv->set_cursor_visible(false);
tv->set_editable(false);
tv->set_wrap_mode(Gtk::WRAP_WORD_CHAR);
tv->set_halign(Gtk::ALIGN_FILL);
@ -335,6 +336,7 @@ Gtk::Widget *ChatMessageItemContainer::CreateEmbedComponent(const EmbedData &emb
author_lbl->set_hexpand(false);
author_lbl->set_text(*embed.Author->Name);
author_lbl->get_style_context()->add_class("embed-author");
author_lbl->set_selectable(true);
author_box->add(*author_lbl);
}
}
@ -351,6 +353,7 @@ Gtk::Widget *ChatMessageItemContainer::CreateEmbedComponent(const EmbedData &emb
title_label->set_line_wrap(true);
title_label->set_line_wrap_mode(Pango::WRAP_WORD_CHAR);
title_label->set_max_width_chars(50);
title_label->set_selectable(true);
title_ev->add(*title_label);
content->pack_start(*title_ev);
@ -380,6 +383,7 @@ Gtk::Widget *ChatMessageItemContainer::CreateEmbedComponent(const EmbedData &emb
desc_label->set_halign(Gtk::ALIGN_START);
desc_label->set_hexpand(false);
desc_label->get_style_context()->add_class("embed-description");
desc_label->set_selectable(true);
content->pack_start(*desc_label);
}
}
@ -422,6 +426,8 @@ Gtk::Widget *ChatMessageItemContainer::CreateEmbedComponent(const EmbedData &emb
field_box->pack_start(*field_val);
field_lbl->get_style_context()->add_class("embed-field-title");
field_val->get_style_context()->add_class("embed-field-value");
field_lbl->set_selectable(true);
field_val->set_selectable(true);
flow->insert(*field_box, -1);
}
}
@ -445,6 +451,7 @@ Gtk::Widget *ChatMessageItemContainer::CreateEmbedComponent(const EmbedData &emb
footer_lbl->set_hexpand(false);
footer_lbl->set_text(embed.Footer->Text);
footer_lbl->get_style_context()->add_class("embed-footer");
footer_lbl->set_selectable(true);
content->pack_start(*footer_lbl);
}
@ -1170,8 +1177,6 @@ ChatMessageHeader::ChatMessageHeader(const Message &data)
m_meta_box.set_hexpand(true);
m_meta_box.set_can_focus(false);
m_content_box.set_can_focus(false);
const auto on_enter_cb = [this](const GdkEventCrossing *event) -> bool {
if (m_anim_avatar)
m_avatar.property_pixbuf_animation() = m_anim_avatar;