http://bugs.cinelerra.org/show_bug.cgi?id=406





------- Comment #38 from [EMAIL PROTECTED]  2008-06-15 15:14 +2 -------
I have a solution to this problem but I can not recommend it as it uses a
routine which is intended for X windows internal use only.

The following is the results of an svn di command on my sources:

Index: guicast/bcclipboard.C
===================================================================
--- guicast/bcclipboard.C       (revision 1058)
+++ guicast/bcclipboard.C       (working copy)
@@ -1,5 +1,6 @@
 #include "bcclipboard.h"
 #include "bcwindowbase.h"
+#include <X11/Xlibint.h>
 #include <string.h>

 BC_Clipboard::BC_Clipboard(char *display_name) : Thread()
@@ -60,7 +61,8 @@
        ptr->message_type = completion_atom;
        ptr->format = 32;
        XSendEvent(out_display, out_win, 0, 0, &event);
-       XFlush(out_display);
+       _XSend(out_display, 0, 0);
+/*     XFlush(out_display);*/
        Thread::join();
        return 0;
 }


which shows the changes I made to the file guicast/bcclipboard.C. As you can
see these comprise the inclusion of the header file Xlibint.h and the
replacement of the XFlush call with an _XSend call.

The call to _XSend is the same as that used in the first part of
XFlush(_XFlush)
however that function goes on to do a call to _XEventsQueued. The only reason I
can think of is that it is attempting to flush it's input buffer but as the
documentation I have for XFlush says that it only flushes the output buffer
I don't understand why, perhaps someone could enlighten me. I believe that
when cinelerra makes the call to XFlush it only wants to flush it's output
buffers causing another thread to terminate normally which allows the join
which follow the flush to complete normally see my earlier comments on this
bug.

I submit this fix as it seem to work and in the hope that someone who knows
cinelerra and the X interface better than I can come up with a legitimate fix
to the bug. I have tried several X interface function calls including XPending
and XCheckIfEvent without success.


-- 
Configure bugmail: http://bugs.cinelerra.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

_______________________________________________
Cinelerra mailing list
[email protected]
https://init.linpro.no/mailman/skolelinux.no/listinfo/cinelerra

Reply via email to