X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbcdisplay.C;h=b09beb643679de2e2615dc0eeeba9803a50a1572;hb=b78b166faf60a1c7357f990b1e2fb0e70be29fee;hp=39a2b908b084d3023fb4f7dd18e0a19d128ec0b0;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/guicast/bcdisplay.C b/cinelerra-5.1/guicast/bcdisplay.C index 39a2b908..b09beb64 100644 --- a/cinelerra-5.1/guicast/bcdisplay.C +++ b/cinelerra-5.1/guicast/bcdisplay.C @@ -122,38 +122,27 @@ void BC_Display::dump_windows() void BC_Display::new_window(BC_WindowBase *window) { -//printf("BC_Display::new_window %d\n", __LINE__); - if(!clipboard) - { + if( !clipboard ) { clipboard = new BC_Clipboard(window); clipboard->start_clipboard(); } -//printf("BC_Display::new_window %d\n", __LINE__); windows.append(window); // dump_windows(); -//printf("BC_Display::new_window %d\n", __LINE__); } void BC_Display::delete_window(BC_WindowBase *window) { -//printf("BC_Display::delete_window %d\n", __LINE__); windows.remove(window); -//printf("BC_Display::delete_window %d\n", __LINE__); } // If the event happened in any subwindow int BC_Display::is_event_win(XEvent *event, BC_WindowBase *window) { Window event_win = event->xany.window; -//printf("BC_Display::is_event_win %d\n", __LINE__); if(event_win == 0 || window->win == event_win) return 1; -//printf("BC_Display::is_event_win %d\n", __LINE__); - for(int i = 0; i < window->subwindows->size(); i++) - { - if(is_event_win(event, window->subwindows->get(i))) - { -//printf("BC_Display::is_event_win %d\n", __LINE__); + for(int i = 0; i < window->subwindows->size(); i++) { + if(is_event_win(event, window->subwindows->get(i))) { return 1; } } @@ -174,79 +163,55 @@ int BC_Display::is_event_win(XEvent *event, BC_WindowBase *window) void BC_Display::loop() { - const int debug = 0; -if(debug) printf("BC_Display::loop %d\n", __LINE__); while(!done) { // If an event is waiting, process it now. -if(debug) printf("BC_Display::loop %d\n", __LINE__); if(get_event_count()) { -if(debug) printf("BC_Display::loop %d\n", __LINE__); handle_event(); -if(debug) printf("BC_Display::loop %d\n", __LINE__); } else // Otherwise, process all compressed events & get the next event. { -if(debug) printf("BC_Display::loop %d\n", __LINE__); lock_display("BC_Display::loop"); for(int i = 0; i < windows.size(); i++) { BC_WindowBase *window = windows.get(i); -if(debug) printf("BC_Display::loop %d %d %d %d\n", -__LINE__, -window->resize_events, -window->motion_events, -window->translation_events); +// printf("BC_Display::loop %d %d %d %d\n", __LINE__, +// window->resize_events, window->motion_events, window->translation_events); if(window->resize_events) window->dispatch_resize_event(window->last_resize_w, window->last_resize_h); if(window->motion_events) window->dispatch_motion_event(); -if(debug) printf("BC_Display::loop %d\n", __LINE__); if(window->translation_events) window->dispatch_translation_event(); } -if(debug) printf("BC_Display::loop %d\n", __LINE__); unlock_display(); -if(debug) printf("BC_Display::loop %d\n", __LINE__); handle_event(); -if(debug) printf("BC_Display::loop %d\n", __LINE__); } } -if(debug) printf("BC_Display::loop %d\n", __LINE__); } void BC_Display::handle_event() { -const int debug = 0; XEvent *event = get_event(); -if(debug) printf("BC_Display::handle_event %d type=%d\n", -__LINE__, -event->type); +// printf("BC_Display::handle_event %d type=%d\n", __LINE__, event->type); lock_display("BC_Display::handle_event"); -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); for(int i = 0; i < windows.size(); i++) { // Test if event was inside window -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); BC_WindowBase *window = windows.get(i); -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); if(is_event_win(event, window)) // Dispatch event window->dispatch_event(event); -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); } -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); unlock_display(); -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); delete event; -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); } // Get pending events for the given window @@ -274,13 +239,9 @@ int BC_Display::get_event_count() XEvent* BC_Display::get_event() { XEvent *result = 0; - while(!done && !result) - { -//printf("BC_Display::get_event %d\n", __LINE__); + while(!done && !result) { event_condition->lock("BC_WindowBase::get_event"); -//printf("BC_Display::get_event %d\n", __LINE__); event_lock->lock("BC_WindowBase::get_event"); -//printf("BC_Display::get_event %d\n", __LINE__); if(common_events.total && !done) {