mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-05 16:20:10 +00:00
Make the clipboard image API more robust (#162357, Torsten Schoenfeld):
2004-12-27 Matthias Clasen <mclasen@redhat.com> Make the clipboard image API more robust (#162357, Torsten Schoenfeld): * gtk/gtkclipboard.c (clipboard_image_received_func): Don't ref the pixbuf if it is NULL. * gtk/gtkselection.c (gtk_selection_data_set_pixbuf): NULL-terminate the varargs in the call to gdk_pixbuf_save_to_buffer(). (gtk_selection_data_get_pixbuf): Only use a pixbuf loader if there is data to load.
This commit is contained in:
parent
34982b41d2
commit
676322ac06
14
ChangeLog
14
ChangeLog
@ -1,3 +1,17 @@
|
||||
2004-12-27 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
Make the clipboard image API more robust (#162357,
|
||||
Torsten Schoenfeld):
|
||||
|
||||
* gtk/gtkclipboard.c (clipboard_image_received_func): Don't
|
||||
ref the pixbuf if it is NULL.
|
||||
|
||||
* gtk/gtkselection.c (gtk_selection_data_set_pixbuf):
|
||||
NULL-terminate the varargs in the call to
|
||||
gdk_pixbuf_save_to_buffer().
|
||||
(gtk_selection_data_get_pixbuf): Only use a pixbuf loader
|
||||
if there is data to load.
|
||||
|
||||
2004-12-27 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/x11/gdkinput-x11.c (_gdk_input_common_other_event):
|
||||
|
@ -1,3 +1,17 @@
|
||||
2004-12-27 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
Make the clipboard image API more robust (#162357,
|
||||
Torsten Schoenfeld):
|
||||
|
||||
* gtk/gtkclipboard.c (clipboard_image_received_func): Don't
|
||||
ref the pixbuf if it is NULL.
|
||||
|
||||
* gtk/gtkselection.c (gtk_selection_data_set_pixbuf):
|
||||
NULL-terminate the varargs in the call to
|
||||
gdk_pixbuf_save_to_buffer().
|
||||
(gtk_selection_data_get_pixbuf): Only use a pixbuf loader
|
||||
if there is data to load.
|
||||
|
||||
2004-12-27 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/x11/gdkinput-x11.c (_gdk_input_common_other_event):
|
||||
|
@ -1,3 +1,17 @@
|
||||
2004-12-27 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
Make the clipboard image API more robust (#162357,
|
||||
Torsten Schoenfeld):
|
||||
|
||||
* gtk/gtkclipboard.c (clipboard_image_received_func): Don't
|
||||
ref the pixbuf if it is NULL.
|
||||
|
||||
* gtk/gtkselection.c (gtk_selection_data_set_pixbuf):
|
||||
NULL-terminate the varargs in the call to
|
||||
gdk_pixbuf_save_to_buffer().
|
||||
(gtk_selection_data_get_pixbuf): Only use a pixbuf loader
|
||||
if there is data to load.
|
||||
|
||||
2004-12-27 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/x11/gdkinput-x11.c (_gdk_input_common_other_event):
|
||||
|
@ -1,3 +1,17 @@
|
||||
2004-12-27 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
Make the clipboard image API more robust (#162357,
|
||||
Torsten Schoenfeld):
|
||||
|
||||
* gtk/gtkclipboard.c (clipboard_image_received_func): Don't
|
||||
ref the pixbuf if it is NULL.
|
||||
|
||||
* gtk/gtkselection.c (gtk_selection_data_set_pixbuf):
|
||||
NULL-terminate the varargs in the call to
|
||||
gdk_pixbuf_save_to_buffer().
|
||||
(gtk_selection_data_get_pixbuf): Only use a pixbuf loader
|
||||
if there is data to load.
|
||||
|
||||
2004-12-27 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/x11/gdkinput-x11.c (_gdk_input_common_other_event):
|
||||
|
@ -1245,7 +1245,9 @@ clipboard_image_received_func (GtkClipboard *clipboard,
|
||||
{
|
||||
WaitResults *results = data;
|
||||
|
||||
results->data = g_object_ref (pixbuf);
|
||||
if (pixbuf)
|
||||
results->data = g_object_ref (pixbuf);
|
||||
|
||||
g_main_loop_quit (results->loop);
|
||||
}
|
||||
|
||||
|
@ -1266,11 +1266,8 @@ gtk_selection_data_set_pixbuf (GtkSelectionData *selection_data,
|
||||
{
|
||||
str = NULL;
|
||||
type = gdk_pixbuf_format_get_name (fmt),
|
||||
result = gdk_pixbuf_save_to_buffer (pixbuf,
|
||||
&str,
|
||||
&len,
|
||||
type,
|
||||
NULL);
|
||||
result = gdk_pixbuf_save_to_buffer (pixbuf, &str, &len,
|
||||
type, NULL, NULL);
|
||||
if (result)
|
||||
gtk_selection_data_set (selection_data,
|
||||
atom, 8, (guchar *)str, len);
|
||||
@ -1310,20 +1307,23 @@ gtk_selection_data_get_pixbuf (GtkSelectionData *selection_data)
|
||||
GdkPixbufLoader *loader;
|
||||
GdkPixbuf *result = NULL;
|
||||
|
||||
loader = gdk_pixbuf_loader_new ();
|
||||
|
||||
if (gdk_pixbuf_loader_write (loader,
|
||||
selection_data->data,
|
||||
selection_data->length,
|
||||
NULL))
|
||||
result = gdk_pixbuf_loader_get_pixbuf (loader);
|
||||
|
||||
if (result)
|
||||
g_object_ref (result);
|
||||
if (selection_data->length > 0)
|
||||
{
|
||||
loader = gdk_pixbuf_loader_new ();
|
||||
|
||||
if (gdk_pixbuf_loader_write (loader,
|
||||
selection_data->data,
|
||||
selection_data->length,
|
||||
NULL))
|
||||
result = gdk_pixbuf_loader_get_pixbuf (loader);
|
||||
|
||||
if (result)
|
||||
g_object_ref (result);
|
||||
|
||||
gdk_pixbuf_loader_close (loader, NULL);
|
||||
g_object_unref (loader);
|
||||
}
|
||||
|
||||
gdk_pixbuf_loader_close (loader, NULL);
|
||||
g_object_unref (loader);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user