Commit Graph

554 Commits

Author SHA1 Message Date
Jasper St. Pierre
c2bf7a887c gtkicontheme: Fix a missing case where we forget to set is_svg
When duplicating the icon_info, we forgot to set is_svg. This meant that
any application that used gtk_icon_info_load_icon_async wouldn't have
is_svg set properly.

This fixes blurry icons in the gnome-shell app picker.
2014-06-16 10:47:34 -04:00
Matthias Clasen
62f8dae7a8 gtkicontheme: Don't query CONTENT_TYPE to determine svg
We already know based on the suffix of the filename.

https://bugzilla.gnome.org/show_bug.cgi?id=721895
2014-06-14 18:54:24 -04:00
Matthias Clasen
fea939b3d7 GtkIconTheme: Don't treat svg icons specially
This changes makes svg icons go through the same scale calculation
code as png icons. As a consequence, an svg that is put into the
32x32 directory will actually be loaded at size 32, even if it
gets requested at a bigger size. This will let us avoid giant
spinners.

https://bugzilla.gnome.org/show_bug.cgi?id=731658
2014-06-14 15:10:49 -04:00
Evan Nemerson
54ec42f035 gtk: port many nullability annotation fixes from Vala bindings
https://bugzilla.gnome.org/show_bug.cgi?id=730745
2014-05-30 13:24:20 -07:00
Evan Nemerson
a77765f172 gtk: add missing ownership annotations ported from Vala
https://bugzilla.gnome.org/show_bug.cgi?id=730745
2014-05-27 21:10:33 -07:00
Matthias Clasen
72c79deb3b GtkIconTheme: Add more debug spew
Still trying to track down test problems in gnome-continuous.
2014-05-24 18:20:31 -04:00
Matthias Clasen
0f5814aa33 icontheme: Add a test for lookup order
Add tests that verify the expected lookup order between -symbolic,
-rtl/-ltr and generic fallback.
2014-05-14 04:28:36 +02:00
Matthias Clasen
b0b205040c GtkIconTheme: Support looking up directional variants
Add two new icon lookup flags, GTK_ICON_LOOKUP_DIR_LTR and _RTL,
which tell GtkIconTheme to look for icon variants which have a
-ltr or -rtl suffix. GtkIconHelper adds these lookup flags when
looking up icons.

Note that due to the way this overlaps with symbolic icon lookup,
directional variants of symbolic icons must be called -symbolic-rtl, not
-rtl-symbolic.

https://bugzilla.gnome.org/show_bug.cgi?id=729980
2014-05-14 04:28:36 +02:00
Benjamin Otte
89d6598d5b icontheme: Split out symbolicness tests into own function 2014-05-14 04:28:36 +02:00
Benjamin Otte
5d1b5c13fb icontheme: Don't force missing icon
When forcing regular or symbolic icons, fall back to the default
specified icons. This ensures that when no symbolic icon is present, an
icon will still appear - the regular one.
2014-05-14 04:28:34 +02:00
Benjamin Otte
9619b8cff4 API: icontheme: Add 2 new GtkIconLookupFlags
GTK_ICON_LOOKUP_FORCE_REGULAR and GTK_ICON_LOOKUP_FORCE_SYMBOLIC can be
used to force a regular or symbolic icon to be loaded, even if the icon
names specify a different version.

This is intended to support the CSS property -gtk-icon-style.
2014-05-14 04:28:34 +02:00
Matthias Clasen
7b17060654 GtkIconFactory: Remove outdated information from the docs
The stock browser was removed from gtk3-demo.
2014-05-11 22:02:45 -04:00
Matthias Clasen
b6e724e76f Add Adwaita to the list of default icon themes
Hardcode the fallback to Adwaita. I'm leaving gnome in here for
now, since we're in the middle of the transition. It will be
removed before 3.14.
2014-04-26 10:14:38 -04:00
Bastien Nocera
f71f7215ab all: Name more idles and timeouts
Following up from 438cd857c4,
name more timeouts and idles.

The original grep was missing checking for gdk_threads_add_*()
functions (at least for some of the files).

https://bugzilla.gnome.org/show_bug.cgi?id=726870
2014-03-26 20:09:30 -04:00
Cosimo Cecchi
99dc47e7fd icontheme: fix emblemed icons fallout
Commit faba7df4fe changed the logic in
apply_emblems() so that GtkIconInfo->emblems_applied would be set to
TRUE even in case there was no emblem info available, which confuses the
theme cache.
This commit changes the logic back, so that NULL is returned from
apply_emblems_to_pixbuf() when there are no emblems available, fixing
the bug.

https://bugzilla.gnome.org/show_bug.cgi?id=726830
2014-03-24 20:17:21 -04:00
Balint Reczey
4ce5fcc5c8 documentation: clarify gtk_icon_theme_add_builtin_icon() usage
https://bugzilla.gnome.org/show_bug.cgi?id=726135
2014-03-12 22:55:52 -04:00
Cosimo Cecchi
faba7df4fe icontheme: support emblems in symbolic icons
We were failing to apply emblems in the symbolic icons code path.

https://bugzilla.gnome.org/show_bug.cgi?id=725683
2014-03-04 17:38:32 -08:00
William Jon McCann
469d333aa2 docs: use Returns: consistently
Instead of Return value:
2014-02-19 18:56:05 -05:00
Matthias Clasen
c779b42476 Docs: use // for comments in examples
Without sgml mode, we can't escape /* as /* anymore,
so just switch to // for comments in examples.
2014-02-14 23:34:22 -05:00
Matthias Clasen
2671fa98f8 Revert "gtkicontheme: Don't query CONTENT_TYPE to determine if something is an SVG"
This reverts commit f929a61399.

