Commit Graph

79 Commits

Author SHA1 Message Date
Alexander Larsson
e274dbbdce Ensure we always grab the gdk lock in async callbacks
Async callbacks are delivered in idles, so we need to make sure
we get the gdk lock before calling any gdk/gtk stuff. This was
missing in a few places.
2011-03-28 12:49:17 +02:00
Matthias Clasen
39d4207ab7 Use existing mime type for GTK_FILE stock icon
document-x-generic is not actually a mimetype. Using text-x-generic
instead lets us work out-of-the-box in a11y themes.
2011-03-06 00:31:20 -05:00
Matthias Clasen
d9fcc4c630 Silence new gcc warnings
gcc 4.6.0 has started to warn about set-but-unused variables.
So don't do that, then.
2011-01-23 21:51:38 -05:00
Pavel Holejsovsky
2f0d40335b [GI] Add missing (transfer) annotations 2011-01-20 13:57:18 +01:00
Emmanuele Bassi
ce5a29bc38 recent-manager: Coalesce multiple changes
Since the ::changed implementation of GtkRecentManager implies a
synchronous write operation, when we receive multiple requests to emit a
::changed signal we might end up blocking.

This change coalesces multiple ::changed emission requests using the
following sequence:

  • the first request will install a timeout in 250 ms, which will
    emit the ::changed signal

  • each further request while the timeout has not been emitted
    will increase a counter

      ‣ if the counter reaches 250 before the timeout has been
        emitted, then the RecentManager will remove the timeout
        source and force a signal emission and reset the counter

This sequence should guarantee that frequent ::changed emission requests
are coalesced, and also guarantee that we don't let them dangle for too
long.

https://bugzilla.gnome.org/show_bug.cgi?id=616997
2010-10-22 18:08:48 +01:00
Christian Persch
b0fe3e49bb Add gtk_recent_info_get_gicon()
https://bugzilla.gnome.org/show_bug.cgi?id=617174
2010-10-22 11:58:00 +01:00
Emmanuele Bassi
27b71e0143 recent-manager: Fix the documentation
The default RecentManager is not destroyed at the end of the process.

https://bugzilla.gnome.org/show_bug.cgi?id=602794
2010-10-22 11:54:53 +01:00
Emmanuele Bassi
03fc0dd5ca recent-manager: Add RecentInfo.create_app_info()
A simple wrapper that makes it possible to create a GAppInfo from a
GtkRecentInfo blob.
2010-10-22 11:54:53 +01:00
Emmanuele Bassi
06758f1ab5 recent-manager: Move the file under XDG_USER_DATA
Do not use $HOME/.recently-used.xbel any more. No migration path is
included: we're breaking API anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=524304
2010-10-22 11:53:09 +01:00
Emmanuele Bassi
2cc059a0e7 Split off gtkprivate.h
The gtkprivate.h header contains GtkWidget-specific private symbols that
are not useful except in a handful of cases. Basically everything
includes gtkprivate.h for the GTK_PARAM_* macros.

https://bugzilla.gnome.org/show_bug.cgi?id=632539
2010-10-20 10:34:26 +01:00
Matthias Clasen
dbdc9c99e5 Make GtkRecentManager use standard icon names for themed icons 2010-10-13 10:18:03 -04:00
Matthias Clasen
e0aa12eb0a Tons of transfer annotations 2010-09-21 00:18:11 -04:00
Christian Persch
ffa07ee21e Use G_DEFINE_BOXED_TYPE
Bug #627214.
2010-08-18 15:34:47 +02:00
Javier Jardón
133f0744b9 docs: gitignore GtkRecentManager .sgml template
THis completes commit 8eeeb97de6
2010-07-15 15:43:48 +02:00
Emmanuele Bassi
8eeeb97de6 docs: Inline GtkRecentManager documentation 2010-07-15 09:10:55 +01:00
Javier Jardón
cfa241a891 Remove GtkRecenManager:limit deprecated property 2010-07-15 03:12:12 +02:00
Javier Jardón
678e738f8d Deprecate GtkRecenManager::limit property
The :limit property of GtkRecentManager does not serve any useful
purpose: the length of the list should be managed by the view
(implementing GtkRecentChooser), and not by the model (the recent
manager).

