"button-press-event" , :
(gPodder) commit a09b204a.
:
"activate" ( , )"button-press-event" ( )- ( X-)
- , (
"activate" "button-press-event" )
1. 2. .
3. gobject.idle_add().
4. a threading.Semaphore.
:
import threading
import gobject
def submenu_item_connect_hack(menu_item, callback, *args_for_callback):
only_once = threading.Semaphore(1)
def handle_event(item, event=None):
if only_once.acquire(False):
gobject.idle_add(callback, *args_for_callback)
menu_item.connect('button-press-event', handle_event)
menu_item.connect('activate', handle_event)
: :
item.connect("activate", lambda w: self.callBackFunction())
item.connect("button-press-event", self.callBackFunction, argument1, argument2)
:
submenu_item_connect_hack(item, self.callBackFunction, argument1, argument2)
, 695488 GNOME Bugzilla.