Segoe UI Font

Version: 5.2.4 - build 1006

I installed Servoy Developer on a Windows 7 laptop computer that has a full HD display. Now, all the ‘default’ text for fields and labels in the forms we developed display in Segoe UI 15-point font, instead of the Tahoma 11-point font. I don’t mind the font style substitution (see reference below), but the font size change is too large such that the text no longer fits the labels and fields. Does anyone know why/where this size change was introduced, and how I can change it (I know I can implement a LAF style but would rather change the default setting).

Note: It appears that the Eclipse environment text is also being displayed in the Segoe UI font.

Reference: Segoe - Wikipedia

Thanks!

from servoy 5.2.3 on, on new clients that you install (existing clients will have there existing settings) you will get by default the system preferred font
So what the system look and feel is telling us we will use, so that the smart client will look like a native app

Under Vista/Win7 the Seqoe UI font is the default, but the real default is 12 point… And that is also what i get on my system…
But i guess on the system of yours you have it configured to show 120% ? (or 150) “Control Panel\All Control Panel Items\Display” in your file explorer
Then the font is correct and that should be the one you want or get…

By the way it is really horrible that they still do this in show everything 100%, 120% of 150% and then just take a different font point size…
Everything should be scalable and completely depending on the dpi setting of your actual screen…
And then users should be able to tweak that (the whole ui not just the texts so also the buttons…) i my self am just on 100% in a 17" 1920x1200 screen, it can’t be small enough…

edit: some reading material: http://www.pushing-pixels.org/?p=379

jcompagner:
from servoy 5.2.3 on, on new clients that you install (existing clients will have there existing settings) you will get by default the system preferred font

Johan, does that mean, that new clients don’t get the default font, which is set in the servoy.properties file??

which servoy.properties file? The one on the server?
That never worked, we never pushed the “font” to the client

What we did was if the client was first loaded and then the default Tahoma 11 was set for everything.
and that we stored from then on as the default

Now we look what the system look and feel menu font is (thats they one they set to Seqou 12 in Vista/Win7 or Tahoma 11 on XP) and set that for everything…
And we also don’t store that information then hard, so if a user changes its system font servoy should follow that.

Also trying to push a font to a client is not a good idea, that client maybe doesn’t know that font at all and then strange things can happen, because you really need a known font
and that font also needs to have fallbacks… for example Tahoma can’t display Japanese then it has to fallback to a different font, currently servoy makes sure that all fonts have fallbacks.

oke, we define the font for every label and field, etc… in our css, so that should’nt be an issue than, right?

no this is about menu, title fonts and all default fonts of the system when there is no font specified.

good thing is that since servoy 5.2.3 fonts that you specify in the designer will have fallback fonts now also, so even if the font you specify doesnt support Japanese it will work now.

Johan,

Thanks for the explanation and the link.

We have two Windows 7 computers with full HD dipslays in our office. One computer display is set to:

100% (default)

while the other is set to:

125% (default)

I still have no idea why the laptop computer’s display was set to 125% as the default…I did not make this setting change (it’s a new computer and probably has something to do with the screen physical size and pixel density). However, changing the setting to 100% renders the Servoy forms correctly.

So, as Harjo suggested, the only way to ensure proper sizing is through LAF. Otherwise, we are at the mercy of the end-user’s decision to arbitarily enlarge the WIndows default system font size (which not only affects the system and menus, but Servoy form objects as well - as in my case).

It would really be neat if Servoy automatically scaled up the forms to match the user’s size change. I know…I am asking too much!

Is there any way to specify a font for use on popup menus? After this change in 5.2.3, our popup menus (from the window plugin) all use the system font. Ideally it would be great to apply a style to the individual menu items, but I’d settle for just being able to manually set the font at all.

jcompagner:
no this is about menu, title fonts and all default fonts of the system when there is no font specified.

good thing is that since servoy 5.2.3 fonts that you specify in the designer will have fallback fonts now also, so even if the font you specify doesnt support Japanese it will work now.

This is a very big change for those of us who have put in unbelievable amounts of time into making our solutions look consistent across all platforms. You’ve changed the rules on how fonts are handled in a bunch of places we have no control over. This has messed us up big time because we’ve designed against Tahoma 11 since forever. All of our solutions look like garbage now.

Letting the client control anything L&F related is just crazy (oh how I hate skinnable apps approach – only Java uses this anachronism still at such a basic level). Opens up all kinds of UI issues, there is no such thing as making a solution look like each platform in Java because Java default basically looks like crap (read: 1999) on each platform, and the stuff you have to do with spacing to accommodate each platform makes it a mind-numbing proposition to begin with. Java is not currently up to the task of handling a modern UI and hasn’t been for some time.

