<c7s>
does `BUG in enter(): assertion failed: 'seat->kbd_focus != NULL'` look like a compositor bug? or, in general, what things should I look into as far as reproducing this, since I've got no idea what I was doing when this happened
emersion has quit [Remote host closed the connection]
emersion has joined #foot
<dnkl>
c7s: really depends... may be either a compositor bug, or a bug in foot. Once you've figured out *why* seat->kbd_focus is NULL when you hit that assertion, it'll be easier to say whose fault it is
<dnkl>
(kbd_focus is the terminal instance that currently has the seat's keyboard focus. NULL means no terminal window is focused by that seat)
<Arnavion>
The enter() in ime.c ? If so the trigger might involve toggling / using your IME
<dnkl>
if that's the one, I think I've seen it as well. think I even asked about it in #wayland (can ime enter() fire before a keyboard enter event), but never got a reply
<dnkl>
might be possible to rewrite the ime logic to not depend on kbd_focus, and instead use an IME specific terminal instance pointer
<c7s>
it's the ime.c one, yeah
<c7s>
I forgot I actually had an ime running since I've still not figured out how to configure it, but it is there
<Arnavion>
So if you can get a reliable repro, then running foot with WAYLAND_DEBUG=1 will let you capture the wayland traffic and confirm if it's what dnkl said
<c7s>
yeah, not really much more to say until I can reproduce it
<c7s>
thanks
<Arnavion>
Which compositor and IME, BTW?
<c7s>
sway and fcitx6
<c7s>
5*
<Arnavion>
That does work fine for me, except that the preedit window doesn't show, which is a known thing
<Arnavion>
Err, not the preedit window, the suggestions window
<dnkl>
it (the assertion) doesn't trigger everytime
<dnkl>
(which kind of suggests it's not intentional, on the compositor side)
rcf has quit [Quit: WeeChat 3.4.1]
<dnkl>
Arnavion, c7s: so, the documentation does say the IME enter event follows the keyboard focus. That suggests we're seeing a compositor bug
<dnkl>
however, it also says "when the seat has the keyboard capability..."
<dnkl>
in other words, it's possible to recursive IME events on seats without the keyboard capability
<dnkl>
in which case kbd_focus will always be NULL
<dnkl>
I'm going to rewrite the logic to track IME focus independently. that should also workaround The compositor bug
<dnkl>
s/recursive/receive
ptrc has quit [Remote host closed the connection]
ptrc has joined #foot
<c7s>
so, it was probably NULL because of a compositor bug, but it turns out that's allowed anyway?
<dnkl>
c7s: correct, that's how I interpret the documentation
<c7s>
dnkl: ok, cool, thanks
rcf has joined #foot
rcf has quit [Client Quit]
rcf has joined #foot
rcf has quit [Client Quit]
rcf1 has joined #foot
rcf1 is now known as rcf
pranjhol has joined #foot
rapha has joined #foot
<rapha>
hi all
<rapha>
dnkl: if you say "zero" that doesn't sound like you'd be opposed to it, but like an underlying library is preventing it?
<dnkl>
rapha: no, it's not because of a dependency (or lack of it), but just that it adds too much complexity
<rapha>
dnkl: would it not be possible to branch off `if line.match /\p{Arabic}/` and then handle that line in a file called "rtl.ext", thereby keeping the rest of the code entirely unaffected?
<dnkl>
no, there's *much* more to it than that
<rapha>
there's things outside of the unit of a "line" affected by it?
<dnkl>
more like, there's no line to begin with. it's not how terminals work
<rapha>
oh
<rapha>
do you think in pixels then?
<dnkl>
no, but there's more to rtl in terminals than just reversing text on a line basis.