@@ -356,6 +356,11 @@ nsGfxListControlFrame::Reflow(nsIPresContext* aPresContext,
356
356
const nsHTMLReflowState& aReflowState,
357
357
nsReflowStatus& aStatus)
358
358
{
359
+ nsFrameState state;
360
+ GetFrameState (&state);
361
+ state |= NS_FRAME_HAS_DIRTY_CHILDREN;
362
+ SetFrameState (state);
363
+
359
364
DO_GLOBAL_REFLOW_COUNT (" nsGfxListControlFrame" , aReflowState.reason );
360
365
361
366
REFLOW_COUNTER_REQUEST ();
@@ -2561,6 +2566,16 @@ nsGfxListControlFrame::GetOptionSelected(PRInt32 aIndex, PRBool* aValue)
2561
2566
return NS_OK;
2562
2567
}
2563
2568
2569
+ NS_IMETHODIMP
2570
+ nsGfxListControlFrame::OptionDisabled (nsIContent * aContent)
2571
+ {
2572
+ if (IsContentSelected (aContent)) {
2573
+ PRInt32 inx = GetSelectedIndexFromContent (aContent);
2574
+ SetOptionSelected (inx, PR_FALSE);
2575
+ }
2576
+ return NS_OK;
2577
+ }
2578
+
2564
2579
// ----------------------------------------------------------------------
2565
2580
// End nsISelectControlFrame
2566
2581
// ----------------------------------------------------------------------
@@ -3154,7 +3169,23 @@ nsGfxListControlFrame::MouseDown(nsIDOMEvent* aMouseEvent)
3154
3169
} else {
3155
3170
nsIFrame * parentFrame;
3156
3171
frame->GetParent (&parentFrame);
3157
- stateManager->GetEventTarget (&frame);
3172
+ #if 0
3173
+ nsCOMPtr<nsIScrollableFrame> scrollable(do_QueryInterface(parentFrame));
3174
+ if (scrollable) {
3175
+ if (!IsClickingInCombobox(aMouseEvent)) {
3176
+ return NS_OK;
3177
+ }
3178
+ }
3179
+ nsIFrame * parentsParentFrame;
3180
+ frame->GetParent(&parentsParentFrame);
3181
+ nsCOMPtr<nsIScrollableFrame> parentScrollable(do_QueryInterface(parentsParentFrame));
3182
+ if (parentScrollable) {
3183
+ if (!IsClickingInCombobox(aMouseEvent)) {
3184
+ return NS_OK;
3185
+ }
3186
+ }
3187
+ //stateManager->GetEventTarget(&frame);
3188
+ #endif
3158
3189
listFrame = do_QueryInterface (frame);
3159
3190
if (listFrame) {
3160
3191
if (!IsClickingInCombobox (aMouseEvent)) {
0 commit comments