Updating branch refs/heads/stephan/icon-bar-improvements to 7b8cb887373648f3166c4fbf637deda8cd3bc3f1 (commit) from ac31b57ec639a7405787bbc89280014e66fe6da7 (commit)
commit 7b8cb887373648f3166c4fbf637deda8cd3bc3f1 Author: Stephan Arts <step...@xfce.org> Date: Mon Jan 30 18:35:02 2012 +0100 Improve alignment of items exo/exo-icon-bar.c | 27 ++++++++++++++++++++------- 1 files changed, 20 insertions(+), 7 deletions(-) diff --git a/exo/exo-icon-bar.c b/exo/exo-icon-bar.c index 3e885f8..5327f08 100644 --- a/exo/exo-icon-bar.c +++ b/exo/exo-icon-bar.c @@ -748,11 +748,15 @@ exo_icon_bar_size_allocate (GtkWidget *widget, { icon_bar->priv->width = allocation->width; icon_bar->priv->item_width = icon_bar->priv->width; + icon_bar->priv->hadjustment->value = 0; + gtk_adjustment_value_changed (icon_bar->priv->hadjustment); } else { icon_bar->priv->height = allocation->height; icon_bar->priv->item_height = icon_bar->priv->height; + icon_bar->priv->vadjustment->value = 0; + gtk_adjustment_value_changed (icon_bar->priv->vadjustment); } } @@ -1200,7 +1204,7 @@ exo_icon_bar_paint_item (ExoIconBar *icon_bar, if (G_LIKELY (pixbuf != NULL)) { gdk_draw_pixbuf (icon_bar->priv->bin_window, NULL, pixbuf, 0, 0, - px, py, item->pixbuf_width, item->pixbuf_height, + px-1, py-1, item->pixbuf_width, item->pixbuf_height, GDK_RGB_DITHER_NORMAL, item->pixbuf_width, item->pixbuf_height); g_object_unref (pixbuf); @@ -1301,23 +1305,26 @@ exo_icon_bar_calculate_item_size (ExoIconBar *icon_bar, item->pixbuf_height = 0; } - if (icon_bar->priv->text_column != -1) + if (icon_bar->priv->text_column != -1 && icon_bar->priv->show_text == TRUE) { exo_icon_bar_update_item_text (icon_bar, item); pango_layout_get_pixel_size (icon_bar->priv->layout, &item->layout_width, &item->layout_height); + item->width = MAX (item->layout_width, item->pixbuf_width) + 2 * ICON_TEXT_PADDING + + 2 * (focus_width + focus_pad); + item->height = item->layout_height + 2 * (focus_width + focus_pad + ICON_TEXT_PADDING) + + item->pixbuf_height; } else { item->layout_width = 0; item->layout_height = 0; + + item->width = MAX (item->layout_width, item->pixbuf_width) + 2 * (focus_width + focus_pad); + item->height = item->layout_height + 2 * (focus_width + focus_pad ) + item->pixbuf_height; } - item->width = MAX (item->layout_width, item->pixbuf_width) + 2 * ICON_TEXT_PADDING - + 2 * (focus_width + focus_pad); - item->height = item->layout_height + 2 * (focus_width + focus_pad + ICON_TEXT_PADDING) - + item->pixbuf_height; if (item->width < item->height) { @@ -2063,7 +2070,13 @@ exo_icon_bar_show_active (ExoIconBar *icon_bar) if (icon_bar->priv->orientation == GTK_ORIENTATION_VERTICAL) { - gtk_adjustment_set_value (icon_bar->priv->vadjustment, icon_bar->priv->active_item->index * icon_bar->priv->item_height); + page_size = gtk_adjustment_get_page_size (icon_bar->priv->vadjustment); + value = icon_bar->priv->active_item->index * icon_bar->priv->item_height - ((page_size-icon_bar->priv->item_height)/2); + + if (value > (gtk_adjustment_get_upper (icon_bar->priv->vadjustment)-page_size)) + value = (gtk_adjustment_get_upper (icon_bar->priv->vadjustment)-page_size); + + gtk_adjustment_set_value (icon_bar->priv->vadjustment, value); gtk_adjustment_changed (icon_bar->priv->vadjustment); return TRUE; } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits