projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
upgrade vpx to 1.8.1, rm meson prereq and add dav1d Makefile, warn/gettid patch
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
guicast
/
bcwindowbase.C
diff --git
a/cinelerra-5.1/guicast/bcwindowbase.C
b/cinelerra-5.1/guicast/bcwindowbase.C
index 583caac6d890e62de81dc16def9db3201a74e6a1..1ff149285aa2d2c297cf48b2ead4c708d8b23852 100644
(file)
--- a/
cinelerra-5.1/guicast/bcwindowbase.C
+++ b/
cinelerra-5.1/guicast/bcwindowbase.C
@@
-149,7
+149,11
@@
BC_WindowBase::~BC_WindowBase()
//printf("delete glx=%08x, win=%08x %s\n", (unsigned)glx_win, (unsigned)win, title);
#ifdef HAVE_GL
if( get_resources()->get_synchronous() && glx_win != 0 ) {
//printf("delete glx=%08x, win=%08x %s\n", (unsigned)glx_win, (unsigned)win, title);
#ifdef HAVE_GL
if( get_resources()->get_synchronous() && glx_win != 0 ) {
+ if( window_type == MAIN_WINDOW )
+ unlock_window();
get_resources()->get_synchronous()->delete_window(this);
get_resources()->get_synchronous()->delete_window(this);
+ if( window_type == MAIN_WINDOW )
+ lock_window("BC_WindowBase::delete_window");
}
#endif
XDestroyWindow(top_level->display, win);
}
#endif
XDestroyWindow(top_level->display, win);
@@
-728,9
+732,8
@@
int BC_WindowBase::run_window()
init_lock->unlock();
// Handle common events
init_lock->unlock();
// Handle common events
- while(!done)
- {
- dispatch_event(0);
+ while( !done ) {
+ dispatch_event();
}
unset_all_repeaters();
}
unset_all_repeaters();
@@
-886,13
+889,14
@@
pthread_t locking_task = (pthread_t)-1L;
int locking_event = -1;
int locking_message = -1;
int locking_event = -1;
int locking_message = -1;
-int BC_WindowBase::dispatch_event(
XEvent *event
)
+int BC_WindowBase::dispatch_event()
{
Window tempwin;
int result;
XClientMessageEvent *ptr;
int cancel_resize, cancel_translation;
volatile static int debug = 0;
{
Window tempwin;
int result;
XClientMessageEvent *ptr;
int cancel_resize, cancel_translation;
volatile static int debug = 0;
+ XEvent *event;
key_pressed = 0;
key_pressed = 0;
@@
-4056,6
+4060,11
@@
int BC_WindowBase::resize_window(int w, int h)
size_hints.max_width = w;
size_hints.min_height = h;
size_hints.max_height = h;
size_hints.max_width = w;
size_hints.min_height = h;
size_hints.max_height = h;
+ if( this->x > -BC_INFINITY && this->x < BC_INFINITY ) {
+ size_hints.flags |= PPosition;
+ size_hints.x = this->x;
+ size_hints.y = this->y;
+ }
XSetNormalHints(top_level->display, win, &size_hints);
}
XResizeWindow(top_level->display, win, w, h);
XSetNormalHints(top_level->display, win, &size_hints);
}
XResizeWindow(top_level->display, win, w, h);