X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fguicast%2Fbcdisplayinfo.C;h=5bbe991ce925492b454fbc2fc58c0d59e9ac34ef;hb=a19a685a46ddc630010788707d9e5b9d2342af46;hp=724d6c442b87733d061af47c6c325f3bcc1e8655;hpb=7b05ad287956f8bd00836d9b5fb39f899a5fb641;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bcdisplayinfo.C b/cinelerra-5.1/guicast/bcdisplayinfo.C index 724d6c44..5bbe991c 100644 --- a/cinelerra-5.1/guicast/bcdisplayinfo.C +++ b/cinelerra-5.1/guicast/bcdisplayinfo.C @@ -73,10 +73,12 @@ static void get_top_coords(Display *display, Window win, int &px,int &py, int &t int nx = px, ny = py; pwin = win; for( int i=5; --i>=0; ) { - win = pwin; root = 0; pwin = 0; pcwin = 0; ncwin = 0; - XQueryTree(display, win, &root, &pwin, &pcwin, &ncwin); + win = pwin; pwin = 0; pcwin = 0; ncwin = 0; + Window rwin = 0; +// XQuerytTree has been known to fail here + XQueryTree(display, win, &rwin, &pwin, &pcwin, &ncwin); if( pcwin ) XFree(pcwin); - if( pwin == root ) break; + if( !rwin || rwin != root || pwin == root ) break; XTranslateCoordinates(display, pwin, root, 0,0, &nx,&ny, &cwin); //printf(" win=%lx, nx/ny=%d/%d\n", win, nx,ny); }