pidgin/pidgin

Fix several issues with PidginAvatar in a conversation

22 months ago, Elliott Sales de Andrade
90f3621f94a5
Fix several issues with PidginAvatar in a conversation

* The `content-fit` option is only in GTK 4.8+.
* A static file can't be set as a `GdkPixbuf`, which causes warnings when
hovering over the avatar.
* The custom icon menu didn't work as it only checked for an attached buddy.
* Changing the custom icon didn't cause a refresh in the buddy icon; this is
fixed now, but in a slightly annoying way.
* Changing the custom icon in the buddy list doesn't change the icon in the
conversation window; this is not yet fixed due to missing signals.

The latter two can probably be fixed better when buddies/contacts have better
signals.

Testing Done:
Hovered over avatar in a conversation, which didn't cause any warnings.
Picked all options in Custom Icon menu from a conversation, and they all worked as expected (except for a few buddy list / conversation interactions noted above.)

Also, only tested IM conversations; probably broken in chat conversations, since there are no checks for it?

Reviewed at https://reviews.imfreedom.org/r/1689/
##############################################################################
# General Options
option('devenv-config-dir', type : 'string',
description : 'config directory for running a devenv (defaults to a subdirectory of buildroot)')
option('doc', type : 'boolean', value : false,
description : 'build documentation with gtk-doc')
option('extraversion', type : 'string',
description : 'extra version number to be displayed in Help->About and --help (for packagers)')
option('introspection', type : 'boolean', value : true,
description : 'build introspection data')
option('build-dependencies', type : 'boolean', value : false,
description : 'enable the use of subprojects to build missing dependencies.')
##############################################################################
# Libpurple Options
option('kwallet', type : 'feature',
description : 'enable KWallet support')
option('libsecret', type : 'feature',
description : 'enable libsecret support')
option('soup3', type : 'boolean', value : false,
description : 'compile against libsoup3')
##############################################################################
# Protocol Plugins
option('avahi', type : 'feature',
description : 'compile with avahi (required for Bonjour support)')
option('dynamic-prpls', type : 'string', value: 'all',
description : 'specify which protocols to build dynamically')
option('krb4', type : 'boolean', value : false,
description : 'compile Zephyr plugin with Kerberos 4 support')
option('libgadu', type : 'feature',
description : 'compile with libgadu (required for GaduGadu support)')
option('meanwhile', type : 'feature',
description : 'compile with meanwhile')
option('silc', type : 'feature',
description : 'compile with SILC plugin')
option('zephyr', type : 'feature',
description : 'compile Zephyr plugin against external libzephyr')
##############################################################################
# Pidgin Options
option('console-logging', type : 'boolean', value : false,
description : 'compile with console logging support')
option('gtkui', type : 'boolean', value : true,
description : 'compile with GTK+ user interface')
option('unity-integration', type : 'feature',
description : 'compile with support for unity integration plugin')
##############################################################################
# Finch Options
option('consoleui', type : 'boolean', value : true,
description : 'compile with console user interface')
option('x', type : 'boolean', value : true)