Changeset 2762 in Sophya for trunk/SophyaPI/PIext/pistdimgapp.cc


Ignore:
Timestamp:
May 24, 2005, 6:31:58 PM (20 years ago)
Author:
ansari
Message:

Suite corrections ZSync + correction (probable) du probleme de plantage a la fin lie a imagnav - reste a corriger menu::del_cur_widget - Reza 24/05/2005

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PIext/pistdimgapp.cc

    r2755 r2762  
    763763  piin->ImageWdg()->ShowCursor(true);
    764764  pii = piin->ImageWdg();
     765  piin->SetUserData(NULL, oid);
    765766  pii->SetUserData(NULL, oid);
    766767  //  XSync(PIXDisplay(), False); 
     
    805806mLastWdg = pii;
    806807mBWId++;
    807 mBWList[mBWId] = pii;
     808if (fgimagnav) mBWList[mBWId] = piin;
     809else mBWList[mBWId] = pii;
    808810// pii->Refresh();
    809811  pii->Apply(true);
     
    15051507for(it = mBWList.begin(); it != mBWList.end(); it++)
    15061508  if ((*it).second == w)  { mBWList.erase(it);  break; }
    1507 PIBaseWdg* bw = dynamic_cast<PIBaseWdg *>(w);
     1509PIBaseWdg* bw = NULL;
     1510if (w->kind() == PIImageNavigator::ClassId) {
     1511  PIImageNavigator* piin = dynamic_cast<PIImageNavigator *>(w);
     1512  if (piin) bw = piin->ImageWdg();
     1513}                               
     1514else bw = dynamic_cast<PIBaseWdg *>(w);
    15081515if (bw != NULL) {
    15091516  PIDrawer* drw;
     
    15171524}
    15181525
    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
     1526if ( (w == mCurWdg) || (bw == mCurWdg) ) { 
    15231527  mCurWdg = NULL;
    15241528  if (mFgCWImg) {
     
    15291533  }
    15301534
    1531 // if (w == mLastWdg)  mLastWdg = NULL;
    1532 mLastWdg = NULL; // Reza Fev 2005 - mLastWdg = NULL systematique
     1535if ( (w == mLastWdg) || (bw == mLastWdg) ) mLastWdg = NULL;
    15331536
    15341537PIWdg* pw=NULL;
    15351538pw = (PIWdg*)(w->Parent());
    15361539//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))
     1540if (dw)  delete w;
     1541
     1542if (dwin && pw) {
     1543  PIWindow* pww = dynamic_cast<PIWindow *>(pw);
     1544  if (pww && (pww != (PIWindow*)mGrW) && (pww != (PIWindow*)mStW) && (pww->NbChilds()==0))
    15471545    DeleteWindow((PIWindow*)pw);
    1548  }
     1546  }
    15491547return;
    15501548}
     
    19111909    if (mCurWdg) {
    19121910      int oid = mCurWdg->UserFlag();
    1913       DeleteWidget(mCurWdg);
     1911      //RZDEL-Mai2005      DeleteWidget(mCurWdg);
    19141912      mObjMgr->DelObj_Id(oid);
    19151913      }
Note: See TracChangeset for help on using the changeset viewer.