From 1764ca51847cff878acea4b0fa498288d61f3d17 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Sun, 26 Oct 2008 18:37:53 +0100 Subject: Plugin interface: pass cancellation button id in ask_question callback --- UCore.pas | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'UCore.pas') diff --git a/UCore.pas b/UCore.pas index 628b67a..5415535 100644 --- a/UCore.pas +++ b/UCore.pas @@ -2677,7 +2677,7 @@ begin end; (********************************************************************************************************************************) -procedure vfs_ask_question_callback(const AMessage: PChar; const Choices: PPChar; choice: PInteger; user_data: Pointer); cdecl; +procedure vfs_ask_question_callback(const AMessage: PChar; const Choices: PPChar; choice: PInteger; cancel_choice: Integer; user_data: Pointer); cdecl; var Thread: TOpenDirThread; begin Thread := user_data; @@ -2685,7 +2685,7 @@ begin if pthread_self = Application.ThreadID then begin DebugMsg(['!! (WARNING): vfs_ask_question_callback called from the main thread, expected spawn from a OpenDirThread']); HandleVFSAskQuestionCallback(FMain.FWidget, AMessage, Choices, choice); - if (choice <> nil) and (Thread <> nil) and (Thread is TOpenDirThread) then Thread.VFSCallbackCancelled := choice^ < 0; + if (choice <> nil) and (Thread <> nil) and (Thread is TOpenDirThread) then Thread.VFSCallbackCancelled := (choice^ < 0) or (choice^ = cancel_choice); Exit; end; @@ -2697,7 +2697,7 @@ begin Thread.VFSAskQuestion_Display := True; Thread.VFSCallbackEvent.WaitFor(INFINITE); DebugMsg(['******* thread: resuming...']); - if (choice <> nil) then Thread.VFSCallbackCancelled := choice^ < 0; + if (choice <> nil) then Thread.VFSCallbackCancelled := (choice^ < 0) or (choice^ = cancel_choice); Exit; end; -- cgit v1.2.3