Unless you give us control over specifying fonts from the server (design time, configurations, and programmatically) for every UI component that has a “default” font we are in trouble here.

I am wondering (i. e. pulling my hair out of …) that such a change with widespread consequences are just introduced by the way. It reminds me when you changed the ordering of events (some time ago) and our whole application broke down (by the way still not happy with the ordering). These are definitely not funny moments. Why not announce them and get some feedback from the developers first?

It also reminds me that I really would like to get a diagram in my hand showing the design of events ordering under various combinations.

Regards,

jcompagner:
from servoy 5.2.3 on, on new clients that you install (existing clients will have there existing settings) you will get by default the system preferred font
So what the system look and feel is telling us we will use, so that the smart client will look like a native app

Under Vista/Win7 the Seqoe UI font is the default, but the real default is 12 point… And that is also what i get on my system…
But i guess on the system of yours you have it configured to show 120% ? (or 150) “Control Panel\All Control Panel Items\Display” in your file explorer
Then the font is correct and that should be the one you want or get…

By the way it is really horrible that they still do this in show everything 100%, 120% of 150% and then just take a different font point size…
Everything should be scalable and completely depending on the dpi setting of your actual screen…
And then users should be able to tweak that (the whole ui not just the texts so also the buttons…) i my self am just on 100% in a 17" 1920x1200 screen, it can’t be small enough…

edit: some reading material: http://www.pushing-pixels.org/?p=379

On windows XP they all used system fonts (which Tahoma 11 was), in this way nothing is changed.
What we did was kind of bad, that we set hard Tahoma 11 and store it directly in the preference, we don’t follow the rules that the user/os set for us.
I guess the bad looking fonts are now because a user has there display setting in more then 100%? Because if that is not the case then there shouldnt be to much of a difference looking at the size…
Also for existing clients nothing changed because they all use the stored fonts.

Problem is that we had to change it because the Tahoma font we set can’t display any chars from Japan or Chinese, we needed to change it because we have customers that want to target both and on windows they couldnt display anything

Also that we set Tahoma didnt have any effect on the mac or Linux (where they don’t know these fonts) so there they use there own system fonts anyway.

So the only thing that changed is new clients on Windows Vista and 7 that now will use the system font (Segoe UI 12 when display/scalling setting is set to 100% else something bigger but the user wants that, all its windows are like that)

On mac clients its also consistent with the look and feel of the os, so why don’t we want that for vista/7 ??

What we could do is somewhere (don’t know which entry point would be good for that i guess application) setSystemFont(fontString) if that is really needed.
But i still think this is really a user choice… For example our own Servoy apps i now use Seqoe and it is looking way better for me, don’t see any problems with none fitting stuff.

For the window/menu plugin a case can be made to also have a font option, that doesn’t sound to hard.

That java ui’s look crap is because of the font not following system rules, please read this: http://www.pushing-pixels.org/?p=379 there it is explained.
we now follow as much as possible what is said there (and java 6 has since u10 good font rendering as they explained there)

Besides that for all our Servoy components you can set fonts through the properties or css, so the only font that is really changed, that can’t be changed through solution code, are the menu’s (including window/popup menu plugin)

I agree with you david about the skinnable/pluggable look and feels, that is something that shouldnt really be done (only in very special apps with very special ui’s), what should be done is using the system look and feel as much as possible.
But problem is then the be consistent in the ui over multiply platforms, that’s why java has Metal/Nimbus that are designed too look consistent over the different OS’s. But that doesn’t really work if you ask me.
So that’s why i say, use system look and feel as much as possible.

jcompagner:
Besides that for all our Servoy components you can set fonts through the properties or css, so the only font that is really changed, that can’t be changed through solution code, are the menu’s (including window/popup menu plugin)

Sure you can. Use HTML in your menuitems. Or did this change as well ?

ROCLASI:

jcompagner:
Besides that for all our Servoy components you can set fonts through the properties or css, so the only font that is really changed, that can’t be changed through solution code, are the menu’s (including window/popup menu plugin)

Sure you can. Use HTML in your menuitems. Or did this change as well ?

In html you can control it yourself.
I currently don’t know where the html renderer maps on if you dont specify the font in html/css you give it. So what the default is, it could be a default system font setting (of the label), or a font that html specifies as default.

There are so many more issues with fonts than just fixing Chinese and Japanese. So if you’re going to go down this route you’ve got to cover all the dependencies that were changed as a result.

I think the biggest issue that didn’t get well thought out is that beans and plugins are highly dependent on user system font defaults – it’s not just title bar and menus that is affected by this change! Now that you’ve switched this to user system font default beans are all over the place with font handling – some legacy issues, some new issues.

