diff options
author | fiaxh <git@lightrise.org> | 2020-04-05 16:19:56 +0200 |
---|---|---|
committer | fiaxh <git@lightrise.org> | 2020-04-05 16:19:56 +0200 |
commit | d091a6c3cd0812873bcdef53c51a2f60e12f2b8a (patch) | |
tree | d350880657a77e04a777a4d6072b5951c7cd58c0 /main/src/ui/conversation_content_view/conversation_view.vala | |
parent | 8f7595418890cc2dac62dc4903405c49e61176d2 (diff) | |
download | dino-d091a6c3cd0812873bcdef53c51a2f60e12f2b8a.tar.gz dino-d091a6c3cd0812873bcdef53c51a2f60e12f2b8a.zip |
Add keyboard shortcut (up key) to activate last message correction
Diffstat (limited to 'main/src/ui/conversation_content_view/conversation_view.vala')
-rw-r--r-- | main/src/ui/conversation_content_view/conversation_view.vala | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/main/src/ui/conversation_content_view/conversation_view.vala b/main/src/ui/conversation_content_view/conversation_view.vala index 808c6cad..aadb5fdc 100644 --- a/main/src/ui/conversation_content_view/conversation_view.vala +++ b/main/src/ui/conversation_content_view/conversation_view.vala @@ -76,6 +76,24 @@ public class ConversationView : Box, Plugins.ConversationItemCollection, Plugins return this; } + public void activate_last_message_correction() { + Gee.BidirIterator<Plugins.MetaConversationItem> iter = content_items.bidir_iterator(); + iter.last(); + for (int i = 0; i < 10 && content_items.size > i; i++) { + Plugins.MetaConversationItem item = iter.get(); + MessageMetaItem message_item = item as MessageMetaItem; + if (message_item != null) { + if ((conversation.type_ == Conversation.Type.CHAT && message_item.jid.equals_bare(conversation.account.bare_jid)) || + (conversation.type_ == Conversation.Type.GROUPCHAT && + message_item.jid.equals(stream_interactor.get_module(MucManager.IDENTITY).get_own_jid(conversation.counterpart, conversation.account)))) { + message_item.in_edit_mode = true; + break; + } + } + iter.previous(); + } + } + private bool on_enter_notify_event(Gdk.EventCrossing event) { mouse_inside = true; update_highlight((int)event.x_root, (int)event.y_root); |