libraries/libfm: Updated for version 20131102_7e1f053.
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
This commit is contained in:
parent
59a7ed6157
commit
7423152ca4
|
@ -2,6 +2,7 @@
|
|||
|
||||
# Slackware build script for libfm
|
||||
|
||||
# Copyright 2013 Matteo Bernardini <ponce@slackbuilds.org>
|
||||
# Copyright 2010 Chris Abela <chris.abela@maltats.com>
|
||||
# All rights reserved.
|
||||
#
|
||||
|
@ -21,12 +22,10 @@
|
|||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# slightly modified by Matteo Bernardini <ponce@slackbuilds.org>
|
||||
|
||||
PRGNAM=libfm
|
||||
VERSION=${VERSION:-1.1.0}
|
||||
BUILD=${BUILD:-2}
|
||||
VERSION=${VERSION:-20131102_7e1f053}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
|
@ -74,10 +73,7 @@ find . \
|
|||
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||
-exec chmod 644 {} \;
|
||||
|
||||
# Apply patches from upstream
|
||||
for i in $CWD/patches/* ; do patch -p1 < $i ; done
|
||||
|
||||
autoreconf -fi
|
||||
sh autogen.sh || true
|
||||
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
CXXFLAGS="$SLKCFLAGS" \
|
||||
|
@ -105,13 +101,8 @@ find $PKG/usr/man -type f -exec gzip -9 {} \;
|
|||
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
|
||||
|
||||
# add handlers for terminal and archiver from LXDE components to the default config
|
||||
sed -i -e 's|\[ui\]|terminal=lxterminal -e %s\narchiver=xarchiver %s\n\n[ui]|' \
|
||||
sed -i -e 's|\[ui\]|terminal=lxterminal -e %s\narchiver=file-roller %s\n\n[ui]|' \
|
||||
$PKG/etc/xdg/libfm/libfm.conf
|
||||
# add them also for web browser and mail client using those of Slackware
|
||||
sed -i -e 's|^WebBrowser=.*|WebBrowser=mozilla-firefox.desktop|' \
|
||||
$PKG/etc/xdg/libfm/pref-apps.conf
|
||||
sed -i -e 's|^MailClient=.*|MailClient=mozilla-thunderbird.desktop|' \
|
||||
$PKG/etc/xdg/libfm/pref-apps.conf
|
||||
|
||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp -a AUTHORS COPYING README TODO \
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
PRGNAM="libfm"
|
||||
VERSION="1.1.0"
|
||||
VERSION="20131102_7e1f053"
|
||||
HOMEPAGE="http://pcmanfm.sourceforge.net"
|
||||
DOWNLOAD="http://downloads.sourceforge.net/pcmanfm/libfm-1.1.0.tar.gz"
|
||||
MD5SUM="a5bc8b8291cf810c659bfb3af378b5de"
|
||||
DOWNLOAD="http://ponce.cc/slackware/sources/repo/lxde/libfm-20131102_7e1f053.tar.xz"
|
||||
MD5SUM="9fe7493540a16ea8263cd6b26460862f"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES="menu-cache"
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
From 224d38249a449557714aedc2695d1a14279f5510 Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Sun, 4 Nov 2012 20:28:21 +0200
|
||||
Subject: [PATCH 01/22] [#3583229]Fix for broken DnD in ExoTreeView.
|
||||
|
||||
The commit 441db508ebf12b6cb1849ad1a244dcd668cccf82 added the call to
|
||||
gtk_tree_view_set_reorderable() which happened to be incompatible with DnD.
|
||||
---
|
||||
src/gtk/fm-standard-view.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/src/gtk/fm-standard-view.c b/src/gtk/fm-standard-view.c
|
||||
index f0f791c..175cced 100644
|
||||
--- a/src/gtk/fm-standard-view.c
|
||||
+++ b/src/gtk/fm-standard-view.c
|
||||
@@ -687,7 +687,6 @@ static inline void create_list_view(FmStandardView* fv, GList* sels)
|
||||
FM_FOLDER_MODEL_COL_NAME);
|
||||
}
|
||||
|
||||
- gtk_tree_view_set_reorderable(GTK_TREE_VIEW(fv->view), TRUE);
|
||||
gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(fv->view), TRUE);
|
||||
gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(fv->view), TRUE);
|
||||
exo_tree_view_set_single_click((ExoTreeView*)fv->view, fm_config->single_click);
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
From 74901d717fefaf239bf7d8b6f5b14ea146170663 Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Sat, 3 Nov 2012 16:05:31 +0200
|
||||
Subject: [PATCH 02/22] [#3582816]If no region is selected in editable then
|
||||
apply 'Delete' to char next to cursor.
|
||||
|
||||
---
|
||||
src/gtk/fm-folder-view.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/src/gtk/fm-folder-view.c b/src/gtk/fm-folder-view.c
|
||||
index 153ed48..fe65e9f 100644
|
||||
--- a/src/gtk/fm-folder-view.c
|
||||
+++ b/src/gtk/fm-folder-view.c
|
||||
@@ -1001,7 +1001,15 @@ static void on_trash(GtkAction* act, FmFolderView* fv)
|
||||
}
|
||||
}
|
||||
else if(GTK_IS_EDITABLE(focus)) /* fallback for editables */
|
||||
+ {
|
||||
+ if(!gtk_editable_get_selection_bounds((GtkEditable*)focus, NULL, NULL))
|
||||
+ {
|
||||
+ gint pos = gtk_editable_get_position((GtkEditable*)focus);
|
||||
+ /* if no text selected then delete character next to cursor */
|
||||
+ gtk_editable_select_region((GtkEditable*)focus, pos, pos + 1);
|
||||
+ }
|
||||
gtk_editable_delete_selection((GtkEditable*)focus);
|
||||
+ }
|
||||
}
|
||||
|
||||
static void on_rm(GtkAction* act, FmFolderView* fv)
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,139 +0,0 @@
|
|||
From e098be34aa96bbcddb786a09b13da877d2d709ad Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Tue, 6 Nov 2012 05:49:19 +0200
|
||||
Subject: [PATCH 03/22] [#3584608]Fix for rarely broken DnD due to FmDndDest
|
||||
source caching.
|
||||
|
||||
The previous behavior was to cache data and reset cache when drag leaves
|
||||
widget. This is completely wrong - we never get informed if we refuse drop
|
||||
(for example, on wrong target) therefore drag source kept the same while
|
||||
it was already changed. The only valid behavior is to keep drag context
|
||||
referenced and compare it with one we get in handler and if it's changed
|
||||
then reset our cache. This way we don't have to requery data again when
|
||||
pointer leaves widget but still inside of application window - the drag
|
||||
context is still the same, i.e. we get some optimization as a side effect.
|
||||
---
|
||||
src/gtk/fm-dnd-dest.c | 44 ++++++++++++++------------------------------
|
||||
1 file changed, 14 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/src/gtk/fm-dnd-dest.c b/src/gtk/fm-dnd-dest.c
|
||||
index 37686ce..21cf2c0 100644
|
||||
--- a/src/gtk/fm-dnd-dest.c
|
||||
+++ b/src/gtk/fm-dnd-dest.c
|
||||
@@ -108,10 +108,10 @@ struct _FmDndDest
|
||||
|
||||
int info_type; /* type of src_files */
|
||||
FmPathList* src_files;
|
||||
+ GdkDragContext* context;
|
||||
guint32 src_dev; /* UNIX dev of source fs */
|
||||
const char* src_fs_id; /* filesystem id of source fs */
|
||||
FmFileInfo* dest_file;
|
||||
- guint idle; /* idle handler */
|
||||
|
||||
gboolean waiting_data;
|
||||
gboolean has_handlers;
|
||||
@@ -211,11 +211,6 @@ static void fm_dnd_dest_dispose(GObject *object)
|
||||
|
||||
fm_dnd_dest_set_widget(dd, NULL);
|
||||
|
||||
- if(dd->idle)
|
||||
- {
|
||||
- g_source_remove(dd->idle);
|
||||
- dd->idle = 0;
|
||||
- }
|
||||
clear_src_cache(dd);
|
||||
|
||||
G_OBJECT_CLASS(fm_dnd_dest_parent_class)->dispose(object);
|
||||
@@ -388,6 +383,11 @@ static gboolean fm_dnd_dest_files_dropped(FmDndDest* dd, int x, int y,
|
||||
static void clear_src_cache(FmDndDest* dd)
|
||||
{
|
||||
/* free cached source files */
|
||||
+ if(dd->context)
|
||||
+ {
|
||||
+ g_object_unref(dd->context);
|
||||
+ dd->context = NULL;
|
||||
+ }
|
||||
if(dd->src_files)
|
||||
{
|
||||
fm_path_list_unref(dd->src_files);
|
||||
@@ -405,16 +405,6 @@ static void clear_src_cache(FmDndDest* dd)
|
||||
dd->waiting_data = FALSE;
|
||||
}
|
||||
|
||||
-static gboolean clear_src_cache_on_idle(gpointer user_data)
|
||||
-{
|
||||
- GDK_THREADS_ENTER();
|
||||
- /* check if dd is still valid */
|
||||
- if(!g_source_is_destroyed(g_main_current_source()))
|
||||
- clear_src_cache((FmDndDest*)user_data);
|
||||
- GDK_THREADS_LEAVE();
|
||||
- return FALSE;
|
||||
-}
|
||||
-
|
||||
#if 0
|
||||
/* the returned list can be either FmPathList or FmFileInfoList */
|
||||
/* check with fm_list_is_path_list() and fm_list_is_file_info_list(). */
|
||||
@@ -581,6 +571,10 @@ gboolean _on_drag_data_received(FmDndDest* dd, GdkDragContext *drag_context,
|
||||
dd->src_files = files;
|
||||
dd->waiting_data = FALSE;
|
||||
dd->info_type = info;
|
||||
+ /* keep context to verify if it's changed */
|
||||
+ if(G_UNLIKELY(dd->context))
|
||||
+ g_object_unref(dd->context);
|
||||
+ dd->context = g_object_ref(drag_context);
|
||||
return (files != NULL);
|
||||
}
|
||||
|
||||
@@ -718,7 +712,7 @@ gboolean _on_drag_drop(FmDndDest* dd, GdkDragContext *drag_context,
|
||||
}
|
||||
|
||||
/* see if the dragged files are cached by "drag-motion" handler */
|
||||
- if(dd->src_files)
|
||||
+ if(dd->src_files && drag_context == dd->context)
|
||||
{
|
||||
GdkDragAction action = gdk_drag_context_get_selected_action(drag_context);
|
||||
/* emit files-dropped signal */
|
||||
@@ -777,14 +771,6 @@ GdkDragAction fm_dnd_dest_get_default_action(FmDndDest* dd,
|
||||
/* query drag sources in any case */
|
||||
goto query_sources;
|
||||
|
||||
- /* we may have another data already so clear the cache */
|
||||
- if(dd->idle)
|
||||
- {
|
||||
- g_source_remove(dd->idle);
|
||||
- dd->idle = 0;
|
||||
- clear_src_cache(dd);
|
||||
- }
|
||||
-
|
||||
/* special support for dropping onto desktop entry */
|
||||
if(fm_file_info_is_desktop_entry(dest))
|
||||
{
|
||||
@@ -802,8 +788,10 @@ GdkDragAction fm_dnd_dest_get_default_action(FmDndDest* dd,
|
||||
if(target == dest_target_atom[FM_DND_DEST_TARGET_XDS])
|
||||
return GDK_ACTION_COPY;
|
||||
|
||||
- if(!dd->src_files) /* we didn't have any data, cache it */
|
||||
+ /* we have no valid data, query it now */
|
||||
+ if(!dd->src_files || dd->context != drag_context)
|
||||
{
|
||||
+ clear_src_cache(dd);
|
||||
query_sources:
|
||||
action = 0;
|
||||
if(!dd->waiting_data) /* we're still waiting for "drag-data-received" signal */
|
||||
@@ -886,13 +874,9 @@ query_sources:
|
||||
*/
|
||||
void fm_dnd_dest_drag_leave(FmDndDest* dd, GdkDragContext* drag_context, guint time)
|
||||
{
|
||||
- if(dd->idle == 0)
|
||||
- dd->idle = g_idle_add_full(G_PRIORITY_LOW, clear_src_cache_on_idle, dd, NULL);
|
||||
}
|
||||
|
||||
static void on_drag_leave(GtkWidget *widget, GdkDragContext *drag_context,
|
||||
guint time, FmDndDest* dd)
|
||||
{
|
||||
- if(dd->idle == 0)
|
||||
- dd->idle = g_idle_add_full(G_PRIORITY_LOW, clear_src_cache_on_idle, dd, NULL);
|
||||
}
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
From 86717c497dcd07e4ba417a4236ee01bf3fb61594 Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Mon, 12 Nov 2012 23:14:46 +0200
|
||||
Subject: [PATCH 04/22] [#3582493]Fix for SIGSEGV in fm_path_new_child() with
|
||||
parent=NULL.
|
||||
|
||||
---
|
||||
src/base/fm-path.c | 20 ++++++++++----------
|
||||
1 file changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/base/fm-path.c b/src/base/fm-path.c
|
||||
index 9cf3088..b90aeab 100644
|
||||
--- a/src/base/fm-path.c
|
||||
+++ b/src/base/fm-path.c
|
||||
@@ -238,8 +238,8 @@ static inline FmPath* _fm_path_reuse_existing_paths(FmPath* parent, const char*
|
||||
|
||||
/**
|
||||
* fm_path_new_child_len
|
||||
- * @parent: a parent path
|
||||
- * @basename: basename of a direct child of @parent directory
|
||||
+ * @parent: (allow-none): a parent path
|
||||
+ * @basename: (allow-none): basename of a direct child of @parent directory
|
||||
* @name_len: length of @basename
|
||||
*
|
||||
* Creates new #FmPath for child of @parent directory which have name
|
||||
@@ -346,8 +346,8 @@ FmPath* fm_path_new_child_len(FmPath* parent, const char* basename, int name_len
|
||||
|
||||
/**
|
||||
* fm_path_new_child
|
||||
- * @parent: a parent path
|
||||
- * @basename: basename of a direct child of @parent directory
|
||||
+ * @parent: (allow-none): a parent path
|
||||
+ * @basename: (allow-none): basename of a direct child of @parent directory
|
||||
*
|
||||
* Creates new #FmPath for child of @parent directory which have name
|
||||
* @basename. @basename is in glib filename encoding (can be non-UTF-8)
|
||||
@@ -362,7 +362,7 @@ FmPath* fm_path_new_child(FmPath* parent, const char* basename)
|
||||
{
|
||||
int baselen = strlen(basename);
|
||||
return _fm_path_new_child_len(parent, basename, baselen,
|
||||
- fm_path_is_native(parent));
|
||||
+ parent && fm_path_is_native(parent));
|
||||
}
|
||||
return G_LIKELY(parent) ? fm_path_ref(parent) : NULL;
|
||||
}
|
||||
@@ -396,8 +396,8 @@ FmPath* fm_path_new_for_gfile(GFile* gf)
|
||||
|
||||
/**
|
||||
* fm_path_new_relative
|
||||
- * @parent: a parent path
|
||||
- * @rel: a path relative to @parent
|
||||
+ * @parent: (allow-none): a parent path
|
||||
+ * @rel: (allow-none): a path relative to @parent
|
||||
*
|
||||
* Creates new #FmPath which is relative to @parent directory by the
|
||||
* relative path string @rel. @rel is in glib filename encoding (can be
|
||||
@@ -458,7 +458,7 @@ FmPath* fm_path_new_relative(FmPath* parent, const char* rel)
|
||||
|
||||
/**
|
||||
* fm_path_new_for_path
|
||||
- * @path_name: a POSIX path.
|
||||
+ * @path_name: (allow-none): a POSIX path.
|
||||
*
|
||||
* Returns: a newly created FmPath for the path. You have to call
|
||||
* fm_path_unref() when it's no longer needed.
|
||||
@@ -484,7 +484,7 @@ FmPath* fm_path_new_for_path(const char* path_name)
|
||||
|
||||
/**
|
||||
* fm_path_new_for_uri
|
||||
- * @uri: a URI with special characters escaped.
|
||||
+ * @uri: (allow-none): a URI with special characters escaped.
|
||||
*
|
||||
* Creates new #FmPath by given @uri. You have to call
|
||||
* fm_path_unref() when it's no longer needed.
|
||||
@@ -564,7 +564,7 @@ FmPath* fm_path_new_for_display_name(const char* path_name)
|
||||
|
||||
/**
|
||||
* fm_path_new_for_str
|
||||
- * @path_str: a string representing the file path in its native
|
||||
+ * @path_str: (allow-none): a string representing the file path in its native
|
||||
* encoding (can be non-UTF-8). It can either be a native path or an
|
||||
* unescaped URI (can contain non-ASCII characters and spaces).
|
||||
* The function will try to figure out what to do.
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
From ea6d673d84b447b81b54c2cb825bdf8284952aea Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Mon, 12 Nov 2012 23:25:39 +0200
|
||||
Subject: [PATCH 05/22] [#3582493]Fixing test-fm-path two tests.
|
||||
|
||||
---
|
||||
src/tests/test-fm-path.c | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/tests/test-fm-path.c b/src/tests/test-fm-path.c
|
||||
index a4a3a6c..72c340f 100644
|
||||
--- a/src/tests/test-fm-path.c
|
||||
+++ b/src/tests/test-fm-path.c
|
||||
@@ -71,8 +71,9 @@ static void test_uri_parsing()
|
||||
TEST_PARSING(fm_path_new_for_uri, "file:/test/path",
|
||||
"/", "test", "path");
|
||||
|
||||
+ /* The 'test' in this format is a host part of URI */
|
||||
TEST_PARSING(fm_path_new_for_uri, "file://test/path",
|
||||
- "/", "test", "path");
|
||||
+ "/", "path");
|
||||
|
||||
TEST_PARSING(fm_path_new_for_uri, "http://test/path/",
|
||||
"http://test/", "path");
|
||||
@@ -87,7 +88,11 @@ static void test_uri_parsing()
|
||||
"http://test/");
|
||||
|
||||
TEST_PARSING(fm_path_new_for_uri, "http://wiki.lxde.org/zh/%E9%A6%96%E9%A0%81",
|
||||
+#if 0
|
||||
+ /* It should not do any break in URI since 1.0.1 */
|
||||
"http://wiki.lxde.org/", "zh", "首頁");
|
||||
+#endif
|
||||
+ "http://wiki.lxde.org/", "zh", "%E9%A6%96%E9%A0%81");
|
||||
|
||||
TEST_PARSING(fm_path_new_for_uri, "mailto:test",
|
||||
"mailto:test");
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
From 80c568c277a5b8aa43d553d7d71f7ea404b41ab4 Mon Sep 17 00:00:00 2001
|
||||
From: galtgendo <galt_gendo@sourceforge.net>
|
||||
Date: Tue, 13 Nov 2012 00:03:54 +0200
|
||||
Subject: [PATCH 06/22] [#3586178]doc build wasn't updated for '--with-gtk=3'
|
||||
case
|
||||
|
||||
---
|
||||
docs/reference/libfm/Makefile.am | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/docs/reference/libfm/Makefile.am b/docs/reference/libfm/Makefile.am
|
||||
index 4650c71..8537cec 100644
|
||||
--- a/docs/reference/libfm/Makefile.am
|
||||
+++ b/docs/reference/libfm/Makefile.am
|
||||
@@ -120,7 +120,7 @@ GTKDOC_CFLAGS= \
|
||||
$(GTK_CFLAGS)
|
||||
GTKDOC_LIBS= \
|
||||
$(top_builddir)/src/libfm.la \
|
||||
- $(top_builddir)/src/libfm-gtk.la \
|
||||
+ $(top_builddir)/src/$(LIBFM_GTK_LTLIBRARIES) \
|
||||
$(GTK_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
From 83f0300a130f9c2ec83bbd5af138b0c5633fc608 Mon Sep 17 00:00:00 2001
|
||||
From: galtgendo <galt_gendo@sourceforge.net>
|
||||
Date: Tue, 13 Nov 2012 00:04:56 +0200
|
||||
Subject: [PATCH 07/22] [#3586178]gtk3 css strings have significantly different
|
||||
syntax from gtk2 rc strings
|
||||
|
||||
---
|
||||
src/gtk/fm-tab-label.c | 11 ++++++-----
|
||||
1 file changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/gtk/fm-tab-label.c b/src/gtk/fm-tab-label.c
|
||||
index 12c78ca..3bae9d4 100644
|
||||
--- a/src/gtk/fm-tab-label.c
|
||||
+++ b/src/gtk/fm-tab-label.c
|
||||
@@ -44,20 +44,21 @@ static void fm_tab_label_class_init(FmTabLabelClass *klass)
|
||||
#if GTK_CHECK_VERSION(3, 0, 0)
|
||||
provider = gtk_css_provider_new();
|
||||
gtk_css_provider_load_from_data(provider,
|
||||
+ "#tab-close-btn {\n"
|
||||
+ "-GtkWidget-focus-padding : 0;\n"
|
||||
+ "-GtkWidget-focus-line-width : 0;\n"
|
||||
+ "padding : 0;\n"
|
||||
+ "}\n", -1, NULL);
|
||||
#else
|
||||
gtk_rc_parse_string(
|
||||
-#endif
|
||||
"style \"close-btn-style\" {\n"
|
||||
"GtkWidget::focus-padding = 0\n"
|
||||
"GtkWidget::focus-line-width = 0\n"
|
||||
"xthickness = 0\n"
|
||||
"ythickness = 0\n"
|
||||
"}\n"
|
||||
- "widget \"*.tab-close-btn\" style \"close-btn-style\""
|
||||
-#if GTK_CHECK_VERSION(3, 0, 0)
|
||||
- , -1, NULL
|
||||
+ "widget \"*.tab-close-btn\" style \"close-btn-style\"");
|
||||
#endif
|
||||
- );
|
||||
}
|
||||
|
||||
/* FIXME: add g_object_unref (provider); on class destroy? */
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
From 19801e7f3d906ebb4470de0818945e9686dcdf66 Mon Sep 17 00:00:00 2001
|
||||
From: galtgendo <galt_gendo@sourceforge.net>
|
||||
Date: Tue, 13 Nov 2012 00:12:42 +0200
|
||||
Subject: [PATCH 08/22] [#3586178]Comparison is wrong (bug #6421 in libexo).
|
||||
|
||||
http://git.xfce.org/xfce/exo/commit/?id=97b9c443baf879580ed851525a3150913c89ec10
|
||||
---
|
||||
src/gtk/exo/exo-icon-view.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gtk/exo/exo-icon-view.c b/src/gtk/exo/exo-icon-view.c
|
||||
index b572cb0..11bd0cf 100644
|
||||
--- a/src/gtk/exo/exo-icon-view.c
|
||||
+++ b/src/gtk/exo/exo-icon-view.c
|
||||
@@ -7581,7 +7581,7 @@ exo_icon_view_set_drag_dest_item (ExoIconView *icon_view,
|
||||
|
||||
/* special case a drop on an empty model */
|
||||
icon_view->priv->empty_view_drop = FALSE;
|
||||
- if (pos == EXO_ICON_VIEW_DROP_LEFT && path
|
||||
+ if (pos == EXO_ICON_VIEW_NO_DROP && path
|
||||
&& gtk_tree_path_get_depth (path) == 1
|
||||
&& gtk_tree_path_get_indices (path)[0] == 0)
|
||||
{
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From 195e18e90abf1e641037b84a0e44dbf5c6aa8265 Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Tue, 13 Nov 2012 04:04:24 +0200
|
||||
Subject: [PATCH 09/22] Another fix for possible SIGSEGV in src/base/fm-path.c.
|
||||
|
||||
---
|
||||
src/base/fm-path.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/base/fm-path.c b/src/base/fm-path.c
|
||||
index b90aeab..e4a0251 100644
|
||||
--- a/src/base/fm-path.c
|
||||
+++ b/src/base/fm-path.c
|
||||
@@ -245,6 +245,8 @@ static inline FmPath* _fm_path_reuse_existing_paths(FmPath* parent, const char*
|
||||
* Creates new #FmPath for child of @parent directory which have name
|
||||
* @basename. The string length of @basename is @name_len. @basename is
|
||||
* in glib filename encoding (can be non-UTF-8) of target filesystem.
|
||||
+ * If @parent is %NULL then @basename assumed to be root of some file
|
||||
+ * system.
|
||||
*
|
||||
* Returns: (transfer full): a new #FmPath for the path. You have to call
|
||||
* fm_path_unref() when it's no longer needed.
|
||||
@@ -341,7 +343,7 @@ FmPath* _fm_path_new_child_len(FmPath* parent, const char* basename, int name_le
|
||||
FmPath* fm_path_new_child_len(FmPath* parent, const char* basename, int name_len)
|
||||
{
|
||||
return _fm_path_new_child_len(parent, basename, name_len,
|
||||
- fm_path_is_native(parent));
|
||||
+ parent && fm_path_is_native(parent));
|
||||
}
|
||||
|
||||
/**
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
From 40aa4a6ae1531b189a25d373d642f5c7a1f7023d Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Thu, 15 Nov 2012 05:50:44 +0200
|
||||
Subject: [PATCH 10/22] [#3584798]We shouldn't disable DnD on non-native
|
||||
targets completely.
|
||||
|
||||
The handling dropping on non-native target should have some check
|
||||
but not denial as it was before. Let user get error message if
|
||||
dropping failed for now and do some other checks later.
|
||||
---
|
||||
src/gtk/fm-dnd-dest.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/gtk/fm-dnd-dest.c b/src/gtk/fm-dnd-dest.c
|
||||
index 21cf2c0..371e5f6 100644
|
||||
--- a/src/gtk/fm-dnd-dest.c
|
||||
+++ b/src/gtk/fm-dnd-dest.c
|
||||
@@ -811,12 +811,16 @@ query_sources:
|
||||
else /* files inside trash are read only */
|
||||
action = 0;
|
||||
}
|
||||
+#if 0
|
||||
+ /* bug #3584798: DnD(copy/move) to remote host(SFTP://) does not work.
|
||||
+ we should do some check if target FS is R/O instead of this */
|
||||
else if(!fm_path_is_native(dest_path))
|
||||
{
|
||||
/* computer:/// and network:/// shouldn't received dropped files. */
|
||||
/* FIXME: some special handling can be done with menu:// */
|
||||
action = 0;
|
||||
}
|
||||
+#endif
|
||||
else /* dest is a ordinary path */
|
||||
{
|
||||
/* determine if the dragged files are on the same device as destination file */
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
From 690e15ba4367784f3ac2134c5e68d52ee05e6cbb Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Thu, 15 Nov 2012 21:08:51 +0200
|
||||
Subject: [PATCH 11/22] smb:// symlinked locations cannot be launched from
|
||||
folder view.
|
||||
|
||||
This is because we don't assume each symlink is a folder anymore
|
||||
(that assuming was stupid anyway) so we check how to handle the
|
||||
symlink target. We have to get info on the target. If target isn't
|
||||
mounted we cannot retrieve info on it and FmFileInfoJob fails.
|
||||
Therefore we cannot launch the location.
|
||||
The commit adds creation of simplest file info which contains only
|
||||
name and type (directory) for not mounted location.
|
||||
---
|
||||
src/job/fm-file-info-job.c | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/src/job/fm-file-info-job.c b/src/job/fm-file-info-job.c
|
||||
index 19acb1b..69eb37d 100644
|
||||
--- a/src/job/fm-file-info-job.c
|
||||
+++ b/src/job/fm-file-info-job.c
|
||||
@@ -165,6 +165,24 @@ static gboolean fm_file_info_job_run(FmJob* fmjob)
|
||||
gf = fm_path_to_gfile(path);
|
||||
if(!_fm_file_info_job_get_info_for_gfile(fmjob, fi, gf, &err))
|
||||
{
|
||||
+ if(err->domain == G_IO_ERROR && err->code == G_IO_ERROR_NOT_MOUNTED)
|
||||
+ {
|
||||
+ GFileInfo *inf;
|
||||
+ /* location by link isn't mounted; unfortunately we cannot
|
||||
+ launch a target if we don't know what kind of target we
|
||||
+ have; lets make a simplest directory-kind GFIleInfo */
|
||||
+ /* FIXME: this may be dirty a bit */
|
||||
+ g_error_free(err);
|
||||
+ err = NULL;
|
||||
+ inf = g_file_info_new();
|
||||
+ g_file_info_set_file_type(inf, G_FILE_TYPE_DIRECTORY);
|
||||
+ g_file_info_set_name(inf, fm_path_get_basename(path));
|
||||
+ g_file_info_set_display_name(inf, fm_path_get_basename(path));
|
||||
+ fm_file_info_set_from_gfileinfo(fi, inf);
|
||||
+ g_object_unref(inf);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
FmJobErrorAction act = fm_job_emit_error(fmjob, err, FM_JOB_ERROR_MILD);
|
||||
g_error_free(err);
|
||||
err = NULL;
|
||||
@@ -175,6 +193,7 @@ static gboolean fm_file_info_job_run(FmJob* fmjob)
|
||||
}
|
||||
|
||||
fm_file_info_list_delete_link(job->file_infos, l); /* also calls unref */
|
||||
+ }
|
||||
}
|
||||
g_object_unref(gf);
|
||||
}
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
From 924208952dbd8408b20b9357d7154f7aa5081b3e Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Sat, 17 Nov 2012 04:36:58 +0200
|
||||
Subject: [PATCH 12/22] Fix for localizations of Detailed List View headers.
|
||||
|
||||
Detailed List View headers appeared untranslated, macro _() should be added.
|
||||
---
|
||||
src/gtk/fm-folder-model.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gtk/fm-folder-model.c b/src/gtk/fm-folder-model.c
|
||||
index 36f0d00..6072b3e 100644
|
||||
--- a/src/gtk/fm-folder-model.c
|
||||
+++ b/src/gtk/fm-folder-model.c
|
||||
@@ -1783,7 +1783,7 @@ const char* fm_folder_model_col_get_title(FmFolderModel* model, FmFolderModelCol
|
||||
if(G_UNLIKELY(!FM_FOLDER_MODEL_COL_IS_VALID(col_id)
|
||||
|| column_infos[col_id] == NULL)) /* invalid id */
|
||||
return NULL;
|
||||
- return column_infos[col_id]->title;
|
||||
+ return _(column_infos[col_id]->title);
|
||||
}
|
||||
|
||||
/**
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
From afbe7e29106f9126c53a0c533ab007aae1f81139 Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Sat, 17 Nov 2012 15:02:15 +0200
|
||||
Subject: [PATCH 13/22] [#3587571]Ctrl+A should select all depending on focus.
|
||||
|
||||
The commit changes bahavior of Ctrl+A: it does not select all files in
|
||||
the active view anymore but does it only if focus in in the view.
|
||||
If focus is on some editable (i.e. path entry) it will select all in there.
|
||||
---
|
||||
src/gtk/fm-folder-view.c | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gtk/fm-folder-view.c b/src/gtk/fm-folder-view.c
|
||||
index fe65e9f..d7fa53e 100644
|
||||
--- a/src/gtk/fm-folder-view.c
|
||||
+++ b/src/gtk/fm-folder-view.c
|
||||
@@ -1035,7 +1035,15 @@ static void on_rm(GtkAction* act, FmFolderView* fv)
|
||||
|
||||
static void on_select_all(GtkAction* act, FmFolderView* fv)
|
||||
{
|
||||
- fm_folder_view_select_all(fv);
|
||||
+ GtkMenu *popup = g_object_get_qdata(G_OBJECT(fv), popup_quark);
|
||||
+ GtkWidget *win = gtk_menu_get_attach_widget(popup);
|
||||
+ GtkWidget *focus = gtk_window_get_focus(GTK_WINDOW(win));
|
||||
+
|
||||
+ /* check if we are inside the view; for desktop focus will be NULL */
|
||||
+ if(focus == NULL || gtk_widget_is_ancestor(focus, GTK_WIDGET(fv)))
|
||||
+ fm_folder_view_select_all(fv);
|
||||
+ else if(GTK_IS_EDITABLE(focus)) /* fallback for editables */
|
||||
+ gtk_editable_select_region((GtkEditable*)focus, 0, -1);
|
||||
}
|
||||
|
||||
static void on_invert_select(GtkAction* act, FmFolderView* fv)
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
From a10573226a21c1ff3be24efdf7f57be3a3108c76 Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Mon, 19 Nov 2012 23:38:34 +0200
|
||||
Subject: [PATCH 14/22] Disabling input for file name in properties dialog
|
||||
window.
|
||||
|
||||
Changing file name in file properties dialog isn't implemented yet even
|
||||
for single file therefore field for changing should be incensitive.
|
||||
---
|
||||
src/gtk/fm-file-properties.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/gtk/fm-file-properties.c b/src/gtk/fm-file-properties.c
|
||||
index ec486f7..ec672b7 100644
|
||||
--- a/src/gtk/fm-file-properties.c
|
||||
+++ b/src/gtk/fm-file-properties.c
|
||||
@@ -786,6 +786,8 @@ static void update_ui(FmFilePropData* data)
|
||||
localtime_r(&atime, &tm);
|
||||
strftime(buf, sizeof(buf), "%x %R", &tm);
|
||||
gtk_label_set_text(data->atime, buf);
|
||||
+ /* FIXME: changing file name isn't implemented yet, disable entry */
|
||||
+ gtk_widget_set_sensitive(GTK_WIDGET(data->name), FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
From 3cea23d685c92dff892aebff01bd1908c4b7e169 Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Mon, 19 Nov 2012 23:41:10 +0200
|
||||
Subject: [PATCH 15/22] Adding tooltips for file name and location in file
|
||||
properties.
|
||||
|
||||
In case when file name is too long to be shown in the field it will be
|
||||
truncated so user cannot see it. Adding tooltip with full file name
|
||||
and full file path helps to see it in any case.
|
||||
The commit implements showing tooltips on base of text lenght, not
|
||||
rendering size. That probably should be changed later.
|
||||
---
|
||||
src/gtk/fm-file-properties.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/src/gtk/fm-file-properties.c b/src/gtk/fm-file-properties.c
|
||||
index ec672b7..3d79cdf 100644
|
||||
--- a/src/gtk/fm-file-properties.c
|
||||
+++ b/src/gtk/fm-file-properties.c
|
||||
@@ -772,9 +772,16 @@ static void update_ui(FmFilePropData* data)
|
||||
time_t atime;
|
||||
struct tm tm;
|
||||
gtk_entry_set_text(data->name, fm_file_info_get_disp_name(data->fi));
|
||||
+ /* FIXME: check if text fits in line */
|
||||
+ if(strlen(fm_file_info_get_disp_name(data->fi)) > 16)
|
||||
+ gtk_widget_set_tooltip_text(GTK_WIDGET(data->name),
|
||||
+ fm_file_info_get_disp_name(data->fi));
|
||||
if(parent_str)
|
||||
{
|
||||
gtk_label_set_text(data->dir, parent_str);
|
||||
+ /* FIXME: check if text fits in line */
|
||||
+ if(strlen(parent_str) > 16)
|
||||
+ gtk_widget_set_tooltip_text(GTK_WIDGET(data->dir), parent_str);
|
||||
g_free(parent_str);
|
||||
}
|
||||
else
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From 7b83548b43e2af014873655c850f580b16d24d57 Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Mon, 19 Nov 2012 23:33:40 +0200
|
||||
Subject: [PATCH 16/22] Fix: file owner/group should be properly disabled in
|
||||
dialog.
|
||||
|
||||
Currently if owner and group cannot be changed by user those fields
|
||||
are enabled for set cursor but content is unchangeable. That may
|
||||
be questioned by users and considered as bug, it also visually not
|
||||
distinguishable from changeable case.
|
||||
The commit properly disables those fields completely so user will
|
||||
see it cannot be changed and cannot set keyboard focus there.
|
||||
---
|
||||
src/gtk/fm-file-properties.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/gtk/fm-file-properties.c b/src/gtk/fm-file-properties.c
|
||||
index 3d79cdf..a87b546 100644
|
||||
--- a/src/gtk/fm-file-properties.c
|
||||
+++ b/src/gtk/fm-file-properties.c
|
||||
@@ -591,8 +591,8 @@ static void update_permissions(FmFilePropData* data)
|
||||
/* on local filesystems, only root can do chown. */
|
||||
if( data->all_native && geteuid() != 0 )
|
||||
{
|
||||
- gtk_editable_set_editable(GTK_EDITABLE(data->owner), FALSE);
|
||||
- gtk_editable_set_editable(GTK_EDITABLE(data->group), FALSE);
|
||||
+ gtk_widget_set_sensitive(GTK_WIDGET(data->owner), FALSE);
|
||||
+ gtk_widget_set_sensitive(GTK_WIDGET(data->group), FALSE);
|
||||
}
|
||||
|
||||
/* read access chooser */
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
From e1029d5ebf0fb1ea49cd4a26eb6f444f703d6e63 Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Tue, 20 Nov 2012 02:31:18 +0200
|
||||
Subject: [PATCH 17/22] Fix: disabled name cannot be copied to clipboard, make
|
||||
it unfocusable instead.
|
||||
|
||||
Set name insensitive is good in visual but we cannot 'Select All'+'Copy'
|
||||
on it. Therefore make it unfocusable and ineditable instead.
|
||||
---
|
||||
src/gtk/fm-file-properties.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gtk/fm-file-properties.c b/src/gtk/fm-file-properties.c
|
||||
index a87b546..39b402b 100644
|
||||
--- a/src/gtk/fm-file-properties.c
|
||||
+++ b/src/gtk/fm-file-properties.c
|
||||
@@ -794,7 +794,8 @@ static void update_ui(FmFilePropData* data)
|
||||
strftime(buf, sizeof(buf), "%x %R", &tm);
|
||||
gtk_label_set_text(data->atime, buf);
|
||||
/* FIXME: changing file name isn't implemented yet, disable entry */
|
||||
- gtk_widget_set_sensitive(GTK_WIDGET(data->name), FALSE);
|
||||
+ gtk_widget_set_can_focus(GTK_WIDGET(data->name), FALSE);
|
||||
+ gtk_editable_set_editable(GTK_EDITABLE(data->name), FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From 70ff12a694a85184775740fcb501342c75fd551b Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Tue, 20 Nov 2012 23:53:16 +0200
|
||||
Subject: [PATCH 18/22] Change FM_CONFIG_DEFAULT_NO_USB_TRASH to more expecting
|
||||
TRUE.
|
||||
|
||||
The most expected for users used to Windows behavior for that option
|
||||
is to have it TRUE, and FALSE creates behavior unexpected by most of
|
||||
the users and, moreover, even when user plug off flash drive an then
|
||||
plug in it, the trash may be not always recognized by GVFS therefore
|
||||
it's not trivial to get files on flash drive be REALLY deleted. And
|
||||
users blame pcmanfm, of course.
|
||||
The commit changes default. It will not affect users who already use
|
||||
libfm 1.1.0 and have own setting for it but only new users.
|
||||
---
|
||||
src/base/fm-config.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/base/fm-config.h b/src/base/fm-config.h
|
||||
index 313db7c..cd41399 100644
|
||||
--- a/src/base/fm-config.h
|
||||
+++ b/src/base/fm-config.h
|
||||
@@ -43,7 +43,7 @@ typedef struct _FmConfigClass FmConfigClass;
|
||||
#define FM_CONFIG_DEFAULT_SINGLE_CLICK FALSE
|
||||
#define FM_CONFIG_DEFAULT_USE_TRASH TRUE
|
||||
#define FM_CONFIG_DEFAULT_CONFIRM_DEL TRUE
|
||||
-#define FM_CONFIG_DEFAULT_NO_USB_TRASH FALSE
|
||||
+#define FM_CONFIG_DEFAULT_NO_USB_TRASH TRUE
|
||||
|
||||
#define FM_CONFIG_DEFAULT_BIG_ICON_SIZE 48
|
||||
#define FM_CONFIG_DEFAULT_SMALL_ICON_SIZE 16
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From 0beaa4830244ab72eeece67bb99802c3aa04f81c Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Sat, 24 Nov 2012 00:56:34 +0200
|
||||
Subject: [PATCH 19/22] [#3589259]Fix for dropping files onto Trash in Places
|
||||
sidebar.
|
||||
|
||||
The Trash item in Places sidebar has incomplete file info and
|
||||
FmDndDest widget thinks it's not droppable target.
|
||||
The commit adds job to update Trash item so it will be complete.
|
||||
---
|
||||
src/gtk/fm-places-model.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/gtk/fm-places-model.c b/src/gtk/fm-places-model.c
|
||||
index f5d6927..b637089 100644
|
||||
--- a/src/gtk/fm-places-model.c
|
||||
+++ b/src/gtk/fm-places-model.c
|
||||
@@ -611,8 +611,13 @@ static void create_trash_item(FmPlacesModel* model)
|
||||
FmPlacesItem* item;
|
||||
GdkPixbuf* pix;
|
||||
GFile* gf;
|
||||
+ FmFileInfoJob* job = fm_file_info_job_new(NULL, FM_FILE_INFO_JOB_NONE);
|
||||
|
||||
gf = fm_file_new_for_uri("trash:///");
|
||||
+ fm_file_info_job_add(job, fm_path_get_trash());
|
||||
+ g_signal_connect(job, "finished", G_CALLBACK(on_file_info_job_finished), model);
|
||||
+ model->jobs = g_slist_prepend(model->jobs, job);
|
||||
+ fm_job_run_async(FM_JOB(job));
|
||||
model->trash_monitor = fm_monitor_directory(gf, NULL);
|
||||
g_signal_connect(model->trash_monitor, "changed", G_CALLBACK(on_trash_changed), model);
|
||||
g_object_unref(gf);
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
From 7d31d56805d907bcb23f6b4c54719ac3b8f7a137 Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Sat, 24 Nov 2012 17:31:48 +0200
|
||||
Subject: [PATCH 20/22] Fix: after changing the folder selection isn't reset
|
||||
|
||||
This is reported in https://bugs.launchpad.net/ubuntu/+source/pcmanfm/+bug/1071231
|
||||
|
||||
After changing the folder selection is still stays cached
|
||||
so pressing 'Delete' will trash the folder where we just came.
|
||||
The commit adds cleanup on idle after model is changed.
|
||||
---
|
||||
src/gtk/fm-standard-view.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/gtk/fm-standard-view.c b/src/gtk/fm-standard-view.c
|
||||
index 175cced..1ff55ae 100644
|
||||
--- a/src/gtk/fm-standard-view.c
|
||||
+++ b/src/gtk/fm-standard-view.c
|
||||
@@ -275,6 +275,9 @@ static void unset_model(FmStandardView* fv)
|
||||
/* g_debug("unset_model: %p, n_ref = %d", model, G_OBJECT(model)->ref_count); */
|
||||
g_object_unref(model);
|
||||
fv->model = NULL;
|
||||
+ /* https://bugs.launchpad.net/ubuntu/+source/pcmanfm/+bug/1071231:
|
||||
+ after changing the folder selection isn't reset */
|
||||
+ on_sel_changed(NULL, fv);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
From 01c1de235d7bdf702f8d1dfc99645b57afe3deec Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Sat, 24 Nov 2012 19:34:44 +0200
|
||||
Subject: [PATCH 21/22] Fix over previous commit: it leaded to crash.
|
||||
|
||||
The last fix was incorrect since it updated selection after the
|
||||
model was actually unset in FmStandardView but still in ExoIconView
|
||||
therefore it crashed in raised callbacks.
|
||||
The commit does it simpler by unselecting them all. That will
|
||||
still send a signal about reset selection but will not conflict.
|
||||
---
|
||||
src/gtk/fm-folder-view.c | 3 +++
|
||||
src/gtk/fm-standard-view.c | 3 ---
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/gtk/fm-folder-view.c b/src/gtk/fm-folder-view.c
|
||||
index d7fa53e..240f0e3 100644
|
||||
--- a/src/gtk/fm-folder-view.c
|
||||
+++ b/src/gtk/fm-folder-view.c
|
||||
@@ -624,6 +624,9 @@ void fm_folder_view_set_model(FmFolderView* fv, FmFolderModel* model)
|
||||
{
|
||||
fm_folder_model_get_sort(old_model, &by, &mode);
|
||||
unset_model(fv, old_model);
|
||||
+ /* https://bugs.launchpad.net/ubuntu/+source/pcmanfm/+bug/1071231:
|
||||
+ after changing the folder selection isn't reset */
|
||||
+ iface->unselect_all(fv);
|
||||
}
|
||||
/* FIXME: which setting to apply if this is first model? */
|
||||
iface->set_model(fv, model);
|
||||
diff --git a/src/gtk/fm-standard-view.c b/src/gtk/fm-standard-view.c
|
||||
index 1ff55ae..175cced 100644
|
||||
--- a/src/gtk/fm-standard-view.c
|
||||
+++ b/src/gtk/fm-standard-view.c
|
||||
@@ -275,9 +275,6 @@ static void unset_model(FmStandardView* fv)
|
||||
/* g_debug("unset_model: %p, n_ref = %d", model, G_OBJECT(model)->ref_count); */
|
||||
g_object_unref(model);
|
||||
fv->model = NULL;
|
||||
- /* https://bugs.launchpad.net/ubuntu/+source/pcmanfm/+bug/1071231:
|
||||
- after changing the folder selection isn't reset */
|
||||
- on_sel_changed(NULL, fv);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.8.0.1
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
From 552d91d59d32c0ed9fec958bf4f3c99a9caccedd Mon Sep 17 00:00:00 2001
|
||||
From: Andriy Grytsenko <andrej@rep.kiev.ua>
|
||||
Date: Tue, 27 Nov 2012 21:23:15 +0200
|
||||
Subject: [PATCH 22/22] [#3590304]Fallback themed icon "folder-video" to
|
||||
"folder" not to gnome.
|
||||
|
||||
GTK fallbacks missing themed icon "folder-video" to GNOME
|
||||
"folder-video" and that breaks icon theme.
|
||||
The same happens with many other icons.
|
||||
It is better to use g_themed_icon_new_with_default_fallbacks()
|
||||
and use default fallback to "folder" in case of above.
|
||||
---
|
||||
src/base/fm-icon.c | 2 +-
|
||||
src/gtk/fm-icon-pixbuf.c | 2 ++
|
||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/base/fm-icon.c b/src/base/fm-icon.c
|
||||
index 42dd3fc..e86a13b 100644
|
||||
--- a/src/base/fm-icon.c
|
||||
+++ b/src/base/fm-icon.c
|
||||
@@ -99,7 +99,7 @@ FmIcon* fm_icon_from_name(const char* name)
|
||||
g_object_unref(gicon_file);
|
||||
}
|
||||
else
|
||||
- gicon = g_themed_icon_new(name);
|
||||
+ gicon = g_themed_icon_new_with_default_fallbacks(name);
|
||||
|
||||
if(G_LIKELY(gicon))
|
||||
{
|
||||
diff --git a/src/gtk/fm-icon-pixbuf.c b/src/gtk/fm-icon-pixbuf.c
|
||||
index b30d7c7..8b1c276 100644
|
||||
--- a/src/gtk/fm-icon-pixbuf.c
|
||||
+++ b/src/gtk/fm-icon-pixbuf.c
|
||||
@@ -102,11 +102,13 @@ GdkPixbuf* fm_pixbuf_from_icon(FmIcon* icon, int size)
|
||||
char* str = g_icon_to_string(icon->gicon);
|
||||
g_debug("unable to load icon %s", str);
|
||||
/* pix = NULL; */
|
||||
+#if 0
|
||||
if(g_strcmp0(str, "folder-locked") == 0)
|
||||
pix = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), "folder",
|
||||
size, GTK_ICON_LOOKUP_USE_BUILTIN|GTK_ICON_LOOKUP_FORCE_SIZE, NULL);
|
||||
/* FIXME: create locked icon from "folder" one */
|
||||
else
|
||||
+#endif
|
||||
pix = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), "unknown",
|
||||
size, GTK_ICON_LOOKUP_USE_BUILTIN|GTK_ICON_LOOKUP_FORCE_SIZE, NULL);
|
||||
if(G_LIKELY(pix))
|
||||
--
|
||||
1.8.0.1
|
||||
|
Loading…
Reference in New Issue