在红宝石中,我正试图获得终端的窗口大小。为此,我以下列方式使用Highline:
def get_size
(@cols, @rows) = HighLine::SystemExtensions.terminal_size
end
在一个主方法中,我在窗口上有一个陷阱变化如下:
Signal.trap('SIGWINCH') do
get_size
... do other work
end
我遇到的困难是我只想在窗口尺寸变化完成后“做其他工作”。如果我拖动并更改窗口大小,则会在所有移动中调用陷阱。是否有一个事件或信号我可以捕获窗口大小更改完成?或者我可以使用某种类型的编程方法来在窗口大小的拖动和更改完成后启动我的工作?