diff --git a/src/chat_control.py b/src/chat_control.py index 136a0a0187d08a0fe0e22ec5f8c4a9c418dd1efa..27947e4a76527920dc21d11a218adafa3773d436 100644 --- a/src/chat_control.py +++ b/src/chat_control.py @@ -1427,18 +1427,6 @@ class ChatControl(ChatControlBase): ChatControlBase.__init__(self, self.TYPE_ID, parent_win, 'chat_control', contact, acct, resource) - self._dbus_message_sent_match = None - if dbus_support.supported: - bus = dbus_support.session_bus.bus() - try: - obj = bus.get_object(remote_control.SERVICE, remote_control.OBJ_PATH) - except: - # likely dbus service not started - pass - else: - iface = dbus.Interface(obj, remote_control.INTERFACE) - self._dbus_message_sent_match = iface.connect_to_signal("MessageSent", self.on_message_sent) - self.gpg_is_active = False # for muc use: # widget = self.xml.get_object('muc_window_actions_button') @@ -2253,23 +2241,6 @@ class ChatControl(ChatControlBase): callback_args=[contact, message, encrypted, xhtml, self.get_seclabel()], process_commands=process_commands) - - def on_message_sent(self, account_and_message): - # this is called when an external application sends a chat - # message using DBus. So we likely need to update the UI - # accordingly. - message = account_and_message[1][1] - jid_and_resource = account_and_message[1][0] - if not message: - return - - # try to filter based on jid/resource to avoid duplicate - # messages. - if jid_and_resource.find('/') > -1: - jid = jid_and_resource.split('/')[0] - if jid == self.contact.jid: - self.print_conversation(message, frm='outgoing') - def check_for_possible_paused_chatstate(self, arg): """ Did we move mouse of that window or write something in message textview @@ -2601,10 +2572,6 @@ class ChatControl(ChatControlBase): # instance object gajim.plugin_manager.remove_gui_extension_point('chat_control', self) - # disconnect from the dbus MessageSent signal. - if self._dbus_message_sent_match: - self._dbus_message_sent_match.remove() - gajim.ged.remove_event_handler('pep-received', ged.GUI1, self._nec_pep_received) gajim.ged.remove_event_handler('vcard-received', ged.GUI1, diff --git a/src/remote_control.py b/src/remote_control.py index 30a0b26c23dae6ae89fbe9860fd9aeb4361c7f37..58db09884966bf9bc2ce413ceebd6b8248e75014 100644 --- a/src/remote_control.py +++ b/src/remote_control.py @@ -437,6 +437,11 @@ class SignalObject(dbus.service.Object): session = sessions[0] else: session = connection.make_new_session(jid) + ctrl = gajim.interface.msg_win_mgr.search_control(jid, + connected_account) + if ctrl: + ctrl.print_conversation(message, frm='outgoing') + connection.send_message(jid, message, keyID, type_, subject, session=session) return DBUS_BOOLEAN(True)