Теперь я понимаю, что это происходит только в некоторых условиях.
Может быть проблема с настройкой оконного менеджера
Приведенный ниже пример drawarea-events.py работает следующим образом.
После входа мыши в окно DrawingArea мы получаем 1 сигнал отрисовки.
Покинув окно DrawingArea, мы получаем 13 сигналов отрисовки.
Зачем? зачем?
#!/usr/bin/env python3
import sys
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import Gdk
import cairo
def quit(*args):
sys.stderr.write('quit args=%s\n' % str(args))
Gtk.main_quit()
sys.exit(0)
draw_count = 0
def draw(da, cairo_ctx, *args):
global draw_count
sys.stderr.write('draw count=%d args=%s\n' % (draw_count, str(args)))
draw_count += 1
win = Gtk.Window(title="DrawingArea Events")
win.connect("destroy", quit, "via window destroy")
win.set_default_size(240, 160)
da = Gtk.DrawingArea()
da.connect('draw', draw, "dummy arg")
win.add(da)
win.show_all()
Gtk.main()