summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-12 16:51:12 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-12 16:51:12 +0000
commit283826f751e9447485bd322ea108daf8b9b824d4 (patch)
treeabd011b214dbaf449724307021049a44eb91a99d /ext
parentbbcd6dfc96c0273f4bf83e89286eed03ccd2b045 (diff)
* ext/tk/tcltklib.c: [trial patch] On some environments, it gives
better responce about callbacks across threads. But on the other environments, it has no effect. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r--ext/tk/sample/demos-en/msgbox2.rb4
-rw-r--r--ext/tk/sample/demos-jp/msgbox2.rb4
-rw-r--r--ext/tk/tcltklib.c10
3 files changed, 12 insertions, 6 deletions
diff --git a/ext/tk/sample/demos-en/msgbox2.rb b/ext/tk/sample/demos-en/msgbox2.rb
index 6fe6c778b3..136a723c73 100644
--- a/ext/tk/sample/demos-en/msgbox2.rb
+++ b/ext/tk/sample/demos-en/msgbox2.rb
@@ -42,7 +42,7 @@ TkFrame.new(base_frame) {|frame|
TkButton.new(frame) {
text 'Message Box'
- command proc{showMessageBox $msgbox2_demo}
+ command proc{showMessageBox2 $msgbox2_demo}
}.pack('side'=>'left', 'expand'=>'yes')
}.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m')
@@ -79,7 +79,7 @@ $msgboxType = TkVariable.new('ok')
'anchor'=>'w', 'fill'=>'x')
}
-def showMessageBox(w)
+def showMessageBox2(w)
button = Tk.messageBox('icon'=>$msgboxIcon.value, 'type'=>$msgboxType.value,
'title'=>'Message', 'parent'=>w,
'message'=>"\"#{$msgboxType.value}\" Type MessageBox",
diff --git a/ext/tk/sample/demos-jp/msgbox2.rb b/ext/tk/sample/demos-jp/msgbox2.rb
index d61f25129a..e2944c59ed 100644
--- a/ext/tk/sample/demos-jp/msgbox2.rb
+++ b/ext/tk/sample/demos-jp/msgbox2.rb
@@ -41,7 +41,7 @@ TkFrame.new(base_frame) {|frame|
TkButton.new(frame) {
text 'メッセージボックス'
- command proc{showMessageBox $msgbox2_demo}
+ command proc{showMessageBox2 $msgbox2_demo}
}.pack('side'=>'left', 'expand'=>'yes')
}.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m')
@@ -78,7 +78,7 @@ $msgboxType = TkVariable.new('ok')
'anchor'=>'w', 'fill'=>'x')
}
-def showMessageBox(w)
+def showMessageBox2(w)
button = Tk.messageBox('icon'=>$msgboxIcon.value, 'type'=>$msgboxType.value,
'title'=>'Message', 'parent'=>w,
'message'=>"\"#{$msgboxType.value}\"タイプのメッセージボックス",
diff --git a/ext/tk/tcltklib.c b/ext/tk/tcltklib.c
index e337894f4f..0297b175cd 100644
--- a/ext/tk/tcltklib.c
+++ b/ext/tk/tcltklib.c
@@ -4,7 +4,7 @@
* Oct. 24, 1997 Y. Matsumoto
*/
-#define TCLTKLIB_RELEASE_DATE "2008-06-11"
+#define TCLTKLIB_RELEASE_DATE "2008-06-12"
#include "ruby.h"
@@ -116,7 +116,7 @@ fprintf(stderr, ARG1, ARG2, ARG3); fprintf(stderr, "\n"); fflush(stderr); }
*/
/* release date */
-const const char tcltklib_release_date[] = TCLTKLIB_RELEASE_DATE;
+static const char tcltklib_release_date[] = TCLTKLIB_RELEASE_DATE;
/* finalize_proc_name */
static char *finalize_hook_name = "INTERP_FINALIZE_HOOK";
@@ -424,9 +424,15 @@ Tcl_Interp *current_interp;
: USE_TOGGLE_WINDOW_MODE_FOR_IDLE 0
: DO_THREAD_SCHEDULE_AT_CALLBACK_DONE 0
*/
+#ifdef RUBY_USE_NATIVE_THREAD
+#define CONTROL_BY_STATUS_OF_RB_THREAD_WAITING_FOR_VALUE 1
+#define USE_TOGGLE_WINDOW_MODE_FOR_IDLE 0
+#define DO_THREAD_SCHEDULE_AT_CALLBACK_DONE 1
+#else /* ! RUBY_USE_NATIVE_THREAD */
#define CONTROL_BY_STATUS_OF_RB_THREAD_WAITING_FOR_VALUE 1
#define USE_TOGGLE_WINDOW_MODE_FOR_IDLE 0
#define DO_THREAD_SCHEDULE_AT_CALLBACK_DONE 0
+#endif
#if CONTROL_BY_STATUS_OF_RB_THREAD_WAITING_FOR_VALUE
static int have_rb_thread_waiting_for_value = 0;