It caused blurry icons in gnome-shell, and we haven't been able
to track down why yet.
2014-02-12 22:36:59 -05:00
Matthias Clasen
7f6a964c47 Docs: Remove all entities and turn off sgml mode
With all element markup gone, it is time to turn off
sgml mode, and get rid of entities as well.
2014-02-09 17:58:07 -05:00
William Jon McCann
13998c55e7 docs: use proper quotations instead of '*' 2014-02-07 14:22:39 -05:00
William Jon McCann
285d216d3e docs: use apostrophe in *'ll 2014-02-07 13:35:54 -05:00
William Jon McCann
e34bd4137d docs: use apostrophes in *n't 2014-02-07 13:32:47 -05:00
William Jon McCann
7a208fbbf3 docs: use proper apostrophe
https://wiki.gnome.org/Design/OS/Typography
2014-02-07 13:06:10 -05:00
William Jon McCann
f116f0071e docs: use links instead of <xref> 2014-02-07 11:13:11 -05:00
William Jon McCann
2a45418b67 docs: use proper quotes 2014-02-05 15:08:42 -05:00
William Jon McCann
5dd751f006 docs: don't use ulink. use markdown instead 2014-02-04 18:53:51 -05:00
William Jon McCann
a22358c0c0 docs: use ` instead of <literal> 2014-02-04 18:24:29 -05:00
William Jon McCann
76447c3512 docs: use quotes instead of <firstterm> 2014-02-04 18:10:11 -05:00
Matthias Clasen
30cc1512e6 Docs: Use markdown for lists
This greatly reduces the amount of xml in the docs.
2014-02-02 01:07:39 -05:00
Jasper St. Pierre
f929a61399 gtkicontheme: Don't query CONTENT_TYPE to determine if something is an SVG
We already know based on the suffix of the filename.

https://bugzilla.gnome.org/show_bug.cgi?id=721895
2014-01-31 14:34:52 -05:00
William Jon McCann
4c8bd8e7cf docs: Identify examples that are C code
https://bugzilla.gnome.org/show_bug.cgi?id=723119
2014-01-29 12:45:49 -05:00
William Jon McCann
768bc44081 docs: use |[ ]| instead of <programlisting></programlisting>
https://bugzilla.gnome.org/show_bug.cgi?id=723119
2014-01-29 12:45:49 -05:00
William Jon McCann
22586ea7c2 docs: use #*-struct instead of <structname> 2014-01-27 19:59:55 -05:00
William Jon McCann
6bf71d13c3 docs: fix function link 2014-01-21 18:57:40 -05:00
William Hua
fd13713230 GtkIconInfo: add gtk_icon_info_is_symbolic()
https://bugzilla.gnome.org/show_bug.cgi?id=710351
2014-01-08 02:10:14 -05:00
Matthias Clasen
a093cd2a22 Icon theme: Hardcode fallback through the 'gnome' icon theme
This is what we used to get through the Net/FallbackIcontheme
setting. Nobody has ever set this setting to a different value,
and people have come to rely on GTK+ applications getting their
icons this way.
2013-10-21 12:58:29 -04:00
Matthias Clasen
4b7eaee959 Fix an oversight
Followup for 3c41d4865e
2013-10-15 21:30:35 -04:00
Matthias Clasen
6d5cbf16d6 Fall back to non-symbolic icons
When doing fallback for symbolic icons, we first shorten
the name at dashes while preserving the -symbolic suffix.
But after exhausting that, we should also try stripping
the suffix.

https://bugzilla.gnome.org/show_bug.cgi?id=708163
2013-10-15 21:19:17 -04:00
Matthias Clasen
6b7981d2f5 Set an error when loading a GtkIconInfo fails
Failure to do so leads to assertion failures.
https://bugzilla.gnome.org/show_bug.cgi?id=710073
2013-10-15 20:06:24 -04:00
Matthias Clasen
d967266b77 Fix a crash in icon handling
The load_error was freed in two places.
Fix based on a patch in
https://bugzilla.gnome.org/show_bug.cgi?id=709967
2013-10-15 08:04:25 -04:00
Benjamin Otte
a4c7f188de icontheme: Use gdk_rgba_to_string()
This gives us valid CSS. And now that librsvg parses valid CSS, that's a
fine thing to use.

And it fixes the problem where %g is locale-dependent.
2013-10-05 21:32:09 +02:00
Benjamin Otte
303cf53f3f icontheme: Use rgba() when loading symbolic icons
This way, we correctly pass on translucency information. Note: This
currently requires librsvg master.
2013-10-05 13:57:51 +02:00
Bastien Nocera
8938f3c47d icon-theme: Fix 2 memory leaks in GtkIconInfo
https://bugzilla.gnome.org/show_bug.cgi?id=709264
2013-10-02 17:21:48 +02:00
Bastien Nocera
7c595bcc53 icon-theme: Use g_clear_* helpers in finalize
https://bugzilla.gnome.org/show_bug.cgi?id=709264
2013-10-02 17:21:48 +02:00
Cosimo Cecchi
3d602f5b0a icontheme: use g_file_load_contents() for symbolic icons
When loading a symbolic icon, g_file_get_contents() is currently used
with the icon pathname, to load its SVG data. This won't work when the
icon is not a local file, for instance when a symbolic icon is loaded
from a GFileIcon with a GResource path.
Fortunately GtkIconInfo already holds a GFile, so we can just use
g_file_load_contents() to load the data instead.

https://bugzilla.gnome.org/show_bug.cgi?id=709056
2013-09-30 09:45:22 -07:00
Alexander Larsson
68c450468e icon-theme: Better handling of unscaled icon directories
If an icon is in a Fixed or Threshold directory we normally don't
scale it. However, in the case of HiDPI scaling we *do* want to
scale it, to avoid different layouts in Lo/HiDPI. We look up whatever
the size of the icon would have been in LoDPI and scale to that
in the no-scaling case, thus getting the same layout as the
unscaled case.

https://bugzilla.gnome.org/show_bug.cgi?id=708384
2013-09-23 12:45:34 +02:00
Alexander Larsson
a001dc0ec7 icon-theme: Make icon_info_new() have some args
This gets rid of a bunch of duplicated code.
2013-09-23 12:45:34 +02:00
Florian Müllner
f081552da1 icontheme: Make sure icon_info->scale doesn't end up 0
GdkPixbuf will fail returning %NULL if we try to scale a pixbuf to (0, 0),
which will then trigger an assertion in gtk_icon_info_load_icon_finish();
we never want a scale of 0, so ensure it is at least 1.

https://bugzilla.gnome.org/show_bug.cgi?id=708384
2013-09-20 14:42:41 +02:00
Matthias Clasen
6aa56979dc More documentation fixes 2013-09-17 01:28:39 -04:00
Chun-wei Fan
0e01f9cc9c GDK/GTK on Windows: Fix build
Due to the work on gdk_cursor_new_from_surface (commit b2113b73),
get_cursor_for_pixbuf() in GdkDisplayClass was converted to
get_cursor_for_surface(), which means the GDK Win32 backend needs to be
updated for the code to build and run on Windows, plus some function
prototypes and declarations/calls need to be updated as well.

https://bugzilla.gnome.org/show_bug.cgi?id=705980
2013-08-26 10:29:23 +08:00
Alexander Larsson
d5e5616ae6 icon-theme: Add ScaledDirectories support
For backwards compat support we don't want old implementations not
supporting scaling to see the new scaled directories, so move these
to a separate list.
2013-08-19 16:01:57 +02:00
Alexander Larsson
8ae81bb395 icon-theme: Use "Scale" for key as per the spec
The latest spec proposal uses "Scale", not "OutputScale", so use this.
2013-08-19 16:01:57 +02:00
Matthias Clasen
7b4f82ccc6 Make symbolic icons work with the current rsvg
The rsvg loader now restricts what external files it will
allow to load from an svg. Thus our xinclude trick doesn't work
anymore. To work around that, embed the payload in a  data: uri.
This is somewhat ugly, but the best we could come up with.
2013-08-16 22:05:38 -04:00
Cosimo Cecchi
b52844031f icontheme: correctly fallback to symbolic icons
When an icon is requested as symbolic, our generic fallback algorithm
uses fullcolor icons when the specified icon name is not found, treating
the "-symbolic" suffix as another component of the icon name.

Change the algorithm to check beforehand if the icon is symbolic, remove
the suffix if so, and re-add it at the end for all the generated icon
names.

https://bugzilla.gnome.org/show_bug.cgi?id=680926
2013-08-13 17:22:47 +02:00
Ryan Lortie
03147b0e72 gtkicontheme: check for GdkPixbuf first
We checked for G_IS_LOADABLE_ICON() before GDK_IS_PIXBUF().

Since we made GdkPixbuf implement GLoadableIcon, the special case for
pixbufs is never used, and the much much slower GLoadableIcon path is
taken instead.  Move the GdkPixbuf one to be first to fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=705320
2013-08-02 15:00:08 +02:00
Murray Cumming
ac792f4a06 docs: gtk_icon_theme_lookup_by_gicon_for_scale() is new
It was added in commit 58adb70d43 .
2013-07-27 21:38:48 +02:00
Matthias Clasen
0aa57d26b5 Move wholly deprecated classes to gtk/deprecated/
We've recently a number of classes wholly. For these cases,
move the headers and sources to gtk/deprecated/ and adjust
Makefiles and includes accordingly.

Affected classes:
GtkAction
GtkActionGroup
GtkActivatable
GtkIconFactory
GtkImageMenuItem
GtkRadioAction
GtkRecentAction
GtkStock
GtkToggleAction
GtkUIManager
2013-07-19 21:39:47 -04:00
Emmanuele Bassi
0899ef7cc9 gtk: Use new macros for defining private data
https://bugzilla.gnome.org/show_bug.cgi?id=702996
2013-07-09 09:30:02 +01:00
Alexander Larsson
1d0bb3e010 GtkIconTheme: Add helpers to load to cairo_surface_t
Right now this just uses the pixbuf load code and converts
it to a surface. In the future we could cache the pattern
to allow reusing the surface.
2013-07-03 14:39:26 +02:00
Carlos Garnacho
58adb70d43 icontheme: Add support for high resolution icons
An optional OutputScale integer key has been added to index.theme
subdirs description, so icon themes may provide icons that are
more suitable to render at a (typically 2x) integer upscaled
resolution. This way it is possible to make eg. a 16x16@2x icon has a
real size of 32x32, but contains a similar level of detail to the
16x16 icon so things don't look any more cluttered on high-dpi
screens.

The pixbuf lookup has changed so it prefers a minimal scale change
that yields the minimal real size difference, so if looking up for
a 16x16 icon at 2x, it would first prefer 16x16@2x, then 32x32, and
then any other icon that's closest to match

There is now *_for_scale() variants for all GtkIconTheme ways
to directly or indirectly fetch a GdkPixbuf.

This is based on code by Carlos Garnacho with changes by Alexander
Larsson
2013-07-03 14:39:26 +02:00
William Jon McCann
aa78c888eb Deprecate and ignore gtk-fallback-icon-theme
The standard icon themes have built in fallbacks.
2013-06-26 12:47:43 -04:00
Alexander Larsson
159cccfe7b IconTheme: Move changed emission to an idle
By delaying the emission to an idle we avoid a lot of tricky
reentrancy issues. For instance, a normal gtk_icon_theme_choose_icon()
call could in very rare cases (when a user updated an icon theme) emit
a signal which could affect the icon currently being looked up.  This
kind of reentrancy is very hard to test against, especially when it is
so rare, so we're better of avoiding it.

There is no real value to get the change signal directly anyway. All
it can do is affect which icon is rendered the next frame, and we will
handle the queued emission before rendering. Not to mention that icon
theme change detection is polled anyway, so it is already delayed.

https://bugzilla.gnome.org/show_bug.cgi?id=694755
2013-06-19 11:15:37 +02:00
Alexander Larsson
1ee36713fe IconTheme: Clear caches when reloading theme
When we're reloading the theme in ensure_valid_themes (due to noticing
that a theme dir has changed) we need to also clear the icon cache
as it will not be valid for the new theme.

We already do this in do_theme_change(), but ensure_valid_themes()
was missing this.

https://bugzilla.gnome.org/show_bug.cgi?id=702598
2013-06-19 09:40:19 +02:00
Alexander Larsson
280d606cd4 IconCache: Keep a ref on the GtkIconData
The icon data in GttkIconInfo->data is currently owned by the
IconThemeDir->icon_data hashtable. However, on e.g. a theme change
blow_themes() destroys the dirs and thus the data, meaning any
outstanding GtkIconInfo points to stale data.

We solve this by adding a refcount to GtkIconData and reffing it
from GtkIconInfo.

https://bugzilla.gnome.org/show_bug.cgi?id=702598
2013-06-19 09:40:19 +02:00
Benjamin Otte
e255cf15fb icontheme: Remove unused function 2013-04-06 10:47:55 +02:00
Will Thompson
507bf6e5cf docs: correct various spelling and grammar errors
I noticed a few cases of "wether", and while fixing them noticed a few
"its" which should be "it's". It all went downhill from there.
2013-03-04 22:48:22 +00:00
Giovanni Campagna
9d81b69e06 GtkIconTheme: fix regression from 0db32f0632
icon_info_dup() is now called also for GtkIconInfos that already have
a pixbuf, so we must make sure that we correctly carry that from
the original icon_info to the copy.
2013-03-04 21:34:23 +01:00
Giovanni Campagna
0db32f0632 GtkIconTheme: fix failed assertion when asynchrnously loading emblemed icons
If you tried to lookup an icon that was not emblemed, and then looked up
an emblemed icon with the same base, we would override the iconinfo adding
the emblems inline. Later, when the icon finished rendering, inside
gtk_icon_info_load_icon_finish, we would copy the result from the duplicate
(which did not include the emblem infos), but the icon would still fail the
assertion, because emblems infos are present but emblem_applied is false
(they were not requested in the first place!).
Solve this by avoiding the overwrite on a cached iconinfo, and instead duplicate
the iconinfo before adding the emblems. It is expected that another layer
of caching (such as StTextureCache in gnome-shell) will take care of avoiding
multiple rendering of the same icon+emblem combination.

https://bugzilla.gnome.org/show_bug.cgi?id=694968
2013-03-04 16:28:00 +01:00
Jasper St. Pierre
367364a8e1 Fix deprecations for GtkIconInfo 2013-02-15 19:48:56 -05:00
Jasper St. Pierre
489a10f488 gtkicontheme: Mark copy/free compat symbols as skip 2013-02-15 19:48:56 -05:00
Alexander Larsson
19784959e0 Fix GtkIconInfo docs
gtk_icon_info_copy and gtk_icon_info_free are deprecated for
the corresponding GObject methods.

We set correct transfer markup for the GtkIconInfo returning methods
to fix the introspection of them.

gtk_icon_info_load_symbolic_for_context_async had the wrong method
name in its documentation block.
2013-02-15 11:07:51 +01:00
Alexander Larsson
f35ad7ab8b GtkIconTheme: Add async versions of symbolic icon loaders
https://bugzilla.gnome.org/show_bug.cgi?id=693802
2013-02-14 22:10:15 +01:00
Alexander Larsson
23d5c41603 GtkIconTheme Don't leak pixbuf in symbolic icon cache
We need to unref the pixbuf we just put in the cache, because
symbolic_pixbuf_cache_new takes a ref.

https://bugzilla.gnome.org/show_bug.cgi?id=693802
2013-02-14 22:10:15 +01:00
Alexander Larsson
7690846c3f Add gtk_icon_info_load_icon_async
This lets you asynchronously load icons. We need this for gnome-shell
to replace its current non-threadsafe use of GtkIconTheme.

https://bugzilla.gnome.org/show_bug.cgi?id=693802
2013-02-14 22:10:09 +01:00
Alexander Larsson
e2d0846386 Make GtkIconInfo a GObject
This is necessary in order to have async operations on it.
All the old copy/free functions keeps working, and g_boxed_copy on a GObject
also works, so this should be mostly compatible, but techncally its a minor
ABI break since the GType changes fundamental type. Changes like this has
happened before though, like with GVariant becomming its own fundamental
type.

https://bugzilla.gnome.org/show_bug.cgi?id=693802
2013-02-14 22:07:25 +01:00
Alexander Larsson
3c279b1492 icon cache: Fix double free
The symbolic icon cache code free crashed with a double free
due to a missing ->next in the loop.
2012-11-30 16:19:13 +01:00
Alexander Larsson
cfdc68db5c Reuse rendered symbolic icons
With the previous commit all loads of the same icon will share a single
GtkIconInfo, which typicallty means the pixbuf is shared via Info->pixbuf.

However, atm we don't share symbolic icons, which causes these to be re-read
and re-parsed every time. This is especially bad if the icon is used many times
in some form of list. So, we cache the pixbufs and reuse them.

https://bugzilla.gnome.org/show_bug.cgi?id=689081
2012-11-30 11:33:26 +01:00
Alexander Larsson
92e904a257 Cache GtkIconInfo
In order to avoid loading and keeping around the same icon multiple times
we keep a cache of all outstanding GtkIconInfo objects for a given theme.

Additionally we return to the app not the normal pixbuf from the info,
but rather a proxy copy of it sharing the same data, but no extra
reference. This allows us to track when the app is no longer using
the pixbuf, and we can thus ensure that the GtkIconInfo in the cache
stays around for at least as long as the pixbuf is alive.

When the app unrefs the pixbuf we put the Info on a short LRU list
to keep it alive a bit longer, in case the app needs it in a short
while.

https://bugzilla.gnome.org/show_bug.cgi?id=689081
2012-11-30 11:33:26 +01:00
Stef Walter
c8de9abe98 icon-theme: Add some preconditions for NULL arguments
Related to this crash: https://bugzilla.gnome.org/show_bug.cgi?id=687967

https://bugzilla.gnome.org/show_bug.cgi?id=687977
2012-11-09 11:59:09 +01:00
Cosimo Cecchi
86ecf54139 icon-theme: support loading symbolic GFileIcons from generic URIs
Right now we support loading and recoloring symbolic GFileIcons, but
only if the underlying GFile has a local path. This breaks when the
GFileIcon is loaded from a GResource, which is a reasonable option for an
application that wants to ship a custom symbolic icon.

This patch changes GtkIconInfo to store a GFile together with the file
path, and changes the symbolic icon lookup code to use the GFile URI,
which transparently makes the code work also for GResources.

https://bugzilla.gnome.org/show_bug.cgi?id=687059
2012-10-31 11:53:50 -04:00
Carlos Garnacho
ebdd60c63b icontheme: Don't assume a symbolic icon size of 16x16
If the symbolic icon has other size than 16x16, the embedder
SVG that overrides colors would still force that size, resulting
in clipping instead of resizing. So fetch the original pixbuf
size the first time a symbolic icon is requested for a GtkIconInfo,
and use that size for the embedder SVG so it can be scaled properly
afterwards.

https://bugzilla.gnome.org/show_bug.cgi?id=677567
2012-07-13 14:44:05 +02:00
Jasper St. Pierre
d9a602f590 icon-theme: Allow symbolic GFileIcons
gtk_icon_info_load_symbolic checks for the existance of a filename parameter
so it can include it along with the stylesheet. We don't set the filename
parameter when creating the info for a GFileIcon, for some reason.

https://bugzilla.gnome.org/show_bug.cgi?id=676356
2012-06-01 09:17:00 -04:00
Benjamin Otte
23907e1d53 build: Remove now-unused GTK_DISABLE_DEPRECATED undefs 2012-05-01 03:13:01 +02:00
William Jon McCann
f10176e49f Prefer xdg data directory to legacy .icons directory
https://bugzilla.gnome.org/show_bug.cgi?id=646631
2012-04-30 06:42:34 -04:00
Cosimo Cecchi
271adacfad icontheme: search first in all themes if the requested icon is symbolic
Symbolic icons use a "-symbolic" suffix to distinguish themselves from
highcolor variants. Note that the dash character here has a different
meaning than the specificity level defined in the icon-naming-spec [1],
as it identifies a property of the icon itself.

Since they might be provided by a parent theme (e.g. the HighContrast theme
relies on the gnome icon theme for them), when we are looking up one we
should first escape the generic icon inheritance mechanism defined in the
icon-naming-spec [1], and privilege a symbolic icon, if it exists in a
parent theme, before applying the inheritance evaluation.

This fixes symbolic icons not working properly when used in the
HighContrast theme with the GTK_ICON_LOOKUP_GENERIC_FALLBACK flag set.

[1]
http://standards.freedesktop.org/icon-naming-spec/latest/ar01s03.html

https://bugzilla.gnome.org/show_bug.cgi?id=674806
2012-04-26 13:52:01 -04:00
Matthias Clasen
050cba6a31 Fix malformed doc comments
Most of these are forgotten :'s and similar details
which gtk-doc now warns about.
2012-04-12 21:12:16 -04:00
Javier Jardón
9d0febc9a6 Change FSF Address 2012-02-27 17:06:11 +00:00
Javier Jardón
d005b01319 gtk/*: Use g_list_free_full() convenience function 2012-01-05 04:22:43 +01:00
Benjamin Otte
adcd136f1e icontheme: Get rid of deprecation warnings
Before including deprecated headers, disable deprecation warnings.
2011-11-08 21:14:05 +01:00
Matthias Clasen
feece3c0bb Move gtkstyle and gtkrc to deprecated/
This required a somewhat more substantial include reshuffling.
Some typedefs have been moved to gtkiconfactory.h and to
gtksettings.h.
2011-11-02 01:15:21 -04:00
Chun-wei Fan
eb8c2dfae2 Bug 660730: Use GStatBuf for portability
Thanks to Kean Johnston for pointing this out.

There are a few places in GTK that use "struct stat",
and then g_stat(), rather than using GStatBuf.This breaks things on
Windows. Since the size of struct stat can vary depending on other
flags specified, this has the potential to cause overwrites and is
trivial to fix.

Based on patch submitted by Kean Johnston
2011-10-03 23:25:33 +08:00
Javier Jardón
bf0d8402f5 gtk: Use const instead G_CONST_RETURN 2011-06-10 13:07:54 +01:00
Matthias Clasen
5abadc6d95 GtkIconTheme: a small optimization
John Lindgren points out in bug 650202 that using judicious
use of g_key_file_has_key() can save some cycles in application
startup.
2011-05-31 20:29:53 -04:00
Colin Walters
703af0fb48 gtkicontheme: More explicitly note ownership transfers of duplicated string
I was hunting a memory leak and couldn't find it; at least I'm
pretty sure all of these are OK.  But document things better
for the future.

Also use g_hash_table_replace in one more case for consistency.

https://bugzilla.gnome.org/show_bug.cgi?id=649457
2011-05-05 16:02:10 -04:00
Colin Walters
9d84e6cda7 Drop the last remaining translated g_warning/g_error calls
http://mail.gnome.org/archives/desktop-devel-list/2011-March/msg00069.html

https://bugzilla.gnome.org/show_bug.cgi?id=648943
2011-04-29 10:33:50 -04:00
Javier Jardón
0dd93537b3 Move documentation to inline comments: GtkIconTheme 2011-04-15 01:41:13 +01:00
Matthias Clasen
800fff748b GtkIconThemePrivate: Improve struct packing 2011-04-12 12:33:04 -04:00
Benjamin Otte
0bd0854d4d icontheme: constify arguments to gtk_icon_theme_load_symbolic() 2011-02-11 23:21:11 +01:00
Matthias Clasen
394ae46ec0 Add some missing symbols to the docs 2011-02-08 23:21:39 -05:00
Benjamin Otte
fac914d70c API: gtk: Remove client_event vfunc from GtkWidget
Also remove the (de-facto unused) implementation from GtkWindow that was
only used for sockets/plugs.
2011-02-01 06:33:01 +01:00
Matthias Clasen
5b7add024d Adapt gtk_icon_info_load_symbolic to librsvg limitations too
Pointed out by Owen Taylor.
2011-01-20 19:01:57 -05:00
Pavel Holejsovsky
2fb1c06402 [GI] Add missing (out) and (array) annotations 2011-01-20 13:57:20 +01:00
Pavel Holejsovsky
3c8fc21e9b [GI] Fixes of existing incorrect annotations 2011-01-20 13:56:06 +01:00
Pavel Holejsovsky
a1c297a310 [GI] Cosmetic cleanups of annotations and doc comments
This change does not introduce any functionality change, mostly
cosmtic cleanups, like re-linebreak when introduced annotations messed
up indentation or whitespace errors fixes.
2011-01-18 17:31:59 +01:00
Pavel Holejsovsky
fe372ddf5e [GI] Add missing (allow-none) annotations 2011-01-18 17:30:43 +01:00
Pavel Holejsovsky
6d5cdad56e [GI] Annotate strings holding file paths as (type filename) 2011-01-18 17:29:40 +01:00
Matthias Clasen
9f895aa3ad Make symbolic icons work again
Work around https://bugzilla.gnome.org/show_bug.cgi?id=639750
2011-01-17 09:57:35 -05:00
Matthias Clasen
df78c9ee66 Add some doc details
Mention symbolic color names in gtk_icon_info_load_symbolic_for_context()
2011-01-13 21:38:08 -05:00
Matthias Clasen
7799fbf239 Add GtkNumerableIcon
This is a subclass of GEmblemedIcon that can show a number or
short string as an emblem, overlayed on top of another emblem.

Written by Cosimo Cecchi
https://bugzilla.gnome.org/show_bug.cgi?id=637169
2011-01-05 16:33:15 -05:00
Matthias Clasen
3412d7a23a Don't access GdkScreen fields 2010-12-21 12:06:56 -05:00
Matthias Clasen
55a0f8700f Another doc format problem 2010-12-17 14:51:53 -05:00
Carlos Garcia Campos
3b3307b946 Use gtk_style_context_reset_widgets() instead of gtk_rc_reset_styles() 2010-12-04 15:39:56 +01:00
Carlos Garnacho
901af8fec8 Fix compiler warnings. 2010-12-04 15:39:52 +01:00
Matthias Clasen
bbca96044e Fix memory handling when dealing with colors 2010-12-04 15:39:45 +01:00
Matthias Clasen
53c2114356 Deprecate gtk_icon_info_load_symbolic_for_style
We might end removing it altogether since it is a bit silly to have
Since: 3.0
Deprecated: 3.0
2010-12-04 15:39:45 +01:00
Matthias Clasen
f90881271f Add a GtkStyleContext-variant of symbolic icon loading 2010-12-04 15:39:42 +01:00
Cosimo Cecchi
a994a9f945 icon-theme: always force icon sizes for emblems
https://bugzilla.gnome.org/show_bug.cgi?id=634060
2010-11-05 16:28:32 +01:00
Cosimo Cecchi
5071aa72ad icon-theme: support pixbufs implementing the GIcon interface
https://bugzilla.gnome.org/show_bug.cgi?id=634060
2010-11-05 16:28:32 +01:00
Bastien Nocera
94c8390ad7 gtk: Fix crasher when loading symbolic icons
If the style didn't include symbolic colors for either success,
warning or error, gtk_icon_info_load_symbolic_for_style() would crash.

Instead, make sure we don't try to use the colors if they're not
available, and fallback on default colors inside
_gtk_icon_info_load_symbolic_internal().
2010-10-27 17:52:30 +01:00
Carlos Garnacho
e351a48d6a Make gtk_icon_info_load_symbolic() Take GdkRGBA colors. 2010-10-22 20:14:56 +02:00
Colin Walters
ad474edda8 introspection: Fix some annotation syntax 2010-09-29 10:45:04 -04:00
Matthias Clasen
f53ad33994 Remove GtkObject completely 2010-09-26 22:18:19 -04:00
Matthias Clasen
e0aa12eb0a Tons of transfer annotations 2010-09-21 00:18:11 -04:00
Tor Lillqvist
4491bdbb9d Drop Win32 DLL ABI compatibility cruft
No need for that any longer as we are changing DLL name.
2010-08-30 14:57:48 +03:00
Christian Persch
ffa07ee21e Use G_DEFINE_BOXED_TYPE
Bug #627214.
2010-08-18 15:34:47 +02:00
Javier Jardón
f66ebd8e59 GtkIconTheme: unseal private pointer 2010-07-13 19:40:48 +02:00
Javier Jardón
0a07e9733b gtk/: fully remove gtkalias hacks
https://bugzilla.gnome.org/show_bug.cgi?id=623845
2010-07-10 02:51:26 +02:00
Javier Jardón
79350fcd8a Fix warning: should pass gboolean*, not gboolean** 2010-06-24 01:31:01 +02:00
Matthias Clasen
e9fc660d7e Add a variant of gtk_icon_theme_load_symbolic that takes a style
As proposed by Owen in bug 621578 to reduce code duplication.
2010-06-14 23:46:46 -04:00
Matthias Clasen
c4134a535e Fix up gtk_icon_info_load_symbolic docs 2010-05-25 09:47:20 -04:00
Matthias Clasen
1782151092 Doc fixes
Correct some Since tags.
2010-05-01 21:40:43 -04:00
Javier Jardón
fa3bb041eb Fix <ulink> tag in previous commit 2010-04-28 18:41:33 +02:00
Matthias Clasen
6b939d57c7 Support 'symbolic' themed icons
Add gtk_icon_info_load_symbolic() to load symbolic icons, and
theme their background/foreground colours to match the
colours used in the theme.

Adds the gtk_icon_info_load_symbolic() function, explicit
support in GtkImage and GtkCellRendererPixbuf, and test cases
for those 2 widgets.

With help from Bastien Nocera <hadess@hadess.net>

https://bugzilla.gnome.org/show_bug.cgi?id=614711
2010-04-28 12:02:05 +01:00
Johan Dahlin
fe85272112 [annotations] Add allow-none
This commit was created using a script that searched for all docstrings
containing a parameter and the string 'or %NULL'.
Gdk backends and demos excluded as they are not part of a public API

https://bugzilla.gnome.org/show_bug.cgi?id=610474
2010-02-19 17:57:51 -02:00
Colin Walters
6529c07614 [introspection] Merge in Gtk-custom.c annotations
The Gtk-custom.c file in gir-repository contained a number of
introspection annotations.  Merge those into the GTK source files.

Some documentation was moved from the tmpl/ files to accomodate
the addition of annotations.
2009-12-16 17:22:01 -02:00
Tomeu Vizoso
c171d58640 Add a few more annotations to GtkIconTheme 2009-12-16 17:22:01 -02:00
Matthias Clasen
00c439dfcb Fix a typo
This was reported in bug 586347.
2009-08-06 23:44:00 -04:00
Michael Natterer
374fa4bb4a g_return_if_fail() on icon_name != NULL so we get a warning instead of a
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.


svn path=/trunk/; revision=22174
2009-01-22 15:15:40 +00:00
Christian Persch
4ba6262be9 Bug 557059 – crash when compositing emblems with icon
2008-10-20  Christian Persch  <chpe@gnome.org>

	Bug 557059 – crash when compositing emblems with icon

	* gtk/gtkicontheme.c: (apply_emblems): Copy the pixbuf before using it
	with gtk_pixbuf_composite, in case its pixdata is read-only (mmaped
	from icon cache or builtins).

svn path=/trunk/; revision=21690
2008-10-20 16:55:00 +00:00
Tor Lillqvist
729524185b gtk/gtk.symbols gtk/makegtkalias.pl gtk/gtkaccelmap.c gtk/gtkfilechooser.c
2008-08-08  Tor Lillqvist  <tml@novell.com>

	* gtk/gtk.symbols
	* gtk/makegtkalias.pl
	* gtk/gtkaccelmap.c
	* gtk/gtkfilechooser.c
	* gtk/gtkfilesel.c
	* gtk/gtkiconfactory.c
	* gtk/gtkicontheme.c
	* gtk/gtkimage.c
	* gtk/gtkrc.c
	* gtk/gtkuimanager.c
	* gtk/gtkwindow.c: No need for the DLL ABI backward compatibility
	functions on Win64.


svn path=/trunk/; revision=21040
2008-08-08 03:49:18 +00:00
Michael Natterer
0324c243f3 move variables to local scopes, fix indentation and silence bogus warning
2008-08-07  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkicontheme.c (apply_emblems): move variables to local
	scopes, fix indentation and silence bogus warning about using
	uninitialized variables.


svn path=/trunk/; revision=21031
2008-08-07 10:07:49 +00:00
Matthias Clasen
25536fafd0 Update to handle GEmblem`
svn path=/trunk/; revision=20980
2008-08-04 16:36:28 +00:00
Matthias Clasen
34dc548878 Support rendering GEmblemedIcon
svn path=/trunk/; revision=20910
2008-07-28 16:15:14 +00:00
Christian Persch
446f41757b Use g_set_error_literal where appropriate. Bug #538640.
svn path=/trunk/; revision=20463
2008-06-19 12:47:48 +00:00
Tor Lillqvist
effd6886f6 Bug 538362 - Get Win32 icons back in the file chooser
2008-06-16  Tor Lillqvist  <tml@novell.com>

	Bug 538362 - Get Win32 icons back in the file chooser

	* gtk/gtkicontheme.c (choose_icon): Check if the icon name is a
	reference to an icon resource in a DLL or .EXE as in the
	Registry. In that case, extract the icon and convert to a
	GdkPixbuf. Patch by Hans Breuer.


