<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc">
    <title>gmane.comp.lang.smalltalk.vwnc</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25054"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25053"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25052"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25051"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25050"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25049"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25048"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25047"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25046"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25045"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25044"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25043"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25042"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25041"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25040"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25039"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25038"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25037"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25036"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25035"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25054">
    <title>Re: Reducers in Smalltalk</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25054</link>
    <description>&lt;pre&gt;Hi Joerg!


Yes, there is - namely by hand. Let's consider the following example:


It can be written the classic way:


Which creates two intermediate collections. Again, we can avoid them:


But now we have to think in terms of #inject:into and craft the behavior of
#select: and #collect: into the block by hand.
This style is harder to read, especially for more complex conditions and  
mappings.


This idea uses specific block combinators (#&amp;amp;, #||, #,) for the different  
types of enumeration messages. Besides implementing the BlockCollection  
class, you extend BlockClosure with those new messages.
Furthermore, you have to modify each implementor for each of the  
enumeration methods #collect:, select: and so on. This approach does not  
seem to be composable or easy to extend. Moreover, it doesn't give you the  
other benefits I've sketched before. (And it does not simplify the example  
above.)

Did you gave reducers already a try?

Kind regards,
Steffen
&lt;/pre&gt;</description>
    <dc:creator>Steffen Märcker</dc:creator>
    <dc:date>2013-05-18T10:53:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25053">
    <title>Re: Reducers in Smalltalk</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25053</link>
    <description>&lt;pre&gt;

There is already a way to compose the blocks used by select:/collect: etc. and avoid intermediate collections. For example in the case of 
test1 = [:i| I odd].
test2 := [:i| (i\\3) = 0].
((0 to: 100) select: test1) select: test2 

Does indeed iterate over the collection twice. But:

(0 to: 100) select: [:i| (test1 value: i) and: [test2 value: i]]

Only iterates over it once with the two tests composed.

If you want nicer syntax you could create a BlockCollection class with ways to compose blocks. For example:
aBlockCollection := (test1 &amp;amp; test2) || test3.

Then modify select: to take a block collection so you can write (1 to: 100) select: aBlockCollection.

Extensions to support block collections for collect could also be written say:
aBlockCollection := map1, map2, map3.
Then (1 to: 100) collect: aBlockCollection would give you the result of feeding the output of each block into the next.

Joerg
-----Original Message-----
From: vwnc-bounces&amp;lt; at &amp;gt;cs.uiuc.edu [mailto:vwnc-bounces&amp;lt; at &amp;gt;cs.uiuc.edu] On Behalf Of Steffen&lt;/pre&gt;</description>
    <dc:creator>Joerg Beekmann, DeepCove Labs</dc:creator>
    <dc:date>2013-05-17T18:54:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25052">
    <title>Re: Reducers in Smalltalk</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25052</link>
    <description>&lt;pre&gt;Dear Micheal,

I'll try to only indicate some answers, since I am not too familiar with  
Xtreams. I only used parts of it, e.g., the neat PEG package. Please keep  
in mind that Xtreams is an extensive library, whereas Reducers is in an  
early stage and neither complete nor optimized. For example, so far the  
only way to write to a collection/drain is to accumulate with  
#reduce:init:,  e.g.,


* Composition
You already mentioned this.

* Performance
Reducer objects do nothing more than transforming a reducing function  
(block, symbol). The reduction with the transformed function is done by  
the underlying source (~terminal). Thus, apart from the one-time  
transformation, there is no overhead.
This property may give a performance edge over the classical enumeration  
operations and Xtreams. First simple tests look promising to accomplish  
this. However, the tests were not extensive and hardly representative.

* Parallelism
Since most operations, e.g map and filter, do not assume any order or  
repres&lt;/pre&gt;</description>
    <dc:creator>Steffen Märcker</dc:creator>
    <dc:date>2013-05-17T17:06:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25051">
    <title>Re: [ANN] DoubleAgents: A Test Double Library for Visualworks</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25051</link>
    <description>&lt;pre&gt;OK, I understand what you're looking for.  I could think of a couple of
interpretations.

You basically have two options:

1. You can make a complete double of the class like this:

classDouble := DoubleAgent of: MyClass class.
classDouble stub: #myMethod return: 42.
result := suspectObject doStuffWithClass: classDouble.

If this is a common use case, then I should think about adding some kind of
convenience protocol to handle it.

2. You can use an in-place double on the original class like this:

classDouble := MyClass classSideDouble.
classDouble stub: #myMethod return: 42.
result := suspectObject doStuffWithClass: classDouble.


I see the tradeoffs between the two as follows:

 * The complete double will not respond to any other messages than those
