forked from AuroraMiddleware/gtk
tooltipwindow: Stop using the ::size-allocate signal
Instead of connecting to ::size-allocate, call gtk_native_set_tooltip and rely on the native to allocate the tooltip window.
This commit is contained in:
parent
3872da535f
commit
64b673853b
@ -355,22 +355,13 @@ gtk_tooltip_window_hide (GtkWidget *widget)
|
||||
gtk_widget_unmap (widget);
|
||||
}
|
||||
|
||||
static void size_changed (GtkWidget *widget,
|
||||
int width,
|
||||
int height,
|
||||
int baseline,
|
||||
GtkTooltipWindow *window);
|
||||
|
||||
static void
|
||||
gtk_tooltip_window_dispose (GObject *object)
|
||||
{
|
||||
GtkTooltipWindow *window = GTK_TOOLTIP_WINDOW (object);
|
||||
|
||||
if (window->relative_to)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (window->relative_to, size_changed, window);
|
||||
gtk_widget_unparent (GTK_WIDGET (window));
|
||||
}
|
||||
gtk_widget_unparent (GTK_WIDGET (window));
|
||||
|
||||
g_clear_pointer (&window->box, gtk_widget_unparent);
|
||||
|
||||
@ -523,16 +514,6 @@ gtk_tooltip_window_set_custom_widget (GtkTooltipWindow *window,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
size_changed (GtkWidget *widget,
|
||||
int width,
|
||||
int height,
|
||||
int baseline,
|
||||
GtkTooltipWindow *window)
|
||||
{
|
||||
gtk_native_check_resize (GTK_NATIVE (window));
|
||||
}
|
||||
|
||||
void
|
||||
gtk_tooltip_window_set_relative_to (GtkTooltipWindow *window,
|
||||
GtkWidget *relative_to)
|
||||
@ -545,20 +526,12 @@ gtk_tooltip_window_set_relative_to (GtkTooltipWindow *window,
|
||||
g_object_ref (window);
|
||||
|
||||
if (window->relative_to)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (window->relative_to, size_changed, window);
|
||||
gtk_widget_unparent (GTK_WIDGET (window));
|
||||
}
|
||||
gtk_widget_unparent (GTK_WIDGET (window));
|
||||
|
||||
window->relative_to = relative_to;
|
||||
|
||||
if (window->relative_to)
|
||||
{
|
||||
g_signal_connect (window->relative_to, "size-allocate", G_CALLBACK (size_changed), window);
|
||||
gtk_css_node_set_parent (gtk_widget_get_css_node (GTK_WIDGET (window)),
|
||||
gtk_widget_get_css_node (relative_to));
|
||||
gtk_widget_set_parent (GTK_WIDGET (window), relative_to);
|
||||
}
|
||||
gtk_widget_set_parent (GTK_WIDGET (window), relative_to);
|
||||
|
||||
g_object_unref (window);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user