From: <miy...@mt...> - 2005-11-02 12:07:41
|
みやむこです。 > メールの一番下にあるようなスクリプトを実行し,左クリックを2 > 回,右クリックを2回すると,以下のように右クリックのpress > event が飛んでこないそうです. これはマウ筋 (http://www.piro.cc/) というマウスジェスチャーで任意の コマンドを実行するツールを動かしていた場合の挙動です。 マウ筋なしだと普通に動きます。 環境は以下の通りです。 - マウ筋 1.23 - gtk-win32-devel-2.8.6-rc3.exe - ruby-gtk2-0.14.0-1-i386-msvcrt-1.8.zip - ruby182-15.exe > ちなみに,同じ環境でWinアプリ/Java(Swing)で試すときちんと > press/releaseが呼ばれていたそうです. 以下のように gtk2 だけで書くと press と release が交互に呼ばれて いました。 -- #include <gtk/gtk.h> #include <stdlib.h> void on_press(GtkWidget *widget, GdkEventButton *event, gpointer data) { g_print("press %d\n", event->button); } void on_release(GtkWidget *widget, GdkEventButton *event, gpointer data) { g_print("release %d\n", event->button); } int main(int argc, char* argv[]) { gtk_set_locale(); gtk_init(&argc, &argv); GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); GtkWidget* button = gtk_button_new_with_label("hello"); g_signal_connect(G_OBJECT (window), "delete-event", G_CALLBACK (gtk_main_quit), NULL); g_signal_connect(GTK_OBJECT(button), "button_press_event", GTK_SIGNAL_FUNC(on_press), NULL); g_signal_connect(GTK_OBJECT(button), "button_release_event", GTK_SIGNAL_FUNC(on_release), NULL); gtk_container_add(GTK_CONTAINER(window), button); gtk_widget_show_all(window); gtk_main(); return 0; } |