module Gtk

Constants

GTK_PENDING_BLOCKS
GTK_PENDING_BLOCKS_LOCK

Public Class Methods

main_with_queue(timeout) click to toggle source
# File lib/dr/tools/gtk.rb, line 21
def Gtk.main_with_queue timeout
  Gtk.timeout_add timeout do
    GTK_PENDING_BLOCKS_LOCK.synchronize do
      for block in GTK_PENDING_BLOCKS
        block.call
      end
      GTK_PENDING_BLOCKS.clear
    end
    true
  end
  Gtk.main
end
queue(&block) click to toggle source
# File lib/dr/tools/gtk.rb, line 11
def Gtk.queue &block
  if Thread.current == Thread.main
    block.call
  else
    GTK_PENDING_BLOCKS_LOCK.synchronize do
      GTK_PENDING_BLOCKS << block
    end
  end
end