diff --git a/demos/gtk-demo/dnd.c b/demos/gtk-demo/dnd.c index ab6e859daf..e406ca3972 100644 --- a/demos/gtk-demo/dnd.c +++ b/demos/gtk-demo/dnd.c @@ -11,7 +11,6 @@ #include -G_GNUC_BEGIN_IGNORE_DEPRECATIONS G_DECLARE_FINAL_TYPE (CanvasItem, canvas_item, CANVAS, ITEM, GtkWidget) @@ -26,6 +25,9 @@ struct _CanvasItem { double delta; GtkWidget *editor; + + GtkStyleProvider *provider; + char *css_class; }; struct _CanvasItemClass { @@ -36,32 +38,41 @@ G_DEFINE_TYPE (CanvasItem, canvas_item, GTK_TYPE_WIDGET) static int n_items = 0; +static void +unstyle_item (CanvasItem *item) +{ + if (item->provider) + { + gtk_style_context_remove_provider_for_display (gtk_widget_get_display (item->label), item->provider); + g_clear_object (&item->provider); + } + + if (item->css_class) + { + gtk_widget_remove_css_class (item->label, item->css_class); + g_clear_pointer (&item->css_class, g_free); + } +} + static void set_color (CanvasItem *item, GdkRGBA *color) { char *css; char *str; - GtkStyleContext *context; GtkCssProvider *provider; - const char *old_class; + const char *name; + + unstyle_item (item); str = gdk_rgba_to_string (color); - css = g_strdup_printf ("* { background: %s; }", str); - - context = gtk_widget_get_style_context (item->label); - provider = g_object_get_data (G_OBJECT (context), "style-provider"); - if (provider) - gtk_style_context_remove_provider (context, GTK_STYLE_PROVIDER (provider)); - - old_class = (const char *)g_object_get_data (G_OBJECT (item->label), "css-class"); - if (old_class) - gtk_widget_remove_css_class (item->label, old_class); + name = gtk_widget_get_name (item->label); + css = g_strdup_printf ("#%s { background: %s; }", name, str); provider = gtk_css_provider_new (); gtk_css_provider_load_from_data (provider, css, -1); - gtk_style_context_add_provider (gtk_widget_get_style_context (item->label), GTK_STYLE_PROVIDER (provider), 800); - g_object_set_data_full (G_OBJECT (context), "style-provider", provider, g_object_unref); + gtk_style_context_add_provider_for_display (gtk_widget_get_display (item->label), GTK_STYLE_PROVIDER (provider), 700); + item->provider = GTK_STYLE_PROVIDER (provider); g_free (str); g_free (css); @@ -71,21 +82,10 @@ static void set_css (CanvasItem *item, const char *class) { - GtkStyleContext *context; - GtkCssProvider *provider; - const char *old_class; + unstyle_item (item); - context = gtk_widget_get_style_context (item->label); - provider = g_object_get_data (G_OBJECT (context), "style-provider"); - if (provider) - gtk_style_context_remove_provider (context, GTK_STYLE_PROVIDER (provider)); - - old_class = (const char *)g_object_get_data (G_OBJECT (item->label), "css-class"); - if (old_class) - gtk_widget_remove_css_class (item->label, old_class); - - g_object_set_data_full (G_OBJECT (item->label), "css-class", g_strdup (class), g_free); gtk_widget_add_css_class (item->label, class); + item->css_class = g_strdup (class); } static gboolean @@ -724,6 +724,7 @@ do_dnd (GtkWidget *do_widget) int i; int x, y; GtkCssProvider *provider; + GString *css; button = gtk_color_button_new (); g_object_unref (g_object_ref_sink (button)); @@ -735,6 +736,18 @@ do_dnd (GtkWidget *do_widget) 800); g_object_unref (provider); + css = g_string_new (""); + for (i = 0; colors[i]; i++) + g_string_append_printf (css, ".canvasitem.%s { background: %s; }\n", colors[i], colors[i]); + + provider = gtk_css_provider_new (); + gtk_css_provider_load_from_data (provider, css->str, css->len); + gtk_style_context_add_provider_for_display (gdk_display_get_default (), + GTK_STYLE_PROVIDER (provider), + 800); + g_object_unref (provider); + g_string_free (css, TRUE); + window = gtk_window_new (); gtk_window_set_display (GTK_WINDOW (window), gtk_widget_get_display (do_widget)); diff --git a/demos/gtk-demo/fontrendering.c b/demos/gtk-demo/fontrendering.c index 434f7e99ee..a187f41397 100644 --- a/demos/gtk-demo/fontrendering.c +++ b/demos/gtk-demo/fontrendering.c @@ -10,8 +10,6 @@ #include -G_GNUC_BEGIN_IGNORE_DEPRECATIONS - static GtkWidget *window = NULL; static GtkWidget *font_button = NULL; static GtkWidget *entry = NULL; @@ -45,7 +43,6 @@ update_image (void) cairo_t *cr; GdkPixbuf *pixbuf; GdkPixbuf *pixbuf2; - const char *hint; cairo_font_options_t *fopt; cairo_hint_style_t hintstyle; cairo_hint_metrics_t hintmetrics; @@ -60,18 +57,23 @@ update_image (void) fopt = cairo_font_options_copy (pango_cairo_context_get_font_options (context)); - hint = gtk_combo_box_get_active_id (GTK_COMBO_BOX (hinting)); - hintstyle = CAIRO_HINT_STYLE_DEFAULT; - if (hint) + switch (gtk_drop_down_get_selected (GTK_DROP_DOWN (hinting))) { - if (strcmp (hint, "none") == 0) - hintstyle = CAIRO_HINT_STYLE_NONE; - else if (strcmp (hint, "slight") == 0) - hintstyle = CAIRO_HINT_STYLE_SLIGHT; - else if (strcmp (hint, "medium") == 0) - hintstyle = CAIRO_HINT_STYLE_MEDIUM; - else if (strcmp (hint, "full") == 0) - hintstyle = CAIRO_HINT_STYLE_FULL; + case 0: + hintstyle = CAIRO_HINT_STYLE_NONE; + break; + case 1: + hintstyle = CAIRO_HINT_STYLE_SLIGHT; + break; + case 2: + hintstyle = CAIRO_HINT_STYLE_MEDIUM; + break; + case 3: + hintstyle = CAIRO_HINT_STYLE_FULL; + break; + default: + hintstyle = CAIRO_HINT_STYLE_DEFAULT; + break; } cairo_font_options_set_hint_style (fopt, hintstyle); @@ -420,7 +422,7 @@ do_fontrendering (GtkWidget *do_widget) g_signal_connect (down_button, "clicked", G_CALLBACK (scale_down), NULL); g_signal_connect (entry, "notify::text", G_CALLBACK (update_image), NULL); g_signal_connect (font_button, "notify::font-desc", G_CALLBACK (update_image), NULL); - g_signal_connect (hinting, "notify::active", G_CALLBACK (update_image), NULL); + g_signal_connect (hinting, "notify::selected", G_CALLBACK (update_image), NULL); g_signal_connect (anti_alias, "notify::active", G_CALLBACK (update_image), NULL); g_signal_connect (hint_metrics, "notify::active", G_CALLBACK (update_image), NULL); g_signal_connect (text_radio, "notify::active", G_CALLBACK (update_image), NULL); diff --git a/demos/gtk-demo/fontrendering.ui b/demos/gtk-demo/fontrendering.ui index a28491a85a..23b782cf4e 100644 --- a/demos/gtk-demo/fontrendering.ui +++ b/demos/gtk-demo/fontrendering.ui @@ -116,15 +116,18 @@ - - 0 + center - - None - Slight - Medium - Full - + + + + None + Slight + Medium + Full + + + diff --git a/demos/gtk-demo/gltransition.c b/demos/gtk-demo/gltransition.c index d1c9831fc0..321a857147 100644 --- a/demos/gtk-demo/gltransition.c +++ b/demos/gtk-demo/gltransition.c @@ -20,8 +20,6 @@ #include "gtkshadertoy.h" #include "gskshaderpaintable.h" -G_GNUC_BEGIN_IGNORE_DEPRECATIONS - static GtkWidget *demo_window = NULL; static void @@ -146,7 +144,6 @@ make_shader_stack (const char *name, GtkTextBuffer *buffer; GBytes *bytes; GtkEventController *controller; - GtkCssProvider *provider; GdkPaintable *paintable; stack = gtk_shader_stack_new (); @@ -237,12 +234,6 @@ make_shader_stack (const char *name, g_signal_connect (buffer, "changed", G_CALLBACK (text_changed), button); g_object_set_data (G_OBJECT (button), "the-stack", stack); g_signal_connect (button, "clicked", G_CALLBACK (apply_text), buffer); - provider = gtk_css_provider_new (); - gtk_css_provider_load_from_data (provider, "button.small { padding: 0; }", -1); - gtk_style_context_add_provider (gtk_widget_get_style_context (button), - GTK_STYLE_PROVIDER (provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - g_object_unref (provider); gtk_widget_set_halign (button, GTK_ALIGN_CENTER); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); gtk_widget_add_css_class (button, "small"); @@ -276,11 +267,21 @@ make_shader_stack (const char *name, return vbox; } +static void +remove_provider (gpointer data) +{ + GtkStyleProvider *provider = GTK_STYLE_PROVIDER (data); + + gtk_style_context_remove_provider_for_display (gdk_display_get_default (), provider); + g_object_unref (provider); +} + static GtkWidget * create_gltransition_window (GtkWidget *do_widget) { GtkWidget *window, *headerbar, *scale, *outer_grid, *grid, *background; GdkPaintable *paintable; + GtkCssProvider *provider; window = gtk_window_new (); gtk_window_set_display (GTK_WINDOW (window), gtk_widget_get_display (do_widget)); @@ -335,6 +336,14 @@ create_gltransition_window (GtkWidget *do_widget) make_shader_stack ("Kaleidoscope", "/gltransition/kaleidoscope.glsl", 3, scale), 1, 1, 1, 1); + provider = gtk_css_provider_new (); + gtk_css_provider_load_from_data (provider, "button.small { padding: 0; }", -1); + gtk_style_context_add_provider_for_display (gdk_display_get_default (), + GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + + g_object_set_data_full (G_OBJECT (window), "provider", provider, remove_provider); + return window; } diff --git a/demos/gtk-demo/listview_ucd.c b/demos/gtk-demo/listview_ucd.c index e8525dfc0f..31b7fd22d4 100644 --- a/demos/gtk-demo/listview_ucd.c +++ b/demos/gtk-demo/listview_ucd.c @@ -10,8 +10,6 @@ #include "script-names.h" #include "unicode-names.h" -G_GNUC_BEGIN_IGNORE_DEPRECATIONS - #define UCD_TYPE_ITEM (ucd_item_get_type ()) G_DECLARE_FINAL_TYPE (UcdItem, ucd_item, UCD, ITEM, GObject) @@ -339,6 +337,15 @@ create_ucd_view (GtkWidget *label) static GtkWidget *window; +static void +remove_provider (gpointer data) +{ + GtkStyleProvider *provider = GTK_STYLE_PROVIDER (data); + + gtk_style_context_remove_provider_for_display (gdk_display_get_default (), provider); + g_object_unref (provider); +} + GtkWidget * do_listview_ucd (GtkWidget *do_widget) { @@ -361,7 +368,7 @@ do_listview_ucd (GtkWidget *do_widget) gtk_widget_add_css_class (label, "enormous"); provider = gtk_css_provider_new (); gtk_css_provider_load_from_data (provider, "label.enormous { font-size: 80px; }", -1); - gtk_style_context_add_provider (gtk_widget_get_style_context (label), GTK_STYLE_PROVIDER (provider), 800); + gtk_style_context_add_provider_for_display (gdk_display_get_default (), GTK_STYLE_PROVIDER (provider), 800); gtk_widget_set_hexpand (label, TRUE); gtk_box_append (GTK_BOX (box), label); @@ -371,6 +378,8 @@ do_listview_ucd (GtkWidget *do_widget) gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (sw), listview); gtk_box_prepend (GTK_BOX (box), sw); gtk_window_set_child (GTK_WINDOW (window), box); + + g_object_set_data_full (G_OBJECT (window), "provider", provider, remove_provider); } if (!gtk_widget_get_visible (window)) diff --git a/demos/gtk-demo/peg_solitaire.c b/demos/gtk-demo/peg_solitaire.c index c13ac4780f..913e521ff5 100644 --- a/demos/gtk-demo/peg_solitaire.c +++ b/demos/gtk-demo/peg_solitaire.c @@ -8,7 +8,6 @@ #include "config.h" #include -G_GNUC_BEGIN_IGNORE_DEPRECATIONS /* Create an object for the pegs that get moved around in the game. * @@ -361,6 +360,15 @@ drop_drop (GtkDropTarget *target, return TRUE; } +static void +remove_provider (gpointer data) +{ + GtkStyleProvider *provider = GTK_STYLE_PROVIDER (data); + + gtk_style_context_remove_provider_for_display (gdk_display_get_default (), provider); + g_object_unref (provider); +} + static void create_board (GtkWidget *window) { @@ -377,6 +385,9 @@ create_board (GtkWidget *window) provider = gtk_css_provider_new (); gtk_css_provider_load_from_data (provider, css, -1); + gtk_style_context_add_provider_for_display (gdk_display_get_default (), + GTK_STYLE_PROVIDER (provider), + 800); grid = gtk_grid_new (); gtk_widget_set_halign (grid, GTK_ALIGN_CENTER); @@ -395,9 +406,6 @@ create_board (GtkWidget *window) continue; image = gtk_image_new (); - gtk_style_context_add_provider (gtk_widget_get_style_context (image), - GTK_STYLE_PROVIDER (provider), - 800); gtk_widget_add_css_class (image, "solitaire-field"); gtk_image_set_icon_size (GTK_IMAGE (image), GTK_ICON_SIZE_LARGE); if (x != 3 || y != 3) @@ -441,7 +449,7 @@ create_board (GtkWidget *window) } } - g_object_unref (provider); + g_object_set_data_full (G_OBJECT (window), "provider", provider, remove_provider); } static void diff --git a/demos/gtk-demo/pixbufpaintable.c b/demos/gtk-demo/pixbufpaintable.c index 11685b726d..741cd340fd 100644 --- a/demos/gtk-demo/pixbufpaintable.c +++ b/demos/gtk-demo/pixbufpaintable.c @@ -16,7 +16,6 @@ enum { NUM_PROPERTIES }; -G_GNUC_BEGIN_IGNORE_DEPRECATIONS; static void pixbuf_paintable_snapshot (GdkPaintable *paintable, GdkSnapshot *snapshot, @@ -37,7 +36,6 @@ pixbuf_paintable_snapshot (GdkPaintable *paintable, g_object_unref (texture); } -G_GNUC_END_IGNORE_DEPRECATIONS; static int pixbuf_paintable_get_intrinsic_width (GdkPaintable *paintable) diff --git a/demos/gtk-demo/sizegroup.c b/demos/gtk-demo/sizegroup.c index 45ed13792a..e356de0e0d 100644 --- a/demos/gtk-demo/sizegroup.c +++ b/demos/gtk-demo/sizegroup.c @@ -16,26 +16,6 @@ #include #include -G_GNUC_BEGIN_IGNORE_DEPRECATIONS - -/* Convenience function to create a combo box holding a number of strings - */ -GtkWidget * -create_combo_box (const char **strings) -{ - GtkWidget *combo_box; - const char **str; - - combo_box = gtk_combo_box_text_new (); - - for (str = strings; *str; str++) - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), *str); - - gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0); - - return combo_box; -} - static void add_row (GtkGrid *table, int row, @@ -43,7 +23,7 @@ add_row (GtkGrid *table, const char *label_text, const char **options) { - GtkWidget *combo_box; + GtkWidget *dropdown; GtkWidget *label; label = gtk_label_new_with_mnemonic (label_text); @@ -52,12 +32,12 @@ add_row (GtkGrid *table, gtk_widget_set_hexpand (label, TRUE); gtk_grid_attach (table, label, 0, row, 1, 1); - combo_box = create_combo_box (options); - gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo_box); - gtk_widget_set_halign (combo_box, GTK_ALIGN_END); - gtk_widget_set_valign (combo_box, GTK_ALIGN_BASELINE); - gtk_size_group_add_widget (size_group, combo_box); - gtk_grid_attach (table, combo_box, 1, row, 1, 1); + dropdown = gtk_drop_down_new_from_strings (options); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), dropdown); + gtk_widget_set_halign (dropdown, GTK_ALIGN_END); + gtk_widget_set_valign (dropdown, GTK_ALIGN_BASELINE); + gtk_size_group_add_widget (size_group, dropdown); + gtk_grid_attach (table, dropdown, 1, row, 1, 1); } static void diff --git a/demos/gtk-demo/textview.c b/demos/gtk-demo/textview.c index 2ee8bf8c7e..ad7da1b1da 100644 --- a/demos/gtk-demo/textview.c +++ b/demos/gtk-demo/textview.c @@ -11,7 +11,6 @@ #include /* for exit() */ #include "paintable.h" -G_GNUC_BEGIN_IGNORE_DEPRECATIONS static void easter_egg_callback (GtkWidget *button, gpointer data); @@ -431,11 +430,11 @@ attach_widgets (GtkTextView *text_view) } else if (i == 1) { - widget = gtk_combo_box_text_new (); + const char *options[] = { + "Option 1", "Option 2", "Option 3", NULL + }; - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 1"); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 2"); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 3"); + widget = gtk_drop_down_new_from_strings (options); } else if (i == 2) { diff --git a/examples/bp/bloatpad.c b/examples/bp/bloatpad.c index 983257cf1c..c930a453f7 100644 --- a/examples/bp/bloatpad.c +++ b/examples/bp/bloatpad.c @@ -1,8 +1,6 @@ #include #include -G_GNUC_BEGIN_IGNORE_DEPRECATIONS - typedef struct { GtkApplication parent_instance; @@ -352,7 +350,8 @@ quit_activated (GSimpleAction *action, } static void -combo_changed (GtkComboBox *combo, +combo_changed (GtkDropDown *combo, + GParamSpec *pspec, gpointer user_data) { GtkDialog *dialog = user_data; @@ -361,7 +360,7 @@ combo_changed (GtkComboBox *combo, char **accels; char *str; - action = gtk_combo_box_get_active_id (combo); + action = gtk_string_object_get_string (GTK_STRING_OBJECT (gtk_drop_down_get_selected_item (combo))); if (!action) return; @@ -390,7 +389,7 @@ response (GtkDialog *dialog, gpointer user_data) { GtkEntry *entry = g_object_get_data (user_data, "entry"); - GtkComboBox *combo = g_object_get_data (user_data, "combo"); + GtkDropDown *combo = g_object_get_data (user_data, "combo"); const char *action; const char *str; char **accels; @@ -401,7 +400,7 @@ response (GtkDialog *dialog, return; } - action = gtk_combo_box_get_active_id (combo); + action = gtk_string_object_get_string (GTK_STRING_OBJECT (gtk_drop_down_get_selected_item (combo))); if (!action) return; @@ -426,6 +425,7 @@ edit_accels (GSimpleAction *action, char **actions; GtkWidget *dialog; int i; + GtkStringList *strings; dialog = gtk_dialog_new_with_buttons ("Accelerators", NULL, @@ -437,7 +437,8 @@ edit_accels (GSimpleAction *action, gtk_window_set_application (GTK_WINDOW (dialog), app); actions = gtk_application_list_action_descriptions (app); - combo = gtk_combo_box_text_new (); + strings = gtk_string_list_new (NULL); + combo = gtk_drop_down_new (G_LIST_MODEL (strings), NULL); g_object_set (gtk_dialog_get_content_area (GTK_DIALOG (dialog)), "margin-top", 10, "margin-bottom", 10, @@ -448,8 +449,8 @@ edit_accels (GSimpleAction *action, gtk_box_append (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), combo); for (i = 0; actions[i]; i++) - gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo), actions[i], actions[i]); - g_signal_connect (combo, "changed", G_CALLBACK (combo_changed), dialog); + gtk_string_list_append (strings, actions[i]); + g_signal_connect (combo, "notify::selected", G_CALLBACK (combo_changed), dialog); entry = gtk_entry_new (); gtk_widget_set_hexpand (entry, TRUE); @@ -460,7 +461,7 @@ edit_accels (GSimpleAction *action, g_object_set_data (G_OBJECT (dialog), "combo", combo); g_object_set_data (G_OBJECT (dialog), "entry", entry); - gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); + gtk_drop_down_set_selected (GTK_DROP_DOWN (combo), 0); gtk_widget_show (dialog); } diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index 024cfb2ee1..08220387d5 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -107,8 +107,6 @@ #include #endif -G_GNUC_BEGIN_IGNORE_DEPRECATIONS - /** * GtkFileChooserWidget: * diff --git a/gtk/gtkfilesystemmodel.c b/gtk/gtkfilesystemmodel.c index 93f063ae8b..a6353c15cb 100644 --- a/gtk/gtkfilesystemmodel.c +++ b/gtk/gtkfilesystemmodel.c @@ -25,94 +25,13 @@ #include "gtkfilechooserutils.h" #include "gtkmarshalers.h" -#include "deprecated/gtktreedatalistprivate.h" -#include "deprecated/gtktreednd.h" #include "gtkfilter.h" #include "gtkprivate.h" -G_GNUC_BEGIN_IGNORE_DEPRECATIONS - -/*** Structure: how GtkFileSystemModel works - * - * This is a custom GtkTreeModel used to hold a collection of files for GtkFileChooser. There are two use cases: - * - * 1. The model populates itself from a folder, using the GIO file enumerator API. This happens if you use - * _gtk_file_system_model_new_for_directory(). This is the normal usage for showing the contents of a folder. - * - * 2. The caller populates the model by hand, with files not necessarily in the same folder. This happens - * if you use _gtk_file_system_model_new() and then _gtk_file_system_model_add_and_query_file(). This is - * the special kind of usage for “search” and “recent-files”, where the file chooser gives the model the - * files to be displayed. - * - * Internal data structure - * ----------------------- - * - * Each file is kept in a FileModelNode structure. Each FileModelNode holds a GFile* and other data. All the - * node structures have the same size, determined at runtime, depending on the number of columns that were passed - * to _gtk_file_system_model_new() or _gtk_file_system_model_new_for_directory() (that is, the size of a node is - * not sizeof (FileModelNode), but rather model->node_size). The last field in the FileModelNode structure, - * node->values[], is an array of GValue, used to hold the data for those columns. - * - * The model stores an array of FileModelNode structures in model->files. This is a GArray where each element is - * model->node_size bytes in size (the model computes that node size when initializing itself). There are - * convenience macros, get_node() and node_index(), to access that array based on an array index or a pointer to - * a node inside the array. - * - * The model accesses files through two of its fields: - * - * model->files - GArray of FileModelNode structures. - * - * model->file_lookup - hash table that maps a GFile* to an index inside the model->files array. - * - * The model->file_lookup hash table is populated lazily. It is both accessed and populated with the - * node_get_for_file() function. The invariant is that the files in model->files[n] for n < g_hash_table_size - * (model->file_lookup) are already added to the hash table. - * - * Each FileModelNode has a node->visible field, which indicates whether the node is visible in the GtkTreeView. - * A node may be invisible if, for example, it corresponds to a hidden file and the file chooser is not showing - * hidden files. Also, a file filter may be explicitly set onto the model, for example, to only show files that - * match “*.jpg”. In this case, node->filtered_out says whether the node failed the filter. The ultimate - * decision on whether a node is visible or not in the treeview is distilled into the node->visible field. - * The reason for having a separate node->filtered_out field is so that the file chooser can query whether - * a (filtered-out) folder should be made sensitive in the GUI. - * - * Visible rows vs. possibly-invisible nodes - * ----------------------------------------- - * - * Since not all nodes in the model->files array may be visible, we need a way to map visible row indexes from - * the treeview to array indexes in our array of files. And thus we introduce a bit of terminology: - * - * index - An index in the model->files array. All variables/fields that represent indexes are either called - * “index” or “i_*”, or simply “i” for things like loop counters. - * - * row - An index in the GtkTreeView, i.e. the index of a row within the outward-facing API of the - * GtkFileSystemModel. However, note that our rows are 1-based, not 0-based, for the reason explained in the - * following paragraph. Variables/fields that represent visible rows are called “row”, or “r_*”, or simply - * “r”. - * - * Each FileModelNode has a node->row field which is the number of visible rows in the treeview, *before and - * including* that node. This means that node->row is 1-based, instead of 0-based --- this makes some code - * simpler, believe it or not :) This also means that when the calling GtkTreeView gives us a GtkTreePath, we - * turn the 0-based treepath into a 1-based row for our purposes. If a node is not visible, it will have the - * same row number as its closest preceding visible node. - * - * We try to compute the node->row fields lazily. A node is said to be “valid” if its node->row is accurate. - * For this, the model keeps a model->n_nodes_valid field which is the count of valid nodes starting from the - * beginning of the model->files array. When a node changes its information, or when a node gets deleted, that - * node and the following ones get invalidated by simply setting model->n_nodes_valid to the array index of the - * node. If the model happens to need a node’s row number and that node is in the model->files array after - * model->n_nodes_valid, then the nodes get re-validated up to the sought node. See node_validate_rows() for - * this logic. - * - * You never access a node->row directly. Instead, call node_get_tree_row(). That function will validate the nodes - * up to the sought one if the node is not valid yet, and it will return a proper 0-based row. - */ - -/*** DEFINES ***/ - /* priority used for all async callbacks in the main loop * This should be higher than redraw priorities so multiple callbacks - * firing can be handled without intermediate redraws */ + * firing can be handled without intermediate redraws + */ #define IO_PRIORITY G_PRIORITY_DEFAULT /* random number that everyone else seems to use, too */ diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c index e35b961dff..c645739644 100644 --- a/gtk/gtkfontchooserwidget.c +++ b/gtk/gtkfontchooserwidget.c @@ -1870,9 +1870,7 @@ find_affected_text (GtkFontChooserWidget *fontchooser, hb_ot_layout_table_find_script (hb_face, HB_OT_TAG_GSUB, script_tag, &script_index); - G_GNUC_BEGIN_IGNORE_DEPRECATIONS - hb_ot_layout_script_find_language (hb_face, HB_OT_TAG_GSUB, script_index, lang_tag, &lang_index); - G_GNUC_END_IGNORE_DEPRECATIONS + hb_ot_layout_script_select_language (hb_face, HB_OT_TAG_GSUB, script_index, 1, &lang_tag, &lang_index); if (hb_ot_layout_language_find_feature (hb_face, HB_OT_TAG_GSUB, @@ -2013,9 +2011,7 @@ update_feature_label (GtkFontChooserWidget *fontchooser, hb_ot_layout_table_find_script (hb_face, HB_OT_TAG_GSUB, script_tag, &script_index); - G_GNUC_BEGIN_IGNORE_DEPRECATIONS - hb_ot_layout_script_find_language (hb_face, HB_OT_TAG_GSUB, script_index, lang_tag, &lang_index); - G_GNUC_END_IGNORE_DEPRECATIONS + hb_ot_layout_script_select_language (hb_face, HB_OT_TAG_GSUB, script_index, 1, &lang_tag, &lang_index); if (hb_ot_layout_language_find_feature (hb_face, HB_OT_TAG_GSUB, script_index, lang_index, item->tag, &feature_index)) { @@ -2565,9 +2561,7 @@ gtk_font_chooser_widget_update_font_features (GtkFontChooserWidget *fontchooser) { hb_ot_layout_table_find_script (hb_face, table[i], script_tag, &script_index); - G_GNUC_BEGIN_IGNORE_DEPRECATIONS - hb_ot_layout_script_find_language (hb_face, table[i], script_index, lang_tag, &lang_index); - G_GNUC_END_IGNORE_DEPRECATIONS + hb_ot_layout_script_select_language (hb_face, table[i], script_index, 1, &lang_tag, &lang_index); feat = features + n_features; count = G_N_ELEMENTS (features) - n_features; diff --git a/gtk/gtkplacesview.c b/gtk/gtkplacesview.c index 9684b0b0e8..0c58880681 100644 --- a/gtk/gtkplacesview.c +++ b/gtk/gtkplacesview.c @@ -520,8 +520,6 @@ on_remove_server_button_clicked (RemoveServerData *data) populate_servers (data->view); } -G_GNUC_BEGIN_IGNORE_DEPRECATIONS - static void populate_servers (GtkPlacesView *view) { @@ -617,8 +615,6 @@ populate_servers (GtkPlacesView *view) g_bookmark_file_free (server_list); } -G_GNUC_END_IGNORE_DEPRECATIONS - static void update_view_mode (GtkPlacesView *view) { diff --git a/gtk/gtksearchenginemodel.c b/gtk/gtksearchenginemodel.c index 6d174b1ed0..d43ff0be6f 100644 --- a/gtk/gtksearchenginemodel.c +++ b/gtk/gtksearchenginemodel.c @@ -29,8 +29,6 @@ #include -G_GNUC_BEGIN_IGNORE_DEPRECATIONS - struct _GtkSearchEngineModel { GtkSearchEngine parent;