[rkward-cvs] rkward/rkward/rbackend rembedinternal.cpp,1.11,1.12 rembedinternal.h,1.6,1.7 rthread.cpp,1.11,1.12

Thomas Friedrichsmeier tfry at users.sourceforge.net
Wed Apr 20 17:15:09 UTC 2005


Update of /cvsroot/rkward/rkward/rkward/rbackend
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24726/rkward/rbackend

Modified Files:
	rembedinternal.cpp rembedinternal.h rthread.cpp 
Log Message:
Make R x11 windows handle their events

Index: rembedinternal.h
===================================================================
RCS file: /cvsroot/rkward/rkward/rkward/rbackend/rembedinternal.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** rembedinternal.h	15 Apr 2005 14:15:30 -0000	1.6
--- rembedinternal.h	20 Apr 2005 17:15:07 -0000	1.7
***************
*** 43,46 ****
--- 43,47 ----
  // these will need QStrings and stuff and hence are handled in REmbed
  	virtual void handleSubstackCall (char **call, int call_length) = 0;
+ 	static void processEvents ();
  	//virtual char **handleGetValueCall (char **call, int call_length, int *reply_length) = 0;
  

Index: rthread.cpp
===================================================================
RCS file: /cvsroot/rkward/rkward/rkward/rbackend/rthread.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** rthread.cpp	19 Sep 2004 17:33:19 -0000	1.11
--- rthread.cpp	20 Apr 2005 17:15:07 -0000	1.12
***************
*** 55,58 ****
--- 55,59 ----
  	while (1) {
  		MUTEX_LOCK;
+ 		embeddedR->processEvents ();
  
  		if (previously_idle) {

Index: rembedinternal.cpp
===================================================================
RCS file: /cvsroot/rkward/rkward/rkward/rbackend/rembedinternal.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** rembedinternal.cpp	15 Apr 2005 13:23:13 -0000	1.11
--- rembedinternal.cpp	20 Apr 2005 17:15:07 -0000	1.12
***************
*** 25,28 ****
--- 25,29 ----
  
  #include "R_ext/Rdynload.h"
+ #include "R_ext/eventloop.h"
  #include "R.h"
  #include "Rinternals.h"
***************
*** 47,50 ****
--- 48,62 ----
  }
  
+ void REmbedInternal::processEvents () {
+ 	extern InputHandler *R_InputHandlers;
+ 	InputHandler *handler = R_InputHandlers;
+ 	while (handler) {
+ 		if (handler->activity == XActivity) {
+ 			handler->handler ((void*) 0);
+ 		}
+ 		handler = handler->next;
+ 	}
+ }
+ 
  char **extractStrings (SEXP from_exp, int *count) {
  	char **strings = 0;





More information about the rkward-tracker mailing list