Closed Bug 747321 Opened 12 years ago Closed 10 years ago

Invite Attendees dialog: Free/busy display bug while scrolling with a 50% zoom

Categories

(Calendar :: Dialogs, defect)

Lightning 1.3
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: seaoflies, Assigned: bv1578)

Details

Attachments

(2 files)

Attached image bug freebusy.JPG
User Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0
Build ID: 20120310010757

Steps to reproduce:

- On Windows/MAC only, with Thunderbird and Lightning
- Create an event in your (local or remote) calendar.
- Create an other event the same day and try to invite attendees.
- In the freebusy view, set the zoom to 50%
- Now, try to scroll horizontally...


Actual results:

blue rectangles (indicating you're busy) move faster than the hour label, so the more you scroll the more you have time difference.


Expected results:

blue rectangles should still be within the correct time range whever you scroll horizontally or not
OS: All → Windows XP
Component: General → Dialogs
Summary: Freebusy display bug while scrolling with a 50% zoom → Invite Attendees dialog: Free/busy display bug while scrolling with a 50% zoom
Same problem here

As soon as the zoom factor is under 100% (50% or less), horizontal scrolling in the free-busy panel makes the hours scroll faster than the appointments, resulting in all appointments being mis-placed at the wrong hours and dates...
It will be resolved by changing the following code:

+ calendar-event-dialog-freebusy.xml
  - binding: freebusy-row
    - property: numHours

[from]
  return Math.floor(numHours * 100 / this.mZoomFactor);
[to]
  return Math.ceil(numHours * 100 / this.mZoomFactor);

While the scrolling view problem will be solved, I don't have any impact analysis against the other functionalities. It should be done before applying this change.
Problem still exists in Lightning 2.6.
To reproduce:
- Open [Views] panel of Lightning setting dialog.
- Change the range of the day to odd number of hours; ex. 8:00 to 19:00
- Open freeBusy view with setting the zoom to 50%
- Scroll horizontally
I think the fix proposed by Tatsuya in comment 2 is correct because the property numHours must return the number of slot contained in each day in the timebar. A slot is the xul element with anonid="hours" and has a corresponding time element as a label in the timebar. Its width (in pixels) is calculated inside the property "contentWidth".

With a zoom of 100%, each slot corresponds to an hour, but with zoom of 50% (zoomFactor=200) and 25% (zoomFactor=400), inside each slot we get 2 or 4 hours respectively, hence, in order to get the number of slots that contain _all_ the hours of a day when this is a _odd_ number, the number 

  numHours * 100 / this.mZoomFactor    

must be rounded up (the last slot will contain more hours than what is needed).

Moreover it could be compared with the code that applies the elements in the timebar (date and time). It does the same thing with step_in_minutes as basic unit and it uses Math.ceil:
http://mxr.mozilla.org/comm-central/source/calendar/base/content/dialogs/calendar-event-dialog-freebusy.xml#708
Assignee: nobody → bv1578
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Attachment #8373664 - Flags: review?(Mozilla)
OS: Windows XP → All
confirmed to work on windows.

Thank you for the fix Tatsuya!

r=markus
Attachment #8373664 - Flags: review?(Mozilla) → review+
Pushed to comm-central:
http://hg.mozilla.org/comm-central/rev/09f42fa0a3ad
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Comment on attachment 8373664 [details] [diff] [review]
patch by Tatsuya (comment 2)

This fix should be considered for the release too.
Attachment #8373664 - Flags: approval-calendar-release?(philipp)
Attachment #8373664 - Flags: approval-calendar-beta?(philipp)
Attachment #8373664 - Flags: approval-calendar-aurora?(philipp)
Target Milestone: --- → 3.2
Comment on attachment 8373664 [details] [diff] [review]
patch by Tatsuya (comment 2)

Fine with me, seems like a simple patch with low impact. a=philipp
Attachment #8373664 - Flags: approval-calendar-release?(philipp)
Attachment #8373664 - Flags: approval-calendar-release+
Attachment #8373664 - Flags: approval-calendar-beta?(philipp)
Attachment #8373664 - Flags: approval-calendar-beta+
Attachment #8373664 - Flags: approval-calendar-aurora?(philipp)
Attachment #8373664 - Flags: approval-calendar-aurora+
You need to log in before you can comment on or make changes to this bug.