1999-06-14 Federico Mena Quintero <federico@nuclecu.unam.mx>
[midnight-commander.git] / gnome / ChangeLog
blobe719b743697a2e91cd94f9e530fb4b7d23e7ecbd
1 1999-06-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3         * gdesktop.c (icon_is_in_area): Fixed off-by-one error in
4         intersection computation.
6         * gdesktop-icon.c (desktop_icon_reshape): Set the correct values
7         for dicon->text_x and dicon->text_y.
9 1999-06-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
11         * gwidget.c (x_update_input): Unblock the changed signal *after*
12         we call gtk_editable_changed().
14 1999-06-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
16         * gdesktop-icon.[ch]: Removed the background hack for desktop
17         icons.  Now the GnomeIconTextItem does the right thing.
19         * gdesktop-icon.c (desktop_icon_reshape): Use the correct size for
20         the icon text item.
22 1999-06-07  Federico Mena Quintero  <federico@nuclecu.unam.mx>
24         * gdesktop.c (new_terminal): New function to open a terminal from
25         the popup menu.  If the user opens a terminal from the desktop,
26         then its cwd should be the user's home directory, not the desktop
27         directory.  Fixes bug #2868 in the Red Hat bugzilla.
29 1999-06-04  Robert Brady  <rwb197@ecs.soton.ac.uk>
31         * gscreen.c (panel_list_configure_contents): Prevent
32         divide by zero error. (Fixes bug #1360)
34 1999-06-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
36         * gmain.c (xtoolkit_init): Ignore SIGTTIN and SIGTTOU.
38 1999-06-01  Akira Higuchi <a-higuti@math.sci.hokudai.ac.jp>
40         * gnome/gdesktop-icon.h:
41         * gnome/gmc-chargrid.c: Replace gdk_font_load() with
42         gdk_fontset_load(), and change the default font names.
44 1999-05-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>
46         * gscreen.c: Include util.h after x.h;  Undefine __G_LIB_H__.
48 1999-06-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
50         * gdesktop-icon.c (desktop_icon_select): Show the
51         dicon->background. 
52         (desktop_icon_init): Initialize backgorund as a rectangle that
53         fills all of the space used by the icon.
55 1999-05-31  Kjartan Maraas  <kmaraas@online.no>
57         * glayout.c (gnome_panel_about_menu): Hooked up the new help
58           file in the menu.
59           
60 1999-05-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
62         * gprefs.c (create_prop_int): Translate this label too.
64         * gnome-open-dialog.c: Add config.h here.  Otherwise there is no
65         way to translate this dialog.  Thanks to David Martina for
66         pointing this out.
68 1999-05-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
70         * gscreen.c (panel_tree_button_press): Beginning of context menu
71         on tree. 
73         * gtkdtree.c (gtk_dtree_load_path): Comment out the phantom code.
74         Need to review this code.  Lets fix the problem Federico needs
75         solved now. 
77 1999-05-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>
79         * gpopup.c (panel_action_properties): Hanlde properly
80         gnome_dialog_run here.
82         * gpopup2.c (handle_properties): ditto
84         * gmain.c (gnome_check_super_user): Use dialog_run_and_close here.
86         * gpopup.c (dicon_properties): Handle propery gnome_dialog_run
88         * gdialogs.c (file_mask_dialog): Fix usage of gnome_dialog_run
89         here.  Handle case == -1.
91         * gcmd.c (gnome_select): Fix usage of gnome_dialog_run here
92         (handle case == -1)
94         * gscreen.c (panel_fill_panel_icons): Add a hack to work around
95         gnome-libs/gnome-icon-list bug that did not reset the proper
96         values.  A fix will be available in gnome-libs-1.0.10.
98         Fixes bug #1338.
100         * gcmd.c (gnome_close_panel): Remove filter_w
102         * gscreen.c (x_filter_changed): Update nothing.
104 1999-05-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
106         * gnome-open-dialog.c (gnome_open_dialog_generate_tree_helper):
107         Invoke closedir here as well.
109         * gdesktop-init.c (desktop_init_at): Invoke closedir here.
111 1999-04-29  Federico Mena Quintero  <federico@nuclecu.unam.mx>
113         * gdialogs.c (file_progress_show_count): Use correct formats for
114         snprintf().
116 1999-05-03  Tuomas Kuosmanen  <tigert@gimp.org>
118         * i-directory.png
119         * i-directory.png: Added new icons for normal and locked folder..
120         I hope you like them - imho they look way better than the old ones.
122 1999-05-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
124         * gcmd.c (gnome_new_link): Allow users to create url shortcuts on
125         the desktop menu.
127 1999-04-20  Federico Mena Quintero  <federico@nuclecu.unam.mx>
129         * gdesktop.c (click_proxy_motion): Terminate rubberbanding if the
130         event mask does not contain GDK_BUTTON1_MASK.  There is a race
131         condition where we will not get the button release event if we
132         manage to grab the server in the button_press handler before the
133         window manager proxies the button release to us.
134         (perform_release): New function to terminate rubberbanding; this
135         used to be in click_proxy_button_release().  Also, update the drag
136         selection based on the last known mouse position, not on the
137         current one (which is not meaningful if the race condition
138         mentioned above kicks in).
139         (click_proxy_button_release): Use perform_release().
141 1999-04-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>
143         * gdialogs.c (file_op_context_create_ui): Handle the "close"
144         signal from the progress dialog; do not let GnomeDialog close it
145         for us.  This fixes bug #2203 in Red Hat's Bugzilla.
147 1999-04-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
149         * gnome-file-property-dialog.c (perm_group_new): Small typo fix
150         that fixes crash (#958)
152 1999-04-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
154         * mc.keys.in.in: Merge the application/tex values. 
156 1999-04-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>
158         * gnome-file-property-dialog.c (create_general_properties): Mark
159         some more strings for translations.  Thanks to David Martina for
160         pointing these out.
162         * mc.keys.in.in: New icons from Tim Davis <davist@cs.man.ac.uk>
164 1999-04-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
166         * gscreen.c: Include the glib.h header file here.
168 1999-04-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>
170         * gtkdtree.c (gtk_dtree_save_tree): Use tree_store_save().
172         * gscreen.c (panel_tree_check_auto_expand): Enabled auto-collapse
173         functionality again.  Made the code a simpler by using
174         gtk_dtree_is_ancestor().
176         * gtkdtree.c (gtk_dtree_is_ancestor): New function to test whether
177         a node is an ancestor of a child.  This does the same as
178         gtk_ctree_is_ancestor(), but much more efficiently.  GtkCTree
179         seems to use the pessimal algorithm for this.
180         (gtk_dtree_collapse): Slight optimization: do not re-select if the
181         node is already selected.
182         (gtk_dtree_collapse): Do not freeze/thaw the tree while
183         collapsing/selecting.
185         * gmain.c: Removed crufty old SM code.
187 1999-04-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>
189         * gscreen.c (panel_setup_drag_scroll): Made it not return
190         anything, since scrolling is independent from any other
191         prelighting actions.
192         (panel_tree_drag_begin): Do not print debugging message.
193         (panel_drag_data_get): Assert that we were requested a valid data
194         type.
195         (panel_create_tree_view): Only specify GTK_DEST_DEFAULT_DROP for
196         the tree, since we want to present the correct feedback when the
197         user is hovering over the blank area in the tree.
198         (panel_build_selected_file_list): Made it return char *.
199         (panel_tree_drag_end): Free dtree->drag_dir, not dtree->current_path.
200         (tree_drag_open_directory): Use panel->drag_tree_node instead of
201         the coordinates hack.
203 1999-04-15  Jonathan Blandford  <jrb@redhat.com>
205         * gaction.c (gmc_unable_to_execute_dlg): really ugly hack to set label.
206         (gmc_unable_to_execute_dlg): oops. forgot this.
208 1999-04-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
210         * gtkdtree.c (gtk_dtree_destroy): Memory leak fix: destroy
211         current_path and requested_path
213 1999-04-13  Jonathan Blandford  <jrb@redhat.com>
215         * mc.keys.in.in: updated the key files to add more types.
217 1999-04-12  Andrew T. Veliath  <andrewtv@usa.net>
219         * gdesktop.c (create_panel_from_desktop): Assign selected_index
220         when we find the last selected icon.
221         (desktop_icon_info_open): Desktop directory open case moved to
222         main.c to handle both general and action cd commands.
224 1999-04-12  Tuomas Kuosmanen  <tigert@gimp.org>
226         * glayout.c: Changed the stock icon for File->Delete to 
227         GNOME_STOCK_PIXMAP_TRASH (the trashcan)
229 1999-04-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
231         * gscreen.c (panel_icon_list_button_press): Ignore double clicks.
232         (panel_widget_motion): Don't do anything if the button state does
233         not match the button we are expecting.
235         * gtkflist.c (gtk_flist_button_press): Remove pending selections
236         when we receive a double click.
238         * gaction.c: #include "view.h"
240 1999-04-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
242         * gmount.c (is_block_device_mountable): Allow root to mount
243         devices. 
245 1999-04-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
247         * gtkflist.[ch]: New files.  This is a "file list" widget derived
248         from GtkCList that does several things:
250                 - Overrides all mouse and keyboard event handlers.
252                 - Implements its own, *sane* selection behavior, unlike
253                 GtkCList's, which is broken.
255                 - Implements the same selection behavior as the desktop,
256                 which is a) correct, and b) consistent.
258         * gscreen.c (panel_create_file_list): Use the GtkFList widget.
259         (panel_widget_motion): Changed the drag thresholds to be the same
260         as in gtkdnd.c.
261         (start_drag): New convenience function to begin a drag operation.
262         (panel_widget_motion): Use start_drag().
263         (panel_clist_scrolling_is_desirable): Offsets must be with respect
264         to the clist_window, not to the allocation.
265         (panel_clist_drag_motion): Normalize the y coordinate of the
266         motion event to the clist_window.
268         * gdesktop.c (desktop_icon_info_destroy): Reset the
269         last_selected_icon to NULL if it is destroyed.
271         * Makefile.in: Added gtkflist to the list of files.
273 1999-04-09  Rosanna Yuen  <rwsy@mit.edu>
275         * gaction.c (gmc_view): We now have consistant actions everywhere;
276         every time you invoke a file.
278 1999-04-08  Rosanna Yuen  <rwsy@mit.edu>
280         * gcmd.c (set_cursor_normal): new function to set the watch cursor
281         on a panel.
283 1999-04-08  Jonathan Blandford  <jrb@redhat.com>
285         * gaction.c (gmc_unable_to_execute_dlg): 
286         now actions do the right thing (TM).
288 1999-04-07  Owen Taylor  <otaylor@redhat.com>
290         * gsession.c (session_save): Set a discard command
291         to get rid of the per-session information.
293 1999-04-06  Jonathan Blandford  <jrb@redhat.com>
295         * gscreen.c: make sure that we bring up an open_with if 
296         open it.
298         * gcmd.c (gnome_select): new selection dialog.
300         * gdesktop-init.c (desktop_init_at): do not use access for it is
301         poor when you are root.
303 1999-04-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>
305         * glayout.c (create_container): Use gtk_window_set_default_size(),
306         not gtk_widget_set_usize().
308         * gdesktop.c (get_slot_from_pos): Clamp the slot positions to be
309         inside the screen.
311         * gmain.c (gnome_check_super_user): Improved the message a bit.
313 1999-04-06  David Martin <dmartina@usa.net>
315         * gcmd.c: marked message for translation.
316         
317 1999-04-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>
319         * gmetadata.c (gmeta_del_icon_pos): New function to delete the
320         icon position metadata from a file.
322         * gcmd.c: Removed unused function gnome_quit_cmd().
324 1999-04-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
326         * gprefs.c: Add new page for desktop properties.
328 1999-04-05  Ronald de Man <deman@win.tue.nl>
330         * gnome-file-property-dialog.c (create_general_properties): Use
331         local time here.
333 1999-04-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>
335         * gcorba.c: #include "../vfs/vfs.h"
337         * gdesktop.c (click_proxy_button_release): Call gdk_flush() after
338         doing XUngrabServer().
340 1999-04-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>
342         * gscreen.c (file_list_popup_items): Use "New Directory", not "New
343         Folder", to be consistent with the desktop and File menus.  Thanks
344         to Kevin Fox for pointing this out.
345         (panel_icon_list_drag_data_received): Update the panels properly.
346         (panel_clist_drag_data_received): Likewise.
347         (panel_tree_drag_data_received): Likewise.
349         * gcmd.c (gnome_close_panel): Doh.  Do not access g_free()d
350         memory.
352         * glayout.c (copy_uiinfo_widgets): Return the copied array as a
353         return value, not in an argument.
355         * gcmd.c (set_view_type): Added a sanity check.
357 1999-04-01  Federico Mena Quintero  <federico@nuclecu.unam.mx>
359         * gtkdtree.c (scan_subtree): Moved the functionality to scan a
360         subtree to this function.  Also, do not emit the DIRECTORY_CHANGED
361         signal here.
362         (gtk_dtree_select_row): Call scan_subtree() and emit the
363         DIRECTORY_CHANGED signal here.
364         (gtk_dtree_expand): Do not select the just-expanded node.  Call
365         scan_subtree().
366         (gtk_dtree_collapse): Only select the node if it is an ancestor of
367         the currently-selected node.  This should really go in the
368         GtkCTree sources.
369         (gtk_dtree_init): Bad hack: unset the GTK_CAN_FOCUS flag to avoid
370         the broken focusing behavior of GtkCTree.
372 1999-04-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
374         * gcmd.c (gnome_about_cmd): Internationalize about box.  And put
375         the right address for bug reports.
377 1999-03-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>
379         * gdesktop-icon.c (desktop_icon_realize): Remove the
380         WM_CLIENT_LEADER property from icon windows so that window
381         managers will not store SM information for them.
383         * gnome-open-dialog.c: Added missing #includes.
385         * gdesktop-init.c (desktop_init_at): Removed an unused variable.
387         * gdesktop.h: Added some missing prototypes.
389         * gmain.h: Added some missing prototypes.
391         * Makefile.in: Added gsession.[ch] to the list of sources.
393         * gmain.c (create_panels): Consider whether we have a CORBA server
394         and session management.
396         * gdesktop.c: #include "gdesktop-init.h"
397         * gdesktop.c: Added a missing cast to GNOME_DIALOG.
399         * gmain.c (create_panels): Removed the run_desktop global
400         variable.
402         * glayout.c (create_container): Set the wmclass of the panel to
403         include its unique ID.
405         * gsession.[ch]: New file with the functions that deal with
406         session management.
408         * glayout.c (gnome_exit): Use session_set_restart().
410         * gcorba.c (corba_init): Now returns an int with an error value.
411         (corba_init_server): Initialize the server properly.
412         Fixed all the object implementation code.
413         (corba_create_window): New function used to create a window with
414         the CORBA server.
416         * gmain.c (gnome_check_super_user): Now the check for running as
417         root is done here.  There should be no GUI code in src/.
419 1999-03-29  Jonathan Blandford  <jrb@redhat.com>
421         * gdesktop.c (create_desktop_dir): improved wording.
422         (create_desktop_dir): improved wording.
424 1999-03-26  Federico Mena Quintero  <federico@nuclecu.unam.mx>
426         * mc.keys.in: Now that the menu code uses the full filename, we do
427         not need "%d/%f" for html files.
429 1999-03-25  Federico Mena Quintero  <federico@nuclecu.unam.mx>
431         * gdialogs.c (file_progress_show_bytes): Total may be zero (for
432         instance, if you are copying zero-byte files).  Take this into
433         account instead of issuing a warning.
435 1999-03-25  Jonathan Blandford  <jrb@redhat.com>
437         * gdesktop.c (set_background_image): now we can set the background
438         from GMC.
440 1999-03-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>
442         * glayout.c (create_new_menu_from): closedir after running.
444 1999-03-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>
446         * gnome-file-property-dialog.c (apply_metadata_change): Fix the
447         test for setting the icon.  It was being done incorrectly and thus
448         it was never possible to change the icon.
450         * glayout.c (gnome_launch_mime_editor): Add mime-type-edit command
451         to the menu: this launches mime-type-capplet
453 1999-03-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>
455         * gnome-file-property-dialog.c (apply_metadata_change): Fixed
456         incorrect logic when testing whether the icon changed or not.
457         This makes icons change correctly again.
459         * Makefile.in (GNOMEHDRS): Added gdesktop-init.h.
461 1999-03-23  Jonathan Blandford  <jrb@redhat.com>
463         * gscreen.c (panel_tree_drag_motion): lets try to cut down on the flickers.
465 1999-03-22  Jonathan Blandford  <jrb@redhat.com>
467         * gdesktop-init.c (gdesktop_init): Do what the documentation says.
469 1999-03-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>
471         * gdesktop-init.c (desktop_load_init_from): New file that loads
472         new configuration files from the installation directory.
474         * gdesktop.c: Drop all the reload code from there, put it above. 
476         * gpopup2.c (create_mime_actions): Attach to the menu, not the uiinfo.
478 1999-03-19  Jonathan Blandford  <jrb@redhat.com>
480         * gscreen.c (panel_tree_drag_motion): Dragging now automatically
481         highlights the tree.  God does it flicker... )-:
483         * gtkdtree.h (gtk_dtree_construct): removed unused prototype.
485         * gscreen.c (panel_tree_check_auto_expand): removed the
486         auto-collapse of trees, as it is confusing to the user.
488         * gcustom-layout.c (custom_layout_set): We don't want to let the
489         user remove all of the settings.
491         * gdialogs.c (file_progress_show_bytes): bug fix proposed by Max
492         Weninger <max@takefive.co.at>
494         * gcmd.c (dentry_apply_callback): new function.
495         (gnome_new_launcher): We can now create new 
497 1999-03-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
499         * gpopup2.c (create_mime_actions): Free full_name, just once, not
500         once per action.  
502 1999-03-19  Paul Raines <raines@slac.stanford.edu>
504         * gtkdtree.c (gtk_dtree_load_path): Uses a phantom node to get
505         directories with the expandable flag.  Avoids loading directories
506         at two levels.
508 1999-03-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>
510         * gdesktop.c (desktop_icon_info_open): Fix condition.  Should not
511         open a new panel if it fails to mount the device. 
513 Thu Mar 18 14:59:12 1999  Timur Bakeyev  <mc@bat.ru>
515         * gnome-open-dialog.c (read_directory): s/basename/x_basename/g
517 1999-03-17  Jonathan Blandford  <jrb@redhat.com>
519         * gnome-file-property-dialog.c (generate_icon_sel): I don't know
520         who broke this, but it was a mess.  It now does the right thing,
521         and works...
523 1999-03-16  Jonathan Blandford  <jrb@redhat.com>
525         * gnome-open-dialog.c (read_directory): We now honor .order files.
527 1999-03-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>
529         * gicon.c (get_icon_set): Use iset->filename (which is a
530         strdup()ed string) instead of filename as a key in the hash table,
531         since the user will very likely free filename.
533         * gdialogs.c (symlink_dialog): Finished implementing the new
534         symlink dialog.
536         * gdesktop.c (icon_event): I'm an idiot.  Someone teach me boolean
537         logic again.  Fixed edit-on-release for icons.
539 1999-03-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>
541         * gdialogs.c (real_input_dialog_help): Now we use a
542         gnome_request_dialog() for generic input dialogs.  They look
543         prettier and consistent now.
544         (file_progress_show): Update the progress bars.  Thanks to Greg
545         for noticing this!
547         * Makefile.in: Removed references to gpopup.[co].
549 Mon Mar 15 17:09:37 1999  Gregory McLean  <gregm@comstar.net>
551         * gdialogs.c (file_progress_show_bytes): Fixed a GTK Warning when
552         done / total >= 1.0
553         * file.c : Actually update the progress bar when copying files around.
555 1999-03-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>
557         * gscreen.c (x_select_item): It is not necessary to call
558         gnome_canvas_update_now() here.
560         * gdesktop-icon.c (set_icon): Do not destroy the icon image.
562         * gnome-file-property-dialog.c
563         (gnome_file_property_dialog_finalize): Do not destroy the icon
564         image, since it is a shared resource.
566 1999-03-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>
568         * gdesktop.c (text_changed): If the file has the "icon-caption"
569         metadata set, then change that instead of renaming the file.  This
570         can be used by URLs and is also needed by the mountable device
571         icons.
572         (text_changed_url): Removed this function now that text_changed()
573         can handle all cases.
575         * gdnd.c (drop_url_on_directory): Set the "icon-caption" metadata
576         for URLs.
578         * gdesktop.c (icon_event): Handle button-2 clicks and drags
579         properly.
581 1999-03-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
583         * gmount.c (get_mountable_devices): Show error message if the
584         /etc/fstab is not readable by the user.
586 1999-03-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
588         * gview.c (scrollbar_moved): Better, but still shaggy when you
589         drag with the scrollbar.
591 1999-03-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>
593         * gdesktop.c (create_panel_from_desktop): Do not assert that
594         panel->count > 0, because we may actually not have any icons in
595         the desktop.
596         (desktop_popup): Reload the desktop once the popup menu is done.
597         (create_panel_from_desktop): Be consistent with the way totals are
598         computed in screen.c:do_file_mark().
600         * gnome-file-property-dialog.c (gnome_file_property_dialog_init):
601         Set the dialog to not destroy-on-close.
603         * gpopup2.c (gpopup_do_popup2): Fixed Miguel's code.
605 1999-03-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
607         * gpopup2.c (gpopup_do_popup2): Until Federico look over this, I
608         am fixing this crash.
610 1999-03-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
612         * gpopup2.c: Sigh.  It happened again.  More features killed by
613         the merge.  
615         If a file does not have any metadata/mime way of viewing it, the
616         viewer will always work.
618 1999-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
620         * gdesktop.c (text_changed): Rename the metadata and refresh the
621         desktop.  This also fixes bug #573.
623 1999-03-11  Jonathan Blandford  <jrb@redhat.com>
625         * gnome-file-property-dialog.c (create_settings_pane): change the
626         wording to be a tad clearer.
627         (apply_metadata_change): only set the icon if it has changed.
629 1999-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
631         * gpopup2.c (create_mime_actions): Do not free the file name here,
632         since it is passed on to the callback.  It will be freed on the
633         destroy handler instead.
635         * gpopup2.c (escape_underlines): New function to escape the
636         underlines in a string so that GtkLabel will include them in the
637         final result.
638         (create_mime_actions): Escape the underlines from the MIME action
639         descriptions.
641 1999-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
643         Fix bug #261: inconsistent labels in view menu and toolbar,
644         unsynchronized items.
646         * glayout.c (panel_view_menu_uiinfo panel_view_toolbar_uiinfo):
647         Made the view names consistent with the toolbar names.  Also,
648         added underscore accelerators to the menu items.
649         (copy_uiinfo_widgets): New function to copy the widgets from an
650         uiinfo array into a widget array.
651         (create_container): Copy the uiinfo widgets to the panel
652         structure.
654         * gcmd.c (set_view_type): New function to set the list view type
655         and synchronize the menu and toolbar items.
656         (gnome_close_panel): Free the view menu/toolbar item arrays.
658 1999-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
660         * gpopup2.c (perform_mount_unmount): Set the icon's cursor while it is
661         being operated on.
662         (handle_mount): Use perform_mount_unmount().
663         (handle_unmount): Likewise.
664         (handle_eject): Set the icon's cursor while it is being ejected.
666         * gdesktop.c (desktop_icon_set_busy): New function to set a watch
667         or normal cursor for a desktop icon.
669         * gdesktop.c (desktop_icon_info_open): Set the cursor to a watch
670         while the icon is being opened.  Also, fixed memory leaks.
671         (do_eject): Added a missing return value.
673 1999-03-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
675         * gmount.c (setup_devices): Use new tigert icon.
677         * gdesktop.c (do_mount_umount): Use g_readlink here.
679         * gpopup2.c (handle_eject): Small tuning.  And use g_readlink :-).
681         * gmount.c (mount_point_to_device): New function.  Mapes a mount
682         point to its device.  Required since we are now using the mount
683         point (as this is not ambiguous) as the key for the devices and
684         the eject command needs the device name, not the mount point.
686         * gdesktop.c (desktop_icon_info_open): First try to see if
687         filename is mountable.  Then do the directory tests and the file
688         launching tests.  Fixes mount-by-double click.
690 1999-03-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
692         * glayout.c (save_panel_types): Do not save the setup of a desktop
693         panel.
695         * gpopup2.c (handle_mount): Use get_full_filename().
696         (handle_unmount): Likewise.
697         (handle_eject): Likewise.
698         (handle_open): Likewise.
700         * gdesktop.c (update_url): Made static.
701         (desktop_reload_icons): Call update_url() when updating an
702         existing icon.
704         * gpopup2.c (handle_properties): Do not update the icon url here.
706 1999-03-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
708         This is a semi-big slew of changes to integrate the DESKTOP_BRANCH
709         into the main trunk.  Now the gdesktop code creates a temprary
710         WPanel structure and passes it on to the core file management
711         functions.  Also, the menu code is improved (we now use gpopup2;
712         gpopup should go away shortly and gpopup2 should replace it).
713         This makes the desktop act consistently with the file panels.
714         Thanks to Jonathan for his help with this branch.
716         * gdnd.c (perform_action): Use mc_lstat(), not mc_stat().
718         * glayout.c (update_panels): Do not update the panels that are
719         desktop panels.
721         * gdesktop.c (icon_is_in_area): An icon is not considered to be in
722         a 0x0 area.
724         * gpopup2.c (handle_open): Fetch the desktop icon from the
725         filename and call desktop_icon_info_open().
727         * gdesktop.c (desktop_icon_info_get_by_filename): New function to
728         look up a desktop icon by its filename.
730         * glayout.c (create_new_menu_from): Test for the ".desktop" suffix
731         correctly.
733         * gpopup2.c (handle_properties): If the file comes from a desktop
734         panel, always allow edition of the icon image.
736 1999-03-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
737         
738         * gdialogs.c: Support ui->ctx to be NULL, as file.c will set this
739         to NULL for background operations.
741 1999-03-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
743         * gdesktop.c (icon_drag_data_received): Pass the full directory
744         name to gdnd_perform_drop.
746         * gpopup.c (create_regexp_actions): This routine no longer creates
747         the default copy/move/delete context menu entries.
749         (file_actions): Include the copy/move/delete options here.  This
750         also enabled me to reorder things to put "Delete" closer to the
751         top, as it is a pretty common operation.
753 1999-03-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
755         * gmain.c (session_save_state): Add call to gnome_config_sync().
757         * gutil.c (my_system_get_child_pid): reset SIGPIPE to a sensible
758         value. 
759         (my_system_get_child_pid): Close also stdin/stdout/stderr
761         * gdesktop.c (is_mountable): Allow user-nfs devices to be mounted
763 1999-03-08  Federico Mena Quintero  <federico@nuclecu.unam.mx>
765         * gscreen.c (can_drop_on_clist): New function to figure out if the
766         user is trying to drop on a valid region of a GtkCList.  It sucks
767         to have to poke into its internal geometry, though.
769 1999-03-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
771         * gnome-file-property-dialog.c (apply_metadata_change): only set
772         the needs-terminal property if we actually created such entry.
774 1999-03-08  Sergey Panov  <sipan@mit.edu>
776         * gcustom-layout.c, gprefs.c: Make the preferences dialog
777         translatable. (include files in gcustom-layout.c and use of
778         the _() macro in gprefs.c)
780 1999-02-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>
782         * gnome-file-property-dialog.c (create_settings_pane): Simplify
783         the test and fix it.
785         * gdnd.c (drop_on_file): Fix these so that they can use the
786         metadata drop-action.
788         * gdesktop.c (desktop_icon_info_open): Ugly.  Needs to share more
789         code here.  Use the metadata first, and the is_exe to find out how
790         to launch an application.
792         * gnome-file-property-dialog.c (perm_group_new): Check the return
793         value of getgrgid.
794         (perm_group_new): Do not use a grp if it does not exist.
796 1999-02-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>
798         * glayout.c (my_app_create_menus): New function, used to create
799         our menus and set the realy properly, to make cpanel (ie,
800         current_panel) always consistent with what the user users.
802         So, no need to kill the tearoff menus in gmc now.
804         * gmount.c (is_block_device_mountable): compare the device name
805         here. 
806         
807         (get_mountable_devices): Do not stop scanning devices.  
808         
809         * gview.c (scrollbar_moved): Call view update here, with
810         update_gui = FALSE.
812         * gdesktop.c (desktop_icon_info_open): Add needs terminal support.
814         * gnome-file-property-dialog.c (create_settings_pane): Add Needs
815         terminal check box
817 1999-02-25  Jonathan Blandford  <jrb@redhat.com>
819         * gpopup2.c: even more bug-fixes.  Plenty more left to do, but now
820         all the menu code seems to work other then the
821         select-and-popup-menu problem.
823         * gaction.c (gmc_can_view_file): new function.  Can we view the file?
825 1999-02-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>
827         * gaction.c (gmc_open_filename): Add support for needsterminal.
829         * gscreen.c: Add New Folder option to the panel popup.
831 1999-02-25 Owen Taylor  <otaylor@redhat.com>
833         * gdialogs.c (file_delete_query_recursive): GNOME
834         replacement for recursive delete query dialog.
836         * gprefs.c gcustom-layout.[ch]: Add a new page to
837         the preferences dialog to allow the user to change
838         the columns in the custom view.
840 1999-02-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>
842         * gmount.c (desktop_cleanup_devices): Export this routine now and
843         call it from gdeskop instead of overloading gmount_setup_devices. 
845         * gprint.c: Sample file, it uses an externally provided program
846         (not in 1.0 so far) to setup printer devices.
847         
848         * gmount.c (gmount_setup_devices): No longer cleans up here.
850         * gicon.c (gicon_get_filename_for_icon): Return const char *, this
851         tells the user of this routine "you better not touch or free this
852         you dofus".
854         * gnome-file-property-dialog.c (apply_metadata_change): Always set
855         the name of the icon to the new value, as the entry will always
856         match the imlib image anyways (due to the fixes I did to const
857         correctness). 
858         (generate_icon_sel): Do not free the value.  We do not own this
859         return value. 
861         * gdesktop.c (is_mountable): NULL terminate string returned from
862         readlink.  Yes guys, readlink does not NULL terminate things. 
863         (do_mount_umount): ditto.
864         
865         * gnome-file-property-dialog.c (init_metadata): ditto
867 Tue Feb 23 17:41:45 1999  George Lebl  <jirka@5z.com>
869         * gmain.c: set the restart property of the gnome client to
870           RESTART_IMMEDIATELY or RESTART_NEVER if we're gonna quit
872 1999-02-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
874         * gnome-file-property-dialog.c (gnome_file_property_dialog_new):
875         When dealing with a symbolic link, check the stat info from the
876         real file, not the link.
878         * gscreen.c (panel_tree_drag_data_received): Use path here (which
879         is what is selected on the tree, not panel->cwd).
881         * gdesktop.c (desktop_drag_data_received): Simplify.
883         * gscreen.c (panel_icon_list_drag_data_received): Pass the full
884         path to gdnd_perform_drop.
885         (panel_clist_drag_data_received): same.
887         * gdnd.c (drop_on_directory): We no longer take a file_entry
888         here.  The directory we get passed is already a fully qualified
889         name of the target location.
891         * gwidget.c (x_create_input): Hook to the changed signal and sync
892         the input with our view of the entry.  This fixes the paste bug
893         reported. 
895 Tue Feb 23 01:57:22 1999  George Lebl  <jirka@5z.com>
897         * gmount.c: fix obvious typos, use str in option_has_user, fix
898           mt_opts typo and is_block_device_mountable can't return TRUE nor
899           FALSE, so it returns NULL
901 1999-02-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
903         * gnome-file-property-dialog.c (apply_metadata_change): Fix memory leak.
905 1999-02-23  Jonathan Blandford  <jrb@redhat.com>
907         * gpopup2.c (handle_open_with): use the new dialog.  Doesn't quite
908         work -- I'll make sure it does tonight.
910         * gnome-open-dialog.c: new widget -- an "Open with..." dialog.
912 1999-02-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>
914         * gdesktop.c (desktop_reload_icons): Fix memory leak.
916         * glayout.c (create_new_menu_from): Fix memory leak.
918         * gdesktop.c (desktop_icon_info_open): Launch a panel at the
919         location of the mount point.
921         * gmount.c (setup_devices): Use g_list_free, not g_free.  Fed,
922         test your fixes to my code ;-)
924         * glayout.c (create_container): Add a Desktop menu if the WM is
925         not GNOME compliant.
927         * gdesktop.c (setup_motif_dnd_proxy): Use Window instead of
928         gint32, fix from George Lebl.
929         (setup_xdnd_proxy): ditto.
931 1999-02-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>
933         * gdesktop.c (file_entry_fill): Initialize fe->f.dir_size_computed.
935 1999-02-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>
937         * gmain.h: Removed set_current_panel() since it was never used.
939         * glayout.c (set_current_panel): Made static and renamed from
940         set_new_current_panel().
941         Removed old toolbar cruft.
943         * gmount.c (get_mountable_devices): Made static.
945         * Makefile.in (ICONS): Added i-floppy.png, i-cdrom.png,
946         i-printer.png.  Thanks, Tigert!
948 1999-02-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>
950         * gmount.c (gmount_setup_devices): New function to set up the
951         mountable devices on the desktop directory.  Moved over from
952         gdesktop.c.  Added an argument that specifies whether it should
953         clean up the device list first.
954         (cleanup_devices): Delete the metadata for the devices.
955         (setup_devices): Free the list of device names.  Use the proper
956         icon for each device.
957         (create_device_link): Better error checking.
959         * gdesktop.c (create_desktop_dir): Use gmount_setup_devices().
960         (desktop_icon_info_destroy): Made static.
961         (desktop_popup_items): The command for rescanning mountable
962         devices should go here.
963         (handle_rescan_devices): Call gmount and refresh the desktop.
965         * gdesktop.h: Removed the declaration of tree_panel_visible, since
966         it has nothing to do with the desktop.
968         * glayout.c (gnome_panel_commands_menu): Removed the recreate
969         devices command.
971         * gdesktop.c (desktop_popup_items): Added a new command to create
972         a file window.
974 1999-02-17  Federico Mena Quintero  <federico@nuclecu.unam.mx>
976         * gdesktop.c (do_mount_umount): Removed unused variable.
977         (do_eject): Return FALSE if there is no eject command.
978         (setup_devices): Removed unused variable.
980         * gdnd.c (drop_on_file): Pass the directory to if_link_is_exe().
981         (gdnd_validate_action): Likewise.
982         (gdnd_perform_drop): Made consistent with the rest of the code by
983         taking the directory name along with the file entry.
984         (gdnd_validate_action): Likewise.
986         * gdesktop.c (icon_drag_motion): Pass the directory to the gdnd
987         functions.
988         (icon_drag_data_received): Likewise.
989         (desktop_drag_motion): Likewise.
990         (desktop_drag_data_received): Likewise.
991         (desktop_icon_info_open): Pass the directory to if_link_is_exe().
993         * gscreen.c (panel_icon_list_drag_data_received): Pass the
994         directory to gdnd functions.
995         (panel_clist_drag_data_received): Likewise.
996         (panel_tree_drag_data_received): Likewise.
997         (panel_clist_drag_motion): Likewise.
998         (panel_icon_list_drag_motion): Likewise.
1000 1999-02-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1002         * gdesktop.c (reload_desktop_icons): Load the information provided
1003         on the .desktop file for the desktop icon information: icon
1004         filename and text to be displayed.pwd
1005         
1007         * gpopup.c (create_actions): Add ejectable 
1009         * gdesktop.c (do_eject): Add eject command.
1011 1999-02-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1013         * gpopup.c (create_actions): Add support for mountable icons.
1015         * gdesktop.c (try_to_mount): Add an option to automatically mount
1016         links on the desktop that point to devices. 
1017         (is_mountable): Returns true if a pathname is mountable.
1019         * glayout.c: Add the dirsizes command here.
1021         * gmount.c: New file.  Implements support routines for
1022         mount/umount.
1023         
1024 1999-02-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1026         * i-symlink.png: Flipped the image around, since we are putting
1027         the little icons on the lower-right corner.
1028         * i-stalled.png: Likewise.
1030         * gicon.c (gicon_get_filename_for_icon): Doh, use image_hash here.
1032 1999-02-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1034         * gicon.c: Lots of changes to support the little symlink/stalled
1035         icons that get overlaid on the normal file icons.  We now have the
1036         concept of an icon set, which is a cache of normal icons plus
1037         their overlaid versions.
1039         * gnome-file-property-dialog.c (apply_metadata_change): Use
1040         gicon_get_filename_for_icon().
1041         (generate_icon_sel): Likewise.
1043         * gnome-file-property-dialog.c (create_general_properties): Use
1044         buffers of size MC_MAXPATHLEN.
1045         (init_metadata): Likewise.
1047 1999-02-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1049         * gmetadata.c: Removed the gmeta_del_icon_pos() function, since it
1050         is no longer used anywhere.
1052         * gdesktop.c (reload_desktop_icons): Use gnome_metadata_delete()
1053         instead of gmeta_del_icon_pos().
1054         (desktop_icon_info_delete): Likewise.
1055         (desktop_icon_info_destroy): Do not call gnome_metadata_delete().
1057 1999-02-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1059         * gdesktop.c (arrange_desktop_icons): I am such a doofus, I did
1060         not initialize two variables here.
1062 1999-02-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1064         * gdesktop.c (reload_desktop_icons): Take auto-positioning and
1065         snap-positioning into account.  This is the right thing to do.
1066         (get_icon_auto_pos): Do auto-positioning in two steps, first from
1067         the requested position to the end of the slot array, then from
1068         slot zero forwards if required.
1070 1999-02-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1072         * gcmd.c (gnome_open_terminal_with_cmd): New routine, based on the
1073         gnome_open_terminal routine, that will allow the user to specify a
1074         command to execute (used internally).
1076         * gaction.c (gmc_edit_filename): Support for the GNOME editor
1077         environment properties. 
1079         * gdesktop.c (create_desktop_dir): Support GNOME_DESKTOP_DIR
1080         variable to configure the desktop directory.
1082 1999-02-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1084         * mc.keys.in.in: Use "gnome-moz-remote file:%d/%f" for the html
1085         file actions.
1087         * gscreen.c (toolbar): Added a "rescan" button.
1089         * gprefs.c (create_prop_box): Make the preferences dialog modal.
1090         Also, set the window title and set the window's parent.
1091         Removed some unused functions.
1093 1999-02-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1095         * gdesktop.c (desktop_popup): Handle popup menus for the desktop.
1096         (arrange_desktop_icons): New function to auto-arrange the desktop
1097         icons.
1098         (reload_desktop_icons): Take care of positioning the new icons by
1099         ourselves; do not rely on desktop_icon_info_new() to do it.
1100         (remove_from_slot): Reset the icon's slot to -1.
1101         (reload_desktop_icons): Show all the icons after they have been
1102         loaded, instead doing it one by one.
1104         * gscreen.c (file_list_popup): Handle popup menus for the blank
1105         areas of the file panels.
1106         (panel_icon_list_button_press): Call file_list_popup().
1107         (panel_file_list_press_row): Likewise.
1109 1999-02-14  Sergey Panov <sipan@mit.edu>
1111         * glayout.c: Fixed my own stupid typo( stock ID instead of NULL)
1112         it was not critical. A few minor, rather cosmetic changes in
1113         GnomeUIInfo structures.
1115 1999-02-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1117         * mc.keys.in.in: Use Tigert's new icon for man pages.
1119 1999-02-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1121         * gdialogs.c (file_mask_dialog): Renaming files was not working
1122         due to having the "file-must-exist" bit turned on.
1124         * gnome-file-property-dialog.c (apply_metadata_change): Metadata
1125         rename the file.  
1127         Change fpd->file_name to point to the new name so that any
1128         metadat changes take effect on the new name, not the old name.
1130         Test return value from move_file_file.
1131         
1132         (init_metadata): Fixed typo.
1134 1999-02-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1136         * mc.metadata.in: Added a regexp for EPS files.
1138         * mc.keys.in.in: Use Tigert's new icon for Postscript files.
1139         Possible FIXME: are there different MIME types for PS and EPS
1140         files?
1142 1999-02-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1144         * gdesktop-icon.c (set_icon): Do not destroy the image if it is
1145         the same as the old one.  Sigh, imlib really needs proper
1146         refcounting.
1148         * gscreen.c: Use gpopup_do_popup() until the new version is
1149         finished.
1151         * gpopup2.c (create_actions): Made the action selection logic
1152         simpler.
1153         (gpopup_do_popup2): Now can only operate on panels.
1154         (file_actions): Sanitized the actions a bit.
1156         * gutil.c (my_system_get_child_pid): sa_handler must be
1157         gnome_sigchld_handler, not gnome_sigchld_installed.
1159         * gpopup.c (dicon_properties): Do not call reread_cmd().  This is
1160         a hack until the menus for panels/desktop are finished.
1162         * gscreen.c (panel_file_list_press_row): Use gpopup_do_popup2().
1164 1999-02-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1166         * gutil.c (my_system_get_child_pid): Implement a erase-temp-file
1167         when child dies instead of waiting for child that was launched
1168         from shell/temp-file to finish.
1170 1999-02-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1172         * gdesktop.c (desktop_icon_info_place): Better icon placement by
1173         rounding to the proper slot number.
1174         (select_range): Simpler range selection for exact Windows behavior.
1176         * gdnd.c (drop_on_directory): Do not ask for the action twice.
1177         This was a leftover from a bit of code reorganization.
1179         * gscreen.c (panel_icon_list_button_press): Fixed "=" -> "!="
1180         typo.
1182 1999-02-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1184         * gaction.c (gmc_open_filename): Add support for running .desktop
1185         files. 
1186         Made const correct.
1187         (gmc_view): Made const correct.
1189 1999-02-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1191         * Makefile.in (ICONS): Added i-fifo.png to the list of icons.
1193         * gicon.c (gicon_init): Load the proper FIFO and socket icons.
1194         (gnome_file_entry_color): Return the proper icon for FIFOs.
1196         * i-fifo.png: Added this file, and made i-sock.png be the right
1197         image (thanks, Tigert!).
1199         * gscreen.c (ILIST_FROM_SW): New macro to extract the icon list
1200         from the scrolled window.
1201         (panel_create_icon_display): Create a scrolled window and put the
1202         icon list inside it.  Changed the rest of the code to know about
1203         this.
1205         * gcorba.c (do_window_close): It turns out that we *do* need to
1206         call CORBA_free().  It was a bug in ORBit which was causing this
1207         to crash.
1209 1999-02-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1211         * gdesktop.c (drag_end): Reload the desktop when a drag from the
1212         desktop terminates (the user may have moved something away).
1214 1999-02-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1216         * gcorba.c (do_window_close): Removed call to CORBA_free, as
1217         PortableServer_POA_deactivate_object already calls CORBA_free on
1218         the object.
1220 1999-02-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1222         * glayout.c (gnome_close_panel_event): This function should return
1223         FALSE.
1225         * gcorba.c (corba_init): Cast poa to PortableServer_POA.
1226         (impl_GNOME_FileManagerWindow_close): Call gnome_close_panel(); do
1227         not destroy the widget by hand.
1229         * gcmd.c (gnome_close_panel): This function should be void.
1231         * gpopup2.c (popup_handle_rescan): Call reread_cmd().
1233         * gscreen.c (panel_icon_list_button_press): Return TRUE if we
1234         handled a popup menu.
1236 1999-02-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1238         (impl_GNOME_FileManagerFactory_create_window): Fix bug
1239         spooted by federico.  I was connecting to the wrong signal.
1241 1999-02-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1243         * gtkdtree.c (gtk_dtree_class_init): Added two new signals,
1244         scan_begin and scan_end.
1245         (gtk_dtree_expand): Call scan_begin() and scan_end().
1246         (gtk_dtree_select_row): Call scan_begin() and scan_end().
1247         (gtk_dtree_expand): Use gtk_ctree_select(), not gtk_dtree_select_row().
1248         (gtk_dtree_collapse): Select the node when it is collapsed.
1250         * gscreen.c (panel_create_tree_view): Added handlers for the
1251         scan_begin and scan_end signals of the tree -- these will set the
1252         cursor to a watch while the tree is being scanned.
1254 1999-02-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1256         * gdesktop.c (desktop_icon_info_destroy): Delete the metadata
1257         associated with this icon.
1259 1999-02-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1261         * gwidget.c (entry_click): On mouse clicks, mark the input as
1262         changed-without destroy.
1264 1999-02-07  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1266         * gscreen.c (x_create_panel): Removed a couple unused variables.
1268 1999-02-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1270         * gtkdtree.c (gtk_dtree_select_row): Disable row selection when
1271         were are removing entries from the tree.
1273         * gutil.c (my_system_get_child_pid): Fix.  We always wait for the
1274         child process.
1276         * gtkdtree.c (gtk_dtree_lookup_dir): Scan the whole tree.
1277         Appanrently now the nodes expose are not ordered, but can contain
1278         holes and gaps
1280 1999-02-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1282         * gtkdtree.c (gtk_dtree_insert_node): This function was never
1283         returning the newly-created sibling.
1285 Sun Feb  7 05:29:17 1999  Timur Bakeyev <mc@bat.ru>
1287         * Makefile.in: Remove references and dependences to/from libslang -
1288         we don't need this in GNOME. Changed the order of linking - libgtkedit
1289         require libgnomeui.a, so swap $(LDFLAGS) and $(EXTRALIBS). The same for
1290         corba edition.
1291         
1292         gdnd.c, gmetadata.c, gpopup2.c, gtools.c: Adde #include "global.h" or
1293         move it before #include <gnome.h> to avoid warnings about redefining
1294         MIN, MAX nad RE_DUP_MAX. More clean compiling.
1295         
1296         * gpopup2.h: New file - to avoid errors during "make distcheck". What
1297         it is for, really?
1299 1999-02-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1301         * gnome-file-property-dialog.c (apply_metadata_change): #include
1302         string.h and replace references to rindex to strrchr.
1304 1999-02-07  Tomas Ogren  <stric@ing.umu.se>
1306         * glayout.c, gnome-file-property-dialog.c: s/rindex/strrchr/
1307         To get rid of BSDism and make it compile on solaris 2.6
1309 1999-02-06  Ettore Perazzoli  <ettore@comm2000.it>
1311         * gscreen.c (x_create_panel): The location bar is now a simple
1312         GtkHBox instead of a GtkToolbar, and as a consequence the location
1313         entry widget is expanded to fill all of the window horizontally.
1315 1999-02-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1317         * gdesktop.c (drag_data_get): Set the Netscape URL from the icon
1318         if it is available.  Wheee!  We can now drop icons onto Netscape.
1320         * gmain.h: Added prototype for gmc_open_filename().
1322         * gdesktop.c (desktop_icon_info_open): Fixed call to
1323         gmc_open_filename().  See why it is good to have prototypes? :-)
1325         * gdnd.c (perform_action): Oops.  Removed a leftover "break" that
1326         was causing the loop to exit, so you could not operate on more
1327         than one file.
1329 1999-02-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1331         * gpopup2.c (popup_handle_properties): Update the URL information
1332         on change.
1334         * gnome-file-property-dialog.c (generate_actions_box): Fix memory leak.
1335         (create_general_properties): Fix memory leak.
1337         * gdesktop.c (desktop_icon_update_url): New function.  Updates any
1338         changes done to the url/caption on the file-property-dialog.
1340         * gnome-file-property-dialog.c
1341         (gnome_file_property_dialog_finalize): Release all of the
1342         resources allocated (metadata routines alwayre return an allocated
1343         block of memory).
1345         Add support for changing the url an icon points to and the caption.
1347         * gdnd.c (drop_url_on_directory): Better set the icon-filename
1348         metadata entry instead of hard coding it.
1350 1999-02-05  Jonathan Blandford  <jrb@redhat.com>
1352         * gcmd.c (gnome_reverse_selection_cmd_panel): new function -- does
1353         good things
1355         * gscreen.c (panel_icon_list_select_icon): uses new popup menu
1356         (panel_icon_list_button_press): ditto
1358         * gpopup2.c (gpopup_do_popup2): new implementation of popup
1359         menu.  Many changes -- almost all internal.  Much cleaner now...
1360         Off to England.
1362 1999-02-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1364         * gicon.c (gicon_get_url_image): Return an image for url types.
1365         (gicon_init): Load the url image.
1367         * gdesktop.c (desktop_icon_info_new): Use an URL image for
1368         desktop-urls.   Use the url as the caption for those icons. 
1369         
1370 1999-02-04  Jonathan Blandford  <jrb@redhat.com>
1372         * gprefs.c (caching_and_optimization_props): wording changes
1374 1999-02-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1376         * gdesktop.c (desktop_icon_info_open): Run "execute" if the file
1377         is an executable.  I forgot that gmc_open does not test for
1378         executable-ness. 
1380 1999-02-04  Jonathan Blandford  <jrb@redhat.com>
1382         * gnome-file-property-dialog.c (apply_uid_group_change): Bug fix.
1383         (apply_metadata_change): Another bug fix.
1385 1999-02-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1387         * gdnd.c (gdnd_validate_action): Show the correct feedback when
1388         dragging URLs.
1390 1999-02-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1392         * gdesktop.c (desktop_icon_info_open): Use gmc_open_filename
1393         instead of the stuff that goes trough a file_entry as we loose the
1394         full pathname.
1396         * gnome-file-property-dialog.c (generate_actions_box): Tag "open"
1397         for translation
1398         (apply_metadata_change): Use fm-open instead of fm_open for the
1399         metadata keys.
1401         * gscreen.c (panel_file_list_configure_contents): Make the icon on
1402         the type column be displayed.
1403         (panel_file_list_select_row): Removed dead code.
1404         (panel_file_list_press_row): Select the row before calling
1405         gpopup_do_popup. 
1407 1999-02-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1409         * gscreen.c (drop_types): Allow dropping URLs on file panels.
1411         * gdnd.c (gdnd_validate_action): Added an "on_desktop" argument;
1412         this specifies that the user is dragging over the desktop.  Added
1413         cases for drags of desktop icons and URLs.
1414         (gdnd_perform_drop): New public function to handle drops.  This is
1415         now the master function to handle drops -- use this to make all of
1416         MC consistent.
1417         (drop_on_directory): Made static and renamed from
1418         gdnd_drop_on_directory().  Made it fit for use by
1419         gdnd_perform_drop().
1420         (drop_url_on_directory): New function to drop an url on a
1421         directory, moved over from gdesktop.c.
1422         (drop_uri_list_on_directory): New function to handle drops of URI
1423         lists on a directory.
1424         (drop_on_file): New function to handle drops on a non-directory
1425         file entry.  This is moved over from gdesktop.c,
1426         desktop_icon_drop_uri_list().  This is yet to be finished.
1428         * gdesktop.c (desktop_icon_drop_uri_list): Fix memory leak.
1429         (desktop_drag_motion): Use gdnd_validate_action().
1430         (dnd_icon_targets): Allow dropping URLs on icons.
1431         (icon_drag_motion): Use gdnd_validate_action().
1432         (desktop_drag_data_received): Use gdnd_perform_drop().
1433         (icon_drag_data_received): Use gdnd_perform_drop().
1435         * gscreen.c (panel_icon_list_drag_data_received): Use
1436         gdnd_perform_drop().
1437         (panel_clist_drag_data_received): Use gdnd_perform_drop().
1438         (panel_tree_drag_data_received): Use gdnd_perform_drop().
1440         * gcmd.c (gnome_about_cmd): Fixed Foundation typo, and updated the
1441         copyright date.
1443 1999-02-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1445         * gnome-file-property-dialog.c (create_general_properties): Use
1446         strrchr instead of rindex
1448 1999-02-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1450         * gdesktop.c: Init gicon here to avoid crashing when we have the
1451         metadata database locked.  Not really important, but makes the
1452         code cleaner (in terms of fixes).
1454 1999-01-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1456         * gnome-file-property-dialog.c (icon_sel_callback): Fix the
1457         conditional here.
1458         
1459 1999-02-01  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1461         * gdesktop.c (desktop_drag_motion): If the user is dragging a
1462         Netscape url, allow ACTION_LINK.
1463         (setup_desktop_dnd): Now we use a single GtkInvisible widget to
1464         proxy both DnD and clicks on the desktop.
1465         (setup_motif_dnd_proxy): New function to set up a widow as a Motif
1466         DnD proxy (to allow drops from Netscape, for example).
1467         (setup_desktop_click_proxy_window): Use the proxy_invisible widget.
1468         (drop_url): Reload desktop icons after creating the url entry.
1469         (desktop_icon_info_place): Allow a drop from something other than
1470         a desktop icon to be placed where the user wants.
1471         (desktop_drag_motion): Unconditionally specify ACTION_MOVE if we
1472         are dragging a desktop icon.
1473         (desktop_icon_info_place): Remove the icon from its slot before
1474         calling the smart-positioning routines.
1476 1999-01-31  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1478         * gdesktop.c (reload_desktop_icons): Reload the icon image for a
1479         file that already exists in the desktop, because it may have
1480         changed.
1482         * gdesktop-icon.c (desktop_icon_reshape): Center the text
1483         correctly if the user is using huge icons.
1485 Mon Feb  1 00:49:18 1999  Timur Bakeyev <mc@bat.ru>
1487         * gscreen.c (panel_configure_file_list): Add central justification,
1488         as we got it (useless, imho :)
1490 Sun Jan 31 19:42:47 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
1492         * Makefile.in (install_mx): make it work with srcdir != builddir
1493         (gmc.gnorba is located in $srcdir)
1495 1999-01-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1497         * gdesktop.c (reload_desktop_icons): Move metadata_unlock after
1498         the positioning loop (as we use the metadata there too).
1499         (desktop_icon_info_new): Accept a new parameter: url.
1500         (drop_url): New function.  Creates the files that represent urls
1501         on the desktop.
1502         (text_changed_url): New routine to handle url-renames
1504         Use the metadata "desktop-url" property to figure out if an icon
1505         represents an url.
1507 1999-01-28  Jonathan Blandford  <jrb@redhat.com>
1509         * gnome-file-property-dialog.c (create_settings_pane): We only let
1510         you set info if we are a regular file, or a link to a regular file.
1512         * gdesktop-icon.c (desktop_icon_reshape): Cut-n-paste error fixed
1513         by Quartic.
1515 1999-01-27  Jonathan Blandford  <jrb@redhat.com>
1517         * gnome-file-property-dialog.h (struct _GnomeFilePropertyDialog):
1518         Now make open field mandatory and icon selection optional.
1519         * gnome-file-property-dialog.c: as above
1520         
1521         * gpopup.c (panel_action_properties): only allow setting images if
1522         we_can_afford_the_speed.
1524         * gicon.c: make we_can_afford_the_speed non-static
1526 1999-01-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1528         * gcorba.c: Provide new code to activate an existing
1529         FileManagerFactory factory.
1531         installed gmc is now corba-gmc.  plain-gmc is still available if
1532         you want it.
1534 Thu Jan 28 02:15:48 1999  Timur Bakeyev <mc@bat.ru>
1536         * gdialogs.c: fixed "regexp.h" -> "eregexp.h" conversion.
1537         
1538         * oldnd.c: Replaced copy_strings() with g_strconcat().
1539         
1540 1999-01-26  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1542         * gscreen.c (panel_clist_motion): Stop the emission of the
1543         motion_notify_event signal so that it does not reach the clist.
1544         We do not want it to select rows while dragging.
1545         Replaced copy_strings() with g_strconcat().
1547         * gdnd.c (gdnd_validate_action): Do not override GDK_ACTION_ASK.
1549         * gdesktop.c: Updated the TODO list at the top of the file.
1551 Wed Jan 27 03:14:46 1999  Timur Bakeyev <mc@bat.ru>
1553         * Converted memory managment to Glib - where it wasn't done. Now we 
1554         use g_new()/g_malloc()/g_strdup()/g_free() routings. copy_strings() re-
1555         placed by g_strconcat(), and sprintf() by g_snprintf(). Some other,
1556         minor changes.
1558 1999-01-26  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1560         * gscreen.c (panel_setup_drag_scroll): Renamed from
1561         panel_setup_drag_motion().
1562         (panel_clist_drag_motion): Use gdnd_validate_action().
1563         (panel_clist_motion): Return immediately if the event window is
1564         not the clist_window.  Otherwise, forward the event to
1565         panel_widget_motion().
1567         * gdnd.c (gdnd_find_panel_by_drag_context): New public function to
1568         find a panel based on a drag context.  This is basically the old
1569         find_panel_owning_window() made public.
1570         (gdnd_drop_on_directory): Test for the source widget being a tree,
1571         and if so, do not use the default behavior for panels.
1572         (gdnd_validate_action): New function to compute the final drag
1573         action given some conditions.  This is now used to make dragging
1574         behavior consistent across the desktop and the file panels.
1576 1999-01-26  Jonathan Blandford  <jrb@redhat.com>
1578         * gnome-file-property-dialog.c: Many Many Many changes.  Now it's
1579         pretty cool.  You can set all meta-data but the icon now.  Need to
1580         make gmc do the right thing with it, though.
1582 1999-01-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1584         * gtkdtree.c (gtk_dtree_select_row): This should be also protected 
1585         against async notifications.
1587 1999-01-25  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1589         * gscreen.c (panel_create_icon_display): Only use
1590         GTK_DEST_DEFAULT_DROP since we want to do exotic stuff in the
1591         drag_motion handler to validate drops.
1592         (panel_icon_list_drag_motion): Use gdnd_validate_action().
1594         * gdnd.c (gdnd_drop_on_directory): Removed hack that prevented the
1595         user from dropping files on the same panel as the source one.
1596         This should not be done here.
1598         * gdnd.c (get_action): Sensitize the menu items based on the
1599         allowed actions in the drag context.
1600         (actions): Add some underlined accelerators for the action menu.
1602         * gdesktop.c (icon_drag_motion): Use S_ISDIR() in addition to
1603         fe->f.link_to_dir.
1605         * gscreen.c (panel_file_list_scrolled): Removed this function, as
1606         it was not used for anything useful.
1608         * gdnd.c (gdnd_drop_on_directory): Duh.  Use context->action, not
1609         context->suggested_action.
1611 1999-01-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1613         * gtkdtree.c (gtk_dtree_load_path): Keep track of when we are
1614         loading the tree (and thus we do not care about async
1615         notifications to the tree state changes) and when we are done (and
1616         thus, we care about the async treestore structure notifications). 
1618 1999-01-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1620         * gcmd.c (ep_add_callback): Set Window's position to
1621         GTK_WIN_POS_MOUSE.
1622         (gnome_external_panelize): ditto.
1623         (gnome_filter_cmd): ditto.
1625         * gdialogs.c (file_progress_query_replace_policy): Set Window's
1626         position to GTK_WIN_POS_MOUSE. 
1627         (file_progress_real_query_replace): ditto.
1628         (file_mask_dialog): ditto.
1630         * gdialogs.c: Tag the strings for localization.  Remove debugging
1631         messages. 
1633         * gmain.c (gmc_window_setup_from_panel): Helper routine used to
1634         set the GTK_WIN_POS_MOUSE on a window and set the parent with
1635         gnome_dialog_set_parent (iff you have the WPanel * pointer to the
1636         parent). 
1638         * gtools.c (query_dialog): Set the window position to GTK_WIN_POS_MOUSE.
1640         * gtkdtree.c (gtk_dtree_destroy): Kill the add_entry notification hook.
1641         (gtk_dtree_init): Install a notification function for treentry.
1642         removal.
1643         (entry_added_callback, entry_removed_callback): Implemented.  Now
1644         the tree is in sync with the panels and reload will update the
1645         tree correctly.
1647 1999-01-22  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1649         * gdesktop-icon.c (set_text): Update the call to
1650         gnome_icon_text_item_configure() for the new API.
1652 1999-01-21  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1654         * gdesktop.c (desktop_drag_data_received): Do not force links on
1655         the desktop.
1657         * gscreen.c (panel_create_file_list): Do not use
1658         GTK_DEST_DEFAULT_ALL for the drop site.  Only use
1659         GTK_DEST_DEFAULT_DROP, since we need to check motion ourselves.
1660         (panel_clist_drag_motion): Do not allow dropping on the clist buttons.
1661         (panel_clist_button_press): Do not assign the
1662         panel->maybe_drag_start flag if the user clicked outside the clist_window.
1664         * gdesktop.h: Removed old crud (desktop_icon_t, icon_t).
1666         * gscreen.c (drag_types, drop_types): Use the constants from gdnd.h.
1668 1999-01-21  Jonathan Blandford  <jrb@redhat.com>
1670         * gnome-file-property-dialog.c (apply_uid_group_change): uh, lets
1671         do this in Octal. (:
1673         * glayout.c: comment out compare panels.
1675         * gnome-file-property-dialog.h: new file.  This is a new widget
1676         for the file-properties dialog.  It doesn't handle mode changes
1677         quite right yet, but does everything else beautifully...
1679         * gnome-file-property-dialog.c: new file
1681         * gpopup.c (panel_action_properties): use new dialog
1682         (dicon_properties): as above.
1684 1999-01-21  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1686         * gscreen.c (panel_create_file_list): Added GDK_ACTION_ASK to the
1687         destination actions.
1688         (panel_create_icon_display): Likewise.
1689         (panel_create_tree_view): Likewise.
1691         * gdesktop.c (desktop_drag_motion): If the user explicitly
1692         requested action ASK, then do not make feedback show MOVE.
1694         * gscreen.c (panel_widget_motion): Pass in all drag actions now
1695         that Gtk handles button 2 by itself.
1697         * gdesktop.c (icon_event): Also delay the call to select_icon()
1698         until button release if the icon is selected and there are no
1699         modifier keys pressed.  This lets us perform drags on
1700         multi-selections easily.
1702 1999-01-21  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1704         * gdesktop.c (setup_icon_dnd_dest): Always specify ACTION_MOVE,
1705         since we want to be able to move the icons around.  Connect to the
1706         drag_motion signal.
1707         (dnd_icon_targets): List desktop icons as a target to be able to
1708         move them just a notch in the desktop.
1709         (icon_drag_motion): Decide which action we can use for dropping
1710         stuff on a desktop icon.
1711         (setup_icon_dnd_dest): Always specify all the actions.
1712         (icon_drag_data_received): Allow for icons to be moved just a
1713         notch by accepting drops from icons.
1715         * gdnd.h: Added #defines for the DnD target type names.
1717         * gdnd.c (gdnd_init): New public function to intern the target
1718         atom names.
1719         (gdnd_drag_context_has_target): New public function to see if a
1720         drag context has a certain target type.
1722         * gdesktop.c (setup_desktop_dnd): Do not use
1723         GTK_DEST_DEFAULT_MOVE, and connect to drag_motion.
1724         (desktop_drag_motion): If we are dragging from a desktop icon,
1725         indicate the action as MOVE.  Otherwise, force the action to be
1726         LINK unless the user explicitly requested ASK.
1727         (setup_desktop_dnd): Intern the atoms for the drop targets.
1729 1999-01-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1731         * gscreen.c: Selection code now is simpler and should be easier to
1732         use in the listing modes.
1734 1999-01-20  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1736         * gicon.h (gicon_image_to_name): Added prototype for
1737         gicon_image_to_name().
1739         * gicon.c (gicon_get_icon_for_file): 
1740         (gicon_get_icon_for_file_speed): Added a "directory" argument.
1741         It is needed because the file_entry structure only contains the
1742         pruned filename, and we need the complete name for the metadata
1743         functions.
1745         * gdesktop.c (desktop_icon_info_new): Pass the directory to
1746         gicon_get_icon_for_file_speed().
1748         * gpageprop.c (item_properties): Build the directory name and pass
1749         it to gicon_get_icon_for_file_speed().
1751         * gscreen.c: Do not #include "directory.xpm".  Do #include "setup.h".
1752         Removed unused function button_switch_to().
1754         * gscreen.c (panel_fill_panel_icons): Pass the directory to
1755         gicon_get_icon_for_file().
1757         * gscreen.c (panel_create_tree_view): Allow button 2 to start the
1758         drag as well.
1759         (panel_clist_scrolling_is_desirable): Make both scrolling
1760         thresholds consistent.  Also, do not allow scrolling past the
1761         correct limit.
1762         (panel_icon_list_scrolling_is_desirable): Likewise.
1763         (panel_tree_scrolling_is_desirable): Likewise.
1764         (panel_clist_scroll): Do not allow scrolling past the correct limits.
1765         (panel_icon_list_scroll): Likewise.
1766         (panel_tree_scroll): Likewise.
1768 1999-01-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1770         * gscreen.c (panel_create_icon_display): Do not set the style of
1771         the icon list.
1773 1999-01-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1775         * gprefs.c (apply_callback): Update the directory contents after
1776         the settings have changed.
1778 1999-01-19  Jonathan Blandford  <jrb@redhat.com>
1780         * gdialogs.c (file_op_context_create_ui): OP_DELETE now has it's
1781         very own dialog. whee.
1783         * gscreen.c (panel_create_pixmaps): now we use dir-open.xpm
1784         instead of the (apparently) ugly yellow one.
1786 1999-01-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1788         * gtkdtree.c (gtk_dtree_select_row): Wonder why the code was
1789         returning for the clicks on the root node.
1791 1999-01-19  Jonathan Blandford  <jrb@redhat.com>
1793         * gprefs.c: applied a heavily modified patch by Dave Camp
1794         <campd@oit.edu>  The preference box now works.
1796 1999-01-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1798         * gtkdtree.c (gtk_dtree_construct): And the GTK+ people broke the
1799         API again.
1801 1999-01-18  Jonathan Blandford  <jrb@redhat.com>
1803         * gscreen.c (x_create_panel): chnaged padding on the Filter label
1804         (do_ui_signal_connect): new view switching code.  Toolbar now works
1805         (go_home): new function -- takes one home
1807         * gtkdtree.c (gtk_dtree_construct): change ctree_set_reorderable.
1809 1999-01-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1811         * gdesktop.c (icon_event): Rewrote event handling for icons on the
1812         desktop.  This function handles button presses and releases and
1813         does some anal-retentive checking to avoid stuck pointer grabs.
1814         (icon_event_after): New fallback function for button presses.
1815         This is only called when an icon is being edited and the user
1816         clicks outside the icon's text item, indicating that editing
1817         should be accepted and terminated.
1818         (selection_stopped): New callback used to re-install the mouse
1819         grab once the icon text item stops selecting text.
1821         * gdesktop.h (DesktopIconInfo): Removed the finishing_selection
1822         flag now that the event handling code is cleaned up.
1824 1999-01-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1826         * gpageprop.c (item_properties): Use the metadata information for this.
1827         (item_properties): Set the icon-filename metadata bit
1829 1999-01-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1831         * glayout.c (create_new_menu_from): Handle both the system dir and
1832         the locally installed directory.
1834 1999-01-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1836         * gtkdtree.c (gtk_dtree_do_select_dir): Select the node, and test
1837         against full visibility of a node.
1839         * gscreen.c (panel_fill_panel_icons): While loading the icon list,
1840         mark those items that are selected as, well, ahem, selected.
1841         (x_fill_panel): Use the system getwd routine to find out the real
1842         location in the file system
1844 1999-01-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1846         * gpageprop.c (item_properties): Use file contexts appropriately.
1848         * gdnd.c (perform_action): Use file contexts appropriately.
1850 1999-01-13  Jonathan Blandford  <jrb@redhat.com>
1852         * glayout.c (create_container): finished the New->menu.  Looks
1853         better now.
1854         (create_container): Moved the statusbar creaton.  Now you can get
1855         the hints.
1857         * gcmd.c (gnome_run_new): new function.
1859         * glayout.c (create_container): beginnings of the New-> menu.  It
1860         doesn't have much yet, hopefully we'll have a good way to let apps
1861         register themselves with it.
1863 1999-01-13  bertrand <Bertrand.Guiheneuf@inria.fr>
1864         
1865         * gdialogs.c
1866         * gwidget.c: 
1867         * gprop.c: 
1868         s/gtk_toggle_button_state/gtk_toggle_button_active
1870 1999-01-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1872         * gdesktop.c (desktop_icon_info_delete): Pass the file operation
1873         context to erase_dir() and erase_file().
1875         * gcmd.c (gnome_sort_cmd): Cast the sort functions to avoid
1876         warnings.
1878         * gdialogs.c: Converted to use FileOpContext.
1880         * gmain.h: Added some prototypes needed in the Gnome version.
1882 1999-01-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1884         * gdesktop.c (desktop_drag_data_received): Drops on the desktop by
1885         default will always be Link commands.  If the user wants to
1886         copy/move he needs to use the button-2 to do this.
1887         (desktop_icon_info_delete): Treat links as files, not directories.
1889         I have got enough complaints about this.
1890 1999-01-12  Jonathan Blandford  <jrb@redhat.com>
1892         * gcmd.c (gnome_open_files): now you can open multiple files.
1893         * glayout.c: layout changed some.  moved run command.
1894         commented out ftplink/mkdir command for now.  gonna do mkdir
1895         next.  Why is the ftplink command needed?
1897 1999-01-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1899         * glayout.c (run_cmd): Add run command.  Add back FTP link
1900         command.  Add Mkdir command.  Use standard key definitions.
1902         * gview.c: Use new standard keybindings
1903         
1904         * gtkdtree.c: Now it uses the treestore code.
1906         * treestore.c: New file format which includes the scan status of
1907         the directories.
1909         * treestore.c: Provide _opendir, _readdir, _closedir operations
1910         for the tree cache.
1912         Next step: load/save the tree_entry->scanned flag (without this,
1913         you wont notice a big speedup).
1915 1999-01-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1917         * gutil.c (my_system_get_child_pid): Acknowledge new EXECUTE_WAIT
1918         flag.  This is required by the vfs code.
1920 1999-01-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1922         * gscreen.c (panel_create_file_list, panel_create_icon_display):
1923         I got excited adding the gtk_drag_source_set.  I generate those
1924         events myself, no need to put them here.
1926 1999-01-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1928         * gwidget.c (stock_from_text): Return this value.
1930 1999-01-08  Jonathan Blandford  <jrb@redhat.com>
1932         * glayout.c: now open the new (non-functional) dialog box.  If you
1933         want functionality, I suppose you could put the old one back in.
1934         I'll work on it more this weekend, though, so hopefully it can get
1935         back to the old state relatively quickly.
1936         * gprefs.c (gnome_configure_box): New function, new file, first
1937         start at unified properties box.
1939 1999-01-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1941         * gscreen.c (panel_icon_list_select_icon): Remove debugging message.
1943         * glayout.c: Add a create directory option.
1944         
1945 1999-01-07  Jonathan Blandford  <jrb@redhat.com>
1947         * gcmd.c (gnome_filter_cmd): now it works!  It's even sorta
1948         useful.  I'm so psyched... (:
1949         
1951 1999-01-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1953         * gscreen.c (panel_icon_list_drag_data_received): Do not update
1954         contents if nothing was done (ie, the drop was cancelled).
1955         (panel_create_file_list): Duh.  Restore this, as, ahem, we dont
1956         have banding selection on CList.
1957         (panel_icon_list_select_icon): Open the new panel only on button
1958         release.
1959         (panel_file_list_select_row): New panel started on clist when you
1960         press middle button.
1962         (panel_create_file_list): Ahaha!  I found that CList now has a
1963         gtk_clist_set_buttion_actions.  Go figure why we need this and why
1964         it was implemented, but now buttons work as they should on clist.
1966         * gdnd.c (gdnd_drop_on_directory): Do nothing if the files dragged
1967         are on the same directory we are.
1969 1999-01-07  Jonathan Blandford  <jrb@redhat.com>
1971         * gcmd.c (gnome_filter_cmd): Function filled in now.  Actually
1972         works (amazing!.)  Next: put a history on it, and maybe an event
1973         box for the label.
1975         * glayout.c: use the function below.
1977         * gcmd.c (gnome_filter_cmd): New function (or a sorry excuse for
1978         one, anyway...)
1980         * gscreen.c (x_create_panel): now uses gnome-appbar instead of the
1981         old, psuedo status bar.
1983 1999-01-06  Jonathan Blandford  <jrb@redhat.com>
1985         * gcmd.c (gnome_external_panelize): Now it works.  Just need to save
1986         results so the next time works.  Will do this tomorrow.
1987         (gnome_external_panelize): think I finished this now.
1989 1999-01-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1991         * gdesktop-icon.c (desktop_icon_realize): Make icons sticky as
1992         well.
1994         * gpageprop.c (item_properties): Use a file operation context.
1995         * gdnd.c (perform_action): Likewise.
1996         * gdesktop.c (desktop_icon_info_delete): Likewise.
1998         * Makefile.in: Added fileopctx.o.
2000 1999-01-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2002         * gdesktop.c (desktop_icon_drop_uri_list): Implement
2003         drops-on-executable. 
2005         * gmetadata.c, gaction.c, gdesktop.c, gicon.c: Use g_free instead
2006         of free to follow the convention in gnome-metadata.c
2008         * gtools.c (query_dialog): Fix the new version of this.  It was
2009         overwriting memory all over.
2011         * gdialogs.c (): Use GNOME stock;  Fill in some FIXME strings. 
2012         (file_progress_real_query_replace): Use the formatted
2013         message. 
2015         Change the inlined N_( for _( in various places. 
2016         (cancel_cb): Cancel button now cancels a copy or move operation.
2018         * gtools.c (query_dialog): Remove the hotkey indicator in the
2019         gnome version specific query_dialog box.
2021 1999-01-05  Jonathan Blandford  <jrb@redhat.com>
2023         * gcmd.c (gnome_external_panelize): mostly hooked up now.
2024         will finish tomorrow (shouldn't take very long...)
2026 1999-01-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2028         * Makefile.in (GNOMESRCS): Removed temp-hack.c from the list of
2029         sources.
2030         (GNOMEHDRS): Ditto for gdialogs.h.
2032         * gscreen.c (x_create_panel): Removed periods from the toolbar
2033         button tooltips.
2035 1999-01-04  Jonathan Blandford  <jrb@redhat.com>
2037         * glayout.c: menu changes.
2039         * gcmd.c (gnome_external_panelize): new function.  Does absolutely
2040         nothing yet but look pretty (and it doesn't do that all that well,
2041         yet...)  I'll hook it up to it's actual functions, tomorrow.
2043 1999-01-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2045         * gscreen.c (x_reset_sort_labels): Various fixes to fix some of my
2046         recent changes.  I bet Jonathan found that things were not quite
2047         working.  Sorry for the previous untested changes.
2049         This also fixes the bugs reported on gnome-list regarding the
2050         CList problems.  This is the correct fix (basically, we were using
2051         a CList that was configured in one way, even if the display format
2052         had changed.  Now, the CList is kept in sync with the format by
2053         calling a routine that somehow got dropped during some recent
2054         changes).
2056         * gtools.c (query_dialog): Simplified.  
2058 1999-01-02  Jonathan Blandford  <jrb@redhat.com>
2060         * gcmd.c (gnome_sort_cmd): pretified
2061         (gnome_select_all_cmd): New command -- selects all files (in
2062         theory). 
2064         * glayout.c: rearrange the edit menu some.
2066         * gscreen.c (x_create_panel): new icon view icons -- brief and
2067         custom.
2069 1999-01-01  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2071         * gdesktop.c (select_range): Fixed selection of ranges where the
2072         starting and ending icons are in the same vertical or horizontal
2073         slot.
2074         (reload_desktop_icons): Fixed incorrect usage of
2075         g_list_remove_link().  Also, moved the functionality from the old
2076         load_desktop_icons() here.  Now all icons are always loaded
2077         efficiently, and there is no need for the "incremental" flag.
2078         (desktop_icon_info_delete): Delete the icon position information.
2080         * gmetadata.c (gmeta_del_icon_pos): New public function to delete
2081         the icon position information from a file.
2083 1999-01-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2085         * gwidget.c (x_create_listbox): Temporary hack
2087         * gmetadata.c (gmeta_get_icon_pos): Fixed the memory leak here. 
2089         * gicon.c (gicon_get_icon_for_file): Actually return a value
2090         here. 
2092 1999-01-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2094         * gscreen.c (panel_fill_panel_list): Assertion that will pin point
2095         if a CList gets out of sync with the panel->format.
2097 1999-01-01  Momchil 'Velco' Velikov <velco@fadata.bg>
2099         * gscreen.c (panel_fill_panel_list): NULL terminate the column
2100         array.  This is strange, as it should not need the ending NULL.
2102 1999-01-01  Jonathan Blandford  <jrb@redhat.com>
2104         * gcmd.c ((GtkWidget *widget, WPanel *panel): Now hooked up
2105         correctly.  Still needs to set the option menu correctly.  Oh
2106         well...
2108 1998-12-31  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2110         * gpopup.c (dicon_properties): Made static, and renamed from
2111         desktop_icon_properties().
2112         (dicon_execute): Likewise.
2113         (dicon_actions): Renamed from desktop_icon_actions.
2115         * gdesktop.c (desktop_icon_info_destroy): Renamed from
2116         desktop_icon_destroy(), for consistency with the rest of the
2117         functions that handle DesktopIconInfo structures.
2118         (desktop_icon_info_open): Likewise.
2119         (desktop_icon_info_delete): Likewise.
2121 1998-12-31  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2123         * gscreen.c (panel_create_icon_display): Provide auto-scroll
2124         handlers for the drag stuff.
2126 1998-12-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2128         * gmain.c (create_panels): Register corba server here.
2130         * gcorba.c: Fix a servant declaration to point to the correct
2131         vepv. 
2133 1998-12-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2135         * gdesktop.c (find_icon_by_drag_context): Made static.
2137         * gdesktop.h (DesktopIconInfo): Now that this type is public,
2138         renamed it from struct desktop_icon_info, for consistency.
2140 1998-12-30  Jeff Garzik  <jgarzik@pobox.com>
2142         * gprop.c, gpopup.c: s/g_copy_strings/g_strconcat/
2144 1998-12-30  Jonathan Blandford  <jrb@redhat.com>
2146         * gaction.c (gmc_execute): now takes an filename instead of a file
2147         entry for an argument
2148         (gmc_open_filename): handles the new gmc_execute code.
2150         * gdesktop.c (desktop_icon_drop_uri_list): commented out
2151         action_drop.  Needs defining.
2153 1998-12-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2155         * gdesktop.c (desktop_icon_delete): New function, used for
2156         dicon_delete. 
2157         (load_desktop_icons): Implemented the incremental reloading of
2158         desktop icons.  This should make the code much nicer.
2159         (reload_desktop_icons): Call x_flush_events to force a display at
2160         that point.
2162         * gpopup.c (dicon_delete): Implement this operation.
2163         (desktop_icon_execute): Use the existing implementation for
2164         launching desktop icons instead of a new hacked up version 
2166         (desktop_icon_actions): Until copy/move is implemented, do not
2167         even list them to the user.
2169         * gdesktop.c (create_desktop_dir): No trashcan setup until it
2170         works. 
2172         * gscren.c (panel_widget_motion): Use button 2 for dragging and
2173         asking. 
2174         
2176         * gscreen.c (panel_create_file_list): Use a notebook instead of
2177         the hack I was using before for switching the panel contents.
2179         * gtkdtree.c (gtk_dtree_new): We now rely on the whole code to be
2180         running in the proper visual.  The more I look at this, the more
2181         desires I have to do a proper imlib.
2183         * gdesktop-icon.c (desktop_icon_init): ditto.
2185 Tue Dec 29 16:55:24 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
2187         * gmain.c: According to the man page the color keyword for executable 
2188         files   is `executable' and not `execute' -- changed. 
2190 1998-12-28  Jonathan Blandford  <jrb@redhat.com>
2192         * glayout.c: Initial rehash of the menu code.
2194 1998-12-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2196         * gprop.c (perm_mode_new), gcliplabel.c: Uset gtk_label_set_text.
2198 Thu Dec 24 18:38:45 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
2200         * layout: Adapted for the new option Compute Totals in the
2201         Configuration dialog.
2203 1998-12-22  Jonathan Blandford  <jrb@redhat.com>
2205         * gdialogs.c (file_progress_real_query_replace): Cleaned up some.  Still has a
2206         bit of work to do, but in general, much better.
2208 Mon Dec 21 22:33:07 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
2210         * layout: Deleted obsolete widgets from the Virtual FS configuration
2211         dialog. 
2213 1998-12-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2215         * gscreen.c (panel_icon_list_select_icon): Show the popup menu on
2216         button release here.  This is what makes most sense. 
2217         (panel_widget_motion): Drags with button 3 now produce a popup
2218         dialog box that asks
2220 1998-12-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2222         * gdialogs.c (create_op_win): Remove second spurious packing.
2223         (create_op_win): OP_MOVE uses the same stuff OP_COPY does.  Fix
2224         this. 
2225         (file_progress_show_target): More compliant to the original
2226         functions.
2227         (file_progress_show_source): More compliant to the original
2228         functions.
2230         * gdesktop.c (create_desktop_dir): Fix mem leak.
2232 Tue Dec 15 10:51:12 1998  Gregory McLean <gregm@comstar.net>
2234         * gdesktop-icon.c : Attach a desktop_icon wmclass to the desktop
2235         icons to allow even more wizardry with the desktop icons, mainly
2236         to exclude them from window lists, don't decorate them, skip 
2237         desktops and other boring stuff.
2239 1998-12-14  Sven Neumann  <sven@gimp.org>
2241         * lightened up the dir-pixmaps a little to please your eyes and
2242         tigert ;-)
2244 1998-12-14  Owen Taylor  <otaylor@redhat.com>
2246         * gnome.TODO: Added a number of tree and icon
2247         view todos.
2249 1998-12-14  Owen Taylor  <otaylor@redhat.com>
2251         * gscreen.c (x_create_panel): Keep up with changes
2252         to GtkDockItem.
2254 1998-12-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2256         * gwidget.c (x_update_input): Use gtk_entry_get_text here.
2258 1998-12-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2260         * gscreen.c (panel_create_icon_display): Set white background.
2262 1998-12-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2264         * gdnd.c (perform_action): Fixed a pair of incorrect braces.
2265         Files were not being operated on because of this.
2267 1998-12-12  Owen Taylor  <otaylor@gtk.org>
2269         * gscreen.c (panel_tree_drag_motion): Doubled timeout
2270         for autoexpand - reducing opening unwanted directories.
2272         * gscreen.c (tree_drag_open_directory): Use 
2273         gtk_ctree_expand() not gtk_ctree_expand_recursive,
2274         which increases confusion and could be
2275         _vvveeerrrryyyy_ expensive. (/afs ?)
2277         * gscreen.c (panel_tree_drag_leave): Fixed up
2278         signature - "drag_leave" has no x,y.
2280         * gscreen.[ch] (panel_tree_check_auto_expand): When
2281         we've expanded rows during a drag, collapse them
2282         again when the drag leaves that row.
2284 1998-12-12  Owen Taylor  <otaylor@gtk.org>
2286         * gtkdtree.c (gtk_dtree_destroy): Remove timer upon
2287         destruction to be safe. (Should this, and
2288         dtree->timer_id itself be in gscreen.c instead?)
2290         * gscreen.c (panel_tree_drag_leave): Change == to !=
2291         so that timeouts are properly removed.
2293 1998-12-11  Matt Wilson  <msw@redhat.com>
2295         * gscreen.c: The solid lines in the tree are kinda harsh.  Replace
2296         them with soothing dotted lines.
2298 1998-12-11  Matt Wilson  <msw@redhat.com>
2300         * dir-open.xpm, dir-close.xpm: Away with the tacky yellow folders -
2301         I like these brown ones from tigert better.
2303 1998-12-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2305         * gpopup.c (create_actions): The tests for F_PANEL and F_DICON
2306         were wrong.  Fixed them.  This does not mean that the popup menus
2307         are right, though.
2309 1998-12-11  Owen Taylor  <otaylor@redhat.com>
2311         * gscreen.c gdesktop.c gdnd.h: enable dragging locale files
2312         into Netscape.
2314 1998-12-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2316         * gicon.c (gicon_get_icon_for_file): First try to fetch the inline
2317         icon data (i.e. thumbnails), second try the generic icon filename.
2319 1998-12-11  Owen Taylor  <otaylor@redhat.com>
2321         * gdesktop.c (window_button_press): Ehen cancelling editing
2322         account for clicks on other GMC windows.
2324 1998-12-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2326         * gdesktop.c (click_proxy_filter): Doh.  We may get DestroyNotify
2327         for other windows than the proxy, so deal with it.
2329 1998-12-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2331         * gdesktop.c (click_proxy_button_press): Use a nice arrow cursor
2332         for rubberbanding.
2333         (click_proxy_filter): Keep a firm jaw when the window manager dies
2334         and thus the proxy window is destroyed.
2335         (setup_desktop_click_proxy_window): Moved the proxy window
2336         creation code to this function.
2337         (click_proxy_property_notify): Handle PropertyNotify events from
2338         the root window for when the proxy window changes.  Now the window
2339         manager can restart itself as it pleases and GMC will handle it
2340         correctly.
2342 1998-12-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2344         Wheeeee!  Desktop icons can be selected by rubberbanding.  You
2345         need Englightenment to do this, as so far it seems to be the only
2346         WM with support for the _WIN_DESKTOP_BUTTON_PROXY property.
2348         * gdesktop.c (click_proxy_filter): New event filter for button
2349         presses and releases on the root window.
2350         (click_proxy_button_press): New function to handle button presses
2351         on the desktop.
2352         (click_proxy_button_release): New function to handle button
2353         releases on the desktop.
2354         (click_proxy_motion): New function to handle rubberbanding motion
2355         on the desktop.
2356         (setup_xdnd_proxy): Flush the server after ungrabbing it.
2357         (find_click_proxy_window): Flush the server after ungrabbing it.
2358         (store_temp_selection): Stores the temporary selection to the
2359         master selection, or viceversa.  This is needed for dynamic
2360         updating while the user rubberbands.
2361         (update_drag_selection): New function to update the selection
2362         while the user is rubberbanding on the desktop.
2363         (icon_is_in_area): New function to see if an icon is inside the
2364         rubberbanding area.
2366         * gdesktop-icon.h: Added fields for querying the icon and text
2367         position and size.
2369         * gdesktop-icon.c (desktop_icon_reshape): Set the position and
2370         size fields as computed for layout.
2372 1998-12-11  Owen Taylor  <otaylor@redhat.com>
2374         * gdesktop.c (editing_started): Grab on the window for the
2375         icon, not on the canvas, so we can properly detect
2376         clicks elsewhere.
2378         (icon_button_release_after): When the user stops selecting,
2379         regrab the pointer.
2381 1998-12-11  Jonathan Blandford  <jrb@redhat.com>
2383         * gtkdtree.c (gtk_dtree_do_select_dir): fixed a little bug --
2384         caused a segfault.
2386         * gscreen.c (x_create_panel): More changes.  The toolbar is moved
2387         to a gtk_toolbar, and is movable.  The entry will be put in it's
2388         own toolbar, too.
2389         (panel_create_cwd): For now, hardcode the usize of the entry
2390         widget.  Later on, have it expand (when toolbar supports it)
2392 1998-12-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2394         * gcmd.c: #include "../vfs/vfs.h"
2396         * gdesktop.c (setup_icon_dnd_actions): Moved the code that calls
2397         gtk_drag_source_set() for an icon here.
2398         (editing_started): Temporarily disable drags while the icon's text
2399         is being edited.
2400         (editing_stopped): Re-enable DnD from the icon once editing has
2401         stopped.
2403 1998-12-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2405         * gcmd.c (gnome_close_panel): When a panel is destroyed, chdir to
2406         root directory, as the process will be holding the inode for the
2407         directory that was selected until an operation is performed in
2408         another panel.
2410         * gicon.c (gicon_get_icon_for_file): Invert the way the testing
2411         for icons is done to handle directories properly.
2413 1998-12-10  Jonathan Blandford  <jrb@redhat.com>
2415         * gscreen.c (x_create_panel): made some small stylistic changes.
2416         Also, removed the hint bar and consolidated the status bar.
2418 Thu Dec 10 21:38:55 1998  Owen Taylor  <otaylor@redhat.com>
2420         * gkey.c (delete_select_channel): Fixed list handling
2421         with g_list_remove().
2423 1998-12-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2425         * gdesktop.c (dnd_select_icon_pending): Added this flag that
2426         specifies whether a selection is pending for an icon if the user
2427         was holding the Control key down while clicking.  We have to delay
2428         selection in this case so that DnD will work correctly, just like
2429         Windows.
2430         (icon_button_press): New function that handles button presses on
2431         icons; it obsoletes the old desktop_icon_info_event().
2432         (icon_button_release): New function that handles button releases
2433         on desktop icons; it will do what is appropriate if there was a
2434         pending icon selection.
2435         (drag_begin): Handle pending selections as appropriate.
2436         (unselect_all): Added an paremeter that specifies which icon to
2437         exclude from unselection.
2438         (editing_started): Unselect all icons but the one for which
2439         editing has started.
2440         (dnd_icon_sources): Changed the MIME-types for internal drops to
2441         "application/x-mc-desktop-icon".
2442         (click_proxy_window): New variable that stores the proxy window
2443         for clicks on the desktop.
2444         (setup_desktop_clicks): New function that sets up clicks on the
2445         root window.
2446         (find_click_proxy_window): New function to find and set up the
2447         window for proxying clicks from the root window.
2449         * image.metadata.in: Added case for `jpg', as there was only a
2450         case for `jpeg'.
2452 1998-12-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2454         * gicon.c (gnome_file_entry_color): If we do not have permissions
2455         for this directory, indicate this with a special icon.
2457         * gscreen.c (panel_icon_list_select_icon): Middle button opens a
2458         new panel on a directory.
2460 1998-12-08  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2462         * gdesktop.c: Moved the old DnD cruft to olddnd.c to keep it there
2463         for reference purposes.
2465         * gmetadata.c: Removed the gmeta_get_icon_for_file() function, as
2466         it is obsoleted by gicon_get_icon_for_file().
2468         * gdesktop.c (desktop_icon_info_new): Made it use
2469         gicon_get_icon_for_file().
2471         * gdesktop-icon.c (set_icon): Now we handle things internally
2472         using an imlib image, not a filename.
2473         (desktop_icon_new): Now takes an imlib image for the icon instead
2474         of a filename.
2475         (desktop_icon_set_icon): Likewise.
2477 1998-12-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2479         * gtkdtree.c (gtk_dtree_new): Use imlib's visual and colormap.
2481         * gscreen.c (panel_create_tree_view): Use the colormap and visual
2482         from imlib when creating the DTree,
2484 1998-12-08  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2486         * gdesktop.c (icon_drag_data_received): Doh.  Use the correct
2487         pathname when calling gdnd_drop_on_directory().
2489 1998-12-07  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2491         * gdesktop.c (desktop_icon_info_new): Do not stat the file, as we
2492         do not need that information anymore.
2493         (setup_icon_dnd_source): Moved the DnD-as-source code to here.
2494         (setup_icon_dnd_dest): New function to set up an icon as a DnD
2495         destination.
2497         * gdesktop.c (desktop_icon_info_place): Doh, do not place icons
2498         past the edge of the *whole* screen :-)
2499         (dnd_press_x dnd_press_y): New variables to store the cursor
2500         hotspot for DnD icons.  Moved these over from the
2501         desktop_icon_info structure, as it does not make sense to have
2502         this inside every icon.
2503         (button_press): Use dnd_press_x and dnd_press_y.
2504         (drag_begin): Likewise.
2505         (drop_desktop_icons): Use dnd_press_x and dnd_press_y to fix the offsets.
2506         (drag_data_received): Fix the proxy window offsets for all types
2507         of targets.
2508         (drop_desktop_icons): Snap the coordinates as appropriate.
2510 1998-12-07  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2512         * gdesktop.c (drop_desktop_icons): New function to perform a drop
2513         from desktop icons to the desktop.  It effectively moves the icons
2514         around.
2515         (desktop_icon_info_place): Do not place the icons past the edge of
2516         the screen.
2518 1998-12-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2520         * gdesktop.c (file_entry_from_file): Finished implementing
2521         file_entry_from_file().
2522         (struct desktop_icon_info): Removed the `type' field.  We now stat
2523         the file when needed to figure out the file type.
2524         (desktop_icon_info_event): Test whether the file is a directory by
2525         ourselves, and if it is, open a new panel for it.
2526         (drag_data_get): Generate the uri-list for internal desktop icon
2527         drags as well.
2529         * gdesktop.c (drag_data_received): We do not need to call
2530         gtk_drag_finish(), since we are using the GTK_DEST_DEFAULT_DROP
2531         flag for drops on the desktop.
2532         (desktop_icon_info_event): Reload the desktop icons after
2533         executing a command from the popup menu.  This kind of sucks, but
2534         will do for now.
2535         (desktop_icon_info_event): Upon receiving a button-1 press, if the
2536         icon was already selected in the first place, delay the
2537         re-selection phase until we get a mouse release event.  This lets
2538         us start a multiple-selection drag without having the initial
2539         click clear the selection first.
2540         (desktop_icon_info_event): Open the file or directory when the
2541         desktop icon receives a double click.
2543         * gmain.c (beep): Made it void, since it does not (need to) return
2544         anything.
2545         (xtoolkit_end): Likewise.
2547 1998-12-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2549         * gscreen.c (panel_build_selected_file_list): Provide space for
2550         the terminating NULL.
2552         * gmain.c (beep): Return a value.
2554         * gdnd.c (get_action): Typo fix.
2556 1998-12-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2558         * gscreen.c (load_imlib_icons): Make it use the new gicon files.
2560         * gicon.c, gicon.h: New files: they keep an image cache and
2561         provide the right icon to use based on the filename.  They use the
2562         GNOME metadata to fecth the "icon-filename" and "icon-inline-png"
2563         keys for per-image icons.
2565         * gdialogs.c (file_mask_dialog): Commented the help messages until
2566         the warnings are figured out.
2568 1998-12-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2570         * gdesktop.c (desktop_icon_info_new): Connect the signals for DnD
2571         so that we can drag icons from the desktop.
2572         (drag_begin): New function to set the drag cursor for icons on the desktop.
2573         (button_press): New function that stores the hot spot position for
2574         DnD cursors.
2575         (drag_data_get): New function to fetch the URI-list of selected icons.
2577         * gdialogs.c: Fixed some includes.
2579         * gdesktop.h: Removed the DnD target enum from here, since it is
2580         specific to each submodule.
2582         * gdnd.h: Moved the DnD target enums to here.  Added a new
2583         TARGET_MC_DESKTOP_ICON.
2585         * gdesktop.c (get_icon_snap_pos): Fixed icon snapping; the
2586         coordinates not being updated correctly.
2588         * gscreen.c (panel_drag_data_get): Free the uri list; it was being leaked.
2590 1998-12-04  Jonathan Blandford  <jrb@redhat.com>
2592         * gdialogs.c (file_progress_show_count): finished the copy dialog.
2594 1998-12-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2596         * gblist.c (blist_select_row): Warning fixes.
2598         * olddnd.c: Moved the old DND code here for reference purposes.
2600         * gscreen.c: Made the tree a drag source.
2602 1998-12-04  Jonathan Blandford  <jrb@redhat.com>
2604         * gdialogs.c (trim_file_name): better update dialog
2606 1998-12-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2608         * gdesktop.c (load_desktop_icons): Added arguments that specify
2609         where to place the newly-created icons.  This needs some tweaking still.
2610         (reload_desktop_icons): Now takes arguments for the position of
2611         the new icons.
2612         (drag_data_received): Pass in the drop position to reload_desktop_icons().
2614         * gscreen.c (panel_tree_drag_motion): Added missing variable declaration.
2616         * gdesktop.c (load_desktop_icons): Added an incremental flag that
2617         specifies whether icon creation is unconditional regardless of
2618         whether there is an icon for a file or not.
2619         (reload_desktop_icons): Use the incremental flag in load_desktop_icons().
2620         (drag_data_received): Reload the desktop incrementally, to avoid flicker.
2621         (desktop_icon_info_new): Use mc_lstat(), not mc_stat().  We do
2622         want to read symlinks, even dangling ones, if they exist.
2623         (load_desktop_icons): While we are reading the desktop directory,
2624         first place all the icons that have their metadata icon-position
2625         set, and build a list of the ones that don't.  *Then* place
2626         those.  This fixes overlapping icons on weird situations.
2628         * directory.xpm: Removed bogus garbage.  There was a stale pixmap here.
2630         * gdesktop.c (setup_desktop_dnd): Allow for GDK_ACTION_ASK as well.
2632         * gscreen.c (panel_widget_motion): The action argument to
2633         gtk_drag_begin() is a mask of possible actions, not a single action.
2635         * gdesktop.c (drag_data_received): Only reload the icons if the
2636         drop was successful.
2638 1998-12-03  Jonathan Blandford  <jrb@redhat.com>
2640         * gdialogs.c (create_op_win): starting the op_win dialog stuff
2642 1998-12-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2644         * gscreen.c (panel_create_icon_display, panel_create_file_list):
2645         Hook up to drag_begin and drag_end events.
2647         * gscreen.c (panel_tree_drag_motion): Improve interactivity
2648         (x_create_panel): Add a little decorating frame.
2650         (panel_create_icon_display, panel_create_file_list):
2651         Hook up to drag_begin and drag_end events.
2653         (panel_tree_drag_motion): Either queue a scroll on the tree, or
2654         queue an open-directory event.
2656         (panel_tree_scroll): Scroll the tree when the drag pointer is in
2657         one of the boundaries of the tree.
2659         (panel_tree_scrolling_is_desirable): new function to figure out if
2660         it is a good plan to scroll the tree view instead of opening it.
2662         (panel_chdir): Do not sync with the tree when we are in the middle
2663         of a drag and drop operation.
2665         (panel_drag_begin, panel_drag_end): New functions to keep track
2666         of the dragging operations.
2668 1998-12-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2670         * gscreen.c (panel_tree_drag_data_received): Perform drag and drop
2671         operations on the Tree.
2673 1998-12-02  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2675         * gdesktop.c (setup_desktop_dnd): New function to set up drops
2676         to the root window.
2677         (setup_xdnd_proxy): Function by Owen Taylor to set up a DnD proxy
2678         window.
2679         (drag_data_received): Function to handle drops on the root window.
2680         (desktop_destroy): Destroy the DnD setup.
2681         (reload_desktop_icons): New function to reload the desktop.
2683         * gscreen.c (drag_types, drop_types): Removed url-list; only
2684         uri-list should be there.
2686         * gdesktop.h: Removed TARGET_URL_LIST from the DnD enumerations.
2688         * gtkdtree.c (gtk_dtree_do_select_dir): Made static, as it is for
2689         internal use only.
2690         Fixed a little bunch of compiler warnings.
2692         * gscreen.c (x_fill_panel): Use gtk_dtree_select_dir(), not
2693         gtk_ctree_do_select_dir().
2695         * gpopup.c (gpopup_do_popup): Fixed incorrect assertion and
2696         actually create the menu (doh).
2697         (gpopup_do_popup): Do the same magic as in gnome-popup-menu to
2698         fetch the item that was activated in the menu.  Keep this code out
2699         of reach of children.
2700         (fill_menu): New function to fill the menu using the
2701         gnome-popup-menu magic for fetching the activated menu item.
2702         Removed ifdef'ed code.
2704 1998-12-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2706         * gscreen.c (tree_drag_open_directory, panel_tree_drag_motion,
2707         panel_tree_drag_leave): Drag and Drop support routines for the
2708         tree to auto-expand the tree when the user stays still on top of a
2709         directory.
2711         * gtkdtree.c (gtk_dtree_load_path): Further speed increase.
2713 1998-12-01  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2715         * glayout.c (file_menu): Use view_cmd and view_simple_cmd in the
2716         menu instead of panel_action_view and
2717         panel_action_view_unfiltered, respectively.
2719         * gpopup.c (create_regexp_actions): Create the menu items using
2720         gnome-app-helper, for visual consistency.
2721         (create_actions): Likewise.  Also, fixed S_ISLNK() confusion.
2722         (get_label_text): Extract the label from the GnomeUIInfo item in
2723         an ugly way.
2725 1998-12-01  Jonathan Blandford  <jrb@redhat.com>
2727         * Makefile.in: now handles gdialogs*
2729         * gdialogs.h:
2730         * gdialogs.c:Added new files -- takes the place of ../src/filegui.*
2732 1998-12-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2734         * gscreen.c (panel_switch_new_display_mode): Destroy the old
2735         widget.  Add the list view to the proper table.
2737         * glayout.c: Remove the exit menu option.
2739         * gtree.c (gtk_dtree_contains): New routine used to avoid
2740         duplicate entries in the tree display.
2742 1998-11-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2744         * gscreen.c (panel_icon_list_select_icon): Use gpopup_do_popup().
2745         (panel_file_list_select_row): Use gpopup_do_popup().
2746         Moved the popup menu code to gpopup.c.
2748 1998-11-29  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2750         * gscreen.c (display_mini_info): Use g_strdup_printf() to make it
2751         i18n-ize nicely.
2752         (panel_create_filter): Use _(), not N_().
2753         (x_create_panel): Likewise.
2755 1998-11-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2757         * gscreen.c (x_create_panel): Add panel view.  Put the views
2758         inside a new table.  Add tree view to the left.
2759         (panel_create_icon_display): IconList no longer starts in frozen state.
2761         Update Makefile.
2763 1998-11-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2765         * gwidget.c (x_update_input): Use gtk_editable_changed on the entry.
2766         (x_create_listbox): Fix more CList api change.
2767         * gscreen.c (CLIST_FROM_SW): Adapt to new GtkScrolledWindow
2768         inheritance.
2770 1998-11-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2772         * Makefile.in (OOBJS): Add filegui.o back until the GTK-specific
2773         filegui is written.
2775         * gdesktop.c (check_window_in_one_panel): Provide better error
2776         messages here for debugging purposes.
2778         Disable stubs for filegui.c until they are actually implemented.
2779         I need to debug stuff.
2781         * gdnd.c (find_panel_owning_window): Use the new
2782         gtk_drag_get_source_widget function to find out reliably if the
2783         drag source happens to be in this application.
2785         * gscreen.c (x_create_panel): Set the usize for the ministatus
2786         label to be (0, -1), this means: do not request any horizontal
2787         space, use any vertical space given.
2789         Put the ministatus inside an hbox, and use
2790         gtk_container_set_resize_mode in this hbox to stop any queue
2791         events from being propagated up in the hierachy of widgets
2793         This kills all of the CList/GnomeIconList/Scrollbar/Toolbar
2794         flickering now.
2796 1998-11-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2798         * gtree.c: More work on gtree.  It is basically ready to stick
2799         into gmc-window.c/mc  I just need to know when you are ready
2800         Federico.
2802 1998-11-25  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2804         * gpopup.c (gpopup_do_popup): Hide the edit/view separator if
2805         those items were disabled, too.
2807         * gdesktop-icon.c (desktop_icon_realize): Added
2808         WIN_STATE_FIXED_POSITION and WIN_STATE_ARRANGE_IGNORE to the
2809         window hints for the desktop icons.
2811 1998-11-24  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2813         * gdesktop.c (desktop_icon_info_event): Run the popup menu for the
2814         icons in the desktop.
2816         * gpopup.[ch]: New files that take care of the popup menus for
2817         files in the desktop and in the panels.
2819         * Makefile.in: Added gpopup.[ch] to the list of sources.
2821 1998-11-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2823         * gdesktop.c (desktop_icon_info_place): Save the icon position
2824         when it is moved.
2825         (desktop_destroy): Removed the save_icons_pos() function and do
2826         not invoke it from desktop_destroy().
2828 1998-11-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2830         * gwidget.c (x_list_insert): Make it work with the new CList
2831         policies.
2833 1998-11-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2835         * gdesktop.c: Put in a bunch of stubs for the functions in
2836         filegui.h.  These will be removed as the dialogs get
2837         custom-written for Gnome.
2839         * gmetadata.[ch]: Changed the function names to "gmeta_*".
2841         * gscreen.c (CLIST_FROM_SW): Use scrolled_window->child, as
2842         viewport is obsolete.
2844 1998-11-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2846         * Makefile.in (OOBJS): Do not link ../src/filegui.o.  GMC does not
2847         link right now, but I guess I'll add stubs until we finish with
2848         the dialog boxes.
2850         * gdnd.c: #include <sys/types.h>
2852         * Makefile.in (checklinks): Fix sourcelinks -> maksourcelinks typo.
2854 1998-11-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2856         * gmain.c (session_save_state): Use gnome_geometry_string.
2858 1998-11-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2860         * gscreen.c (panel_file_list_compute_lines): Quick hack to get mc
2861         to compile with the new CList.
2863 1998-11-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2865         * Makefile.in: Removed gtrans.c from the list of sources.
2867         * gdesktop-icon.c: #ifdef cleanups.
2869         * gscreen.c (panel_create_file_list): Doh.  Return the scrolled
2870         window, not the clist.
2872         * gdnd.c (get_action): Implement the DnD actions menu.
2874 1998-11-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2876         * gdnd.c: New file that handles all the DnD stuff.  Mainly used to
2877         clean up gdesktop.c.
2879         * gscreen.c (panel_icon_list_drag_data_received): Use
2880         gdnd_drop_on_directory().
2881         (CLIST_FROM_SW): Added this macro to fetch the clist from the
2882         scrolled window in panel->list.
2883         (panel_create_file_list): Create a scrolled window and put the
2884         clist inside it.  This is required per the new clist API.
2885         (panel_configure_file_list): Use the scrolled window's adjustment.
2886         (panel_file_list_size_allocate_hook): Use the scrolled window
2887         instead of the clist.
2888         (panel_file_list_compute_lines): Use the scrolled window instead
2889         of the clist.
2890         (panel_file_list_configure_contents): Use the scrolled window
2891         instead of the clist.
2892         (panel_create_file_list): Do the DnD setup here, not in the
2893         realization callback.
2894         (x_create_panel): Do not realize the panel explicitly.
2895         (panel_create_pixmaps): Create the pixmaps using imlib instead of
2896         Gdk.
2898 1998-11-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2900         * gdesktop.c (text_changed): Doh.  Set the new filename of the
2901         desktop icon info structure.
2903 1998-11-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2905         * gdesktop.c (text_changed): We rename the files when the text
2906         changes.
2907         (save_icons_pos): New function to save the icon position metadata
2908         for all the icons in the desktop.
2909         (desktop_destroy): Save the icon positions when we exit.
2911 1998-11-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2913         * gdesktop.c (editing_started):
2914         (editing_stopped): New functions to install and remove
2915         pointer/keyboard grabs while icons are being edited,
2916         respectively.
2918 1998-11-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2920         * gdesktop.c (select_icon): Raise the icon when it is selected.
2922 1998-11-02  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2924         * gdesktop.c (select_range): Doh.  Fix dii -> ldii typo.  Also,
2925         use Windows semantics -- ranges are considered rectangular instead
2926         of linear.
2928         * gdesktop.c: Now desktop icons are stored in the layout_slots
2929         array.  We need to know which icons are in which slots.
2930         (unselect_all): Use the layout_slots array.
2931         (desktop_icon_info_place): Append the icon to the list in the
2932         proper slot.
2933         (desktop_icon_info_new): Initialize the position and slot fields
2934         in the desktop icon info structure.
2935         (desktop_icon_info_free): Remove the icon from its slot.
2936         (desktop_destroy): Destroy the layout slots and the icons
2937         properly.
2938         (remove_from_slot): New convenience function to remove an icon
2939         from the slot it is in.
2940         (get_icon_snap_pos): Do a bit nicer snapping by really using the
2941         closest slot.
2942         Added a last_selected_icon variable to keep track of the icon that
2943         was last selected, for shift+click selections.
2944         (select_icon): Finish selection semantics and clean up.  Now it is
2945         nice and simple and complete.
2946         (select_range): New function that handles range selections.
2948 1998-11-01  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2950         * gdesktop-icon.h (DesktopIcon): Added a child item for stippling
2951         the icon when it is selected.
2953         * gdesktop-icon.c (desktop_icon_select): Show/hide the stippling
2954         as appropriate.
2956         * gdesktop.c (desktop_icon_info_event): Handler for events on
2957         desktop icons.
2958         (select_icon): New function that handles icon selection based on
2959         mouse clicks and modifier keys.
2961         * gdesktop.c (struct desktop_icon_info): Added a type field to the
2962         structure.  It specifies the type of icon (file, directory), and
2963         is used to determine the DnD and menu behavior.
2965 1998-10-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2967         * gdesktop.c: We are now using the new desktop icon code.  It is
2968         not yet complete, but what is there does work.  We have icon
2969         creation, auto-layout and snapping.  Next step is drag and drop
2970         and popup menus.
2972         * glayout.c: #ifdef out the stuff that uses the old desktop code.
2973         I will replace it gradually.
2974         * gmain.c: Likewise.
2975         * gscreen.c: Likewise.
2977 1998-10-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2979         * gscreen.c (panel_icon_list_button_release): Remove unused
2980         variable.
2982         Provide hand written CList-start drag code
2984 1998-10-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2986         * gmetadata.c (meta_get_icon_pos): Renamed from
2987         meta_get_desktop_icon_pos().
2988         (meta_set_icon_pos): New public function to save the icon position
2989         information.
2991         * gdesktop-icon.c (canvas_size_allocated): New function.  We reset
2992         the canvas scrolling region here, when the canvas gets size
2993         allocated, to ensure that the canvas has always the correct
2994         scrolling region.  We do it here instead of in the reshape()
2995         function to avoid flicker.
2997 1998-10-29  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2999         * gmetadata.[ch]: New files with functions to handle all metadata
3000         issues -- fetching icons, icon positions, etc.
3002         * Makefile.in: Added gmetadata.[ch] to the list of sources.
3004 1998-10-28  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3006         * gdesktop-icon.c (create_window_shape): Use shaped icons only
3007         when the user has selected them.
3008         (desktop_icon_reshape): New public function to recompute the shape
3009         of the icon.  This should be used when the global
3010         desktop_use_shaped_icons flag changes.
3011         Added documentation comments to the public functions.
3013         * Makefile.in: Fixed for gdesktop-icon.
3015         * gdesktop-icon.[ch]: Renamed from desktop-icon.[ch], per Miguel's
3016         request.
3018         * desktop-icon.c (reshape): Position the icon text item correctly.
3020 1998-10-27  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3022         * desktop-icon.c (desktop_icon_new): Do now reshape more than
3023         needed by splitting the set_icon and set_text functions apart.
3025 1998-10-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3027         * gdesktop.c (desktop_icon_set_position): Do not lower the
3028         window.  The gnome-compliant wm will know what to do with windows
3029         on the Desktop layer.
3030         (post_setup_desktop_icon): Likewise.
3032         * desktop-icon.c (create_window_shape): Fetch the mask of the
3033         image "by hand", as we cannot rely on the canvas item having
3034         created it yet.
3036         * desktop-icon.c (desktop_icon_realize): Doh.  We need to
3037         initialize the gnome_win_hints before we set any of the hints.
3039 1998-10-21  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3041         * gdesktop.c (create_desktop_icon): Renamed from
3042         my_create_transparent_text_window.  Now uses the DesktopIcon
3043         widget for its work.
3044         (get_desktop_icon_for_dentry): Renamed from
3045         get_transparent_window_for_dentry.  Uses the DesktopIcon widget.
3046         (get_desktop_icon_for_di): Renamed from
3047         get_transparent_window_for_di.
3048         (desktop_icon_properties): Do not size_request the icon, since now
3049         we can get its dimensions directly from the DesktopIcon structure.
3051         * desktop-icon.[ch]: New file that takes care of desktop icons.
3052         It provides the spiffy widget that is used for them.
3054         * Makefile.in: Added desktop-icon.[ch] to the list of sources.
3055         MC should use Automake, I think.
3057 1998-10-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3059         * gscreen.c (panel_create_icon_display): Small size adjustment.
3061         * glayout.c (create_container): Small size adjustment.
3063         * gmain.c (xtoolkit_create_dialog): Center windows.
3065 1998-10-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3067         * gscreen.c (x_select_item): Force a canvas update when an icon
3068         has been selected.
3070 1998-10-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3072         * gscreen.c (panel_drag_data_get): New routine to provide data
3073         with the new DnD protocol.
3075         * gmain.c (dialog_key_pressed): If an icon has the focus, then do
3076         not process any of our events.
3077         Only stop the signal if we actually handled the event.
3078         (dialog_key_pressed):
3080 1998-10-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3082         * gscreen.c (panel_icon_renamed): Add support for renaming files.
3084 1998-10-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3086         * gscreen.c: Use the new icon list.
3088 1998-09-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3090         * gscreen.c: Hook to invoke the editor from the context menu.
3092 Fri Sep 18 13:51:16 1998  Pavel Roskin <pavel_roskin@geocities.com>
3094         * Makefile.in: Consequent "make" should not rebuild gmc every time
3096 Mon Aug 31 10:46:32 1998  Owen Taylor  <otaylor@redhat.com>
3098         * gscreen.c (display_mini_info): Removed calls to
3099         gtk_clip_label_set() hack, since its cut-n-paste code didn't work
3100         with new GTK's. If excessive resizes are a problem, they can be
3101         solved by adding an adjustment around the label, and calling
3102         gtk_container_set_resize_mode().
3104 1998-08-20  Raja R Harinath  <harinath@cs.umn.edu>
3106         * gdesktop.c: Include "mad.h", for xmalloc.
3107         * gkey.c: Likewise.
3108         * gscreen.c: Likewise.
3109         (panel_create_file_list): Use `g_free', not `free'.
3111 Wed Aug 19 19:45:16 EDT 1998 The Rasterman <raster@redhat.com>
3113         * gdesktop.c - changed dnd setting routine for desktop icon to set
3114           events on child window...
3115         * gtrans.c - chnaged routines to make window with child rawing area
3116           and set shape on parent window
3118 1998-08-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3120         * gscreen.c (panel_make_local_copies_and_transfer): Fix.
3122 1998-07-04  Carsten Schaar  <nhadcasc@fs-maphy.uni-hannover.de>
3124         * gmain.c (session_management_setup): Replaced
3125         'gnome_client_new_default' with 'gnome_master_client'.
3127 1998-06-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3129         * gwidget.c (x_update_input): The previous hack was not
3130         required, the right fix was to change Gtk.
3132 1998-06-22  Manish Vachharajani <mvachhar@vger.rutgers.edu>
3134         * gwidget.c: Don't call gtk_entry_scroll_adjust, it is a private member
3136 1998-06-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3138         * gdesktop.c (drop_cb): Mhm.  Negotiation of the drop type was not
3139         quite like I expected.  Anyways, fixed a bug: we need to take
3140         text/plain drops on the launch icons on the desktop.
3142 1998-06-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3144         * gdesktop.c (desktop_setup_icon): Assign the dentry->geometry
3145         from the drop position.   New .desktop files are now placed on the
3146         site they were dropped.
3147         (drop_cb): Use proper prototype.
3149 Sun May 31 13:19:59 1998  Norbert Warmuth  <k3190@fh-sw.de>
3151         * Makefile.in: use @LIBVFS@ when referring to libvfs-mc.a (one
3152         reference wasn't converted, yet).
3154 1998-05-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3156         * gwidget.c (x_create_input): Set the entry's visibility if it is
3157         a password field.
3159 1998-05-26  Marc Ewing <marc@redhat.com>
3161         * Makefile.in: use @LIBVFS@ when referring to libvfs-mc.a
3163 1998-05-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3165         * gmain.c (session_save_state): Perform shutdown if `shutdown'
3166         flag is set.
3168 1998-05-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3170         * gwidget.c (entry_release): Enhanced our marked handler for input
3171         lines.
3173         * gdesktop.c (desktop_create_directory_entry): Fix, make a
3174         g_strdup copy of the name. Fixes bug report #78.
3175         (desktop_icon_context_popup): Simplified this routine as we are
3176         using file_popup now anyways.
3178 1998-05-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3180         * glayout.c: Move the New window menu entry from ``Window'' to
3181         ``File''.
3183         * gwidget.c (x_unfocus_widget): Fix wartning.
3185         * glayout.c (set_hintbar): Call flush events after setting the
3186         hintbar.
3188 1998-05-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3190         * gwidget.c (x_create_input): Disable the use of the GNOME entries
3191         for now, as they are very slow.  We need to figure out what is
3192         wrong with this.
3194         With this change, dialog boxes close quickly instead of taking
3195         ages to close.
3197         * gscreen.c, gdesktop.c (file_popup_add_context, file_popup):
3198         Share the context menu code in gdesktop.c and gscreen.c.  The
3199         desktop pop up menus now include all of the stuff that would have
3200         appeared in the Panel.
3202         * gdesktop.c (desktop_icon_remove): Remove the file associated
3203         with this desktop entry if it is on the ~/desktop directory.
3205 1998-05-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3207         * gscreen.c (load_dnd_icons): Remove the code and the icons that
3208         we had here privately.  Use new gnome-stock functionality
3209         instead.
3211 1998-05-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3213         * gscreen.c (panel_drag_request): All of the drag_request code is
3214         now shared by both the Icon View and the Listing view;
3215         New drag request type:  file:ALL.  If the user is looking at a
3216         remote site, and the target application does not have VFS support
3217         it should not list url:ALL but file:ALL as the accepted drop
3218         type.
3220         This will make copies of the remote files and pass the files to
3221         the application.
3223 1998-05-20  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3225         * gtrans.c (set_window_text): Pass new justification parameter to
3226         gnome_icon_paint_text().
3228         * gpageprop.c (item_properties): Restore the arrow cursor for the
3229         desktop icon windows.
3231         * gdesktop.h (desktop_icon_t): Removed unused title field.
3233         * gtrans.c (set_window_text): Made it use the new
3234         GnomeIconTextInfo functions.
3236 1998-05-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3238         * gscreen.c (panel_create_icon_display): Set some good separator
3239         characters for the file icon list.
3241 1998-05-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3243         * gprop.c (perm_owner_new): Forget about history for now.
3245         * gpageprop.c (item_properties), gprop.c: Add executable editing
3246         (command, and terminal).  Save the dentry after modification
3248 1998-05-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3250         * gprop.c (change_icon): Test for gp, as the combobox emits the
3251         "changed" signal when shutting down.  Great.
3253         * gdesktop.c (desktop_reload): Missing mc_closedir
3254         (desktop_setup_icon): Fix memory leak.
3255         (get_desktop_icon): Fix memory leak.
3256         (desktop_create_directory_entry): Set the size of the exec
3257         vector.
3258         (desktop_create_launch_entry): Same.
3260         We now create launch entries instead of trying to support
3261         regular dropped stuff on the desktop, this makes things easier and
3262         more consistent.
3264 1998-05-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3266         * gscreen.c (x_select_item): Test for full icon visibility instead
3267         of partial visibility only.
3269 1998-05-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3271         * gscreen.c (create_popup_submenu): Use continue, not break on
3272         this loop.
3274 Sat May 16 02:29:51 1998  Tom Tromey  <tromey@cygnus.com>
3276         * gdesktop.c (url_dropped): `exec' field of desktop entry now a
3277         vector.
3278         (dentry_execute): Likewise.
3279         (desktop_icon_remove): Likewise.
3280         (get_transparent_window_for_dentry): Likewise.
3281         (desktop_create_directory_entry): Likewise; also initialize
3282         exec_length.
3284 1998-05-16  Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
3286         * gscreen.c (create_popup_submenu): fixed bug which caused it to require
3287         0 instead of 1 marked files for F_SINGLE file_actions.
3288         * gscreen.c (file_popup): first item in the menu displays "..." when
3289         multiple files are selected.
3291 Thu May 14 23:31:15 1998  Tom Tromey  <tromey@cygnus.com>
3293         * gmain.c (session_save_state): Use "+" instead of "%s" in format
3294         specification.  Free `argv'.
3296 1998-05-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3298         * gtrans.c (create_transparent_text_window): Removed the hack to
3299         lower the window on exposes.  Guess what happens when you have two
3300         icons on the same spot.
3302 Thu May 14 02:02:56 1998  Norbert Warmuth  <k3190@fh-sw.de>
3304         * Makefile.in (EXTRALIBS): add @LINTL@
3306 1998-05-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3308         * gtrans.c (set_window_text): draw pixmaps without transparency
3309         correctly.
3311 1998-05-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3313         * gscreen.c (panel_icon_list_realized): Add drag and drop support
3314         to the icon list view;
3316 1998-05-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3318         * gscreen.c (panel_fill_panel_icons): New function:  Fill up the
3319         icon list.
3320         (x_create_panel): Change in the approach:  we create both of the
3321         widget views at creation time and we now carefully show every
3322         component.  I attach everything to the table, but not necesarly
3323         show it.
3325         * gblist.c (blist_select_row): New widget derived from GtkClist.
3326         replace select_row and unselect_row with null functions, as the
3327         gmc code takes care of the rest.
3329 1998-05-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3331         * gdesktop.c (desktop_icon_drag_start): Do not attempt to use
3332         icons if we could not load the images for the icon.
3334         * gwidget.c (x_update_input): Keep the cursor always visible.
3336         * gview.c (view): Use a buttonbar widget.
3338         * gwidget.c (buttonbar_clicked): Provide a trivial implementation
3339         of the buttonbar that only responds to key sequences.
3341         * gmain.c (dialog_panel_callback): Call midnight_callback to get
3342         the main bindings working.
3344         * gdesktop.c (perform_drop_manually): Use p to walk the dropped
3345         data.  This is an important bug fix.
3347         * gmain.c (idle_destroy_window), main.c: Session management now
3348         supports not showing a toplevel window (in case all of the windows
3349         were closed).
3351 1998-04-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3353         * gtrans.c (make_transparent_window): Put hack back.
3355         * gcache.c (image_cache_load_image): Federico spooted the problem:
3356         I have to duplicate my keys for the hash.
3358         * gmain.c (create_panels): Create one panel per directory
3359         specified.  For some strange reason the code hangs if you start up
3360         more than one panel at once.  This is not a gmc bug, it appears to
3361         be an Imlib/gtk/gdk interaction.  I am for now creating one panel
3362         in the main program execution thread and the rest during the idle
3363         handler.
3365         (session_save_state): Added session management support.
3367 1998-04-29  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3369         * gprop.c (gprop_general_new): Added an simple icon preview to the
3370         icon selector.
3372 1998-04-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3374         * gdesktop.c: Finish desktop_icon_remove implementation.
3376         * glayout.c (update_panels): GNOME specific Implementation of the
3377         update_panels routine.
3379 Tue Apr 28 06:52:24 1998  Norbert Warmuth  <k3190@fh-sw.de>
3381         * gcmd.c (gnome_open_terminal): Changed my_system(1,...) to
3382         my_system(EXECUTE_AS_SHELL,...)
3384 1998-04-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3386         * glayout.c (layout_panel_gone): Removed debugging information.
3387         Renamed "Panel" to "Window" to make it less confusing to users.
3388         Moved the "New window" from the "File" menu to the "Window" menu.
3390         * gmain.c (dialog_panel_callback): Walk the list of panels to
3391         determine to which panel the activated widget belongs.
3393 1998-04-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3395         * gwidget.c (x_create_radio): Fix the WRadio widgets.
3397 1998-04-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3399         * glayout.c (create_container): Add wmclass.
3401 1998-04-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3403         * gdesktop.c (desktop_reload): Show all of the widgets on a reload
3404         operation.
3406         * gscreen.c (x_panel_update_marks): Do only set the marks if the
3407         widget has been created
3409         * glayout.c (assign_other): Keep track of all of the opened
3410         panels.  We were never removing them from the containers list.
3411         This fixes a number of problems.
3413         * gwidget.c (x_dialog_stop): Only call gtk_main_quit if this
3414         dialog did not inlcude the DLG_GNOME_APP flag, as those windows
3415         did not launch a gtk_main event loop.
3417         * gcmd.c: Try various terminal programs in the PATH before giving
3418         up
3420         * glayout.c: Unselect command is unselect_cmd, not select_cmd
3422         * gcmd.c (gnome_quit_cmd): Add quit confirmation.
3424         * gdesktop.c (perform_drop_manually): Check the type for the
3425         source file (directory/file) and perform the proper operation.
3426         Before this we always did a *_file_file operation.
3427         (perform_drop_manually): Use copy_dir_dir correctly
3428         (desktop_setup_default): Use copy_dir_dir correctly
3430         * gwidget.c (x_create_label): Remove debugging labels.
3432         * gscreen.c: Do not show the view/view unfiltered if the
3433         selectioned item is a directory.
3435         * gwidget.c (x_radio_toggle): Never commit non-compilable code.
3437 1998-04-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3439         * gwidget.c (remove_hotkey, x_create_radio): Radio buttons should
3440         not display the special Hotkey specificator.
3442         * gcmd.c (gnome_close_panel): Implement the close-the-panel
3443         functionality.
3445         * gscreen.c (x_panel_destroy): Implement the gnome mode way of
3446         destroying the panel.
3448         * gview.c (view_status): Add cacheing of the information status,
3449         to avoid excessive flicker.  It would be better if GtkLabel did
3450         not flicker though.
3451         (scrollbar_moved): Scroll correctly.  We now use
3452         view_move_backward and view_move_forward to adjust the scrollbar
3453         contents.  This displays the scrollbar correctly.
3455         * gwidget.c (x_listbox_select_nth): This may be invoked before the
3456         widget has been created, work around this problem.
3458         * gscreen.c (show_dir): Set the title bar for the window to the
3459         current directoy.  Reported by both Mike and Elliot.
3461         * layout: Updated to the new hotlist dialog box.
3463 1998-04-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3465         * gtrans.c (create_transparent_text_window): Destroy the cursor
3466         properly.
3468 1998-04-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3470         * gview.c (x_init_view): Initialize view->sadj.
3472         * gdesktop.c (start_desktop): use destkop_load instead of
3473         desktop_reload.
3474         (desktop_load): This reloads + shows every widget on the
3475         desktop_icons list.
3477 1998-04-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3479         * gdesktop.h: Added extern declarations for the
3480         want_transparent_icons and want_transparent_text variables.
3482         * gtrans.c (set_window_text): Now we use the new global variables
3483         want_transparent_icons and want_transparent_text to decide how to
3484         paint the pixmap and mask.  The want_transparent_* variables can
3485         thus be configured for the smartness/speed of your X server when
3486         using shaped windows.
3488 Fri Apr 12 02:40:41 1998  Norbert Warmuth  <k3190@fh-sw.de>
3490         * gwidget.c (x_create_input): return 1 if the widget has been
3491         initialized manually (there was no return value)
3493         (x_create_buttonbar): to few arguments to sprintf (button number
3494         was missing); return a value.
3496 1998-04-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3498         * gscreen.c (x_create_panel): Added back and forward buttons.  I
3499         need a "Home" icon too.
3501         * gwidget.c (x_create_input): Make the selection if the input has
3502         not yet been touched.
3504         * gscreen.c (panel_action_open): If opening an item fails, try
3505         panel_action_open_with.
3507         * gview.c: Implement the viewer scrollbar.
3509 1998-04-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3511         * gscreen.c (panel_drop_data_available): Reload the panel contents
3512         upon a drop.
3514         * gmain.c (gnome_dlg_send_destroy): Hide the widgets just before
3515         they are going to get destroyed, to avoid the shutdown
3516         flickering.
3517         (x_destroy_dlg_start): New routine/hook invoked when the destroy
3518         has just started
3519         (x_set_idle): Cancel the idle handlers properly.
3521         * gwidget.c (x_create_check): Finish the checkbox implementation.
3523         * gdesktop.c (get_desktop_icon): Fix this routine: it was
3524         cretating a file name when the filename was not set properly.
3526 1998-04-01  Marc Ewing  <marc@redhat.com>
3528         * gscreen.c: Added #include <gdk/gdkprivate.h>
3530 1998-03-31  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3532         * gcache.c: Added an Image cache for all of the imlib-loaded
3533         images to avoid destroying/reloading the images.
3535         * gdesktop.c, gtrans.c: Use the image cache.
3537 1998-03-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3539         * gscreen.c (x_create_panel): Show the GnomeApp when we are done
3540         packing all of our information.
3542         * gmain.c (create_panels): do not show any of the windows yet.
3544 1998-03-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3546         * gscreen.c (x_fill_panel): Colors are properly displayed now.
3548         Use the clipped labels.
3550         * gcliplabel.c, gcliplabel.h: Derived label that does label
3551         clipping (it does not request the allocation for the whole string,
3552         but settles with whatever is provided in the size_allocation).
3554 1998-03-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3556         * gtrans.c (create_transparent_text_window): Set the window's
3557         cursor to the normal top-left arrow.
3559 Mon Mar 23 01:40:35 1998  Norbert Warmuth  <k3190@fh-sw.de>
3561         * gtools.c (translate_gdk_keysym_to_curses): renamed KEY_BACKTAB
3562         to KEY_BTAB (the name ncurses uses)
3564         * Makefile.in: Install the icon-files and the layout-file from $srcdir.
3566 1998-03-20  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3568         * gdesktop.c (icon_properties):
3569         * gpageprop.c (item_properties): Modified to accept dentry title
3570         changes as well.
3571         (item_properties): Fixed base and fname confusion in call to
3572         concat_dir_and_file().
3574         * gprop.c (gprop_general_new):
3575         (gprop_general_get_data): Renamed to general from icon.  The
3576         general Gprop now lets you enter the title and icon filename for a
3577         dentry.
3579 1998-03-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3581         * gdesktop.c (icon_properties): Whoops, actually save the dentry.
3582         (post_setup_desktop_icon): Moved the icon positioning call outside
3583         of this function so that property-changed icons will not move on
3584         the desktop.
3586         * gdesktop.c (desktop_icon_context_popup): It is not necessary to
3587         set the menu position.
3588         (desktop_icon_context_popup): gtk_signal_connect_object_after to the menu
3589         items with gtk_widget_destroy as a callback so that we can destroy
3590         the menu widget appropriately.
3592 1998-03-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3594         * gscreen.c (display_mini_info): Implement mini status.
3596 1998-03-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3598         * gdesktop.c (get_transparent_window_for_dentry): New function,
3599         creates the proper transparent icon window for a dentry.
3600         (post_setup_desktop_icon): New function, does post-setup stuff for
3601         a desktop icon (setting it as a drop target, positioning it, etc.).
3603         * gpageprop.c (item_properties): Now the dentry parameter is a
3604         desktop_icon_t instead.
3605         We now return a bitmask that indicates what stuff changed.  The
3606         caller can use this information to decide what to update, repaint, etc.
3608         * gdesktop.h: Moved the icon_t and desktop_icon_t structures here.
3610         * gpageprop.c (item_properties): Insert icon control if appropriate.
3612         * gprop.c (gprop_icon_new):
3613         (gprop_icon_get_data): Renamed from gprop_dir_*().
3615         * gscreen.c (panel_action_properties): Re-reads panel only if necessary.
3617         *gpageprop.c (item_properties): now returns TRUE if something got
3618         changed, FALSE otherwise.  This should be used to decide whether
3619         to re-read the panel or not.
3621         * gpageprop.c: #include "../vfs/vfs.h".
3622         #include "dialog.h".
3624         * gprop.c (gprop_dir_new):
3625         (gprop_perm_new):
3626         (gprop_general_new): Connect to the destroy signal of the toplevel
3627         widget and destroy the Gprop structure on the callback.
3629 Wed Mar 18 23:09:35 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3631         * gscreen.c (panel_file_list_select_row): Use control/shift click
3632         to add files to the selection.
3634 Wed Mar 18 22:32:53 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3636         * gscreen.c (panel_action_properties): Make Federico's
3637         page-properties code functional.
3639         * gpageprop.c: New file, implements most of the page properties on
3640         top of the gprop.c code.
3642 Wed Mar 18 20:35:45 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3644         * gdesktop.c (desktop_create_launch_entry): Support for the "Drop"
3645         target in mc.ext now.
3647         * Add support for dragging the icons on the desktop.
3649         (desktop_icon_make_draggable): new function.
3650         (drop_from_event): simplify.
3651         (my_create_transparent_text_window): Get the motion notify event.
3652         (drops_from_event): create a vector based on thge drop event.
3653         (drop_cb): splitted, call url_drop for regular drops, otherwise it
3654         is a icon drop.
3655         (artificial_drag_start): new routine, used now by gscreen.c and
3656         gdesktop.c
3657         (drop_on_directory): Check result value of operation.
3658         (desktop_icon_set_position): sane interface.
3659         (stop_desktop): Flush all of our state to disk.
3661 1998-03-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3663         * gscreen.c: Removed tests for the gprop stuff.
3664         (file_popup): It is not necessary to show the popup menu.
3666         * gprop.c (perm_group_new):
3667         (perm_owner_new): Fill the combo lists with users and groups,
3668         respectively.
3670         * gprop.h: New files gprop.[ch].  These create the property pages
3671         for desktop entries.
3673         * Makefile.in: Added gprop.[ch] to the rules.
3675         * glayout.c: Put gnome_about_cmd as a callback for the About menu item.
3677 Tue Mar 17 22:40:36 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3679         * gdesktop.c (desktop_setup_icon): Lots of changes to accomodate
3680         dropping icons on the root window.
3682         (do_symlinks): Implement symlink action.
3684         (icon_delete, desktop_icon_context_popup): Implement icon context
3685         menus.  only deleting an icon is working right now.
3687         * gscreen.c: Load the drag and drop icons from the installation
3688         directory.
3690         * Makefile.in (install_gmc): Install our icons.
3692 Tue Mar 17 02:38:37 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3694         * gdesktop.c (desktop_setup_default): Create a default desktop
3695         entry on the root window for the Home directory if not mc.desktop
3696         exists -yet-
3698         Get drops on the root window to work.   Joy and hapiness!
3700 Tue Mar 17 00:43:50 1998  Tom Tromey  <tromey@cygnus.com>
3702         * glayout.c (gnome_panel_about_menu): "About" item now a stock
3703         menu item.
3705 1998-03-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3707         * gscreen.c (filter_item_activate): Make it convert the glob
3708         pattern to a regexp if appropriate.
3710 Sat Mar 14 17:13:26 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3712         * gmain.c (gnome_dlg_send_destroy): New signal handler for
3713         "delete_event".  I return TRUE (ie, do not kill this window), and
3714         manually queue que destruction of this window.
3716         * gtools.c (query_dialog): Do not allow resizing; do not destroy
3717         the dialog ourselves, this is properly handled by dlg.c now
3718         (pack_button): Do not use the defaults: we do not want growing
3719         buttons;
3721 Fri Mar 13 16:01:28 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3723         * gwidget.c (buttonbar_clicked, x_create_buttonbar): Button bar
3724         widget implemented.
3726         * gtools.c: Implement the non-modal version of the message
3727         routine.
3729         * gview.c: Create a GnomeApp widget to contain the viewer.
3731         * gmain.c (xtoolkit_create_dialog): Add a new mode where the
3732         container window is a GNOME_APP window.
3734 1998-03-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3736         * gscreen.c (x_select_item): Make it use GTK_VISIBILITY_FULL
3737         instead of a plain boolean value.
3738         * gwidget.c (x_listbox_select_nth): Likewise.
3740         * gscreen.c (filter_items): New global variable full of filters.
3741         Please, someone fill in the regexp parts, as I was too lazy to do
3742         them :-)
3743         (panel_create_filter): Now the filter has a very nice button that
3744         pops up a menu for selecting the filter.
3746 Thu Mar 12 22:11:23 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3748         * gwidget.c (x_update_input): Use GnomeEntry widgets instead of
3749         the GtkEntry.
3751         * gwidget.c (listbox_select): Fix for the listbox selection with
3752         the mouse.
3753         (x_create_button): Use stock pixmaps.
3755         * gcmd.c: Moved all of the _cmd routines from glayout to this
3756         place.
3757         (save_panel_types): Provide GNOME implementation.
3759         * glayout.c: New and improved menu layout.  Use stock pixmaps.
3761 1998-03-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3763         * gmc-chargrid.c (gmc_char_grid_draw): Someone teach me how to
3764         subtract.  Fixed a stupid offsetting bug.
3765         (update_region): Added clipping of region bounds.
3767         * gmc-chargrid.c: Changed the struct attr with pointers mess with
3768         something saner.
3769         Added an in_resize flag to avoid calling our internal signal
3770         handlers recursively.
3771         (gmc_char_grid_draw): Added proper draw handler for our case; the
3772         widget's window does not fill its allocation.
3773         (paint): New wrapper for update_region(); it converts window
3774         coordinates to row/column character coordinates.
3775         (gmc_char_grid_expose): Use paint().
3777 1998-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3779         * gmc-chargrid.c (update_strip): Doh.  Fixed painting of
3780         background rectangles.
3781         (gmc_char_grid_expose): Fixed off-by-one errors in area
3782         calculation.  Ripped off the code from gtkterm to do this :-)
3783         (free_attrs): New internal convenience function.
3785 Thu Mar 12 00:08:06 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3787         * gview.c (view_percent): Added status display.
3789 Wed Mar 11 22:35:02 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3791         * gwidget.c (entry_release): Now the WEntrys track the current
3792         selection.p
3793         (x_update_input): Repaint the widget after changing the position.
3795         * gscreen.c (x_fill_panel): Remember the selected item on the
3796         panel before filling it up, as gtk_clist emits a select_item
3797         signal when filling it up, which changes the current selection
3798         (and thus some routines that invoke the reload panel option
3799         fail).
3801         (create_popup_submenu): Implement context sensitive menus (regular
3802         files, and symlinks).
3804         (panel_realized): Use a different icon when we are dragging a
3805         group of files.
3807         (panel_artificial_drag_start): Add Elliot's Artificial drag start
3808         support.
3810 1998-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3812         * gmc-chargrid.c (gmc_char_grid_get_size): New public function.
3813         (gmc_char_grid_put_text): New public function.  It is the same as
3814         gmc_char_grid_put_str, but can take any arbitrary string plus its
3815         length.
3816         (gmc_char_grid_put_char, gmc_char_grid_put_str,
3817         gmc_char_grid_put_text): These functions now take a background
3818         pixel parameter --- the GmcCharGrid widget now supports fg/bg attributes.
3820         * gmc-chargrid.h: Changed colors field to attrs.
3822         * gmc-chargrid.c: New Character Grid widget for the file viewer.
3823         This is a very lean and fast widget for displaying a grid of
3824         monospaced characters.  Just like a crippled-down terminal.
3826 Tue Mar 10 23:46:29 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3828         * gscreen.c (x_adjust_top_file): We no longer adjust the top
3829         displayed filename.
3831         (panel_build_selected_file_list): Fix for the transfered data.
3833         (panel_drop_data_available): Now drop support uses the new
3834         coords.x and coords.y fields from the DropDataAvailableEvent to
3835         find out which directory receives the drop.
3837         * glayout.c: added: configure_box, configure_vfs
3838         (get_other_type): Return the correct value.
3840 1998-03-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3842         * gscreen.c (panel_file_list_size_allocate_hook): Now we
3843         connect_after to the size_allocate signal and block the handler.
3844         Things are still not perfect, though.
3846         * gtools.c (message): Added return NULL.  This needs to be fixed.
3847         (translate_gdk_keysym_to_curses): FIXME: Replace KEY_BACKTAB by '\t'
3848         while KEY_BACKTAB is added somewhere else.
3849         (translate_gdk_keysym_to_curses): return -1 as last resort.
3851         * glayout.c (get_current_index): Add g_assert_not_reached() for
3852         fatal case.
3854         * gmenu.c (menubar_new): Cast g_menubar to unsigned long.
3856         * gwidget.c (x_create_input): Cast entry to GTK_OBJECT.
3858         * gkey.c (find_select_closure_callback): Fix = -> == typo.
3860 Tue Mar 10 00:10:32 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3862         * gscreen.c (panel_drop_data_available): Now drop support uses the
3863         new coords.x and coords.y fields from the DropDataAvailableEvent
3864         to find out which directory receives the drop.
3866         * gwidget.c (x_radio_focus_item): Add support for focusing radio
3867         buttons.
3869 Mon Mar  9 15:12:00 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3871         * gtools.c (translate_gdk_keysym_to_curses), dlg.c
3872         (dlg_key_event): Support for backtab.
3874         * gwidget.c: highlight properly the focused radio entry.
3876         * gmain.c (x_init_dlg): After setting up the X widget, set the
3877         Gtk focus to h->current;
3879 1998-03-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3881         * gscreen.c (x_panel_select_item): Set the colors of the row.
3883         * gmain.c (xtoolkit_init): Changed gnome_init() to new version.
3884         (xtoolkit_init): Call gnome_init() properly.  Also, return 0.
3886 Sat Mar  7 15:24:49 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3888         * gwidget.c (entry_click): Focus the entry on clicks.
3890 Fri Mar  6 20:50:19 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3892         * gmain.c (create_panels): New per-port variable, used to flush
3893         all of the pending X events.
3895         (x_set_idle): Implement idle functions, now the find command works
3896         properly.
3898         * gwidget.c (x_create_radio): Connect to the "toggled" signal to
3899         keep track of the radio button.
3901         (listbox_select): callback for the select and double click
3902         actions.
3903         (x_update_input): This can be invoked before the
3904         widget X resources have been allocated.  Take care of this.
3906         (x_create_input): update the cursor position as well.
3908         (x_list_insert, x_create_listbox, x_list_delete_nth,
3909         x_listbox_select_nth): implement the Listbox widget.
3911         * gconf.h:  New configuration options:
3912         PORT_HAS_PANEL_ADJUST_TOP_FILE and
3913         PORT_HAS_PANEL_RESET_SORT_LABELS
3915 1998-03-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3917         * gmain.c (get_color): Make it use GdkColorContext correctly.
3919         * gscreen.c (panel_create_filter): The filter control is now a
3920         nice GnomeEntry.  It does not work due to gmc trapping key events;
3921         I'll look into it tomorrow.
3922         (internal_select_item): Fixed broken behavior.  Now uses GtkCList properly.
3923         default_filters: new structure with pre-defined glob patterns.
3924         This is actually broken, because it will only work when
3925         easy_patterns is enabled.  I have to figure a way to make it work
3926         with regexp mode as well.
3928 Thu Mar  5 23:54:58 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3930         * gdesktop.c (drop_on_panel): New function;  Used by the directory
3931         icons and by regular panels to support drag targets;
3933         * gscreen.c (panel_drop_data_available): Performs the drop action
3934         on a panel.  It needs fixing, as the DropDataAvailabelEvent does
3935         not provide any information as to where the drop actually
3936         happened.
3938         (fixed_gtk_widget_dnd_drag_set, fixed_gtk_widget_dnd_drop_set):
3939         Only set the main window of the clist to be the source/target of
3940         the drag and drop code.  The little square at the end did not make
3941         much sense as a drop/drag spot.
3943 1998-03-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3945         * gmain.h: Added prototype for x_filter_changed().
3946         Added #include "panel.h".
3948         * gconf.h (PORT_HAS_FILTER_CHANGED): New flag for conditional compilation.
3950 Wed Mar  4 22:43:00 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3952         * gtools.c (query_dialog): Rewritten to use the MC dialog/widget code.
3954         * gutil.c (my_system), acconfig.h: By default gnome will not have
3955         a subshell (at least for now) and will now exec everything
3956         asyncronously by default.
3958         * gscreen.c: Exactly what was I thinking when I used the
3959         g_panel_contents structure will remain a mistery for future
3960         programming psycologists.  It was a huge mistake.
3962         * gdesktop.c: Use the new icon/text display routine from
3963         Federico.
3965 Tue Mar  3 21:03:52 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3967         * gmain.c (x_destroy_dlg): Call gtk_grab_remove when destroying
3968         the dialog.
3970         * gmain.c (x_focus_widget): Handle special case of toplevels.
3972 1998-03-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3974         * gscreen.c: Some hackish changes to work around idempotence bugs
3975         in gtk_clist_select_row().