GNOME Bugzilla – Bug 157778
statusbar resize grip overdrawn when other widgets are packed in the statusbar
Last modified: 2004-12-22 21:47:04 UTC
This bug is in continuation of bug 73359 (which was mainly about the label in the statusbar, so I'm opening this bug instead of reopening the old one). The statusbar still has problems with drawing the resize grip, when other widgets (like a GtkProgressbar) are packed (pack_end) in the statusbar. I'm attaching a testcase. The problem is this: when adding both progressbar and a resize grip, the progressbar draws over the resize grip; and the label is positioned wrongly, which you can see by toggling the resize grip on/off in the testcase: the extra space makes the statusbar's _label_ shorter instead of shifting the extra packed widget to the left.
Created attachment 33598 [details] testcase.c
Hmm, this will be hard to fix perfectly. Currently, I'm manually reallocating the label to be shorter in gtk_statusbar_size_allocate(). To fix the "pack_end progressbar" case, we would need to allocate the hbox smaller, or add some invisible placeholder of the right size. But if we do that, the regular "just a label" case is broken, since in that case, we want the frame to extend all the way across the statusbar, just the label should get a smaller allocation.
2004-11-10 Matthias Clasen <mclasen@redhat.com> * gtk/gtkstatusbar.c (gtk_statusbar_size_allocate): Only shorten the label if it actually overlaps the resize grip. (gtk_statusbar_size_allocate): Handle extra children by leaving room for the resize grip. (#157778, Christian Persch)