Changeset 808 for trunk/src/gui/painting/qwindowsurface_pm.cpp
- Timestamp:
- Oct 27, 2010, 6:11:22 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gui/painting/qwindowsurface_pm.cpp
r787 r808 352 352 struct WidgetData 353 353 { 354 QWidget *widget;355 354 int widgetHeight; 356 355 bool vrnDirty; … … 360 359 361 360 WidgetData data; 362 QMap< HWND, WidgetData> *subWidgets;361 QMap<, WidgetData> *subWidgets; 363 362 364 363 void addWidget(QWidget *widget); … … 369 368 if (widget == that->window()) 370 369 return &data; 371 if (!subWidgets || !subWidgets->contains(widget ->internalWinId()))370 if (!subWidgets || !subWidgets->contains(widget)) 372 371 return 0; 373 return &(*subWidgets)[widget ->internalWinId()];372 return &(*subWidgets)[widget]; 374 373 } 375 374 … … 386 385 // lazily create the sub-widget map (only when really necessary) 387 386 if (!subWidgets) 388 subWidgets = new QMap<HWND, WidgetData>(); 389 wd = &(*subWidgets)[widget->internalWinId()]; 390 } 391 392 wd->widget = widget; 387 subWidgets = new QMap<QWidget *, WidgetData>(); 388 wd = &(*subWidgets)[widget]; 389 } 390 393 391 wd->vrnDirty = true; 394 392 wd->widgetHeight = 0; … … 418 416 widget->removeEventFilter(this); 419 417 widget->removePmEventFilter(this); 420 subWidgets->remove(widget ->internalWinId());418 subWidgets->remove(widget); 421 419 } 422 420 } … … 425 423 { 426 424 QWidget *widget = qobject_cast<QWidget *>(obj); 427 if (event->type() == QEvent::ParentAboutToChange) { 425 if (event->type() == QEvent::ParentAboutToChange || 426 event->type() == QEvent::Destroy) { 428 427 removeWidget(widget); 429 428 } … … 466 465 data.vrnDirty = true; 467 466 if (subWidgets) { 468 foreach( HWND hwnd, subWidgets->keys())469 (*subWidgets)[ hwnd].vrnDirty = true;467 foreach(, subWidgets->keys()) 468 (*subWidgets)[].vrnDirty = true; 470 469 } 471 470 } … … 487 486 data.vrnDirty = true; 488 487 if (subWidgets) { 489 foreach( HWND hwnd, subWidgets->keys())490 (*subWidgets)[ hwnd].vrnDirty = true;488 foreach(, subWidgets->keys()) 489 (*subWidgets)[].vrnDirty = true; 491 490 } 492 491 } … … 530 529 { 531 530 if (d->subWidgets) { 532 foreach(HWND hwnd, d->subWidgets->keys()) 533 d->removeWidget((*d->subWidgets)[hwnd].widget); 531 QList<QWidget *> keys = d->subWidgets->keys(); 532 foreach(QWidget *w, keys) 533 d->removeWidget(w); 534 534 Q_ASSERT(d->subWidgets->count() == 0); 535 535 delete d->subWidgets;
Note:
See TracChangeset
for help on using the changeset viewer.