* 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.
* gdesktop.c (load_desktop_icons): Added arguments that specify
where to place the newly-created icons. This needs some tweaking still.
(reload_desktop_icons): Now takes arguments for the position of
the new icons.
(drag_data_received): Pass in the drop position to reload_desktop_icons().
* gscreen.c (panel_tree_drag_motion): Added missing variable declaration.
* gdesktop.c (load_desktop_icons): Added an incremental flag that
specifies whether icon creation is unconditional regardless of
whether there is an icon for a file or not.
(reload_desktop_icons): Use the incremental flag in load_desktop_icons().
(drag_data_received): Reload the desktop incrementally, to avoid flicker.
(desktop_icon_info_new): Use mc_lstat(), not mc_stat(). We do
want to read symlinks, even dangling ones, if they exist.
(load_desktop_icons): While we are reading the desktop directory,
first place all the icons that have their metadata icon-position
set, and build a list of the ones that don't. *Then* place
those. This fixes overlapping icons on weird situations.
* directory.xpm: Removed bogus garbage. There was a stale pixmap here.
* gdesktop.c (setup_desktop_dnd): Allow for GDK_ACTION_ASK as well.
* gscreen.c (panel_widget_motion): The action argument to
gtk_drag_begin() is a mask of possible actions, not a single action.
* gdesktop.c (drag_data_received): Only reload the icons if the
drop was successful.
* gscreen.c (panel_create_icon_display, panel_create_file_list):
Hook up to drag_begin and drag_end events.
(panel_tree_drag_motion): Either queue a scroll on the tree, or
queue an open-directory event.
(panel_tree_scroll): Scroll the tree when the drag pointer is in
one of the boundaries of the tree.
(panel_tree_scrolling_is_desirable): new function to figure out if
it is a good plan to scroll the tree view instead of opening it.
(panel_chdir): Do not sync with the tree when we are in the middle
of a drag and drop operation.
(panel_drag_begin, panel_drag_end): New functions to keep track
of the dragging operations.