J. Ali Harlow [Mon, 22 Mar 2004 21:28:07 +0000 (21:28 +0000)]
Ignore empty volume labels; assume that GetVolumeInformation would fail if
2004-03-22 J. Ali Harlow <ali@juiblex.co.uk>
* gtk/gtkfilesystemwin32.c
(gtk_file_system_win32_volume_get_display_name): Ignore empty
volume labels; assume that GetVolumeInformation would fail if
GetVolumeInformationW does; catches a small memory leak;
pass the buffer size to GetVolumeInformationW in wide
characters instead of bytes. Fixes bug #137543
(list_volumes): Cope with the theoretical possibility of
more than 26 logical drives. Fixes bug #137940
(bookmarks_serialize): Now actually removes bookmarks.
Fixes bug #137943
Tor Lillqvist [Sun, 21 Mar 2004 22:06:37 +0000 (22:06 +0000)]
Include the backslash. Otherwise gtk_file_system_win32_path_to_uri()
2004-03-21 Tor Lillqvist <tml@iki.fi>
* gtk/gtkfilesystemwin32.c
(gtk_file_system_win32_volume_get_base_path): Include the
backslash. Otherwise gtk_file_system_win32_path_to_uri() returns
NULL for a volume base path, as g_filename_to_uri() requires an
absolute path, and just a drive letter and colon isn't. (#137543)
Hans Breuer [Sat, 20 Mar 2004 23:45:35 +0000 (23:45 +0000)]
applied the undisputable and required [due to recent gtkfilesystem
2004-03-20 Hans Breuer <hans@breuer.org>
* gtk/gtkfilesystemwin32.c : applied the undisputable and
required [due to recent gtkfilesystem internal api semantic
changes] part of patches to fix bug #137543 (Tor Lillqvist,
J. Ali Harlow)
* gdk/gdkevents-win32.c (handle_configure_event) :
(gdk_event_translate), WM_WINDOWPOSCHANGED : initialize
GdkWindowObject::x, y with screen coords to make
gdk_window_get_position () return the right thing and thus fix
drag and drop positioning (e.g. Gimp tabs, fixes bug #137192)
2004-03-19 Federico Mena Quintero <federico@ximian.com>
Fix #137520.
* gtk/gtkfilesystem.h (struct _GtkFileFolderIface): Added slots
for an ::is_finished_loading() method and a ::finished_loading()
signal at the end of the struct.
* gtk/gtkfilesystem.c (gtk_file_folder_base_init): Create the
"finished-loading" signal.
(gtk_file_folder_is_finished_loading): New function.
* gtk/gtkfilesystemmodel.c (struct _GtkFileSystemModelClass): New
slot for a "finished-loading" signal.
(gtk_file_system_model_class_init): Create the "finished-loading"
signal.
(struct _GtkFileSystemModel): New field
idle_finished_loading_source. We emit the "finished-loading"
signal in an idle if the root folder was done loading right in
_gtk_file_system_model_new(), so that the caller has a chance to
connect to the signal.
(_gtk_file_system_model_new): Connect to the normal signals of the
folder even if the initial _list_children() fails. Also, see if
the folder is finished loading; connect to the "finished-loading"
signal otherwise.
(gtk_file_system_model_finalize): Remove the idle handler.
* gtk/gtkfilechooserdefault.c (set_list_model): Set a busy cursor
and connect to the model's "finished-loading" signal.
(get_toplevel): New helper function.
(error_message): Use get_toplevel().
(trap_activate_cb): Likewise.
(location_popup_handler): Likewise.
(set_busy_cursor): New function.
(browse_files_model_finished_loading_cb): New callback.
Morten Welinder [Wed, 17 Mar 2004 15:34:21 +0000 (15:34 +0000)]
Do nothing if we have no screen. Fixes #137260.
2004-03-17 Morten Welinder <terra@gnome.org>
* gtk/gtkfilechooserdefault.c (check_icon_theme): Do nothing if we
have no screen. Fixes #137260.
(shortcuts_add_bookmark_from_path): Simplify using check_is_folder
thereby fixing leak. Fixes #137259.
Morten Welinder [Wed, 17 Mar 2004 15:29:06 +0000 (15:29 +0000)]
Make this work when the slider buttons have been destroyed.
2004-03-17 Morten Welinder <terra@gnome.org>
* gtk/gtkpathbar.c (gtk_path_bar_forall): Make this work when the
slider buttons have been destroyed.
(gtk_path_bar_remove): Make this work for slider buttons too.
Fixes http://bugzilla.gnome.org/show_bug.cgi?id=137257
Matthias Clasen [Wed, 17 Mar 2004 00:17:07 +0000 (00:17 +0000)]
Move the repositioning logic from _gtk_entry_completion() popup over here.
Wed Mar 17 01:20:28 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkentrycompletion.c (_gtk_entry_completion_resize_popup):
Move the repositioning logic from _gtk_entry_completion() popup
over here. Fixes #137355, reported by Niklas Knutsson.
Matthias Clasen [Mon, 15 Mar 2004 23:56:44 +0000 (23:56 +0000)]
Block the ::changed handler during the emission of ::match-selected.
Tue Mar 16 00:56:11 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkentrycompletion.c (gtk_entry_completion_list_button_press):
Block the ::changed handler during the emission of ::match-selected.
Partial fix for #137226.
* gtk/gtkfilechooserentry.c: Remove the no longer needed
no_pop_down flag.
Only hide the "create folder" button in OPEN mode; all the others should
2004-03-15 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (update_appearance): Only hide the
"create folder" button in OPEN mode; all the others should show it
it.
(get_paths_foreach): Handle the editable row.
* gtk/gtkfilesystemunix.c (gtk_file_system_unix_create_folder):
Force a re-get of the folder so that the new directory gets added
to its hash table of file info.
In the Save modes, set the Name entry of the file chooser if we get a
2004-03-15 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (update_from_entry): In the Save
modes, set the Name entry of the file chooser if we get a
nonexistent filename from the file entry. Fixes #135911.
(gtk_file_chooser_default_set_current_name): Oops, this should
also work if we are in CREATE_FOLDER mode.
* gtk/gtkfilesystem.c (gtk_file_path_real_copy): Use
gtk_file_path_copy().
* gtk/gtkfilechooserentry.c (check_completion_callback): Free the
path that we got from the model.
(completion_match_func): Use DISPLAY_NAME_COLUMN rather than a
hard-coded constant.
Only show the title string in OPEN/SELECT_FOLDER mode as it's
Mon Mar 15 12:51:17 2004 Jonathan Blandford <jrb@gnome.org>
* gtk/gtkfilechooserdefault.c (location_popup_handler): Only show
the title string in OPEN/SELECT_FOLDER mode as it's open-specific.
Put a blank title for SAVE/CREATE_FOLDER; we are in string freeze,
so we'll fix it for 2.4.1 as #137272.
* gtk/gtkpathbar.c (gtk_path_bar_scroll_down): calculate
space_available correctly for RTL mode. w/o this, you can't
scroll down again. Fixes #137021.
2004-03-15 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkpathbar.c (gtk_path_bar_scroll_up): Queue a resize.
(gtk_path_bar_scroll_down): Likewise.
Owen Taylor [Mon, 15 Mar 2004 17:11:28 +0000 (17:11 +0000)]
Store the position of the file part and use that in
Mon Mar 15 11:40:43 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilechooserentry.c: Store the position of the
file part and use that in check_completion_callback()
and match_selected_callback() to figure out where
to operate on the text, rather than recomputing the
information.
set changing_folders to be true so we don't trigger a callback when we
Mon Mar 15 10:35:19 2004 Jonathan Blandford <jrb@gnome.org>
* gtk/gtkfilechooserdefault.c (shortcuts_add_volumes): set
changing_folders to be true so we don't trigger a callback when we
remove the selection
(shortcuts_add_bookmarks): ditto
Owen Taylor [Mon, 15 Mar 2004 14:57:54 +0000 (14:57 +0000)]
Check for Control-Tab or Control-Shift-Tab, not any Control-key as a
Mon Mar 15 09:54:36 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_focus): Check for
Control-Tab or Control-Shift-Tab, not any Control-key
as a current event ... handles the case where a dialog
is triggered from a control accelerator better.
Mon Mar 15 08:48:48 2004 Jonathan Blandford <jrb@gnome.org>
* gtk/gtkfilechooserentry.c (match_selected_callback): implement
correctly.
(completion_match_func): Allow surpressing popdowns.
(maybe_append_seperator_to_path): New function to add a separator
item to a display_name. Bad hack.
(check_completion_callback): Implement select-ahead as an idle.
(add_completion_idle): new function to handle select-ahead
(gtk_file_chooser_entry_do_insert_text): starf the select-ahead
idle.
(gtk_file_chooser_entry_focus): Override tab for completion.
(gtk_file_chooser_entry_activate): commit select_ahead when
activated.
* gtk/gtkfilechooserdefault.c (location_popup_handler): grab the
appropriate widget for the mode.
Tor Lillqvist [Mon, 15 Mar 2004 13:07:04 +0000 (13:07 +0000)]
Merges from stable branch that had been left out. (#136282, J. Ali Harlow)
2004-03-15 Tor Lillqvist <tml@iki.fi>
Merges from stable branch that had been left out. (#136282, J. Ali
Harlow)
Changes for run-time lookup of installation location on Win32:
* Makefile.am (INCLUDES): Define GTK_PREFIX as $(prefix).
* gdk-pixbuf-io.c (get_sysconfdir): New function, look up
installation location at runtime and deduce GTK_SYSCONFDIR
from it.
(get_toplevel): Similar, for the top-level installation directory.
(correct_prefix): Replace compile-time prefix with run-time
prefix.
(get_libdir): Remove, not used any longer.
(gdk_pixbuf_io_init): Call correct_prefix() on Win32.
* queryloaders.c (query_module): [Win32] Change backslahses into
slashes in path.
Tor Lillqvist [Mon, 15 Mar 2004 11:55:55 +0000 (11:55 +0000)]
Don't just copy the whole GdkGCWin32 with a single assignment, that
2004-03-15 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkgc-win32.c (gdk_gc_copy): Don't just copy the whole
GdkGCWin32 with a single assignment, that overwrites GObject's
private data (for instance ref_count). (#137012, John Ehresman)
Renamed from shortcuts_unselect_all(); now selects the row that
2004-03-15 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (shortcuts_find_current_folder):
Renamed from shortcuts_unselect_all(); now selects the row that
corresponds to the current folder, if any. Fixes #135916.
* gtk/gtkpathbar.h: Added prototypes for _gtk_path_bar_up() and
_gtk_path_bar_down().
Owen Taylor [Mon, 15 Mar 2004 06:09:40 +0000 (06:09 +0000)]
Implement local_only by filtering the shortcuts and bookmarks list by
Sun Mar 14 23:36:15 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilechooserdefault.c: Implement local_only by
filtering the shortcuts and bookmarks list by
gtk_file_system_path_to_filename (file_system, path) != NULL.
(#132894)
* gtk/gtkfilesystem.c (gtk_file_system_path_is_local): Add
a convenience function, may by interesting to push to the
file system vtable later for performance.
Allow the path to be NULL, so that people can ask for information about a
2004-03-14 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilesystem.c (gtk_file_folder_get_info): Allow the path
to be NULL, so that people can ask for information about a
parent-less file system root (e.g. get_info (get_folder ("/"), NULL)).
* gtk/gtkfilesystemunix.c (gtk_file_folder_unix_get_info): Allow
the condition describe above.
* gtk/gtkfilechooserdefault.c (get_file_info): Allow getting
information of root paths.
Owen Taylor [Mon, 15 Mar 2004 03:53:20 +0000 (03:53 +0000)]
Mention GtkTreeViewSearchEqualFunc return value oddity here as well.
Sun Mar 14 22:32:36 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_set_search_equal_func): Mention
GtkTreeViewSearchEqualFunc return value oddity here as well.
* gtk/gtktreeview.c (gtk_tree_view_search_equal_func): On failure
to get a string to compare to, return TRUE (no match), not
FALSE (match). Handle %NULL string values gracefully.
Remove unused variable. (#135962, Mark McLoughlin)
* gtk/gtkfilechooserdefault.c: Use _gtk_path_bar_up()/
_gtk_path_bar_down() as bindings for Alt-Up
and new Alt-Down. (Partly based on a patch by
Mark McLoughlin, #136987)
Fixes #136185, patch by Morten Welinder, with some changes.
2004-03-14 Federico Mena Quintero <federico@ximian.com>
Fixes #136185, patch by Morten Welinder, with some changes.
* gtk/gtkfilechooserdefault.c (check_is_folder): New helper function.
(shortcuts_insert_path): Check the path first with check_is_folder().
(gtk_file_chooser_default_set_current_folder): Likewise.
(gtk_file_chooser_default_add_shortcut_folder): Likewise.
(browse_widgets_create): Unref the size group.
* gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder):
Handle the case where the file exists but it is not a directory.
(IconType): Add value for ICON_UNDECIDED.
(struct stat_info_entry): New structure to hold a file's struct
stat, its MIME type and its icon type.
(struct _GtkFileFolderUnix): Added a hash of struct
stat_info_entry, and flags to remember which info types we've read
so far.
(get_icon_type): Use a helper function for the icons-from-stat
types.
(gtk_file_system_unix_render_icon): Use the cached file info.
(gtk_file_folder_unix_get_info): Put the info in the cache.
(gtk_file_system_unix_get_folder): Create the cache of file info
structures.
* gtk/gtkfilesystem.c (gtk_file_info_set_display_name): Handle the
case where display_name is the same as the existing
info->display_name.
Owen Taylor [Mon, 15 Mar 2004 02:03:59 +0000 (02:03 +0000)]
#136672, reported by Christian Persch; fixes based on a patch by Soeren
Sun Mar 14 19:26:48 2004 Owen Taylor <otaylor@redhat.com>
#136672, reported by Christian Persch; fixes based
on a patch by Soeren Sandmann.
* gtk/gtkmenu.c: Change the handling of mixed gridded
and non-gridded menu items; the old method was causing
major performance problems even with the "avoid relayout
on destruction" hack put in recently.
Now we first lay out the gridded items and then put the
non-gridded items into empty rows / after the gridded items.
Layout is done in a central menu_shell_ensure_layout(). Also
avoid emitting property notifications when we initially
insert or attach items.
* gtk/gtkmenushell.[ch] gtk/gtkmenu.c: Stop setting the
unused menu_shell->menu_flag, and document it as unused
in the header.
* tests/testactions.c: Add a test of creating/removing
lots of items.
* test/testgtk.c: Add some more cruft to the menu test.