From 61115ab061a21912743c62de19ad0eda57224545 Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson Date: Wed, 8 Jan 2014 14:47:11 +0100 Subject: observer: Fix progress dialog creation Should not call showModal on a wxProgressdialog it is already display (see doc) and it hangs on MacOSX until someone presses the menu. --- lib/observer/src/observer_lib.erl | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) (limited to 'lib/observer/src/observer_lib.erl') diff --git a/lib/observer/src/observer_lib.erl b/lib/observer/src/observer_lib.erl index 6288dd3a45..863ef8c2dc 100644 --- a/lib/observer/src/observer_lib.erl +++ b/lib/observer/src/observer_lib.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2011-2013. All Rights Reserved. +%% Copyright Ericsson AB 2011-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -730,31 +730,19 @@ progress_loop(Title,PD,Caller) -> unlink(Caller) end. -progress_dialog(Env,Title,Str) -> - %% Spawning separat process to hold this since we use showModal. - spawn_link( - fun() -> - wx:set_env(Env), - PD = wxProgressDialog:new(Title,Str, - [{maximum,101}, - {style, - ?wxPD_APP_MODAL bor - ?wxPD_SMOOTH bor - ?wxPD_AUTO_HIDE}]), - wxProgressDialog:setMinSize(PD,{200,-1}), - ?progress_handler ! {progress_dialog,PD}, - wxProgressDialog:showModal(PD), - wxDialog:destroy(PD) - end), - receive - {progress_dialog,PD} -> - timer:sleep(300), % To allow the window to show before reporting - PD - end. +progress_dialog(_Env,Title,Str) -> + PD = wxProgressDialog:new(Title,Str, + [{maximum,101}, + {style, + ?wxPD_APP_MODAL bor + ?wxPD_SMOOTH bor + ?wxPD_AUTO_HIDE}]), + wxProgressDialog:setMinSize(PD,{200,-1}), + PD. update_progress(PD,Value) -> wxProgressDialog:update(PD,Value). update_progress_text(PD,Text) -> wxProgressDialog:update(PD,0,[{newmsg,Text}]). finish_progress(PD) -> - wxProgressDialog:endModal(PD, ?wxID_OK). + wxProgressDialog:destroy(PD). -- cgit v1.2.3