summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--poezio/core/handlers.py2
-rw-r--r--poezio/tabs/privatetab.py13
2 files changed, 8 insertions, 7 deletions
diff --git a/poezio/core/handlers.py b/poezio/core/handlers.py
index c17f3761..7edf060b 100644
--- a/poezio/core/handlers.py
+++ b/poezio/core/handlers.py
@@ -801,7 +801,7 @@ class HandlerCore:
jid=message['from'],
typ=1)
if sent:
- tab.last_sent_message = msg
+ tab.last_sent_message = message
else:
tab.last_remote_message = datetime.now()
diff --git a/poezio/tabs/privatetab.py b/poezio/tabs/privatetab.py
index c1bc95ad..6229cd1c 100644
--- a/poezio/tabs/privatetab.py
+++ b/poezio/tabs/privatetab.py
@@ -86,9 +86,9 @@ class PrivateTab(OneToOneTab):
return self.get_nick()
def ack_message(self, msg_id: str, msg_jid: JID):
- # special case when talking to oneself
- if msg_jid == self.core.xmpp.boundjid:
- msg_jid = self.jid.full
+ if JID(msg_jid).bare == self.core.xmpp.boundjid.bare:
+ msg_jid = JID(self.jid.bare)
+ msg_jid.resource = self.own_nick
super().ack_message(msg_id, msg_jid)
@staticmethod
@@ -149,10 +149,11 @@ class PrivateTab(OneToOneTab):
def command_say(self, line, attention=False, correct=False):
if not self.on:
return
- echo_message = self.jid.resource != self.own_nick
+ our_jid = JID(self.jid.bare)
+ our_jid.resource = self.own_nick
msg = self.core.xmpp.make_message(
mto=self.jid.full,
- mfrom=self.core.xmpp.boundjid
+ mfrom=our_jid,
)
msg['type'] = 'chat'
msg['body'] = line
@@ -182,7 +183,7 @@ class PrivateTab(OneToOneTab):
if not msg['body']:
return
self.last_sent_message = msg
- self.core.handler.on_normal_message(msg)
+ self.core.handler.on_groupchat_private_message(msg, sent=True)
msg._add_receipt = True
msg.send()
self.cancel_paused_delay()