Fixed implementation of GcalFloatingContainer.
This commit is contained in:
@@ -48,10 +48,6 @@ static void gcal_floating_container_size_allocate (GtkWidge
|
|||||||
static gboolean gcal_floating_container_draw (GtkWidget *widget,
|
static gboolean gcal_floating_container_draw (GtkWidget *widget,
|
||||||
cairo_t *cr);
|
cairo_t *cr);
|
||||||
|
|
||||||
static void gcal_floating_container_realize (GtkWidget *widget);
|
|
||||||
|
|
||||||
static void gcal_floating_container_style_updated (GtkWidget *widget);
|
|
||||||
|
|
||||||
static void gcal_floating_container_add (GtkContainer *container,
|
static void gcal_floating_container_add (GtkContainer *container,
|
||||||
GtkWidget *child);
|
GtkWidget *child);
|
||||||
|
|
||||||
@@ -79,8 +75,6 @@ gcal_floating_container_class_init (GcalFloatingContainerClass *klass)
|
|||||||
gcal_floating_container_get_preferred_width_for_height;
|
gcal_floating_container_get_preferred_width_for_height;
|
||||||
widget_class->size_allocate = gcal_floating_container_size_allocate;
|
widget_class->size_allocate = gcal_floating_container_size_allocate;
|
||||||
widget_class->draw = gcal_floating_container_draw;
|
widget_class->draw = gcal_floating_container_draw;
|
||||||
widget_class->realize = gcal_floating_container_realize;
|
|
||||||
widget_class->style_updated = gcal_floating_container_style_updated;
|
|
||||||
|
|
||||||
container_class->add = gcal_floating_container_add;
|
container_class->add = gcal_floating_container_add;
|
||||||
|
|
||||||
@@ -304,33 +298,6 @@ gcal_floating_container_draw (GtkWidget *widget,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gcal_floating_container_realize (GtkWidget *widget)
|
|
||||||
{
|
|
||||||
GdkWindow *window;
|
|
||||||
GtkWidget *child;
|
|
||||||
|
|
||||||
gtk_widget_set_realized (widget, TRUE);
|
|
||||||
|
|
||||||
window = gtk_widget_get_parent_window (widget);
|
|
||||||
gtk_widget_set_window (widget, window);
|
|
||||||
g_object_ref (window);
|
|
||||||
|
|
||||||
child = gtk_bin_get_child (GTK_BIN (widget));
|
|
||||||
if (child)
|
|
||||||
gtk_widget_set_parent_window (child, window);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
gcal_floating_container_style_updated (GtkWidget *widget)
|
|
||||||
{
|
|
||||||
GTK_WIDGET_CLASS (gcal_floating_container_parent_class)->style_updated (widget);
|
|
||||||
|
|
||||||
if (gtk_widget_get_realized (widget))
|
|
||||||
gtk_style_context_set_background (gtk_widget_get_style_context (widget),
|
|
||||||
gtk_widget_get_window (widget));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gcal_floating_container_add (GtkContainer *container,
|
gcal_floating_container_add (GtkContainer *container,
|
||||||
GtkWidget *child)
|
GtkWidget *child)
|
||||||
@@ -348,16 +315,19 @@ gcal_floating_container_get_padding_and_border (GtkWidget *widget,
|
|||||||
GtkStateFlags state;
|
GtkStateFlags state;
|
||||||
GtkBorder tmp;
|
GtkBorder tmp;
|
||||||
|
|
||||||
|
guint border_width;
|
||||||
|
|
||||||
context = gtk_widget_get_style_context (widget);
|
context = gtk_widget_get_style_context (widget);
|
||||||
state = gtk_widget_get_state_flags (widget);
|
state = gtk_widget_get_state_flags (widget);
|
||||||
|
|
||||||
gtk_style_context_get_padding (context, state, border);
|
gtk_style_context_get_padding (context, state, border);
|
||||||
|
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
|
||||||
|
|
||||||
gtk_style_context_get_border (context, state, &tmp);
|
gtk_style_context_get_border (context, state, &tmp);
|
||||||
border->top += tmp.top;
|
border->top += tmp.top + border_width;
|
||||||
border->right += tmp.right;
|
border->right += tmp.right + border_width;
|
||||||
border->bottom += tmp.bottom;
|
border->bottom += tmp.bottom + border_width;
|
||||||
border->left += tmp.left;
|
border->left += tmp.left + border_width;
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkWidget*
|
GtkWidget*
|
||||||
|
|||||||
Reference in New Issue
Block a user