Re: [code] Possible GTK init problem

From: Mitchell <>
Date: Wed, 19 Oct 2016 09:55:31 -0400 (EDT)

Hi Markus,

On Mon, 19 Sep 2016, Markus F.X.J. Oberhumer wrote:

> Hi Mitchell,
> On 2016-09-19 16:00, Mitchell wrote:
>> Hi Markus,
>> On Mon, 19 Sep 2016, Markus F.X.J. Oberhumer wrote:
>>> I'm hitting a problem in the INITIALIZED event caused by the fact
>>> that buffer.lines_on_screen is not set.
>>> It works correctly in the Curses version, but the GTK version
>>> always prints "lines_on_screen=0".
>>> This could be some sort of initialization problem in textadept.c.
>>> Any ideas?
>> GTK's event loop has not started and processed any pending draw events yet
>> when `events.INITIALIZED` has been fired. (Thus, the editor widget does not
>> know how big it is yet.)
> thanks for the explanation - that makes sense.
>> Try putting your code on a brief timeout with `timeout()`[1].
> Using timeout() will probably do the trick. Still, this is a little bit
> hacky, so would it be hard to add a proper GUI_INITIALIZED event ?

I've come up with a less-hacky method involving the `events.UPDATE_UI`
event for your `~/.textadept/init.lua`:

   local function gui_ready()
     if buffer.lines_on_screen > 0 then
       print('ready', buffer.lines_on_screen)
       events.disconnect(events.UPDATE_UI, gui_ready)
   events.connect(events.UPDATE_UI, gui_ready)

This will run until the first successful paint of a GUI buffer.


You are subscribed to
To change subscription settings, send an e-mail to
To unsubscribe, send an e-mail to
Received on Wed 19 Oct 2016 - 09:55:31 EDT

This archive was generated by hypermail 2.2.0 : Thu 20 Oct 2016 - 06:52:50 EDT