https://bugzilla.gnome.org/show_bug.cgi?id=624333
2010-07-15 02:40:28 +02:00
Javier Jardón
f17a345998 gtkrecentmanager: unseal private pointer 2010-07-13 19:40:49 +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
Christian Dywan
032b38ccfd Remove deprecated GtkRecentManager functions 2010-05-03 01:40:41 +02: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
Matthias Clasen
362127c33c Fix the docs for gtk_recent_info_get_application_info()
The documentation for the function says that the app_exec string
should be freed, but we return a pointer to the internal string
without duplicating it. Since the app_exec string is valid as long
as the GtkRecentInfo is valid the documentation should be fixed
and the out argument should be constified. Fixes #584832.
2009-06-15 18:25:04 -04:00
Emmanuele Bassi
66459b2502 Bug 545031 – list of recently used files is created world-readable
2008-08-07  Emmanuele Bassi  <ebassi@gnome.org>

	Bug 545031 – list of recently used files is created world-readable

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_real_changed): Set the recently-used.xbel
	file to 0600. (Guido Berhoerster)

svn path=/trunk/; revision=21028
2008-08-07 00:54:01 +00:00
Emmanuele Bassi
1db0192042 Use GSlice to allocate the application data for recently used resources;
2008-07-21  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(recent_app_info_new), (recent_app_info_free): Use GSlice to
	allocate the application data for recently used resources;
	do not call time() to initialize the timestamp, as it will
	be overwritten anyway later. (#535223, Michael Meeks)

svn path=/trunk/; revision=20884
2008-07-21 13:37:15 +00:00
Cody Russell
57223c9a05 Revert name change
svn path=/trunk/; revision=20724
2008-07-01 22:57:50 +00:00
Cody Russell
fce9c8b7d4 Practically everything changed.
2008-06-30  Cody Russell  <bratsche@gnome.org>

        * Practically everything changed.

        Change	all references	of GIMP	Toolkit	(and variations	of it)
        to GTK+	Toolkit, showing no mercy at all to our	beloved
	ancestry. (#540529)


svn path=/trunk/; revision=20709
2008-06-30 23:01:56 +00:00
Carlos Garnacho
b3bb8c47b5 Fix two potential critical warnings. Bug #539470.
2008-06-27  Carlos Garnacho  <carlos@imendio.com>

        * gtk/gtkrecentmanager.c (get_icon_for_mime_type): Fix two potential
        critical warnings. Bug #539470.

svn path=/trunk/; revision=20696
2008-06-27 15:33:42 +00:00
Matthias Clasen
e1c47e2ee0 Use GIO for this.
* gtk/gtkrecentmanager.c (get_icon_for_mime_type): Use GIO
        for this.

svn path=/trunk/; revision=20472
2008-06-19 19:04:22 +00:00
Emmanuele Bassi
21284ce95f Fix dumb typo in the previous commit.
2008-06-17  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_remove_item): Fix dumb typo in the previous
	commit.

svn path=/trunk/; revision=20425
2008-06-17 13:46:48 +00:00
Emmanuele Bassi
8bab0d7d03 Increase the consistency of the errors returned by GtkRecentManager.
2008-06-17  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_remove_item),
	(gtk_recent_manager_move_item): Increase the consistency of the
	errors returned by GtkRecentManager. (Paolo Borelli)

svn path=/trunk/; revision=20424
2008-06-17 13:42:53 +00:00
Emmanuele Bassi
88c469420d Consistently use the same error when removing a URI from an empty
2008-06-17  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_remove_item): Consistently use the same
	error when removing a URI from an empty GtkRecentManager.

svn path=/trunk/; revision=20422
2008-06-17 13:15:45 +00:00
Matthias Clasen
e0ca75c120 Replace uses of xdgmime with g_content_type.
2008-06-08  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkrecentmanager.c:
        * gtk/gtkrecentfilter.c:
        * gtk/gtkfilefilter.c: Replace uses of xdgmime with
        g_content_type.


svn path=/trunk/; revision=20332
2008-06-08 05:50:46 +00:00
Emmanuele Bassi
c515ec92e8 Bug 535830 – wrong content type adding an item
2008-05-31  Emmanuele Bassi  <ebassi@gnome.org>

	Bug 535830 – wrong content type adding an item

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_add_item_query_info): Use the correct API
	for retrieving the fast MIME type of a URI. (Carlos Garcia
	Campos)

