Codebase list nemo / 6605498
New upstream version 4.6.3 Norbert Preining 3 years ago
13 changed file(s) with 97 addition(s) and 97 deletion(s). Raw diff Collapse all Expand all
4747 fi
4848
4949 jobs:
50 "mint":
50 "mint20":
5151 <<: *shared
5252 docker:
5353 - image: linuxmintd/mint20-amd64
5454
55 "lmde":
55 "lmde4":
5656 <<: *shared
5757 docker:
5858 - image: linuxmintd/lmde4-amd64
6161 version: 2
6262 build:
6363 jobs:
64 - "mint"
65 - "lmde"
64 - "mint20"
65 - "lmde4"
0 nemo (4.6.3) ulyana; urgency=medium
1
2 [ Michael Webster ]
3 * icon view: Fix additional line calculation for labels, and tweak spacing between icons.
4 * nemo-icon-canvas-item.c: Only show full label text when an item is hovered over, but not if it is merely selected.
5 * nemo-file-management-properties.glade: Add the modal flag to the window and increase vertical size slightly.
6
7 [ Soapux ]
8 * meson: Remove a workaround for old meson versions
9
10 [ Fabio Fantoni ]
11 * use debhelper 11 for integrated meson support
12
13 [ Clement Lefebvre ]
14 * CI: Use explicit tags
15
16 -- Clement Lefebvre <root@linuxmint.com> Sat, 06 Jun 2020 14:52:58 +0100
17
018 nemo (4.6.2) ulyana; urgency=medium
119
220 [ Michael Webster ]
+0
-1
debian/clean less more
0 debian/build/
33 Maintainer: Linux Mint <root@linuxmint.com>
44 Build-Depends:
55 cinnamon-l10n,
6 debhelper (>= 10),
6 debhelper (>= 11.1~),
77 gobject-introspection,
88 gtk-doc-tools (>= 1.4),
99 intltool (>= 0.40.1),
33 export LC_ALL=C.UTF-8
44
55 CONFIGURE_EXTRA_FLAGS = \
6 --prefix=/usr \
7 --libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
86 --libexecdir=/usr/lib/$(DEB_HOST_MULTIARCH)/nemo \
97 -D deprecated_warnings=false \
108 -D gtk_doc=true \
119 -D selinux=false
1210
13 export LDFLAGS+=-Wl,-z,defs -Wl,-O1 -Wl,--as-needed
11 export DEB_LDFLAGS_MAINT_APPEND = -Wl,-z,defs -Wl,-O1 -Wl,--as-needed
1412
1513
1614 %:
1715 dh $@ --with gir
1816
1917 override_dh_auto_configure:
20 mkdir -p debian/build
21 meson debian/build $(CONFIGURE_EXTRA_FLAGS)
22
23 override_dh_auto_build:
24 ninja -C debian/build
18 dh_auto_configure -- $(CONFIGURE_EXTRA_FLAGS)
2519
2620 override_dh_auto_test:
27 # ninja -C build test
21 # Disabled
22 :
2823
2924 override_dh_strip:
3025 dh_strip --dbg-package=nemo-dbg
31
32 override_dh_auto_install:
33 DESTDIR=${CURDIR}/debian/tmp \
34 ninja -C debian/build install
3526
3627 override_dh_makeshlibs:
3728 dh_makeshlibs -Xusr/lib/nemo/extensions-3.0/
3930 override_dh_installmime:
4031 dh_installmime -pnemo-data
4132
42 # with dh11 replace with dh_missing
43 # debian/not-installed wildcard support introduced in debhelper 11.1
4433 # --list-missing will be default in compat 12
45 override_dh_install:
46 dh_install --list-missing
34 override_dh_missing:
35 dh_missing --list-missing
4736
00 <?xml version="1.0" encoding="UTF-8"?>
1 <!-- Generated with glade 3.22.1
1 <!-- Generated with glade 3.22.2
22
33 Copyright (C)
44
355355 <property name="title" translatable="yes">File Management Preferences</property>
356356 <property name="window_position">center</property>
357357 <property name="default_width">800</property>
358 <property name="default_height">530</property>
358 <property name="default_height">600</property>
359359 <property name="type_hint">dialog</property>
360 <child>
360 <child type="titlebar">
361361 <placeholder/>
362362 </child>
363363 <child>
+0
-12
libnemo-extension/libnemo-extension.pc.in less more
0 prefix=@prefix@
1 libdir=${prefix}/@libdir@
2 includedir=${prefix}/@includedir@
3
4 extensiondir=@extensiondir@
5
6 Name: libnemo-extension
7 Description: A library to create Nemo view extensions
8 Version: @version@
9 Requires: gio-2.0, glib-2.0, gtk+-3.0
10 Libs: -L${libdir} -lnemo-extension
11 Cflags: -I${includedir}/nemo
7272 install: true,
7373 )
7474
75 if meson.version().version_compare('>=0.41.0')
76 pkgconfig.generate(filebase: 'libnemo-extension',
77 name: 'libnemo-extension',
78 description: 'A library to create Nemo view extensions',
79 version: meson.project_version(),
80 requires: [ 'gio-2.0', 'glib-2.0', 'gtk+-3.0' ],
81 libraries: nemo_extension_lib,
82 subdirs: 'nemo',
83 variables: 'extensiondir=${libdir}/@0@/@1@'.format('nemo', 'extensions-3.0'),
84 )
85 else
86 pc_conf = configuration_data()
87 pc_conf.set('prefix', get_option('prefix'))
88 pc_conf.set('libdir', get_option('libdir'))
89 pc_conf.set('includedir', get_option('includedir'))
90 pc_conf.set('version', meson.project_version())
91 pc_conf.set('extensiondir', nemoExtensionPath)
92 configure_file(
93 input : 'libnemo-extension.pc.in',
94 output: 'libnemo-extension.pc',
95 configuration: pc_conf,
96 install: true,
97 install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
98 )
99 endif
75 pkgconfig.generate(filebase: 'libnemo-extension',
76 name: 'libnemo-extension',
77 description: 'A library to create Nemo view extensions',
78 version: meson.project_version(),
79 requires: [ 'gio-2.0', 'glib-2.0', 'gtk+-3.0' ],
80 libraries: nemo_extension_lib,
81 subdirs: 'nemo',
82 variables: 'extensiondir=${libdir}/@0@/@1@'.format('nemo', 'extensions-3.0'),
83 )
84
4747 #include <string.h>
4848
4949 /* gap between bottom of icon and start of text box */
50 #define LABEL_OFFSET 3
5150 #define LABEL_OFFSET_BESIDES 3
5251 #define LABEL_LINE_SPACING 0
5352
583582 {
584583 EelIRect text_rectangle;
585584 double pixels_per_unit;
586 double label_offset;
587585 double text_width, text_height, text_height_for_layout, text_height_for_entire_text, real_text_height, text_dx;
588586
589587 pixels_per_unit = EEL_CANVAS_ITEM (item)->canvas->pixels_per_unit;
593591 text_height_for_layout = item->details->text_height_for_layout;
594592 text_height_for_entire_text = item->details->text_height_for_entire_text;
595593 text_dx = item->details->text_dx;
596 label_offset = LABEL_OFFSET;
597594 } else {
598595 text_width = item->details->text_width / pixels_per_unit;
599596 text_height = item->details->text_height / pixels_per_unit;
600597 text_height_for_layout = item->details->text_height_for_layout / pixels_per_unit;
601598 text_height_for_entire_text = item->details->text_height_for_entire_text / pixels_per_unit;
602599 text_dx = item->details->text_dx / pixels_per_unit;
603 label_offset = LABEL_OFFSET / pixels_per_unit;
604600 }
605601
606602 if (NEMO_ICON_CONTAINER (EEL_CANVAS_ITEM (item)->canvas)->details->label_position == NEMO_ICON_LABEL_POSITION_BESIDE) {
643639 text_rectangle.y1 = text_rectangle.y0 + real_text_height;
644640 } else {
645641 text_rectangle.x0 = (icon_rectangle.x0 + icon_rectangle.x1) / 2 - (int) text_width / 2;
646 text_rectangle.y0 = icon_rectangle.y1 + label_offset;
642 text_rectangle.y0 = icon_rectangle.y1;
647643 text_rectangle.x1 = text_rectangle.x0 + text_width;
648644
649645 if (usage == BOUNDS_USAGE_FOR_LAYOUT) {
651647 } else if (usage == BOUNDS_USAGE_FOR_ENTIRE_ITEM) {
652648 real_text_height = text_height_for_entire_text;
653649 } else if (usage == BOUNDS_USAGE_FOR_DISPLAY) {
654 real_text_height = text_height;
650 real_text_height = text_height + 6; /* Extra bottom highlight padding. */
655651 } else {
656652 g_assert_not_reached ();
657653 }
658654
659 text_rectangle.y1 = text_rectangle.y0 + real_text_height + label_offset;
655 text_rectangle.y1 = text_rectangle.y0 + real_text_height;
660656 }
661657
662658 return text_rectangle;
808804
809805 #define TEXT_BACK_PADDING_X 4
810806 #define TEXT_BACK_PADDING_Y 1
807 #define TEXT_TOP_GAP 3
811808
812809 static void
813810 prepare_pango_layout_width (NemoIconCanvasItem *item,
855852
856853 if (IS_COMPACT_VIEW (container)) {
857854 pango_layout_set_height (layout, -1);
858 } else if (needs_highlight ||
859 details->is_prelit ||
860 details->is_highlighted_as_keyboard_focus ||
855 } else if (details->is_prelit ||
861856 details->entire_text) {
862857 /* VOODOO-TODO, cf. compute_text_rectangle() */
863858 pango_layout_set_height (layout, G_MININT);
11161111 gtk_style_context_set_state (context, state);
11171112
11181113 gtk_render_layout (context, cr,
1119 x, text_rect.y0 + TEXT_BACK_PADDING_Y,
1114 x, text_rect.y0 + TEXT_TOP_GAP,
11201115 editable_layout);
11211116
11221117 gtk_style_context_restore (context);
11381133 gtk_style_context_add_class (context, "dim-label");
11391134
11401135 gtk_render_layout (context, cr,
1141 x, text_rect.y0 + details->editable_text_height + LABEL_LINE_SPACING + TEXT_BACK_PADDING_Y,
1136 x, text_rect.y0 + details->editable_text_height + LABEL_LINE_SPACING + TEXT_TOP_GAP,
11421137 additional_layout);
11431138 }
11441139
20292024 gint line_height, total_height, lines;
20302025
20312026 container = NEMO_ICON_CONTAINER (EEL_CANVAS_ITEM (item)->canvas);
2027
2028 if (nemo_icon_container_get_zoom_level (container) == NEMO_ZOOM_LEVEL_SMALLEST) {
2029 // No label/info, just a bit of padding.
2030 return 0;
2031 }
2032
20322033 lines = nemo_icon_container_get_max_layout_lines (container);
20332034 lines += nemo_icon_container_get_additional_text_line_count (container);
2035
20342036 layout = create_label_layout (item, "-");
20352037 pango_layout_get_pixel_size (layout, NULL, &line_height);
20362038
999999 static void
10001000 redo_layout_internal (NemoIconContainer *container)
10011001 {
1002 container->details->fixed_text_height = -1;
1003
10021004 if (NEMO_ICON_CONTAINER_GET_CLASS (container)->finish_adding_new_icons != NULL) {
10031005 NEMO_ICON_CONTAINER_GET_CLASS (container)->finish_adding_new_icons (container);
10041006 }
52015203 details->layout_timestamp = UNDEFINED_TIME;
52025204 details->store_layout_timestamps_when_finishing_new_icons = FALSE;
52035205
5206 details->fixed_text_height = -1;
5207
52045208 if (container->details->update_visible_icons_id > 0) {
52055209 g_source_remove (container->details->update_visible_icons_id);
52065210 container->details->update_visible_icons_id = 0;
00 # Meson build file
11
22 # https://github.com/linuxmint/nemo
3 project('nemo', 'c', version: '4.6.2',
3 project('nemo', 'c', version: '4.6.3',
44 meson_version: '>=0.41.0'
55 )
66
705705 }
706706 }
707707
708 #define LAYOUT_GAP 4
708 #define ICON_TEXT_GAP 4
709 #define COLUMN_GAP 4
710 #define ROW_GAP 10
709711
710712 static void
711713 lay_down_icons_horizontal (NemoIconContainer *container,
727729 int i;
728730 int num_columns;
729731 double ppu;
730 int gap;
732 int icon_text_gap, column_gap, row_gap;
731733 int device_canvas_width;
732734 GtkAllocation allocation;
733735 gint icon_size, text_size, use_size;
746748 max_icon_width = max_text_width = 0.0;
747749
748750 ppu = EEL_CANVAS (container)->pixels_per_unit;
749 gap = floor (LAYOUT_GAP / ppu);
751 icon_text_gap = floor (ICON_TEXT_GAP / ppu);
752 column_gap = floor (COLUMN_GAP / ppu);
753 row_gap = floor (ROW_GAP / ppu);
750754
751755 device_canvas_width = floor (canvas_width * ppu);
752756 icon_size = nemo_get_icon_size_for_zoom_level (container->details->zoom_level);
766770 max_text_width = MAX (max_text_width, ceil (text_bounds.x1 - text_bounds.x0));
767771 }
768772
769 grid_width = max_icon_width + max_text_width + gap;
773 grid_width = max_icon_width + max_text_width + column_gap;
770774 } else {
771775 num_columns = device_canvas_width / use_size;
772776 /* Minimum of one column */
775779 grid_width = (((device_canvas_width / num_columns) / ppu) - 1.0);
776780 }
777781
778 line_width = container->details->label_position == NEMO_ICON_LABEL_POSITION_BESIDE ? gap : 0;
782 line_width = container->details->label_position == NEMO_ICON_LABEL_POSITION_BESIDE ? column_gap : 0;
779783 line_start = icons;
780 y = start_y + gap;
784 y = start_y + row_gap;
781785 i = 0;
782786
783787 for (p = icons; p != NULL; p = p->next) {
798802 /* If this icon doesn't fit, it's time to lay out the line that's queued up. */
799803 if (line_start != p && line_width + icon_width >= canvas_width ) {
800804 if (container->details->label_position == NEMO_ICON_LABEL_POSITION_BESIDE) {
801 y += gap;
805 y += row_gap;
802806 } else {
803807 /* Advance to the baseline. */
804 y += gap + icon_size;
808 y += icon_text_gap + icon_size;
805809 }
806810
807 lay_down_one_line (container, line_start, p, y, icon_size, positions, FALSE, gap);
811 lay_down_one_line (container, line_start, p, y, icon_size, positions, FALSE, column_gap);
808812
809813 if (container->details->label_position == NEMO_ICON_LABEL_POSITION_BESIDE) {
810 y += gap + icon_size;
814 y += row_gap + icon_size;
811815 } else {
812816 /* Advance to next line. */
813 y += container->details->fixed_text_height + gap;
817 y += container->details->fixed_text_height + row_gap;
814818 }
815819
816 line_width = container->details->label_position == NEMO_ICON_LABEL_POSITION_BESIDE ? gap : 0;
820 line_width = container->details->label_position == NEMO_ICON_LABEL_POSITION_BESIDE ? column_gap : 0;
817821 line_start = p;
818822 i = 0;
819823 }
824828 position->height = icon_bounds.y1 - icon_bounds.y0;
825829
826830 if (container->details->label_position == NEMO_ICON_LABEL_POSITION_BESIDE) {
827 position->x_offset = max_icon_width + (2 * gap) - (icon_bounds.x1 - icon_bounds.x0);
831 position->x_offset = max_icon_width + (2 * row_gap) - (icon_bounds.x1 - icon_bounds.x0);
828832 position->y_offset = 0;
829833 } else {
830834 position->x_offset = (icon_width - (icon_bounds.x1 - icon_bounds.x0)) / 2;
838842 /* Lay down that last line of icons. */
839843 if (line_start != NULL) {
840844 if (container->details->label_position == NEMO_ICON_LABEL_POSITION_BESIDE) {
841 y += gap;
845 y += row_gap;
842846 } else {
843847 /* Advance to the baseline. */
844 y += gap + icon_size;
848 y += icon_text_gap + icon_size;
845849 }
846850
847 lay_down_one_line (container, line_start, NULL, y, icon_size, positions, TRUE, gap);
851 lay_down_one_line (container, line_start, NULL, y, icon_size, positions, TRUE, column_gap);
848852 }
849853
850854 g_array_free (positions, TRUE);
890894 }
891895
892896 ppu = EEL_CANVAS (container)->pixels_per_unit;
893 gap = floor (LAYOUT_GAP / ppu);
897 gap = floor (ICON_TEXT_GAP / ppu);
894898
895899 positions = g_array_new (FALSE, FALSE, sizeof (NemoCanvasRects));
896900 gtk_widget_get_allocation (GTK_WIDGET (container), &allocation);
20382042 static gint
20392043 nemo_icon_view_container_get_additional_text_line_count (NemoIconContainer *container)
20402044 {
2041 G_GNUC_UNUSED GQuark *attributes;
2042 gint len;
2045 GQuark *attributes;
2046 gint len, i, real_count;
20432047
20442048 attributes = nemo_icon_view_container_get_icon_text_attribute_names (container, &len);
20452049
2046 return len;
2050 i = 0;
2051 real_count = 0;
2052
2053 for (i = 0; i < len; ++i) {
2054 if (attributes[i] == attribute_none_q) {
2055 continue;
2056 }
2057
2058 real_count++;
2059 }
2060
2061 return real_count;
20472062 }
20482063
20492064 static void