mirror of https://code.videolan.org/videolan/vlc
Fix wx DnD once more.
This commit is contained in:
parent
bc07639dbb
commit
54aaf840dc
|
@ -1292,12 +1292,13 @@ bool PlaylistFileDropTarget::OnDropFiles( wxCoord x, wxCoord y,
|
|||
/* Put the items in the playlist node */
|
||||
for( size_t i = 0; i < filenames.GetCount(); i++ )
|
||||
{
|
||||
const char *psz_utf8 = wxDnDFromLocale( filenames[i] );
|
||||
char *psz_local = NULL;
|
||||
const char *psz_utf8 = wxDnDFromLocale( filenames[i], psz_local );
|
||||
playlist_item_t *p_item =
|
||||
playlist_ItemNew( p->p_playlist, psz_utf8, psz_utf8 );
|
||||
playlist_NodeAddItem( p->p_playlist, p_item, p->i_current_view,
|
||||
p_dest, PLAYLIST_PREPARSE, i_pos );
|
||||
wxDnDLocaleFree( psz_utf8 );
|
||||
wxDnDLocaleFree( psz_utf8, psz_local );
|
||||
}
|
||||
|
||||
/* FIXME: having this Rebuild() is dirty */
|
||||
|
|
|
@ -1261,13 +1261,14 @@ bool DragAndDrop::OnDropFiles( wxCoord, wxCoord,
|
|||
|
||||
for( size_t i = 0; i < filenames.GetCount(); i++ )
|
||||
{
|
||||
const char *psz_utf8 = wxDnDFromLocale( filenames[i] );
|
||||
char *psz_local = NULL;
|
||||
const char *psz_utf8 = wxDnDFromLocale( filenames[i], psz_local );
|
||||
|
||||
playlist_Add( p_playlist, psz_utf8, psz_utf8,
|
||||
PLAYLIST_APPEND | ((i | b_enqueue) ? 0 : PLAYLIST_GO),
|
||||
PLAYLIST_END );
|
||||
|
||||
wxDnDLocaleFree( psz_utf8 );
|
||||
wxDnDLocaleFree( psz_utf8, psz_local );
|
||||
}
|
||||
|
||||
vlc_object_release( p_playlist );
|
||||
|
|
|
@ -98,7 +98,7 @@ DECLARE_LOCAL_EVENT_TYPE( wxEVT_INTF, 1 );
|
|||
|
||||
/* From Locale functions to use for File Drop targets ... go figure */
|
||||
#ifdef wxUSE_UNICODE
|
||||
inline const char *wxDnDFromLocale( const wxChar *stupid )
|
||||
inline const char *wxDnDFromLocale( const wxChar *stupid, char *psz_local )
|
||||
{
|
||||
/*
|
||||
* FIXME: this is yet another awful and ugly bug-to-bug work-around
|
||||
|
@ -120,19 +120,22 @@ inline const char *wxDnDFromLocale( const wxChar *stupid )
|
|||
for (braindead = stupid; *braindead; braindead++);
|
||||
|
||||
size_t i = (braindead - stupid);
|
||||
char *psz_local = (char *)malloc( i + 1 );
|
||||
psz_local = (char *)malloc( i + 1 );
|
||||
do
|
||||
psz_local[i] = (char)stupid[i];
|
||||
while (i--);
|
||||
|
||||
const char *psz_utf8 = FromLocale( psz_local );
|
||||
free( psz_local );
|
||||
return psz_utf8;
|
||||
}
|
||||
#else
|
||||
# define wxDnDFromLocale( string ) wxFromLocale( string )
|
||||
# define wxDnDFromLocale( string, a ) wxFromLocale( string )
|
||||
#endif
|
||||
#ifdef wxUSE_UNICODE
|
||||
# define wxDnDLocaleFree( string, a ) LocaleFree( string ); free( a )
|
||||
#else
|
||||
# define wxDnDLocaleFree( string, a ) wxLocaleFree( string )
|
||||
#endif
|
||||
#define wxDnDLocaleFree(string) LocaleFree( string )
|
||||
|
||||
#define WRAPCOUNT 80
|
||||
|
||||
|
|
Loading…
Reference in New Issue