Lisp HUG Maillist Archive

Scroll-bar in divider layout redisplay problem (again)

Hi list,

I am still trying to find a cure for a problem I posted about a few months ago
(http://thread.gmane.org/gmane.lisp.lispworks.general/8944): 
when I place scroll-bars in a layout with a divider the scroll-bars redisplay in
a 'juddery' fashion as the divider is moved
(particularly if dragged quickly). My interface has independent scroll-bars,
rather than ones added via initargs, as it requires
custom scrolling. The problem is illustrated by the test interface below:

(define-interface sb-div-test ()
  ()
  (:panes
    (top-pane output-pane)
    (bottom-pane output-pane)
    (h-scroll scroll-bar)
    (v-scroll scroll-bar
      :orientation :vertical)
    (dummy-pane simple-pane
      :visible-border nil
      :visible-max-width 16
      :visible-max-height 16))
  (:layouts
    (v-scroll-panel column-layout
      '(v-scroll dummy-pane)
      :y-gap 0)
    (panel-1 column-layout
      '(top-pane h-scroll)
      :y-gap 0)
    (panel-2 row-layout
      '(panel-1 v-scroll-panel)
      :x-gap 0)
    (main-layout column-layout
      '(panel-2 :divider bottom-pane)))
  (:default-initargs
    :layout 'main-layout
    :best-height 500
    :best-width 800))

I'm on XP, but the problem also seems to occur (though perhaps less
dramatically) on Vista and OS X. I have tried things like
disabling 'Show window contents while dragging' in the XP preferences, but
nothing seems to work. Interestingly the problem
seems much less obvious if I maximise the interface. Anyone have any thoughts on
how to solve this?

Cheers all,
Chris



Re: Scroll-bar in divider layout redisplay problem (again)

Hi Christopher,

Your example works quite fine for me on LWW 5.1.2 pro with Win XP SP3.
However, you can try to use a grid layout instead, which seems to be a litle more fluid on my 
machine. At least, it simplifies the nested layouts.

Cheers,

Sébastien.

(define-interface sb-div-test ()
   ()
   (:panes
    (top-pane output-pane)
    (bottom-pane output-pane)
    (h-scroll scroll-bar)
    (v-scroll scroll-bar :orientation :vertical))
   (:layouts
    (panel capi:grid-layout
          '(top-pane v-scroll h-scroll)
          :orientation :row
          :columns 2
          :x-ratios '(1 0) :x-gap 0
          :y-ratios '(1 0) :y-gap 0
          :visible-border t
          )
    (main-layout column-layout
                 '(panel :divider bottom-pane)))
   (:default-initargs
    :layout 'main-layout
    :best-height 500
    :best-width 800))


Christopher Melen a écrit :
> Hi list,
> 
> I am still trying to find a cure for a problem I posted about a few months ago
> (http://thread.gmane.org/gmane.lisp.lispworks.general/8944): 
> when I place scroll-bars in a layout with a divider the scroll-bars redisplay in
> a 'juddery' fashion as the divider is moved
> (particularly if dragged quickly). My interface has independent scroll-bars,
> rather than ones added via initargs, as it requires
> custom scrolling. The problem is illustrated by the test interface below:
> 
> (define-interface sb-div-test ()
>   ()
>   (:panes
>     (top-pane output-pane)
>     (bottom-pane output-pane)
>     (h-scroll scroll-bar)
>     (v-scroll scroll-bar
>       :orientation :vertical)
>     (dummy-pane simple-pane
>       :visible-border nil
>       :visible-max-width 16
>       :visible-max-height 16))
>   (:layouts
>     (v-scroll-panel column-layout
>       '(v-scroll dummy-pane)
>       :y-gap 0)
>     (panel-1 column-layout
>       '(top-pane h-scroll)
>       :y-gap 0)
>     (panel-2 row-layout
>       '(panel-1 v-scroll-panel)
>       :x-gap 0)
>     (main-layout column-layout
>       '(panel-2 :divider bottom-pane)))
>   (:default-initargs
>     :layout 'main-layout
>     :best-height 500
>     :best-width 800))
> 
> I'm on XP, but the problem also seems to occur (though perhaps less
> dramatically) on Vista and OS X. I have tried things like
> disabling 'Show window contents while dragging' in the XP preferences, but
> nothing seems to work. Interestingly the problem
> seems much less obvious if I maximise the interface. Anyone have any thoughts on
> how to solve this?
> 
> Cheers all,
> Chris
> 
> 
> 


RE: Scroll-bar in divider layout redisplay problem (again)

> Date: Fri, 30 Oct 2009 11:53:28 +0100
> From: s.saint.sevin@xehex.com
> To: relativeflux@hotmail.co.uk; lisp-hug@lispworks.com
> Subject: Re: Scroll-bar in divider layout redisplay problem (again)
>
>
> Hi Christopher,
>
> Your example works quite fine for me on LWW 5.1.2 pro with Win XP SP3.
> However, you can try to use a grid layout instead, which seems to be a litle more fluid on my
> machine. At least, it simplifies the nested layouts.
>
> Cheers,
>
> Sébastien.
>

Thanks for testing the example, Sebastien.. I had managed to test it on two other XP machines since posting, and had no issues, so it seems as if it's just a problem with my box. I have no idea what can be causing it, however, as I haven't made any radical changes to the OS's configuration, either graphics or otherwise. Anyway, at least I know now that it's not a general problem!

Thanks again,
Chris

P.S: Oh and thanks also for suggesting using a grid-layout rather than nested column- and row-layouts. I had never used a grid-layout before, having regarded it as somewhat of an abstraction. But it's obviously useful for a complex interface.


New Windows 7: Simplify what you do everyday. Find the right PC for you.
Updated at: 2020-12-10 08:40 UTC