前回 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 側がどうにかしてくれないとこのまんまってことだろう。
連休でイケると思ったけど全然進まなかった、今月中には。。。。。