Closed
Bug 323953
Opened 19 years ago
Closed 18 years ago
lightning pane doesn't repaint after calendar added or deleted
Categories
(Calendar :: Lightning Only, defect, P2)
Calendar
Lightning Only
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: dmosedale, Assigned: dmosedale)
Details
(Whiteboard: [patch needed])
Attachments
(1 file, 2 obsolete files)
2.13 KB,
patch
|
jminta
:
first-review+
|
Details | Diff | Splinter Review |
While on the plane this past weekend, I wasn't able to work on 0.1 blockers for various reasons, so I poked at a few other things.
Assignee | ||
Comment 1•19 years ago
|
||
Assignee | ||
Comment 2•19 years ago
|
||
More complete description of the bug: if you add or delete a calendar, it's still listed in the calendar pane until you manually go to another tab and then come back, forcing a repaint.
Comment 3•19 years ago
|
||
Dmose, is this related to Bug 305578? Not the same problem but maybe the same cause?
Assignee | ||
Comment 4•19 years ago
|
||
Stephan pointed out there there's a really bad failure mode to this bug: since there's not currently any confirmation for deleting a calendar, someone is reasonably likely to hit delete twice since it appears as though nothing happens, thus deleting two calendars. Adding this back to the blocking list for now. Alterately, fixing bug 298373 before 0.1 would allow us to drop this bug from the blocker list.
Blocks: lightning-0.1
Assignee | ||
Comment 5•19 years ago
|
||
(In reply to comment #3) > Dmose, is this related to Bug 305578? Not the same problem but maybe the same > cause? > I kinda suspect not, but I'm not really sure. There are several bugs along those lines, however, and some of them are probably related.
Assignee | ||
Comment 6•19 years ago
|
||
This patch removes onCalendarUnregistering, since it's insufficent for our needs here, and replaces it with onCalendarUnregistered. At some point in the future we can re-add onCalendarUnregistering, should it be necessary for something else. As far as the XXX comments in the patch, addressing them will, at best, give us a slight performance improvement. I propose to file another bug to look into that down the road.
Attachment #208918 -
Attachment is obsolete: true
Attachment #210403 -
Flags: first-review?(jminta)
Comment 7•19 years ago
|
||
Comment on attachment 210403 [details] [diff] [review] patch, v2 I don't really understand how this could work: this.mUnregisterCalendar.step(); this.mUnregisterCalendar.reset(); // delete prefs for the calendar too pp = this.mDeletePrefs.params; pp.calendar = calendarID; this.mDeletePrefs.step(); this.mDeletePrefs.reset(); delete this.mCache[calendarID]; + + this.notifyObservers("onCalendarUnregistered", [calendar]); and then when we notify the observer, that calls removeCalendarFromTree(aCalendar) which does + var changedRow = getCalendars().indexOf(aCalendar); + boxobj.rowCountChanged(changedRow, -1); So we remove the calendar from the database, and then try to find its index in the list of calendars? Either I'm not understanding this codeflow correctly, or something is wrong here.
Assignee | ||
Comment 8•19 years ago
|
||
Good catch, Joey. I was misunderstanding how my own patch was working. The real problem here is the lack of identity of "interface pointers" in JS. Here's a new hackaround. I'll post two more bugs about that (one for fixing in XPConnect, and one for tweaking the calendar interfaces to workaround XPConnect so that we continue to play nice in 1.5). Then I'll file another bug to undo this hackaround once the calendar interfaces bug workaround lands.
Attachment #210403 -
Attachment is obsolete: true
Attachment #210501 -
Flags: first-review?(jminta)
Attachment #210403 -
Flags: first-review?(jminta)
Comment 9•19 years ago
|
||
Comment on attachment 210501 [details] [diff] [review] patch, v3 I suppose this is a pretty minimal perf hit. Please cite the bug number of the bug you filed about interface pointers in the comment though. r=jminta with that.
Attachment #210501 -
Flags: first-review?(jminta) → first-review+
Assignee | ||
Comment 10•19 years ago
|
||
Fix checked in.
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 11•18 years ago
|
||
For some reason, this seems to have regressed. However, since we now prompt for deletion, I dont think this regression needs to block 0.1. I noticed this before I landed bug 328597 just now, so that is not the cause.
Assignee | ||
Comment 12•18 years ago
|
||
A bunch of different people have complained about this since 0.3RC1, if we can get a fix in time that's suitably low-risk, we should consider taking it.
Whiteboard: [patch needed]
Target Milestone: --- → Lightning 0.3
Assignee | ||
Updated•18 years ago
|
Priority: -- → P2
Assignee | ||
Comment 13•18 years ago
|
||
I suspect the combination of the patches that landed in bug 328597 and bug 296202 caused this to regress. In particular, we now both unregister and delete calendars in Lightning, and the Lightning observers for each of those actions both try to remove the calendar from the tree. That said, I'm not able to reproduce this bug in my trunk build at the moment, though I do see it in the RC1 branch build. So there may be more to this yet.
OS: Windows XP → All
Hardware: PC → All
Assignee | ||
Comment 14•18 years ago
|
||
The regression is better documented in bug 352667. Re-closing here.
Status: REOPENED → RESOLVED
Closed: 19 years ago → 18 years ago
Resolution: --- → FIXED
Target Milestone: Lightning 0.3 → ---
You need to log in
before you can comment on or make changes to this bug.
Description
•