Closed
Bug 211289
Opened 22 years ago
Closed 22 years ago
select all / delete leaves the thread pane in a bad state (dots in thread pane)
Categories
(SeaMonkey :: MailNews: Message Display, defect)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: sspitzer, Assigned: Bienvenu)
References
Details
(Keywords: fixed1.4.2)
Attachments
(5 files, 2 obsolete files)
12.63 KB,
image/gif
|
Details | |
2.87 KB,
patch
|
sspitzer
:
review+
mscott
:
superreview+
sspitzer
:
approval1.5b+
|
Details | Diff | Splinter Review |
808 bytes,
patch
|
sspitzer
:
review+
sspitzer
:
superreview+
sspitzer
:
approval1.5b+
|
Details | Diff | Splinter Review |
1.75 KB,
patch
|
sspitzer
:
review+
sspitzer
:
superreview+
sspitzer
:
approval1.5b+
|
Details | Diff | Splinter Review |
4.86 KB,
patch
|
mkaply
:
approval1.4.2+
|
Details | Diff | Splinter Review |
select all / delete leaves the thread pane in a bad state
I think this will end up be a regression of mine, from my fix for bug #205877
the comment from that checkin:
"when you toggle junk status from thread pane icon,
and you've got it set to move on manual mark, assertion and painting problems.
the problem is that ::OnDeleteCompleted() uses the selection to determine which
view indices to call with ::NoteChange().
the junk column icon triggers a delete (or move) and that row might not be selected.
instead, we save of the indices (we can't save keys, as the keys are already removed
before ::OnDeleteCompleted() is called), and use the saved indices when calling
::NoteChange()"
from the console, when I get this problem:
###!!! ASSERTION: selected indices is not equal to num of msg selected!!!: 'numS
elected == selection.GetSize()', file c:/trees/trunk/mozilla/mailnews/base/src/n
sMsgDBView.cpp, line 993
it's not a simple painting issue: min-max the window doesn't fix it, nor does
resizing horizontally.
interesting resizing vertically does.
my wild pre-debugging guess: something must be off with the row count?
Reporter | ||
Comment 1•22 years ago
|
||
since I think bug #205877 introduced this, and that's one the 1.4 branch, I'd
want this fix (when we have it) for the 1.4 branch too.
Whiteboard: [wanted for 1.4.1]
Reporter | ||
Comment 2•22 years ago
|
||
Comment 3•22 years ago
|
||
Is this at all a duplicate of bug 169481?
Comment 4•22 years ago
|
||
no dupe because this is a very recent regression.
Comment 5•22 years ago
|
||
*** Bug 213294 has been marked as a duplicate of this bug. ***
Comment 6•22 years ago
|
||
This also gets triggered when you ask an IMAP box to be viewed by thread.
It is impossible to find it using the summary of the bug. I would suggest the
summary be enhanced.
Comment 7•22 years ago
|
||
*** Bug 213752 has been marked as a duplicate of this bug. ***
are these duplicates? bug 213401, bug 212388
Comment 9•22 years ago
|
||
*** Bug 213401 has been marked as a duplicate of this bug. ***
Comment 10•22 years ago
|
||
*** Bug 212388 has been marked as a duplicate of this bug. ***
Comment 11•22 years ago
|
||
*** Bug 214247 has been marked as a duplicate of this bug. ***
Updated•22 years ago
|
Blocks: bms
Summary: select all / delete leaves the thread pane in a bad state → select all / delete leaves the thread pane in a bad state (dots in thread pane)
Comment 12•22 years ago
|
||
*** Bug 214308 has been marked as a duplicate of this bug. ***
Comment 13•22 years ago
|
||
I've noticed that Empty Trash asserts in debug builds.
Most thread pane view changes are implemented by creating a new view object,
which works well. However, other changes should always call RowCountChanged.
There is, however, another workaround: the batching mechanism that Jan used to
improve the performance of multiple RowCountChanged calls (I have a patch in bug
210755 to do this for multiple deletions from the thread pane) does not require
you to call RowCountChanged, although in this case you should be sure to clear
the selection manually instead.
Comment 14•22 years ago
|
||
*** Bug 214444 has been marked as a duplicate of this bug. ***
Comment 15•22 years ago
|
||
*** Bug 214604 has been marked as a duplicate of this bug. ***
Comment 16•22 years ago
|
||
*** Bug 213714 has been marked as a duplicate of this bug. ***
Comment 17•22 years ago
|
||
is bug 214603 in some way related to this?
Comment 19•22 years ago
|
||
From the mozilla zine forums this bug is still around. Showing up in the 8/3
build from last week.
"I AM seeing the return of the delete messages and you still see the dots and
gridlines - this happened when I emptied my trash. Might be a trunk regression
on this. "
Assignee | ||
Comment 20•22 years ago
|
||
I'm going to clean up all the asserts from the tree control, in the hope that
will fix the problems. This first patch cleans up the assert when you delete
the top level message in a collapsed thread.
Comment 21•22 years ago
|
||
Comment on attachment 129627 [details] [diff] [review]
fix case for deleting top level msg in a thread
Thanks for looking into this David. I'll happily put an sr=mscott on this first
part of the bug fix. I assume more will follow as you fix additional cases.
Attachment #129627 -
Flags: superreview+
Assignee | ||
Comment 22•22 years ago
|
||
just use batching
Reporter | ||
Comment 23•22 years ago
|
||
Comment on attachment 129627 [details] [diff] [review]
fix case for deleting top level msg in a thread
r/a=sspitzer for 1.5 beta
Attachment #129627 -
Flags: review+
Attachment #129627 -
Flags: approval1.5b+
Reporter | ||
Comment 24•22 years ago
|
||
Comment on attachment 129660 [details] [diff] [review]
fix for handling multiple delete case
r/sr/a=sspitzer for 1.5 beta
Attachment #129660 -
Flags: superreview+
Attachment #129660 -
Flags: review+
Attachment #129660 -
Flags: approval1.5b+
Assignee | ||
Comment 25•22 years ago
|
||
these two patches checked in. I'll see if there are any remaining assertions,
and if I can reproduce the dot problem.
Status: NEW → ASSIGNED
Comment 26•22 years ago
|
||
Comment on attachment 129660 [details] [diff] [review]
fix for handling multiple delete case
Actually you should special case multiple deletes, because batching causes full
tree invalidation - see bug 210755.
Assignee | ||
Comment 27•22 years ago
|
||
thx, I'll add a check for multiple delete before batching.
Assignee | ||
Comment 28•22 years ago
|
||
this patch fixes the empty trash case, and the optimization that Neil pointed
out for only batching with multiple delete.
Assignee | ||
Comment 29•22 years ago
|
||
don't need the invalidate call anymore, so remove, and fix comment.
Assignee | ||
Updated•22 years ago
|
Attachment #129680 -
Attachment is obsolete: true
Comment 30•22 years ago
|
||
*** Bug 215018 has been marked as a duplicate of this bug. ***
Comment 31•22 years ago
|
||
Comment on attachment 129680 [details] [diff] [review]
fix for empty trash case
>+ mTree->RowCountChanged(0, -saveSize);
>+ mTree->Invalidate();
Nit: RowCountChanged should already do sufficient invalidating.
Comment 32•22 years ago
|
||
Comment on attachment 129680 [details] [diff] [review]
fix for empty trash case
> // clear the existing selection.
> if (mTreeSelection) {
> mTreeSelection->ClearSelection();
> }
>
> // this will force the tree to ask for the cell values
> // since we don't have a db and we don't have any keys,
> // the thread pane goes blank
>- if (mTree) mTree->Invalidate();
>+ if (mTree)
>+ {
>+ mTree->RowCountChanged(0, -saveSize);
Actually, this will also clear the selection, so you can take out that call too
(just goes to show why it should have been done properly in the first place ;-)
Comment 33•22 years ago
|
||
Maybe I should read all my bugmail before commenting next time :-[
Comment 34•22 years ago
|
||
*** Bug 215988 has been marked as a duplicate of this bug. ***
Comment 35•22 years ago
|
||
Comment on attachment 129683 [details] [diff] [review]
better fix
>+ // tell the tree all the rows have gone away
>+ if (mTree)
>+ mTree->RowCountChanged(0, -saveSize);
Ok, so...
>+ if (numIndices > 1)
> mTree->BeginUpdateBatch();
> for (PRUint32 i=0;i<numIndices;i++)
> NoteChange(mIndicesToNoteChange[i], -1, nsMsgViewNotificationCode::insertOrDelete);
>+ if (numIndices > 1)
> mTree->EndUpdateBatch();
you probably need to check that mTree exists here too.
Assignee | ||
Comment 36•22 years ago
|
||
this addresses Neil's comments. I suspect mTree will never be null anymore -
the checks were added years ago due to one instance of mOutliner being null,
but it's too risky to remove those checks now.
Attachment #129683 -
Attachment is obsolete: true
Reporter | ||
Comment 37•22 years ago
|
||
Comment on attachment 129737 [details] [diff] [review]
fix addressing Neil's comments
r/sr/a=sspitzer for 1.5 beta
Attachment #129737 -
Flags: superreview+
Attachment #129737 -
Flags: review+
Attachment #129737 -
Flags: approval1.5b+
Comment 38•22 years ago
|
||
I'm thinking of the stand alone message window - doesn't that have a dbview
without a tree?
Assignee | ||
Comment 39•22 years ago
|
||
good point, that's true. I'll remove the now bogus comment about why we're
checking for a null tree.
Assignee | ||
Comment 40•22 years ago
|
||
fix checked in
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Comment 41•22 years ago
|
||
is this related to bug 214603? is it maybe the same?
Comment 42•22 years ago
|
||
*** Bug 216756 has been marked as a duplicate of this bug. ***
Assignee | ||
Updated•22 years ago
|
Flags: blocking1.4.2?
Comment 43•22 years ago
|
||
*** Bug 218643 has been marked as a duplicate of this bug. ***
Comment 44•21 years ago
|
||
*** Bug 221441 has been marked as a duplicate of this bug. ***
Comment 45•21 years ago
|
||
bienvenu:
can you prpare a 1.4 branch patch that sums everything up?
Thanks
Flags: blocking1.4.2? → blocking1.4.2+
Assignee | ||
Comment 46•21 years ago
|
||
Comment 47•21 years ago
|
||
Comment on attachment 141334 [details] [diff] [review]
cumulative fix for 1.4.2
a=mkaply for 1.4.2.
I trust you david :)
Please get this in ASAP and mark fixed1.4.2
Thanks!
Attachment #141334 -
Flags: approval1.4.2+
Assignee | ||
Updated•21 years ago
|
Keywords: fixed1.4.2
Whiteboard: [wanted for 1.4.1]
Updated•20 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•