diff --git a/bin/dimmer b/bin/dimmer index 5c5e14f..051bc0e 100755 --- a/bin/dimmer +++ b/bin/dimmer @@ -13,9 +13,15 @@ import cairo import argparse +def visibility_event(widget, event): + if event.state == Gdk.VisibilityState.FULLY_OBSCURED: + gtk.main_quit() + + def realize_event(widget): window = widget.get_window() window.set_override_redirect(True) + window.set_events(window.get_events() | Gdk.EventMask.VISIBILITY_NOTIFY_MASK) def draw_event(widget, event, options, elapsed): @@ -82,8 +88,9 @@ if __name__ == "__main__": window.move(geom.x, geom.y) window.connect("draw", draw_event, options, []) - window.connect("delete-event", Gtk.main_quit) window.connect("realize", realize_event) + window.connect("visibility-notify-event", visibility_event) + window.connect("delete-event", Gtk.main_quit) window.show_all()