こんにちは。
以下の codeで button 1 以外 (2か 3)で clickしまくったり text widget上を
drag (clickしたまま、動かすだけ)しまくると core dumpします。
やっとここまで小さくしたんですけど、行きづまってしまいました。
あ、あと、popup menuには、[ruby-ext: 00596]に加えて下の patchが必要だと
思います。
--
yashi
require 'gtk'
popup = Gtk::Menu.new
popup.show
popup.signal_connect('enter-notify-event') do end
t = Gtk::Text.new
t.signal_connect('button-press-event') do
popup.popup(nil, nil, nil, 1, 1)
end
w = Gtk::Window.new
w.add(t).show_all
Gtk::main
--- rbgtkcontainer.c 1999/11/29 13:57:57 1.1.1.2
+++ rbgtkcontainer.c 1999/11/29 22:50:17
@@ -499,6 +499,8 @@
menu_popup(self, pshell, pitem, func, button, activate_time)
VALUE self, pshell, pitem, func, button, activate_time;
{
+ GtkWidget *gpshell = NULL;
+ GtkWidget *gpitem = NULL;
GtkMenuPositionFunc pfunc = NULL;
gpointer data = NULL;
@@ -507,8 +509,15 @@
data = (gpointer)func;
add_relative(self, func);
}
+ if (!NIL_P(pshell)){
+ gpshell = get_widget(pshell);
+ }
+ if (!NIL_P(pitem)) {
+ gpitem = get_widget(pitem);
+ }
+
gtk_menu_popup(GTK_MENU(get_widget(self)),
- get_widget(pshell), get_widget(pitem),
+ gpshell, gpitem,
pfunc,
data,
NUM2INT(button),