raduprv / Eternal-Lands

http://www.eternal-lands.com
Other
157 stars 57 forks source link

Chat font scale #136

Open gvissers opened 3 years ago

gvissers commented 3 years ago

Currently, the root windows don't use UI scaling. This has ramifications for the chat font on (presumably HiDPI) systems that use a UI scale factor, since the chat font size needs to be set higher than e.g. the GUI font size to achieve the same size on the screen. This is inconsistent. Also the chat font does not change when the UI scale factor is changed,. Furthermore, it has the effect that anything using the chat font (like e.g. text widgets) need to pass 1.0 as size parameter instead of the current window scale factor like any other widget would.

Should we change this behaviour? IMHO it would make the client interface as well as the code a bit more consistent. Current users who use interface scaling would have to adjust their chat font size after update, though.

pjbroad commented 3 years ago

Perhaps I misunderstand what you suggesting but the root windows do use the UI scaling. All fonts except the name and chat fonts are scaled by the Ui scale value too. The name and chat fonts are treated differently but I think it would only take changes in config.c to make them the same as the other fonts. We talked about doing this during the TTF work IIRC, but decided to keep them separate.

The are a few cases in the UI where elements are not scaled properly, like the border on the console window. I was looking at fixing this just prior to the p9 release but decided to wait as it was not a big issue. I've been meaning to finish that off though.

gvissers commented 3 years ago

Perhaps I misunderstand what you suggesting but the root windows do use the UI scaling.

You are of course correct. I was specifically referring to the chat text, which is the only thing there is to scale in the loading window and the console.

The name and chat fonts are treated differently but I think it would only take changes in config.c to make them the same as the other fonts. We talked about doing this during the TTF work IIRC, but decided to keep them separate.

I vaguely remember discussing this, and I also seem to recall I had made up some reason to not scale the chat text with the UI scale. I just can't for the life of me remember what it was. I'll do some searching later, but looking back, I doubt it was a good reason :disappointed:

Changing this would not require a change in config.c, I think, but rather in the place where the text widgets are created that use CHAT_FONT as their font category. These would not pass 1.0 as the size parameter to the widget constructor, but rather win->current_scale.

Doing this would also help to keep configurations the same between systems with different DPI values (apart from a single UI scale factor).

Of course this is not a big problem, but I ran into this when creating a popup dialog and finding out that my font was twice as big as I expected. And it also irks me that my chat font size is not in the same range as the GUI font size :smile:

pjbroad commented 3 years ago

Changing this would not require a change in config.c, I think, but rather in the place where the text widgets are created that use CHAT_FONT as their font category. These would not pass 1.0 as the size parameter to the widget constructor, but rather win->current_scale.

The Chat and Name fonts sizes are handled differently to others in elconfig so that would have to be removed. There may well be other places too. My concern is that this impacts High DPI mode which is hard to test without a mac.

gvissers commented 3 years ago

The Chat and Name fonts sizes are handled differently to others in elconfig so that would have to be removed. There may well be other places too. My concern is that this impacts High DPI mode which is hard to test without a mac.

Yeah, I see that. Let's hold off on this for now, and maybe revisit this after the next release.