mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-04 01:31:13 +00:00
scrolledwindow: Pick up gtk-overlay-scrolling changes on the fly
This commit is contained in:
parent
cf48d15c2c
commit
edb69f0bb3
@ -379,6 +379,7 @@ static void gtk_scrolled_window_measure (GtkWidget *widget,
|
|||||||
static void gtk_scrolled_window_map (GtkWidget *widget);
|
static void gtk_scrolled_window_map (GtkWidget *widget);
|
||||||
static void gtk_scrolled_window_unmap (GtkWidget *widget);
|
static void gtk_scrolled_window_unmap (GtkWidget *widget);
|
||||||
static void gtk_scrolled_window_realize (GtkWidget *widget);
|
static void gtk_scrolled_window_realize (GtkWidget *widget);
|
||||||
|
static void gtk_scrolled_window_unrealize (GtkWidget *widget);
|
||||||
static void _gtk_scrolled_window_set_adjustment_value (GtkScrolledWindow *scrolled_window,
|
static void _gtk_scrolled_window_set_adjustment_value (GtkScrolledWindow *scrolled_window,
|
||||||
GtkAdjustment *adjustment,
|
GtkAdjustment *adjustment,
|
||||||
double value);
|
double value);
|
||||||
@ -587,6 +588,7 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class)
|
|||||||
widget_class->map = gtk_scrolled_window_map;
|
widget_class->map = gtk_scrolled_window_map;
|
||||||
widget_class->unmap = gtk_scrolled_window_unmap;
|
widget_class->unmap = gtk_scrolled_window_unmap;
|
||||||
widget_class->realize = gtk_scrolled_window_realize;
|
widget_class->realize = gtk_scrolled_window_realize;
|
||||||
|
widget_class->unrealize = gtk_scrolled_window_unrealize;
|
||||||
widget_class->direction_changed = gtk_scrolled_window_direction_changed;
|
widget_class->direction_changed = gtk_scrolled_window_direction_changed;
|
||||||
widget_class->compute_expand = gtk_scrolled_window_compute_expand;
|
widget_class->compute_expand = gtk_scrolled_window_compute_expand;
|
||||||
widget_class->get_request_mode = gtk_scrolled_window_get_request_mode;
|
widget_class->get_request_mode = gtk_scrolled_window_get_request_mode;
|
||||||
@ -3849,15 +3851,32 @@ gtk_scrolled_window_realize (GtkWidget *widget)
|
|||||||
{
|
{
|
||||||
GtkScrolledWindow *scrolled_window = GTK_SCROLLED_WINDOW (widget);
|
GtkScrolledWindow *scrolled_window = GTK_SCROLLED_WINDOW (widget);
|
||||||
GtkScrolledWindowPrivate *priv = gtk_scrolled_window_get_instance_private (scrolled_window);
|
GtkScrolledWindowPrivate *priv = gtk_scrolled_window_get_instance_private (scrolled_window);
|
||||||
|
GtkSettings *settings;
|
||||||
|
|
||||||
priv->hindicator.scrollbar = priv->hscrollbar;
|
priv->hindicator.scrollbar = priv->hscrollbar;
|
||||||
priv->vindicator.scrollbar = priv->vscrollbar;
|
priv->vindicator.scrollbar = priv->vscrollbar;
|
||||||
|
|
||||||
gtk_scrolled_window_sync_use_indicators (scrolled_window);
|
gtk_scrolled_window_sync_use_indicators (scrolled_window);
|
||||||
|
|
||||||
|
settings = gtk_widget_get_settings (widget);
|
||||||
|
g_signal_connect_swapped (settings, "notify::gtk-overlay-scrolling",
|
||||||
|
G_CALLBACK (gtk_scrolled_window_update_use_indicators), widget);
|
||||||
|
|
||||||
GTK_WIDGET_CLASS (gtk_scrolled_window_parent_class)->realize (widget);
|
GTK_WIDGET_CLASS (gtk_scrolled_window_parent_class)->realize (widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_scrolled_window_unrealize (GtkWidget *widget)
|
||||||
|
{
|
||||||
|
GtkSettings *settings;
|
||||||
|
|
||||||
|
settings = gtk_widget_get_settings (widget);
|
||||||
|
|
||||||
|
g_signal_handlers_disconnect_by_func (settings, gtk_scrolled_window_sync_use_indicators, widget);
|
||||||
|
|
||||||
|
GTK_WIDGET_CLASS (gtk_scrolled_window_parent_class)->unrealize (widget);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gtk_scrolled_window_get_min_content_width: (attributes org.gtk.Method.get_property=min-content-width)
|
* gtk_scrolled_window_get_min_content_width: (attributes org.gtk.Method.get_property=min-content-width)
|
||||||
* @scrolled_window: a `GtkScrolledWindow`
|
* @scrolled_window: a `GtkScrolledWindow`
|
||||||
|
Loading…
Reference in New Issue
Block a user