2009-02-12 Cody Russell <bratsche@gnome.org>
Bug 571576 – gdk_pixbuf_save_to_stream() broken
* gdk-pixbuf/gdk-pixbuf-io.c: Fix gdk_pixbuf_save_to_stream() so that
it does not always return FALSE (even when it succeeds), and also so
that it does not set error to NULL when something goes wrong.
svn path=/branches/gtk-2-14/; revision=22323
2009-02-04 Tor Lillqvist <tml@novell.com>
Bug 570406 - gailutil.def is in srcdir, but used from builddir
* libgail-util/Makefile.am: Use gailutil.def from srcdir. Drop
useless rules to install/uninstall import libraries, libtool knows
to install / uninstall them itself when installing / uninstalling
a .la file. Add rules to install / uninstall the def file like for
consistency, like with the other libraries in GTK+.
svn path=/branches/gtk-2-14/; revision=22279
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.
svn path=/branches/gtk-2-14/; revision=22254
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.
svn path=/branches/gtk-2-14/; revision=22252
2009-01-29 Claudio Saavedra <csaavedra@igalia.com>
Merged from trunk:
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.
svn path=/branches/gtk-2-14/; revision=22249
2009-01-26 Claudio Saavedra <csaavedra@igalia.com>
Merged from trunk:
Bug 563576 – Dummy po files break the build
* ast.po: copy contact data from po/ast.po, patch from Adrian Bunk
svn path=/branches/gtk-2-14/; revision=22222
2009-01-26 Claudio Saavedra <csaavedra@igalia.com>
Merged from trunk:
* gtk/gtktreeview.c: Use gtk-doc syntax to refer to properties in
the docstrings.
svn path=/branches/gtk-2-14/; revision=22221
2009-01-19 Tor Lillqvist <tml@iki.fi>
Bug 568305 - gdk-pixbuf mishandles BI_BITFIELDS bmps
* io-bmp.c (OneLine32): Use unsigned variables so that we can
right-shift them without risk of sign extension. Don't "reverse"
the alpha value, actually storing 0xFF-alpha, but use it as such.
svn path=/branches/gtk-2-14/; revision=22171
2009-01-21 Cody Russell <bratsche@gnome.org>
Bug 568592 – GailTextCell no longer implements AtkAction interface
* modules/other/gail/gailtextcell.c: Fix a regression in GailTextCell
from revision 19227 where G_DEFINE_TYPE_WITH_CODE was used to replace
hard-coded type definition but accidentally removed the registration
of the AtkAction interface. Patch from Peter Johanson.
svn path=/branches/gtk-2-14/; revision=22167
2009-01-16 Cody Russell <bratsche@gnome.org>
Bug 567944 – [Win32] Sorted treeview columns can be unreadable
* modules/engines/ms-windows/msw_style.c: Draw selected treeview
cells according to treeview focus, but ignore whether it is in
a sorted column or not. Otherwise the intersection of a selected
row and a sorted column looks very strange if the treeview does
not have focus.
svn path=/branches/gtk-2-14/; revision=22127
2009-01-12 Tor Lillqvist <tml@iki.fi>
Bug 164002 - query scripts don't work uninstalled on windows
* gtk/gtkmain.c (_gtk_get_libdir): If the gtk DLL is in a ".libs"
folder, assume we are running uninstalled, and use the
configure-time GTK_LIBDIR.
svn path=/branches/gtk-2-14/; revision=22099
2009-01-12 Tor Lillqvist <tml@iki.fi>
Bug 164002 - query scripts don't work uninstalled on windows
* queryloaders.c (main): Use the configure-time PIXBUF_LIBDIR if
the exe is located in a .libs folder, i.e. run in the build
directory through a libtool wrapper script or wrapper executable,
or in the source folder itself. Otherwise continue to infer the
runtime prefix from the exe's location.
svn path=/branches/gtk-2-14/; revision=22098
2009-01-12 Tor Lillqvist <tml@novell.com>
* queryloaders.c (main): Remove the Win9x code path. It had been
left by mistake. Win9x code is gone from the rest of GTK+ since
2.12.
svn path=/branches/gtk-2-14/; revision=22097
2009-01-12 Tor Lillqvist <tml@iki.fi>
* gdk/gdk.c (gdk_arg_debug_cb) (gdk_arg_no_debug_cb): A
GOptionArgFunc should return gboolean and take also a GError
pointer parameter, so make these two functions do that. Return
FALSE (and set the GError) if the parsing of the debug string
failed completely. Note that g_parse_debug_string() doesn't really
have any way to return parsing status, and accepts partially
incorrect strings, though.
svn path=/branches/gtk-2-14/; revision=22094
2009-01-12 Claudio Saavedra <csaavedra@igalia.com>
Bug 567468 – no check for trailing != NULL in
gtk_text_layout_get_iter_at_position()
* gtk/gtktextlayout.c: (gtk_text_layout_get_iter_at_position):
Check for trailing to be non-NULL.
* gtk/gtktextview.c: (gtk_text_view_get_iter_at_position): document
that trailing may be NULL.
svn path=/branches/gtk-2-14/; revision=22091
2009-01-11 Tor Lillqvist <tml@iki.fi>
Bug 523554 - Copy from GIMP to Word broken
* gdk/win32/gdkselection-win32.c
(_gdk_win32_selection_convert_to_dib): The DIB stored in the
clipboard was for some unknown reason truncated by one byte. Don't
do that.
svn path=/branches/gtk-2-14/; revision=22085
2009-01-07 Matthias Clasen <mclasen@redhat.com>
Bug 566862 – pixbuf_new_from_file does not autodetect format
* gdk-pixbuf-io.c (_gdk_pixbuf_get_module): Go back to sniffing
without looking at the filename, to avoid breaking expected
functionality.
svn path=/branches/gtk-2-14/; revision=22074
2009-01-05 Tor Lillqvist <tml@iki.fi>
Bug 566628 - gdk_display_close always asserts on win32
* gdk/win32/gdkdisplay-win32.c
(_gdk_windowing_set_default_display): Allow also a NULL parameter
in the g_assert(). Still don't actually do anything in this
function, though.
svn path=/branches/gtk-2-14/; revision=22066
2009-01-03 Matthias Clasen <mclasen@redhat.com>
Bug 566391 – gtk_about_dialog_set_url_hook should activate
pre-existing website links
* gtk/gtkaboutdialog.c: Make setting website, website-label and
url hook work independent of their order. Reported by Steven
Sheehy.
svn path=/branches/gtk-2-14/; revision=22061
* gdk/x11/gdkscreen-x11.h:
* gdk/x11/gdkevents-x11.c (fetch_net_wm_check_window): Recheck
_NET_SUPPORTING_WM_CHECK every now and then to avoid getting
stuck on the id of a former wmcheck window that got reused by
another client (see RH bug 471927)
svn path=/branches/gtk-2-14/; revision=22057
* gtk/gtkiconview.c: (gtk_icon_view_accessible_model_row_changed):
Bug #549251. No need to set name if there is no a11y item object.
svn path=/branches/gtk-2-14/; revision=22049
2008-12-21 Yair Hershkovitz <yairhr@gmail.com>
Bug 565203: RTL locales: icons are misplaced when horizontal
gtkiconview is contained in a gtkscrolledwindow.
* gtk/gtkiconview.c (gtk_icon_view_layout_single_row):
Fix horizontal icon positions when in RTL locale.
svn path=/branches/gtk-2-14/; revision=21919
2008-12-14 Tor Lillqvist <tml@novell.com>
* ast.po: Use charset=UTF-8 to avoid error with some versions of
GNU msgfmt.
svn path=/branches/gtk-2-14/; revision=21902
* gtk/gtkfilechooserdefault.c (update_current_folder_get_info_cb):
Mount the enclosing volume if the folder we're switching to is not
mounted. Patch by Tomas Bzatek, based on work by Carlos Garnacho
svn path=/branches/gtk-2-14/; revision=21901
2008-12-13 Matthias Clasen <mclasen@redhat.com>
Bug 561494 – FileChooser network browsing and authentication support
* gtk/gtkfilesystem.[hc] (_gtk_file_info_consider_as_directory):
Privately export this method. It classifies directories and mountables
the same.
* gtk/gtkfilesystem.c (enclosing_volume_mount_cb): Silently drop
G_IO_ERROR_ALREADY_MOUNTED error for gvfs backends without visible
mounts.
* gtk/gtkfilesystemmodel.c:
* gtk/gtkfilechooserbutton.c:
* gtk/gtkfilechooserentry.c:
* gtk/gtkfilechooserdefault.c: Use the new function instead of
direct checks for G_FILE_TYPE_DIRECTORY throughout.
svn path=/branches/gtk-2-14/; revision=21900
2008-12-13 Matthias Clasen <mclasen@redhat.com>
Bug 562579 – Remove error dialog when directory does not exist
* gtk/gtkfilechooserdefault.c (update_current_folder_get_info_cb):
Don't show an error dialog when changing to a non-existing folder,
since this is ususally just an annoyance.
svn path=/branches/gtk-2-14/; revision=21895