* 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
* gdesktop.c (icon_event): Rewrote event handling for icons on the
desktop. This function handles button presses and releases and
does some anal-retentive checking to avoid stuck pointer grabs.
(icon_event_after): New fallback function for button presses.
This is only called when an icon is being edited and the user
clicks outside the icon's text item, indicating that editing
should be accepted and terminated.
(selection_stopped): New callback used to re-install the mouse
grab once the icon text item stops selecting text.
* gdesktop.h (DesktopIconInfo): Removed the finishing_selection
flag now that the event handling code is cleaned up.
the New-> menu item now works.
Installing a .desktop item in ${prefix}/share/mc/templates will now put
it in the New item menu. The exec field of it will create the new item,
so choose it correctly.
Next on the TODO; rehash the toolbars.
* glayout.c (create_container): beginnings of the New-> menu. It
doesn't have much yet, hopefully we'll have a good way to let apps
register themselves with it.
1999-01-12 Jonathan Blandford <jrb@redhat.com>
* cmd.c (mkdir_cmd): now mkdir_cmd will accept relative, and
absolute directories.
* 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?
* gtkedit/edit.c (edit_load_file): Off-by-one error disabled editing.
1999-01-11 Miguel de Icaza <miguel@nuclecu.unam.mx>
* configure.in (REGEX_O): Always include regex.o as the code we
are using in gmc is not using regcomp/regexec, but the internal
Emacs API.
* src/regex.c: Do not compile the POSIX compatibility code, as we
do not use it.
Tue Dec 29 15:49:45 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* doc/mc.sgml, mc1.in (Color section): minor polishing
(Layout section): documented Highlight...
Make gtkdtree use the treestore cache.
Next step: store the ->scanned attribute of tree_entry (otherwise, no
speedup will be noticed at all). It is a 10 minute hack, but I will go
have dinner now.
Miguel.
- SFS-based file systems now work on GNOME edition, I was
not waiting for child process to finish decompressing.
- VFS code cleanup. I am going to eventually get rid of all
the macro-mania that has creeped into the vfs layer.
Miguel
* glayout.c: now open the new (non-functional) dialog box. If you
want functionality, I suppose you could put the old one back in.
I'll work on it more this weekend, though, so hopefully it can get
back to the old state relatively quickly.
* gprefs.c (gnome_configure_box): New function, new file, first
start at unified properties box.
* 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.
* gtools.c (query_dialog): Fix the new version of this. It was
overwriting memory all over.
* gdialogs.c (): Use GNOME stock; Fill in some FIXME strings.
(file_progress_real_query_replace): Use the formatted
message.
* glayout.c: menu changes.
* gcmd.c (gnome_external_panelize): new function. Does absolutely
nothing yet but look pretty (and it doesn't do that all that well,
yet...) I'll hook it up to it's actual functions, tomorrow.
* 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.
* main.c (update_one_panel_widget): GNOME version does the panel
update here (this is an optimization, as we do not want do_refresh
to do anything.
* dialog.c (do_refresh): Remove this optimization as it was
disabling the repainting of the screen contents.
* hotlist.c (done_hotlist): The hotlist might not be loaded
anymore.
1999-01-02 Miguel de Icaza <miguel@nuclecu.unam.mx> 1999-01-03 Miguel de Icaza <miguel@nuclecu.unam.mx>
* 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.
* gdesktop.c (select_range): Fixed selection of ranges where the
starting and ending icons are in the same vertical or horizontal
slot.
(reload_desktop_icons): Fixed incorrect usage of
g_list_remove_link(). Also, moved the functionality from the old
load_desktop_icons() here. Now all icons are always loaded
efficiently, and there is no need for the "incremental" flag.
(desktop_icon_info_delete): Delete the icon position information.
* gmetadata.c (gmeta_del_icon_pos): New public function to delete
the icon position information from a file.
* 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>
* gdesktop.c (find_icon_by_drag_context): Made static.
* gdesktop.h (DesktopIconInfo): Now that this type is public,
renamed it from struct desktop_icon_info, for consistency.
* gaction.c (gmc_execute): now takes an filename instead of a file
entry for an argument
(gmc_open_filename): handles the new gmc_execute code.
* gdesktop.c (desktop_icon_drop_uri_list): commented out
action_drop. Needs defining.
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.
try "make clean; make".
Tue Dec 29 15:49:45 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* doc/mc.sgml, mc1.in (Color section): minor polishing
(Layout section): documented Highlight...
* gnome/gmain.c: According to the man page the color keyword for executable
files is `executable' and not `execute' -- changed.
* file.c (progress_update_one): Ignore files in subdirectories
when panel totals haven't been computed.
(erase_dir, erase_file): update progress bar (i.e. make it work
for OP_DELETE).
(panel_operate_flags): Don't compute panel totals for OP_MOVE.
When moving files on the same filesystem computing totals might
last much longer than the actual move operation.
(various places): adpations for the above changes.
* slint.c (try_alloc_color_pair): Changed hardcoded values into
defines.
* color.c, text.c: Added color "stalledlink" which is used for
stalled symbolic links. Formerly "viewunderline" was used for
this (IMO bad because function and name didn't match).
According to the man page the color keyword for executable files
is `executable' and not `execute' -- changed.
* color.c, color.h: When using SLang some color indexes are not
freely choosable (DEFAULT_COLOR clashed with A_BOLD_REVERSE).
Solved by adding holes in color_map.
* find.c (do_search): fixed possible memory leak
* configure.in: Deleted du checks
* INSTALL: Deleted --with-dusum documentation.
* doc/mc.sgml, mc.1.in: Completed documentation about the Options/
Configuration dialog. Added Advanced chown subsection. Deleted
variables from the Special settings section which are now covered
by the configuration dialog.
* gnome/layout: Adapted for the new option Compute Totals in the
Configuration dialog.
* screen.c (recalculate_panel_summary): new function which recalculates
the summary information for the mini-status.
* screen.c (panel_reload): use recalculate_panel_summary
* screen.c (do_file_mark): Honour that dirsizes computed is now a
per entry flag.
* option.c: Added Compute Totals to the configuration dialog.
* file.c (compute_dir_size): made non static
(panel_operate_flags): Don't compute directory sizes if verbose
operation are off.
* cmd.c (dirsizes_cmd): Rewritten to use compute_dir_size as suggested
by Miguel, i.e. get rid of du. Now the dirsizes_cmd honours a
selection and computes sizes only for marked directories. Possible
improvement: add a dialog (or C-C?) to abort computation.
* dir.h (file_entry), panel.h (WPanel): Made the dirsizes computed
flag a per file flag.
* dir.c, find.c, panelize.c, screen.c: Adapted to new file_entry and
WPanel structure.
* features.inc: Deleted DUSUM information
* mc.hlp: remade because of changes in doc/mc.1.in
* mountlist.c: Define xBSD on FreeBSD.
* doc/mc.sgml, mc.1.in: Deleted obsolete information about
tar_gz_memlimit. Partially rewrote the section about the
Virtual FS.. configuration dialog.
* main.c (parse_an_arg): New function, popt callback. Option
parsing in gmc was broken. The gnome*_init_with_popt_table free
the option tables and gmc tried to use the option tables later.
* main.c (handle_args): In the Gnome edition don't parse the
options a second time.
* boxes.c (configure_vfs), setup.c: Deleted obsolete options.
tar.gz files are now always unzipped to a temporary file on disk.
* gnome/layout: Deleted obsolete widgets from the Virtual FS configuration
dialog.
* vfs/tar.c: Deleted global variable tar_gzipped_memlimit.
Mon Dec 21 14:28:55 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* filenot.c (my_mkdir_rec): Someone broke this function completely by deleting
a line. Funny things happen if you use an already freed pointer.
Improved error handling: try to make directories recursivly until
mkdir succeeds or fails with errno != ENOENT. Now you will get the
correct error message when you don't have permission to create a
directory.
* mountlist.c: Deleted function prototypes for strdup and strstr,
they might conflict with definitions in the system header files.
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.
* gdesktop-icon.c : Attach a desktop_icon wmclass to the desktop
icons to allow even more wizardry with the desktop icons, mainly
to exclude them from window lists, don't decorate them, skip
desktops and other boring stuff.
* 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.
* gdesktop.c (click_proxy_button_press): Use a nice arrow cursor
for rubberbanding.
(click_proxy_filter): Keep a firm jaw when the window manager dies
and thus the proxy window is destroyed.
(setup_desktop_click_proxy_window): Moved the proxy window
creation code to this function.
(click_proxy_property_notify): Handle PropertyNotify events from
the root window for when the proxy window changes. Now the window
manager can restart itself as it pleases and GMC will handle it
correctly.
Wheeeee! Desktop icons can be selected by rubberbanding. You
need Englightenment to do this, as so far it seems to be the only
WM with support for the _WIN_DESKTOP_BUTTON_PROXY property.
* gdesktop.c (click_proxy_filter): New event filter for button
presses and releases on the root window.
(click_proxy_button_press): New function to handle button presses
on the desktop.
(click_proxy_button_release): New function to handle button
releases on the desktop.
(click_proxy_motion): New function to handle rubberbanding motion
on the desktop.
(setup_xdnd_proxy): Flush the server after ungrabbing it.
(find_click_proxy_window): Flush the server after ungrabbing it.
(store_temp_selection): Stores the temporary selection to the
master selection, or viceversa. This is needed for dynamic
updating while the user rubberbands.
(update_drag_selection): New function to update the selection
while the user is rubberbanding on the desktop.
(icon_is_in_area): New function to see if an icon is inside the
rubberbanding area.
* gdesktop-icon.h: Added fields for querying the icon and text
position and size.
* gdesktop-icon.c (desktop_icon_reshape): Set the position and
size fields as computed for layout.
* gdesktop.c (editing_started): Grab on the window for the
icon, not on the canvas, so we can properly detect
clicks elsewhere.
(icon_button_release_after): When the user stops selecting,
regrab the pointer.
* 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)
* gcmd.c: #include "../vfs/vfs.h"
* gdesktop.c (setup_icon_dnd_actions): Moved the code that calls
gtk_drag_source_set() for an icon here.
(editing_started): Temporarily disable drags while the icon's text
is being edited.
(editing_stopped): Re-enable DnD from the icon once editing has
stopped.
* gcmd.c: #include "../vfs/vfs.h"
* gdesktop.c (setup_icon_dnd_actions): Moved the code that calls
gtk_drag_source_set() for an icon here.
(editing_started): Temporarily disable drags while the icon's text
is being edited.
(editing_stopped): Re-enable DnD from the icon once editing has
stopped.
* gcmd.c (gnome_close_panel): When a panel is destroyed, chdir to
root directory, as the process will be holding the inode for the
directory that was selected until an operation is performed in
another panel.
* gicon.c (gicon_get_icon_for_file): Invert the way the testing
for icons is done to handle directories properly.
* gdesktop.c (dnd_select_icon_pending): Added this flag that
specifies whether a selection is pending for an icon if the user
was holding the Control key down while clicking. We have to delay
selection in this case so that DnD will work correctly, just like
Windows.
(icon_button_press): New function that handles button presses on
icons; it obsoletes the old desktop_icon_info_event().
(icon_button_release): New function that handles button releases
on desktop icons; it will do what is appropriate if there was a
pending icon selection.
(drag_begin): Handle pending selections as appropriate.
(unselect_all): Added an paremeter that specifies which icon to
exclude from unselection.
(editing_started): Unselect all icons but the one for which
editing has started.
(dnd_icon_sources): Changed the MIME-types for internal drops to
"application/x-mc-desktop-icon".
(click_proxy_window): New variable that stores the proxy window
for clicks on the desktop.
(setup_desktop_clicks): New function that sets up clicks on the
root window.
(find_click_proxy_window): New function to find and set up the
window for proxying clicks from the root window.
* image.metadata.in: Added case for `jpg', as there was only a
case for `jpeg'.
* gicon.c (gnome_file_entry_color): If we do not have permissions
for this directory, indicate this with a special icon.
* gscreen.c (panel_icon_list_select_icon): Middle button opens a
new panel on a directory.
* gdesktop.c: Moved the old DnD cruft to olddnd.c to keep it there
for reference purposes.
* gmetadata.c: Removed the gmeta_get_icon_for_file() function, as
it is obsoleted by gicon_get_icon_for_file().
* gdesktop.c (desktop_icon_info_new): Made it use
gicon_get_icon_for_file().
* gdesktop-icon.c (set_icon): Now we handle things internally
using an imlib image, not a filename.
(desktop_icon_new): Now takes an imlib image for the icon instead
of a filename.
(desktop_icon_set_icon): Likewise.
* gdesktop.c (desktop_icon_info_new): Do not stat the file, as we
do not need that information anymore.
(setup_icon_dnd_source): Moved the DnD-as-source code to here.
(setup_icon_dnd_dest): New function to set up an icon as a DnD
destination.
* gdesktop.c (desktop_icon_info_place): Doh, do not place icons
past the edge of the *whole* screen :-)
(dnd_press_x dnd_press_y): New variables to store the cursor
hotspot for DnD icons. Moved these over from the
desktop_icon_info structure, as it does not make sense to have
this inside every icon.
(button_press): Use dnd_press_x and dnd_press_y.
(drag_begin): Likewise.
(drop_desktop_icons): Use dnd_press_x and dnd_press_y to fix the offsets.
(drag_data_received): Fix the proxy window offsets for all types
of targets.
(drop_desktop_icons): Snap the coordinates as appropriate.
* gdesktop.c (drop_desktop_icons): New function to perform a drop
from desktop icons to the desktop. It effectively moves the icons
around.
(desktop_icon_info_place): Do not place the icons past the edge of
the screen.
* gdesktop.c (file_entry_from_file): Finished implementing
file_entry_from_file().
(struct desktop_icon_info): Removed the `type' field. We now stat
the file when needed to figure out the file type.
(desktop_icon_info_event): Test whether the file is a directory by
ourselves, and if it is, open a new panel for it.
(drag_data_get): Generate the uri-list for internal desktop icon
drags as well.
* Makefile.in (codedirs): Dropped xv and tk ports from the
distribution. include idl directory.
1998-12-01 Miguel de Icaza <miguel@nuclecu.unam.mx>
* configure.in (slang_use_system_installed_lib): Define slang
here, to avoid having this on LIBS.
1998-11-26 Herbert Valerio Riedel <hvr@hvrlab.ml.org>
* gtkedit.c: changed occurence of 'va_list *ap' to 'va_list ap'
Thu Nov 26 12:20:06 1998 Pavel Roskin <pavel_roskin@geocities.com>
* config.h.in: Removed from CVS, added to .cvsignore
* acconfig.h, macros/curses.m4, src/xcurses.c, src/tty.h,
configure.in:
* 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.
* gdesktop.c (setup_desktop_dnd): New function to set up drops
to the root window.
(setup_xdnd_proxy): Function by Owen Taylor to set up a DnD proxy
window.
(drag_data_received): Function to handle drops on the root window.
(desktop_destroy): Destroy the DnD setup.
(reload_desktop_icons): New function to reload the desktop.
* gscreen.c (drag_types, drop_types): Removed url-list; only
uri-list should be there.
* gdesktop.h: Removed TARGET_URL_LIST from the DnD enumerations.
* gtkdtree.c (gtk_dtree_do_select_dir): Made static, as it is for
internal use only.
Fixed a little bunch of compiler warnings.
* gscreen.c (x_fill_panel): Use gtk_dtree_select_dir(), not
gtk_ctree_do_select_dir().
* gpopup.c (gpopup_do_popup): Fixed incorrect assertion and
actually create the menu (doh).
(gpopup_do_popup): Do the same magic as in gnome-popup-menu to
fetch the item that was activated in the menu. Keep this code out
of reach of children.
(fill_menu): New function to fill the menu using the
gnome-popup-menu magic for fetching the activated menu item.
Removed ifdef'ed code.
* gscreen.c (tree_drag_open_directory, panel_tree_drag_motion,
panel_tree_drag_leave): Drag and Drop support routines for the
tree to auto-expand the tree when the user stays still on top of a
directory.
* configure.in (slang_use_system_installed_lib): Define slang
here, to avoid having this on LIBS.
1998-11-26 Herbert Valerio Riedel <hvr@hvrlab.ml.org>
* glayout.c (file_menu): Use view_cmd and view_simple_cmd in the
menu instead of panel_action_view and
panel_action_view_unfiltered, respectively.
* gpopup.c (create_regexp_actions): Create the menu items using
gnome-app-helper, for visual consistency.
(create_actions): Likewise. Also, fixed S_ISLNK() confusion.
(get_label_text): Extract the label from the GnomeUIInfo item in
an ugly way.
* gscreen.c (panel_switch_new_display_mode): Destroy the old
widget. Add the list view to the proper table.
* glayout.c: Remove the exit menu option.
* gtree.c (gtk_dtree_contains): New routine used to avoid
duplicate entries in the tree display.
* gwidget.c (x_update_input): Use gtk_editable_changed on the entry.
(x_create_listbox): Fix more CList api change.
* gscreen.c (CLIST_FROM_SW): Adapt to new GtkScrolledWindow
inheritance.
* Makefile.in (OOBJS): Add filegui.o back until the GTK-specific
filegui is written.
* gdesktop.c (check_window_in_one_panel): Provide better error
messages here for debugging purposes.
Disable stubs for filegui.c until they are actually implemented.
I need to debug stuff.
* gdnd.c (find_panel_owning_window): Use the new
gtk_drag_get_source_widget function to find out reliably if the
drag source happens to be in this application.
* gscreen.c (x_create_panel): Set the usize for the ministatus
label to be (0, -1), this means: do not request any horizontal
space, use any vertical space given.
Put the ministatus inside an hbox, and use
gtk_container_set_resize_mode in this hbox to stop any queue
events from being propagated up in the hierachy of widgets
This kills all of the CList/GnomeIconList/Scrollbar/Toolbar
flickering now.
* gscreen.c (x_create_panel): Set the usize for the ministatus
label to be (0, -1), this means: do not request any horizontal
space, use any vertical space given.
Put the ministatus inside an hbox, and use
gtk_container_set_resize_mode in this hbox to stop any queue
events from being propagated up in the hierachy of widgets
This kills all of the CList/GnomeIconList/Scrollbar/Toolbar
flickering now.
* gdesktop.c (desktop_icon_info_event): Run the popup menu for the
icons in the desktop.
* gpopup.[ch]: New files that take care of the popup menus for
files in the desktop and in the panels.
* Makefile.in: Added gpopup.[ch] to the list of sources.
* gdesktop.c (desktop_icon_info_place): Save the icon position
when it is moved.
(desktop_destroy): Removed the save_icons_pos() function and do
not invoke it from desktop_destroy().
* gdesktop.c: Put in a bunch of stubs for the functions in
filegui.h. These will be removed as the dialogs get
custom-written for Gnome.
* gmetadata.[ch]: Changed the function names to "gmeta_*".
* gscreen.c (CLIST_FROM_SW): Use scrolled_window->child, as
viewport is obsolete.
1998-11-23 Federico Mena Quintero <federico@nuclecu.unam.mx>
* dlg.c (dlg_try_hotkey): Removed unused declaration of input_event.
(dlg_key_event): Return 1 if handled the tab key.
* filegui.h: Added prototypes for file_progress_show_{source,target,deleting}().
* Makefile.in (OOBJS): Do not link ../src/filegui.o. GMC does not
link right now, but I guess I'll add stubs until we finish with
the dialog boxes.
* gdnd.c: #include <sys/types.h>
* Makefile.in (checklinks): Fix sourcelinks -> maksourcelinks typo.
* Makefile.in: Removed gtrans.c from the list of sources.
* gdesktop-icon.c: #ifdef cleanups.
* gscreen.c (panel_create_file_list): Doh. Return the scrolled
window, not the clist.
* gdnd.c (get_action): Implement the DnD actions menu.
1998-11-10 Federico Mena Quintero <federico@nuclecu.unam.mx>
* setup.c: Removed the icons_snap_to_grid and
want_transparent_{icons,text} options.
1998-11-09 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gdnd.c: New file that handles all the DnD stuff. Mainly used to
clean up gdesktop.c.
* gscreen.c (panel_icon_list_drag_data_received): Use
gdnd_drop_on_directory().
(CLIST_FROM_SW): Added this macro to fetch the clist from the
scrolled window in panel->list.
(panel_create_file_list): Create a scrolled window and put the
clist inside it. This is required per the new clist API.
(panel_configure_file_list): Use the scrolled window's adjustment.
(panel_file_list_size_allocate_hook): Use the scrolled window
instead of the clist.
(panel_file_list_compute_lines): Use the scrolled window instead
of the clist.
(panel_file_list_configure_contents): Use the scrolled window
instead of the clist.
(panel_create_file_list): Do the DnD setup here, not in the
realization callback.
(x_create_panel): Do not realize the panel explicitly.
(panel_create_pixmaps): Create the pixmaps using imlib instead of
Gdk.
* gdesktop.c: Now desktop icons are stored in the layout_slots
array. We need to know which icons are in which slots.
(unselect_all): Use the layout_slots array.
(desktop_icon_info_place): Append the icon to the list in the
proper slot.
(desktop_icon_info_new): Initialize the position and slot fields
in the desktop icon info structure.
(desktop_icon_info_free): Remove the icon from its slot.
(desktop_destroy): Destroy the layout slots and the icons
properly.
(remove_from_slot): New convenience function to remove an icon
from the slot it is in.
(get_icon_snap_pos): Do a bit nicer snapping by really using the
closest slot.
Added a last_selected_icon variable to keep track of the icon that
was last selected, for shift+click selections.
(select_icon): Finish selection semantics and clean up. Now it is
nice and simple and complete.
(select_range): New function that handles range selections.
* gdesktop-icon.h (DesktopIcon): Added a child item for stippling
the icon when it is selected.
* gdesktop-icon.c (desktop_icon_select): Show/hide the stippling
as appropriate.
* gdesktop.c (desktop_icon_info_event): Handler for events on
desktop icons.
(select_icon): New function that handles icon selection based on
mouse clicks and modifier keys.
* gdesktop.c (struct desktop_icon_info): Added a type field to the
structure. It specifies the type of icon (file, directory), and
is used to determine the DnD and menu behavior.
* gdesktop.c: We are now using the new desktop icon code. It is
not yet complete, but what is there does work. We have icon
creation, auto-layout and snapping. Next step is drag and drop
and popup menus.
* glayout.c: #ifdef out the stuff that uses the old desktop code.
I will replace it gradually.
* gmain.c: Likewise.
* gscreen.c: Likewise.
Documentation update.
1998-10-30 Miguel de Icaza <miguel@nuclecu.unam.mx>
* fish.c (command): Replace vnsprintf with g_strdup_vprintf. This
is both safe and more correct, as there is no limit on the
pathname.
* ftpfs.c (command): Same as above.
* util-alone.c (print_vfs_message): Same as above.
1998-10-30 Miguel de Icaza <miguel@nuclecu.unam.mx>
* layout.c (print_vfs_message): Use g_snprintf instead of
vnsprintf.
* gdesktop-icon.c (create_window_shape): Use shaped icons only
when the user has selected them.
(desktop_icon_reshape): New public function to recompute the shape
of the icon. This should be used when the global
desktop_use_shaped_icons flag changes.
Added documentation comments to the public functions.
* gdesktop.c (desktop_icon_set_position): Do not lower the
window. The gnome-compliant wm will know what to do with windows
on the Desktop layer.
(post_setup_desktop_icon): Likewise.
* desktop-icon.c (create_window_shape): Fetch the mask of the
image "by hand", as we cannot rely on the canvas item having
created it yet.
* desktop-icon.c (desktop_icon_realize): Doh. We need to
initialize the gnome_win_hints before we set any of the hints.
1998-10-21 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gdesktop.c (create_desktop_icon): Renamed from
my_create_transparent_text_window. Now uses the DesktopIcon
widget for its work.
(get_desktop_icon_for_dentry): Renamed from
get_transparent_window_for_dentry. Uses the DesktopIcon widget.
(get_desktop_icon_for_di): Renamed from
get_transparent_window_for_di.
(desktop_icon_properties): Do not size_request the icon, since now
we can get its dimensions directly from the DesktopIcon structure.
* desktop-icon.[ch]: New file that takes care of desktop icons.
It provides the spiffy widget that is used for them.
* Makefile.in: Added desktop-icon.[ch] to the list of sources.
MC should use Automake, I think.
MC now depends on glib (currently only the assertions are used).
VFS structure declaration fixes.
Uses the new icon list (it is dog slow, need to fix this tonight at home).
* gscreen.c (display_mini_info): Removed calls to
gtk_clip_label_set() hack, since its cut-n-paste code didn't work
with new GTK's. If excessive resizes are a problem, they can be
solved by adding an adjustment around the label, and calling
gtk_container_set_resize_mode().
* gdesktop.c - changed dnd setting routine for desktop icon to set
events on child window...
* gtrans.c - chnaged routines to make window with
child rawing area and set shape on parent window
* gdesktop.c (desktop_create_directory_entry): Fix, make a
g_strdup copy of the name. Fixes bug report #78.
(desktop_icon_context_popup): Simplified this routine as we are
using file_popup now anyways.
1. Selecting text in an input line and typing a char
now does the expected thing (Bug #17)
2. Drag and drop betwen icon view was broken (Bug #16
(This is a bug introduced by the fact that when Icon
View was introduced, I left the testing for the view
mode here and there)
Extra stuff: runtime warnings fixed when creating a new window;
moved the "new window" option to the "file" menu, it makes more
sense there. Force event flushing when I change the progress
status for vfs code.
Miguel
1998-05-22 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gwidget.c (x_create_input): Disable the use of the GNOME entries
for now, as they are very slow. We need to figure out what is
wrong with this.
With this change, dialog boxes close quickly instead of taking
ages to close.
* gscreen.c, gdesktop.c (file_popup_add_context, file_popup):
Share the context menu code in gdesktop.c and gscreen.c. The
desktop pop up menus now include all of the stuff that would have
appeared in the Panel.
* gdesktop.c (desktop_icon_remove): Remove the file associated
with this desktop entry if it is on the ~/desktop directory.
- We now provide both url:ALL and file:ALL drag types. This
allows applications that are not vfs-aware (all of them
right now :-) to work even if the files dragged are from a
remote site.
If the files are remote, and the target only accepts
file:ALL, a temporary file is created (or files, if multiple
files are dragged) and the names of the temporary file names
are transfered.
- Added ABOUT-NLS file :-)
Miguel.
* gtrans.c (set_window_text): Made it use the new
GnomeIconTextInfo functions.
1998-05-18 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gscreen.c (panel_create_icon_display): Set some good separator
characters for the file icon list.
* gpageprop.c (item_properties), gprop.c: Add executable editing
(command, and terminal). Save the dentry after modification
1998-05-19 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gprop.c (change_icon): Test for gp, as the combobox emits the
"changed" signal when shutting down. Great.
* gdesktop.c (desktop_reload): Missing mc_closedir
(desktop_setup_icon): Fix memory leak.
(get_desktop_icon): Fix memory leak.
(desktop_create_directory_entry): Set the size of the exec
vector.
(desktop_create_launch_entry): Same.
We now create launch entries instead of trying to support
regular dropped stuff on the desktop, this makes things easier and
more consistent.
1998-05-19 Miguel de Icaza <miguel@nuclecu.unam.mx>
* ext.c: Memory leak fixed.
* gdesktop.c (url_dropped): `exec' field of desktop entry now a
vector.
(dentry_execute): Likewise.
(desktop_icon_remove): Likewise.
(get_transparent_window_for_dentry): Likewise.
(desktop_create_directory_entry): Likewise; also initialize
exec_length.
* gscreen.c (create_popup_submenu): fixed bug which caused it to require
0 instead of 1 marked files for F_SINGLE file_actions.
* gscreen.c (file_popup): first item in the menu displays "..." when
multiple files are selected.
* gtrans.c (create_transparent_text_window): Removed the hack to
lower the window on exposes. Guess what happens when you have two
icons on the same spot.
1. My icons suck.
2. Keyboard handling is not finished.
3. Save current-mode, load current-mode is not
implemented yet.
4. Listing mode is not working, as I have hardcoded
the icon view for now.
5. Will finish this tomorrow. Not much is missing.
6. No, this is not the final implementation.
7. Yes, later I will put some scheme for using
more icons as discussed in the ethernal "Re: Icons"
thread.
Miguel.
1998-05-07 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (panel_icon_list_realized): Add drag and drop support
to the icon list view;
1998-05-06 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (panel_fill_panel_icons): New function: Fill up the
icon list.
(x_create_panel): Change in the approach: we create both of the
widget views at creation time and we now carefully show every
component. I attach everything to the table, but not necesarly
show it.
1998-05-04 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gwidget.c (x_update_input): Keep the cursor always visible.
* gview.c (view): Use a buttonbar widget.
* gwidget.c (buttonbar_clicked): Provide a trivial implementation
of the buttonbar that only responds to key sequences.
* gmain.c (dialog_panel_callback): Call midnight_callback to get
the main bindings working.
* gdesktop.c (perform_drop_manually): Use p to walk the dropped
data. This is an important bug fix.
* gmain.c (idle_destroy_window), main.c: Session management now
supports not showing a toplevel window (in case all of the windows
were closed).
1998-05-04 Miguel de Icaza <miguel@nuclecu.unam.mx>
* view.c (view_quit_cmd): Use dlg_stop.
* main.c (ctl_x_cmd): Implement ctl-x handling as a state of the
key press events. Drop the usage of mi_getch to acomplish this
task.
(midnight_callback): Deal with the current map depending on the
c-x state.
panel, the old way of using it was an historic relic.
- This now works properly with the GNOME edition.
- Finished/fixed the implementation of the desktop-remove-icon
functionality.
- Raster's new multi-ok window. For some reason this is not getting
loaded. I am compiling gdb 4.17 now, as it is better for egcs
output.
Miguel.
Now in wrap mode the End key and cursor up key behave much better
(e.g. when viewing binary files with lots of wrapped lines).
It's not perfekt but it's better than it used to be.
Tue Apr 28 06:52:24 1998 Norbert Warmuth <k3190@fh-sw.de>
* gnome/gcmd.c (gnome_open_terminal): Changed my_system(1,...) to
my_system(EXECUTE_AS_SHELL,...)
Tue Apr 28 06:06:03 1998 Norbert Warmuth <k3190@fh-sw.de>
* vfs/extfs.c (extfs_open, extfs_close): Changed my_system(1,...)
to my_system(EXECUTE_AS_SHELL,...), this fixes the broken copyin and
copyout in 4.1.32.
Tue Apr 28 06:11:08 1998 Norbert Warmuth <k3190@fh-sw.de>
* view.c (toggle_wrap_mode, toggle_hex_mode): Force recalculation
of bottom_first (we mustn't use an already calculated and cached
value because it is invalid for the new mode and the End key would
not move to the end of the file).
* configure.in: Renamed the option `--with-our-slang' to
`--with-included-slang' (this one looks better because we also
have an `--with-included-gettext').
Make the option `--with-ext2undel' recognice a given path.
* cmd.c (view_file_at_line): In plain view (F13) set the default
magic flag to zero in order to view the file content unprocessed
(esp. don't uncompress files if they are compressed). The
view_simple_cmd got broken when the default magic flag in view.c
was changed from 0 to 1.
* view.c (do_view_init, goto_line): Set wrap mode temporary off
to make goto line number work, i.e. `line number' now always means
line number in file and not line number on screen (in wrap mode
one long line wrapped once is displayed in two lines on the screen).
That's important when the viewer is invoked from the find file
dialog to display even in wrap mode approxiamtly the part of the
file where we found the content we searched for.
(move_forward2): In wrap mode lines were sometimes counted wrong
causing cursor up to move more than one line.
(move_backward2): Fixed the movement in wrap mode.
(change_viewer): Always re-init viewer when we have a filename,
i. e. if the viewer is invoked with simple_view_cmd then we can switch
with the F8 key between unprocessed file content und uncompressed
file content.
(view_init): re-init view also when magic flag was altered
fix a bug in the panel-widget selection.
i18n changes from Andrej Borsenkow.
Menus renamed, better texts -- thanks Havoc.
lav's fixes for curses compilation.
Miguel