blob: a1fa1f2ca438e70012fb9c6d3e5f7d9fafc1782c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
diff -Naur xarchiver-0.5.2.orig/src/window.c xarchiver-0.5.2/src/window.c
--- xarchiver-0.5.2.orig/src/window.c 2014-01-24 08:10:09.305990000 +0100
+++ xarchiver-0.5.2/src/window.c 2014-01-24 08:42:45.110729290 +0100
@@ -1694,7 +1694,7 @@
{
if (archive->passwd == NULL)
{
- archive->passwd = xa_create_password_dialog(NULL);
+ archive->passwd = xa_create_password_dialog(archive);
if ( archive->passwd == NULL)
{
gtk_drag_finish (dc,FALSE,FALSE,t);
@@ -2702,9 +2702,12 @@
if (entry->is_encrypted)
{
- archive[idx]->passwd = xa_create_password_dialog(archive[idx]);
if (archive[idx]->passwd == NULL)
- return;
+ {
+ archive[idx]->passwd = xa_create_password_dialog(archive[idx]);
+ if (archive[idx]->passwd == NULL)
+ return;
+ }
}
filename = g_strconcat(archive[idx]->tmp,"/",entry->filename,NULL);
if (g_file_test(filename,G_FILE_TEST_EXISTS))
@@ -2766,6 +2769,15 @@
/* The selected entry it's not a dir so extract it to the tmp dir and send it to xa_determine_program_to_run() */
else
{
+ if (entry->is_encrypted)
+ {
+ if (archive->passwd == NULL)
+ {
+ archive->passwd = xa_create_password_dialog(archive);
+ if (archive->passwd == NULL)
+ return;
+ }
+ }
if (archive->extraction_path)
{
dummy = g_strdup(archive->extraction_path);
|