Wed, 21 Dec 2005 18:43:39 +0000
[gaim-migrate @ 14935]
Jason LeBrun wrote to gaim-devel:
"I have found a small quirk in the way gdk_pixbuf_loader works. When you
are using it without signalling, the proper way to use it is to call
gdk_pixbuf_loader_close *before* calling gdk_pixbuf_loader_get_animation
or gdk_pixbuf_loader_get_pixbuf. The call to gdk_pixbuf_loader_close
signals that no more writes will be occuring.
In particular, this affects images that are less than 1k in size. If
gdk_pixbuf_loader_close is not called before _get_animation, the loader
will not return anything unless it has received more than 1k of data
(the file type sniffing buffer size) or it has been closed.
So, the proper order of calls for loaders in the gtk*.c code is:
gdk_pixbuf_loader_new();
gdk_pixbuf_loader_write();
gdk_pixbuf_loader_close();
gdk_pixbuf_loader_get_animation();"
I know we fixed a bug by changing this in one place. I've gone through and updated the rest.
| 6371 | 1 | /** |
| 2 | * @file gtkprivacy.h GTK+ Privacy UI | |
| 3 | * @ingroup gtkui | |
| 4 | * | |
| 5 | * gaim | |
| 6 | * | |
| 8046 | 7 | * Gaim is the legal property of its developers, whose names are too numerous |
| 8 | * to list here. Please refer to the COPYRIGHT file distributed with this | |
| 9 | * source distribution. | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
10 | * |
| 6371 | 11 | * This program is free software; you can redistribute it and/or modify |
| 12 | * it under the terms of the GNU General Public License as published by | |
| 13 | * the Free Software Foundation; either version 2 of the License, or | |
| 14 | * (at your option) any later version. | |
| 15 | * | |
| 16 | * This program is distributed in the hope that it will be useful, | |
| 17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 19 | * GNU General Public License for more details. | |
| 20 | * | |
| 21 | * You should have received a copy of the GNU General Public License | |
| 22 | * along with this program; if not, write to the Free Software | |
| 23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 24 | */ | |
|
9713
bb37562302a1
[gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents:
8938
diff
changeset
|
25 | #ifndef _GAIM_GTKPRIVACY_H_ |
|
bb37562302a1
[gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents:
8938
diff
changeset
|
26 | #define _GAIM_GTKPRIVACY_H_ |
| 6371 | 27 | |
| 28 | #include "privacy.h" | |
| 29 | ||
| 30 | /** | |
| 31 | * Initializes the GTK+ privacy subsystem. | |
| 32 | */ | |
| 33 | void gaim_gtk_privacy_init(void); | |
| 34 | ||
| 35 | /** | |
|
8938
d13ed7491e43
[gaim-migrate @ 9708]
Mark Doliner <markdoliner@pidgin.im>
parents:
8046
diff
changeset
|
36 | * Determine if showing the privacy dialog is a valid action. |
|
d13ed7491e43
[gaim-migrate @ 9708]
Mark Doliner <markdoliner@pidgin.im>
parents:
8046
diff
changeset
|
37 | * |
|
d13ed7491e43
[gaim-migrate @ 9708]
Mark Doliner <markdoliner@pidgin.im>
parents:
8046
diff
changeset
|
38 | * @return TRUE if there are accounts online that support privacy. |
|
d13ed7491e43
[gaim-migrate @ 9708]
Mark Doliner <markdoliner@pidgin.im>
parents:
8046
diff
changeset
|
39 | * Otherwise return FALSE. |
|
d13ed7491e43
[gaim-migrate @ 9708]
Mark Doliner <markdoliner@pidgin.im>
parents:
8046
diff
changeset
|
40 | */ |
|
d13ed7491e43
[gaim-migrate @ 9708]
Mark Doliner <markdoliner@pidgin.im>
parents:
8046
diff
changeset
|
41 | gboolean gaim_gtk_privacy_is_showable(void); |
|
d13ed7491e43
[gaim-migrate @ 9708]
Mark Doliner <markdoliner@pidgin.im>
parents:
8046
diff
changeset
|
42 | |
|
d13ed7491e43
[gaim-migrate @ 9708]
Mark Doliner <markdoliner@pidgin.im>
parents:
8046
diff
changeset
|
43 | /** |
| 6371 | 44 | * Shows the privacy dialog. |
| 45 | */ | |
| 46 | void gaim_gtk_privacy_dialog_show(void); | |
| 47 | ||
| 48 | /** | |
| 49 | * Hides the privacy dialog. | |
| 50 | */ | |
| 51 | void gaim_gtk_privacy_dialog_hide(void); | |
| 52 | ||
| 53 | /** | |
| 54 | * Requests confirmation to add a user to the allow list for an account, | |
| 55 | * and then adds it. | |
| 56 | * | |
| 57 | * If @a name is not specified, an input dialog will be presented. | |
| 58 | * | |
| 59 | * @param account The account. | |
| 60 | * @param name The name of the user to add. | |
| 61 | */ | |
| 62 | void gaim_gtk_request_add_permit(GaimAccount *account, const char *name); | |
| 63 | ||
| 64 | /** | |
| 65 | * Requests confirmation to add a user to the block list for an account, | |
| 66 | * and then adds it. | |
| 67 | * | |
| 68 | * If @a name is not specified, an input dialog will be presented. | |
| 69 | * | |
| 70 | * @param account The account. | |
| 71 | * @param name The name of the user to add. | |
| 72 | */ | |
| 73 | void gaim_gtk_request_add_block(GaimAccount *account, const char *name); | |
| 74 | ||
| 75 | /** | |
| 76 | * Returns the UI operations structure for the GTK+ privacy subsystem. | |
| 77 | * | |
| 78 | * @return The GTK+ UI privacy operations structure. | |
| 79 | */ | |
| 80 | GaimPrivacyUiOps *gaim_gtk_privacy_get_ui_ops(void); | |
| 81 | ||
|
9713
bb37562302a1
[gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents:
8938
diff
changeset
|
82 | #endif /* _GAIM_GTKPRIVACY_H_ */ |