svn path=/trunk/; revision=20398
2008-06-16 13:27:46 +00:00
Matthias Clasen
4d15d77fc5 Fix docs
svn path=/trunk/; revision=20392
2008-06-15 22:56:47 +00:00
Matthias Clasen
ee8253f908 Bug 522084 – GIcon support for GtkIconTheme & GtkImage
2008-05-27  Matthias Clasen  <mclasen@redhat.com>

        Bug 522084 – GIcon support for GtkIconTheme & GtkImage

        * gtk/gtkicontheme.[hc]: Add support for GIcon based lookups.
        * gtk/gtkimage.[hc]: Allow setting an image from a GIcon.
        * gtk/gtk.symbols: Additions
        * tests/testimage.c: Add a GIcon test


svn path=/trunk/; revision=20236
2008-05-29 14:33:49 +00:00
Michael Natterer
9c7a2c321f remove unused variable.
2008-01-09  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkcolorsel.c (make_label_spinbutton): remove unused
	variable.

	* gtk/gtkcombobox.c (gtk_combo_box_detacher)
	* gtk/gtkicontheme.c (theme_list_contexts)
	(gtk_icon_theme_lookup_icon)
	* gtk/gtkimcontextsimple.c (beep_window)
	* gtk/gtklinkbutton.c (set_link_color)
	* gtk/gtkuimanager.c (child_hierarchy_changed_cb): add casts to
	fix warnings.

	* gtk/gtkpathbar.c (_gtk_path_bar_set_file_system): remove unused
	variable and add const to another to fix a warning.


