CLIM mail archive


problem selecting regions within regions

    Date: Wed, 18 Dec 1991 03:31+0200
    From: Peter Karp <>

    I'm seeing a general CLIM problem in my application that I've had a
    lot of trouble reproducing in a simple example, but I finally have
    one.  My application is an interactive graph editor.  Complex graphs
    can be quite complex, with many nodes and edges on the screen at once.
    We want the user to be able to select any node or edge for editing.
    However, long diagonal edges (which therefore have large bounding
    boxes) are often selectable exclusive of other nodes or edges that lie
    within their bounding boxes.  That is, one long diagonal line on the
    screen will be selectable, but rectangles or lines or text within the
    bounding box of that line that should be mouse sensitive are not
    (although if the long diagonal line is deleted, the contained graphics
    is then sensitive).

    The following is the one case I've been able to reproduce in
    isolation.  I tried many other simple cases where CLIM was doing the
    right thing.  So my general observation is that CLIM seems to make all
    graphic elements sensitive most of the time, but not all of the time.
    This particular example involves two lines, L1 and L2, for which the
    bounding box of L2 is completely contained within the bounding box of
    L1.  Again, I've seen this problem where L2 is instead a rectangle or
    a circle or text.

    Here is the program.  Look for the string "**" to see where the lines
    are being drawn.  Simply moving the L2 upwards and out of the bounding
    box of L1 makes it selectable.


I think your main problem is that you provide :single-box T as an argument
to the macro with-output-as-presentation.
CLIM than assumes that you want exacly one bounding rectangle as mouse
sensitive region on the screen for the object(s) output within
the body of with-output-as-presentation.
The use of :single-box T is adequate when you have several objects that
should appear in the UI as one.
So (if I understood your problem correctly) you are not considering the semantics
of this keyword argument.

Markus Fischer
Symbolics Systemhaus GmbH
Frankfurt, Germany

PS: Your code contained several unbalanced paranthesis. Next time, please be sure that
you give proper code to test your problem, because that is easier for
those who want to respond to your question.


Main Index | Thread Index