Wed Jan 27 03:14:46 1999 Timur Bakeyev <mc@bat.ru>
* Converted memory managment to Glib - where it wasn't done. Now we
use g_new()/g_malloc()/g_strdup()/g_free() routings. copy_strings() re-
placed by g_strconcat(), and sprintf() by g_snprintf(). Some other,
minor changes.
* gscreen.c (panel_setup_drag_scroll): Renamed from
panel_setup_drag_motion().
(panel_clist_drag_motion): Use gdnd_validate_action().
(panel_clist_motion): Return immediately if the event window is
not the clist_window. Otherwise, forward the event to
panel_widget_motion().
* gdnd.c (gdnd_find_panel_by_drag_context): New public function to
find a panel based on a drag context. This is basically the old
find_panel_owning_window() made public.
(gdnd_drop_on_directory): Test for the source widget being a tree,
and if so, do not use the default behavior for panels.
(gdnd_validate_action): New function to compute the final drag
action given some conditions. This is now used to make dragging
behavior consistent across the desktop and the file panels.
* gdnd.c (get_action): Sensitize the menu items based on the
allowed actions in the drag context.
(actions): Add some underlined accelerators for the action menu.
* gdesktop.c (icon_drag_motion): Use S_ISDIR() in addition to
fe->f.link_to_dir.
* gscreen.c (panel_file_list_scrolled): Removed this function, as
it was not used for anything useful.
* gdnd.c (gdnd_drop_on_directory): Duh. Use context->action, not
context->suggested_action.
1999-01-25 Federico Mena Quintero <federico@nuclecu.unam.mx>
* Makefile.am (libvfs_la_SOURCES): Added utilvfs.h.
* Make-mc.in (VFSHDRS): Likewise.
* gdesktop.c (desktop_drag_data_received): Do not force links on
the desktop.
* gscreen.c (panel_create_file_list): Do not use
GTK_DEST_DEFAULT_ALL for the drop site. Only use
GTK_DEST_DEFAULT_DROP, since we need to check motion ourselves.
(panel_clist_drag_motion): Do not allow dropping on the clist buttons.
(panel_clist_button_press): Do not assign the
panel->maybe_drag_start flag if the user clicked outside the clist_window.
* gdesktop.h: Removed old crud (desktop_icon_t, icon_t).
* gscreen.c (panel_create_file_list): Added GDK_ACTION_ASK to the
destination actions.
(panel_create_icon_display): Likewise.
(panel_create_tree_view): Likewise.
* gdesktop.c (desktop_drag_motion): If the user explicitly
requested action ASK, then do not make feedback show MOVE.
* gscreen.c (panel_widget_motion): Pass in all drag actions now
that Gtk handles button 2 by itself.
* gicon.h (gicon_image_to_name): Added prototype for
gicon_image_to_name().
* gicon.c (gicon_get_icon_for_file):
(gicon_get_icon_for_file_speed): Added a "directory" argument.
It is needed because the file_entry structure only contains the
pruned filename, and we need the complete name for the metadata
functions.
* gdesktop.c (desktop_icon_info_new): Pass the directory to
gicon_get_icon_for_file_speed().
* gpageprop.c (item_properties): Build the directory name and pass
it to gicon_get_icon_for_file_speed().
* gscreen.c: Do not #include "directory.xpm". Do #include "setup.h".
Removed unused function button_switch_to().
* gscreen.c (panel_fill_panel_icons): Pass the directory to
gicon_get_icon_for_file().
* gscreen.c (panel_create_tree_view): Allow button 2 to start the
drag as well.
(panel_clist_scrolling_is_desirable): Make both scrolling
thresholds consistent. Also, do not allow scrolling past the
correct limit.
(panel_icon_list_scrolling_is_desirable): Likewise.
(panel_tree_scrolling_is_desirable): Likewise.
(panel_clist_scroll): Do not allow scrolling past the correct limits.
(panel_icon_list_scroll): Likewise.
(panel_tree_scroll): Likewise.
* gdialogs.c (file_op_context_create_ui): OP_DELETE now has it's
very own dialog. whee.
* gscreen.c (panel_create_pixmaps): now we use dir-open.xpm
instead of the (apparently) ugly yellow one.
* gscreen.c (x_create_panel): chnaged padding on the Filter label
(do_ui_signal_connect): new view switching code. Toolbar now works
(go_home): new function -- takes one home
* gcmd.c (gnome_open_files): now you can open multiple files.
* glayout.c: layout changed some. moved run command.
commented out ftplink/mkdir command for now. gonna do mkdir
next. Why is the ftplink command needed?
* gscreen.c (panel_icon_list_drag_data_received): Do not update
contents if nothing was done (ie, the drop was cancelled).
(panel_create_file_list): Duh. Restore this, as, ahem, we dont
have banding selection on CList.
(panel_icon_list_select_icon): Open the new panel only on button
release.
(panel_file_list_select_row): New panel started on clist when you
press middle button.
(panel_create_file_list): Ahaha! I found that CList now has a
gtk_clist_set_buttion_actions. Go figure why we need this and why
it was implemented, but now buttons work as they should on clist.
* gscreen.c (panel_icon_list_drag_data_received): Do not update
contents if nothing was done (ie, the drop was cancelled).
* gdnd.c (gdnd_drop_on_directory): Do nothing if the files dragged
are on the same directory we are.
* gcmd.c (gnome_filter_cmd): Function filled in now. Actually
works (amazing!.) Next: put a history on it, and maybe an event
box for the label.
Also, moved delete file around -- apparently it's proximity to Close was
bothering people.
* gscreen.c (x_reset_sort_labels): Various fixes to fix some of my
recent changes. I bet Jonathan found that things were not quite
working. Sorry for the previous untested changes.
This also fixes the bugs reported on gnome-list regarding the
CList problems. This is the correct fix (basically, we were using
a CList that was configured in one way, even if the display format
had changed. Now, the CList is kept in sync with the format by
calling a routine that somehow got dropped during some recent
changes).
* gtools.c (query_dialog): Simplified.
* gcmd.c (gnome_sort_cmd): pretified
(gnome_select_all_cmd): New command -- selects all files (in
theory).
* glayout.c: rearrange the edit menu some.
* gscreen.c (x_create_panel): new icon view icons -- brief and
custom.
* gscreen.c (panel_fill_panel_list): Assertion that will pin point
if a CList gets out of sync with the panel->format.
1999-01-01 Momchil 'Velco' Velikov <velco@fadata.bg>
* gscreen.c (panel_fill_panel_list): NULL terminate the column
array. This is strange, as it should not need the ending NULL.
1999-01-01 Jonathan Blandford <jrb@redhat.com>
1998-12-29 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdesktop.c (desktop_icon_delete): New function, used for
dicon_delete.
(load_desktop_icons): Implemented the incremental reloading of
desktop icons. This should make the code much nicer.
(reload_desktop_icons): Call x_flush_events to force a display at
that point.
* gpopup.c (dicon_delete): Implement this operation.
(desktop_icon_execute): Use the existing implementation for
launching desktop icons instead of a new hacked up version
(desktop_icon_actions): Until copy/move is implemented, do not
even list them to the user.
* gdesktop.c (create_desktop_dir): No trashcan setup until it
works.
* gscren.c (panel_widget_motion): Use button 2 for dragging and
asking.
even recognize it.
1998-12-16 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdialogs.c (create_op_win): Remove second spurious packing.
(create_op_win): OP_MOVE uses the same stuff OP_COPY does. Fix
this.
(file_progress_show_target): More compliant to the original
functions.
(file_progress_show_source): More compliant to the original
functions.
* gdesktop.c (create_desktop_dir): Fix mem leak.
Miguel.
* gscreen.c (panel_tree_drag_motion): Doubled timeout
for autoexpand - reducing opening unwanted directories.
(This, and auto-expand itself need to be configurable.)
* gscreen.c (tree_drag_open_directory): Use
gtk_ctree_expand() not gtk_ctree_expand_recursive,
which increases confusion and could be
_vvveeerrrryyyy_ expensive. (/afs ?)
* gscreen.c (panel_tree_drag_leave): Fixed up
signature - "drag_leave" has no x,y.
* gscreen.[ch] (panel_tree_check_auto_expand): When
we've expanded rows during a drag, collapse them
again when the drag leaves that row. We try to
collapse without changing the position of the current
row on the screen.
* gtkdtree.c (gtk_dtree_destroy): Remove timer upon
destruction to be safe. (Should this, and
dtree->timer_id itself be in gscreen.c instead?)
* gscreen.c (panel_tree_drag_leave): Change == to !=
so that timeouts are properly removed.
* gtkdtree.c (gtk_dtree_do_select_dir): fixed a little bug --
caused a segfault.
* gscreen.c (x_create_panel): More changes. The toolbar is moved
to a gtk_toolbar, and is movable. The entry will be put in it's
own toolbar, too.
(panel_create_cwd): For now, hardcode the usize of the entry
widget. Later on, have it expand (when toolbar supports it)
* gscreen.c (load_imlib_icons): Make it use the new gicon files.
* gicon.c, gicon.h: New files: they keep an image cache and
provide the right icon to use based on the filename. They use the
GNOME metadata to fecth the "icon-filename" and "icon-inline-png"
keys.
* gdialogs.c (file_mask_dialog): Commented the help messages until
the warnings are figured out.
* gdesktop.c (desktop_icon_info_new): Connect the signals for DnD
so that we can drag icons from the desktop.
(drag_begin): New function to set the drag cursor for icons on the desktop.
(button_press): New function that stores the hot spot position for
DnD cursors.
(drag_data_get): New function to fetch the URI-list of selected icons.
* gdialogs.c: Fixed some includes.
* gdesktop.h: Removed the DnD target enum from here, since it is
specific to each submodule.
* gdnd.h: Moved the DnD target enums to here. Added a new
TARGET_MC_DESKTOP_ICON.
* gdesktop.c (get_icon_snap_pos): Fixed icon snapping; the
coordinates not being updated correctly.
* gscreen.c (panel_drag_data_get): Free the uri list; it was being leaked.