svn path=/trunk/; revision=20262
2008-05-31 18:52:50 +00:00
Emmanuele Bassi
6d683653db Keep the default storage file in $HOME, as we don't have a migration code
2008-04-18  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_set_filename): Keep the default storage
	file in $HOME, as we don't have a migration code in place yet.

svn path=/trunk/; revision=20020
2008-04-18 13:25:49 +00:00
Michael Natterer
60b839bda8 g_strfreev() the uris returned by g_bookmark_file_get_uris().
2008-04-18  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkrecentmanager.c (gtk_recent_manager_clamp_to_age):
	g_strfreev() the uris returned by g_bookmark_file_get_uris().


svn path=/trunk/; revision=20019
2008-04-18 13:05:56 +00:00
Emmanuele Bassi
7b93b76efa Fix last commit, and complete the gtk-recent-files-max-age semantics: if
2008-04-15  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_real_changed): Fix last commit, and
	complete the gtk-recent-files-max-age semantics: if the
	property is set to 0 then purge the list.

svn path=/trunk/; revision=20007
2008-04-15 22:46:15 +00:00
Emmanuele Bassi
beb54a9b39 Bug 488507 – boundless growth of .recently-used.xbel file slows down
2008-04-15  Emmanuele Bassi  <ebassi@gnome.org>

	Bug 488507 – boundless growth of .recently-used.xbel file
	slows down applications

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_init),
	(gtk_recent_manager_real_changed),
	(gtk_recent_manager_set_filename),
	(gtk_recent_manager_clamp_to_age): Clamp the recently
	used resources list by the age of its items, using
	the newly added GtkSettings property.

	* gtk/gtksettings.c (gtk_settings_class_init): Add the
	gtk-recent-files-max-age property, controlling the
	maximum age of the items in the recently used resources
	list.

svn path=/trunk/; revision=20006
2008-04-15 22:37:32 +00:00
Emmanuele Bassi
c31e252030 Emit the ::changed signal at the end of the asynchronous MIME type query.
2008-04-15  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_add_item_query_info),
	(gtk_recent_manager_add_item): Emit the ::changed signal
	at the end of the asynchronous MIME type query.

svn path=/trunk/; revision=20005
2008-04-15 22:31:01 +00:00
Emmanuele Bassi
afdb3f5a39 Bug 487375 – gtkrecent apps poll ~/.recently-used.xbel every 5 seconds
2008-04-15  Emmanuele Bassi  <ebassi@gnome.org>

	Bug 487375 – gtkrecent apps poll ~/.recently-used.xbel
	every 5 seconds

	* gtk/gtkrecentmanager.c: Use GFileMonitor to check for
	changes in the recently used resources storage file, and
	drop the timeout-based poll.

	* ChangeLog: Fix attribution of the patch of the previous
	commit.

svn path=/trunk/; revision=20004
2008-04-15 22:22:44 +00:00
Emmanuele Bassi
9b2656f793 Bug 506062 – gtk_recent_manager_add_item does not detect mime type on
2008-04-15  Emmanuele Bassi  <ebassi@gnome.org>

	Bug 506062 – gtk_recent_manager_add_item does not detect mime
	type on Windows

	* configure.in: Depend on gio-2.0

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_add_item_query_info_cb),
	(gtk_recent_manager_add_item): Use GIO to (asynchronously) query
	the MIME type of the passed URI.

