Sun, 10 Aug 2025 23:44:08 +0800
Add Purple.Conversation.find_message_by_id
The method was added so that a protocol or plugin could easily lookup
for the reference for a message. This will be especially useful when a
protocol received a quoted message but only with an id.
<?xml version="1.0" encoding="UTF-8"?> <!-- Pidgin - Internet Messenger Copyright (C) Pidgin Developers <devel@pidgin.im> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see <https://www.gnu.org/licenses/>. --> <interface> <requires lib="gtk" version="4.0"/> <!-- interface-license-type gplv2 --> <!-- interface-name Pidgin --> <!-- interface-description Internet Messenger --> <!-- interface-copyright Pidgin Developers <devel@pidgin.im> --> <template class="PidginAvatar" parent="GtkBox"> <child> <object class="GtkPicture" id="icon"> <property name="height-request">64</property> <property name="width-request">64</property> <property name="content-fit">scale-down</property> </object> </child> <child> <object class="GtkGestureClick"> <property name="button">3</property> <signal name="pressed" handler="pidgin_avatar_button_press_handler" object="PidginAvatar" swapped="no"/> </object> </child> <child> <object class="GtkEventControllerMotion"> <signal name="enter" handler="pidgin_avatar_enter_notify_handler" object="PidginAvatar" swapped="no"/> <signal name="leave" handler="pidgin_avatar_leave_notify_handler" object="PidginAvatar" swapped="no"/> </object> </child> </template> <menu id="menu"> <section> <item> <attribute name="label" translatable="yes">Save Avatar As...</attribute> <attribute name="action">avatar.save-avatar</attribute> </item> <item> <attribute name="label" translatable="yes">Set Custom Avatar...</attribute> <attribute name="action">avatar.set-custom-avatar</attribute> </item> <item> <attribute name="label" translatable="yes">Clear Custom Avatar</attribute> <attribute name="action">avatar.clear-custom-avatar</attribute> </item> </section> </menu> </interface>