diff options
author | António Fernandes <antoniof@gnome.org> | 2021-12-15 16:59:02 +0000 |
---|---|---|
committer | António Fernandes <antoniof@gnome.org> | 2021-12-31 10:43:27 +0000 |
commit | dfe5e6b806a5317503a159dbfa213a00af6ed74b (patch) | |
tree | d265abdc5bf4ab2efdce8390f57d5ee0fe01d00d | |
parent | f3fea0fe1574b8a290bc1d58c5a1c6dd67dd7077 (diff) | |
download | nautilus-dfe5e6b806a5317503a159dbfa213a00af6ed74b.tar.gz |
list-view: Drop HiDPI icon support
gdk_cairo_surface_create_from_pixbuf() is gone in GDK 4. A replacement
cannot be easily implemented in GTK 3 which would be portable to GTK 4.
Take this temporary regression, to be fixed with paintables in GTK 4.
-rw-r--r-- | src/nautilus-list-model.c | 11 | ||||
-rw-r--r-- | src/nautilus-list-view.c | 7 |
2 files changed, 10 insertions, 8 deletions
diff --git a/src/nautilus-list-model.c b/src/nautilus-list-model.c index 7e2aeeeee..ebafcebf8 100644 --- a/src/nautilus-list-model.c +++ b/src/nautilus-list-model.c @@ -174,7 +174,7 @@ nautilus_list_model_get_column_type (GtkTreeModel *tree_model, case NAUTILUS_LIST_MODEL_LARGE_ICON_COLUMN: case NAUTILUS_LIST_MODEL_LARGER_ICON_COLUMN: { - return CAIRO_GOBJECT_TYPE_SURFACE; + return GDK_TYPE_PIXBUF; } case NAUTILUS_LIST_MODEL_FILE_NAME_IS_EDITABLE_COLUMN: @@ -303,6 +303,9 @@ nautilus_list_model_get_icon_scale (NautilusListModel *model) retval = gdk_monitor_get_scale_factor (gdk_display_get_monitor (gdk_display_get_default (), 0)); } + /* FIXME: Temporary regression: HiDPI icons not supported, ignore scale. */ + retval = 1; + return retval; } @@ -349,7 +352,6 @@ nautilus_list_model_get_value (GtkTreeModel *tree_model, int icon_size, icon_scale; NautilusListZoomLevel zoom_level; NautilusFileIconFlags flags; - cairo_surface_t *surface; model = NAUTILUS_LIST_MODEL (tree_model); priv = nautilus_list_model_get_instance_private (model); @@ -383,7 +385,7 @@ nautilus_list_model_get_value (GtkTreeModel *tree_model, case NAUTILUS_LIST_MODEL_LARGE_ICON_COLUMN: case NAUTILUS_LIST_MODEL_LARGER_ICON_COLUMN: { - g_value_init (value, CAIRO_GOBJECT_TYPE_SURFACE); + g_value_init (value, GDK_TYPE_PIXBUF); if (file != NULL) { @@ -432,8 +434,7 @@ nautilus_list_model_get_value (GtkTreeModel *tree_model, } } - surface = gdk_cairo_surface_create_from_pixbuf (icon, icon_scale, NULL); - g_value_take_boxed (value, surface); + g_value_set_object (value, icon); g_object_unref (icon); } } diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c index 242a45490..31ce73b36 100644 --- a/src/nautilus-list-view.c +++ b/src/nautilus-list-view.c @@ -1903,7 +1903,8 @@ static gint get_icon_scale_callback (NautilusListModel *model, NautilusListView *view) { - return gtk_widget_get_scale_factor (GTK_WIDGET (view->details->tree_view)); + /* FIXME: Temporary regression: HiDPI icons not supported, ignore scale. */ + return 1; } static void @@ -2180,7 +2181,7 @@ create_and_set_up_tree_view (NautilusListView *view) gtk_tree_view_column_pack_start (view->details->file_name_column, cell, FALSE); gtk_tree_view_column_set_attributes (view->details->file_name_column, cell, - "surface", nautilus_list_model_get_column_id_from_zoom_level (view->details->zoom_level), + "pixbuf", nautilus_list_model_get_column_id_from_zoom_level (view->details->zoom_level), NULL); cell = gtk_cell_renderer_text_new (); @@ -3351,7 +3352,7 @@ nautilus_list_view_set_zoom_level (NautilusListView *view, column = nautilus_list_model_get_column_id_from_zoom_level (new_level); gtk_tree_view_column_set_attributes (view->details->file_name_column, GTK_CELL_RENDERER (view->details->pixbuf_cell), - "surface", column, + "pixbuf", column, NULL); set_up_pixbuf_size (view); } |