svn path=/trunk/; revision=19330
2008-01-09 17:02:50 +00:00
Matthias Clasen
f9e4618bda Two optimizations for icon cache lookups.
2007-12-03  Matthias Clasen  <mclasen@redhat.com>

        Two optimizations for icon cache lookups.

        * gtk/gtkiconcache.[hc]:
        * gtk/gtkicontheme.c: Remember the directory index for
        subdirectories, instead of running over the directory list
        again and again.

        * gtk/gtkiconcache.c (find_image_offset): Remember the last
        chain and try it first; this helps with the the usage patterns
        in gtkicontheme.c, where the same icon is queried for a lot
        of subdirectories.


svn path=/trunk/; revision=19099
2007-12-03 17:44:27 +00:00
Matthias Clasen
e0e3b2136f Small cleanups
svn path=/trunk/; revision=18488
2007-07-18 07:30:34 +00:00
Sven Neumann
721ed98534 use g_slice_dup().
2007-06-19  Sven Neumann  <sven@gimp.org>

	* gtk/gtkicontheme.c (gtk_icon_info_copy): use g_slice_dup().

svn path=/trunk/; revision=18189
2007-06-19 15:41:24 +00:00
Torsten Schönfeld
5b12bfdad2 Initialize unthemed_icon to NULL to avoid accessing uninitialized memory
* gtk/gtkicontheme.c (choose_icon): Initialize unthemed_icon to NULL
	to avoid accessing uninitialized memory when
	gtk_icon_theme_choose_icon() is called with an empty names list.

