Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.3:Update
libfm
libfm-1.2.3-Fix-dropping-files-onto-application...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File libfm-1.2.3-Fix-dropping-files-onto-applications.patch of Package libfm
From 819cdf17be19097a7276f15ed8eeebdf3f7a5188 Mon Sep 17 00:00:00 2001 From: Andriy Grytsenko <andrej@rep.kiev.ua> Date: Thu, 14 May 2015 21:33:45 +0300 Subject: [PATCH] Fix dropping files onto applications shortcuts on the desktop. Those should be not "inode/x-shortcut" but "application/x-desktop" instead and therefore handled as any other applications, i.e. allow drop. --- diff --git a/src/base/fm-file-info.c b/src/base/fm-file-info.c index fc3ca28..39b417e 100644 --- a/src/base/fm-file-info.c +++ b/src/base/fm-file-info.c @@ -3,7 +3,7 @@ * * Copyright 2009 - 2012 Hong Jen Yee (PCMan) <pcman.tw@gmail.com> * Copyright 2009 Juergen Hoetzel <juergen@archlinux.org> - * Copyright 2012-2014 Andriy Grytsenko (LStranger) <andrej@rep.kiev.ua> + * Copyright 2012-2015 Andriy Grytsenko (LStranger) <andrej@rep.kiev.ua> * * This file is a part of the Libfm library. * @@ -289,12 +289,14 @@ gboolean _fm_file_info_set_from_native_file(FmFileInfo* fi, const char* path, FmMimeType *new_mime_type = fm_mime_type_from_file_name(uri); /* g_debug("got type %s for URL %s", fm_mime_type_get_type(new_mime_type), uri); */ - if (new_mime_type == _fm_mime_type_get_application_x_desktop() || - strcmp(fm_mime_type_get_type(new_mime_type), + if (strcmp(fm_mime_type_get_type(new_mime_type), "application/octet-stream") == 0) { - /* either link to desktop entry or failed - to determine, set to inode/x-shortcut */ + /* NOTE: earlier we classified all links to + desktop entry as inode/x-shortcut too but + that would require a lot of special support + therefore we set to inode/x-shortcut only + those shortcuts that we fail to determine */ fm_mime_type_unref(new_mime_type); new_mime_type = fm_mime_type_ref(_fm_mime_type_get_inode_x_shortcut()); } diff --git a/src/gtk/fm-gtk-file-launcher.c b/src/gtk/fm-gtk-file-launcher.c index d683895..5e7cde9 100644 --- a/src/gtk/fm-gtk-file-launcher.c +++ b/src/gtk/fm-gtk-file-launcher.c @@ -3,7 +3,7 @@ * * Copyright 2010-2012 Hong Jen Yee (PCMan) <pcman.tw@gmail.com> * Copyright 2010 Shae Smittle <starfall87@gmail.com> - * Copyright 2012-2014 Andriy Grytsenko (LStranger) <andrej@rep.kiev.ua> + * Copyright 2012-2015 Andriy Grytsenko (LStranger) <andrej@rep.kiev.ua> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -346,7 +346,11 @@ gboolean fm_launch_desktop_entry_simple(GtkWindow* parent, GAppLaunchContext* ct } if(files) for(l = fm_path_list_peek_head_link(files); l; l = l->next) uris = g_list_append(uris, fm_path_to_uri(FM_PATH(l->data))); - entry_path = fm_path_to_str(path); + /* special handling for shortcuts */ + if (fm_file_info_is_shortcut(entry)) + entry_path = g_strdup(fm_file_info_get_target(entry)); + else + entry_path = fm_path_to_str(path); ret = fm_launch_desktop_entry(ctx, entry_path, uris, &launcher, &data); g_list_foreach(uris, (GFunc)g_free, NULL); g_list_free(uris); -- 2.1.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor