GNOME Bugzilla – Bug 152529
Empty status bar is smaller by 1 pixel with no hinting
Last modified: 2004-12-22 21:47:04 UTC
When there is no text in the status bar, it is smaller by 1 pixel than when there is text in it. This creates weird effects when your mouse pointer hovers on http links in a feed post : the status bar resizes every time, and with it the side pane and main post window.
Created attachment 31533 [details] Screenshot showing the difference between an empty and non-empty status bar
Hmm .. is Blam the only application you see this in? I'm only using the standard status bar. I've also never seen this myself.
Maybe Blam is just making the behavior obvious... I'm trying right now with evolution, and the status bar size does not change when I'm hovering over links. I thought it was maybe due to the theme I was using, but it does the same thing with all themes (even Simple). I'll try to see if I can replicate this with other apps.
A fun side-effect : when I hover over a link, the "active post" area becomes smaller, and when I hover out of a link, the active post scrolls up 1 pixel. If I continuously move the mouse on and off a link, the active post scrolls up. Quite entertaining for a while :)
I just found another application where I get the same behavior : in the new gnome-volume-control (cvs HEAD). When I hover on the small speakers, the status bar gets bigger by 1 pixel.
Hmm .. this is really weird. I've never seen anything like this. What GTK+ are you using?
I've just rebuild gtk+ from cvs HEAD and the bug still happens...
That's not what I asked, what version did you have before? Did you have 2.2, 2.4 or HEAD? If you where using HEAD then please try it with GTK+ 2.4 since that's what supported.
Yes I was using HEAD. I'm going to try with 2.4.10 and I'll let you know.
Same thing with 2.4.10. Maybe something is wrong with my X11 or freetype config... If you have any suggestion please let me know. Thanks for the help !
Hmm .. no actually I have no idea :) The problem seems to be that before you have any text in there it calculates the wrong height by one pixel. What Pango are you using and have you tried to downgrade it as well? I'm using Pango 1.4.1 with GTK+ 2.4.10.
Yeah I've tried downgrading pango... With the combo you use (pango 1.4.1 / gtk+ 2.4.10), I still see the bug. However, I'm pretty sure I only saw the bug appear recently... So it must come from a new version of something. I'm investigating ;-)
OK, thanks!
Ok. I found where the issue lies. This bug only appears if you use the option "no hinting" in the font preferences panel (font preferences/details). When you use any kind of hinting (slight/strong/whatever), the status bar behaves normally. I'm going to experiment with gtk+/pango to see if that bug was introduced recently.
I'm re-assigning to pango since that must be where the problem is. And changing the title.
Not sure that this isn't a GTK+ bug ... for the status bar to use GtkLabel requests means that it size *inevitably* depends on the text ... try putting text in different scripts into the status bar and it will likely be much more obvious.
Of course, the size of the status bar should depend on the size of the chosen font... But the status bar should not change size wether there is text or no text inside. Just for the record, the bug is triggered for me with any font with no hinting. It does not appear for some font sizes (e.g. at 16 pixels the bug disappears) but for all the other sizes, the size difference between a full status bar and an empty one is always 1 pixel.
What I mean is that if you enter multilingual text, then Pango/GtkLabel will select different fonts that can't be predicted in advance for the text in the status bar, so the status bar will change size. GtkEntry, by comparison picks a fixed size based on the current language (same as the size of the empty line, as it happens)
Ok, I understand your comments now. However, my desktop locale is en_US, so there's no multilingual text involved whatsoever.
Removing myself since the problem doesn't seem to be in Blam.
Fixed in CVS: Wed Sep 22 16:15:40 2004 Owen Taylor <otaylor@redhat.com> * pango/pangoxft-font.c (pango_xft_font_get_glyph_extents): Use get_glyph_extents_raw() when hinting is disabled as well as when we are transforming. (#152529, Vincent Noel) (I'm going to ignore possible GtkStatusBar improvements with respect to multilingual text and wait until someone complains)