X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.0%2Fguicast%2Fbcwindowbase.C;h=602934b1967aad840bfde338492e0812c1546273;hb=39d4e483b6daeb2d0eb2a6eec5b2e96552e22c5b;hp=32547118e6514c29fd63d1b52b0884b7082fb3e0;hpb=955d712ff475171e99d7910ead049a9342ca8b21;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.0/guicast/bcwindowbase.C b/cinelerra-5.0/guicast/bcwindowbase.C index 32547118..602934b1 100644 --- a/cinelerra-5.0/guicast/bcwindowbase.C +++ b/cinelerra-5.0/guicast/bcwindowbase.C @@ -140,8 +140,10 @@ BC_WindowBase::~BC_WindowBase() if( !glx_win ) { // NVIDIA library threading problem, XCloseDisplay SEGVs without this sync_lock("BC_WindowBase::~BC_WindowBase:XDestroyWindow"); + lock_window("BC_WindowBase::~BC_WindowBase:XDestroyWindow"); glXMakeContextCurrent(top_level->display, 0, 0, 0); XDestroyWindow(top_level->display, win); + unlock_window(); sync_unlock(); } else @@ -4197,6 +4199,15 @@ void BC_WindowBase::translate_coordinates(Window src_w, } } +void BC_WindowBase::get_root_coordinates(int x, int y, int *abs_x, int *abs_y) +{ + translate_coordinates(win, top_level->rootwin, x, y, abs_x, abs_y); +} + +void BC_WindowBase::get_win_coordinates(int abs_x, int abs_y, int *x, int *y) +{ + translate_coordinates(top_level->rootwin, win, abs_x, abs_y, x, y); +}