Details
-
Bug
-
Resolution: Out of scope
-
P3: Somewhat important
-
4.7.0
-
None
Description
Calling setActive(false) for an item that is not active will change the current active panel for no reason:
void QGraphicsItem::setActive(bool active) { d_ptr->explicitActivate = 1; d_ptr->wantsActive = active; if (d_ptr->scene) { if (active) { // Activate this item. d_ptr->scene->setActivePanel(this); } else { // Deactivate this item, and reactivate the last active item // (if any). QGraphicsItem *lastActive = d_ptr->scene->d_func()->lastActivePanel; d_ptr->scene->setActivePanel(lastActive != this ? lastActive : 0); // <<<<<<------ assumes this item was active } } }