Apache OpenOffice (AOO) Bugzilla – Issue 105856
Selection behaviour changed for text objects
Last modified: 2017-05-20 10:28:55 UTC
- create a new presentation document - insert a rectangle in the middle of the slide - select the "title, text" layout - click on the rectangle OOo 3.1.1 behavior was that the rectangle gets selected DEV300m60 makes it impossible to select the rectangle with the mouse
adding regression keywoard and proposed as a OOo 3.2 release blocker on the releases mailing list
AW: Indeed this is a problem and a regression. For PresObj's (empty ones; adding text makes it work) there must have been an exception in the old HitTest handling. It may have to do with the callback and replacement mechanism at primitive creation. Taking a look...
AW: Re-checked the HitTest changes in #i103709# which lead to this situation. In fact, the old HitTest for TextFrames was not only dependent from bTextFrame, but also from IsPickThroughTransparentTextFrames. This seems to have been the real reason for changed HitTest in SW compared to Draw/Impress. Checking...
AW: Code from DEV300 m29 used: FASTBOOL bPickThrough=pModel!=NULL && pModel->IsPickThroughTransparentTextFrames(); if (bTextFrame && !bPickThrough) bFilled=TRUE;
AW: Works as expected. Checked in, done.
AW: Checked in CWS build, works well. AW->WG: Please verify in CWS ooo32gsl02
Works under Windows but not under Linux.
Reassigned.
AW: Hmm, strange. IKt works with the Layouts 'Title, Slide', 'Centered Text', 'title, Object' and others. There has to be another difference when Text with outline is involved. Checking if this was different in old version... AW: Indeed, it was. I need to debug for this one...
AW: Debugged the WIN32 version, it works as expected. Since the HitTest stuff has NO system-dependent parts, i'll try a svx/sd rebuild on the CWS...
AW: Very strange. Have compared the values for GetRectObj().IsTextFrame() and bPickThroughTransparentTextFrames for EmptyPresObj's, both are true on WIN32 and linux; they are combined to false (!bPickThroughTransparentTextFrames), so bForceFillForHitTest in ViewContactOfSdrRectObj is the same for both systems. This is the defining factor for the HitTest helper creation, so i have no idea why it works different. Looking further...
AW: Found a difference now and a potential error, too: in HitTestProcessor2D, the usages of getB2DRange at BasePrimitive2D are not checked against being empty before usage. I just do not know how this could lead to different decisions under WIN32 and Linux, but it seems to lead to differences. At least the TextSimplePortionPrimitive2D::getB2DRange uses getTextBoundRect and thus potentially may deliver different, system-dependent results. It works when securing the getB2DRange calls in HitTestProcessor2D, so i will do just that...
AW: Checked in, done. All versions (except wntmsci12.pro, building install set) rebuilt with change. Setting to fixed. Waiting for wntmsci12.pro...
AW: Okay, wntmsci12.pro is done, too.
AW->WG: Please verify.
Verified in CWS.