Issue 93318 - changes made to a form control's appearance are not show anymore, until you move/resize the form control
Summary: changes made to a form control's appearance are not show anymore, until you m...
Status: CLOSED FIXED
Alias: None
Product: Base
Classification: Application
Component: code (show other issues)
Version: DEV300m30
Hardware: All All
: P3 Trivial (vote)
Target Milestone: OOo 3.1
Assignee: wolframgarten
QA Contact: issues@dba
URL:
Keywords: regression
: 95489 96452 (view as issue list)
Depends on:
Blocks:
 
Reported: 2008-09-01 09:23 UTC by Frank Schönheit
Modified: 2009-01-19 10:00 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
document to reproduce the bug case (7.99 KB, application/vnd.oasis.opendocument.text)
2008-09-01 09:24 UTC, Frank Schönheit
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
Description Frank Schönheit 2008-09-01 09:23:42 UTC
- open the attached document
- double-click the contained control to open the property browser
- change the background color to some arbitrary color
=> the change is not reflected in the document/control
- move or resize the control
=> the control now has the background color it should have

This happens for all appearance-related properties, not only the background
color. Seems that the mechanism which invalidates the portions of the document
window occupied by the control, whenever a control property changes, does not
work anymore.
Comment 1 Frank Schönheit 2008-09-01 09:24:21 UTC
Created attachment 56134 [details]
document to reproduce the bug case
Comment 2 Frank Schönheit 2008-09-01 09:25:48 UTC
regression between m29 and m39 => keyword, target
Comment 3 Frank Schönheit 2008-09-11 14:00:15 UTC
fs->aw: The code which normally triggers the update (more precise, the
invalidation) is in ViewObjectContactOfUnoControl_Impl::propertyChange: There, a
call to ObjectContact::InvalidatePartOfView is made when a property of a control
changes in design mode.

This code fragment is still called, but does not seem to work anymore since m30.
Comment 4 Armin Le Grand 2008-10-10 19:33:40 UTC
AW: First check: No ActionChanged() at the VC is triggered (what is an error).
Comment 5 Armin Le Grand 2008-10-15 10:45:06 UTC
AW: problem is that the ControlPrimitive2D::operator== does not detect
XControlModel changes which includes properties. There are three ways to fix that:

(1) Use a copy of the properties from XControlModel for ControlPrimitive2D, not
the XControlModel itself. Thus, the changes would get recognized

(2) use a propertyChangeListener at the ControlPrimitive2D which reacts on
property changes at the XControlModel and e.g. remembers change in a local bool
to return false at the next comparison

(3) At the tooling providing the primitives (the VOCs and VCs), where the
comparison is needed, use the derived classes for FormControls (which exist) to
do the extra test on property change. This may also result in flushing the
cached primitives at the VOC/VC on property change. That would guarantee to get
a fresh created primitive sequence on next request

(1) is too expensive, (2) works (tried that and committed as SVN tag 262201 to
have the code on demand). Removed again since this does not meet the purpose of
a primitive. The primitive represents the graphical information of a
visualizable object at the time the primitive was created, nothing more.
I imlemented and tested (3). Works well. committed. Done.
Comment 6 lars.langhans 2008-10-29 14:59:56 UTC
*** Issue 95489 has been marked as a duplicate of this issue. ***
Comment 7 Armin Le Grand 2008-11-06 11:20:33 UTC
AW->WG: Please review as described in the task. Maybe FS wants to check, too.
Comment 8 Frank Schönheit 2008-11-13 08:50:24 UTC
looks good in CWS aw058, thanks.
Comment 9 Frank Schönheit 2008-11-22 13:16:38 UTC
*** Issue 96452 has been marked as a duplicate of this issue. ***
Comment 10 wolframgarten 2009-01-19 10:00:28 UTC
Tested in m38. Closed.