Changeset 2762 in Sophya for trunk/SophyaPI/PIext/pistdimgapp.cc
- Timestamp:
- May 24, 2005, 6:31:58 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PIext/pistdimgapp.cc
r2755 r2762 763 763 piin->ImageWdg()->ShowCursor(true); 764 764 pii = piin->ImageWdg(); 765 piin->SetUserData(NULL, oid); 765 766 pii->SetUserData(NULL, oid); 766 767 // XSync(PIXDisplay(), False); … … 805 806 mLastWdg = pii; 806 807 mBWId++; 807 mBWList[mBWId] = pii; 808 if (fgimagnav) mBWList[mBWId] = piin; 809 else mBWList[mBWId] = pii; 808 810 // pii->Refresh(); 809 811 pii->Apply(true); … … 1505 1507 for(it = mBWList.begin(); it != mBWList.end(); it++) 1506 1508 if ((*it).second == w) { mBWList.erase(it); break; } 1507 PIBaseWdg* bw = dynamic_cast<PIBaseWdg *>(w); 1509 PIBaseWdg* bw = NULL; 1510 if (w->kind() == PIImageNavigator::ClassId) { 1511 PIImageNavigator* piin = dynamic_cast<PIImageNavigator *>(w); 1512 if (piin) bw = piin->ImageWdg(); 1513 } 1514 else bw = dynamic_cast<PIBaseWdg *>(w); 1508 1515 if (bw != NULL) { 1509 1516 PIDrawer* drw; … … 1517 1524 } 1518 1525 1519 // Reza Fev 2005 - On met systematiquement mCurWdg et mLastWdg a NULL 1520 // Il peuvent en effet etre un des fils du widget qui est supprime 1521 // if (w == mCurWdg) { 1522 if (true) { // Reza Fev 2005 - mCurWdg = NULL systematique 1526 if ( (w == mCurWdg) || (bw == mCurWdg) ) { 1523 1527 mCurWdg = NULL; 1524 1528 if (mFgCWImg) { … … 1529 1533 } 1530 1534 1531 // if (w == mLastWdg) mLastWdg = NULL; 1532 mLastWdg = NULL; // Reza Fev 2005 - mLastWdg = NULL systematique 1535 if ( (w == mLastWdg) || (bw == mLastWdg) ) mLastWdg = NULL; 1533 1536 1534 1537 PIWdg* pw=NULL; 1535 1538 pw = (PIWdg*)(w->Parent()); 1536 1539 //DBG printf("DeleteWidget(%lx)-DBG kind = %d - %d %d \n", (long)w, w->kind(), (int)dw, (int)dwin); 1537 if (dw) { 1538 if (pw && (pw->kind() == PIImageNavigator::ClassId) ) { 1539 delete pw; 1540 pw = NULL; 1541 } 1542 else delete w; 1543 } 1544 if (dwin && pw && (pw->kind() == PIWindow::ClassId )) { 1545 PIWindow* pww = dynamic_cast<PIWindow *>(pw); 1546 if (pww && (pww != (PIWindow*)mGrW) && (pww != (PIWindow*)mStW) && (pww->NbChilds()==0)) 1540 if (dw) delete w; 1541 1542 if (dwin && pw) { 1543 PIWindow* pww = dynamic_cast<PIWindow *>(pw); 1544 if (pww && (pww != (PIWindow*)mGrW) && (pww != (PIWindow*)mStW) && (pww->NbChilds()==0)) 1547 1545 DeleteWindow((PIWindow*)pw); 1548 }1546 } 1549 1547 return; 1550 1548 } … … 1911 1909 if (mCurWdg) { 1912 1910 int oid = mCurWdg->UserFlag(); 1913 DeleteWidget(mCurWdg);1911 //RZDEL-Mai2005 DeleteWidget(mCurWdg); 1914 1912 mObjMgr->DelObj_Id(oid); 1915 1913 }
Note:
See TracChangeset
for help on using the changeset viewer.