前回 GtkPan って何だよ GtkGesturePan だろ。
まあいいか、自戒を込めてそのままのタイトルにしておこう。
ところで、ウソを書いてごめんなチャイ。
ダブルクリック検出は n_press パラメータで判別できました。
あの時は何をやっても 1 だったんだけど、実験コードを間違えていただけっぽい。
#!/usr/bin/env python3 import gi, sys gi.require_version('Gtk', '4.0') from gi.repository import Gtk class Win(Gtk.ApplicationWindow): ''' Double Click is Destroy ''' def __init__(self, app): Gtk.ApplicationWindow.__init__(self, application=app) # Mouse Button Press ges = Gtk.GestureClick() #ges.set_button(0) # zero is All Mouse Button ges.connect('released', self.on_gesture_click_released) self.add_controller(ges) # resize self.set_default_size(400, 300) # activate self.present() def on_gesture_click_released(self, ges, n_press, x, y): print(n_press) if n_press == 2: self.close() else: print(x) print(y) class App(Gtk.Application): def __init__(self): Gtk.Application.__init__(self) def do_startup(self): Gtk.Application.do_startup(self) Win(self) def do_activate(self): pass app = App() app.run(sys.argv)
button プロパティでどのボタンを使うか選択、デフォルトは 1 なのか。
ゼロをセットでどのボタンにも反応する、なるほど。
いやそれはいいんだ。
HANDLES_COMMAND_LINE 指定で activate が発行されないまんまじゃないか!
GtkApplication は GTK3 と何も変わっていないってどうよ。
いやまあ、コイツは GLib::GApplication のサブクラスだし。
GLib 側がどうにかしてくれないとこのまんまってことだろう。
連休でイケると思ったけど全然進まなかった、今月中には。。。。。