]> Pileus Git - ~andy/gtk/blobdiff - ChangeLog
Always show images.
[~andy/gtk] / ChangeLog
index 5598c04737a350a030ccd724e413cbdb071fb8ef..627f6421ae2f9b0068614491ae8968c16cc0208a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,519 @@
+2009-01-30  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkrecentchoosermenu.c (gtk_recent_chooser_menu_create_item):
+       Always show images.
+
+2009-01-29  Tor Lillqvist  <tml@novell.com>
+
+       Bug 559408 - Transparency lost when images are copied between GTK+
+       and the clipboard on Windows
+
+       The code in gdkselection-win32.c is simplified quite a lot. When
+       an image is stored on the clipboard from GTK+, only the "PNG" and
+       CF_DIB formats are advertised. PNG is our preferred format because
+       it can losslessly represent any image that gdk-pixbuf can handle,
+       even with alpha, unambiguously. CF_DIB is also advertised because
+       of its ubiquitous support in Windows software.
+
+       Delayed rendering is used as before, so for other data than text
+       nothing is actually stored on the clipboard until some app asks
+       for it.
+
+       It's pointless to advertise images formats like "image/png" or
+       "image/x-MS-bmp" that no other Windows application is going to
+       look for anyway. Likewise it's pointless to store text under
+       formats like "text/plain" or "UTF8_STRING". Just store
+       CF_UNICODETEXT. CF_TEXT will be available as a synthesized format
+       anyways.
+
+       Office 2007 offers and asks for images in PNG format using the
+       registered clipboard format name "PNG", so we do likewise. If the
+       "PNG" format is available that is preferred when copying to GTK+
+       from the clipboard.
+
+       Unfortunately Word 2007 still uses CF_DIB without handling
+       alpha. But PowerPoint 2007 uses PNG if available and handles alpha
+       correctly. Both Word and Powerpoint offer PNG with alpha nicely.
+
+       Firefox and IE7 offer images that contain alpha as 32-bit version
+       3 BI_RGB DIBs with the undocumented "extra" bytes actually being
+       alpha. Also, alpha is premultiplied into the RGB bytes, presumably
+       because that is how AlphaBlend() wants such DIBs. That is also
+       taken care of. At least for Firefox it easy to be sure that a
+       CF_DIB on the clipboard is from Firefox.
+
+       Also some general stylistic cleanup, comment improvements, and
+       improvements of debugging printout especially in the clipboard
+       handling. Those are not detailled below.
+
+       * gdk/win32/gdkprivate-win32.h
+       * gdk/win32/gdkglobals-win32.c
+       * gdk/win32/gdkgmain-win32.c: Move some globals that were used
+       only in gdkselection-win32.c to be local to that file.
+
+       * gdk/win32/gdkproperty-win32.c (gdk_property_change): Don't
+       bother checking if text to be placed on the clipboard consists of
+       only ASCII.
+
+       * gdk/win32/gdkselection-win32.c: Add static variables for a list
+       of GdkPixbuf-supported formats, well-known registered clipboard
+       formats for images, and for GdkAtoms for well-known image and text
+       formats.
+
+       (_gdk_win32_selection_init): Initialize above static variables.
+
+       (selection_property_store) (gdk_selection_property_get)
+       (_gdk_selection_property_delete): Don't use a FIFO of GdkSelProps
+       for a window after all, it breaks testtext. See bug #163844.
+
+       (gdk_selection_convert): When converting to the TARGETS format,
+       i.e. when the caller wants to know what clipboard formats are
+       available, if PNG is available we report just that and skip
+       CF_DIB, JPEG and GIF even if advertised.
+
+       If CF_UNICODETEXT is available, report only UTF8_STRING.
+
+       When converting to the UTF8_STRING format, i.e. when the caller
+       wants text from the clipboard, try just CF_UNICODETEXT. There is
+       no point in trying CF_TEXT as Windows will synthesize
+       CF_UNICODETEXT from CF_TEXT anyway, if some app has stored just
+       CF_TEXT.
+
+       When converting to the image/bmp format, i.e. when the caller
+       wants an CF_DIB image from the clipboard, we check if the DIB is a
+       version 3 32-bit BI_RGB one that is likely to actually contain
+       alpha in the "extra" bytes. Such a DIB is likely to have
+       premultiplied alpha even, at least in the case of Firefox 3 and
+       IE7. We then edit the DIB in-place into a version 5 one in
+       BI_BITFIELDS format and undo the alpha premultiplication.
+
+       In any case, prepend a BMP file header before letting go of the
+       data which will be fed to the gdk-pixbuf bmp loader by upper
+       levels.
+
+       (gdk_win32_selection_add_targets): If some kind of pixmap image
+       format is being added, actually advertise just PNG and
+       CF_DIB. Note that alpha won't be stored on the clipboard through
+       CF_DIB. This is because gdk-pixbuf's bmp loader doesn't save
+       alpha. Furthermore, few if any non-GTK+ Windows apps seem to
+       understand a version 5 DIB with proper alpha anyway.
+
+       (_gdk_win32_selection_convert_to_dib): Simplified muchly.
+
+2009-01-29  Tor Lillqvist  <tml@novell.com>
+
+       Bug 145058 - Inputting "^^" requires four keystrokes on Win32,
+       differs from platform default behaviour
+
+       * gtk/gtkimcontextsimple.c
+       (check_win32_special_case_after_compact_match): New
+       function. Called from check_compact_table() after a table-based
+       match has committed a character. In case there was two identical
+       dead accents in the input, another copy of the spacing accent that
+       was already committed is committed. This fixes #145058.
+
+       (check_win32_special_cases): New function. Called first from
+       gtk_im_context_simple_filter_keypress(). This fixes another
+       problem: a dead accent followed by a space should commit the
+       corresponding spacing accent. The compose tables from X commit
+       another character in two cases and we want to override that on
+       Windows.
+
+       Add GTK_NOTE (MISC) debugging output to this code.
+
+2009-01-29  Claudio Saavedra  <csaavedra@igalia.com>
+
+       Bug 569435 – make maintainer-clean removes non-generated sources
+
+       * gdk/Makefile.am: Do not remove gdkprivate.h and gdkwindowimpl.h
+       during make maintainer-clean, as these files are not generated.
+
+2009-01-28  Philip Withnall  <philip@tecnocode.co.uk>
+
+       * gtk/gtktreeview.c: Small documentation fix.
+
+2009-01-27  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkentry.c: Use the get_text_area_size vfunc to make
+       alignment and icons in spin buttons work correctly.
+
+2009-01-27  Matthias Clasen  <mclasen@redhat.com>
+       
+       Bug 569336 – change in gtkbutton klass is causing crash when 
+       activating menu item
+
+       * gtk/gtktogglebutton.c: Don't chain the clicked handler
+       up unconditionally.
+
+2009-01-27  Matthias Clasen  <mclasen@redhat.com>
+
+       * configure.in: Bump version
+
+2009-01-27  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.15.2 ===
+
+       * NEWS: Updates
+
+2009-01-26  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 322932 – Always show icons on panel menus
+
+       * gtk/gtk.symbols:
+       * gtk/gtkimagemenuitem.[hc]: Add a property to override the
+       show-menu-images setting for individual menuitems. Patch by
+       William Jon McCann.
+
+2009-01-26  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkbutton.c: Activate the action in a regular clicked
+       handler instead of the default handler, to make it work with
+       derived classes which don't chain up their clicked handler.
+
+2009-01-26  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 569104 – Toggle menu entries showed as check menu entries 
+       in nautilus
+
+       * gtk/gtkactivatable.c (gtk_activatable_do_set_related_action):
+       Block the previous action when calling reset() to prevent
+       accidental activation of the previous action.
+
+       * gtk/gtkaction.c (gtk_action_activate): Don't compare booleans.
+
+       * gtk/gtktoggleaction.c (gtk_toggle_action_set_active): Remove
+       extraneous braces.
+
+2009-01-26  Bastien Nocera  <hadess@hadess.net>
+
+       Bug 569240 - Crasher when using markers
+
+       * gtk/gtkrange.c (gtk_range_destroy): Avoid crashes when destroying
+       a GtkRange with markers
+
+2009-01-26  Richard Hult  <richard@imendio.com>
+
+       Bug 566628 – gdk_display_close always asserts on win32 and quartz
+
+       * gdk/quartz/gdkdisplay-quartz.c
+       (_gdk_windowing_set_default_display): Copy fix for bug #566628
+       from the win32 backend: Allow also a NULL parameter in the
+       g_assert().
+
+2009-01-25  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtktoolitem.[hc]: Export the function to create a proxy
+       menuitem from the action for use in subclasses.
+
+       * gtk/gtktoolbutton.c:
+       * gtk/gtktoggletoolbutton.c: Use it here.
+
+       * gtk/gtkrecentchoosermenu.c: Avoid temporary empty state that
+       can lead to a recent action proxy menu being erroneously hidden.
+
+2009-01-25  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkradioaction.c: Set draw-as-radio to TRUE.
+
+2009-01-24  Matthias Clasen  <mclasen@redhat.com>
+
+       Revert changes for bug 567124. Instead of trying to avoid
+       setting up the im context before the widget is realized, just
+       reset it when the client window is set.
+
+       * gtk/gtkimmulticontext.c: Reset the slave when a client window
+       is set.
+
+       * gtk/gtkimmodule.c
+       * gtk/gtktextview.c: Revert changes for bug 567124.
+
+2009-01-25  Claudio Saavedra  <csaavedra@igalia.com>
+
+       * gtk/gtktreeview.c: Use gtk-doc syntax to refer to properties in
+       the docstrings.
+
+2009-01-25  Claudio Saavedra  <csaavedra@igalia.com>
+
+       * gtk/gtkiconview.c: More docstrings improvements
+       regarding reorderable property.
+
+2009-01-24  Claudio Saavedra  <csaavedra@igalia.com>
+
+       Bug 559420 – gtk_icon_view_enable_model_drag_[source|dest] docs
+       wrt. reorderable property
+
+       * gtk/gtkiconview.c: Improve docstrings regarding reorderable
+        property. Based on a patch by Björn Lindqvist.
+
+2009-01-24  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtktoolbutton.c (gtk_tool_button_activatable_reset):
+       Fall back from stock ids to icon names like the old code 
+       did. Patch by Tristan van Berkom.
+
+2009-01-24  Matthias Clasen  <mclasen@redhat.com>
+
+       * tests/testactions.c: Add a testcase for toolitems using
+       icon names.
+
+2009-01-24  Matthias Clasen  <mclasen@redhat.com>
+
+       * gdk/x11/gdkcursor-x11.c (_gdk_x11_cursor_update_theme):
+       Don't update blank cursors.
+
+2009-01-24  Claudio Saavedra  <csaavedra@igalia.com>
+
+       * gtk/gtktreeview.c: (gtk_tree_view_class_init): Slightly
+       improve ::search-column property description.
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       * configure.in: Bump version
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.15.1 ===
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkactivatable.c: Make the section docs produce some valid
+       xml.
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkactivatable.c: Fix the section docs so gtk-doc finds them.
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkrecentchooser.c:
+       * gtk/gtkuimanager.c: Fix issues found by pltcheck
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       * NEWS: Updates
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 560228 – Add "action-controller" property to GtkWidgetClass
+
+       Rework the way actions and proxies interact, to make the
+       interaction less ad hoc, more extensible, and better suited
+       for support in GUI builders like glade. 
+
+       To be used as a proxy, a widget must now implement the 
+       GtkActivatable interface, and GtkActivatable implementations 
+       are responsible for syncing their appearance with the action 
+       and for activating the action.
+
+       All the widgets that are commonly used as proxies implement
+       GtkActivatable now.
+
+       Patch by Tristan van Berkom.
+
+       * gtk/gtkactivatable.[hc]: The GtkActivatable interface.
+
+       * gtk/gtkbutton.c:
+       * gtk/gtktogglebutton.c:
+       * gtk/gtktoolitem.c:
+       * gtk/gtktoolbutton.c:
+       * gtk/gtktoggletoolbutton.c:
+       * gtk/gtkmenuitem.c:
+       * gtk/gtkcheckmenuitem.c:
+       * gtk/gtkimagemenuitem.c:
+       * gtk/gtkradiomenuitem.c:
+       * gtk/gtkrecentchooserprivate.h:
+       * gtk/gtkrecentchooser.c:
+       * gtk/gtkrecentchooserdefault.c:
+       * gtk/gtkrecentchoosermenu.c: Implement GtkActivatable.
+       * gtk/gtkaction.[hc]: Move appearance synchronization to
+       GtkActivatable implementations.
+
+       * gtk/gtkradioaction.c:
+       * gtk/gtkrecentaction.c:
+       * gtk/gtktoggleaction.c:
+       * gtk/gtkactiongroup.c: Adapt.
+
+       * gtk/gtk.h: Include gtkactivatable.h
+       * gtk/gtk.symbols: Add new functions
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 567124 – proposal to delay doing something related to 
+       immodule until widgets realized
+
+       Delay setting up immodules until the widget is realized.
+       Patch by Akira Tagoh
+       
+       * gtk/gtktextview.c: Don't set up im stuff if the widget
+       is not realized.
+
+       * gtk/gtkimmodule.c: Assert that we have a window.
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       Skip Desktop if it equals the home folder
+       Patch by Christian Dywan
+
+       * gtk/gtkfilechooserdefault.c (shortcuts_append_desktop): Skip
+       Desktop if it equals the home folder.
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 536965 – GtkPlug: crash on theme change
+
+       Keep GtkPlug in sync with the global list of toplevels.
+       Patch by Federico Mena Quintero
+
+       * gtk/gtkwindow.h:
+       * gtk/gtkwindow.c (_gtk_window_set_is_toplevel): New internal
+       function used when a GtkPlug parents/unparents itself by an
+       in-process GtkSocket.  This keeps the plug's GTK_TOPLEVEL flag in
+       sync with the global toplevel_list.
+
+       * gtk/gtkplug.c (gtk_plug_set_is_child): Call
+       _gtk_window_set_is_toplevel() to keep the toplevel list updated,
+       instead of just setting/unsetting the GTK_TOPLEVEL flag.
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 568744 – Spellfixes in GtkTreeView's documentation
+
+       * gtk/gtktreeview.c: Fix typos in the docs.
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 567761 – Spellfixes in GTK+ documentation
+
+       * gdk/x11/gdkselection-x11.c:
+       * gtk/gtktestutils.c: Fix typos in the docs.
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 567021 – gtkimage accessors docs
+
+       * gtk/gtkimage.c: Improve docs by mentioning allowed NULL values.
+       Patch by Christian Persch
+
+2009-01-23  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 566535 – gtk_widget_get_snapshot does not work if double buffered 
+       is disabled
+
+       * gtk/gtkwidget.c (gtk_widget_get_snapshot): Use a different approach
+       to snapshotting that is in line with what is done in the client-side
+       windows branch, and that works for widgets regardless if they are
+       double-buffered or not. Patch by Alex Larsson.
+
+       * gdk/gdkwindow.c (_gdk_window_calculate_full_clip_region): Clip
+       to the parent.
+
+2009-01-22  Federico Mena Quintero  <federico@novell.com>
+
+       * gtk/gtkfilechooserentry.c (autocomplete): Relax the assertion;
+       just do nothing if the folder is not loaded or if the cursor position
+       is not at the end of the text.  A very slow-to-load folder can get
+       us into the latter state if the user starts typing first.
+
+2008-01-22  Matthias Clasen  <mnclasen@redhat.com>
+
+       * gtk/gtkaction.c: Revert the last change, since it breaks
+       epiphany.
+
+2009-01-22  Federico Mena Quintero  <federico@novell.com>
+
+       Fix the computation of "complete but unique" in
+       GtkFileChooserEntry.  Fix the case where "/" was not appended to a
+       unique directory name during explicit Tab completion.
+
+       * gtk/gtkfilechooserentry.c (maybe_append_separator_to_file):
+       Return whether anything was appended as well as the new string
+       itself.
+       (find_common_prefix): Oops, only turn on
+       is_complete_not_unique_ret if we had a unique match!
+       (append_common_prefix): If we appended a directory separator, we
+       *did* expand the common prefix, so we are not in the "nothing
+       inserted" case.
+
+2009-01-22  Federico Mena Quintero  <federico@novell.com>
+
+       Return an error code when refreshing the entry from the user's
+       input.  We use this in the completion code to know when completion
+       can't happen due to (for example) having a non-local URI in a file
+       chooser that is local_only=TRUE.
+
+       Also, we start maintaining an invariant that
+       chooser_entry->current_folder_file != NULL implies that:
+
+               * what the user entered is valid
+
+               * we are loading that folder (chooser_entry->load_folder_cancellable != NULL) 
+
+               * or we are done loading that folder, or we have a handle
+               to it at least (chooser_entry->current_folder != NULL)
+
+       The invariant also says that all of the above are NULL (and
+       chooser_entry->current_folder_file == NULL) implies that the user
+       typed something invalid.  This makes
+       _gtk_file_chooser_entry_get_current_folder() not able to return
+       an invalid folder.
+
+       * gtk/gtkfilechooserentry.c (RefreshStatus): New enum.
+       (refresh_current_folder_and_file_part): Return a RefreshStatus.
+       We filter out incomplete hostnames here (typing
+       "sftp://incompl[tab]" will error out), as well as completely
+       unparsable input.
+       (start_explicit_completion): Process the result from refresh...().
+       Here we present the actual feedback about only being able to
+       display local folders for local_only=TRUE.
+       (commit_completion_and_refresh): Don't do anything with the result
+       of refresh...(), since this function doesn't get called during
+       completion-related interaction.
+       (start_autocompletion): Process the result from refresh...().  We
+       only do completion in the REFRESH_OK case.  For the error cases,
+       we don't do anything, as this is autocompletion and must not
+       result in non-asked-for errors popping up.
+       (discard_loading_and_current_folder_file): Factor out function to
+       cancel the cancellable and discard the current_folder_file,
+       i.e. to reset the invariant to the "nothing valid is loaded" case.
+       (gtk_file_chooser_entry_dispose): Use
+       discard_loading_and_current_folder_file().
+       (reload_current_folder): Likewise.
+       (refresh_current_folder_and_file_part): Likewise, and ensure that
+       the error cases result in the invariant being held.
+       (start_loading_current_folder): Check if the folder to be loaded
+       is non-native for the local_only=TRUE case; if so, return an error
+       as we are configured to load only local folders.
+       (reload_current_folder): Pass on errors from
+       start_loading_current_folder().  Tighten the preconditions, as we
+       are sure that we can only receive non-NULL folder-files to load.
+       (refresh_current_folder_and_file_part): Pass on errors from
+       reload_current_folder().  At the very end, assert the invariant
+       described above.
+       
+2009-01-22  Matthew Barnes  <mbarnes@redhat.com>
+
+       Bug 568334 – Constructor properties for GtkAction
+
+       * gtk/gtkaction.c (gtk_action_class_init): Make all properties
+       G_PARAM_CONSTRUCT except "action-group".
+
+2009-01-22  Michael Natterer  <mitch@imendio.com>
+
+       * gtk/gtkicontheme.c (gtk_icon_theme_has_icon): g_return_if_fail()
+       on icon_name != NULL so we get a warning instead of a crash here.
+
+2009-01-21  Matthias Clasen <mclasen@redhat.com>
+
+       * NEWS: Updates
+
+2009-01-21  Matthias Clasen <mclasen@redhat.com>
+
+       * gtk/gtkentry.c: Don't show windows that may not exist
+
+2009-01-21  Matthias Clasen <mclasen@redhat.com>
+
+       * gtk/gtklabel.c: Implement select-by-words for selectable labels.
+
 2009-01-21  Tor Lillqvist  <tml@novell.com>
 
        * gdk/win32/gdkcursor-win32.c: Rename static local functions and
        * gdk/win32/gdkcursor-win32.c (hcursor_from_type): Implement
        creating a GDK_BLANK_CURSOR.
 
+2009-01-21  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkentry.c: Change the Caps Lock warning to the more
+       neutral "Caps Lock is on". Requested by Wouter Bolsterlee
+
 2009-01-21  Matthias Clasen  <mclasen@redhat.com>
 
        Bug 568552 – gtk_combo + gtk entry in invisible mode takes 100% cpu
        for some locales. It should not be that necessary, now that we
        do show preedit text even in password entries. Pointed out by
        Frederic Crozat.
+       (start_loading_current_folder): Check if the folder to be loaded
+       is non-native for the local_only=TRUE case; if so, return an error
+       as we are configured to load only local folders.
+       (reload_current_folder): Pass on errors from
+       start_loading_current_folder().  Tighten the preconditions, as we
+       are sure that we can only receive non-NULL folder-files to load.
+       (refresh_current_folder_and_file_part): Pass on errors from
+       reload_current_folder().  At the very end, assert the invariant
+       described above.
+       (start_explicit_completion): Add comments for translators, to
+       explain the purpose of the various feedback messages used during
+       completion.
 
 2009-01-21  Federico Mena Quintero  <federico@novell.com>