rpms/emelfm2/F-7 e2-0.3.6-07-12-01.patch, NONE, 1.1 .cvsignore, 1.14, 1.15 emelfm2-makefile.config.patch, 1.6, 1.7 emelfm2.spec, 1.21, 1.22 sources, 1.14, 1.15
Christoph Wickert (cwickert)
fedora-extras-commits at redhat.com
Sun Dec 2 20:35:12 UTC 2007
- Previous message (by thread): rpms/emelfm2/F-8 e2-0.3.6-07-12-01.patch, NONE, 1.1 .cvsignore, 1.14, 1.15 emelfm2-makefile.config.patch, 1.6, 1.7 emelfm2.spec, 1.24, 1.25 sources, 1.14, 1.15
- Next message (by thread): rpms/kdiff3/F-7 sources,1.2,1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: cwickert
Update of /cvs/pkgs/rpms/emelfm2/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv6103/F-7
Modified Files:
.cvsignore emelfm2-makefile.config.patch emelfm2.spec sources
Added Files:
e2-0.3.6-07-12-01.patch
Log Message:
* Sun Dec 02 2007 Christoph Wickert <fedora christoph-wickert de> - 0.3.6-1
- Update 0.3.6 with upstream's e2-0.3.6-07-12-01.patch
- Enable the ACL plugin
e2-0.3.6-07-12-01.patch:
--- NEW FILE e2-0.3.6-07-12-01.patch ---
--- docs/NEWS 2007-11-27 13:16:52.000000000 +1100
+++ docs/NEWS 2007-12-01 12:52:45.000000000 +1100
@@ -1,9 +1,8 @@
$Id: NEWS 757 2007-11-27 02:16:52Z tpgww $
-== emelFM2 0.3.6 == /11/2007
+== emelFM2 0.3.6 == 29/11/2007
Highlights of this release:
* some small feature changes, including build-time configuration options for translucent windows etc
-* default to "new" command-execution code
-* around 10 bugfixes
+* around 10 bugfixes, including one to prevent freezes on gtk 2.12
Details are available at http://emelfm2.net/ChangeLog.
--- Makefile 2007-11-27 13:16:52.000000000 +1100
+++ Makefile 2007-12-01 12:49:14.000000000 +1100
@@ -47,6 +47,6 @@
VERSION=0.3.6
#this is effectively a sub-version, to manage config file upgrades while not changing the version
-RELEASE=
-#RELEASE=.1
+#RELEASE=
+RELEASE=.1
PROGNAME=emelFM2
BUILDDATE=$(shell date)
@@ -272,13 +272,11 @@
@install -d $(MAN_DIR)
@install -m 644 docs/$(TARGET).1 $(MAN_DIR);
- @bzip2 -f $(MAN_DIR)/$(TARGET).1;
+# @bzip2 -f $(MAN_DIR)/$(TARGET).1;
ifeq ($(XDG_INTEGRATION), 1)
@install -d $(XDG_DESKTOP_DIR)
- @install -m 644 docs/desktop_environment/$(TARGET).desktop \
- $(XDG_DESKTOP_DIR)
+ @install -m 644 docs/desktop_environment/$(TARGET).desktop $(XDG_DESKTOP_DIR)
@install -d $(XDG_APPLICATION_DIR)
- @install -m 644 docs/desktop_environment/$(TARGET).applications \
- $(XDG_APPLICATION_DIR)
+ @install -m 644 docs/desktop_environment/$(TARGET).applications $(XDG_APPLICATION_DIR)
endif
--- plugins/e2p_find.c 2007-11-06 20:13:06.000000000 +1100
+++ plugins/e2p_find.c 2007-11-30 18:45:37.000000000 +1100
@@ -161,11 +161,18 @@
gboolean content_anycase; //ditto
gboolean content_only; //not looking for anything else
+ gint searchdepth;
#ifdef TRACKERFIND
gint tracker_service; //index of service in cmd_str[]
#endif
+#ifdef E2_VFS
+ VPATH sdata;
+#else
+ gchar *localstartpath;
+#endif
GList *dirdata;
#ifdef E2_VFS
GError **operr;
#endif
+ pthread_t findID;
gboolean aborted; //TRUE after STOP button click
} findtargets;
@@ -358,4 +365,6 @@
static gboolean _e2p_find_match1 (VPATH *localpath, const struct stat *statptr,
findtargets *data);
+static gpointer _e2p_find_dofind (E2_FindDialogRuntime *rt);
+static void _e2p_find_cleanfind (E2_FindDialogRuntime *rt);
static void _e2p_find_make_name_tab (GtkWidget *notebook, E2_FindDialogRuntime *rt);
static void _e2p_find_make_size_tab (GtkWidget *notebook, E2_FindDialogRuntime *rt);
@@ -744,7 +753,7 @@
if (data->sizeop != ISNA)
{
- if (data->sizeop == ISLT && data->sizetarget >= (guint64) statptr->st_size)
+ if (data->sizeop == ISLT && data->sizetarget <= (guint64) statptr->st_size)
return FALSE;
- if (data->sizeop == ISGT && data->sizetarget <= (guint64) statptr->st_size)
+ if (data->sizeop == ISGT && data->sizetarget >= (guint64) statptr->st_size)
return FALSE;
if (data->sizeop == ISEQ && data->sizetarget != (guint64) statptr->st_size)
@@ -959,4 +968,9 @@
// if (data.contentop == REGX)
// regfree (&data.compiledcontent);
+#ifdef E2_VFS
+ g_free (VPSTR(data->sdata));
+#else
+ g_free (data->localstartpath);
+#endif
}
/**
@@ -1914,5 +1928,5 @@
static void _e2p_find_response_cb (GtkDialog *dialog, gint response, E2_FindDialogRuntime *rt)
{
- printd (DEBUG, "Find plugin dialog response cb, response %d", response);
+// printd (DEBUG, "Find plugin dialog response cb, response %d", response);
switch (response)
{
@@ -2099,7 +2113,5 @@
@brief callback for find button click
-Parses the selected options, converts to corresponding
-shell command, and executes it
-uses GNU find, grep and/or ?? for mimetype, content
+Parses the selected options and initiates search in a separate thread
@param button clicked widget
@@ -2111,5 +2123,4 @@
{
gchar *tmp2, *dlocal;
- gint searchdepth;
findtargets data;
@@ -2121,27 +2132,6 @@
}
-#ifdef E2_VFS
- VPATH sdata;
-#endif
-
//setup search parameters
_e2p_find_get_match_data (&data, rt);
-/*
- data->content_only = (
- data.contentop != ISNA
- && data.nameop == ISNA
-#ifdef MIMEFIND
- && data.mimeop == ISNA
-#endif
- && data.sizeop == ISNA
- && data.permop == ISNA
- && data.mtimop == ISNA
- && data.atimop == ISNA
- && data.ctimop == ISNA
- && data.userop == ISNA
- && data.groupop == ISNA
- && data.typeop == ISNA
- );
-*/
if (
data.contentop == ISNA
@@ -2174,5 +2164,5 @@
dlocal = g_strdup (G_DIR_SEPARATOR_S);
#ifdef E2_VFS
- sdata.spacedata = curr_view->spacedata;
+ data.sdata.spacedata = curr_view->spacedata;
#endif
}
@@ -2183,5 +2173,5 @@
dlocal = D_FILENAME_TO_LOCALE (curr_view->dir);
#ifdef E2_VFS
- sdata.spacedata = curr_view->spacedata;
+ data.sdata.spacedata = curr_view->spacedata;
#endif
}
@@ -2201,5 +2191,5 @@
dlocal = D_FILENAME_TO_LOCALE (tmp);
#ifdef E2_VFS
- sdata.spacedata = curr_view->spacedata;
+ data.sdata.spacedata = curr_view->spacedata;
#endif
}
@@ -2209,52 +2199,76 @@
*tmp2 = '\0';
#ifdef E2_VFS
- sdata.localpath = dlocal;
+ data.sdata.localpath = dlocal;
#endif
}
+#ifndef E2_VFS
+ data.localstartpath = dlocal;
+#endif
if (_e2p_find_get_flag (SEARCH_SUBDIRS_P)) //, rt))
- searchdepth = -1; //unlimited
+ data.searchdepth = -1; //unlimited
else
- searchdepth = 1;
+ data.searchdepth = 1;
- if (rt == NULL)
- {
g_static_rec_mutex_unlock (&find_mutex);
- return;
- }
-
- //DO IT
+ rt->matchdata = ALLOCATE (findtargets);
+ CHECKALLOCATEDWARN (rt->matchdata, return;)
+ *rt->matchdata = data;
gtk_widget_set_sensitive (rt->help_button, FALSE);
gtk_widget_set_sensitive (rt->start_button, FALSE);
gtk_widget_set_sensitive (rt->stop_button, TRUE);
e2_dialog_set_cursor (rt->dialog, GDK_WATCH);
- rt->matchdata = &data;
- g_static_rec_mutex_unlock (&find_mutex);
+ //do it - separate thread allows the search to proceed without blocking the UI
+ pthread_attr_t attr;
+ pthread_attr_init (&attr);
+ pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+ pthread_create (&rt->matchdata->findID, &attr, (gpointer) _e2p_find_dofind, rt);
+}
+/**
+ at brief thread function to perform search
+Uses grep and/or ?? for mimetype, content
+ at param rt ptr to search dialog data struct (in case of a bad race, rt could be NULL)
+
+ at return NULL
+*/
+static gpointer _e2p_find_dofind (E2_FindDialogRuntime *rt)
+{
+ if (rt == NULL)
+ return NULL;
+
+ pthread_cleanup_push ((gpointer)_e2p_find_cleanfind, (gpointer)rt);
+ pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
+ e2_utils_block_thread_signals (); //block all allowed signals to this thread
+
+ findtargets *fdata = rt->matchdata; //get a copy in case rt goes during search
- gdk_threads_leave ();
#ifdef TRACKERFIND
- if (data.contentop == TRAK || data.typeop == TRAK)
+ if (fdata->contentop == TRAK || fdata->typeop == TRAK)
{ //tracker can't do place-specific matching
+ _e2p_find_tracker_find (
#ifdef E2_VFS
- _e2p_find_tracker_find (&sdata, searchdepth, &data);
+ fdata->sdata,
#else
- _e2p_find_tracker_find (dlocal, searchdepth, &data);
+ fdata->localstartpath,
#endif
+ fdata->searchdepth, fdata);
}
else
{
#endif
+ e2_fs_tw (
#ifdef E2_VFS
- e2_fs_tw (&sdata, _e2p_find_twcb, &data, searchdepth,
+ fdata->sdata,
#else
- e2_fs_tw (dlocal, _e2p_find_twcb, &data, searchdepth,
+ fdata->localstartpath,
#endif
+ _e2p_find_twcb, fdata, fdata->searchdepth,
E2TW_XQT | E2TW_NODIR | E2TW_PHYS E2_ERR_NONE());
- if (data.dirdata != NULL)
+ if (fdata->dirdata != NULL)
{ //cleanup chmod data left over after a stop or tw problem
GList *member;
E2_DirEnt *dirfix;
- for (member = g_list_last (data.dirdata); member != NULL; member = member->prev)
+ for (member = g_list_last (fdata->dirdata); member != NULL; member = member->prev)
{
dirfix = (E2_DirEnt *)member->data;
@@ -2263,6 +2277,6 @@
E2_ERR_DECLARE;
#ifdef E2_VFS
- sdata.localpath = dirfix->path;
- if (e2_fs_chmod (&sdata, dirfix->mode E2_ERR_PTR())
+ fdata->sdata.localpath = dirfix->path;
+ if (e2_fs_chmod (fdata->sdata, dirfix->mode E2_ERR_PTR())
#else
if (e2_fs_chmod (dirfix->path, dirfix->mode E2_ERR_PTR())
@@ -2272,5 +2286,5 @@
e2_fs_error_local (_("Cannot change permissions of %s"),
#ifdef E2_VFS
- &sdata E2_ERR_MSGL());
+ fdata->sdata E2_ERR_MSGL());
#else
dirfix->path E2_ERR_MSGL());
@@ -2281,5 +2295,5 @@
}
}
- g_list_free (data.dirdata);
+ g_list_free (fdata->dirdata);
}
#ifdef TRACKERFIND
@@ -2288,17 +2302,35 @@
gdk_threads_enter ();
e2_output_print_end (&app.tab, FALSE);
+ gdk_threads_leave ();
+ pthread_cleanup_pop (1);
+
+ return NULL;
+}
+/**
+ at brief post-thread cleanup function
+
+ at param rt ptr to search dialog data struct (in case of a bad race, rt could be NULL)
+
+ at return
+*/
+static void _e2p_find_cleanfind (E2_FindDialogRuntime *rt)
+{
+ printd (DEBUG, "cleanup after find thread finish");
g_static_rec_mutex_lock (&find_mutex);
if (rt != NULL)
{ //dialog not closed during the search
- rt->matchdata = NULL; //prevent misuse of data by cleanup function
+ findtargets *fdata = rt->matchdata;
+ rt->matchdata = NULL; //minimise misuse of data by cleanup function
+ gdk_threads_enter ();
e2_dialog_set_cursor (rt->dialog, GDK_LEFT_PTR);
gtk_widget_set_sensitive (rt->help_button, TRUE);
gtk_widget_set_sensitive (rt->start_button, TRUE);
gtk_widget_set_sensitive (rt->stop_button, FALSE);
+ gdk_threads_leave ();
+ _e2p_find_clear_match_data (fdata);
+ DEALLOCATE (findtargets, fdata);
}
g_static_rec_mutex_unlock (&find_mutex);
- g_free (dlocal);
- _e2p_find_clear_match_data (&data);
}
/**
@@ -2312,4 +2344,5 @@
static void _e2p_find_stop_find_cb (GtkWidget *w, E2_FindDialogRuntime *rt)
{
+ pthread_cancel (rt->matchdata->findID);
rt->matchdata->aborted = TRUE;
}
@@ -3495,4 +3528,8 @@
_e2p_find_make_notebook (dialog_vbox, find_rt);
+ //open at same page as last time
+ if (startpage > 0)
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (find_rt->notebook), startpage);
+
//add buttons in the order that they will appear
find_rt->help_button =
@@ -3520,19 +3557,17 @@
e2_dialog_set_negative_response (find_rt->dialog, GTK_RESPONSE_CLOSE);
- e2_dialog_setup (find_rt->dialog, app.main_window);
- gtk_widget_show (find_rt->dialog);
-
+ gboolean state;
if (nocacheflags)
+ { //no cached flags were used in this se
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (find_rt->active_button), TRUE);
- gboolean state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (find_rt->thisdir_button));
- gtk_widget_set_sensitive (find_rt->directory, state);
- //open at same page as last time
- if (startpage > 0)
- gtk_notebook_set_current_page (GTK_NOTEBOOK (find_rt->notebook), startpage);
-
- if (nocacheflags)
+ state = FALSE;
nocacheflags = FALSE; //from now on, use static/cached flag values
+ }
+ else
+ state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (find_rt->thisdir_button));
+ gtk_widget_set_sensitive (find_rt->directory, state);
- gtk_main ();
+ e2_dialog_setup (find_rt->dialog, app.main_window);
+ gtk_widget_show (find_rt->dialog);
return TRUE;
@@ -3567,5 +3602,5 @@
nocacheflags = !e2_cache_check ("find-plugin-flags");
if (nocacheflags)
- //initialise flags
+ //initialise all flags to FALSE
//(some will be changed when specific widgets are created)
_e2p_find_reset_flags (); //find_rt);
--- plugins/e2p_mvbar.c 2007-09-05 21:22:04.000000000 +1000
+++ plugins/e2p_mvbar.c 2007-12-01 08:19:41.000000000 +1100
@@ -923,6 +923,10 @@
g_string_free (src, TRUE);
g_string_free (dest, TRUE);
+#ifdef E2_FAM
e2_filelist_request_refresh (other_view->dir, FALSE);
e2_filelist_request_refresh (curr_view->dir, TRUE);
+#else
+ e2_filelist_check_dirty (GINT_TO_POINTER (1));
+#endif
e2_filelist_enable_refresh ();
return TRUE;
--- plugins/e2p_unpack.c 2007-11-27 09:02:18.000000000 +1100
+++ plugins/e2p_unpack.c 2007-12-01 08:19:41.000000000 +1100
@@ -142,6 +142,10 @@
//FIXME different refresh approach with E2_ASYNC
//in case a pane shows parent of temp dir
+#ifdef E2_FAM
e2_filelist_request_refresh (curr_view->dir, FALSE);
e2_filelist_request_refresh (other_view->dir, TRUE);
+#else
+ e2_filelist_check_dirty (GINT_TO_POINTER (1));
+#endif
return FALSE;
}
--- src/dialogs/e2_config_dialog.c 2007-11-15 22:51:21.000000000 +1100
+++ src/dialogs/e2_config_dialog.c 2007-12-01 08:19:41.000000000 +1100
@@ -550,11 +550,13 @@
e2_option_enable_config_checks ();
//may need to show the revised config file data
- //FIXME this may cause crash
-// if (!(buildflags & (E2_OPTION_FLAG_BUILDALL | E2_OPTION_FLAG_BUILDPANES)))
-// e2_filelist_check_dirty (GINT_TO_POINTER(1));
-/*BETTER ?
+/* FIXME this may cause crash
+ if (!(buildflags & (E2_OPTION_FLAG_BUILDALL | E2_OPTION_FLAG_BUILDPANES)))
{
+#ifdef E2_FAM
e2_filelist_request_refresh (curr_view->dir, FALSE);
e2_filelist_request_refresh (other_view->dir, TRUE);
+#else
+ e2_filelist_check_dirty (GINT_TO_POINTER(1));
+#endif
}
*/
--- src/dialogs/e2_view_dialog.c 2007-11-23 08:43:27.000000000 +1100
+++ src/dialogs/e2_view_dialog.c 2007-11-30 19:58:11.000000000 +1100
@@ -1695,10 +1695,10 @@
@brief open file for viewing, at a location where there is a specified string
@a art includes a string with filepath and an argument that is a text string
-to find in the file
+to find in the file. Separator between path and find-target is the first unquoted
+unescaped ' ' char (not a \t)
This returns immediately, so if run in a Q-thread, that will end
-NOTE expects no whitespace in the actual path string
@param from the widget that was activated to initiate the action
@param art runtime data for the action
- at return TRUE
+ at return TRUE if dialog was created
*/
static gboolean _e2_view_dialog_openat (gpointer from, E2_ActionRuntime *art)
@@ -1711,10 +1711,10 @@
//for a help doc, has localised doc path, and a "[title]" arg in undefined encoding
gchar *view_this = (gchar *) qed->rt_data;
- gchar c;
+// gchar c;
//strip off any arg FIXME doc path may have whitespace
- gchar *target = e2_utils_find_whitespace (view_this); //always ascii ' ', don't need g_utf8_strchr()
+ gchar *target = e2_utils_bare_strchr (view_this, ' '); //always ascii ' ', don't need g_utf8_strchr()
if (target != NULL)
{
- c = *target;
+// c = *target;
*target = '\0';
}
@@ -1723,5 +1723,5 @@
#endif
E2_ViewDialogRuntime *vrt;
- gdk_threads_enter ();
+ gdk_threads_enter (); //dialog setup wants BGL closed
GtkWidget *dialog = _e2_view_dialog_create
#ifdef E2_VFS
@@ -1733,5 +1733,6 @@
if (target != NULL)
- *target = c; //revert the argument, ready for next time
+// *target = c; //revert the argument, ready for next time
+ *target = ' '; //revert the argument, ready for next time
if (dialog != NULL)
@@ -1743,23 +1744,19 @@
GtkTextIter iter, start, end;
gtk_text_buffer_get_start_iter (vrt->textbuffer, &iter);
- gdk_threads_enter ();
if (gtk_text_iter_forward_search (&iter, target, 0, &start, &end, NULL))
{ //need to add a mark to get the scroll to work properly
+ //FIXME sometimes it scrolls a bit too far
GtkTextMark *mark = gtk_text_buffer_create_mark
(vrt->textbuffer, NULL, &start, FALSE);
- //FIXME with ASYNC, it does not always scroll to the correct place
- gdk_threads_leave ();
- usleep (20000); //pause a while for gtk to do its setups ?
+ WAIT_FOR_EVENTS_UNLOCKED
gdk_threads_enter ();
-
- gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (vrt->textview), mark,
- 0.0, TRUE, 0.0, 0.1);
//to support incremental searching, move the cursor
//to the start of the located string
gtk_text_buffer_place_cursor (vrt->textbuffer, &start);
- }
+ gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (vrt->textview), mark,
+ 0.0, TRUE, 0.0, 0.2);
gdk_threads_leave ();
}
- WAIT_FOR_EVENTS_UNLOCKED_SLOWLY
+ }
gdk_threads_enter ();
e2_dialog_show (dialog, app.main_window, E2_DIALOG_DONT_SHOW_ALL,
@@ -1767,6 +1764,7 @@
gtk_window_present (GTK_WINDOW (dialog));
gdk_threads_leave ();
- }
return TRUE;
+ }
+ return FALSE;
}
--- src/e2_filelist.c 2007-11-29 08:13:08.000000000 +1100
+++ src/e2_filelist.c 2007-12-01 08:19:41.000000000 +1100
@@ -563,11 +563,17 @@
gboolean localcfgdirty; //use a local copy so that the extern value doesn't get cleared before it's noticed
extern gboolean cfgdirty;
-#endif
-#ifdef E2_FAM
if (userdata != NULL
&& app.monitor_type != E2_MONITOR_DEFAULT)
g_usleep (E2_FAMWAIT); //wait for things to be noticed
#endif
+
+#ifndef E2_FAM
+ if (userdata != NULL)
+ {
+ p1dirty = p2dirty = TRUE; //force a refresh
+ }
+ else
+#endif
//this reports 'gone' as 'dirty', and then the list-refesh
//function handles choosing a replacement dir
--- src/e2_fileview.c 2007-11-27 09:02:18.000000000 +1100
+++ src/e2_fileview.c 2007-12-01 08:19:41.000000000 +1100
@@ -1448,5 +1448,5 @@
// gtk_tree_selection_select_iter (view->selection, &iter);
// if (success)
-// e2_filelist_request_refresh (view->dir, TRUE);
+// e2_filelist_request_refresh (view->dir, TRUE); CHECKME ok without E2_FAM ?
}
F_FREE (old);
@@ -4133,6 +4133,4 @@
//walk current FileInfo's, deleting as we go, logging any that are changed
//(there will always be at least one entry, "..")
- gdk_threads_enter (); //for some reason, doing this once works better
- //than if done for each removed iter, for gtk 2.12
gtk_tree_model_get_iter_first (mdl, &iter);
do
@@ -4177,5 +4175,8 @@
else
{ //current item is not hashed i.e. gone from dir
- if (gtk_list_store_remove (view->store, &iter)) //needs BGL closed
+ gdk_threads_enter ();
+ gboolean more = gtk_list_store_remove (view->store, &iter);
+ gdk_threads_leave ();
+ if (more)
goto loopstart; //prevent double-iter-next, i unchanged
else
@@ -4183,5 +4184,5 @@
}
} while (gtk_tree_model_iter_next (mdl, &iter));
- gdk_threads_leave ();
+
//tag any additions, and clean up redundant FileInfos to prevent leakage
for (i = 0; i < itemcount; i++)
@@ -4190,5 +4191,4 @@
{
modes [i].newindx = newindx++; //this will match the store index when created
-// FileInfo *debug = (FileInfo *) g_list_nth_data (entries, i);
updates = g_list_append (updates, g_list_nth_data (entries, i));
}
@@ -4212,5 +4212,4 @@
gtk_tree_sortable_set_sort_column_id (sortable,
GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, GTK_SORT_ASCENDING);
- gdk_threads_enter (); //not disconnecting model, so UI may be updated here
//this kills the current selection, no evident way to prevent that
// gtk_tree_view_set_model (GTK_TREE_VIEW (view->treeview), NULL);
@@ -4246,5 +4245,5 @@
&iter, FINFO, &currinfoptr, -1);
//simply replace all changeable contents
- //gdk_threads_enter ();
+ gdk_threads_enter ();
gtk_list_store_set (view->store, &iter,
SIZE, size,
@@ -4257,5 +4256,5 @@
FORECOLOR, foreground, //maybe changed executable status
-1);
- //gdk_threads_leave ();
+ gdk_threads_leave ();
//copy this so original can be cleared
currinfoptr->statbuf = newinfoptr->statbuf;
@@ -4277,5 +4276,5 @@
*currinfoptr = *newinfoptr;
//gtk >= 2.10 can handle &iter = NULL
- //gdk_threads_enter ();
+ gdk_threads_enter ();
gtk_list_store_insert_with_values (view->store, &iter, -1,
FILENAME, name,
@@ -4291,5 +4290,5 @@
FORECOLOR, foreground,
-1);
- //gdk_threads_leave ();
+ gdk_threads_leave ();
}
}
@@ -4305,11 +4304,9 @@
}
}
-// printd (DEBUG, "re-sort current store");
+ gdk_threads_enter ();
//re-sort the view using the current sort column & direction
gtk_tree_sortable_set_sort_column_id (sortable, view->sort_column,
view->sort_order);
-// printd (DEBUG, "re-filter current store");
e2_fileview_refilter_list (view);
-
gdk_threads_leave ();
// g_idle_add ((GSourceFunc)_e2_fileview_run_hooks, view);
@@ -4326,9 +4323,7 @@
//no data free, the data are same as entries list data
g_list_free (updates); //the store is enough for other view ? FIXME idle ?
- view->total_items = gtk_tree_model_iter_n_children
- (GTK_TREE_MODEL (view->store), NULL) - 1; //omit the ".." entry from the count
}
- else //this is normally done in e2_fileview_refilter_list()
- {
+ else //updates = NULL
+ { //this is normally done in e2_fileview_refilter_list()
// printd (DEBUG, "no need to update any item still in filelist");
if (view->row > 0)
@@ -4352,4 +4347,7 @@
}
+ view->total_items = gtk_tree_model_iter_n_children
+ (GTK_TREE_MODEL (view->store), NULL) - 1; //omit the ".." entry from the count
+
g_hash_table_destroy (newlookup); //CHECKME better at idle ?
@@ -4380,5 +4378,5 @@
gdk_threads_leave ();
e2_filelist_enable_one_refresh (pnum);
- printd (DEBUG, "finish refresh filelist for %s", view->dir);
+// printd (DEBUG, "finish refresh filelist for %s", view->dir);
return GINT_TO_POINTER (1); //normal exit, no more refresh
}
--- src/e2_task.c 2007-11-29 08:56:36.000000000 +1100
+++ src/e2_task.c 2007-12-01 08:19:41.000000000 +1100
@@ -990,4 +990,5 @@
{
// printd (DEBUG, "initiate refresh of both filelists");
+#ifdef E2_FAM
gchar *utf;
utf = F_FILENAME_FROM_LOCALE (qed->currdir);
@@ -997,4 +998,7 @@
e2_filelist_request_refresh (utf, TRUE);
F_FREE (utf);
+#else
+ e2_filelist_check_dirty (GINT_TO_POINTER (1));
+#endif
}
/**
@@ -1008,5 +1012,6 @@
gboolean e2_task_refresh (gpointer from, E2_ActionRuntime *art)
{
-#ifdef E2_VFSTMPOK
+#ifdef E2_FAM
+# ifdef E2_VFSTMP
gboolean withother = other_view->spacedata == NULL || other_view->spacedata->monitored;
gboolean retval =
@@ -1015,10 +1020,14 @@
if (withother)
retval = e2_filelist_request_refresh (other_view->dir, TRUE) && retval;
-#else
+# else
//2 tests, to lessen race due to dir-swap during first call
gboolean retval = e2_filelist_request_refresh (curr_view->dir, FALSE);
retval = e2_filelist_request_refresh (other_view->dir, TRUE) || retval;
-#endif
+# endif
return retval;
+#else
+ e2_filelist_check_dirty (GINT_TO_POINTER (1));
+ return TRUE;
+#endif
}
/**
--- src/utils/e2_hook.c 2007-11-20 09:28:30.000000000 +1100
+++ src/utils/e2_hook.c 2007-11-29 21:17:23.000000000 +1100
@@ -122,4 +122,5 @@
{
// printd (DEBUG, "e2_hook_list_run (hook_list: %x,data: %x)", hook_list, data);
+ if (hook_list->is_setup)
g_hook_list_marshal_check (hook_list, FALSE, _e2_hook_list_run, data);
}
--- src/utils/e2_menu.c 2007-11-29 08:13:08.000000000 +1100
+++ src/utils/e2_menu.c 2007-12-01 08:19:41.000000000 +1100
@@ -762,6 +762,10 @@
if (newstate) //doing a mount
{
+#ifdef E2_FAM
e2_filelist_request_refresh (curr_view->dir, FALSE);
e2_filelist_request_refresh (other_view->dir, TRUE);
+#else
+ e2_filelist_check_dirty (GINT_TO_POINTER (1));
+#endif
}
else //doing an unmount
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/emelfm2/F-7/.cvsignore,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- .cvsignore 29 Jul 2007 00:29:22 -0000 1.14
+++ .cvsignore 2 Dec 2007 20:34:39 -0000 1.15
@@ -1 +1 @@
-emelfm2-0.3.5.tar.gz
+emelfm2-0.3.6.tar.gz
emelfm2-makefile.config.patch:
Index: emelfm2-makefile.config.patch
===================================================================
RCS file: /cvs/pkgs/rpms/emelfm2/F-7/emelfm2-makefile.config.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- emelfm2-makefile.config.patch 9 Jun 2007 09:31:49 -0000 1.6
+++ emelfm2-makefile.config.patch 2 Dec 2007 20:34:39 -0000 1.7
@@ -1,6 +1,6 @@
---- Makefile.config.orig 2007-05-13 04:39:01.000000000 +0200
-+++ Makefile.config 2007-06-06 23:47:04.000000000 +0200
-@@ -12,7 +12,7 @@
+--- Makefile.config.orig 2007-11-29 01:37:49.000000000 +0100
++++ Makefile.config 2007-12-02 19:35:22.000000000 +0100
+@@ -15,7 +15,7 @@
### documentation ###
#####################
# setting this to 1 makes the default docs dir include the current version no.
@@ -9,16 +9,25 @@
#the name of the default main-user-guide document
HELPDOC ?= USAGE
-@@ -58,7 +58,7 @@
+@@ -44,7 +44,7 @@
+ # setting this to 1 enables setting window-transparency for e2
+ # (i.e. independent of window-manager settings)
+ # ignored unless built for gtk >= 2.12, so also need USE_LATEST=1
+-WITH_TRANSPARENCY ?= 0
++WITH_TRANSPARENCY ?= 1
+
+ # GLib and GTK+ by default assume that filenames are
+ # encoded in utf-8 (or ascii which is compatible with utf-8).
+@@ -73,7 +73,7 @@
# (volunteer needed to test and finalise)
# portevent-usage (on solaris) is a TODO
# (volunteer needed to work on that)
-WITH_KERNELFAM ?= 0
+WITH_KERNELFAM ?= 1
- # setting this to 1 provides support (on linux) for file-change monitoring
- # using inotify if that's available, or normal polling if not available
-@@ -100,12 +100,12 @@
+ # Enable NO MORE THAN ONE of these monitors.
+
+@@ -117,12 +117,12 @@
# setting this to 1 includes code (not much) that is applicable only
# to Gtk versions > 2.6, if the build-system has any such Gtk
@@ -26,10 +35,19 @@
+USE_LATEST ?= 1
# setting this to 1 utilises replacement code for command execution. It's known
- # to work reasonably for some (most ?) OS's, but NOT for linux 2.4 (though it's
- # not fatal for that, just wasteful of CPU cycles)
+ # to work reasonably for some (most ?) OS's, but needs further evaluation on linux 2.4
+ # (though if it's still a problem there, it's not fatal, just wasteful of CPU cycles)
-NEW_COMMAND ?= 0
+NEW_COMMAND ?= 1
- # setting this to 1 enables a thumbnail viewer plugin. This uses libgimpthumbnail
- # for managing thumbnail-file cacheing in accord with freedesktop.org specification.
+ # setting this to 1 enables a thumbnail viewer plugin. This uses libgimpthumb for
+ # managing thumbnail-file cacheing in accord with freedesktop.org specification.
+@@ -138,7 +138,7 @@
+ # setting this to 1 enables an Access-Control-List-management plugin. This uses
+ # libacl - with a reasonably full (sort-of POSIX) API.
+ # Corresponding development files are needed for building the plugin
+-WITH_ACL ?= 0
++WITH_ACL ?= 1
+
+ # setting this to 1 enables a VFS plugin. This uses gvfs capabilities, and so needs
+ # libgio etc and glib >= 2.14
Index: emelfm2.spec
===================================================================
RCS file: /cvs/pkgs/rpms/emelfm2/F-7/emelfm2.spec,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- emelfm2.spec 29 Jul 2007 00:29:22 -0000 1.21
+++ emelfm2.spec 2 Dec 2007 20:34:39 -0000 1.22
@@ -1,17 +1,17 @@
Name: emelfm2
-Version: 0.3.5
+Version: 0.3.6
Release: 1%{?dist}
Summary: A file manager that implements the popular two-pane design
Group: Applications/File
-License: GPL
+License: GPLv3+
URL: http://emelfm2.net/
Source0: http://emelfm2.net/rel/emelfm2-%{version}.tar.gz
Patch0: emelfm2-makefile.config.patch
+Patch1: e2-0.3.6-07-12-01.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: gtk2-devel >= 2.6.0, gettext, desktop-file-utils
-#BuildRequires: gamin-devel
+BuildRequires: gtk2-devel >= 2.6.0, libacl-devel, gettext, desktop-file-utils
Requires: findutils >= 4.2, file, grep, sed
%description
@@ -22,6 +22,7 @@
%prep
%setup -q
+%patch1 -p0 -b .0.3.6
%patch0 -p0 -b .orig
# fix for x86_64 libs
@@ -31,9 +32,8 @@
sed -i 's!emelfm2/emelfm2_48.png!%{_datadir}/pixmaps/emelfm2/emelfm2_48.png!' docs/desktop_environment/%{name}.desktop
%build
-#echo $RPM_OPT_FLAGS
-#export CFLAGS="${RPM_OPT_FLAGS}"
-#echo $CFLAGS
+# make clean is needed because of e2-0.3.6-07-12-01.patch
+make clean
make %{?_smp_mflags} \
OPTIMIZE="${RPM_OPT_FLAGS}" \
CFLAGS="${RPM_OPT_FLAGS}" \
@@ -72,6 +72,13 @@
%changelog
+* Sun Dec 02 2007 Christoph Wickert <fedora christoph-wickert de> - 0.3.6-1
+- Update 0.3.6 with upstream's e2-0.3.6-07-12-01.patch
+- Enable the ACL plugin
+
+* Tue Aug 21 2007 Christoph Wickert <fedora christoph-wickert de> - 0.3.5-2
+- Rebuild to fix SELinux issues on PPC32 and to include BuildID feature
+
* Sun Jul 29 2007 Christoph Wickert <fedora christoph-wickert de> - 0.3.5-1
- Update 0.3.5.
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/emelfm2/F-7/sources,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- sources 29 Jul 2007 00:29:22 -0000 1.14
+++ sources 2 Dec 2007 20:34:39 -0000 1.15
@@ -1 +1 @@
-4f5a065a7d35371a920533153f24e362 emelfm2-0.3.5.tar.gz
+cc00361a117e48823bf5bd7da5d729e0 emelfm2-0.3.6.tar.gz
- Previous message (by thread): rpms/emelfm2/F-8 e2-0.3.6-07-12-01.patch, NONE, 1.1 .cvsignore, 1.14, 1.15 emelfm2-makefile.config.patch, 1.6, 1.7 emelfm2.spec, 1.24, 1.25 sources, 1.14, 1.15
- Next message (by thread): rpms/kdiff3/F-7 sources,1.2,1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list