you stub or mock; the in-place double will retain its original behavior for
any methods that you don't mention.

* The complete double has to be injected into the object under test; the
in-place double does not.

* The complete double will not impact any other&lt;/pre&gt;</description>
    <dc:creator>Randy Coulman</dc:creator>
    <dc:date>2013-05-15T14:07:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25050">
    <title>Re: Reducers in Smalltalk</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25050</link>
    <description>&lt;pre&gt;Apart from the composition, what advantage does this give me over Xtreams. Xtreams is not just read, it's also capable of write and it backs up to IO with a streaming API. Some kinds of streams are also positionable, which is another bonus.

Cheers,
Michael

On 15/05/2013, at 10:37 PM, Steffen Märcker &amp;lt;merkste&amp;lt; at &amp;gt;web.de&amp;gt; wrote:

&lt;/pre&gt;</description>
    <dc:creator>Michael Lucas-Smith</dc:creator>
    <dc:date>2013-05-15T13:17:55</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25049">
    <title>Re: Reducers in Smalltalk</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25049</link>
    <description>&lt;pre&gt;I've just pushed a new version that improves the API a little bit:

- added Collection&amp;gt;&amp;gt;reducer to support more smalltalkish style:
   ((1 to: 10) reducer filter: #odd) map: #squared
- composition style:
   squares := (Reducer map: #squared).
   odds := (Reducer filter: #odd).
   squared &amp;lt;&amp;gt; odds from: (1 to: 10)

Regards,
Steffen
&lt;/pre&gt;</description>
    <dc:creator>Steffen Märcker</dc:creator>
    <dc:date>2013-05-15T12:37:14</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25048">
    <title>Re: [ANN] DoubleAgents: A Test Double Library for Visualworks</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25048</link>
    <description>&lt;pre&gt;Say, we have MyClass that defines myMethod on the class side, e.g.


The code to be tested is given that class in some way and uses it, say


Can I stub myMethod with DoubleAgents? Maybe similar to


Regards, Steffen



Am 14.05.2013, 20:11 Uhr, schrieb Randy Coulman &amp;lt;rcoulman&amp;lt; at &amp;gt;gmail.com&amp;gt;:

&lt;/pre&gt;</description>
    <dc:creator>Steffen Märcker</dc:creator>
    <dc:date>2013-05-15T09:25:19</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25047">
    <title>Re: indexedType: #illegal</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25047</link>
    <description>&lt;pre&gt;I find that syntax highlighting helps me a lot with these types of errors (assuming you're coloring different variable types differently). Even if you happen to override a variable with a temp variable, it will be highlighted differently.

"Vincent Lesbros"&amp;lt;lesbros&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:
&lt;/pre&gt;</description>
    <dc:creator>mkobetic&lt; at &gt;gmail.com</dc:creator>
    <dc:date>2013-05-14T20:48:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25046">
    <title>Re: Reducers in Smalltalk - template clean blocks</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25046</link>
    <description>&lt;pre&gt;
You mentioned CollectionViews. I use generated blocks in that code. When client code asks GS for information then a clean query block is created to gather that information for each item in the collection being enumerated. The block allows context to be passed as arguments into it so that it remains clean while still being able to resolve anything that is needed. The savings is that the context object need only be created once for all the items being enumerated and that the code being performed each time is as efficient as the compiler can create.


Yeah, that would be slow.


Yes, and you've hinted at the solution that can be used when blocks have little to change. You can use a clean block as a template for creating other clean blocks. You copy the clean block and replace an easily recognized literal with the with a different selector to execute. It avoids having to compile a block every time. This kind of tuning varies by Smalltalk dialect (if that is a concern). I've done things like this a couple times.&lt;/pre&gt;</description>
    <dc:creator>Paul Baumann</dc:creator>
    <dc:date>2013-05-14T18:34:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25045">
    <title>Re: [ANN] DoubleAgents: A Test Double Library for Visualworks</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25045</link>
    <description>&lt;pre&gt;What do you mean by "mocking a class"?  Can you give me an example?

Thanks,
Randy


On Tue, May 14, 2013 at 10:12 AM, Steffen Märcker &amp;lt;merkste&amp;lt; at &amp;gt;web.de&amp;gt; wrote:




&lt;/pre&gt;</description>
    <dc:creator>Randy Coulman</dc:creator>
    <dc:date>2013-05-14T18:11:14</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25044">
    <title>Re: [ANN] DoubleAgents: A Test Double Library for Visualworks</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25044</link>
    <description>&lt;pre&gt;Hi Randy,

thanks for the explanation. DoubleAgents appear really interesting to me.  
I think I'll give it a try soon. Maybe for the reducers stuff or while  
reworking the SimpleXO / SimpleXPath tests. The latter uses sMock up to  
now.

Do DAs support mocking a class, too? How would you do that?


Nice.


Mmh, for me sMock works well with only one testing framework loaded. One  
can safely ignore the error message on load. Though, it would be nice to  
load the proper test class automagically, dependent on the loaded  
framework.

Regards, Steffen
&lt;/pre&gt;</description>
    <dc:creator>Steffen Märcker</dc:creator>
    <dc:date>2013-05-14T17:12:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25043">
    <title>Re: Reducers in Smalltalk (errata)</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25043</link>
    <description>&lt;pre&gt;Two minor points.

1. Reducer class&amp;gt;&amp;gt;filter:from: should be:

2. You can write short
for

Regards,
Steffen
&lt;/pre&gt;</description>
    <dc:creator>Steffen Märcker</dc:creator>
    <dc:date>2013-05-14T17:12:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25042">
    <title>Re: indexedType: #illegal</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25042</link>
    <description>&lt;pre&gt;Thanks,

In fact, in one of the class method, I set the "format" variable that
I wanted to use as a temporary variable,
(but, with the use of letting the browser declare automatically the
temporary variables, I did not see that the "format" variable was
allredy used).

I'll remember, allways declare manually temporary variables.


2013/5/9 Dennis Smith &amp;lt;dennis&amp;lt; at &amp;gt;cherniaksoftware.com&amp;gt;:
&lt;/pre&gt;</description>
    <dc:creator>Vincent Lesbros</dc:creator>
    <dc:date>2013-05-14T17:04:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25041">
    <title>Re: Reducers in Smalltalk</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25041</link>
    <description>&lt;pre&gt;Dear Paul,

thank you very much for your comprehensive response and the link to  
CollectionViews.


I scented this issue. Probably it's due to three reasons:

1. Uncommon Selectors

Although I find #map:, #filter etc. easy to read, they differ from the  
common language of #collect:, #select and so on. I choose them to indicate  
their slightly different semantics. Namely, the do not produce a new  
collection and work on keyed collections as well. However the selectors  
are not carved in stone; I am open to any ideas.

2. Decoupled Implementation

The protocol is implemented in Reducers and interfaces to collections only  
via #reduce:init:. Thus, we have


instead of


To make Reducers easy to extend, I decided not to extend Collection  
itself. Since, you just have to implement a new transformer class in order  
to support a new reduction operation (e.g. concatenate) on all  
implementors of #reduce:init:. You may add a convenience method to  
Reducer, but that's optional. For example:


How do you feel&lt;/pre&gt;</description>
    <dc:creator>Steffen Märcker</dc:creator>
    <dc:date>2013-05-14T14:10:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25040">
    <title>Re: Reducers in Smalltalk</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25040</link>
    <description>&lt;pre&gt;I've done a lot of work with optimizing enumerations. I've done every kind of optimization that you hope to grow Reducers into. I find "Reducers" to be difficult to read so I'm likely missing some of what makes Reducers great. I'm going try to explain Reducers in my own words and let you reply with how it really works. My goal is to show you a few opportunities that you might not have thought of yet.

I see the "Reducer" examples you've given as somewhat similar to an Enumeration pattern as you might read from the GOF "Design Patterns" book. The Reducer is a model that controls how an enumeration is to proceed from where it currently is. It is a more sophisticated form of a Stream enumerating a collection of objects.  A Stream has a position and rules for repositioning within a collection. A Stream also has a different protocol than a collection does, and is an interactive enumerator that does not need to create a results collection. The Reducer appears to be more like a Promise of results that are queried f&lt;/pre&gt;</description>
    <dc:creator>Paul Baumann</dc:creator>
    <dc:date>2013-05-13T19:52:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25039">
    <title>Re: Reducers in Smalltalk</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25039</link>
    <description>&lt;pre&gt;I put some typos in the naturals reduction. Better is:

Naturals&amp;gt;&amp;gt;reduce: function init: x
    | result n |
    result := x.
    n := -1.
    [n := n+1.
    result := function value: result value: n.] repeat

Am 13.05.2013, 12:01 Uhr, schrieb Steffen Märcker &amp;lt;merkste&amp;lt; at &amp;gt;web.de&amp;gt;:

&lt;/pre&gt;</description>
    <dc:creator>Steffen Märcker</dc:creator>
    <dc:date>2013-05-13T10:57:39</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25038">
    <title>Re: Reducers in Smalltalk</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25038</link>
    <description>&lt;pre&gt;Thanks for your response.


They're fine, just different. But obviously I didn't make the points  
clear. A second attempt with five advantages.

1) No intermediate collections
Consider the example of chained collection operations:


The calls of #select: and #collect: create two intermediate collections.  
This wastes memory, since they are discarded immediately. In contrast:


The reducers wrap collections (reducibles). They do not create a new  
collection but transform the reducing block (symbol) when #reduce:init: is  
called. Eventually, the source collection is asked to reduce itself with  
the transformed block in just one step. Thus, no intermediate collections  
are generated.

2) Laziness enables handling of infinite collections
Consider some infinite collecition, e.g., the natural numbers. Assume an  
implementation similar to:


With reducers you can operate on the first five numbers:


operate on all but the first 5 numbers:


or multiply the first five squared prime numbers:


3) Curried and c&lt;/pre&gt;</description>
    <dc:creator>Steffen Märcker</dc:creator>
    <dc:date>2013-05-13T10:01:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25037">
    <title>Re: Reducers in Smalltalk</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25037</link>
    <description>&lt;pre&gt;Karsten has a point - and if you need to lazily apply filters over a potentially very large virtual collection, there is also Xtreams:

streamingReducer := (((1 to: 10**6) reading selecting: #odd) collecting: #squared) injecting: 0 into: [:sum :each | sum + each].
result := streamingReducer rest.

Cheers,
Michael

On 13/05/2013, at 6:17 PM, Karsten Kusche &amp;lt;karsten&amp;lt; at &amp;gt;heeg.de&amp;gt; wrote:


_______________________________________________
vwnc mailing list
vwnc&amp;lt; at &amp;gt;cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
&lt;/pre&gt;</description>
    <dc:creator>Michael Lucas-Smith</dc:creator>
    <dc:date>2013-05-13T08:43:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25036">
    <title>Re: Reducers in Smalltalk</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25036</link>
    <description>&lt;pre&gt;just out of curiosity: what's so bad about select and inject?


why not just say  

((1 to: 10**6) select:#odd) inject: 0 into: [:sum :each | sum + each].



here it's like:

((col select:#odd) collect:#squared) inject: 0 into:[:sum :each | sum + each].

Maybe i'm missing something here, but the Collection class already implements most of the Reducer stuff.

Kind Regards
Karsten


&lt;/pre&gt;</description>
    <dc:creator>Karsten Kusche</dc:creator>
    <dc:date>2013-05-13T08:17:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25035">
    <title>Re:  ScrollWrapper&gt;&gt;setOrigin: inappropriately sends "self repairDamages"</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25035</link>
    <description>&lt;pre&gt;
Well If I make this change I find myself with an empty plugable adapter and a black screen ?
 
&amp;lt; at &amp;gt;+Maarten,
 



I can also confirm that removing the       call to repairDamages resolved a problem in our app.

 With the invocation of repairDamages, the layout of the       subcanvases was messed up. The widgets were painted twice over       each other with two different layouts for two different window       extents. This effect was new after our port from 7.6 to 7.9.1.

 As soon as we changed the setOrigin: method in ScrollWrapper as       Terry proposed, the layout was fine again.

 Is there an AR for 7.10 for this issue?

 Thomas


 Am 08.03.2013 20:49, schrieb Terry Raymond:

It appears that in VW 7.9 #setOrigin: was           modified to send “self repairDamages”.
Well, under some situations when you           maximize the window it is not properly displayed.
 
Also, repair damages occurs immediately.           Generally speaking, this is not a good way
to update the display. An event that causes     &lt;/pre&gt;</description>
    <dc:creator>maarten.mostert&lt; at &gt;stakepoint.com</dc:creator>
    <dc:date>2013-05-10T11:32:04</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25034">
    <title>Re: ScrollWrapper&gt;&gt;setOrigin: inappropriately sends "self repairDamages"</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.smalltalk.vwnc/25034</link>
    <description>&lt;pre&gt;I can also confirm that removing the call to repairDamages resolved a 
problem in our app.

With the invocation of repairDamages, the layout of the subcanvases was 
messed up. The widgets were painted twice over each other with two 
different layouts for two different window extents. This effect was new 
after our port from 7.6 to 7.9.1.

As soon as we changed the setOrigin: method in ScrollWrapper as Terry 
proposed, the layout was fine again.

Is there an AR for 7.10 for this issue?

Thomas


Am 08.03.2013 20:49, schrieb Terry Raymond:

_______________________________________________
vwnc mailing list
vwnc&amp;lt; at &amp;gt;cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
&lt;/pre&gt;</description>
    <dc:creator>Thomas Brodt</dc:creator>
    <dc:date>2013-05-10T09:16:15</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.lang.smalltalk.vwnc">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.lang.smalltalk.vwnc</link>
  </textinput>
</rdf:RDF>
