static void place_windows (GtkIconEntry *icon_entry, GtkAllocation *widget_alloc) { GtkIconEntryPosition left_icon_pos; GtkIconEntryPosition right_icon_pos; GtkAllocation left_icon_alloc; GtkAllocation right_icon_alloc; GtkAllocation text_area_alloc; GtkIconEntryPrivate *priv; gint y; priv = GTK_ICON_ENTRY_GET_PRIVATE (icon_entry); get_text_area_size (icon_entry, &text_area_alloc); /* DJW center text/icon * TODO flicker needs to be eliminated */ gdk_window_get_geometry (GTK_ENTRY (icon_entry)->text_area, NULL, &y, NULL, NULL, NULL); text_area_alloc.y = y; get_icon_allocation (icon_entry, TRUE, widget_alloc, &text_area_alloc, &left_icon_alloc, &left_icon_pos); get_icon_allocation (icon_entry, FALSE, widget_alloc, &text_area_alloc, &right_icon_alloc, &right_icon_pos); if (left_icon_alloc.width > 0) { text_area_alloc.x = left_icon_alloc.x + left_icon_alloc.width + ICON_MARGIN; } if (right_icon_alloc.width > 0) { text_area_alloc.width -= right_icon_alloc.width + ICON_MARGIN; } text_area_alloc.width -= text_area_alloc.x; gdk_window_move_resize (priv->icons[left_icon_pos].window, left_icon_alloc.x, left_icon_alloc.y, left_icon_alloc.width, left_icon_alloc.height); gdk_window_move_resize (priv->icons[right_icon_pos].window, right_icon_alloc.x, right_icon_alloc.y, right_icon_alloc.width, right_icon_alloc.height); gdk_window_move_resize (GTK_ENTRY (icon_entry)->text_area, text_area_alloc.x, text_area_alloc.y, text_area_alloc.width, text_area_alloc.height); }
static void place_windows(SexyIconEntry *icon_entry, GtkAllocation *widget_alloc) { SexyIconEntryPosition left_icon_pos; SexyIconEntryPosition right_icon_pos; GtkAllocation left_icon_alloc; GtkAllocation right_icon_alloc; GtkAllocation text_area_alloc; get_text_area_size(icon_entry, &text_area_alloc); get_icon_allocation(icon_entry, TRUE, widget_alloc, &text_area_alloc, &left_icon_alloc, &left_icon_pos); get_icon_allocation(icon_entry, FALSE, widget_alloc, &text_area_alloc, &right_icon_alloc, &right_icon_pos); if (left_icon_alloc.width > 0) { text_area_alloc.x = left_icon_alloc.x + left_icon_alloc.width + ICON_MARGIN; } if (right_icon_alloc.width > 0) text_area_alloc.width -= right_icon_alloc.width + ICON_MARGIN; text_area_alloc.width -= text_area_alloc.x; gdk_window_move_resize(icon_entry->priv->icons[left_icon_pos].window, left_icon_alloc.x, left_icon_alloc.y, left_icon_alloc.width, left_icon_alloc.height); gdk_window_move_resize(icon_entry->priv->icons[right_icon_pos].window, right_icon_alloc.x, right_icon_alloc.y, right_icon_alloc.width, right_icon_alloc.height); gdk_window_move_resize(GTK_ENTRY(icon_entry)->text_area, text_area_alloc.x, text_area_alloc.y, text_area_alloc.width, text_area_alloc.height); }