We have a good 10+ hours into this the past couple of days and here’s what we’ve come up with:

  1. Style sheets can’t be applied to beans. Legacy issue that could have used improvement a long time ago in my opinion.
  2. Some beans don’t even have a design-time font property exposed much less allow you to change programmatically.
  3. Tree view bean can’t change font programmatically (bug report filed). So no way for us to match it up to our style sheet fonts for a particular operating system (and user setting which we can discover). But fixing #1 would even be better.
  4. Popup menu plugin can’t set the font at design time or as a preference or functionally. Can only set font with html per individual menu item.
    4.1) You cannot set font size with html to popup menu items, you can only adjust relatively (+1, +2, -3, etc). So setting a font size in the popup menu plugin to match your solution is hacky as hell: figure out the user’s system font/size setting, compare to what size you need it to be, apply relative font size adjustment to every popup menu item in your entire solution individually, and hope you’re close.
    4.bonus) While we’re only popup menu issues, assigning tooltips to popup menu items broke at some early version of Servoy 5.

I wouldn’t mind this switch (and I see why it could eventually be an improvement) if it didn’t mess with fonts inside of a solution window – which I think is what you were assuming would be the extent of the change. But beans and plugins are clearly affected by this switch and they don’t have anywhere near enough font functionality in place to allow us to match fonts up within a Servoy solution.

As an example, here’s a screen with one tree view bean and 10 popup menus. That’s a lot of mismatched fonts (can only show one popup menu at a time but they are all over the screen!):

[attachment=2]Picture 7.png[/attachment]

Previously it looked like this:

[attachment=1]Picture 11.png[/attachment]

Our usage of the popup menu plugin is extensive. Inserting a page link:

[attachment=0]Picture 12.png[/attachment]

So wrapping each menu item in html for our entire solution for dubious results based on whatever the user’s system font is is not an option. Our only choice is to dial things back to 5.1.4 until all this can be sorted out. And I’m with Robert Huber on this: was very surprised by such a big change on a minor point release. We could really use a bunch of the bug fixes and features added in 5.2.x and this one change knocks us out of the 5.2.x branch entirely.

is what i see there really Segoe UI font 12??

Or is that a windows machine that has scaling set to more then 100%?

I cant believe that for example the file menu that i see in your first picture compared to the file menu i see in your second picture is Segoe UI 12 against Tahoma 11

Thats more like Segoe UI 15 compared to Tahoma 11

What does other menu items of other programs look like on that system?

Servoy Developer on Mac 10.5.8. So Lucida Grande is the system font I’m pretty sure.

Mac finder, Servoy developer smart client menu and popup plugin all with same font now:

[attachment=0]Picture 13.png[/attachment]

We are seeing the same thing here on MAC,

you can set things back, but you only can do this in this window:[attachment=1]Schermafbeelding 2010-12-16 om 08.56.52.png[/attachment]

and the popupmenu’s are looking like this again:[attachment=0]Schermafbeelding 2010-12-16 om 08.56.37.png[/attachment]

Johan, could you give us a setting, so that we can script this?? application.setDefaultSystemFont(…) ??

I agree with David, that better CSS styling (for beans & plugins) would be the ultimate!

But tahoma is a windows font, on which font did it map then for osx?
So currently what you have now is exactly what people also see in all other apps on osx?
Weird thing is that if servoy did change the font for the mac to something that is not the default when setting Tahomo,11 (thats really a windows XP font) then osx does map that on something and that something could also display japanese chars.
That we did set it in the first place was just a bug… We shouldnt have set Tahoma on the mac, Servoy shouldnt dictate fonts over different os.
That we did set it was purely because Kunstoff look and feel, displayed fonts in bold… thats the only reason back then.

What does the preferences say now (or previously) when you open the look and feel preference panel in the client?

I attached a picture of my setup, left is Segoe right is Tahoma, you see there is a little bit difference, the Seqoe is just a bit sharper,darker and a little bit bigger (but you only see that when you are really comparing)

So the thing is here that it is really a mac thing, mac has much bigger default system fonts
When you show a popup on the mac for example in the browser, what font do you get then?

I am currently getting the feeling that this is caused because we do set all the different fonts settings to the same font (the same font that you are selecting for example in the dialog)
But the thing is that we take there by default the menu font and use that for setting that as default for everything (so the be consistent what we did before if you do select a font in the look and feel font dialog preference panel)
Problem is that there is not really 1 system font… There is one system font per thing…

Can you run this tester that i created on your mac and see what the output is?

For example on Win7 there is a total of 3 fonts, there are some that are Seqou UI 12, some are some using Tahoma and there is also one that used monospaced (textarea)

testlookandfeel.jar (6.43 KB)