Abdelrazak Younes wrote:

> Georg Baum wrote:
>> Abdelrazak Younes wrote:
>> 
>>> Index: frontends/LyXView.C
>>> ===================================================================
>>> --- frontends/LyXView.C        (revision 14813)
>>> +++ frontends/LyXView.C        (working copy)
>>> @@ -139,22 +139,19 @@
>>>  
>>>          work_area_->bufferView().setBuffer(b);
>>>  
>>> -        if (work_area_->bufferView().buffer())
>>> -        {
>>> +        if (work_area_->bufferView().buffer()) {
>>>                  // Buffer-dependent dialogs should be updated or
>>>                  // hidden. This should go here because some dialogs (eg
>> ToC)
>>>                  // require bv_->text.
>>>                  getDialogs().updateBufferDependent(true);
>>> +                connectBuffer(*work_area_->bufferView().buffer());
>>> +                setLayout(work_area_->bufferView().firstLayout());
>>>          }
>>>  
>>>          updateMenubar();
>>>          updateToolbars();
>>>          updateLayoutChoice();
>>>          updateWindowTitle();
>>> -        if (b) {
>>> -                connectBuffer(*b);
>>> -                setLayout(work_area_->bufferView().firstLayout());
>>> -        }
>>>          redrawWorkArea();
>>>  }
>> 
>> This looks wrong (the rest looks OK). Do you know that b !=
>> work_area_->bufferView().buffer() is possible even after a
>> work_area_->bufferView().setBuffer(b)?
> 
> This was indeed the case before my patch but look also at my
> BufferView_pimp change.

They do only change the behaviour if quitting == true. b !=
work_area_->bufferView().buffer() is still possible. BTW, it would be nice
if you could do your diffs with function names (-p argument of diff).

> I've tested this patch with a lot of buffer switching and deletion.

It may work, but I still think that the logic above is wrong. You are going
to call connectBuffer and setLayout with an already connected buffer when b
== 0. That may do no harm, but is AFAIK not necessary, and makes the code
harder to understand.


Georg

Reply via email to