<div>I submitted a bug report about a week ago and have now found a solution, which I have included in a comment in the bug report:</div><a href="http://bugs.freepascal.org/view.php?id=18755">http://bugs.freepascal.org/view.php?id=18755</a><div>
<br></div><div>The bug makes the Object Inspector under Carbon almost useless, since property values change unintentionally when clicked. What happened was that someone wanted the object inspector to respond to double-clicks when it wasn't in focus (e.g. to increment a property by double-clicking on it even when the focus was in the editor), so code was added to force a double-click in that situation, I believe around rev. 26493. But this broke Carbon, since the double-clicks were handled just fine before that code was added. So Carbon ends up getting double-clicks when just a single click is done. </div>
<div><br></div><div>What I propose in the bug report linked above is to simply conditionally compile those two lines in objectinspector.pp, so that the affected procedure would look like this:</div><div><br></div><div><div>
procedure TOICustomPropertyGrid.ValueComboBoxMouseUp(Sender: TObject;</div><div> Button: TMouseButton; Shift: TShiftState; X, Y: Integer);</div><div>begin</div><div> if (Button=mbLeft) then begin</div><div> if (Shift=[ssCtrl,ssLeft]) then</div>
<div> DoCallEdit(oiqeShowValue)</div><div> {$IFNDEF LCLCarbon} </div><div> else if (FFirstClickTime<>0) and (Now-FFirstClickTime<(1/86400*0.4)) then</div><div> ValueEditDblClick(Sender);</div><div>
{$ENDIF}</div><div> end;</div><div>end;</div><div><br></div><div>It still doesn't feel good to me, because it's really just a hack around another hack. But at least the Object Inspector now works under Carbon.</div>
<div><br></div><div>-- <br>John<br>
</div></div>