[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