http://www.newton-inc.com/dev/techinfo/qa/qa.htm
theView:FilterDialog()
, the part of the screen that was not covered by the theView
no longer accepts any pen input. theView
is a protoFloatNGo
. Is there some trick?FilterDialog
and ModalDialog
when used to open views that are not immediate children of the root view. At this point we're not sure if we'll be able to fix the problem.FilterDialog
or ModalDialog
to open more than one non-child-of-root view at a time. Opening more than one at a time with either of these messages causes the state information from the first to be overwritten with the state information from the second. The result will be a failure to exit the modality when the views are closed.FilterDialog
.BuildContext
. This is the best solution because it avoids awkward situations when the child of an application is system-modal. (Application subviews should normally be only application-modal.)ModalDialog
message instead of FilterDialog
. ModalDialog
does not have the child-of-root bug. (FilterDialog
is preferred, since it uses fewer system resources and is faster.)view:FilterDialog();
if view.modalState then
begin
local childOfRoot := view;
while childOfRoot:Parent() <> GetRoot() do
childOfRoot := childOfRoot:Parent();
childOfRoot.modalState := view.modalState;
end;
This only needs to be done if the view that you send the FilterDialog
message to is not an immediate child of the root. You can probably improve the efficiency in your applications, since the root child is ususally your application's base view, which is a "well known" view. That is, you may be able to re-write the code as follows:view:FilterDialog();
if view.modalState then
base.modalState := view.modalState;