[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(longish) 2 problems: (edit-definition) and spurious window redrawing

I have been bothered by 2 problems for a while and do not seem to be able
to make much headway either of them. I would appreciate any guidance
anyone can offer.

Problem #1 - (edit-definition)
This one has to do with logical-pathnames, I guess. (I too have read that
section of CtL2 umpteen times and just whan I think I understand it ...)
I am dumping a working environment using save-application and then
starting lisp up from the new application. The application is located in a
different directory than the original MCL.

Here are the definitions of "ccl" and "home" in MCL before save-application 
and in the application:
          MCL: "ccl:**;*.*" --> "HD:MCL:**:*.*"
  application: "ccl:**;*.*" --> "HD:MCL:**:*.*"

Note that they are the same. But the "home" is changed:
          MCL: "home:**;*.*" --> "HD:MCL:**:*.*"     (the same as "ccl")
  application: "home:**;*.*" --> "HD:WATSON:**:*.*"  (*not* the same as "ccl")

When I try to cmd-click edit (edit-definition) a function that was loaded
into my environment before the save-application I get an error message
telling me that I cannot find the file:

> Error: File #P"local library:oodles-of-utils:mixin-madness:simple-view-mixins:frame-svm.lisp" does not exist.

In fact, this file is in "HD:MCL:Local Library:...." and does exist.

When I redfine a function that was previously loaded before the
save-application, I get this message: 

;Warning:  FUNCTION CCL::CHANGE-LOG-STRING previously defined in: ccl:Local Library;my-fred-commands.lisp
;                  is now being redefined in: Local Library:my-fred-commands.lisp
; While executing: CCL::MULTI-REDEFINE-WARN

I think it is actually referring to the same file, once with the ccl
hostname, and once as a relative directory. Note that "Local Library: ..."
is actually "HD:Local Library:..."

Problem #2 - spurious window redrawing
(This one is very hard to describe since it is completely visual. Perhaps
someone could also suggest ways to explain the problem if the following is
not sufficient.)

In an application, I am creating a window that has three subviews which
together take up almost all of the window:

        |            |            |
        | subview    | subview    |
        |    A       |    B       |
        |            |------------|
        |            |            |
        |            | subview    |
        |            |    C       |

Each of the subviews also contain (in one case, many) subviews - buttons
text-dialog-items, etc.

The problem is that a large part of the window is being erased and then
redrawn unecessarily.  The redrawn region is not always the same, but most
often it is and looks like this: (I use x's to show the region that is
invalidated. Note that it is not a simple rectangle.) It does not
correspond to any combination of the subview's subviews.

        |         x  |            x
        | subview x  | subview    x
        |    A    x  |    B       x
        |         x  |------------x
        |         x  |            x
        xxxxxxxxxxx  | subview    x
        x            |    C       x

In the bottom of subview A there are two table-dialog-items with scroll
bars. When the x'ed region is erased, the two scroll bars alone are left
untouched. Everything else in the x'ed region is erased and then redrawn.

Unforunately I connot isolate when this occurs with any surety. It does
occur when a modal dialog is called (and exited) from a (menubar)
menu-item. If I call the same function from the Listener, it appears to
not happen. But there have also, been times (rare and not consistently
reproducible) when calling the function from the menu-item does not redraw
the region.

Any help or hints on either problem would be much appreciated.

Thanks in advance,


Martin Stanley                                  Department of Computer Science
mts@ai.toronto.edu  -or-                        University of Toronto
mts@ai.utoronto.ca                              Pratt Building, Room 265A
                                                6 Kings College Circle
                                                Toronto, Ontario
                                                (416) 978-7569