2005-04-04 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkmain.c (_gdk_win32_cf_to_string): New debugging
function, to log a clipboard format name symbolically.
(_gdk_win32_data_to_string): Also new, to log random data bytes.
Implement delayed rendering on Win32, specifically for transfering
images through the clipboard from GTK+ apps to other
apps (#168173, implementation by Ivan Wong):
* gdk/win32/gdkevents-win32.c (gdk_event_translate):
Handle WM_RENDERFORMAT.
* gdk/win32/gdkprivate-win32.h
* gdk/win32/gdkglobals-win32.c: Add _format_atom_table,
_delayed_rendering_data and _image_bmp.
* gdk/win32/gdkmain-win32.c: Initialize _image_bmp.
* gdk/win32/gdkproperty-win32.c (gdk_property_change):
Accept formats other than GDK_TARGET_STRING or _utf8_string, and
assume they are handled through delayed rendering.
* gdk/win32/gdkselection-win32.c (gdk_selection_convert):
Return all available formats (including those registered by GTK+
apps) on request_targets.
(gdk_selection_property_get): We should append a zero byte like
X11 does.
(gdk_win32_selection_add_targets): New function, for
gtkselection's use. Win32 requires that the clipboard owner
registers all valid formats even if the owner wants delayed
rendering.
(_gdk_win32_selection_convert_to_dib): New function. Convert
images to DIB using gdk-pixbuf.
* gdk/win32/gdkwin32.h: Declare gdk_win32_selection_add_targets().
* gtk/gtkselection.c (gtk_selection_add_target,
gtk_selection_add_targets): Call gdk_win32_selection_add_targets()
to register target formats.
* gdk/gdk.symbols: Add gdk_win32_selection_add_targets().
2005-03-20 Matthias Clasen <mclasen@redhat.com>
Make PLT-reduction work with gcc4, and don't include
everything in gdkalias.h:
* gtk/grk.symbols: Group symbols by header and source file.
* gtk/makegtkalias.pl: Protect definitions by the same
preprocessor symbols used to guard the headers. Move
the alias declarations to a separate file which is
produced when calling makegtkalias.pl -def
* gdk/Makefile.am (gtkaliasdef.c): Add a rule to generate
this file.
* gtk/*.c: Include gtkalias.h after the other headers,
include gtkaliasdef.c at the bottom.
* gtk/*.h: Small cleanups.
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-11-15 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkselection.c: Reduce the clipboard timeout from 300
seconds to 30 seconds. (#155428, Billy Biggs)
2004-10-31 Matthias Clasen <mclasen@redhat.com>
Add api for image transfer via copy-and-paste (#156408)
* gtk/gtkclipboard.c (gtk_clipboard_set_image)
(gtk_clipboard_request_image, gtk_clipboard_wait_for_image)
(gtk_clipboard_wait_is_image_available): New functions for image
transfer.
* gtk/gtkselection.h:
* gtk/gtkselection.c (gtk_selection_data_targets_include_image):
New function, similar to gtk_selection_data_targets_include_text().
2004-10-22 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkdnd.c: Document how to use info with text/image
targets.
* gtk/gtkselection.h:
* gtk/gtkselection.c (gtk_target_list_add_text_targets):
(gtk_target_list_add_image_targets): Add info argument.
* gtk/gtkcalendar.c (gtk_calendar_motion_notify):
* gtk/gtkentry.c (gtk_entry_init):
* gtk/gtktextview.c (gtk_text_view_init): Adjust all callers.
2004-10-21 Matthias Clasen <mclasen@redhat.com>
Add convenience api for image dnd (#150165):
* gtk/gtkselection.h:
* gtk/gtkselection.c (gtk_target_list_add_image_targets)
(gtk_selection_data_set_pixbuf, gtk_selection_data_get_pixbuf):
New functions to handle the image formats readable/writable
by gdk-pixbuf.
* gtk/gtkdnd.h:
* gtk/gtkdnd.c (gtk_drag_dest_add_image_targets)
(gtk_drag_source_add_text_targets): New functions to handle
the image formats readable/writable by gdk-pixbuf.
Wed Aug 25 17:14:58 2004 Manish Singh <yosh@gimp.org>
* gtk/gtktreeview.c (gtk_tree_view_search_activate): initialize
path so we don't potentially use an undefined pointer.
* gtk/gtkfilechooserdefault.c (shortcuts_list_create): add G_CALLBACK
cast for tree_view_keybinding_cb.
* gtk/gtkfilechooserdefault.c (location_entry_create): cast to
GTK_FILE_CHOOSER_ENTRY for _gtk_file_chooser_entry_set_file_part()
calls.
* gtk/gtkcellrenderercombo.c (gtk_cell_renderer_combo_start_editing):
cast to GTK_COMBO_BOX for gtk_combo_box_set_active_iter() call.
* gtk/gtkselection.c (selection_get_text_plain): make len a gsize,
since that's what g_convert_with_fallback() expects.
Mon Aug 9 12:48:04 2004 Matthias Clasen <maclas@gmx.de>
Add hidden aliases for exported symbols which are
used internally in order to get rid of many PLT
entries. (#145519, Arjan van de Ven)
* gtk/Makefile.am: Add rules to generate gtk.def and
from gtk.symbols, and make make check check the abi
with abicheck.sh.
(gtk_private_h_sources): Add gtkinternals.h
(gtk_built_private_headers): Add gtkalias.h
(gtk_extra_sources): Add gtk.symbols
(EXTRA_DIST): Add makegtkalias.pl and abicheck.sh
* gtk/gtk.symbols: New file. Definition of the GTK+ ABI.
The file can be processed by cpp to filter out certain
subsets of symbols.
* gtk/abicheck.sh: New file. Script to check the actually
symbols exported from libgtk-x11.2.0.so against the symbols
found in gtk.symbols.
* gtk/makegtkalias.pl: New file. Perl script to generate the
header containing the alias definitions for internally used
exported symbols from a list of symbols.
* gtk/gtkinternals.h: New file. An uninstalled header listing
symbols which must be exported for some reason and do not appear
in any other header.
* gtk/*.c: Include gtkalias.h
Sat Jul 17 00:48:27 2004 Matthias Clasen <maclas@gmx.de>
Support text/plain selection target (#55117, Owen Taylor)
* gtk/gtkselection.h:
* gtk/gtkdnd.h:
* gtk/gtkselection.c (gtk_target_list_add_text_targets):
* gtk/gtkdnd.c (gtk_drag_dest_add_text_targets):
* gtk/gtkdnd.c (gtk_drag_source_add_text_targets): New
functions to facilitate handling of text targets.
* gtk/gtkentry.c:
* gtk/gtktextview.c: Use the new text target handling
functions instead of hardwiring the list of supported
text targets everywhere.
* gtk/gtkselection.c (gtk_selection_data_get_text):
(gtk_selection_data_set_text):
Support the targets text/plain, text/plain?charset=utf-8
and text/plain?charset=<LOCALE-CHARSET> as outlined in
#55117:
For text/plain send only ASCII, but accept 8-bit text
and treat it as ISO-8859-1 as specified by the Xdnd spec.
Always send CRLF terminators. Accept either and convert
into the native terminator for the platform.
2004-05-08 Hans Breuer <hans@breuer.org>
* gtk/gtkfilesystemwin32.c (extract_icon) : finally also
create the correct mask for 'pseudo mime' icons
* gdk/win32/gdkwindow-win32.c(show_window_internal) : also
take focus_on_map into account
* gtk/gtkselection.c : g_message() only with DEBUG_SELECTION
* gtk/gtkactiongroup.c gtk/gtkcombobox.c :
... must return a value
* gdk/gdk.def gtk/gtk.def demos/gtk-demo/makefile.msc.in : updated
2004-05-03 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkselection.c: Make the chunk size for
incremental transfers depend on the maximal request
size, capped at 256k. This should allow most selections
to be transferred nonincrementally, avoiding many
roundtrips and protocol overhead.
* gtk/gtkselection.c (_gtk_selection_request): Fix
a debug message to show correct information.
(_gtk_selection_incr_event): Make INCRemental transfer
of MULTIPLE targets work. This was broken since 1997!
2004-03-05 Federico Mena Quintero <federico@ximian.com>
Fixes#136082 and #135265, patch by Morten Welinder.
* configure.in: Use AC_SYS_LARGEFILE.
* */*.c: #include <config.h>
Wed Feb 25 15:36:50 2004 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkselection-x11.c (gdk_utf8_to_compound_text_for_display):
Call g_convert(), not g_convert() with fallback, since Emacs is
happier if we reject the COMPOUND_TEXT request and it can
then ask for UTF-8. (#114527)
* gtk/gtkselection.c (gtk_selection_data_set_text): When
TEXT is requested, if COMPOUND_TEXT fails, fall back to STRING.
Thu Feb 12 11:05:16 2004 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkproperty-x11.c (gdk_property_get): Assign xtype using
gdk_x11_atom_to_xatom_for_display () when type != GDK_NONE.
* gtk/gtkselection.c (_gtk_selection_request): Use GDK_NONE in
gdk_property_get call instead of 0.
* docs/reference/gdk/tmpl/properties.sgml: Document the above
as GDK_NONE instead of simply 0.
Thu Jan 29 11:00:18 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtkselection.c (gtk_selection_default_handler):
nul-terminate the target atoms. (#132656, Christian Persch)
Tue May 20 15:09:29 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdnd-x11.c gdk/x11/gdkwindow-x11.c: Comprehensively
zero all unused parts of client messages (Mainly Motif DND
and EWMH). Also, fix a couple places where we were putting
contents into Motif DND messages that didn't belong.
(#113361, EWMH problem reported by Lubos Lunak)
* gtk/gtkselection.c (_gtk_selection_request): Handle the
case where the property type for the multiple atoms is
ATOM_PAIR by doing the conversions ourselve. This is
needed for Xt inter-operation.
Wed Dec 4 14:31:46 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdnd-x11.c: Always look up and create the
Motif drag window as a child of the root window of screen 0
rather than the default screen. (#100362, Erwann Chenede)
* gdk/x11/gdkdnd-x11.c (motif_read_initiator_info):
Return FALSE, not GDK_FILTER_REMOVE on failure; this
isn't a filter function.
* gdk/x11/gdkselection-x11.c gtk/gtkselection.c: Add
some g_return_if_fail() to catch selection == None more
gracefully than an X error.
Thu Oct 3 14:13:33 2002 Owen Taylor <otaylor@redhat.com>
* gdk/gdkevents.c (gdk_event_new): Add a 'type'
parameter, make public.
* gdk/gdkevents.c (gdk_event_copy): Copy the screen.
* gdk/gdkevents.c gdk/linux-fb/gdkmain-fb.c
gdk/x11/gdkevents-x11.c gdk/win32/gdkevents-win32.c:
_gdk_event_new() => gdk_event_new().
* gdk/win32/gdkevents-win32.c (real_window_procedure):
Fix event_private->screen breakage that results from evil
encapsulation breakage here.
* gtk/gtkclist.c gtk/gtkcombo.c gtk/gtkcontainer.c
gtk/gtkdialog.c gtk/gtkdnd.c gtk/gtkdrawingarea.c
gtk/gtkimcontextsimple.c gtk/gtklist.c gtk/gtkmenu.c
gtk/gtknotebook.c gtk/gtkplug.c gtk/gtkselection.c
gtk/gtktext.c gtk/gtktreeitem.c gtk/gtktreeview.c
gtk/gtkviewport.c gtk/gtkwindow-decorate.c gtk/gtkwindow.c
tests/testgtk.c: Remove most usage of stack-allocated
GdkEvent structures.
* gtk/gtktreeview.c: Use a cut-and-paste of the full
send_focus_event() from gtkwindow.c that does the necessary
notification of the ::has-focus property and setting of
the HAS_FOCUS flag.x
* gtk/gtkdnd.c: Clean up some mess/duplicated code; removing
an extraneous use of a GdkEvent.
Fri Sep 27 18:14:00 2002 Owen Taylor <otaylor@redhat.com>
(#91249, Thomas Leonard)
* gtk/gtkselection.c (gtk_selection_convert): Initialize
idle time to 0.
* gtk/gtkselection.c: Up idle timeout to 5 minutes
from 5 seconds.
* gtk/gtkselection.c (gtk_selection_init): initialize
gtk_selection_atoms only once at the 1st call.
* gdk/x11/gdkselection-x11.c (gdk_selection_property_get):
set length of selection data from number of read bytes (#90595)
Thu Jun 20 15:36:40 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkselection.c (gtk_selection_owner_set): Get
the owner from the display if !NULL. Otherwise, warn for
multihead. (#85680)
Thu Jun 13 19:41:56 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkiconfactory.c gtk/gtkselection.c gtk/gtkstyle.c
gtk/gtktextiter.c gtk/gtktexttag.c gtk/gtktreemodel.c
gtk/gtkwidget.c: Fix type names for GtkIconSet,
GtkIconSource, GtkSelectionData, GtkBorder, GtkTextIter,
GtkTextAttributes, GtkTreePath, GtkTreeIter,
GtkRequisition, which were all registered as GtkType*.
(#84634, James Henstridge; patch from Jonathan Blandford.)
Mon Apr 29 18:28:00 2002 Owen Taylor <otaylor@redhat.com>
Integrate Erwann Chenede's multihead changes for the gtk/ directory.
* gtk/gtkclipboard.[ch]: Add gtk_clipboard_get_for_display(),
make internals multihead aware.
* gtk/gtkcolorsel.[ch]: Add
gtk_color_selection_set_change_palette_with_screen_hook () [ugh!]
make up for non-multihead safety of
gtk_color_selection_set_change_palette_hook()
* gtk/gtkinvisible.[ch] gtk/gtkmenu.[ch] gtkwindow.[ch]: Add
gtk_{invisible,menu,window}_set_screen(); add "screen" properties
for GtkWindow and GtkMenu.
* gtk/gtkplug.[ch]: Add gtk_plug_construct_for_display(),
gtk_plug_new_for_display(). Multihead fixes.
* gtk/gtkselection.[ch]: Add gtk_selection_owner_set_for_display(),
make internals multihead aware.
* gtk/gtksettings.[ch]: Add gtk_settings_get_for_screen(), get
rid of now-useless gtk_settings_constructor().
* gtk/gtkstyle.[ch]: Add gtk_style_get_font_for_display(), fix
check/radio button indicators bitmap handling to be multihead
safe.
* gtk/gtkwidget.[ch]: Add gtk_widget_get_screen(), gtk_widget_has_screen(),
gtk_widget_get_display(), gtk_widget_get_clipboard(),
gtk_widget_get_root_window().
* gtk/gtkbindings.c gtk/gtkbutton.c gtk/gtkclist.c gtk/gtkcombo.c
gtk/gtkctree.c gtk/gtkdnd.c gtk/gtkfilesel.c gtk/gtkgamma.c
gtk/gtkhandlebox.c gtk/gtkhsv.c gtk/gtkimcontext.c gtk/gtklabel.c
gtk/gtklist.c gtk/gtkmain.c gtk/gtkmenuitem.c gtk/gtkmenushell.c
gtk/gtknotebook.c gtk/gtkoldeditable.c gtk/gtkoptionmenu.c
gtk/gtkpaned.c gtk/gtkpreview.c gtk/gtksocket.c gtk/gtktext.c
gtk/gtktextbuffer.c gtk/gtktextview.c gtk/gtktipsquery.c
gtk/gtktooltips.c gtk/gtktreeview.c gtk/gtktreeviewcolumn.c:
misc mechanical multihead-safety fixes.
* gtk/gtkclipboard.c: Use a GtkImage rather than a pixmap for
the dropper, look up the color palette only at realization time,
other multihead fixes.
* gtk/gtkcombo.c (gtk_combo_unrealize): Popdown the list when
unrealizing.
* gtk/gtkentry.c: Only claim ownership of the primary selection
when realized, misc multihead fixes.
* gtk/gtkfontsel.c: Only fill in fonts when attached to a screen,
fix gtk_font_selection_get_font() for multihead.
* gtk/gtkgc.c: make the depth => drawable hash per-screen.
* gtk/gtkinvisible.c: Add a constructor that realizes the
widget, so we get a realized widget with g_object_new() as
well gtk_invisible_new() as before.
* gtk/gtkmain.c: Get rid of unused gtk_visual/gtk_colormap
variables.
* gtk/gtktextdisplay.c: Add warnings if stipple bitmaps
are used on the wrong screen.
* gtk/gtktoolbar.c: Make handling of GtkSettings-based layout
read properties and connect to settings when the screen is changed,
rather than on init/finalize.
* gtk/gtkwindow.c: Fix icon handing to be multihead safe ...
default icon pixmaps/mask are only shared between windows on the
same screen. Misc multihead fixes.
Sat Apr 27 13:49:53 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
Update docs to reference GDK_SELECTION_CLIPBOARD rather GDK_NONE.
2002-04-29 Alex Larsson <alexl@redhat.com>
* gdk/linux-fb/gdkproperty-fb.c (gdk_property_get):
Fix silly bug, noticed by Sven Neumann.
Sun Apr 28 22:43:55 2002 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func): Fix
so that you can set a new sort func.
Sat Mar 2 13:26:58 2002 Owen Taylor <otaylor@redhat.com>
* gtk/Makefile.am: Switch style of stamp file usage.
* gtk/Makefile.am gtk/typeutils.[ch]: Switch all the exported
enumeration/fags TYPE variables over to macros for get_type() functions,
for lazy definition and to get rid of expensive relocations.
* gtk/gtkiconfactory.[ch] gtk/gtkselection.[ch] gtk/gtkstyle.[ch]
gtk/gtktextiter.[ch] gtk/gtktexttag.[ch] gtk/gtktreemodel.[ch]
gtk/gtktypeutils.[ch] gtk/gtkwidget.[ch]: Switch boxed type
definitions over manually coded get_type() functions.
* gtk/gtk.def: Updates for above
* gtk/{genmarshal.pl,makeenums.awk,makeenums.h,maketypes.awk}:
Remove from CVS, no longer used.
* configure.in: Remove checks for awk.
Wed Feb 20 21:52:13 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkselection.c (gtk_selection_request): Set the property
as type ATOM_PAIR, not ATOM. (#72074, Gregory Merchan.)
* gdk/x11/gdk{property,selecton}-x11.c: Auto-convert properties
of type ATOM_PAIR as well as properties of type ATOM.
Thu Jan 17 17:02:38 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_real_unrealize): Call
gtk_selection_remove_all() here, not in destroy/
finalize. (#66636, Sergey Vlasov)
* gtk/gtkselection.c (gtk_selection_request): Fix
reentrancy problem with multiple conversions.
* gtk/gtkselection.c (gtk_selection_remove_all):
Don't remove incrs, we don't need the widget for
maintain the incr.
* gtk/gtkselection.c (struct _GtkIncrInfo): Remove
the widget field from here, we don't need it.
Wed Oct 31 18:23:47 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkoptionmenu.c (gtk_option_menu_detacher):
Add a "menu" property and notify on it. (#62798,
Padraig O'Briain)
* gtk/gtkselection.[ch] gtk/{gtkentry.c, gtkfilesel.c,
gtkoldeditable.c, gtktextbuffer.c, gtktextview.c}:
Fix set_text to take a gchar, not a guchar, and to have
a len argument.
Mon Oct 22 16:25:12 2001 Owen Taylor <otaylor@redhat.com>
Fixing popup menus to have "Paste" sensitized correctly. Original
patches from Damian Ivereigh, much mangled.
* gtk/gtkselection.c: Add functions gtk_selection_data_get_targets(),
gtk_selection_data_targets_include_text(). (#60854)
* gtk/gtkclipboard.c: Add a simple do-it-all non-async "check if
the clipboard has text" function gtk_clipboard_wait_is_text_available.
(#60854)
* gtk/gtkentry.c: Only enable the paste item if the clipboard
contains text. (#60973)
* gtk/gtktextview.c: Only enable the paste item if the clipboard
contains text. (#60975)