svn path=/trunk/; revision=18018
2007-06-03 20:44:10 +00:00
Matthias Clasen
11e2767fbd Improve a warning Always set the error when returning NULL. (#440982,
2007-05-25  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkiconfactory.c: Improve a warning
        * gtk/gtkicontheme.c (gtk_icon_info_load_icon): Always
        set the error when returning NULL.  (#440982, Carlos Garcia
        Campos)



svn path=/trunk/; revision=17912
2007-05-25 15:31:28 +00:00
Matthias Clasen
b82c9dc589 Add a function to look up an icon from a list of icon names. (#396901,
2007-05-18  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtk.symbols:
        * gtk/gtkicontheme.h:
        * gtk/gtkicontheme.c: Add a function to look up an icon from
        a list of icon names.  (#396901, Luca Ferretti)



svn path=/trunk/; revision=17868
2007-05-18 20:19:12 +00:00
Matthias Clasen
0ac3069358 Set the filename to NULL for builtin icons, sinc
2007-04-25  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkicontheme.c (theme_lookup_icon): Set the filename to
        NULL for builtin icons, sinc gtk_icon_info_get_builtin_pixbuf()
        depends on it.

        * tests/testicontheme.c: Report builtin icons.


svn path=/trunk/; revision=17638
2007-04-25 18:01:44 +00:00
Chris Wilson
18a9c78bf3 Ensure the icon_theme->all_icons and dir->icons hash tables use the same
2007-04-24  Chris Wilson  <chris@chris-wilson.co.uk>

    * gtk/gtkicontheme.c (scan_directory): Ensure the 
    icon_theme->all_icons and dir->icons hash tables use the same string
    as their keys. (#418531)


svn path=/trunk/; revision=17626
2007-04-24 14:55:52 +00:00
Matthias Clasen
5a706b553b Add GTK_ICON_LOOKUP_GENERIC_FALLBACK icon lookup flag and implement it.
2007-04-19  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkicontheme.h:
        * gtk/gtkicontheme.c: Add GTK_ICON_LOOKUP_GENERIC_FALLBACK
        icon lookup flag and implement it.  (#396901, Luca Ferreti)



svn path=/trunk/; revision=17611
2007-04-19 04:14:39 +00:00
Rodney Dawes
889e223ee3 Fix a couple of comment typos (#421627)
2007-03-23  Rodney Dawes  <dobey@novell.com>

	* gtk/gtkicontheme.c: Fix a couple of comment typos (#421627)


svn path=/trunk/; revision=17559
2007-03-23 14:06:52 +00:00
Rodney Dawes
57f51f5d54 Add a new API call gtk_icon_theme_list_contexts so that one can choose
2007-03-21  Rodney Dawes  <dobey@novell.com>

	* gtk/gtk.symbols:
	* gtk/gtkicontheme.[ch]:
	* docs/reference/gtk/gtk-sections.txt:
	* tests/testicontheme.c:
	Add a new API call gtk_icon_theme_list_contexts so that one can
	choose icons from a theme by context (#420719)


svn path=/trunk/; revision=17550
2007-03-21 19:31:01 +00:00
Chris Wilson
0b1c9b7cc2 Protect ensure_valid_themes() from recursion, which can happen for example
2007-03-15  Chris Wilson  <chris@chris-wilson.co.uk>

	* gtk/gtkicontheme.c (ensure_valid_themes), (rescan_themes),
	(gtk_icon_theme_rescan_if_needed): Protect ensure_valid_themes()
	from recursion, which can happen for example if the app tries to
	reload an icon from within a theme-changed handler. (#418531)


svn path=/trunk/; revision=17523
2007-03-15 18:40:16 +00:00
Matthias Clasen
82ce59cd0f Remove unnecessary NULL checks before g_free(). (#369666, Morten Welinder,
2007-03-09  Matthias Clasen <mclasen@redhat.com>

        * Everywhere: Remove unnecessary NULL checks before
        g_free().  (#369666, Morten Welinder, Djihed Afifi)

        * configure.in: Check for ftw.h



svn path=/trunk/; revision=17444
2007-03-09 21:57:37 +00:00
Chris Wilson
8a82e3c943 Be careful not to trigger a style reset before we have loaded the icon
2007-03-06  Chris Wilson  <chris@chris-wilson.co.uk>

	* gtk/gtkicontheme.c (update_current_theme), (gtk_icon_theme_init),
	(do_theme_change), (gtk_icon_theme_set_custom_theme),
	(load_themes):
		Be careful not to trigger a style reset before we have loaded
		the icon theme. (#414875).


svn path=/trunk/; revision=17404
2007-03-06 18:26:41 +00:00
Chris Wilson
e2a74a9bd9 Bug 409101 – invalid read to gtkicontheme.c insert_theme(), might cause
2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>

	Bug 409101 – invalid read to gtkicontheme.c insert_theme(), might cause gnome-panel crash

	* gtk/gtkicontheme.c: (scan_directory):
		Reorder the replacement of the shared base_name key, so that we
		avoid dereferencing the string in the icon_theme->all_icon
		hash table after freeing it from the dir->icons hash table.


svn path=/trunk/; revision=17353
2007-02-26 14:09:21 +00:00
Matthias Clasen
82ef0d0d2a When finding a matching non-scalable dir, keep going and look for a closer
2007-01-14  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkicontheme.c (theme_lookup_icon): When finding a matching
        non-scalable dir, keep going and look for a closer match.
        (#395830, Luca Ferretti)


svn path=/trunk/; revision=17153
2007-01-15 02:56:33 +00:00
Matthias Clasen
bcf7d7e972 Waste less time with non-directories. (#391725, Chris Wilson)
2007-01-01  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkicontheme.c (load_themes): Waste less time
        with non-directories.  (#391725, Chris Wilson)



svn path=/trunk/; revision=17005
2007-01-02 04:19:28 +00:00
Matthias Clasen
721c3bc101 Replace a lot of idle and timeout calls by the new gdk_threads api.
2006-12-22  Matthias Clasen  <mclasen@redhat.com>

        * *.c: Replace a lot of idle and timeout calls by
        the new gdk_threads api.
2006-12-22 19:10:43 +00:00
Matthias Clasen
f71cc8fcaf Fix a crash with icon themes 2006-12-02 19:48:22 +00:00
Paolo Borelli
a1808a8ef3 plug memory leak. Fixes bug #362439.
2006-10-15  Paolo Borelli  <pborelli@katamail.com>

	* gtk/gtkicontheme.c (pixbuf_supports_svg): plug memory leak.
	Fixes bug #362439.
2006-10-15 22:58:08 +00:00
Matthias Clasen
07e7719441 Apply a cleanup patch by Kjartan Maraas (#341812)
2006-10-08  Matthias Clasen  <mclasen@redhat.com>

	* Apply a cleanup patch by Kjartan Maraas  (#341812)
2006-10-08 05:07:55 +00:00
Matthias Clasen
52398c8354 Actually use a higher priority than resize 2006-08-15 18:25:35 +00:00
Matthias Clasen
6f535cb264 Run the reset_styles idle at a priority higher than size negotiation.
2006-08-15  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (do_theme_change): Run the reset_styles
	idle at a priority higher than size negotiation.  (#350517,
	Søren Sandmann)
2006-08-15 17:44:09 +00:00
Matthias Clasen
7014a3b5bb Export this privately.
2006-07-20  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.h:
	* gtk/gtkicontheme.c (_gtk_icon_theme_ensure_builtin_cache):
	Export this privately.

	* gtk/gtkiconfactory.c (render_fallback_image): And call it
	here to initialize the builtin cache before using it.  (#348063,
	Diego Pettenò)
2006-07-20 18:07:21 +00:00
Matthias Clasen
489529be5a Small memory savings 2006-07-07 05:24:00 +00:00
Matthias Clasen
36f7ed300a Remove debugging spew 2006-06-07 13:45:11 +00:00
Matthias Clasen
a9d11e9dba make the last change work 2006-06-07 04:16:52 +00:00
Matthias Clasen
b2b9fc97f8 Small optimization 2006-06-06 20:09:43 +00:00
Matthias Clasen
113f364a37 More of the same 2006-05-14 04:25:34 +00:00
Matthias Clasen
f26aad1916 Boilerplate reduction 2006-05-02 23:56:43 +00:00
Matthias Clasen
da63cf9805 Apply a patch by Paolo Borelli to factor out a strip_suffix() function and
2006-04-18  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkiconcache.c: Apply a patch by Paolo Borelli to factor
        out a strip_suffix() function and save some memory.  (#338307)
2006-04-18 13:58:30 +00:00
Matthias Clasen
d13554a35c Better fix 2006-04-12 04:22:51 +00:00
Matthias Clasen
4906bd0fad Fix another Coverity bug 2006-04-12 04:20:28 +00:00
Matthias Clasen
9c0f0bb451 Small savings 2006-04-04 04:14:17 +00:00
Matthias Clasen
8c8a4c89b8 No point in making the error path fast by caching quarks.
2006-04-03  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkrecentchooser.c (gtk_recent_chooser_error_quark):
        * gtk/gtkrecentmanager.c (gtk_recent_manager_error_quark):
        * gtk/gtkfilechooser.c (gtk_file_chooser_error_quark):
        * gtk/gtkfilesystem.c (gtk_file_system_error_quark):
        * gtk/gtkicontheme.c (gtk_icon_theme_error_quark): No point
        in making the error path fast by caching quarks.
2006-04-04 03:25:16 +00:00
Matthias Clasen
082d4176d5 Don't leak the keyfile parser in the error case.
2006-03-31  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (load_icon_data): Don't leak the keyfile
	parser in the error case.

	* gtk/gtkicontheme.c (load_icon_data, free_unthemed_icon)
	(icon_data_free, load_themes):
	* gtk/gtkiconcache.c (_gtk_icon_cache_get_icon_data): Use the slice
	allocator for GtkIconData and UnthemedIcon structs.
2006-03-31 05:17:56 +00:00
Matthias Clasen
a32b9712f3 Give working examples in the docs. (#330944, John Spray)
2006-02-12  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (gtk_icon_theme_list_icons): Give working
	examples in the docs.  (#330944, John Spray)
2006-02-13 02:31:28 +00:00
Matthias Clasen
f35d4e1e47 Allow falling back to another icon theme before hicolor. (#325546, Rodney
2006-01-11  Matthias Clasen  <mclasen@redhat.com>

	Allow falling back to another icon theme before
	hicolor.   (#325546, Rodney Dawes)

	* gtk/gtksettings.c: Add a gtk-fallback-icon-theme setting.

	* gdk/x11/gdkevents-x11.c: Map it to the XSetting Net/FallbackIconTheme.

	* gtk/gtkicontheme.c: Consult the fallback icon theme before
	looking in hicolor.
2006-01-11 06:20:17 +00:00
Matthias Clasen
dd3a8cd122 Only broadcast _GTK_LOAD_ICONTHEMES if we detect a real theme change, not
2005-12-12  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (ensure_valid_themes): Only broadcast
	_GTK_LOAD_ICONTHEMES if we detect a real theme change, not
	upon initial theme load.  (#323876, Peter Lund)
2005-12-12 17:39:50 +00:00
Matthias Clasen
e00ef950ed Avoid a crash 2005-11-14 18:49:41 +00:00
Matthias Clasen
82f12b610d Make builtin icons work in gtk_window_set_icon_name() (#321046, Maxim
2005-11-12  Matthias Clasen  <mclasen@redhat.com>

	Make builtin icons work in gtk_window_set_icon_name()
	(#321046, Maxim Udushlivy)

	* gtk/gtkicontheme.c (insert_theme): Always insert the default
	theme.
	(ensure_valid_themes): Call _gtk_icon_theme_ensure_builtin_cache()
	from here.
	(theme_lookup_icon, find_builtin_icon): ...and not from here.
	(gtk_icon_theme_lookup_icon): Remove an unncessary assert.
	(gtk_icon_theme_get_icon_sizes): Also check builtin icons.
2005-11-12 06:59:49 +00:00
Matthias Clasen
b983d1c6a7 Store builtin stock icons in an icon cache, instead of populating a hash
2005-11-04  Matthias Clasen  <mclasen@redhat.com>

        Store builtin stock icons in an icon cache, instead of
        populating a hash table with pixbufs at startup, to save both
        memory and startup time.

        * gtk/stock-icons/*: Reorganize the icons in a directory structure
        suitable for gtk-update-icon-cache, and rename them to match the
        stock ids.

        * gtk/gtkiconcache.[hc]: Support non-mmapped icon caches, and
        add _gtk_icon_cache_has_icon_in_directory().

        * gtk/updateiconcache.c: Support a --source <VARIABLE> argument
        to store the contents of the icon cache in a C header.

        * gtk/gtkbuiltincache.h: Generated private header which contains
        the icon cache for the builtin icons.

        * gtk/gtkicontheme.c: Create a GtkIconCache for the builtin
        icons, and use that in addition to the hash table whenever
        builtin icons are searched.

        * gtk/gtkiconfactory.c: Add GTK_ICON_SOURCE_STATIC_ICON_NAME and
        use it for static stock ids.
        (get_default_icons): Don't add the builtin
        icons to the icon theme, just register the stock ids.
        (render_fallback_image): Take the fallback image out of the
        builtin icon cache.

        * gtk/Makefile.am: Remove stock-icons from SUBDIRS and add
        the necessary machinery to rebuild gtkbuiltincache.h.
2005-11-04 15:43:40 +00:00
Matthias Clasen
af89d145f7 Use gdk_atom_intern_static_string() where appropriate.
* gtk/*.c:  Use gdk_atom_intern_static_string() where
	appropriate.
2005-09-11 05:48:27 +00:00
Matthias Clasen
94eec04267 Intern some more strings.
2005-09-01  Matthias Clasen  <mclasen@redhat.com>

        * gdk/*.c: Intern some more strings.
        * gtk/gtkintl.h:
        * gtk/*.c: Define an I_() macro and use it instead of the
        bulky g_intern_static_string().
2005-09-01 05:11:46 +00:00
Matthias Clasen
f4bbe8f0de Also intern static strings passed to g_object_set_data() 2005-08-31 17:58:55 +00:00
Matthias Clasen
c09cc89317 Intern type names in code generated by glib-mkenums, too.
2005-08-31  Matthias Clasen  <mclasen@redhat.com>

	* gdk/Makefile.am:
	* gtk/Makefile.am: Intern type names in code generated by
	glib-mkenums, too.

	* gtk/*.c:
	* gdk/x11/*.c:
	* gdk/*.c: Intern type names before registering the type to avoid
	unnecessary copies.
2005-08-31 16:53:43 +00:00
Matthias Clasen
a4df08a6c7 Avoid an uninitialized variable warning, pointed out by Colin Walters.
2005-08-26  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (theme_lookup_icon): Avoid an uninitialized
	variable warning, pointed out by Colin Walters. (#314585)
2005-08-26 16:29:40 +00:00
Matthias Clasen
fb8fe489ab Don't try to send a client message if the screen is NULL. Noticed by
2005-08-24  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (ensure_valid_themes): Don't try to send a client
	message if the screen is NULL. Noticed by Kjartan Maraas.
2005-08-24 15:28:20 +00:00
Matthias Clasen
f2cb87d3a9 Implement a clientmessage based scheme for makeing sure that all GTK+
2005-08-22  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkwindow.c (gtk_window_client_event):
	* gtk/gtkicontheme.c (ensure_valid_themes)
	(_gtk_icon_theme_check_reload): Implement a clientmessage based
	scheme for makeing sure that all GTK+ applications notice if an
	icon theme has been updated. This should prevent multiple versions
	of an icon theme cache to be mapped in memory at the same time,
	which can cause excessive memory consumption.  (#313156, Chris
	Lahey)
2005-08-22 20:12:15 +00:00
Matthias Clasen
97ec1cdf4f Add a note regarding icon theme changes.
2005-08-22  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (gtk_icon_theme_load_icon): Add a note
	regarding icon theme changes.

	* gtk/gtkiconcache.c (_gtk_icon_cache_get_icon): When returning
	pixbufs which are backed by the mmapped memory of an icon cache,
	increase the refcount of the icon cache, so that the memory is not
	munmapped away underneath the pixbuf upon icon theme changes.
	(#314170, Kjartan Maraas)
2005-08-22 16:38:46 +00:00
Matthias Clasen
d1ab2bf3d5 Store GtkIconData structs in the per-directory hash, even if they come
2005-08-19  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (theme_lookup_icon): Store GtkIconData structs
	in the per-directory hash, even if they come from the icon cache.
	We tried to avoid that before, but as a result leaked icon data
	structs.  (#313852, Kjartan Maraas)
2005-08-19 04:39:30 +00:00
Tor Lillqvist
6591528e95 Put debugging printout inside GTK_NOTE.
2005-08-15  Tor Lillqvist  <tml@novell.com>

	* gtk/gtkicontheme.c (theme_lookup_icon): Put debugging printout
	inside GTK_NOTE.
2005-08-15 19:36:32 +00:00
Matthias Clasen
ce9570dd58 Correct the download location for the hicolor icon theme. (#313475, Olexiy
2005-08-15  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (gtk_icon_theme_lookup_icon): Correct the
	download location for the hicolor icon theme. (#313475, Olexiy
	Avramchenko)
2005-08-15 13:28:22 +00:00
Matthias Clasen
1f61c61410 When changing the icon theme, defer the resetting of rc styles to an idle,
2005-08-12  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkicontheme.c: When changing the icon theme, defer
        the resetting of rc styles to an idle, so that it does
        not happen e.g during expose handling (which is problematic,
        since some widgets, like the toolbar, are changing the
        hierarchy in response to style changes).  (#300539, reported
        by many people, analyzed by Owen Taylor)
2005-08-12 18:39:17 +00:00
Matthias Clasen
708cf95507 Explicitly use the svg loader, if available. This should help with the
2005-07-20  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (load_svg_at_size): Explicitly use the
	svg loader, if available. This should help with the fact that
	svg is not reliably sniffable with the current gdk-pixbuf sniffing
	code.
2005-07-20 20:50:46 +00:00
Matthias Clasen
c251818ca0 Don't keep the caches for unthemed directories in a separate list, instead
2005-07-13  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (load_themes): Don't keep the caches
	for unthemed directories in a separate list, instead append
	them at the end of the dir_mtimes list, so that we can check
	them for staleness like the other caches.  (#310221, Mark
	McLoughlin)
2005-07-13 14:07:10 +00:00
Matthias Clasen
b03e0f2ffb Add a warning about unreffing icon themes. (#310163, Rodney Dawes)
2005-07-13  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (gtk_icon_theme_get_default)
	(gtk_icon_theme_get_for_screen): Add a warning about
	unreffing icon themes.  (#310163, Rodney Dawes)
2005-07-13 04:53:49 +00:00
Matthias Clasen
1a15d98cd4 Doc fixes.
2005-06-10  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkiconview.c (gtk_icon_view_set_margin):
	* gtk/gtkicontheme.c (gtk_icon_info_load_icon):
	* gtk/gtkcalendar.c (gtk_calendar_thaw): Doc fixes.
2005-06-10 04:25:33 +00:00
Matthias Clasen
a6259bbd4d Store icon caches along with the mtimes of the toplevel directories. The
* gtk/gtkicontheme.c: Store icon caches along with the
	mtimes of the toplevel directories. The previous
	mechanism of a hashtable-per-theme caused duplicate icon
	caches for the same toplevel directory to be created.
	(#170030)
2005-04-06 03:34:38 +00:00
Matthias Clasen
cca8dd6347 Make PLT-reduction work with gcc4, and don't include everything in
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.
2005-03-20 07:01:23 +00:00
Matthias Clasen
c4aa487d72 Don't crash if there is no cache. (#170652, Diego Gonzalez)
2005-03-17  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (theme_lookup_icon): Don't crash
	if there is no cache.  (#170652, Diego Gonzalez)
2005-03-17 18:13:46 +00:00
Anders Carlsson
3fc42d7ab9 Update spec.
2005-03-15  Anders Carlsson  <andersca@imendio.com>

	* docs/iconcache.txt:
	Update spec.

	* gtk/gtkiconcache.c: (find_image_offset),
	(_gtk_icon_cache_get_icon_flags), (_gtk_icon_cache_add_icons),
	(_gtk_icon_cache_get_icon), (_gtk_icon_cache_get_icon_data):
	* gtk/gtkiconcache.h:
	Update to be able to fetch pixbuf data and icon metadata.

	* gtk/gtkicontheme.c: (theme_lookup_icon), (gtk_icon_info_free),
	(icon_info_ensure_scale_and_pixbuf):
	Use new cache functions.

	* gtk/updateiconcache.c: (foreach_remove_func), (load_icon_data),
	(maybe_cache_image_data), (scan_directory), (write_pixdata),
	(get_image_meta_data_size), (get_image_pixel_data_size),
	(get_image_data_size), (get_single_node_size), (get_bucket_size),
	(write_bucket), (main):
	Update to write pixbuf data as well as information from .icon
	files.
2005-03-15 13:18:25 +00:00
Matthias Clasen
7ecf872b9a Fix the doc comments. (#169967, Masao Mutoh)
2005-03-11  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (gtk_icon_theme_set_custom_theme): Fix
	the doc comments.  (#169967, Masao Mutoh)
2005-03-12 03:38:31 +00:00
Matthias Clasen
86db923391 Make icon data caching work again. (#168851, Alexander Larsson)
2005-03-01  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (theme_lookup_icon): Make
	icon data caching work again.  (#168851, Alexander Larsson)
2005-03-01 14:59:04 +00:00
Matthias Clasen
b635954523 Look for icons in XDG_DATA_DIRS/pixmaps. (#165950, Thomas Zajic)
2005-02-01  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (gtk_icon_theme_init): Look for icons
	in XDG_DATA_DIRS/pixmaps.  (#165950, Thomas Zajic)
2005-02-02 04:31:21 +00:00
Matthias Clasen
35dfce0f90 Make gtk_icon_theme_load_icon() work independent of icon factory
2005-01-03  Matthias Clasen  <mclasen@redhat.com>

	Make gtk_icon_theme_load_icon() work independent of
	icon factory initialization.  (#162791, Tristan Van Berkom)

	* gtk/gtkiconfactory.[hc]: Rename ensure_default_icons to
	_gtk_icon_factory_ensure_default_icons, and make it non-static.

	* gtk/gtkicontheme.c (find_builtin_icon): ..and call it here.
2005-01-03 14:44:33 +00:00
Tor Lillqvist
5e86a6c9cd Use /usr/share/pixmaps only on Unix.
2004-12-30  Tor Lillqvist  <tml@iki.fi>

	* gtk/gtkicontheme.c (gtk_icon_theme_init): Use /usr/share/pixmaps
	only on Unix.
2004-12-30 00:37:12 +00:00
Tor Lillqvist
f3da170539 gtk/gtkaccelmap.[ch] gtk/gtkfilechooser.[ch] gtk/gtkfilesel.c
2004-12-12  Tor Lillqvist  <tml@iki.fi>

	* gtk/gtkaccelmap.[ch]
	* gtk/gtkfilechooser.[ch]
	* gtk/gtkfilesel.c
	* gtk/gtkfilesystemwin32.c
	* gtk/gtkiconfactory.[ch]
	* gtk/gtkicontheme.[ch]
	* gtk/gtkimage.[ch]
	* gtk/gtkimmodule.c
	* gtk/gtkmodules.c
	* gtk/gtkrc.[ch]
	* gtk/gtkuimanager.[ch]
	* gtk/gtkwindow.[ch]
	* gtk/updateiconcache.c
	* gtk/gtk.symbols: Use gstdio wrappers. On Windows, convert
	environment variables referring to pathnames from locale encoding
	to UTF-8. As in GLib, in order to preserve Windows DLL ABI
	stability, add binary compatibility versions of functions that
	take file names as arguments, or return file names. Add a _utf8
	suffix to the "real" such functions on Windows. The ABI
	compatibility versions keep the old name.

	* gtk/Makefile.am: Strip PRIVATE symbols from the GNU import
	library.

	* gtk/gtkiconcache.c (_gtk_icon_cache_new_for_path): Implement
	file mapping on Win32.

	* gtk/updateiconcache.c: Don't crash if invoked without
	argument. Use binary mode when opening file.

	* modules/engines/ms-windows/Theme/gtk-2.0/Makefile.am: Install
	gtkrc in correct place, in <datadir>/themes/MS-Windows/gtk-2.0.
2004-12-12 21:09:13 +00:00
Matthias Clasen
dc25aac558 Improve the docs. (#157785, Torsten Schoenfeld)
2004-11-09  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.[ch]: Improve the docs.  (#157785,
	Torsten Schoenfeld)
2004-11-10 02:03:36 +00:00
Matthias Clasen
547b85d8b8 Actually commit the "stat less" patch which appeared in the ChangeLog a
2004-11-01  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c: Actually commit the "stat less" patch
	which appeared in the ChangeLog a few days ago.
2004-11-02 02:07:30 +00:00
Matthias Clasen
d5f92150d4 Fix many sparse warnings. 2004-10-28 15:00:05 +00:00
Matthias Clasen
ed19394c8e Use the new g_key_file api in GLib.
2004-10-24  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c: Use the new g_key_file api in GLib.

	* gtk/Makefile.am (gtk_c_sources): Remove gtkiconthemeparser.[hc]

	* gtk/gtkiconthemeparser.[hc]: Removed.
2004-10-24 05:48:16 +00:00
Matthias Clasen
a34d841d79 Implement for cached themes.
2004-10-21  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (gtk_icon_theme_has_icon): Implement for
	cached themes.

	* gtk/gtkiconcache.h:
	* gtk/gtkiconcache.c (_gtk_icon_cache_has_icon): New function.

	* gtk/updateiconcache.c (scan_directory): Don't skip .icon
	files which are listed before their images.
	(foreach_remove_func): Instead filter lonely .icon files out
	here.

	* gtk/gtkicontheme.c (theme_dir_get_icon_suffix): Filter out
	the HAS_ICON_FILE flag.
2004-10-21 18:44:08 +00:00
Matthias Clasen
73fd5538d2 Small fixes.
2004-10-20  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c: Small fixes.
2004-10-20 17:23:02 +00:00
Matthias Clasen
6fc2b8118a Implement icon theme caching. (#154034, Martijn Vernooij, caching schema
2004-10-19  Matthias Clasen  <mclasen@redhat.com>

	Implement icon theme caching.  (#154034, Martijn Vernooij,
	caching schema proposed by Owen Taylor, initial implementation
	by Anders Carlsson)

	* gtk/gtkdebug.h:
	* gtk/gtkmain.c: Add a "icontheme" debug flag.

	* gtk/Makefile.am (gtk_c_sources): Add gtkiconcache.c
	(gtk_private_h_sources): Add gtkiconcache.h
	(bin_PROGRAMS): Add gtk-update-icon-cache

	* gtk/gtkicontheme.c: Use icon caches if they are available.
	Currently, GTK+ uses the cache to get information about the
	available sizes, image file formats and .icon files. The
	actual image data, and the .icon file contents are not
	cached yet.

	* gtk/updateiconcache.c: A cmdline utility for generating
	icon cache files.

	* gtk/gtkiconcache.h:
	* gtk/gtkiconcache.c: The glue code to mmap an icon cache
	file and manage the information it contains.
2004-10-19 18:45:41 +00:00
Matthias Clasen
dd0a7ce608 Go back to not scaling up at all. Less magic.
2004-10-05  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (icon_info_ensure_scale_and_pixbuf): Go back to
	not scaling up at all. Less magic.
2004-10-05 17:06:00 +00:00
Matthias Clasen
6e6824a06b Make the code work as intended for unthemed icons; don't scale them up too
2004-10-04  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (icon_info_ensure_scale_and_pixbuf):
	Make the code work as intended for unthemed icons; don't scale
	them up too much. Allow to scale them down, and do so
	exactly.  (#154142, Ross Burton)
	(gtk_icon_info_load_icon): Amend docs.
2004-10-05 03:18:22 +00:00
Manish Singh
9f326d612b Applied patch from Olivier Andrieu to fix bug #150440.
Wed Aug 18 08:31:17 2004  Manish Singh  <yosh@gimp.org>

        * gtk/gtkiconview.c: Applied patch from Olivier Andrieu to fix
        bug #150440.

        * gtk/gtkicontheme.c (gtk_icon_theme_init): xdg_data_dirs should
        match constness attributes of g_get_system_data_dirs ().
2004-08-18 15:45:13 +00:00
Matthias Clasen
11396cb71f Look up icon themes in the directories specified in the icon theme spec:
2004-08-17  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (gtk_icon_theme_init): Look up icon themes in the
	directories specified in the icon theme spec: $HOME/.icons,
	$XDG_DATA_DIRS/icons, /usr/share/pixmaps. Note that GTK+ used to also look
	in $GTK_DATA_DIR/icons, $GTK_DATA_DIR/pixmaps and /usr/share/icons.  (#148694)
2004-08-17 19:51:11 +00:00
Matthias Clasen
517c3c9db2 Doc update.
2004-08-16  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_render_icon): Doc update.

	* gtk/gtkiconfactory.c (render_icon_name_pixbuf): When the size is -1,
	use the available size closest to 48.  (#150147)

	* gtk/gtkicontheme.c (gtk_icon_theme_get_icon_sizes): Actually return
	a pointer to the beginning of the sizes array, not the end.
2004-08-16 18:38:55 +00:00
Matthias Clasen
3612aee585 Add hidden aliases for exported symbols which are used internally in order
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
2004-08-09 16:59:53 +00:00
Matthias Clasen
ad534c2bb7 Don't leak the file contents.
Mon Aug  9 00:28:34 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkicontheme.c (load_svg_at_size): Don't leak the
	file contents.
2004-08-09 04:30:26 +00:00
Matthias Clasen
b4d4025e72 Add missing parens. (#149190, Morten Welinder)
Tue Aug  3 14:50:14 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkicontheme.c (add_size): Add missing parens.
	(#149190, Morten Welinder)
2004-08-03 18:51:26 +00:00
Matthias Clasen
4466345809 Remove trailing commas from enumerations. (#148035)
Tue Jul 20 22:26:29 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkfilechooserutils.h:
	* gtk/gtktoolbutton.c:
	* gtk/gtktoolbar.c:
	* gtk/gtkicontheme.c:
	* gtk/gtkcalendar.c:
	* demos/gtk-demo/ui_manager.c:
	* demos/gtk-demo/appwindow.c: Remove trailing commas
	from enumerations.  (#148035)
2004-07-21 02:30:19 +00:00
Matthias Clasen
a5638e82e8 Support named themed window icons. 2004-07-17 03:55:07 +00:00
Matthias Clasen
20e3b2db65 Don't leak no_svg_filename. (#147399, Kjartan Maraas)
Tue Jul 13 21:53:08 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkicontheme.c (free_unthemed_icon): Don't leak
	no_svg_filename.  (#147399, Kjartan Maraas)
2004-07-14 01:57:16 +00:00
Matthias Clasen
018511c3aa Handle accel_closure being NULL on an accel label. (#139641, Sam
Tue Jun  1 22:45:42 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkmenu.c (get_accel_path): Handle accel_closure being
	NULL on an accel label. (#139641, Sam Stephenson, patch by
	Michael Natterer)

Tue Jun  1 22:19:55 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkicontheme.c (theme_subdir_load):  Prevent icon
	lookup finding icons in the wrong prefix.  (#143328,
	Mark McLoughlin)
2004-06-02 02:48:50 +00:00
Owen Taylor
5db67b8ba2 Update libpng and libjpeg URLs, remove note about building without since
Mon Apr 19 17:59:17 2004  Owen Taylor  <otaylor@redhat.com>

        * INSTALL.in: Update libpng and libjpeg URLs, remove
        note about building without since that's not the normal
        case.

Sun Apr 11 09:45:11 2004  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkicontheme.c (load_themes): Fix a couple of typos in
        handling of SVG/non-SVG unthemed icons.
2004-04-19 22:01:57 +00:00
Owen Taylor
0459484caa hu Feb 26 15:43:43 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.[ch]: Export insertion cursor drawing functionality
        in a simplified form as gtk_draw_insertion_cursor().
        (#99031, request from Alex Larsson)

        * gtk/gtktextdisplay.c gtk/gtkentry.c gtk/gtklabel.c:
        Adapt to new gtk_draw_insertion_cursor().

        * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_class_init)
        gtk/gtkstyle.c (gtk_style_class_init): Add some missed
        Since: 2.4.

        * gtk/gtkiconfactory.c (icon_size_settings_changed)
          gtk/gtkicontheme.c (do_theme_change)
          gtk/gtkrc.c (_gtk_rc_context_get_default_font_name)
        * gtk/gtksettings.c (gtk_settings_notify):
        _gtk_rc_reset_styles => gtk_rc_reset_styles.
2004-02-26 20:59:01 +00:00
Matthias Clasen
a362428d2a Add chains to the parent's ::finalize() handler (#134901, Morten Welinder,
Sun Feb 22 03:03:29 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkaction.c: (gtk_action_finalize):
	* gtk/gtkclipboard.c: (gtk_clipboard_finalize):
	* gtk/gtkentrycompletion.c: (gtk_entry_completion_class_init),
	(gtk_entry_completion_finalize):
	* gtk/gtkfilechooserwidget.c: (gtk_file_chooser_widget_finalize):
	* gtk/gtkfilesystemmodel.c: (gtk_file_system_model_class_init),
	(gtk_file_system_model_finalize):
	* gtk/gtkicontheme.c: (gtk_icon_theme_class_init),
	(gtk_icon_theme_finalize):
	* gtk/gtktextchild.c: (gtk_text_child_anchor_finalize):
	* gtk/gtkuimanager.c: (gtk_ui_manager_class_init),
	(gtk_ui_manager_finalize):
	* modules/input/gtkimcontextxim.c: (gtk_im_context_xim_finalize):
	Add chains to the parent's ::finalize() handler  (#134901, Morten Welinder,
	patch by Jan Arne Petersen)
2004-02-22 02:06:49 +00:00
Owen Taylor
0c4c9f0d1c Remove an extraneous + 1 (#134015, Torsten Schoenfeld)
Thu Feb 12 17:59:52 2004  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkicontheme.c (gtk_icon_theme_get_search_path):
        Remove an extraneous + 1 (#134015, Torsten Schoenfeld)
2004-02-12 23:06:30 +00:00
Federico Mena Quintero
ffbd6220fe Fixes #134051.
2004-02-11  Federico Mena Quintero  <federico@ximian.com>

	Fixes #134051.

	* gtk/gtkicontheme.c (struct _GtkIconInfo): Remove the ref_count field.
	(icon_info_new): Don't initialize the ref_count field.
2004-02-11 16:54:47 +00:00
Federico Mena Quintero
eb1c785d4f Shift the array correctly. Fixes #134055, patch by Tosten Schoenfeld
2004-02-11  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkicontheme.c (gtk_icon_theme_prepend_search_path): Shift
	the array correctly.  Fixes #134055, patch by Tosten Schoenfeld
	<kaffeetisch@gmx.de>.
2004-02-11 16:28:22 +00:00
Owen Taylor
1b2ff84cbf Patch from Christian Neumair to make warning string more translator
Thu Jan 22 18:45:26 2004  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkicontheme.c: Patch from Christian Neumair
        to make warning string more translator friendly.

        * gtk/gtktreemodelfilter.h gtkseparatortoolitem.[ch]
        gtk/gtktoolbar.c: Parameter name fixes to keep gtk-doc
        happy.

        * configure.in: Require GLib-2.3.2, version 2.3.2,
        interface age 0, binary age 302.

        * NEWS: Organized, added some names.
2004-01-22 23:47:42 +00:00
Jody Goldberg
245308c38c add stock indent, unindent I would have prefered outdent, but
2004-01-05  Jody Goldberg <jody@gnome.org>

	* gtk/gtkiconfactory.c (get_default_icons) : add stock indent, unindent
	  I would have prefered outdent, but compatibility seems more
	  important.
	* gtk/gtkstock.c (builtin_items) : ditto.
	* gtk/gtkstock.h : ditto.
	* gtk/stock-icons/Makefile.am : ditto.
	* gtk/stock-icons/stock_text_indent_16.png :
	* gtk/stock-icons/stock_text_indent_24.png :
	* gtk/stock-icons/stock_text_unindent_16.png :
	* gtk/stock-icons/stock_text_unindent_24.png : from gnome-icon-theme

2003-12-18  Jody Goldberg <jody@gnome.org>

	* gtk/gtkicontheme.c (gtk_icon_theme_lookup_icon)) : Add a sanity test
	  to ensure that the base hicolor theme is installed.  Silently
	  failing to produce icons that apps assume exist in the theme seems
	  like a bad idea.
2004-01-20 16:32:54 +00:00
Alexander Larsson
0fe8b2d6d5 Fix typo that used the wrong x/y values for the x1, y1 point
2003-12-18  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtkicontheme.c (gtk_icon_info_get_embedded_rect):
	Fix typo that used the wrong x/y values for the x1, y1 point
2003-12-18 16:08:01 +00:00
Owen Taylor
85c05a86c0 === Released 2.3.1 ===
Mon Dec  8 10:54:44 2003  Owen Taylor  <otaylor@redhat.com>

        * === Released 2.3.1 ===

        * NEWS: Updates for 2.3.1

        * configure.in: Version 2.3.1, interface age 0, binary age 301.

        * gtk/gtkmenuitem.c (gtk_menu_item_can_activate_accel):
        Rename from gtk_menu_item_real_can_activate_accel() to
        match GTK+ convention, improve comment.

        * gtk/gtkwidget.c: Document gtk_widget_can_activate_accel(),
        can ::can-activate-accel signal.

        * gtk/gtkwidget.c (closure_accel_activate): Fix spelling
        in comment.

        * gtk/gtkmenu.c (gtk_menu_real_can_activate_accel): Clean
        up comment.

        * gtk/gtkcellview{,menuitem}.[ch]: Move GET_PRIVATE() macros
        into the .c file.

Mon Dec  8 12:09:21 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkicontheme.c (find_builtin_icon): Fix a
        missing 'else'. (#128816, Jorn Baayen)
2003-12-08 22:55:03 +00:00
Matthias Clasen
ba288650cd Don't crash if icon_theme_builtin_icons hasn't been initialized. (#128726,
Sun Dec  7 23:45:40 2003  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkicontheme.c (gtk_icon_theme_has_icon): Don't crash if
	icon_theme_builtin_icons hasn't been initialized.  (#128726, Diego
	Gonzalez)
2003-12-07 22:53:22 +00:00
Matthias Clasen
99a9ad8ce9 Use GTK_DATADIR/{icons,pixmaps} instead of
Thu Nov 13 01:46:32 2003  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkicontheme.c (gtk_icon_theme_init): Use
	GTK_DATADIR/{icons,pixmaps} instead of
	GTK_DATA_PREFIX/{icons,pixmaps}.  (#123365, Marco Pesenti Gritti)
2003-11-13 00:48:03 +00:00
Matthias Clasen
6e6d780b8c Mark as 2.4 additions.
Sat Nov  8 01:50:17 2003  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkicontheme.c:
	* gtk/gtkfilechooserwidget.c (gtk_file_chooser_widget_new):
	* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_new):
	* gtk/gtkfilechooser.c (gtk_file_chooser_[un]select_all): Mark as
	2.4 additions.
2003-11-08 00:51:10 +00:00
Hans Breuer
364272b5b9 new file to build it all ... added to EXTRA_DIST
2003-07-20  Hans Breuer  <hans@breuer.org>

	* makefile.msc : new file to build it all
	* Makefile.am : ... added to EXTRA_DIST

	* gdk/makefile.msc gtk/stock-icons/makefile.msc
	  gtk/makefile.msc.in tests/makefile.msc : updated

	* gdk/gdk.def gtk/gtk.def : export a bunch of new
	functions

	* gtk/gtkbbox.c : use g_return_val_if_fail() if
	there is a value to return

	* gtk/gtkfontsel.c gtk/gtkiconfactory.c :
	static correctness

	* gtk/gtkicontheme.c : ported to use GTimeVal instead of
	struct timeval and GTK_DATA_PREFIX instead of GTK_DATADIR

	* gtk/gtkicontheme.c : use HAVE_LC_MESSAGES

	* gtk/gtkimmulticontext.c : use gtkprivate.h

	* gtk/stock-icons/stock_color_picker_25.png
	  gtk/stock-icons/stock_jump_to_rtl_16.png
	  gtk/stock-icons/stock_jump_to_rtl_24.png
	  gtk/stock-icons/stock_redo_rtl_16.png
	  gtk/stock-icons/stock_redo_rtl_24.png
	  gtk/stock-icons/stock_undelete_rtl_16.png
	  gtk/stock-icons/stock_undelete_rtl_24.png
	  gtk/stock-icons/stock_undo_rtl_16.png :
	  gtk/stock-icons/stock_undo_rtl_24.png :
	readded as binary
2003-07-20 15:50:14 +00:00
Matthias Clasen
aa013939bf Use g_strfreev() to free mime_types. (#117219, Steve Chaplin)
2003-07-11  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkicontheme.c (pixbuf_supports_svg): Use g_strfreev() to free mime_types.
	(#117219, Steve Chaplin)

	* queryloaders.c (query_module): Handle absolute filenames properly. (#117170, Jens Elkner)

	* gdk-pixbuf-io.c: Mention that NULL-terminated arrays returned by
	gdk_pixbuf_format_get_mime_types() and gdk_pixbuf_format_get_extensions() must be
	freed with g_strfreev().
2003-07-11 20:36:25 +00:00
Soeren Sandmann
1f8942769b Insert cast to fix warning. Assign something to old_value to quiet gcc
Thu Jul  3 03:13:20 2003  Soeren Sandmann  <sandmann@daimi.au.dk>

	* gtk/gtkpaned.c (gtk_paned_set_child_property): Insert cast to
	fix warning. Assign something to old_value to quiet gcc

	* gtk/gtkcalendar.c
	(start_spinning): gtk_timeout_add->g_timeout_add

	* gtk/gtkicontheme.c
	(theme_lookup_icon): Make it compile (remove double semicolon)

	* gtk/gtktoolbutton.c
	(gtk_tool_button_class_init): Long comment about properties.
	(gtk_tool_button_class_init): Improve text for "use_underline"
	property
	(gtk_tool_button_create_menu_proxy): Fix up to use_mnemonic based
	on whether the passed-in label has use_mnemonic set
	(gtk_tool_button_create_menu_proxy): Split image cloning out in
	new function. Make that function also handle image with pixbuf
	storage.
	(gtk_tool_button_construct_contents): Use gtk_widget_destroy()
	instead of gtk_container_remove().
	(gtk_tool_button_construct_contents): Fix eliding bug

	* gtk/gtktoolbar.c
	(gtk_toolbar_finalize): New function. Unref tooltips, pointed out
	by Morten Welinder
	(gtk_toolbar_button_press): Make popup_context_menu signal provide
	coordinates and button number

	* tests/testtoolbar.c (main): Add new pixbuf toolbutton

	* tests/apple-red.png: new file
2003-07-03 01:02:04 +00:00
Owen Taylor
a72aed4ea2 Implement a loader for named themed icon based on from gnome-desktop
Wed Jul  2 18:00:56 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkicontheme.[ch]: Implement a loader for
        named themed icon based on from gnome-desktop library
        by Alex Larsson.

        * gtk/gtkiconthemeparser.[ch]: .ini file parsing code
        from gnome-desktop.

        * gtk/gtkiconfactory.[ch]: Add
        gtk_icon_source_set/get_icon_name() to allow stock icons
        to be based off of named theme icons.

        * gtk/gtkiconfactory.c: Rework sources so that the source
        is *either* a pixbuf, or a filename, or an icon name,
        instead of the pixbuf/filename mix it was before. Put a
        workaround for get_pixbuf() so that it can return the
        filename pixbuf, e.g, for render_icon().

        * gtk/gtkiconfactory.c: Make the default setup use
        themed icons, and add builtin icons to the default
        icon theme for all the standard pixbufs, so we
        don't rely on actually having an icon theme on disk.

        * gtk/gtkrc.c: Add support for @"icon-name" to specify
        a themed icon for a stock icon source.

        * tests/Makefile.am test/testicontheme.c: Add a test
        program from gnome-desktop.

        * gdk/x11/gdkevents-x11.c gtk/gtksettings.c: Add
        Net/IconThemeName / gtk-icon-theme-name setting.

        * gtk/gtkiconfactory.c (ensure_cache_up_to_date): Actually
        update the icon cache serial so we don't continually

        * gtk/gtkwidget.c: Fix a couple of references in doc comments
        to ::direction_set that should have been to ::direction-changed
2003-07-02 22:44:09 +00:00