<html>
    <head>
      <base href="https://bugs.documentfoundation.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:Armin.Le.Grand@me.com" title="Armin Le Grand <Armin.Le.Grand@me.com>"> <span class="fn">Armin Le Grand</span></a>
</span> changed
          <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - Font changed when typing into cell, in edit mode, with redline"
   href="https://bugs.documentfoundation.org/show_bug.cgi?id=125054">bug 125054</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>ASSIGNED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Assignee</td>
           <td>libreoffice-bugs@lists.freedesktop.org
           </td>
           <td>Armin.Le.Grand@me.com
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - Font changed when typing into cell, in edit mode, with redline"
   href="https://bugs.documentfoundation.org/show_bug.cgi?id=125054#c6">Comment # 6</a>
              on <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - Font changed when typing into cell, in edit mode, with redline"
   href="https://bugs.documentfoundation.org/show_bug.cgi?id=125054">bug 125054</a>
              from <span class="vcard"><a class="email" href="mailto:Armin.Le.Grand@me.com" title="Armin Le Grand <Armin.Le.Grand@me.com>"> <span class="fn">Armin Le Grand</span></a>
</span></b>
        <pre>I think I have found the source for the error: The before used ::operator=() of
SfxPoolItems did *not* copy the WhichID. There were places like in
ScPatternAttr::FillToEditItemSet which prepared a new Item which is now

    std::shared_ptr<SvxColorItem>
aColorItem(std::make_shared<SvxColorItem>(EE_CHAR_COLOR));              // use
item as-is

then used ::operator=() to copy something to it which is now

        aColorItem.reset(static_cast<SvxColorItem*>(pItem->Clone()));

and then used it in calls to e.g.

        rEditSet.Put( *aColorItem, EE_CHAR_COLOR );

which in effect *changed* the WhichID of the item. The ::Clone() call to the
SfxPoolItem which is used now to work with an instance of the Item will - of
course - also clone the WhichID.

Thus the up-to-now indirectly 'used' functionality is that the ::operator=()
did *not* change the evtl. already set WhichID of the target item. This is
usage of very hidden functionality, it would be perfectly OK to assume that
::operator= copies everything and thus is equal in that respect to ::Clone() -
but it is *not*.

Checking my changes for that aspect...</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>