It’s something like this: when the layout is loaded some emulator data is read, so if the emulator has category Arcade, Console or Handheld the theme reacts accordingly and changes the way some parts of the UI are drawn. The problem is that when you change display, and the display layout is the same, the layout is not reloaded but only the list of games. Therefore everything that’s dynamically updated during tonewlist transition is updated, but the parts of the GUI that are set up during the layout startup are not changed.
I found a workaround: when a tonewlist transition is triggered and the display is not the same, the layout is reloaded. This is a bit slower but it works (i.e. 4.5 is going to be released before the end of the week.
Another option would be to make the whole ui drawing dynamic. It’s not impossible and would mean faster display changes, but it’s a lot of work and I’m not going to do it now (or 4.5 will be delayed, and we don’t want that)