svn path=/trunk/; revision=20003
2008-04-15 22:00:17 +00:00
Emmanuele Bassi
3ca1e0cd2d Document that you need to unref the returned GdkPixbuf. (#484132,
2007-10-10  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c (gtk_recent_info_get_icon): Document
	that you need to unref the returned GdkPixbuf. (#484132,
	Christian Persch)

	(build_recent_info): Use g_slist_prepend() when building
	the applications list.

svn path=/trunk/; revision=18904
2007-10-10 09:31:36 +00:00
Emmanuele Bassi
ba56e7dd57 Remove the stat() time barrier, as it seems to cause bug #463907 (thanks
2007-09-03  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c
	(gtk_recent_manager_poll_timeout): Remove the stat() time barrier,
	as it seems to cause bug #463907 (thanks to Sebastien Bacher).

svn path=/trunk/; revision=18713
2007-09-03 09:49:59 +00:00
Matthias Clasen
13277b42e2 Apply a patch by Emmanuele Bassi to limit the number of shown recent
2007-07-20  Matthias Clasen  <mclasen@redhat.com>

        Apply a patch by Emmanuele Bassi to limit the number
        of shown recent files.  (#439715)

        * gtk/gtksettings.c: Add a setting for the number
        of recent files to display by default.

        * gtk/gtkrecentchooserdefault.c:
        * gtk/gtkfilechooserdefault.c: Respect the limit.

        * gtk/gtkrecentmanager.c: Remove the poll timeout in
        dispose, and do not stat more often than every 5 seconds.

        * gtk/gtkrecentchooserutils.c:
        * gtk/gtkrecentchoosermenu.c: Cleanups

        * tests/testrecentchoosermenu.c: Test limits.


svn path=/trunk/; revision=18510
2007-07-20 10:39:03 +00:00
Matthias Clasen
a6f92ce4b0 Avoid gratitious use of g_strdup_printf().
2007-07-13  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkrecentmanager.c (get_uri_shortname_for_display): Avoid
        gratitious use of g_strdup_printf().

        * gtk/gtkrecentchooserdefault.c:
        * gtk/gtkrecentchoosermenu.c: Mark some strings for
        translation.  (#439480, Murray Cumming)



svn path=/trunk/; revision=18465
2007-07-13 16:34:05 +00:00
Matthias Clasen
eac947deea Fix doc formatting
svn path=/trunk/; revision=18430
2007-07-10 05:40:05 +00:00
Emmanuele Bassi
612d8729a2 Do not cache the icon pixbufs but rely on the GtkIconTheme not to hit the
2007-06-29  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c (get_icon_for_mime_type): Do not
	cache the icon pixbufs but rely on the GtkIconTheme not to
	hit the disk cache too much (should tentatively fix #426987).

svn path=/trunk/; revision=18288
2007-06-29 14:51:13 +00:00
Emmanuele Bassi
970988756e building a GtkRecentInfo can never fail.
2007-06-25  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(build_recent_info): building a GtkRecentInfo can never fail.

	(gtk_recent_manager_get_items): Clamp the list while building
	it so we don't need to traverse it more than once. (#446532,
	Philip Withnall)

svn path=/trunk/; revision=18228
2007-06-25 16:15:21 +00:00
Emmanuele Bassi
ca0ad88892 Use g_timeout_add_seconds_full() for the timed poll of the storage file,
2007-06-19  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c: Use g_timeout_add_seconds_full() for
	the timed poll of the storage file, since we are using multiple
	seconds intervals and we don't actually care about millisecond
	precision.

	(threads_dispatch), (threads_free), (gtk_recent_manager_init),
	(gtk_recent_manager_set_filename): Roll our own version of
	gdk_threads_add_timeout() using g_timeout_add_seconds_full()
	while holding the GDK main lock.

svn path=/trunk/; revision=18185
2007-06-19 10:59:37 +00:00
Emmanuele Bassi
232e79a6d7 Use a static variable to hold the singleton and remove the code that binds
2007-06-19  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c: Use a static variable to hold the
	singleton and remove the code that binds a recent manager to
	a GdkScreen.

	(gtk_recent_manager_set_screen): Make it a NOOP.
	(gtk_recent_manager_get_for_screen): Proxy for
	gtk_recent_manager_get_default().

	* gtk/gtk.symbols:
	* gtk/gtkrecentmanager.h: Deprecate gtk_recent_manager_set_screen()
	and gtk_recent_manager_get_for_screen().

	* gtk/gtkmain.c: Force a synchronisation of the GtkRecentManager
	singleton (if any) when reaching main loop depth of 0.

	* gtk/gtkrecentchooserdefault.c:
	(gtk_recent_chooser_default_dispose): Disconnect the changed
	signal only if we have a manager and we are connected to it.

	(set_recent_manager): Ditto.

	* README.in: Document the deprecations.

svn path=/trunk/; revision=18184
2007-06-19 10:29:55 +00:00