summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCam Cook <cam.cook@linux.com>2022-12-23 11:02:18 -0500
committerCam Cook <cam.cook@linux.com>2022-12-23 11:02:18 -0500
commit424d56830a2bb16da77bce43f04ae2c1b54d3ff8 (patch)
tree047493c5633b9182b5a5f14639f4c58ad58e8392
parent7fc4d0285159bf99953340a9d815e7a7b7cd99fc (diff)
parentf6bd63c9ad70936ef0dbfd33853649ae4f6f35e8 (diff)
downloadgtk+-424d56830a2bb16da77bce43f04ae2c1b54d3ff8.tar.gz
Merge remote-tracking branch 'upstream/main' into ccook/doc-changes-1
-rw-r--r--.gitlab-ci.yml99
-rw-r--r--.gitlab-ci/fedora.Dockerfile9
-rwxr-xr-x.gitlab-ci/run-tests.sh2
-rw-r--r--.gitlab-ci/test-msvc.bat2
-rw-r--r--demos/gtk-demo/meson.build2
-rw-r--r--demos/gtk-demo/pickers.c54
-rw-r--r--demos/node-editor/meson.build4
-rw-r--r--demos/node-editor/node-editor-window.c48
-rw-r--r--demos/widget-factory/meson.build2
-rw-r--r--docs/reference/gtk/building.md2
-rw-r--r--docs/reference/gtk/getting_started.md14
-rw-r--r--docs/reference/meson.build2
-rw-r--r--examples/action-namespace.c2
-rw-r--r--examples/bp/bloatpad.c4
-rw-r--r--examples/builder.c2
-rw-r--r--examples/drawing.c2
-rw-r--r--examples/grid-packing.c2
-rw-r--r--examples/hello/hello-world.c2
-rw-r--r--examples/plugman.c2
-rw-r--r--examples/search-bar.c5
-rw-r--r--examples/sunny.c2
-rw-r--r--examples/window-default.c2
-rw-r--r--gdk/gdk.c6
-rw-r--r--gdk/gdkcontentserializer.c20
-rw-r--r--gdk/gdkdebugprivate.h3
-rw-r--r--gdk/gdkdevicetool.c6
-rw-r--r--gdk/gdkevents.c9
-rw-r--r--gdk/gdkprivate.h19
-rw-r--r--gdk/gdkvulkancontext.c20
-rw-r--r--gdk/macos/gdkmacosdisplay-translate.c7
-rw-r--r--gdk/macos/gdkmacosdisplay.c3
-rw-r--r--gdk/macos/gdkmacosglcontext.c2
-rw-r--r--gdk/macos/gdkmacoskeymap.c4
-rw-r--r--gdk/macos/gdkmacosmonitor.c2
-rw-r--r--gdk/macos/gdkmacossurface.c6
-rw-r--r--gdk/win32/gdkclipdrop-win32.c24
-rw-r--r--gdk/win32/gdkevents-win32.c42
-rw-r--r--gdk/x11/gdksurface-x11.c2
-rw-r--r--gtk/deprecated/gtkappchooserbutton.c2
-rw-r--r--gtk/deprecated/gtkappchooserwidget.c10
-rw-r--r--gtk/deprecated/gtkshow.c (renamed from gtk/gtkshow.c)8
-rw-r--r--gtk/deprecated/gtkshow.h (renamed from gtk/gtkshow.h)6
-rw-r--r--gtk/deprecated/gtktreeview.c14
-rw-r--r--gtk/deprecated/meson.build2
-rw-r--r--gtk/gen-gtk-gresources-xml.py4
-rw-r--r--gtk/gopenuriportal.c333
-rw-r--r--gtk/gopenuriportal.h19
-rw-r--r--gtk/gtk.h3
-rw-r--r--gtk/gtkaboutdialog.c18
-rw-r--r--gtk/gtkatcontext.c32
-rw-r--r--gtk/gtkbuilderscope.c4
-rw-r--r--gtk/gtkcheckbutton.c5
-rw-r--r--gtk/gtkcolordialog.c3
-rw-r--r--gtk/gtkcolordialogbutton.c8
-rw-r--r--gtk/gtkcolumnviewtitle.c13
-rw-r--r--gtk/gtkcomposetable.c3
-rw-r--r--gtk/gtkemojichooser.c2
-rw-r--r--gtk/gtkfilechooserprivate.h1
-rw-r--r--gtk/gtkfilechooserwidget.c241
-rw-r--r--gtk/gtkfiledialog.c106
-rw-r--r--gtk/gtkfiledialog.h7
-rw-r--r--gtk/gtkfilelauncher.c502
-rw-r--r--gtk/gtkfilelauncher.h68
-rw-r--r--gtk/gtkfilethumbnail.c49
-rw-r--r--gtk/gtkfilethumbnail.h4
-rw-r--r--gtk/gtkfontdialog.c17
-rw-r--r--gtk/gtkfontdialogbutton.c17
-rw-r--r--gtk/gtkgesturestylus.c122
-rw-r--r--gtk/gtkgesturestylus.h6
-rw-r--r--gtk/gtkicontheme.c56
-rw-r--r--gtk/gtkimage.c88
-rw-r--r--gtk/gtkimcontextwayland.c14
-rw-r--r--gtk/gtklabel.c12
-rw-r--r--gtk/gtklinkbutton.c15
-rw-r--r--gtk/gtklistbase.c129
-rw-r--r--gtk/gtklistbox.c2
-rw-r--r--gtk/gtklistitemwidget.c18
-rw-r--r--gtk/gtkmenubutton.c2
-rw-r--r--gtk/gtknotebook.c4
-rw-r--r--gtk/gtkpathbar.c564
-rw-r--r--gtk/gtkpopover.c8
-rw-r--r--gtk/gtkprintoperation-portal.c15
-rw-r--r--gtk/gtkprintoperation-unix.c15
-rw-r--r--gtk/gtkwidget.c4
-rw-r--r--gtk/gtkwidget.h4
-rw-r--r--gtk/gtkwindow.c5
-rw-r--r--gtk/icons/hicolor.index.theme3805
-rw-r--r--gtk/meson.build28
-rw-r--r--gtk/org.gtk.gtk4.Settings.FileChooser.gschema.xml12
-rw-r--r--gtk/theme/Default/_common.scss40
-rw-r--r--gtk/ui/gtkappchooserdialog.ui6
-rw-r--r--gtk/ui/gtkfilechooserwidget.ui104
-rw-r--r--meson.build86
-rw-r--r--meson_options.txt5
-rw-r--r--po/LINGUAS1
-rw-r--r--po/POTFILES.in3
-rw-r--r--po/fa.po687
-rw-r--r--po/ie.po7810
-rw-r--r--po/ru.po672
-rw-r--r--po/uk.po1511
-rw-r--r--subprojects/cairo.wrap14
-rw-r--r--subprojects/fribidi.wrap9
-rw-r--r--subprojects/gdk-pixbuf.wrap14
-rw-r--r--subprojects/gi-docgen.wrap13
-rw-r--r--subprojects/glib.wrap14
-rw-r--r--subprojects/graphene.wrap11
-rw-r--r--subprojects/harfbuzz.wrap13
-rw-r--r--subprojects/libcloudproviders.wrap12
-rw-r--r--subprojects/libepoxy.wrap11
-rw-r--r--subprojects/pango.wrap17
-rw-r--r--subprojects/sassc.wrap11
-rw-r--r--subprojects/sysprof.wrap11
-rw-r--r--subprojects/wayland.wrap9
-rw-r--r--tests/animated-resizing.c2
-rw-r--r--tests/animated-revealing.c2
-rw-r--r--tests/listmodel.c2
-rw-r--r--tests/motion-compression.c2
-rw-r--r--tests/overlayscroll.c2
-rw-r--r--tests/scrolling-performance.c2
-rw-r--r--tests/showrendernode.c2
-rw-r--r--tests/simple.c2
-rw-r--r--tests/syncscroll.c2
-rw-r--r--tests/testaccel.c2
-rw-r--r--tests/testadjustsize.c8
-rw-r--r--tests/testappchooser.c4
-rw-r--r--tests/testappchooserbutton.c2
-rw-r--r--tests/testassistant.c4
-rw-r--r--tests/testbaseline.c2
-rw-r--r--tests/testblur.c2
-rw-r--r--tests/testborderdrawing.c2
-rw-r--r--tests/testcalendar.c2
-rw-r--r--tests/testcellarea.c6
-rw-r--r--tests/testcellrenderertext.c2
-rw-r--r--tests/testcenterbox.c2
-rw-r--r--tests/testclipboard2.c2
-rw-r--r--tests/testcolumnview.c2
-rw-r--r--tests/testcombo.c3
-rw-r--r--tests/testcombochange.c2
-rw-r--r--tests/testdatatable.c2
-rw-r--r--tests/testdnd.c6
-rw-r--r--tests/testdnd2.c2
-rw-r--r--tests/testellipsise.c2
-rw-r--r--tests/testentrycompletion.c2
-rw-r--r--tests/testentryicons.c2
-rw-r--r--tests/testexpand.c4
-rw-r--r--tests/testfilechooser.c11
-rw-r--r--tests/testflowbox.c2
-rw-r--r--tests/testfontchooserdialog.c2
-rw-r--r--tests/testfontoptions.c2
-rw-r--r--tests/testframe.c2
-rw-r--r--tests/testfullscreen.c2
-rw-r--r--tests/testgaction.c2
-rw-r--r--tests/testglarea.c2
-rw-r--r--tests/testglblending.c2
-rw-r--r--tests/testgmenu.c2
-rw-r--r--tests/testgrid.c16
-rw-r--r--tests/testgridbaseline.c2
-rw-r--r--tests/testgrouping.c2
-rw-r--r--tests/testgtk.c69
-rw-r--r--tests/testheaderbar.c18
-rw-r--r--tests/testheightforwidth.c4
-rw-r--r--tests/testhover.c18
-rw-r--r--tests/testiconview-keynav.c2
-rw-r--r--tests/testiconview.c2
-rw-r--r--tests/testinfobar.c2
-rw-r--r--tests/testinhibitshortcuts.c2
-rw-r--r--tests/testkineticscrolling.c2
-rw-r--r--tests/testlevelbar.c2
-rw-r--r--tests/testlist.c2
-rw-r--r--tests/testlist2.c2
-rw-r--r--tests/testlist3.c2
-rw-r--r--tests/testlist4.c2
-rw-r--r--tests/testlistview-animating.c2
-rw-r--r--tests/testlistview.c2
-rw-r--r--tests/testlockbutton.c4
-rw-r--r--tests/testlogout.c2
-rw-r--r--tests/testmenubutton.c2
-rw-r--r--tests/testmodelbutton.c2
-rw-r--r--tests/testnotebookdnd.c6
-rw-r--r--tests/testoutsetshadowdrawing.c2
-rw-r--r--tests/testoverlay.c16
-rw-r--r--tests/testoverlaystyleclass.c2
-rw-r--r--tests/testplacesview.c2
-rw-r--r--tests/testpopover.c2
-rw-r--r--tests/testrevealer.c2
-rw-r--r--tests/testscale.c4
-rw-r--r--tests/testscrolledge.c8
-rw-r--r--tests/testscrolledwindow.c2
-rw-r--r--tests/testselectionmode.c14
-rw-r--r--tests/testsensitive.c2
-rw-r--r--tests/testspinbutton.c2
-rw-r--r--tests/teststack.c2
-rw-r--r--tests/testswitch.c2
-rw-r--r--tests/testtextscroll.c2
-rw-r--r--tests/testtexture.c2
-rw-r--r--tests/testtextview.c2
-rw-r--r--tests/testtextview2.c2
-rw-r--r--tests/testtooltips.c2
-rw-r--r--tests/testtransform.c2
-rw-r--r--tests/testtreechanging.c2
-rw-r--r--tests/testtreecolumns.c6
-rw-r--r--tests/testtreecolumnsizing.c2
-rw-r--r--tests/testtreednd.c2
-rw-r--r--tests/testtreeedit.c2
-rw-r--r--tests/testtreeflow.c2
-rw-r--r--tests/testtreefocus.c4
-rw-r--r--tests/testtreepos.c2
-rw-r--r--tests/testtreesort.c6
-rw-r--r--tests/testtreeview.c2
-rw-r--r--tests/testverticalcells.c2
-rw-r--r--tests/testvolumebutton.c4
-rw-r--r--tests/testwidgetfocus.c2
-rw-r--r--tests/testwidgettransforms.c2
-rw-r--r--tests/testwindowdrag.c2
-rw-r--r--tests/testwindowsize.c4
-rw-r--r--tests/treestoretest.c2
-rw-r--r--tests/video-timer.c2
-rw-r--r--testsuite/a11y/general.c2
-rw-r--r--testsuite/a11y/meson.build8
-rw-r--r--testsuite/a11y/window.c2
-rw-r--r--testsuite/css/change/meson.build30
-rw-r--r--testsuite/css/change/test-css-change.c2
-rw-r--r--testsuite/css/meson.build36
-rw-r--r--testsuite/css/nodes/meson.build76
-rw-r--r--testsuite/css/nodes/test-css-nodes.c2
-rw-r--r--testsuite/css/parser/meson.build25
-rw-r--r--testsuite/css/style/meson.build58
-rw-r--r--testsuite/css/style/test-css-style.c2
-rw-r--r--testsuite/gdk/meson.build46
-rw-r--r--testsuite/gsk/meson.build73
-rw-r--r--testsuite/gtk/displayclose.c2
-rw-r--r--testsuite/gtk/flowbox.c2
-rw-r--r--testsuite/gtk/gestures.c30
-rw-r--r--testsuite/gtk/listbox.c5
-rw-r--r--testsuite/gtk/meson.build50
-rw-r--r--testsuite/gtk/templates.c2
-rw-r--r--testsuite/gtk/test-focus-chain.c4
-rw-r--r--testsuite/gtk/treeview.c2
-rw-r--r--testsuite/gtk/window.c12
-rwxr-xr-xtestsuite/introspection/api.py5
-rw-r--r--testsuite/introspection/meson.build2
-rw-r--r--testsuite/reftests/meson.build5
-rw-r--r--testsuite/reftests/reftest-snapshot.c2
-rw-r--r--testsuite/tools/meson.build36
244 files changed, 15582 insertions, 3299 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a78287b8b5..7338279661 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -26,7 +26,7 @@ variables:
BACKEND_FLAGS: "-Dx11-backend=true -Dwayland-backend=true -Dbroadway-backend=true"
FEATURE_FLAGS: "-Dvulkan=enabled -Dcloudproviders=enabled"
MESON_TEST_TIMEOUT_MULTIPLIER: 3
- FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v38"
+ FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v40"
FLATPAK_IMAGE: "quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master"
.only-default:
@@ -71,11 +71,6 @@ style-check-diff:
key: "$CI_JOB_NAME"
paths:
- _ccache/
- - subprojects/gdk-pixbuf/
- - subprojects/glib/
- - subprojects/graphene/
- - subprojects/libepoxy/
- - subprojects/pango/
fedora-x86_64:
extends: .build-fedora-default
@@ -85,10 +80,17 @@ fedora-x86_64:
EXTRA_MESON_FLAGS: "--buildtype=debug --default-library=both"
script:
- .gitlab-ci/show-info-linux.sh
- - meson subprojects update
+ - export PATH="$HOME/.local/bin:$PATH"
+ - pip3 install --user meson~=0.64
+ - meson subprojects download
+ - meson subprojects update --reset
- mkdir _install
- - meson --prefix=${CI_PROJECT_DIR}/_install
- ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS}
+ - meson setup
+ --prefix=${CI_PROJECT_DIR}/_install
+ ${COMMON_MESON_FLAGS}
+ ${EXTRA_MESON_FLAGS}
+ ${BACKEND_FLAGS}
+ ${FEATURE_FLAGS}
_build
- meson compile -C _build
- meson install -C _build
@@ -107,10 +109,12 @@ release-build:
EXTRA_MESON_FLAGS: "--buildtype=release"
script:
- .gitlab-ci/show-info-linux.sh
- - meson subprojects update
- - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS}
- _build
- - ninja -C _build
+ - export PATH="$HOME/.local/bin:$PATH"
+ - pip3 install --user meson~=0.64
+ - meson subprojects download
+ - meson subprojects update --reset
+ - meson setup ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS} _build
+ - meson compile -C _build
- .gitlab-ci/run-tests.sh _build x11
fedora-mingw64:
@@ -131,34 +135,24 @@ fedora-mingw64:
# mingw64-graphene (rawhide)
script:
- .gitlab-ci/show-info-linux.sh
- - meson subprojects update
- - mkdir _build && cd _build
- - mingw64-meson -Dintrospection=disabled -Dgraphene:introspection=disabled
- - ninja
-
-installed-tests:
- extends: .build-fedora-default
- stage: build
- needs: []
- variables:
- EXTRA_MESON_FLAGS: "--prefix=/usr --libdir=/usr/lib64 -Dinstall-tests=true"
- G_TEST_ACCESSIBLE: 1
- script:
- - .gitlab-ci/show-info-linux.sh
- - meson subprojects update
- - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS}
- _build
+ - export PATH="$HOME/.local/bin:$PATH"
+ - pip3 install --user meson~=0.64
+ - meson subprojects download
+ - meson subprojects update --reset
+ # Test that mingw64-meson still fails. If it has stopped failing, the CI
+ # will fail and now you should remove the hack that follows this.
+ - FAILED=false
+ - mingw64-meson --version || FAILED=true
+ - test $FAILED = false && echo "mingw64-meson works now, remove the hack" && exit 1
+ # HACK: Running mingw64-meson directly fails on the CI with:
+ # /usr/bin/mingw64-meson: line 92: fg: no job control
+ # Because rpm is not evaluating %__meson and it gets interpreted as a job
+ # specifier. So we fix that and run it ourselves.
+ - rpm --eval "%{mingw64_meson}" > mingw64-meson.sh
+ - sed -i -e 's/%__meson/meson/' mingw64-meson.sh
+ - chmod +x mingw64-meson.sh
+ - ./mingw64-meson.sh -Dintrospection=disabled -Dgraphene:introspection=disabled _build
- ninja -C _build
- - sudo ninja -C _build install
- - dbus-run-session xvfb-run -a -s "-screen 0 1024x768x24"
- gnome-desktop-testing-runner
- --report-directory=_build/installed-tests-report/failed/
- --parallel=0
- gtk-4.0
- artifacts:
- paths:
- - "_build/installed-tests-report/"
-
.mingw-defaults:
extends: .only-default
@@ -191,6 +185,8 @@ msys2-mingw64:
- "${CI_PROJECT_DIR}/_build/gtkdll.tar.gz"
macos:
+ # Sadly, this fails regularly, and its failure is never enlightening
+ allow_failure: true
extends: .only-default
only:
- branches@GNOME/gtk
@@ -200,12 +196,13 @@ macos:
needs: []
before_script:
- bash .gitlab-ci/show-info-osx.sh
- - pip3 install --user meson==0.60.3
+ - pip3 install --user meson~=0.64
- pip3 install --user ninja
- export PATH=/Users/gitlabrunner/Library/Python/3.7/bin:$PATH
- export MESON_FORCE_BACKTRACE=1
script:
- - meson -Dx11-backend=false
+ - meson setup
+ -Dx11-backend=false
-Dbroadway-backend=true
-Dmacos-backend=true
-Dmedia-gstreamer=disabled
@@ -214,7 +211,7 @@ macos:
-Dpixman:tests=disabled
-Dlibjpeg-turbo:simd=disabled
_build
- - ninja -C _build
+ - meson compile -C _build
artifacts:
when: always
paths:
@@ -339,15 +336,17 @@ static-scan:
variables:
EXTRA_MESON_FLAGS: "--buildtype=debug"
script:
- - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} _scan_build
+ - export PATH="$HOME/.local/bin:$PATH"
+ - pip3 install --user meson~=0.64
+ - meson setup ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} _scan_build
- ninja -C _scan_build scan-build
artifacts:
paths:
- _scan_build/meson-logs
allow_failure: true
-# Run tests with the address sanitizer. We need to turn off introspection,
-# since it is incompatible with asan
+# Run tests with the address sanitizer. We need to turn off introspection
+# and f16c, since they are incompatible with asan
asan-build:
image: $FEDORA_IMAGE
tags: [ asan ]
@@ -355,7 +354,9 @@ asan-build:
needs: []
variables:
script:
- - CC=clang meson --buildtype=debugoptimized -Db_sanitize=address -Db_lundef=false -Dintrospection=disabled _build
+ - export PATH="$HOME/.local/bin:$PATH"
+ - pip3 install --user meson~=0.64
+ - CC=clang meson setup --buildtype=debugoptimized -Db_sanitize=address -Db_lundef=false -Dintrospection=disabled -Df16c=disabled _build
- ninja -C _build
- .gitlab-ci/run-tests.sh _build wayland
artifacts:
@@ -370,7 +371,9 @@ reference:
variables:
EXTRA_MESON_FLAGS: "--buildtype=release --force-fallback-for=gdk-pixbuf,pango"
script:
- - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} -Dgtk_doc=true -Dgdk-pixbuf:gtk_doc=true -Dpango:gtk_doc=true _build
+ - export PATH="$HOME/.local/bin:$PATH"
+ - pip3 install --user meson~=0.64
+ - meson setup ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} -Dgtk_doc=true -Dgdk-pixbuf:gtk_doc=true -Dpango:gtk_doc=true _build
- meson compile -C _build
- mkdir -p _reference/
- mv _build/docs/reference/gdk/gdk4/ _reference/gdk4/
diff --git a/.gitlab-ci/fedora.Dockerfile b/.gitlab-ci/fedora.Dockerfile
index 6800059bf7..4b61ed0e9a 100644
--- a/.gitlab-ci/fedora.Dockerfile
+++ b/.gitlab-ci/fedora.Dockerfile
@@ -1,4 +1,4 @@
-FROM fedora:36
+FROM fedora:37
RUN dnf -y install \
adwaita-icon-theme \
@@ -18,7 +18,9 @@ RUN dnf -y install \
dejavu-sans-mono-fonts \
desktop-file-utils \
diffutils \
+ docbook-style-xsl \
elfutils-libelf-devel \
+ expat-devel \
fribidi-devel \
gcc \
gcc-c++ \
@@ -31,6 +33,7 @@ RUN dnf -y install \
glibc-devel \
glibc-headers \
gnome-desktop-testing \
+ gnupg2 \
gobject-introspection-devel \
graphene-devel \
graphviz \
@@ -70,7 +73,6 @@ RUN dnf -y install \
mesa-dri-drivers \
mesa-libEGL-devel \
mesa-libGLES-devel \
- meson \
ninja-build \
pango-devel \
pcre-devel \
@@ -82,7 +84,6 @@ RUN dnf -y install \
python3-markdown \
python3-pip \
python3-pygments \
- python3-toml \
python3-typogrify \
python3-wheel \
redhat-rpm-config \
@@ -94,8 +95,6 @@ RUN dnf -y install \
weston-libs \
which \
xorg-x11-server-Xvfb \
- && dnf install -y 'dnf-command(builddep)' \
- && dnf builddep -y wayland \
&& dnf clean all
# Enable sudo for wheel users
diff --git a/.gitlab-ci/run-tests.sh b/.gitlab-ci/run-tests.sh
index b60c3b38cc..a4593532f3 100755
--- a/.gitlab-ci/run-tests.sh
+++ b/.gitlab-ci/run-tests.sh
@@ -8,7 +8,7 @@ builddir=$1
backend=$2
# Ignore memory leaks lower in dependencies
-export LSAN_OPTIONS=suppressions=$srcdir/lsan.supp:print_suppressions=0
+export LSAN_OPTIONS=suppressions=$srcdir/lsan.supp:print_suppressions=0:verbosity=1:log_threads=1
export G_SLICE=always-malloc
case "${backend}" in
diff --git a/.gitlab-ci/test-msvc.bat b/.gitlab-ci/test-msvc.bat
index cf8d9b130c..c985c413fc 100644
--- a/.gitlab-ci/test-msvc.bat
+++ b/.gitlab-ci/test-msvc.bat
@@ -5,7 +5,7 @@ call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliar
@echo on
:: FIXME: make warnings fatal
-pip3 install --upgrade --user meson==0.60.3 || goto :error
+pip3 install --upgrade --user meson~=0.64 || goto :error
meson -Ddebug=false -Dmedia-gstreamer=disabled _build || goto :error
ninja -C _build || goto :error
diff --git a/demos/gtk-demo/meson.build b/demos/gtk-demo/meson.build
index ef89fbc7d2..5537cf20a5 100644
--- a/demos/gtk-demo/meson.build
+++ b/demos/gtk-demo/meson.build
@@ -156,7 +156,7 @@ demos_h = custom_target('gtk4 demo header',
objcopy_supports_add_symbol = false
objcopy = find_program('objcopy', required : false)
if objcopy.found()
- objcopy_supports_add_symbol = run_command(objcopy, '--help').stdout().contains('--add-symbol')
+ objcopy_supports_add_symbol = run_command(objcopy, '--help', check: false).stdout().contains('--add-symbol')
endif
ld = find_program('ld', required : false)
diff --git a/demos/gtk-demo/pickers.c b/demos/gtk-demo/pickers.c
index 3a97fa7b37..bed57cecc5 100644
--- a/demos/gtk-demo/pickers.c
+++ b/demos/gtk-demo/pickers.c
@@ -10,6 +10,8 @@
#include <gtk/gtk.h>
+static GtkWidget *app_picker;
+
static void
file_opened (GObject *source,
GAsyncResult *result,
@@ -25,12 +27,17 @@ file_opened (GObject *source,
{
g_print ("%s\n", error->message);
g_error_free (error);
+ gtk_widget_set_sensitive (app_picker, FALSE);
+ g_object_set_data (G_OBJECT (app_picker), "file", NULL);
return;
}
name = g_file_get_basename (file);
gtk_label_set_label (GTK_LABEL (data), name);
g_free (name);
+
+ gtk_widget_set_sensitive (app_picker, TRUE);
+ g_object_set_data_full (G_OBJECT (app_picker), "file", g_object_ref (file), g_object_unref);
}
static gboolean
@@ -65,6 +72,36 @@ open_file (GtkButton *picker,
g_object_unref (dialog);
}
+static void
+launch_done (GObject *source,
+ GAsyncResult *result,
+ gpointer data)
+{
+ GtkFileLauncher *launcher = GTK_FILE_LAUNCHER (source);
+ GError *error = NULL;
+
+ if (!gtk_file_launcher_launch_finish (launcher, result, &error))
+ {
+ g_print ("%s\n", error->message);
+ g_error_free (error);
+ }
+}
+
+static void
+open_app (GtkButton *picker)
+{
+ GtkWindow *parent = GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (picker)));
+ GtkFileLauncher *launcher;
+ GFile *file;
+
+ file = G_FILE (g_object_get_data (G_OBJECT (picker), "file"));
+ launcher = gtk_file_launcher_new (file);
+
+ gtk_file_launcher_launch (launcher, parent, NULL, launch_done, NULL);
+
+ g_object_unref (launcher);
+}
+
GtkWidget *
do_pickers (GtkWidget *do_widget)
{
@@ -123,20 +160,17 @@ do_pickers (GtkWidget *do_widget)
gtk_box_append (GTK_BOX (picker), button);
gtk_grid_attach (GTK_GRID (table), picker, 1, 2, 1, 1);
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-
- label = gtk_label_new ("Mail:");
+ label = gtk_label_new ("Application:");
gtk_widget_set_halign (label, GTK_ALIGN_START);
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
gtk_widget_set_hexpand (label, TRUE);
+ gtk_grid_attach (GTK_GRID (table), label, 0, 4, 1, 1);
- picker = gtk_app_chooser_button_new ("x-scheme-handler/mailto");
- gtk_app_chooser_button_set_show_dialog_item (GTK_APP_CHOOSER_BUTTON (picker), TRUE);
-
-G_GNUC_END_IGNORE_DEPRECATIONS
-
- gtk_grid_attach (GTK_GRID (table), label, 0, 3, 1, 1);
- gtk_grid_attach (GTK_GRID (table), picker, 1, 3, 1, 1);
+ app_picker = gtk_button_new_from_icon_name ("emblem-system-symbolic");
+ gtk_widget_set_halign (app_picker, GTK_ALIGN_END);
+ gtk_widget_set_sensitive (app_picker, FALSE);
+ g_signal_connect (app_picker, "clicked", G_CALLBACK (open_app), NULL);
+ gtk_grid_attach (GTK_GRID (table), app_picker, 1, 4, 1, 1);
}
if (!gtk_widget_get_visible (window))
diff --git a/demos/node-editor/meson.build b/demos/node-editor/meson.build
index 03489f3f75..72d48cd12c 100644
--- a/demos/node-editor/meson.build
+++ b/demos/node-editor/meson.build
@@ -14,9 +14,7 @@ executable('gtk4-node-editor',
sources: [node_editor_sources, node_editor_resources],
dependencies: [ libgtk_dep, demo_conf_h ],
include_directories: confinc,
- c_args: [
- '-DNODE_EDITOR_SOURCE_DIR="@0@/../../testsuite/gsk/compare/"'.format(meson.current_source_dir())
- ] + common_cflags,
+ c_args: common_cflags,
win_subsystem: 'windows',
link_args: extra_demo_ldflags,
install: true,
diff --git a/demos/node-editor/node-editor-window.c b/demos/node-editor/node-editor-window.c
index 3a4800ff73..89110c64be 100644
--- a/demos/node-editor/node-editor-window.c
+++ b/demos/node-editor/node-editor-window.c
@@ -32,10 +32,6 @@
#include "gsk/vulkan/gskvulkanrenderer.h"
#endif
-#ifndef NODE_EDITOR_SOURCE_DIR
-#define NODE_EDITOR_SOURCE_DIR "." /* Fallback */
-#endif
-
typedef struct
{
gsize start_chars;
@@ -788,12 +784,52 @@ testcase_name_entry_changed_cb (GtkWidget *button,
gtk_widget_set_sensitive (self->testcase_save_button, FALSE);
}
+/* Returns the location where gsk test cases are stored in
+ * the GTK testsuite, if we can determine it.
+ *
+ * When running node editor outside of a GTK build, you can
+ * set GTK_SOURCE_DIR to point it at the checkout.
+ */
+static char *
+get_source_dir (void)
+{
+ const char *subdir = "testsuite/gsk/compare";
+ const char *source_dir;
+ char *current_dir;
+ char *dir;
+
+ source_dir = g_getenv ("GTK_SOURCE_DIR");
+ current_dir = g_get_current_dir ();
+
+ if (source_dir)
+ {
+ char *abs_source_dir = g_canonicalize_filename (source_dir, NULL);
+ dir = g_canonicalize_filename (subdir, abs_source_dir);
+ g_free (abs_source_dir);
+ }
+ else
+ {
+ dir = g_canonicalize_filename (subdir, current_dir);
+ }
+
+ if (g_file_test (dir, G_FILE_TEST_EXISTS))
+ {
+ g_free (current_dir);
+
+ return dir;
+ }
+
+ g_free (dir);
+
+ return current_dir;
+}
+
static void
testcase_save_clicked_cb (GtkWidget *button,
NodeEditorWindow *self)
{
const char *testcase_name = gtk_editable_get_text (GTK_EDITABLE (self->testcase_name_entry));
- char *source_dir = g_canonicalize_filename (NODE_EDITOR_SOURCE_DIR, NULL);
+ char *source_dir = get_source_dir ();
char *node_file_name;
char *node_file;
char *png_file_name;
@@ -806,6 +842,8 @@ testcase_save_clicked_cb (GtkWidget *button,
node_file = g_build_filename (source_dir, node_file_name, NULL);
g_free (node_file_name);
+ g_debug ("Saving testcase in %s", node_file);
+
png_file_name = g_strconcat (testcase_name, ".png", NULL);
png_file = g_build_filename (source_dir, png_file_name, NULL);
g_free (png_file_name);
diff --git a/demos/widget-factory/meson.build b/demos/widget-factory/meson.build
index 550eb09bd9..0513555a3f 100644
--- a/demos/widget-factory/meson.build
+++ b/demos/widget-factory/meson.build
@@ -3,7 +3,7 @@
objcopy_supports_add_symbol = false
objcopy = find_program('objcopy', required : false)
if objcopy.found()
- objcopy_supports_add_symbol = run_command(objcopy, '--help').stdout().contains('--add-symbol')
+ objcopy_supports_add_symbol = run_command(objcopy, '--help', check: false).stdout().contains('--add-symbol')
endif
ld = find_program('ld', required : false)
diff --git a/docs/reference/gtk/building.md b/docs/reference/gtk/building.md
index 31073d1d04..2be7da9916 100644
--- a/docs/reference/gtk/building.md
+++ b/docs/reference/gtk/building.md
@@ -294,7 +294,7 @@ is mainly useful for shortening turnaround times on developer
systems. Installed builds of GTK should always have introspection
support.
-### `build-tests`, `install-tests`, `demos`
+### `build-tests`, `demos`
By default, GTK will build quite a few tests and demos.
While these are useful on a developer system, they are not
diff --git a/docs/reference/gtk/getting_started.md b/docs/reference/gtk/getting_started.md
index bde0a6d0d0..03660763f1 100644
--- a/docs/reference/gtk/getting_started.md
+++ b/docs/reference/gtk/getting_started.md
@@ -51,7 +51,7 @@ main (int argc,
GtkApplication *app;
int status;
- app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
+ app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
@@ -189,7 +189,7 @@ main (int argc,
GtkApplication *app;
int status;
- app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
+ app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
@@ -338,7 +338,7 @@ main (int argc,
GtkApplication *app;
int status;
- app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
+ app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
@@ -560,7 +560,7 @@ main (int argc,
GtkApplication *app;
int status;
- app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
+ app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
@@ -641,7 +641,7 @@ main (int argc,
g_chdir (GTK_SRCDIR);
#endif
- GtkApplication *app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
+ GtkApplication *app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
int status = g_application_run (G_APPLICATION (app), argc, argv);
@@ -1018,6 +1018,10 @@ Our application now looks like this:
In this step, we make our application show the content of all the files
that it is given on the commandline.
+**Note: Providing filenames (e.g. `./exampleapp examplewin.c examplewin.h`) at
+the command line is a requirement for example apps 3-9 to display as shown in
+the screenshots below.**
+
To this end, we add a member to the struct of our application window subclass
and keep a reference to the `GtkStack` there. The first member of the struct
should be the parent type from which the class is derived. Here,
diff --git a/docs/reference/meson.build b/docs/reference/meson.build
index df5e3d9909..292e82163e 100644
--- a/docs/reference/meson.build
+++ b/docs/reference/meson.build
@@ -1,7 +1,7 @@
toml_conf = configuration_data()
toml_conf.set('version', meson.project_version())
-gidocgen = find_program('gi-docgen', required: get_option('gtk_doc'))
+gidocgen = find_program('gi-docgen', required: get_option('gtk_doc'), native: true)
gidocgen_common_args = [
'--quiet',
diff --git a/examples/action-namespace.c b/examples/action-namespace.c
index fb0247c482..9170600e45 100644
--- a/examples/action-namespace.c
+++ b/examples/action-namespace.c
@@ -106,7 +106,7 @@ activate (GApplication *app,
gtk_widget_set_halign (GTK_WIDGET (button), GTK_ALIGN_CENTER);
gtk_widget_set_valign (GTK_WIDGET (button), GTK_ALIGN_START);
gtk_window_set_child (GTK_WINDOW (window), button);
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
g_object_unref (button_menu);
g_object_unref (doc_actions);
diff --git a/examples/bp/bloatpad.c b/examples/bp/bloatpad.c
index 0054d77a67..78ea8deb2d 100644
--- a/examples/bp/bloatpad.c
+++ b/examples/bp/bloatpad.c
@@ -292,7 +292,7 @@ new_window (GApplication *app,
G_CALLBACK (text_buffer_changed_cb), window);
text_buffer_changed_cb (gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)), window);
- gtk_widget_show (GTK_WIDGET (window));
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -465,7 +465,7 @@ edit_accels (GSimpleAction *action,
gtk_drop_down_set_selected (GTK_DROP_DOWN (combo), 0);
- gtk_widget_show (dialog);
+ gtk_window_present (GTK_WINDOW (dialog));
}
static gboolean
diff --git a/examples/builder.c b/examples/builder.c
index 5a93c974ae..353cf5aa20 100644
--- a/examples/builder.c
+++ b/examples/builder.c
@@ -37,7 +37,7 @@ activate (GtkApplication *app,
button = gtk_builder_get_object (builder, "quit");
g_signal_connect_swapped (button, "clicked", G_CALLBACK (quit_cb), window);
- gtk_widget_show (GTK_WIDGET (window));
+ gtk_window_present (GTK_WINDOW (window));
g_object_unref (builder);
}
diff --git a/examples/drawing.c b/examples/drawing.c
index 5a12a89e6f..805975d228 100644
--- a/examples/drawing.c
+++ b/examples/drawing.c
@@ -164,7 +164,7 @@ activate (GtkApplication *app,
g_signal_connect (press, "pressed", G_CALLBACK (pressed), drawing_area);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
int
diff --git a/examples/grid-packing.c b/examples/grid-packing.c
index 7d98c9a1db..b7d78b46e7 100644
--- a/examples/grid-packing.c
+++ b/examples/grid-packing.c
@@ -49,7 +49,7 @@ activate (GtkApplication *app,
*/
gtk_grid_attach (GTK_GRID (grid), button, 0, 1, 2, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
diff --git a/examples/hello/hello-world.c b/examples/hello/hello-world.c
index a597a97573..3f501dfe64 100644
--- a/examples/hello/hello-world.c
+++ b/examples/hello/hello-world.c
@@ -27,7 +27,7 @@ activate (GtkApplication *app,
gtk_window_set_child (GTK_WINDOW (window), button);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
int
diff --git a/examples/plugman.c b/examples/plugman.c
index da91f9de99..8fb19d7b91 100644
--- a/examples/plugman.c
+++ b/examples/plugman.c
@@ -112,7 +112,7 @@ new_window (GApplication *app,
}
}
- gtk_widget_show (GTK_WIDGET (window));
+ gtk_window_present (GTK_WINDOW (window));
}
static void
diff --git a/examples/search-bar.c b/examples/search-bar.c
index f60e1e8cfe..62f034e4b5 100644
--- a/examples/search-bar.c
+++ b/examples/search-bar.c
@@ -2,7 +2,7 @@
static void
activate_cb (GtkApplication *app,
- gpointer user_data)
+ gpointer user_data)
{
GtkWidget *window;
GtkWidget *search_bar;
@@ -11,12 +11,11 @@ activate_cb (GtkApplication *app,
GtkWidget *menu_button;
window = gtk_application_window_new (app);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
search_bar = gtk_search_bar_new ();
gtk_widget_set_valign (search_bar, GTK_ALIGN_START);
gtk_window_set_child (GTK_WINDOW (window), search_bar);
- gtk_widget_show (search_bar);
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
gtk_search_bar_set_child (GTK_SEARCH_BAR (search_bar), box);
diff --git a/examples/sunny.c b/examples/sunny.c
index c4aeba52f6..34e717d98c 100644
--- a/examples/sunny.c
+++ b/examples/sunny.c
@@ -43,7 +43,7 @@ new_window (GApplication *app,
}
}
- gtk_widget_show (GTK_WIDGET (window));
+ gtk_window_present (GTK_WINDOW (window));
}
static void
diff --git a/examples/window-default.c b/examples/window-default.c
index 96d7cb85be..86ff66b4bc 100644
--- a/examples/window-default.c
+++ b/examples/window-default.c
@@ -9,7 +9,7 @@ activate (GtkApplication* app,
window = gtk_application_window_new (app);
gtk_window_set_title (GTK_WINDOW (window), "Window");
gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
int
diff --git a/gdk/gdk.c b/gdk/gdk.c
index 25e2d9af63..3d1457e075 100644
--- a/gdk/gdk.c
+++ b/gdk/gdk.c
@@ -118,7 +118,8 @@ static const GdkDebugKey gdk_debug_keys[] = {
{ "selection", GDK_DEBUG_SELECTION, "Information about selections" },
{ "clipboard", GDK_DEBUG_CLIPBOARD, "Information about clipboards" },
{ "nograbs", GDK_DEBUG_NOGRABS, "Disable pointer and keyboard grabs (X11)", TRUE },
- { "portals", GDK_DEBUG_PORTALS, "Force the use of portals", TRUE },
+ { "portals", GDK_DEBUG_PORTALS, "Force use of portals", TRUE },
+ { "no-portals", GDK_DEBUG_NO_PORTALS, "Disable use of portals", TRUE },
{ "gl-disable", GDK_DEBUG_GL_DISABLE, "Disable OpenGL support", TRUE },
{ "gl-debug", GDK_DEBUG_GL_DEBUG, "Insert debugging information in OpenGL", TRUE },
{ "gl-legacy", GDK_DEBUG_GL_LEGACY, "Use a legacy OpenGL context", TRUE },
@@ -359,6 +360,9 @@ gdk_should_use_portal (void)
if (gdk_display_get_debug_flags (NULL) & GDK_DEBUG_PORTALS)
return TRUE;
+ if (gdk_display_get_debug_flags (NULL) & GDK_DEBUG_NO_PORTALS)
+ return FALSE;
+
if (gdk_running_in_sandbox ())
return TRUE;
diff --git a/gdk/gdkcontentserializer.c b/gdk/gdkcontentserializer.c
index 2ffbbf5ae5..da9f668d8c 100644
--- a/gdk/gdkcontentserializer.c
+++ b/gdk/gdkcontentserializer.c
@@ -795,6 +795,22 @@ file_serializer_finish (GObject *source,
gdk_content_serializer_return_success (serializer);
}
+static char *
+file_get_native_uri (GFile *file)
+{
+ char *path;
+
+ path = g_file_get_path (file);
+ if (path != NULL)
+ {
+ char *uri = g_filename_to_uri (path, NULL, NULL);
+ g_free (path);
+ return uri;
+ }
+
+ return g_file_get_uri (file);
+}
+
static void
file_uri_serializer (GdkContentSerializer *serializer)
{
@@ -811,7 +827,7 @@ file_uri_serializer (GdkContentSerializer *serializer)
file = g_value_get_object (gdk_content_serializer_get_value (serializer));
if (file)
{
- uri = g_file_get_uri (file);
+ uri = file_get_native_uri (file);
g_string_append (str, uri);
g_free (uri);
}
@@ -827,7 +843,7 @@ file_uri_serializer (GdkContentSerializer *serializer)
for (l = g_value_get_boxed (value); l; l = l->next)
{
- uri = g_file_get_uri (l->data);
+ uri = file_get_native_uri (l->data);
g_string_append (str, uri);
g_free (uri);
g_string_append (str, "\r\n");
diff --git a/gdk/gdkdebugprivate.h b/gdk/gdkdebugprivate.h
index d778414d58..c9baba28a7 100644
--- a/gdk/gdkdebugprivate.h
+++ b/gdk/gdkdebugprivate.h
@@ -40,7 +40,8 @@ typedef enum {
/* flags below are influencing behavior */
GDK_DEBUG_NOGRABS = 1 << 11,
GDK_DEBUG_PORTALS = 1 << 12,
- GDK_DEBUG_GL_DISABLE = 1 << 13,
+ GDK_DEBUG_NO_PORTALS = 1 << 13,
+ GDK_DEBUG_GL_DISABLE = 1 << 14,
GDK_DEBUG_GL_LEGACY = 1 << 16,
GDK_DEBUG_GL_GLES = 1 << 17,
GDK_DEBUG_GL_DEBUG = 1 << 18,
diff --git a/gdk/gdkdevicetool.c b/gdk/gdkdevicetool.c
index e112926e59..1869cc348d 100644
--- a/gdk/gdkdevicetool.c
+++ b/gdk/gdkdevicetool.c
@@ -197,7 +197,7 @@ gdk_device_tool_get_serial (GdkDeviceTool *tool)
*
* Gets the hardware ID of this tool, or 0 if it's not known.
*
- * When non-zero, the identificator is unique for the given tool model,
+ * When non-zero, the identifier is unique for the given tool model,
* meaning that two identical tools will share the same @hardware_id,
* but will have different serial numbers (see
* [method@Gdk.DeviceTool.get_serial]).
@@ -205,9 +205,9 @@ gdk_device_tool_get_serial (GdkDeviceTool *tool)
* This is a more concrete (and device specific) method to identify
* a `GdkDeviceTool` than [method@Gdk.DeviceTool.get_tool_type],
* as a tablet may support multiple devices with the same
- * `GdkDeviceToolType`, but different hardware identificators.
+ * `GdkDeviceToolType`, but different hardware identifiers.
*
- * Returns: The hardware identificator of this tool.
+ * Returns: The hardware identifier of this tool.
*/
guint64
gdk_device_tool_get_hardware_id (GdkDeviceTool *tool)
diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c
index e63c54fcb4..6bb9c91a74 100644
--- a/gdk/gdkevents.c
+++ b/gdk/gdkevents.c
@@ -1174,9 +1174,16 @@ gdk_event_get_axes (GdkEvent *event,
double **axes,
guint *n_axes)
{
+ gboolean ret;
+
g_return_val_if_fail (GDK_IS_EVENT (event), FALSE);
- return GDK_EVENT_GET_CLASS (event)->get_axes (event, axes, n_axes);
+ ret = GDK_EVENT_GET_CLASS (event)->get_axes (event, axes, n_axes);
+
+ if (*axes == NULL)
+ return FALSE;
+
+ return ret;
}
double *
diff --git a/gdk/gdkprivate.h b/gdk/gdkprivate.h
index 0f37cb0d8b..b93e1800f5 100644
--- a/gdk/gdkprivate.h
+++ b/gdk/gdkprivate.h
@@ -23,4 +23,23 @@ void gdk_source_set_static_name_by_id (guint tag,
#define I_(string) g_intern_static_string (string)
#endif
+#if !GLIB_CHECK_VERSION (2, 75, 1)
+static inline gboolean
+g_set_str (char **str_pointer,
+ const char *new_str)
+{
+ char *copy;
+
+ if (*str_pointer == new_str ||
+ (*str_pointer && new_str && strcmp (*str_pointer, new_str) == 0))
+ return FALSE;
+
+ copy = g_strdup (new_str);
+ g_free (*str_pointer);
+ *str_pointer = copy;
+
+ return TRUE;
+}
+#endif
+
#endif /* __GDK__PRIVATE_H__ */
diff --git a/gdk/gdkvulkancontext.c b/gdk/gdkvulkancontext.c
index 70450f2334..c28327fbd2 100644
--- a/gdk/gdkvulkancontext.c
+++ b/gdk/gdkvulkancontext.c
@@ -94,7 +94,7 @@ gdk_vulkan_strerror (VkResult result)
* Because the Vulkan people don't make adding this too easy, here's
* the process to manage it:
* 1. go to
- * https://github.com/KhronosGroup/Vulkan-Headers/blob/master/include/vulkan/vulkan_core.h
+ * https://github.com/KhronosGroup/Vulkan-Headers/blob/main/include/vulkan/vulkan_core.h
* 2. Find the line where this enum value was added.
* 3. Click the commit that added this line.
* 4. The commit you're looking at now should also change
@@ -215,6 +215,10 @@ gdk_vulkan_strerror (VkResult result)
case VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT:
return "A requested pipeline creation would have required compilation, but the application requested compilation to not be performed. (VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT)";
#endif
+#if VK_HEADER_VERSION >= 213
+ case VK_ERROR_COMPRESSION_EXHAUSTED_EXT:
+ return "An image creation failed because internal resources required for compression are exhausted. (VK_ERROR_COMPRESSION_EXHAUSTED_EXT)";
+#endif
#if VK_HEADER_VERSION < 140
case VK_RESULT_RANGE_SIZE:
#endif
@@ -488,7 +492,7 @@ gdk_vulkan_context_end_frame (GdkDrawContext *draw_context,
priv->draw_semaphore
},
.swapchainCount = 1,
- .pSwapchains = (VkSwapchainKHR[]) {
+ .pSwapchains = (VkSwapchainKHR[]) {
priv->swapchain
},
.pImageIndices = (uint32_t[]) {
@@ -608,7 +612,7 @@ gdk_vulkan_context_real_init (GInitable *initable,
{
g_set_error_literal (error, GDK_VULKAN_ERROR, GDK_VULKAN_ERROR_NOT_AVAILABLE,
"No supported image format found.");
- goto out_surface;
+ goto out_surface;
}
priv->image_format = formats[i];
priv->has_present_region = device_supports_incremental_present (display->vk_physical_device);
@@ -1037,8 +1041,8 @@ gdk_display_create_vulkan_instance (GdkDisplay *display,
GDK_VK_CHECK (vkEnumerateInstanceExtensionProperties, NULL, &n_extensions, extensions);
used_extensions = g_ptr_array_new ();
- g_ptr_array_add (used_extensions, (gpointer) VK_KHR_SURFACE_EXTENSION_NAME);
- g_ptr_array_add (used_extensions, (gpointer) GDK_DISPLAY_GET_CLASS (display)->vk_extension_name);
+ g_ptr_array_add (used_extensions, (gpointer) VK_KHR_SURFACE_EXTENSION_NAME);
+ g_ptr_array_add (used_extensions, (gpointer) GDK_DISPLAY_GET_CLASS (display)->vk_extension_name);
for (i = 0; i < n_extensions; i++)
{
@@ -1118,7 +1122,7 @@ gdk_display_create_vulkan_instance (GdkDisplay *display,
if (have_debug_report)
{
PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT;
-
+
vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT) vkGetInstanceProcAddr (display->vk_instance, "vkCreateDebugReportCallbackEXT" );
GDK_VK_CHECK (vkCreateDebugReportCallbackEXT, display->vk_instance,
&(VkDebugReportCallbackCreateInfoEXT) {
@@ -1167,7 +1171,7 @@ gdk_display_ref_vulkan (GdkDisplay *display,
}
display->vulkan_refcount++;
-
+
return TRUE;
}
@@ -1180,7 +1184,7 @@ gdk_display_unref_vulkan (GdkDisplay *display)
display->vulkan_refcount--;
if (display->vulkan_refcount > 0)
return;
-
+
vkDestroyDevice (display->vk_device, NULL);
display->vk_device = VK_NULL_HANDLE;
if (display->vk_debug_callback != VK_NULL_HANDLE)
diff --git a/gdk/macos/gdkmacosdisplay-translate.c b/gdk/macos/gdkmacosdisplay-translate.c
index 502a9a8cac..b06dc83dbe 100644
--- a/gdk/macos/gdkmacosdisplay-translate.c
+++ b/gdk/macos/gdkmacosdisplay-translate.c
@@ -760,16 +760,9 @@ find_surface_under_pointer (GdkMacosDisplay *self,
int *x,
int *y)
{
- GdkPointerSurfaceInfo *info;
GdkMacosSurface *surface;
- GdkDevice *pointer;
- GdkSeat *seat;
int x_tmp, y_tmp;
- seat = gdk_display_get_default_seat (GDK_DISPLAY (self));
- pointer = gdk_seat_get_pointer (seat);
- info = _gdk_display_get_pointer_info (GDK_DISPLAY (self), pointer);
-
surface = _gdk_macos_display_get_surface_at_display_coords (self,
screen_point.x,
screen_point.y,
diff --git a/gdk/macos/gdkmacosdisplay.c b/gdk/macos/gdkmacosdisplay.c
index a999908d88..0e5a9b8eb6 100644
--- a/gdk/macos/gdkmacosdisplay.c
+++ b/gdk/macos/gdkmacosdisplay.c
@@ -870,15 +870,12 @@ _gdk_macos_display_get_surface_at_coords (GdkMacosDisplay *self,
for (const GList *iter = surfaces; iter; iter = iter->next)
{
GdkSurface *surface = iter->data;
- NSWindow *nswindow;
g_assert (GDK_IS_MACOS_SURFACE (surface));
if (!gdk_surface_get_mapped (surface))
continue;
- nswindow = _gdk_macos_surface_get_native (GDK_MACOS_SURFACE (surface));
-
if (x >= GDK_MACOS_SURFACE (surface)->root_x &&
y >= GDK_MACOS_SURFACE (surface)->root_y &&
x <= (GDK_MACOS_SURFACE (surface)->root_x + surface->width) &&
diff --git a/gdk/macos/gdkmacosglcontext.c b/gdk/macos/gdkmacosglcontext.c
index 20ed528ff9..8b6b928d5f 100644
--- a/gdk/macos/gdkmacosglcontext.c
+++ b/gdk/macos/gdkmacosglcontext.c
@@ -460,12 +460,10 @@ gdk_macos_gl_context_begin_frame (GdkDrawContext *context,
{
GdkMacosGLContext *self = (GdkMacosGLContext *)context;
GdkMacosBuffer *buffer;
- cairo_region_t *copy;
GdkSurface *surface;
g_assert (GDK_IS_MACOS_GL_CONTEXT (self));
- copy = cairo_region_copy (region);
surface = gdk_draw_context_get_surface (context);
buffer = _gdk_macos_surface_get_buffer (GDK_MACOS_SURFACE (surface));
diff --git a/gdk/macos/gdkmacoskeymap.c b/gdk/macos/gdkmacoskeymap.c
index 5cf34d3ed3..a286c093bb 100644
--- a/gdk/macos/gdkmacoskeymap.c
+++ b/gdk/macos/gdkmacoskeymap.c
@@ -276,10 +276,8 @@ gdk_macos_keymap_update (GdkMacosKeymap *self)
{
UInt32 state = 0;
OSStatus err;
- UInt16 key_code;
UniChar uc;
- key_code = modifiers[j] | i;
err = UCKeyTranslate (chr_data, i, kUCKeyActionDisplay,
(modifiers[j] >> 8) & 0xFF,
LMGetKbdType(),
@@ -369,7 +367,7 @@ gdk_macos_keymap_update (GdkMacosKeymap *self)
if (p[0] == known_numeric_keys[i].normal_keyval)
p[0] = known_numeric_keys[i].keypad_keyval;
}
-
+
for (i = 0; i < G_N_ELEMENTS (jis_keys); i++)
{
p = keyval_array + jis_keys[i].keycode * KEYVALS_PER_KEYCODE;
diff --git a/gdk/macos/gdkmacosmonitor.c b/gdk/macos/gdkmacosmonitor.c
index a9aba3634b..df2676b6cf 100644
--- a/gdk/macos/gdkmacosmonitor.c
+++ b/gdk/macos/gdkmacosmonitor.c
@@ -215,7 +215,6 @@ gdk_macos_monitor_display_link_cb (GdkMacosMonitor *self)
{
gint64 presentation_time;
gint64 refresh_interval;
- gint64 now;
GList *iter;
g_assert (GDK_IS_MACOS_MONITOR (self));
@@ -225,7 +224,6 @@ gdk_macos_monitor_display_link_cb (GdkMacosMonitor *self)
presentation_time = self->display_link->presentation_time;
refresh_interval = self->display_link->refresh_interval;
- now = g_source_get_time ((GSource *)self->display_link);
iter = self->awaiting_frames.head;
diff --git a/gdk/macos/gdkmacossurface.c b/gdk/macos/gdkmacossurface.c
index 00a33975d4..ef0b5efa17 100644
--- a/gdk/macos/gdkmacossurface.c
+++ b/gdk/macos/gdkmacossurface.c
@@ -195,7 +195,6 @@ gdk_macos_surface_hide (GdkSurface *surface)
{
GdkMacosSurface *self = (GdkMacosSurface *)surface;
GdkSeat *seat;
- gboolean was_mapped;
gboolean was_key;
g_assert (GDK_IS_MACOS_SURFACE (self));
@@ -204,7 +203,6 @@ gdk_macos_surface_hide (GdkSurface *surface)
_gdk_macos_surface_cancel_frame (self);
- was_mapped = GDK_SURFACE_IS_MAPPED (surface);
was_key = [self->window isKeyWindow];
seat = gdk_display_get_default_seat (surface->display);
@@ -285,14 +283,12 @@ gdk_macos_surface_end_frame (GdkMacosSurface *self)
{
GdkFrameTimings *timings;
GdkFrameClock *frame_clock;
- GdkDisplay *display;
g_assert (GDK_IS_MACOS_SURFACE (self));
if (GDK_SURFACE_DESTROYED (self))
return;
- display = gdk_surface_get_display (GDK_SURFACE (self));
frame_clock = gdk_surface_get_frame_clock (GDK_SURFACE (self));
if ((timings = gdk_frame_clock_get_current_timings (frame_clock)))
@@ -420,7 +416,6 @@ gdk_macos_surface_drag_begin (GdkSurface *surface,
GdkMacosSurface *drag_surface;
GdkMacosDrag *drag;
GdkCursor *cursor;
- GdkSeat *seat;
double px;
double py;
int sx;
@@ -432,7 +427,6 @@ gdk_macos_surface_drag_begin (GdkSurface *surface,
g_assert (GDK_IS_MACOS_DEVICE (device));
g_assert (GDK_IS_CONTENT_PROVIDER (content));
- seat = gdk_device_get_seat (device);
gdk_macos_device_query_state (device, surface, NULL, &px, &py, NULL);
_gdk_macos_surface_get_root_coords (GDK_MACOS_SURFACE (surface), &sx, &sy);
drag_surface = _gdk_macos_surface_new (GDK_MACOS_DISPLAY (surface->display),
diff --git a/gdk/win32/gdkclipdrop-win32.c b/gdk/win32/gdkclipdrop-win32.c
index 57ade2180d..aeadad56c8 100644
--- a/gdk/win32/gdkclipdrop-win32.c
+++ b/gdk/win32/gdkclipdrop-win32.c
@@ -2081,23 +2081,30 @@ transmute_cf_unicodetext_to_utf8_string (const guchar *data,
gsize *set_data_length,
GDestroyNotify *set_data_destroy)
{
- wchar_t *ptr, *p, *q;
+ wchar_t *ptr, *p, *q, *endp;
char *result;
glong wclen, u8_len;
- /* Strip out \r */
+ /* Replace CR and CR+LF with LF */
ptr = (wchar_t *) data;
p = ptr;
q = ptr;
+ endp = ptr + length / 2;
wclen = 0;
- while (p < ptr + length / 2)
+ while (p < endp)
{
if (*p != L'\r')
{
*q++ = *p;
wclen++;
}
+ else if (p + 1 >= endp || *(p + 1) != L'\n')
+ {
+ *q++ = L'\n';
+ wclen++;
+ }
+
p++;
}
@@ -2282,7 +2289,7 @@ transmute_cf_text_to_utf8_string (const guchar *data,
gsize *set_data_length,
GDestroyNotify *set_data_destroy)
{
- char *ptr, *p, *q;
+ char *ptr, *p, *q, *endp;
char *result;
glong wclen, u8_len;
wchar_t *wstr;
@@ -2291,15 +2298,22 @@ transmute_cf_text_to_utf8_string (const guchar *data,
ptr = (char *) data;
p = ptr;
q = ptr;
+ endp = ptr + length / 2;
wclen = 0;
- while (p < ptr + length / 2)
+ while (p < endp)
{
if (*p != '\r')
{
*q++ = *p;
wclen++;
}
+ else if (p + 1 > endp || *(p + 1) != '\n')
+ {
+ *q++ = '\n';
+ wclen++;
+ }
+
p++;
}
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index 60fd778a4a..10803a4845 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -2731,22 +2731,15 @@ gdk_event_translate (MSG *msg,
}
break;
- case WM_MOUSEACTIVATE:
- {
- if (GDK_IS_DRAG_SURFACE (window))
- {
- *ret_valp = MA_NOACTIVATE;
- return_val = TRUE;
- }
-
- if (_gdk_modal_blocked (window))
- {
- *ret_valp = MA_NOACTIVATEANDEAT;
- return_val = TRUE;
- }
- }
-
- break;
+ case WM_MOUSEACTIVATE:
+ if (GDK_IS_DRAG_SURFACE (window) ||
+ _gdk_modal_blocked (window))
+ {
+ *ret_valp = MA_NOACTIVATE;
+ return_val = TRUE;
+ }
+
+ break;
case WM_POINTERACTIVATE:
if (GDK_IS_DRAG_SURFACE (window) ||
@@ -2990,6 +2983,8 @@ gdk_event_translate (MSG *msg,
}
#endif
+ impl = GDK_WIN32_SURFACE (window);
+
/* Break grabs on unmap or minimize */
if (windowpos->flags & SWP_HIDEWINDOW ||
((windowpos->flags & SWP_STATECHANGED) && IsIconic (msg->hwnd)))
@@ -3050,9 +3045,18 @@ gdk_event_translate (MSG *msg,
!(windowpos->flags & SWP_NOCLIENTSIZE) ||
(windowpos->flags & SWP_SHOWWINDOW))
{
- if (!IsIconic (msg->hwnd) &&
- !GDK_SURFACE_DESTROYED (window))
- gdk_surface_request_layout (window);
+ if (!IsIconic (msg->hwnd) && !GDK_SURFACE_DESTROYED (window))
+ {
+ if (!_gdk_win32_surface_lacks_wm_decorations (window) &&
+ !(windowpos->flags & SWP_NOCLIENTSIZE) &&
+ window->width == impl->next_layout.configured_width &&
+ window->height == impl->next_layout.configured_height)
+ {
+ impl->inhibit_configure = TRUE;
+ }
+
+ gdk_surface_request_layout (window);
+ }
}
if ((windowpos->flags & SWP_HIDEWINDOW) &&
diff --git a/gdk/x11/gdksurface-x11.c b/gdk/x11/gdksurface-x11.c
index b77cd2e3ad..f32190b385 100644
--- a/gdk/x11/gdksurface-x11.c
+++ b/gdk/x11/gdksurface-x11.c
@@ -759,6 +759,8 @@ gdk_x11_surface_finalize (GObject *object)
}
g_clear_pointer (&impl->surface_is_on_monitor, g_list_free);
+ g_clear_handle_id (&impl->compute_size_source_id, g_source_remove);
+ g_clear_pointer (&impl->toplevel_layout, gdk_toplevel_layout_unref);
g_free (impl->toplevel);
diff --git a/gtk/deprecated/gtkappchooserbutton.c b/gtk/deprecated/gtkappchooserbutton.c
index 3f83f2fde7..7d7a5df577 100644
--- a/gtk/deprecated/gtkappchooserbutton.c
+++ b/gtk/deprecated/gtkappchooserbutton.c
@@ -320,7 +320,7 @@ gtk_app_chooser_button_ensure_dialog_item (GtkAppChooserButton *self,
gtk_list_store_insert_after (self->store, &iter, &iter2);
real_insert_custom_item (self, CUSTOM_ITEM_OTHER_APP,
- _("Other application…"), NULL,
+ _("Other app…"), NULL,
FALSE, &iter);
}
diff --git a/gtk/deprecated/gtkappchooserwidget.c b/gtk/deprecated/gtkappchooserwidget.c
index 60e31fc336..2f69d7e80a 100644
--- a/gtk/deprecated/gtkappchooserwidget.c
+++ b/gtk/deprecated/gtkappchooserwidget.c
@@ -522,7 +522,7 @@ gtk_app_chooser_add_default (GtkAppChooserWidget *self,
gboolean unref_icon;
unref_icon = FALSE;
- string = g_strdup_printf ("<b>%s</b>", _("Default Application"));
+ string = g_strdup_printf ("<b>%s</b>", _("Default App"));
gtk_list_store_append (self->program_list_store, &iter);
gtk_list_store_set (self->program_list_store, &iter,
@@ -572,7 +572,7 @@ update_no_applications_label (GtkAppChooserWidget *self)
if (self->content_type)
desc = g_content_type_get_description (self->content_type);
- string = text = g_strdup_printf (_("No applications found for “%sâ€."), desc);
+ string = text = g_strdup_printf (_("No apps found for “%sâ€."), desc);
g_free (desc);
}
else
@@ -655,7 +655,7 @@ gtk_app_chooser_widget_real_add_items (GtkAppChooserWidget *self)
if (self->content_type)
recommended_apps = g_app_info_get_recommended_for_type (self->content_type);
- apps_added |= gtk_app_chooser_widget_add_section (self, _("Recommended Applications"),
+ apps_added |= gtk_app_chooser_widget_add_section (self, _("Recommended Apps"),
show_headings,
!self->show_all, /* mark as recommended */
FALSE, /* mark as fallback */
@@ -670,7 +670,7 @@ gtk_app_chooser_widget_real_add_items (GtkAppChooserWidget *self)
if (self->content_type)
fallback_apps = g_app_info_get_fallback_for_type (self->content_type);
- apps_added |= gtk_app_chooser_widget_add_section (self, _("Related Applications"),
+ apps_added |= gtk_app_chooser_widget_add_section (self, _("Related Apps"),
show_headings,
FALSE, /* mark as recommended */
!self->show_all, /* mark as fallback */
@@ -684,7 +684,7 @@ gtk_app_chooser_widget_real_add_items (GtkAppChooserWidget *self)
{
all_applications = g_app_info_get_all ();
- apps_added |= gtk_app_chooser_widget_add_section (self, _("Other Applications"),
+ apps_added |= gtk_app_chooser_widget_add_section (self, _("Other Apps"),
show_headings,
FALSE,
FALSE,
diff --git a/gtk/gtkshow.c b/gtk/deprecated/gtkshow.c
index 15c4ee1b11..ff57a27550 100644
--- a/gtk/gtkshow.c
+++ b/gtk/deprecated/gtkshow.c
@@ -27,6 +27,8 @@
#include "gtkalertdialog.h"
#include <glib/gi18n-lib.h>
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+
typedef struct {
GtkWindow *parent;
GAppLaunchContext *context;
@@ -96,6 +98,8 @@ window_handle_exported (GtkWindow *window,
*
* This is the recommended call to be used as it passes information
* necessary for sandbox helpers to parent their dialogs properly.
+ *
+ * Deprecated: 4.10: Use [method@Gtk.FileLauncher.launch] instead
*/
void
gtk_show_uri_full (GtkWindow *parent,
@@ -142,6 +146,8 @@ gtk_show_uri_full (GtkWindow *parent,
*
* Returns: %TRUE if the URI was shown successfully.
* Otherwise, %FALSE is returned and @error is set
+ *
+ * Deprecated: 4.10: Use [method@Gtk.FileLauncher.launch_finish] instead
*/
gboolean
gtk_show_uri_full_finish (GtkWindow *parent,
@@ -184,6 +190,8 @@ show_uri_done (GObject *object,
*
* This function launches the default application for showing
* a given uri, or shows an error dialog if that fails.
+ *
+ * Deprecated: 4.10: Use [method@Gtk.FileLauncher.launch] instead
*/
void
gtk_show_uri (GtkWindow *parent,
diff --git a/gtk/gtkshow.h b/gtk/deprecated/gtkshow.h
index 0c5cea6fba..6915be0b11 100644
--- a/gtk/gtkshow.h
+++ b/gtk/deprecated/gtkshow.h
@@ -29,7 +29,7 @@
G_BEGIN_DECLS
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10_FOR(gtk_file_launcher_launch)
void gtk_show_uri_full (GtkWindow *parent,
const char *uri,
guint32 timestamp,
@@ -37,12 +37,12 @@ void gtk_show_uri_full (GtkWindow *parent,
GAsyncReadyCallback callback,
gpointer user_data);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10_FOR(gtk_file_launcher_launch)
gboolean gtk_show_uri_full_finish (GtkWindow *parent,
GAsyncResult *result,
GError **error);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10_FOR(gtk_file_launcher_launch)
void gtk_show_uri (GtkWindow *parent,
const char *uri,
guint32 timestamp);
diff --git a/gtk/deprecated/gtktreeview.c b/gtk/deprecated/gtktreeview.c
index 7ade280056..150c963f63 100644
--- a/gtk/deprecated/gtktreeview.c
+++ b/gtk/deprecated/gtktreeview.c
@@ -4395,7 +4395,6 @@ gtk_tree_view_bin_snapshot (GtkWidget *widget,
GList *first_column, *last_column;
gboolean has_can_focus_cell;
gboolean rtl;
- int n_visible_columns;
int expander_size;
gboolean draw_vgrid_lines, draw_hgrid_lines;
GtkStyleContext *context;
@@ -4455,14 +4454,6 @@ gtk_tree_view_bin_snapshot (GtkWidget *widget,
|| priv->grid_lines == GTK_TREE_VIEW_GRID_LINES_BOTH;
expander_size = gtk_tree_view_get_expander_size (tree_view);
- n_visible_columns = 0;
- for (list = priv->columns; list; list = list->next)
- {
- if (!gtk_tree_view_column_get_visible (GTK_TREE_VIEW_COLUMN (list->data)))
- continue;
- n_visible_columns ++;
- }
-
/* Find the last column */
for (last_column = g_list_last (priv->columns);
last_column &&
@@ -4487,7 +4478,6 @@ gtk_tree_view_bin_snapshot (GtkWidget *widget,
do
{
gboolean is_separator = FALSE;
- int n_col = 0;
parity = !parity;
is_separator = row_is_separator (tree_view, &iter, NULL);
@@ -4537,7 +4527,6 @@ gtk_tree_view_bin_snapshot (GtkWidget *widget,
if (!gtk_tree_view_column_get_visible (column))
continue;
- n_col++;
width = gtk_tree_view_column_get_width (column);
if (cell_offset > clip.x + clip.width ||
@@ -6098,7 +6087,6 @@ do_validate_rows (GtkTreeView *tree_view, gboolean queue_resize)
GtkTreePath *path = NULL;
GtkTreeIter iter;
GTimer *timer;
- int i = 0;
int y = -1;
int prev_height = -1;
@@ -6208,8 +6196,6 @@ do_validate_rows (GtkTreeView *tree_view, gboolean queue_resize)
else if (prev_height != height)
fixed_height = FALSE;
}
-
- i++;
}
while (g_timer_elapsed (timer, NULL) < GTK_TREE_VIEW_TIME_MS_PER_IDLE / 1000.);
diff --git a/gtk/deprecated/meson.build b/gtk/deprecated/meson.build
index 600934b02d..dd6c8ade9d 100644
--- a/gtk/deprecated/meson.build
+++ b/gtk/deprecated/meson.build
@@ -32,6 +32,7 @@ gtk_deprecated_sources = [
'deprecated/gtkinfobar.c',
'deprecated/gtkliststore.c',
'deprecated/gtkrender.c',
+ 'deprecated/gtkshow.c',
'deprecated/gtkstylecontext.c',
'deprecated/gtktreedatalist.c',
'deprecated/gtktreednd.c',
@@ -88,6 +89,7 @@ gtk_deprecated_headers = [
'deprecated/gtkliststore.h',
'deprecated/gtkmessagedialog.h',
'deprecated/gtkrender.h',
+ 'deprecated/gtkshow.h',
'deprecated/gtkstylecontext.h',
'deprecated/gtktreednd.h',
'deprecated/gtktreemodel.h',
diff --git a/gtk/gen-gtk-gresources-xml.py b/gtk/gen-gtk-gresources-xml.py
index 179761a154..66d2246343 100644
--- a/gtk/gen-gtk-gresources-xml.py
+++ b/gtk/gen-gtk-gresources-xml.py
@@ -70,6 +70,10 @@ for f in get_files('ui', '.ui'):
xml += '\n'
+xml += '''
+ <file compressed="true">icons/hicolor.index.theme</file>
+'''
+
for s in ['16x16', '32x32', '64x64', 'scalable']:
for c in ['actions', 'categories', 'emblems', 'emotes', 'devices', 'mimetypes', 'places', 'status']:
icons_dir = 'icons/{0}/{1}'.format(s,c)
diff --git a/gtk/gopenuriportal.c b/gtk/gopenuriportal.c
index 6c9b2323b8..16c63cbd9a 100644
--- a/gtk/gopenuriportal.c
+++ b/gtk/gopenuriportal.c
@@ -29,6 +29,8 @@
#include "gopenuriportal.h"
#include "xdp-dbus.h"
#include "gtkwindowprivate.h"
+#include "gtkprivate.h"
+#include "gtkdialogerror.h"
#ifdef G_OS_UNIX
#include <gio/gunixfdlist.h>
@@ -56,12 +58,12 @@ init_openuri_portal (void)
if (connection != NULL)
{
openuri = gxdp_open_uri_proxy_new_sync (connection, 0,
- "org.freedesktop.portal.Desktop",
- "/org/freedesktop/portal/desktop",
+ PORTAL_BUS_NAME,
+ PORTAL_OBJECT_PATH,
NULL, &error);
if (openuri == NULL)
{
- g_warning ("Cannot create document portal proxy: %s", error->message);
+ g_warning ("Cannot create OpenURI portal proxy: %s", error->message);
g_error_free (error);
}
@@ -69,7 +71,7 @@ init_openuri_portal (void)
}
else
{
- g_warning ("Cannot connect to session bus when initializing document portal: %s",
+ g_warning ("Cannot connect to session bus when initializing OpenURI portal: %s",
error->message);
g_error_free (error);
}
@@ -80,12 +82,55 @@ init_openuri_portal (void)
return openuri != NULL;
}
+gboolean
+g_openuri_portal_is_available (void)
+{
+ return init_openuri_portal ();
+}
+
enum {
XDG_DESKTOP_PORTAL_SUCCESS = 0,
XDG_DESKTOP_PORTAL_CANCELLED = 1,
XDG_DESKTOP_PORTAL_FAILED = 2
};
+enum {
+ OPEN_URI = 0,
+ OPEN_FILE = 1,
+ OPEN_FOLDER = 2
+};
+
+typedef struct {
+ GtkWindow *parent;
+ GFile *file;
+ gboolean open_folder;
+ GDBusConnection *connection;
+ GCancellable *cancellable;
+ GTask *task;
+ char *handle;
+ guint signal_id;
+ glong cancel_handler;
+ int call;
+} OpenUriData;
+
+static void
+open_uri_data_free (OpenUriData *data)
+{
+ if (data->signal_id)
+ g_dbus_connection_signal_unsubscribe (data->connection, data->signal_id);
+ g_clear_object (&data->connection);
+ if (data->cancel_handler)
+ g_signal_handler_disconnect (data->cancellable, data->cancel_handler);
+ if (data->parent)
+ gtk_window_unexport_handle (data->parent);
+ g_clear_object (&data->parent);
+ g_clear_object (&data->file);
+ g_clear_object (&data->cancellable);
+ g_clear_object (&data->task);
+ g_free (data->handle);
+ g_free (data);
+}
+
static void
response_received (GDBusConnection *connection,
const char *sender_name,
@@ -97,10 +142,6 @@ response_received (GDBusConnection *connection,
{
GTask *task = user_data;
guint32 response;
- guint signal_id;
-
- signal_id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (task), "signal-id"));
- g_dbus_connection_signal_unsubscribe (connection, signal_id);
g_variant_get (parameters, "(u@a{sv})", &response, NULL);
@@ -110,11 +151,11 @@ response_received (GDBusConnection *connection,
g_task_return_boolean (task, TRUE);
break;
case XDG_DESKTOP_PORTAL_CANCELLED:
- g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_CANCELLED, "Launch cancelled");
+ g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_CANCELLED, "The portal dialog was closed");
break;
case XDG_DESKTOP_PORTAL_FAILED:
default:
- g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_FAILED, "Launch failed");
+ g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, "The application launch failed");
break;
}
@@ -127,105 +168,145 @@ open_call_done (GObject *source,
gpointer user_data)
{
GXdpOpenURI *portal = GXDP_OPEN_URI (source);
- GDBusConnection *connection;
GTask *task = user_data;
+ OpenUriData *data = g_task_get_task_data (task);
GError *error = NULL;
- gboolean open_file;
gboolean res;
char *path = NULL;
- const char *handle;
- guint signal_id;
-
- connection = g_dbus_proxy_get_connection (G_DBUS_PROXY (portal));
- open_file = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (task), "open-file"));
- if (open_file)
- res = gxdp_open_uri_call_open_file_finish (portal, &path, NULL, result, &error);
- else
- res = gxdp_open_uri_call_open_uri_finish (portal, &path, result, &error);
+ switch (data->call)
+ {
+ case OPEN_FILE:
+ res = gxdp_open_uri_call_open_file_finish (portal, &path, NULL, result, &error);
+ break;
+ case OPEN_FOLDER:
+ res = gxdp_open_uri_call_open_directory_finish (portal, &path, NULL, result, &error);
+ break;
+ case OPEN_URI:
+ res = gxdp_open_uri_call_open_uri_finish (portal, &path, result, &error);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
if (!res)
{
+ g_free (path);
g_task_return_error (task, error);
g_object_unref (task);
- g_free (path);
return;
}
- handle = (const char *)g_object_get_data (G_OBJECT (task), "handle");
- if (g_strcmp0 (handle, path) != 0)
+ if (g_strcmp0 (data->handle, path) != 0)
{
- signal_id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (task), "signal-id"));
- g_dbus_connection_signal_unsubscribe (connection, signal_id);
-
- signal_id = g_dbus_connection_signal_subscribe (connection,
- "org.freedesktop.portal.Desktop",
- "org.freedesktop.portal.Request",
- "Response",
- path,
- NULL,
- G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE,
- response_received,
- task,
- NULL);
- g_object_set_data (G_OBJECT (task), "signal-id", GINT_TO_POINTER (signal_id));
+ g_dbus_connection_signal_unsubscribe (data->connection, data->signal_id);
+
+ data->signal_id = g_dbus_connection_signal_subscribe (data->connection,
+ PORTAL_BUS_NAME,
+ PORTAL_REQUEST_INTERFACE,
+ "Response",
+ path,
+ NULL,
+ G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE,
+ response_received,
+ task,
+ NULL);
+ g_free (data->handle);
+ data->handle = g_strdup (path);
}
+
+ g_free (path);
+}
+
+static void
+send_close (OpenUriData *data)
+{
+ GDBusMessage *message;
+ GError *error = NULL;
+
+ message = g_dbus_message_new_method_call (PORTAL_BUS_NAME,
+ PORTAL_OBJECT_PATH,
+ PORTAL_REQUEST_INTERFACE,
+ "Close");
+ g_dbus_message_set_body (message, g_variant_new ("(o)", data->handle));
+
+ if (!g_dbus_connection_send_message (data->connection,
+ message,
+ G_DBUS_SEND_MESSAGE_FLAGS_NONE,
+ NULL, &error))
+ {
+ g_warning ("unable to send Close message: %s", error->message);
+ g_error_free (error);
+ }
+
+ g_object_unref (message);
+}
+
+static void
+canceled (GCancellable *cancellable,
+ GTask *task)
+{
+ OpenUriData *data = g_task_get_task_data (task);
+
+ send_close (data);
+
+ g_task_return_new_error (task,
+ GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_ABORTED,
+ "The OpenURI portal call was cancelled programmatically");
+ g_object_unref (task);
}
static void
open_uri (GFile *file,
+ gboolean open_folder,
const char *parent_window,
- GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
{
+ OpenUriData *data = user_data;
GTask *task;
GVariant *opts = NULL;
int i;
- guint signal_id;
-
- if (callback)
- {
- GDBusConnection *connection;
- GVariantBuilder opt_builder;
- char *token;
- char *sender;
- char *handle;
-
- connection = g_dbus_proxy_get_connection (G_DBUS_PROXY (openuri));
-
- task = g_task_new (NULL, cancellable, callback, user_data);
-
- token = g_strdup_printf ("gtk%d", g_random_int_range (0, G_MAXINT));
- sender = g_strdup (g_dbus_connection_get_unique_name (connection) + 1);
- for (i = 0; sender[i]; i++)
- if (sender[i] == '.')
- sender[i] = '_';
-
- handle = g_strdup_printf ("/org/freedesktop/portal/desktop/request/%s/%s", sender, token);
- g_object_set_data_full (G_OBJECT (task), "handle", handle, g_free);
- g_free (sender);
-
- signal_id = g_dbus_connection_signal_subscribe (connection,
- "org.freedesktop.portal.Desktop",
- "org.freedesktop.portal.Request",
- "Response",
- handle,
- NULL,
- G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE,
- response_received,
- task,
- NULL);
- g_object_set_data (G_OBJECT (task), "signal-id", GINT_TO_POINTER (signal_id));
-
- g_variant_builder_init (&opt_builder, G_VARIANT_TYPE_VARDICT);
- g_variant_builder_add (&opt_builder, "{sv}", "handle_token", g_variant_new_string (token));
- g_free (token);
-
- opts = g_variant_builder_end (&opt_builder);
- }
- else
- task = NULL;
+ GDBusConnection *connection;
+ GVariantBuilder opt_builder;
+ char *token;
+ char *sender;
+
+ connection = g_dbus_proxy_get_connection (G_DBUS_PROXY (openuri));
+ data->connection = g_object_ref (connection);
+
+ task = g_task_new (NULL, NULL, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
+ g_task_set_task_data (task, user_data, NULL);
+ if (data->cancellable)
+ data->cancel_handler = g_signal_connect (data->cancellable, "cancelled", G_CALLBACK (canceled), task);
+
+ token = g_strdup_printf ("gtk%d", g_random_int_range (0, G_MAXINT));
+ sender = g_strdup (g_dbus_connection_get_unique_name (connection) + 1);
+ for (i = 0; sender[i]; i++)
+ if (sender[i] == '.')
+ sender[i] = '_';
+
+ data->handle = g_strdup_printf ("/org/freedesktop/portal/desktop/request/%s/%s", sender, token);
+ g_free (sender);
+
+ data->signal_id = g_dbus_connection_signal_subscribe (connection,
+ PORTAL_BUS_NAME,
+ PORTAL_REQUEST_INTERFACE,
+ "Response",
+ data->handle,
+ NULL,
+ G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE,
+ response_received,
+ task,
+ NULL);
+
+ g_variant_builder_init (&opt_builder, G_VARIANT_TYPE_VARDICT);
+ g_variant_builder_add (&opt_builder, "{sv}", "handle_token", g_variant_new_string (token));
+ g_free (token);
+
+ opts = g_variant_builder_end (&opt_builder);
if (g_file_is_native (file))
{
@@ -233,17 +314,15 @@ open_uri (GFile *file,
GUnixFDList *fd_list = NULL;
int fd, fd_id, errsv;
- if (task)
- g_object_set_data (G_OBJECT (task), "open-file", GINT_TO_POINTER (TRUE));
-
path = g_file_peek_path (file);
fd = g_open (path, O_RDONLY | O_CLOEXEC);
errsv = errno;
if (fd == -1)
{
- g_task_report_new_error (NULL, callback, user_data, NULL,
+ g_task_return_new_error (task,
G_IO_ERROR, g_io_error_from_errno (errsv),
- "OpenURI portal is not available");
+ "Failed to open file");
+ g_object_unref (task);
return;
}
@@ -254,49 +333,49 @@ open_uri (GFile *file,
fd = -1;
fd_id = 0;
- gxdp_open_uri_call_open_file (openuri,
- parent_window ? parent_window : "",
- g_variant_new ("h", fd_id),
- opts,
- fd_list,
- cancellable,
- task ? open_call_done : NULL,
- task);
+ if (open_folder)
+ {
+ data->call = OPEN_FOLDER;
+ gxdp_open_uri_call_open_directory (openuri,
+ parent_window ? parent_window : "",
+ g_variant_new ("h", fd_id),
+ opts,
+ fd_list,
+ NULL,
+ open_call_done,
+ task);
+ }
+ else
+ {
+ data->call = OPEN_FILE;
+ gxdp_open_uri_call_open_file (openuri,
+ parent_window ? parent_window : "",
+ g_variant_new ("h", fd_id),
+ opts,
+ fd_list,
+ NULL,
+ open_call_done,
+ task);
+ }
+
g_object_unref (fd_list);
}
else
{
char *uri = g_file_get_uri (file);
+ data->call = OPEN_URI;
gxdp_open_uri_call_open_uri (openuri,
parent_window ? parent_window : "",
uri,
opts,
- cancellable,
- task ? open_call_done : NULL,
+ NULL,
+ open_call_done,
task);
-
g_free (uri);
}
}
-typedef struct {
- GtkWindow *parent;
- GFile *file;
- GTask *task;
-} OpenUriData;
-
-static void
-open_uri_data_free (OpenUriData *data)
-{
- if (data->parent)
- gtk_window_unexport_handle (data->parent);
- g_clear_object (&data->parent);
- g_clear_object (&data->file);
- g_clear_object (&data->task);
- g_free (data);
-}
-
static void
open_uri_done (GObject *source,
GAsyncResult *result,
@@ -306,7 +385,17 @@ open_uri_done (GObject *source,
GError *error = NULL;
if (!g_task_propagate_boolean (G_TASK (result), &error))
- g_task_return_error (data->task, error);
+ {
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ {
+ g_error_free (error);
+ g_task_return_new_error (data->task,
+ GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_ABORTED,
+ "The operation was aborted programmatically");
+ }
+ else
+ g_task_return_error (data->task, error);
+ }
else
g_task_return_boolean (data->task, TRUE);
@@ -320,11 +409,12 @@ window_handle_exported (GtkWindow *window,
{
OpenUriData *data = user_data;
- open_uri (data->file, handle, g_task_get_cancellable (data->task), open_uri_done, data);
+ open_uri (data->file, data->open_folder, handle, open_uri_done, data);
}
void
g_openuri_portal_open_async (GFile *file,
+ gboolean open_folder,
GtkWindow *parent,
GCancellable *cancellable,
GAsyncReadyCallback callback,
@@ -335,15 +425,18 @@ g_openuri_portal_open_async (GFile *file,
if (!init_openuri_portal ())
{
g_task_report_new_error (NULL, callback, user_data, NULL,
- G_IO_ERROR, G_IO_ERROR_NOT_INITIALIZED,
- "OpenURI portal is not available");
+ GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED,
+ "The OpenURI portal is not available");
return;
}
data = g_new0 (OpenUriData, 1);
data->parent = parent ? g_object_ref (parent) : NULL;
data->file = g_object_ref (file);
+ data->open_folder = open_folder;
+ data->cancellable = cancellable ? g_object_ref (cancellable) : NULL;
data->task = g_task_new (parent, cancellable, callback, user_data);
+ g_task_set_check_cancellable (data->task, FALSE);
g_task_set_source_tag (data->task, g_openuri_portal_open_async);
if (!parent || !gtk_window_export_handle (parent, window_handle_exported, data))
diff --git a/gtk/gopenuriportal.h b/gtk/gopenuriportal.h
index 848d93499d..cd3992f6c2 100644
--- a/gtk/gopenuriportal.h
+++ b/gtk/gopenuriportal.h
@@ -26,14 +26,17 @@
G_BEGIN_DECLS
-void g_openuri_portal_open_async (GFile *file,
- GtkWindow *window,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean g_openuri_portal_open_finish (GAsyncResult *result,
- GError **error);
+gboolean g_openuri_portal_is_available (void);
+
+void g_openuri_portal_open_async (GFile *file,
+ gboolean open_folder,
+ GtkWindow *window,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean g_openuri_portal_open_finish (GAsyncResult *result,
+ GError **error);
G_END_DECLS
diff --git a/gtk/gtk.h b/gtk/gtk.h
index 16263a59d9..e07a3f6605 100644
--- a/gtk/gtk.h
+++ b/gtk/gtk.h
@@ -130,6 +130,7 @@
#include <gtk/deprecated/gtkfilechooserwidget.h>
#include <gtk/gtkfiledialog.h>
#include <gtk/gtkfilefilter.h>
+#include <gtk/gtkfilelauncher.h>
#include <gtk/gtkfilter.h>
#include <gtk/gtkfilterlistmodel.h>
#include <gtk/gtkcustomfilter.h>
@@ -237,7 +238,7 @@
#include <gtk/gtkshortcutsshortcut.h>
#include <gtk/gtkshortcutswindow.h>
#include <gtk/gtkshortcuttrigger.h>
-#include <gtk/gtkshow.h>
+#include <gtk/deprecated/gtkshow.h>
#include <gtk/gtksignallistitemfactory.h>
#include <gtk/gtksingleselection.h>
#include <gtk/gtkslicelistmodel.h>
diff --git a/gtk/gtkaboutdialog.c b/gtk/gtkaboutdialog.c
index 739f8607f9..0e634e78fc 100644
--- a/gtk/gtkaboutdialog.c
+++ b/gtk/gtkaboutdialog.c
@@ -44,7 +44,7 @@
#include "gtkorientable.h"
#include "gtkscrolledwindow.h"
#include "gtktextview.h"
-#include "gtkshow.h"
+#include "gtkfilelauncher.h"
#include "gtkmain.h"
#include "gtktogglebutton.h"
#include "gtktypebuiltins.h"
@@ -78,7 +78,7 @@
* ![An example GtkAboutDialog](aboutdialog.png)
*
* About dialogs often contain links and email addresses. `GtkAboutDialog`
- * displays these as clickable links. By default, it calls [func@Gtk.show_uri]
+ * displays these as clickable links. By default, it calls [method@Gtk.FileLauncher.launch]
* when a user clicks one. The behaviour can be overridden with the
* [signal@Gtk.AboutDialog::activate-link] signal.
*
@@ -361,7 +361,7 @@ gtk_about_dialog_class_init (GtkAboutDialogClass *klass)
* Emitted every time a URL is activated.
*
* Applications may connect to it to override the default behaviour,
- * which is to call [func@Gtk.show_uri].
+ * which is to call [method@Gtk.FileLauncher.launch].
*
* Returns: `TRUE` if the link has been activated
*/
@@ -932,7 +932,17 @@ static gboolean
gtk_about_dialog_activate_link (GtkAboutDialog *about,
const char *uri)
{
- gtk_show_uri (GTK_WINDOW (about), uri, GDK_CURRENT_TIME);
+ GtkFileLauncher *launcher;
+ GFile *file;
+
+ file = g_file_new_for_uri (uri);
+ launcher = gtk_file_launcher_new (file);
+
+ gtk_file_launcher_launch (launcher, GTK_WINDOW (about), NULL, NULL, NULL);
+
+ g_object_unref (launcher);
+ g_object_unref (file);
+
return TRUE;
}
diff --git a/gtk/gtkatcontext.c b/gtk/gtkatcontext.c
index aa4b9f51f2..07d330d59e 100644
--- a/gtk/gtkatcontext.c
+++ b/gtk/gtkatcontext.c
@@ -902,31 +902,6 @@ gtk_at_context_get_accessible_relation (GtkATContext *self,
return gtk_accessible_attribute_set_get_value (self->relations, relation);
}
-static gboolean
-is_structural_role (GtkAccessibleRole role)
-{
- /* Keep the switch small while avoiding the compiler warning for
- * unhandled enumeration values
- */
- switch ((int) role)
- {
- case GTK_ACCESSIBLE_ROLE_FORM:
- case GTK_ACCESSIBLE_ROLE_GROUP:
- case GTK_ACCESSIBLE_ROLE_GENERIC:
- case GTK_ACCESSIBLE_ROLE_LANDMARK:
- case GTK_ACCESSIBLE_ROLE_LIST_ITEM:
- case GTK_ACCESSIBLE_ROLE_REGION:
- case GTK_ACCESSIBLE_ROLE_SEARCH:
- case GTK_ACCESSIBLE_ROLE_SEPARATOR:
- return TRUE;
-
- default:
- break;
- }
-
- return FALSE;
-}
-
/* See the WAI-ARIA § 4.3, "Accessible Name and Description Computation" */
static void
gtk_at_context_get_name_accumulate (GtkATContext *self,
@@ -998,13 +973,6 @@ gtk_at_context_get_name_accumulate (GtkATContext *self,
return;
}
- /* This fallback is in place only for unlabelled elements */
- if (names->len != 0)
- return;
-
- /* Ignore structural elements, namely: generic containers */
- if (self->accessible != NULL && !is_structural_role (role))
- g_ptr_array_add (names, (char *)G_OBJECT_TYPE_NAME (self->accessible));
}
static void
diff --git a/gtk/gtkbuilderscope.c b/gtk/gtkbuilderscope.c
index 6d472dc6a8..8d18c44c96 100644
--- a/gtk/gtkbuilderscope.c
+++ b/gtk/gtkbuilderscope.c
@@ -41,6 +41,10 @@
*
* By default, GTK will use its own implementation of `GtkBuilderScope`
* for the C language which can be created via [ctor@Gtk.BuilderCScope.new].
+ *
+ * If you implement `GtkBuilderScope` for a language binding, you
+ * may want to (partially) derive from or fall back to a [class@Gtk.BuilderCScope],
+ * as that class implements support for automatic lookups from C symbols.
*/
/**
diff --git a/gtk/gtkcheckbutton.c b/gtk/gtkcheckbutton.c
index f0cc8ea6ff..4dec0530ce 100644
--- a/gtk/gtkcheckbutton.c
+++ b/gtk/gtkcheckbutton.c
@@ -77,6 +77,11 @@
*
* To add a `GtkCheckButton` to a group, use [method@Gtk.CheckButton.set_group].
*
+ * When the code must keep track of the state of a group of radio buttons, it
+ * is recommended to keep track of such state through a stateful
+ * `GAction` with a target for each button. Using the `toggled` signals to keep
+ * track of the group changes and state is discouraged.
+ *
* # CSS nodes
*
* ```
diff --git a/gtk/gtkcolordialog.c b/gtk/gtkcolordialog.c
index 05b2f64a71..3d02733599 100644
--- a/gtk/gtkcolordialog.c
+++ b/gtk/gtkcolordialog.c
@@ -458,6 +458,7 @@ gtk_color_dialog_choose_rgba (GtkColorDialog *self,
window = create_color_chooser (self, parent, initial_color);
task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_color_dialog_choose_rgba);
g_task_set_task_data (task, window, (GDestroyNotify) gtk_window_destroy);
@@ -472,7 +473,7 @@ gtk_color_dialog_choose_rgba (GtkColorDialog *self,
* gtk_color_dialog_choose_rgba_finish:
* @self: a `GtkColorDialog`
* @result: a `GAsyncResult`
- * @error: return location for an error
+ * @error: return location for a [enum@Gtk.DialogError] error
*
* Finishes the [method@Gtk.ColorDialog.choose_rgba] call and
* returns the resulting color.
diff --git a/gtk/gtkcolordialogbutton.c b/gtk/gtkcolordialogbutton.c
index 76e007f6cc..10f527febf 100644
--- a/gtk/gtkcolordialogbutton.c
+++ b/gtk/gtkcolordialogbutton.c
@@ -338,8 +338,9 @@ drag_prepare (GtkDragSource *source,
static void
update_button_sensitivity (GtkColorDialogButton *self)
{
- gtk_widget_set_sensitive (self->button,
- self->dialog != NULL && self->cancellable == NULL);
+ if (self->button)
+ gtk_widget_set_sensitive (self->button,
+ self->dialog != NULL && self->cancellable == NULL);
}
static void
@@ -347,10 +348,11 @@ color_chosen (GObject *source,
GAsyncResult *result,
gpointer data)
{
+ GtkColorDialog *dialog = GTK_COLOR_DIALOG (source);
GtkColorDialogButton *self = data;
GdkRGBA *color;
- color = gtk_color_dialog_choose_rgba_finish (self->dialog, result, NULL);
+ color = gtk_color_dialog_choose_rgba_finish (dialog, result, NULL);
if (color)
{
gtk_color_dialog_button_set_rgba (self, color);
diff --git a/gtk/gtkcolumnviewtitle.c b/gtk/gtkcolumnviewtitle.c
index 8b9987a62d..6c7f729f95 100644
--- a/gtk/gtkcolumnviewtitle.c
+++ b/gtk/gtkcolumnviewtitle.c
@@ -251,6 +251,18 @@ click_released_cb (GtkGestureClick *gesture,
}
static void
+click_pressed_cb (GtkGestureClick *gesture,
+ int n_press,
+ double x,
+ double y,
+ GtkColumnView *self)
+{
+ /* Claim the state here to prevent propagation, the event controllers in
+ * GtkColumView have already been handled in the CAPTURE phase */
+ gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED);
+}
+
+static void
gtk_column_view_title_init (GtkColumnViewTitle *self)
{
GtkWidget *widget = GTK_WIDGET (self);
@@ -272,6 +284,7 @@ gtk_column_view_title_init (GtkColumnViewTitle *self)
gesture = gtk_gesture_click_new ();
gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
g_signal_connect (gesture, "released", G_CALLBACK (click_released_cb), self);
+ g_signal_connect (gesture, "pressed", G_CALLBACK (click_pressed_cb), self);
gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (gesture));
}
diff --git a/gtk/gtkcomposetable.c b/gtk/gtkcomposetable.c
index 37a70ec6a6..7c2dd2cb16 100644
--- a/gtk/gtkcomposetable.c
+++ b/gtk/gtkcomposetable.c
@@ -1428,11 +1428,9 @@ gtk_compose_table_foreach (const GtkComposeTable *table,
{
int index_stride = table->max_seq_len + 2;
gunichar *sequence;
- int seqno;
sequence = g_newa (gunichar, table->max_seq_len + 1);
- seqno = 0;
for (int idx = 0; idx < table->n_index_size; idx++)
{
const guint16 *seq_index = table->data + (idx * index_stride);
@@ -1471,7 +1469,6 @@ gtk_compose_table_foreach (const GtkComposeTable *table,
}
callback (sequence, len, value, data);
- seqno++;
}
}
}
diff --git a/gtk/gtkemojichooser.c b/gtk/gtkemojichooser.c
index 8415ed3eb3..29e3924eb5 100644
--- a/gtk/gtkemojichooser.c
+++ b/gtk/gtkemojichooser.c
@@ -312,7 +312,7 @@ populate_recent_section (GtkEmojiChooser *chooser)
GVariant *variant;
GVariant *item;
GVariantIter iter;
- gboolean empty = FALSE;
+ gboolean empty = TRUE;
variant = g_settings_get_value (chooser->settings, "recent-emoji");
g_variant_iter_init (&iter, variant);
diff --git a/gtk/gtkfilechooserprivate.h b/gtk/gtkfilechooserprivate.h
index ac6da257a4..7f3215ff3e 100644
--- a/gtk/gtkfilechooserprivate.h
+++ b/gtk/gtkfilechooserprivate.h
@@ -46,6 +46,7 @@ G_BEGIN_DECLS
#define SETTINGS_KEY_CLOCK_FORMAT "clock-format"
#define SETTINGS_KEY_DATE_FORMAT "date-format"
#define SETTINGS_KEY_TYPE_FORMAT "type-format"
+#define SETTINGS_KEY_VIEW_TYPE "view-type"
#define GTK_FILE_CHOOSER_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GTK_TYPE_FILE_CHOOSER, GtkFileChooserIface))
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
index d9085f1571..ed85b0eb9e 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -53,6 +53,7 @@
#include "gtkplacesviewprivate.h"
#include "gtkprivate.h"
#include "gtkrecentmanager.h"
+#include "gtkscrolledwindow.h"
#include "gtksearchentryprivate.h"
#include "gtksettings.h"
#include "gtksingleselection.h"
@@ -64,7 +65,7 @@
#include "gtkcheckbutton.h"
#include "gtkwindowgroup.h"
#include <glib/gi18n-lib.h>
-#include "gtkshow.h"
+#include "gtkfilelauncher.h"
#include "gtkmain.h"
#include "gtkscrollable.h"
#include "gtkpopover.h"
@@ -180,6 +181,11 @@ typedef enum {
TYPE_FORMAT_CATEGORY
} TypeFormat;
+typedef enum {
+ VIEW_TYPE_LIST,
+ VIEW_TYPE_GRID,
+} ViewType;
+
typedef struct _GtkFileChooserWidgetClass GtkFileChooserWidgetClass;
struct _GtkFileChooserWidget
@@ -211,6 +217,8 @@ struct _GtkFileChooserWidget
GtkWidget *browse_files_stack;
GtkWidget *browse_files_swin;
GtkWidget *browse_files_column_view;
+ GtkWidget *browse_files_grid_view;
+ GtkWidget *browse_toggle_view_button;
GtkWidget *remote_warning_bar;
GtkWidget *browse_files_popover;
@@ -312,6 +320,8 @@ struct _GtkFileChooserWidget
TypeFormat type_format;
+ ViewType view_type;
+
/* Flags */
guint select_multiple : 1;
@@ -1370,68 +1380,14 @@ open_folder_cb (GSimpleAction *action,
GtkWindow *toplevel = GTK_IS_WINDOW (root) ? GTK_WINDOW (root) : NULL;
GFileInfo *info;
GFile *file;
- char *uri;
+ GtkFileLauncher *launcher;
info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), impl->browse_files_popover_item);
file = _gtk_file_info_get_file (info);
-#ifdef G_OS_WIN32
-
- uri = g_file_get_uri (file);
- gtk_show_uri (toplevel, uri, GDK_CURRENT_TIME);
- g_free (uri);
-
-#else
-
- if (gdk_should_use_portal ())
- {
- g_openuri_portal_open_async (file, toplevel, NULL, NULL, NULL);
- }
- else
- {
- GDBusConnection *bus;
- GVariantBuilder *uris_builder;
- GVariant *result;
- GError *error = NULL;
-
- uri = g_file_get_uri (file);
-
- bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
-
- uris_builder = g_variant_builder_new (G_VARIANT_TYPE ("as"));
- g_variant_builder_add (uris_builder, "s", uri);
-
- result = g_dbus_connection_call_sync (bus,
- FILE_MANAGER_DBUS_NAME,
- FILE_MANAGER_DBUS_PATH,
- FILE_MANAGER_DBUS_IFACE,
- "ShowFolders",
- g_variant_new ("(ass)", uris_builder, ""),
- NULL, /* ignore returned type */
- G_DBUS_CALL_FLAGS_NONE,
- -1,
- NULL,
- &error);
- if (error)
- {
- if (g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER) ||
- g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_SERVICE_UNKNOWN))
- g_debug ("No " FILE_MANAGER_DBUS_NAME " available");
- else
- g_warning ("Failed to call ShowFolders: %s", error->message);
-
- g_error_free (error);
- }
-
- if (result)
- g_variant_unref (result);
- else
- gtk_show_uri (toplevel, uri, GDK_CURRENT_TIME);
-
- g_free (uri);
- }
-
-#endif
+ launcher = gtk_file_launcher_new (file);
+ gtk_file_launcher_open_containing_folder (launcher, toplevel, NULL, NULL, NULL);
+ g_object_unref (launcher);
g_clear_object (&info);
}
@@ -1704,6 +1660,88 @@ popup_file_list_menu (GSimpleAction *action,
file_list_show_popover (impl, x, y);
}
+static GtkWidget*
+get_current_view_widget (GtkFileChooserWidget *impl)
+{
+ switch (impl->view_type)
+ {
+ case VIEW_TYPE_LIST:
+ return impl->browse_files_column_view;
+
+ case VIEW_TYPE_GRID:
+ return impl->browse_files_grid_view;
+
+ default:
+ g_assert_not_reached ();
+ }
+
+ return NULL;
+}
+
+static void
+set_view_type (GtkFileChooserWidget *impl,
+ ViewType view_type)
+{
+ const char *tooltip_text;
+ const char *icon_name;
+ GtkWidget *child;
+
+ if (impl->view_type == view_type)
+ return;
+
+ impl->view_type = view_type;
+
+ g_object_ref (impl->browse_files_grid_view);
+ g_object_ref (impl->browse_files_column_view);
+
+ switch (impl->view_type)
+ {
+ case VIEW_TYPE_LIST:
+ child = impl->browse_files_column_view;
+ icon_name = "view-grid-symbolic";
+ tooltip_text = _("Grid View");
+ break;
+
+ case VIEW_TYPE_GRID:
+ child = impl->browse_files_grid_view;
+ icon_name = "view-list-symbolic";
+ tooltip_text = _("List View");
+ break;
+
+ default:
+ g_assert_not_reached ();
+ }
+
+ gtk_widget_set_tooltip_text (impl->browse_toggle_view_button, tooltip_text);
+ gtk_button_set_icon_name (GTK_BUTTON (impl->browse_toggle_view_button), icon_name);
+ gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (impl->browse_files_swin), child);
+
+ g_object_unref (impl->browse_files_grid_view);
+ g_object_unref (impl->browse_files_column_view);
+}
+
+static void
+toggle_view_cb (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ GtkFileChooserWidget *impl = user_data;
+
+ switch (impl->view_type)
+ {
+ case VIEW_TYPE_LIST:
+ set_view_type (impl, VIEW_TYPE_GRID);
+ break;
+
+ case VIEW_TYPE_GRID:
+ set_view_type (impl, VIEW_TYPE_LIST);
+ break;
+
+ default:
+ g_assert_not_reached ();
+ }
+}
+
static GActionEntry entries[] = {
{ "visit", visit_file_cb, NULL, NULL, NULL },
{ "open", open_folder_cb, NULL, NULL, NULL },
@@ -1717,7 +1755,8 @@ static GActionEntry entries[] = {
{ "toggle-show-size", NULL, NULL, "false", change_show_size_state },
{ "toggle-show-type", NULL, NULL, "false", change_show_type_state },
{ "toggle-show-time", NULL, NULL, "false", change_show_time_state },
- { "toggle-sort-dirs-first", NULL, NULL, "false", change_sort_directories_first_state }
+ { "toggle-sort-dirs-first", NULL, NULL, "false", change_sort_directories_first_state },
+ { "toggle-view", toggle_view_cb, NULL, NULL, NULL },
};
static void
@@ -1769,14 +1808,17 @@ file_list_build_popover (GtkFileChooserWidget *impl)
g_object_unref (item);
item = g_menu_item_new (_("Show _Size Column"), "item.toggle-show-size");
+ g_menu_item_set_attribute (item, "hidden-when", "s", "action-disabled");
g_menu_append_item (section, item);
g_object_unref (item);
item = g_menu_item_new (_("Show T_ype Column"), "item.toggle-show-type");
+ g_menu_item_set_attribute (item, "hidden-when", "s", "action-disabled");
g_menu_append_item (section, item);
g_object_unref (item);
item = g_menu_item_new (_("Show _Time"), "item.toggle-show-time");
+ g_menu_item_set_attribute (item, "hidden-when", "s", "action-disabled");
g_menu_append_item (section, item);
g_object_unref (item);
@@ -1825,12 +1867,15 @@ file_list_update_popover (GtkFileChooserWidget *impl)
g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_boolean (impl->show_hidden));
action = g_action_map_lookup_action (G_ACTION_MAP (impl->item_actions), "toggle-show-size");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), (impl->view_type == VIEW_TYPE_LIST));
g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_boolean (impl->show_size_column));
action = g_action_map_lookup_action (G_ACTION_MAP (impl->item_actions), "toggle-show-type");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), (impl->view_type == VIEW_TYPE_LIST));
g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_boolean (impl->show_type_column));
action = g_action_map_lookup_action (G_ACTION_MAP (impl->item_actions), "toggle-show-time");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), (impl->view_type == VIEW_TYPE_LIST));
g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_boolean (impl->show_time));
action = g_action_map_lookup_action (G_ACTION_MAP (impl->item_actions), "toggle-sort-dirs-first");
@@ -1860,10 +1905,11 @@ list_popup_menu_cb (GtkWidget *widget,
{
GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (user_data);
graphene_rect_t bounds;
+ GtkWidget *view_widget;
+
+ view_widget = get_current_view_widget (impl);
- if (!gtk_widget_compute_bounds (impl->browse_files_column_view,
- GTK_WIDGET (impl),
- &bounds))
+ if (!gtk_widget_compute_bounds (view_widget, GTK_WIDGET (impl), &bounds))
return FALSE;
file_list_show_popover (impl,
@@ -2051,21 +2097,12 @@ static char *
column_view_get_tooltip_text (GtkListItem *list_item,
GFileInfo *info)
{
- GtkFileChooserWidget *impl;
GFile *file;
if (!info)
return NULL;
- impl = GTK_FILE_CHOOSER_WIDGET (gtk_widget_get_ancestor (gtk_list_item_get_child (list_item),
- GTK_TYPE_FILE_CHOOSER_WIDGET));
- g_assert (impl != NULL);
-
- if (impl->operation_mode == OPERATION_MODE_BROWSE)
- return NULL;
-
file = _gtk_file_info_get_file (info);
-
return g_file_get_path (file);
}
@@ -2397,7 +2434,7 @@ location_mode_set (GtkFileChooserWidget *impl,
location_switch_to_path_bar (impl);
if (switch_to_file_list)
- gtk_widget_grab_focus (impl->browse_files_column_view);
+ gtk_widget_grab_focus (get_current_view_widget (impl));
break;
@@ -2709,13 +2746,14 @@ operation_mode_set_recent (GtkFileChooserWidget *impl)
old_revealer_transition_type = gtk_revealer_get_transition_type (GTK_REVEALER (impl->browse_header_revealer));
gtk_revealer_set_transition_type (GTK_REVEALER (impl->browse_header_revealer),
GTK_REVEALER_TRANSITION_TYPE_NONE);
- gtk_revealer_set_reveal_child (GTK_REVEALER (impl->browse_header_revealer), FALSE);
+ gtk_revealer_set_reveal_child (GTK_REVEALER (impl->browse_header_revealer), TRUE);
gtk_revealer_set_transition_type (GTK_REVEALER (impl->browse_header_revealer),
old_revealer_transition_type);
location_bar_update (impl);
recent_start_loading (impl);
file = g_file_new_for_uri ("recent:///");
+ _gtk_path_bar_set_file (GTK_PATH_BAR (impl->browse_path_bar), file, FALSE);
gtk_places_sidebar_set_location (GTK_PLACES_SIDEBAR (impl->places_sidebar), file);
g_object_notify (G_OBJECT (impl), "subtitle");
g_object_unref (file);
@@ -3130,6 +3168,7 @@ settings_load (GtkFileChooserWidget *impl)
gboolean sort_directories_first;
DateFormat date_format;
TypeFormat type_format;
+ ViewType view_type;
int sort_column;
GtkSortType sort_order;
StartupMode startup_mode;
@@ -3148,6 +3187,7 @@ settings_load (GtkFileChooserWidget *impl)
sort_directories_first = g_settings_get_boolean (settings, SETTINGS_KEY_SORT_DIRECTORIES_FIRST);
date_format = g_settings_get_enum (settings, SETTINGS_KEY_DATE_FORMAT);
type_format = g_settings_get_enum (settings, SETTINGS_KEY_TYPE_FORMAT);
+ view_type = g_settings_get_enum (settings, SETTINGS_KEY_VIEW_TYPE);
set_show_hidden (impl, show_hidden);
@@ -3164,6 +3204,8 @@ settings_load (GtkFileChooserWidget *impl)
impl->clock_format = g_settings_get_enum (settings, "clock-format");
impl->type_format = type_format;
+ set_view_type (impl, view_type);
+
/* We don't call set_sort_column() here as the models may not have been
* created yet. The individual functions that create and set the models will
* call set_sort_column() themselves.
@@ -3200,6 +3242,7 @@ settings_save (GtkFileChooserWidget *impl)
gtk_paned_get_position (GTK_PANED (impl->browse_widgets_hpaned)));
g_settings_set_enum (settings, SETTINGS_KEY_DATE_FORMAT, impl->show_time ? DATE_FORMAT_WITH_TIME : DATE_FORMAT_REGULAR);
g_settings_set_enum (settings, SETTINGS_KEY_TYPE_FORMAT, impl->type_format);
+ g_settings_set_enum (settings, SETTINGS_KEY_VIEW_TYPE, impl->view_type);
/* Now apply the settings */
g_settings_apply (settings);
@@ -4654,7 +4697,7 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser)
current_focus = NULL;
file_list_seen = FALSE;
- if (current_focus == impl->browse_files_column_view)
+ if (current_focus == get_current_view_widget (impl))
{
GtkBitsetIter iter;
GtkBitset *bitset;
@@ -4717,7 +4760,7 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser)
else
goto empty;
}
- else if (impl->toplevel_last_focus_widget == impl->browse_files_column_view)
+ else if (impl->toplevel_last_focus_widget == get_current_view_widget (impl))
goto file_list;
else if (impl->location_entry && impl->toplevel_last_focus_widget == impl->location_entry)
goto file_entry;
@@ -5324,7 +5367,7 @@ gtk_file_chooser_widget_should_respond (GtkFileChooserWidget *impl)
current_focus = gtk_root_get_focus (GTK_ROOT (toplevel));
- if (current_focus == impl->browse_files_column_view)
+ if (current_focus == get_current_view_widget (impl))
{
/* The following array encodes what we do based on the impl->action and the
* number of files selected.
@@ -5526,7 +5569,7 @@ gtk_file_chooser_widget_should_respond (GtkFileChooserWidget *impl)
g_object_unref (file);
}
- else if (impl->toplevel_last_focus_widget == impl->browse_files_column_view)
+ else if (impl->toplevel_last_focus_widget == get_current_view_widget (impl))
{
/* The focus is on a dialog's action area button, *and* the widget that
* was focused immediately before it is the file list.
@@ -5570,7 +5613,7 @@ gtk_file_chooser_widget_initial_focus (GtkFileChooserWidget *impl)
{
if (impl->location_mode == LOCATION_MODE_PATH_BAR
|| impl->operation_mode == OPERATION_MODE_RECENT)
- widget = impl->browse_files_column_view;
+ widget = get_current_view_widget (impl);
else
widget = impl->location_entry;
}
@@ -6041,9 +6084,9 @@ list_items_changed (GListModel *model,
}
static gboolean
-browse_files_column_view_keynav_failed_cb (GtkWidget *widget,
- GtkDirectionType direction,
- gpointer user_data)
+browse_files_view_keynav_failed_cb (GtkWidget *widget,
+ GtkDirectionType direction,
+ gpointer user_data)
{
GtkFileChooserWidget *impl = user_data;
@@ -6057,11 +6100,13 @@ browse_files_column_view_keynav_failed_cb (GtkWidget *widget,
return FALSE;
}
-/* Callback used when a row in the file list is activated */
+/* Callback used when a row in the file list is activated. 'view' may
+ * be either a GtkColumnView, or a GtkGridView.
+ */
static void
-column_view_row_activated_cb (GtkColumnView *column_view,
- guint position,
- GtkFileChooserWidget *self)
+browse_files_view_row_activated_cb (GtkWidget *view,
+ guint position,
+ GtkFileChooserWidget *self)
{
GFileInfo *info;
@@ -6077,9 +6122,9 @@ column_view_row_activated_cb (GtkColumnView *column_view,
self->action == GTK_FILE_CHOOSER_ACTION_SAVE)
{
/* prevent recursion */
- g_signal_handlers_block_by_func (column_view, column_view_row_activated_cb, self);
+ g_signal_handlers_block_by_func (view, browse_files_view_row_activated_cb, self);
gtk_widget_activate_default (GTK_WIDGET (self));
- g_signal_handlers_unblock_by_func (column_view, column_view_row_activated_cb, self);
+ g_signal_handlers_unblock_by_func (view, browse_files_view_row_activated_cb, self);
}
g_clear_object (&info);
@@ -6691,12 +6736,14 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, places_sidebar);
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, places_view);
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_files_column_view);
+ gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_files_grid_view);
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_files_swin);
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_header_revealer);
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_header_stack);
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_new_folder_button);
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_path_bar_size_group);
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_path_bar);
+ gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_toggle_view_button);
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, column_view_name_column);
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, column_view_location_column);
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, column_view_size_column);
@@ -6721,7 +6768,8 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, box);
/* And a *lot* of callbacks to bind ... */
- gtk_widget_class_bind_template_callback (widget_class, browse_files_column_view_keynav_failed_cb);
+ gtk_widget_class_bind_template_callback (widget_class, browse_files_view_row_activated_cb);
+ gtk_widget_class_bind_template_callback (widget_class, browse_files_view_keynav_failed_cb);
gtk_widget_class_bind_template_callback (widget_class, filter_combo_changed);
gtk_widget_class_bind_template_callback (widget_class, path_bar_clicked);
gtk_widget_class_bind_template_callback (widget_class, places_sidebar_open_location_cb);
@@ -6742,7 +6790,6 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
gtk_widget_class_bind_template_callback (widget_class, column_view_get_location);
gtk_widget_class_bind_template_callback (widget_class, column_view_get_size);
gtk_widget_class_bind_template_callback (widget_class, column_view_get_tooltip_text);
- gtk_widget_class_bind_template_callback (widget_class, column_view_row_activated_cb);
gtk_widget_class_set_css_name (widget_class, I_("filechooser"));
@@ -6830,10 +6877,23 @@ post_process_ui (GtkFileChooserWidget *impl)
gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller), shortcut);
gtk_widget_add_controller (GTK_WIDGET (impl->browse_files_column_view), controller);
+ controller = gtk_shortcut_controller_new ();
+ trigger = gtk_alternative_trigger_new (gtk_keyval_trigger_new (GDK_KEY_F10, GDK_SHIFT_MASK),
+ gtk_keyval_trigger_new (GDK_KEY_Menu, 0));
+ action = gtk_callback_action_new (list_popup_menu_cb, impl, NULL);
+ shortcut = gtk_shortcut_new (trigger, action);
+ gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller), shortcut);
+ gtk_widget_add_controller (GTK_WIDGET (impl->browse_files_grid_view), controller);
+
controller = gtk_event_controller_key_new ();
gtk_event_controller_set_propagation_phase (controller, GTK_PHASE_CAPTURE);
g_signal_connect (controller, "key-pressed", G_CALLBACK (files_list_restrict_key_presses), impl);
gtk_widget_add_controller (impl->browse_files_column_view, controller);
+
+ controller = gtk_event_controller_key_new ();
+ gtk_event_controller_set_propagation_phase (controller, GTK_PHASE_CAPTURE);
+ g_signal_connect (controller, "key-pressed", G_CALLBACK (files_list_restrict_key_presses), impl);
+ gtk_widget_add_controller (impl->browse_files_grid_view, controller);
}
void
@@ -7195,6 +7255,7 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl)
impl->location_mode = LOCATION_MODE_PATH_BAR;
impl->operation_mode = OPERATION_MODE_BROWSE;
impl->sort_order = GTK_SORT_ASCENDING;
+ impl->view_type = VIEW_TYPE_LIST;
impl->create_folders = TRUE;
impl->auto_selecting_first_row = FALSE;
impl->renamed_file = NULL;
diff --git a/gtk/gtkfiledialog.c b/gtk/gtkfiledialog.c
index 410da0b099..d35deeac06 100644
--- a/gtk/gtkfiledialog.c
+++ b/gtk/gtkfiledialog.c
@@ -25,6 +25,8 @@
#include "gtkfilechoosernativeprivate.h"
#include "gtkdialogerror.h"
#include <glib/gi18n-lib.h>
+#include "gdk/gdkprivate.h"
+#include "gdk/gdkdebugprivate.h"
/**
* GtkFileDialog:
@@ -50,6 +52,7 @@ struct _GtkFileDialog
GObject parent_instance;
char *title;
+ char *accept_label;
unsigned int modal : 1;
GListModel *filters;
@@ -66,6 +69,7 @@ enum
PROP_SHORTCUT_FOLDERS,
PROP_CURRENT_FILTER,
PROP_CURRENT_FOLDER,
+ PROP_ACCEPT_LABEL,
NUM_PROPERTIES
};
@@ -86,6 +90,7 @@ gtk_file_dialog_finalize (GObject *object)
GtkFileDialog *self = GTK_FILE_DIALOG (object);
g_free (self->title);
+ g_free (self->accept_label);
g_clear_object (&self->filters);
g_clear_object (&self->shortcut_folders);
g_clear_object (&self->current_filter);
@@ -128,6 +133,10 @@ gtk_file_dialog_get_property (GObject *object,
g_value_set_object (value, self->current_folder);
break;
+ case PROP_ACCEPT_LABEL:
+ g_value_set_string (value, self->accept_label);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -168,6 +177,10 @@ gtk_file_dialog_set_property (GObject *object,
gtk_file_dialog_set_current_folder (self, g_value_get_object (value));
break;
+ case PROP_ACCEPT_LABEL:
+ gtk_file_dialog_set_accept_label (self, g_value_get_string (value));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -258,6 +271,18 @@ gtk_file_dialog_class_init (GtkFileDialogClass *class)
G_TYPE_FILE,
G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY);
+ /**
+ * GtkFileDialog:accept-label: (attributes org.gtk.Property.get=gtk_file_dialog_get_accept_label org.gtk.Property.set=gtk_file_dialog_set_accept_label)
+ *
+ * Label for the file chooser's accept button.
+ *
+ * Since: 4.10
+ */
+ properties[PROP_ACCEPT_LABEL] =
+ g_param_spec_string ("accept-label", NULL, NULL,
+ NULL,
+ G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY);
+
g_object_class_install_properties (object_class, NUM_PROPERTIES, properties);
}
@@ -655,32 +680,52 @@ create_file_chooser (GtkFileDialog *self,
gboolean select_multiple)
{
GtkFileChooserNative *chooser;
- const char *accept;
- const char *title;
+ const char *default_accept_label, *accept;
+ const char *default_title, *title;
+ GdkDisplay *display G_GNUC_UNUSED;
switch (action)
{
case GTK_FILE_CHOOSER_ACTION_OPEN:
- accept = _("_Open");
- title = select_multiple ? _("Pick Files") : _("Pick a File");
+ default_accept_label = _("_Open");
+ default_title = select_multiple ? _("Pick Files") : _("Pick a File");
break;
case GTK_FILE_CHOOSER_ACTION_SAVE:
- accept = _("_Save");
- title = _("Save a File");
+ default_accept_label = _("_Save");
+ default_title = _("Save a File");
break;
case GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER:
- accept = _("_Select");
- title = select_multiple ? _("Select Folders") : _("Select a Folder");
+ default_accept_label = _("_Select");
+ default_title = select_multiple ? _("Select Folders") : _("Select a Folder");
break;
default:
g_assert_not_reached ();
}
+ if (self->title)
+ title = self->title;
+ else
+ title = default_title;
+
+ if (self->accept_label)
+ accept = self->accept_label;
+ else
+ accept = default_accept_label;
+
chooser = gtk_file_chooser_native_new (title, parent, action, accept, _("_Cancel"));
- gtk_file_chooser_native_set_use_portal (chooser, TRUE);
+
+ if (parent)
+ display = gtk_widget_get_display (GTK_WIDGET (parent));
+ else
+ display = gdk_display_get_default ();
+
+ if (GDK_DISPLAY_DEBUG_CHECK (display, NO_PORTALS))
+ gtk_file_chooser_native_set_use_portal (chooser, FALSE);
+ else
+ gtk_file_chooser_native_set_use_portal (chooser, TRUE);
gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (chooser), self->modal);
gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), select_multiple);
@@ -773,6 +818,7 @@ gtk_file_dialog_open (GtkFileDialog *self,
current_file, NULL, FALSE);
task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_file_dialog_open);
g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy);
@@ -849,6 +895,7 @@ gtk_file_dialog_select_folder (GtkFileDialog *self,
current_folder, NULL, FALSE);
task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_file_dialog_select_folder);
g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy);
@@ -930,6 +977,7 @@ gtk_file_dialog_save (GtkFileDialog *self,
current_file, current_name, FALSE);
task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_file_dialog_save);
g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy);
@@ -1003,6 +1051,7 @@ gtk_file_dialog_open_multiple (GtkFileDialog *self,
NULL, NULL, TRUE);
task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_file_dialog_open_multiple);
g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy);
@@ -1077,6 +1126,7 @@ gtk_file_dialog_select_multiple_folders (GtkFileDialog *self,
NULL, NULL, TRUE);
task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_file_dialog_select_multiple_folders);
g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy);
@@ -1115,6 +1165,44 @@ gtk_file_dialog_select_multiple_folders_finish (GtkFileDialog *self,
return finish_multiple_files_op (self, G_TASK (result), error);
}
+/**
+ * gtk_file_dialog_get_accept_label:
+ * @self: a `GtkFileDialog`
+ *
+ * Returns: (nullable): the label shown on the file chooser's accept button.
+ *
+ * Since: 4.10
+ */
+const char *
+gtk_file_dialog_get_accept_label (GtkFileDialog *self)
+{
+ g_return_val_if_fail (GTK_IS_FILE_DIALOG (self), NULL);
+
+ return self->accept_label;
+}
+
+/**
+ * gtk_file_dialog_set_accept_label:
+ * @self: a `GtkFileDialog`
+ * @accept_label: (nullable): the new accept label
+ *
+ * Sets the label shown on the file chooser's accept button.
+ *
+ * Leaving the accept label unset or setting it as `NULL` will fall back to
+ * a default label, depending on what API is used to launch the file dialog.
+ *
+ * Since: 4.10
+ */
+void
+gtk_file_dialog_set_accept_label (GtkFileDialog *self,
+ const char *accept_label)
+{
+ g_return_if_fail (GTK_IS_FILE_DIALOG (self));
+
+ if (g_set_str (&self->accept_label, accept_label))
+ g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ACCEPT_LABEL]);
+}
+
/* }}} */
/* vim:set foldmethod=marker expandtab: */
diff --git a/gtk/gtkfiledialog.h b/gtk/gtkfiledialog.h
index 34664d646b..5c3cac52bc 100644
--- a/gtk/gtkfiledialog.h
+++ b/gtk/gtkfiledialog.h
@@ -148,4 +148,11 @@ GListModel * gtk_file_dialog_select_multiple_folders_finish
GAsyncResult *result,
GError **error);
+GDK_AVAILABLE_IN_4_10
+const char * gtk_file_dialog_get_accept_label (GtkFileDialog *self);
+
+GDK_AVAILABLE_IN_4_10
+void gtk_file_dialog_set_accept_label (GtkFileDialog *self,
+ const char *accept_label);
+
G_END_DECLS
diff --git a/gtk/gtkfilelauncher.c b/gtk/gtkfilelauncher.c
new file mode 100644
index 0000000000..0b433595b1
--- /dev/null
+++ b/gtk/gtkfilelauncher.c
@@ -0,0 +1,502 @@
+/*
+ * GTK - The GIMP Toolkit
+ * Copyright (C) 2022 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This Library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This Library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include "gtkfilelauncher.h"
+
+#include "gtkdialogerror.h"
+#include "gopenuriportal.h"
+#include "deprecated/gtkshow.h"
+#include <glib/gi18n-lib.h>
+
+/**
+ * GtkFileLauncher:
+ *
+ * A `GtkFileLauncher` object collects the arguments that are needed to open a uri
+ * with an application.
+ *
+ * Depending on system configuration, user preferences and available APIs, this
+ * may or may not show an app chooser dialog or launch the default application
+ * right away.
+ *
+ * The operation is started with the [method@Gtk.FileLauncher.launch] function.
+ * This API follows the GIO async pattern, and the result can be obtained by
+ * calling [method@Gtk.FileLauncher.launch_finish].
+ *
+ * Since: 4.10
+ */
+
+/* {{{ GObject implementation */
+
+struct _GtkFileLauncher
+{
+ GObject parent_instance;
+
+ GFile *file;
+};
+
+enum {
+ PROP_FILE = 1,
+
+ NUM_PROPERTIES
+};
+
+static GParamSpec *properties[NUM_PROPERTIES];
+
+G_DEFINE_TYPE (GtkFileLauncher, gtk_file_launcher, G_TYPE_OBJECT)
+
+static void
+gtk_file_launcher_init (GtkFileLauncher *self)
+{
+}
+
+static void
+gtk_file_launcher_finalize (GObject *object)
+{
+ //GtkFileLauncher *self = GTK_FILE_LAUNCHER (object);
+
+ G_OBJECT_CLASS (gtk_file_launcher_parent_class)->finalize (object);
+}
+
+static void
+gtk_file_launcher_get_property (GObject *object,
+ unsigned int property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GtkFileLauncher *self = GTK_FILE_LAUNCHER (object);
+
+ switch (property_id)
+ {
+ case PROP_FILE:
+ g_value_set_object (value, self->file);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+gtk_file_launcher_set_property (GObject *object,
+ unsigned int property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GtkFileLauncher *self = GTK_FILE_LAUNCHER (object);
+
+ switch (property_id)
+ {
+ case PROP_FILE:
+ gtk_file_launcher_set_file (self, g_value_get_object (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+gtk_file_launcher_class_init (GtkFileLauncherClass *class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+ object_class->finalize = gtk_file_launcher_finalize;
+ object_class->get_property = gtk_file_launcher_get_property;
+ object_class->set_property = gtk_file_launcher_set_property;
+
+ /**
+ * GtkFileLauncher:file: (attributes org.gtk.Property.get=gtk_file_launcher_get_file org.gtk.Property.set=gtk_file_launcher_set_file)
+ *
+ * The file to launch.
+ *
+ * Since: 4.10
+ */
+ properties[PROP_FILE] =
+ g_param_spec_object ("file", NULL, NULL,
+ G_TYPE_FILE,
+ G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY);
+
+ g_object_class_install_properties (object_class, NUM_PROPERTIES, properties);
+}
+
+/* }}} */
+/* {{{ API: Constructor */
+
+/**
+ * gtk_file_launcher_new:
+ * @file: (nullable): the file to open
+ *
+ * Creates a new `GtkFileLauncher` object.
+ *
+ * Returns: the new `GtkFileLauncher`
+ *
+ * Since: 4.10
+ */
+GtkFileLauncher *
+gtk_file_launcher_new (GFile *file)
+{
+ return g_object_new (GTK_TYPE_FILE_LAUNCHER,
+ "file", file,
+ NULL);
+}
+
+ /* }}} */
+/* {{{ API: Getters and setters */
+
+/**
+ * gtk_file_launcher_get_file:
+ * @self: a `GtkFileLauncher`
+ *
+ * Gets the file that will be opened.
+ *
+ * Returns: (transfer none) (nullable): the file
+ *
+ * Since: 4.10
+ */
+GFile *
+gtk_file_launcher_get_file (GtkFileLauncher *self)
+{
+ g_return_val_if_fail (GTK_IS_FILE_LAUNCHER (self), NULL);
+
+ return self->file;
+}
+
+/**
+ * gtk_file_launcher_set_file:
+ * @self: a `GtkFileLauncher`
+ * @file: (nullable): a `GFile`
+ *
+ * Sets the file that will be opened.
+ *
+ * Since: 4.10
+ */
+void
+gtk_file_launcher_set_file (GtkFileLauncher *self,
+ GFile *file)
+{
+ g_return_if_fail (GTK_IS_FILE_LAUNCHER (self));
+ g_return_if_fail (file == NULL || G_IS_FILE (file));
+
+ if (!g_set_object (&self->file, file))
+ return;
+
+ g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_FILE]);
+}
+
+/* }}} */
+/* {{{ Async implementation */
+
+#ifndef G_OS_WIN32
+static void
+open_done (GObject *source,
+ GAsyncResult *result,
+ gpointer data)
+{
+ GTask *task = G_TASK (data);
+ GError *error = NULL;
+
+ if (!g_openuri_portal_open_finish (result, &error))
+ g_task_return_error (task, error);
+ else
+ g_task_return_boolean (task, TRUE);
+
+ g_object_unref (task);
+}
+#endif
+
+static void
+show_folder_done (GObject *source,
+ GAsyncResult *result,
+ gpointer data)
+{
+ GDBusConnection *bus = G_DBUS_CONNECTION (source);
+ GTask *task = G_TASK (data);
+ GVariant *res;
+ GError *error = NULL;
+
+ res = g_dbus_connection_call_finish (bus, result, &error);
+ if (res)
+ g_variant_unref (res);
+
+ if (error)
+ {
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_CANCELLED, "Cancelled by user");
+ else
+ g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, "%s", error->message);
+ g_error_free (error);
+ }
+ else
+ g_task_return_boolean (task, TRUE);
+
+ g_object_unref (task);
+}
+
+#define FILE_MANAGER_DBUS_NAME "org.freedesktop.FileManager1"
+#define FILE_MANAGER_DBUS_IFACE "org.freedesktop.FileManager1"
+#define FILE_MANAGER_DBUS_PATH "/org/freedesktop/FileManager1"
+
+static void
+show_folder (GtkWindow *parent,
+ const char *uri,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GDBusConnection *bus;
+ GVariantBuilder uris_builder = G_VARIANT_BUILDER_INIT (G_VARIANT_TYPE_STRING_ARRAY);
+
+ bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
+
+ if (!bus)
+ {
+ g_task_return_new_error (G_TASK (user_data),
+ GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED,
+ "Session bus not available");
+ g_object_unref (G_TASK (user_data));
+ return;
+ }
+
+ g_variant_builder_add (&uris_builder, "s", uri);
+
+ g_dbus_connection_call (bus,
+ FILE_MANAGER_DBUS_NAME,
+ FILE_MANAGER_DBUS_PATH,
+ FILE_MANAGER_DBUS_IFACE,
+ "ShowFolders",
+ g_variant_new ("(ass)", &uris_builder, ""),
+ NULL, /* ignore returned type */
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ show_folder_done,
+ user_data);
+}
+
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+static void
+show_uri_done (GObject *source,
+ GAsyncResult *result,
+ gpointer data)
+{
+ GtkWindow *parent = GTK_WINDOW (source);
+ GTask *task = G_TASK (data);
+ GError *error = NULL;
+
+ if (!gtk_show_uri_full_finish (parent, result, &error))
+ {
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_CANCELLED, "Cancelled by user");
+ else
+ g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, "%s", error->message);
+ g_error_free (error);
+ }
+ else
+ g_task_return_boolean (task, TRUE);
+
+ g_object_unref (task);
+}
+G_GNUC_END_IGNORE_DEPRECATIONS
+
+ /* }}} */
+/* {{{ Async API */
+
+/**
+ * gtk_file_launcher_launch:
+ * @self: a `GtkFileLauncher`
+ * @parent: (nullable): the parent `GtkWindow`
+ * @cancellable: (nullable): a `GCancellable` to cancel the operation
+ * @callback: (scope async): a callback to call when the operation is complete
+ * @user_data: (closure callback): data to pass to @callback
+ *
+ * Launch an application to open the file.
+ *
+ * This may present an app chooser dialog to the user.
+ *
+ * The @callback will be called when the operation is completed.
+ * It should call [method@Gtk.FileLauncher.launch_finish] to obtain
+ * the result.
+ *
+ * Since: 4.10
+ */
+void
+gtk_file_launcher_launch (GtkFileLauncher *self,
+ GtkWindow *parent,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GTask *task;
+
+ g_return_if_fail (GTK_IS_FILE_LAUNCHER (self));
+
+ task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
+ g_task_set_source_tag (task, gtk_file_launcher_launch);
+
+ if (self->file == NULL)
+ {
+ g_task_return_new_error (task,
+ GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED,
+ "No file to launch");
+ return;
+ }
+
+#ifndef G_OS_WIN32
+ if (g_openuri_portal_is_available ())
+ {
+ g_openuri_portal_open_async (self->file, FALSE, parent, cancellable, open_done, task);
+ }
+ else
+#endif
+ {
+ char *uri = g_file_get_uri (self->file);
+
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+ gtk_show_uri_full (parent, uri, GDK_CURRENT_TIME, cancellable, show_uri_done, task);
+G_GNUC_END_IGNORE_DEPRECATIONS
+
+ g_free (uri);
+ }
+}
+
+/**
+ * gtk_file_launcher_launch_finish:
+ * @self: a `GtkFileLauncher`
+ * @result: a `GAsyncResult`
+ * @error: return location for a [enum@Gtk.DialogError] or [enum@Gio.Error] error
+ *
+ * Finishes the [method@Gtk.FileLauncher.launch] call and
+ * returns the result.
+ *
+ * Returns: `TRUE` if an application was launched,
+ * or `FALSE` and @error is set
+ *
+ * Since: 4.10
+ */
+gboolean
+gtk_file_launcher_launch_finish (GtkFileLauncher *self,
+ GAsyncResult *result,
+ GError **error)
+{
+ g_return_val_if_fail (GTK_IS_FILE_LAUNCHER (self), FALSE);
+ g_return_val_if_fail (g_task_is_valid (result, self), FALSE);
+ g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_file_launcher_launch, FALSE);
+
+ return g_task_propagate_boolean (G_TASK (result), error);
+}
+
+/**
+ * gtk_file_launcher_open_containing_folder:
+ * @self: a `GtkFileLauncher`
+ * @parent: (nullable): the parent `GtkWindow`
+ * @cancellable: (nullable): a `GCancellable` to cancel the operation
+ * @callback: (scope async): a callback to call when the operation is complete
+ * @user_data: (closure callback): data to pass to @callback
+ *
+ * Launch a file manager to show the file in its parent directory.
+ *
+ * This is only supported native files. It will fail if @file
+ * is e.g. a http:// uri.
+ *
+ * The @callback will be called when the operation is completed.
+ * It should call [method@Gtk.FileLauncher.open_containing_folder_finish]
+ * to obtain the result.
+ *
+ * Since: 4.10
+ */
+void
+gtk_file_launcher_open_containing_folder (GtkFileLauncher *self,
+ GtkWindow *parent,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GTask *task;
+
+ g_return_if_fail (GTK_IS_FILE_LAUNCHER (self));
+
+ task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
+ g_task_set_source_tag (task, gtk_file_launcher_open_containing_folder);
+
+ if (self->file == NULL)
+ {
+ g_task_return_new_error (task,
+ GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED,
+ "No file to open");
+ return;
+ }
+
+ if (!g_file_is_native (self->file))
+ {
+ g_task_return_new_error (task,
+ GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED,
+ "Operation not supported on non-native files");
+ return;
+ }
+
+#ifndef G_OS_WIN32
+ if (g_openuri_portal_is_available ())
+ {
+ g_openuri_portal_open_async (self->file, TRUE, parent, cancellable, open_done, task);
+ }
+ else
+#endif
+ {
+ char *uri = g_file_get_uri (self->file);
+
+ show_folder (parent, uri, cancellable, show_folder_done, task);
+
+ g_free (uri);
+ }
+}
+
+/**
+ * gtk_file_launcher_open_containing_folder_finish:
+ * @self: a `GtkFileLauncher`
+ * @result: a `GAsyncResult`
+ * @error: return location for a [enum@Gtk.DialogError] or [enum@Gio.Error] error
+ *
+ * Finishes the [method@Gtk.FileLauncher.open_containing_folder]
+ * call and returns the result.
+ *
+ * Returns: `TRUE` if an application was launched,
+ * or `FALSE` and @error is set
+ *
+ * Since: 4.10
+ */
+gboolean
+gtk_file_launcher_open_containing_folder_finish (GtkFileLauncher *self,
+ GAsyncResult *result,
+ GError **error)
+{
+ g_return_val_if_fail (GTK_IS_FILE_LAUNCHER (self), FALSE);
+ g_return_val_if_fail (g_task_is_valid (result, self), FALSE);
+ g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_file_launcher_open_containing_folder, FALSE);
+
+ return g_task_propagate_boolean (G_TASK (result), error);
+}
+
+/* }}} */
+/* vim:set foldmethod=marker expandtab: */
diff --git a/gtk/gtkfilelauncher.h b/gtk/gtkfilelauncher.h
new file mode 100644
index 0000000000..2c5a3e665c
--- /dev/null
+++ b/gtk/gtkfilelauncher.h
@@ -0,0 +1,68 @@
+/* GTK - The GIMP Toolkit
+ *
+ * Copyright (C) 2022 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <gdk/gdk.h>
+#include <gtk/gtkwindow.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_FILE_LAUNCHER (gtk_file_launcher_get_type ())
+
+GDK_AVAILABLE_IN_4_10
+G_DECLARE_FINAL_TYPE (GtkFileLauncher, gtk_file_launcher, GTK, FILE_LAUNCHER, GObject)
+
+GDK_AVAILABLE_IN_4_10
+GtkFileLauncher * gtk_file_launcher_new (GFile *file);
+
+GDK_AVAILABLE_IN_4_10
+GFile * gtk_file_launcher_get_file (GtkFileLauncher *self);
+GDK_AVAILABLE_IN_4_10
+void gtk_file_launcher_set_file (GtkFileLauncher *self,
+ GFile *file);
+
+GDK_AVAILABLE_IN_4_10
+void gtk_file_launcher_launch (GtkFileLauncher *self,
+ GtkWindow *parent,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+GDK_AVAILABLE_IN_4_10
+gboolean gtk_file_launcher_launch_finish (GtkFileLauncher *self,
+ GAsyncResult *result,
+ GError **error);
+
+GDK_AVAILABLE_IN_4_10
+void gtk_file_launcher_open_containing_folder (GtkFileLauncher *self,
+ GtkWindow *parent,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+GDK_AVAILABLE_IN_4_10
+gboolean gtk_file_launcher_open_containing_folder_finish (GtkFileLauncher *self,
+ GAsyncResult *result,
+ GError **error);
+
+G_END_DECLS
diff --git a/gtk/gtkfilethumbnail.c b/gtk/gtkfilethumbnail.c
index d8a5171119..f48de386a9 100644
--- a/gtk/gtkfilethumbnail.c
+++ b/gtk/gtkfilethumbnail.c
@@ -35,6 +35,7 @@ struct _GtkFileThumbnail
GtkWidget parent;
GtkWidget *image;
+ int icon_size;
GCancellable *cancellable;
GFileInfo *info;
@@ -49,6 +50,7 @@ G_DEFINE_FINAL_TYPE (GtkFileThumbnail, _gtk_file_thumbnail, GTK_TYPE_WIDGET)
enum {
PROP_0,
+ PROP_ICON_SIZE,
PROP_INFO,
N_PROPS,
};
@@ -72,6 +74,7 @@ update_image (GtkFileThumbnail *self)
{
GtkIconTheme *icon_theme;
GIcon *icon;
+ int icon_size;
int scale;
if (!g_file_info_has_attribute (self->info, G_FILE_ATTRIBUTE_STANDARD_ICON))
@@ -80,7 +83,8 @@ update_image (GtkFileThumbnail *self)
scale = gtk_widget_get_scale_factor (GTK_WIDGET (self));
icon_theme = gtk_icon_theme_get_for_display (gtk_widget_get_display (GTK_WIDGET (self)));
- icon = _gtk_file_info_get_icon (self->info, ICON_SIZE, scale, icon_theme);
+ icon_size = self->icon_size != -1 ? self->icon_size : ICON_SIZE;
+ icon = _gtk_file_info_get_icon (self->info, icon_size, scale, icon_theme);
gtk_image_set_from_gicon (GTK_IMAGE (self->image), icon);
@@ -173,6 +177,10 @@ _gtk_file_thumbnail_get_property (GObject *object,
switch (prop_id)
{
+ case PROP_ICON_SIZE:
+ g_value_set_int (value, self->icon_size);
+ break;
+
case PROP_INFO:
g_value_set_object (value, self->info);
break;
@@ -192,6 +200,10 @@ _gtk_file_thumbnail_set_property (GObject *object,
switch (prop_id)
{
+ case PROP_ICON_SIZE:
+ _gtk_file_thumbnail_set_icon_size (self, g_value_get_int (value));
+ break;
+
case PROP_INFO:
_gtk_file_thumbnail_set_info (self, g_value_get_object (value));
break;
@@ -211,6 +223,11 @@ _gtk_file_thumbnail_class_init (GtkFileThumbnailClass *klass)
object_class->get_property = _gtk_file_thumbnail_get_property;
object_class->set_property = _gtk_file_thumbnail_set_property;
+ properties[PROP_ICON_SIZE] =
+ g_param_spec_int ("icon-size", NULL, NULL,
+ -1, G_MAXINT, -1,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
properties[PROP_INFO] =
g_param_spec_object ("file-info", NULL, NULL,
G_TYPE_FILE_INFO,
@@ -226,6 +243,7 @@ _gtk_file_thumbnail_class_init (GtkFileThumbnailClass *klass)
static void
_gtk_file_thumbnail_init (GtkFileThumbnail *self)
{
+ self->icon_size = -1;
self->image = gtk_image_new ();
gtk_widget_set_parent (self->image, GTK_WIDGET (self));
}
@@ -253,3 +271,32 @@ _gtk_file_thumbnail_set_info (GtkFileThumbnail *self,
}
}
+int
+_gtk_file_thumbnail_get_icon_size (GtkFileThumbnail *self)
+{
+ g_assert (GTK_IS_FILE_THUMBNAIL (self));
+
+ return self->icon_size;
+}
+
+void
+_gtk_file_thumbnail_set_icon_size (GtkFileThumbnail *self,
+ int icon_size)
+{
+ g_assert (GTK_IS_FILE_THUMBNAIL (self));
+ g_assert (icon_size == -1 || icon_size > 0);
+
+ if (self->icon_size == icon_size)
+ return;
+
+ self->icon_size = icon_size;
+ if (self->icon_size == -1)
+ gtk_image_set_pixel_size (GTK_IMAGE (self->image), ICON_SIZE);
+ else
+ gtk_image_set_pixel_size (GTK_IMAGE (self->image), icon_size);
+
+ cancel_thumbnail (self);
+ get_thumbnail (self);
+ g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ICON_SIZE]);
+}
+
diff --git a/gtk/gtkfilethumbnail.h b/gtk/gtkfilethumbnail.h
index c9c5741d3f..bdb3f6c46f 100644
--- a/gtk/gtkfilethumbnail.h
+++ b/gtk/gtkfilethumbnail.h
@@ -40,6 +40,10 @@ GFileInfo *_gtk_file_thumbnail_get_info (GtkFileThumbnail *self);
void _gtk_file_thumbnail_set_info (GtkFileThumbnail *self,
GFileInfo *info);
+int _gtk_file_thumbnail_get_icon_size (GtkFileThumbnail *self);
+void _gtk_file_thumbnail_set_icon_size (GtkFileThumbnail *self,
+ int icon_size);
+
G_END_DECLS
#endif /* __GTK_FILE_THUMBNAIL_H__ */
diff --git a/gtk/gtkfontdialog.c b/gtk/gtkfontdialog.c
index 169b4a6029..334dcaf93a 100644
--- a/gtk/gtkfontdialog.c
+++ b/gtk/gtkfontdialog.c
@@ -596,6 +596,7 @@ create_font_chooser (GtkFontDialog *self,
window = gtk_font_chooser_dialog_new (title, parent);
gtk_font_chooser_set_level (GTK_FONT_CHOOSER (window), level);
+ gtk_window_set_modal (GTK_WINDOW (window), TRUE);
if (self->language)
gtk_font_chooser_set_language (GTK_FONT_CHOOSER (window),
pango_language_to_string (self->language));
@@ -657,6 +658,7 @@ gtk_font_dialog_choose_family (GtkFontDialog *self,
g_clear_pointer (&desc, pango_font_description_free);
task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_font_dialog_choose_family);
g_task_set_task_data (task, window, (GDestroyNotify) gtk_window_destroy);
@@ -672,7 +674,7 @@ gtk_font_dialog_choose_family (GtkFontDialog *self,
* gtk_font_dialog_choose_family_finish:
* @self: a `GtkFontDialog`
* @result: a `GAsyncResult`
- * @error: return location for an error
+ * @error: return location for a [enum@Gtk.DialogError] error
*
* Finishes the [method@Gtk.FontDialog.choose_family] call
* and returns the resulting family.
@@ -740,6 +742,7 @@ gtk_font_dialog_choose_face (GtkFontDialog *self,
g_clear_pointer (&desc, pango_font_description_free);
task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_font_dialog_choose_face);
g_task_set_task_data (task, window, (GDestroyNotify) gtk_window_destroy);
@@ -755,7 +758,7 @@ gtk_font_dialog_choose_face (GtkFontDialog *self,
* gtk_font_dialog_choose_face_finish:
* @self: a `GtkFontDialog`
* @result: a `GAsyncResult`
- * @error: return location for an error
+ * @error: return location for a [enum@Gtk.DialogError] error
*
* Finishes the [method@Gtk.FontDialog.choose_face] call
* and returns the resulting font face.
@@ -773,7 +776,7 @@ gtk_font_dialog_choose_face_finish (GtkFontDialog *self,
g_return_val_if_fail (g_task_is_valid (result, self), NULL);
g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_font_dialog_choose_face, NULL);
- return g_task_propagate_pointer (G_TASK (result), NULL);
+ return g_task_propagate_pointer (G_TASK (result), error);
}
/**
@@ -817,6 +820,7 @@ gtk_font_dialog_choose_font (GtkFontDialog *self,
GTK_FONT_CHOOSER_LEVEL_VARIATIONS);
task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_font_dialog_choose_font);
g_task_set_task_data (task, window, (GDestroyNotify) gtk_window_destroy);
@@ -832,7 +836,7 @@ gtk_font_dialog_choose_font (GtkFontDialog *self,
* gtk_font_dialog_choose_font_finish:
* @self: a `GtkFontDialog`
* @result: a `GAsyncResult`
- * @error: return location for an error
+ * @error: return location for a [enum@Gtk.DialogError] error
*
* Finishes the [method@Gtk.FontDialog.choose_font] call
* and returns the resulting font description.
@@ -850,7 +854,7 @@ gtk_font_dialog_choose_font_finish (GtkFontDialog *self,
g_return_val_if_fail (g_task_is_valid (result, self), NULL);
g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_font_dialog_choose_font, NULL);
- return g_task_propagate_pointer (G_TASK (result), NULL);
+ return g_task_propagate_pointer (G_TASK (result), error);
}
/**
@@ -896,6 +900,7 @@ gtk_font_dialog_choose_font_and_features (GtkFontDialog *self,
GTK_FONT_CHOOSER_LEVEL_FEATURES);
task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_font_dialog_choose_font_and_features);
g_task_set_task_data (task, window, (GDestroyNotify) gtk_window_destroy);
@@ -914,7 +919,7 @@ gtk_font_dialog_choose_font_and_features (GtkFontDialog *self,
* @font_desc: (out caller-allocates): return location for font description
* @font_features: (out caller-allocates): return location for font features
* @language: (out caller-allocates): return location for the language
- * @error: return location for an error
+ * @error: return location for a [enum@Gtk.DialogError] error
*
* Finishes the [method@Gtk.FontDialog.choose_font_and_features]
* call and returns the resulting font description and font features.
diff --git a/gtk/gtkfontdialogbutton.c b/gtk/gtkfontdialogbutton.c
index 162e0f0890..9dc25cce7c 100644
--- a/gtk/gtkfontdialogbutton.c
+++ b/gtk/gtkfontdialogbutton.c
@@ -393,8 +393,9 @@ gtk_font_dialog_button_class_init (GtkFontDialogButtonClass *class)
static void
update_button_sensitivity (GtkFontDialogButton *self)
{
- gtk_widget_set_sensitive (self->button,
- self->dialog != NULL && self->cancellable == NULL);
+ if (self->button)
+ gtk_widget_set_sensitive (self->button,
+ self->dialog != NULL && self->cancellable == NULL);
}
static void
@@ -402,10 +403,11 @@ family_chosen (GObject *source,
GAsyncResult *result,
gpointer data)
{
+ GtkFontDialog *dialog = GTK_FONT_DIALOG (source);
GtkFontDialogButton *self = data;
PangoFontFamily *family;
- family = gtk_font_dialog_choose_family_finish (self->dialog, result, NULL);
+ family = gtk_font_dialog_choose_family_finish (dialog, result, NULL);
if (family)
{
PangoFontDescription *desc;
@@ -428,10 +430,11 @@ face_chosen (GObject *source,
GAsyncResult *result,
gpointer data)
{
+ GtkFontDialog *dialog = GTK_FONT_DIALOG (source);
GtkFontDialogButton *self = data;
PangoFontFace *face;
- face = gtk_font_dialog_choose_face_finish (self->dialog, result, NULL);
+ face = gtk_font_dialog_choose_face_finish (dialog, result, NULL);
if (face)
{
PangoFontDescription *desc;
@@ -453,10 +456,11 @@ font_chosen (GObject *source,
GAsyncResult *result,
gpointer data)
{
+ GtkFontDialog *dialog = GTK_FONT_DIALOG (source);
GtkFontDialogButton *self = data;
PangoFontDescription *desc;
- desc = gtk_font_dialog_choose_font_finish (self->dialog, result, NULL);
+ desc = gtk_font_dialog_choose_font_finish (dialog, result, NULL);
if (desc)
{
gtk_font_dialog_button_set_font_desc (self, desc);
@@ -472,12 +476,13 @@ font_and_features_chosen (GObject *source,
GAsyncResult *result,
gpointer data)
{
+ GtkFontDialog *dialog = GTK_FONT_DIALOG (source);
GtkFontDialogButton *self = data;
PangoFontDescription *desc;
char *features;
PangoLanguage *language;
- if (gtk_font_dialog_choose_font_and_features_finish (self->dialog, result,
+ if (gtk_font_dialog_choose_font_and_features_finish (dialog, result,
&desc, &features, &language,
NULL))
{
diff --git a/gtk/gtkgesturestylus.c b/gtk/gtkgesturestylus.c
index d10dfe1a05..bc3da9351d 100644
--- a/gtk/gtkgesturestylus.c
+++ b/gtk/gtkgesturestylus.c
@@ -34,7 +34,16 @@
#include "gtkmain.h"
#include "gtknative.h"
-G_DEFINE_TYPE (GtkGestureStylus, gtk_gesture_stylus, GTK_TYPE_GESTURE_SINGLE)
+typedef struct {
+ gboolean stylus_only;
+} GtkGestureStylusPrivate;
+
+G_DEFINE_TYPE_WITH_PRIVATE (GtkGestureStylus, gtk_gesture_stylus, GTK_TYPE_GESTURE_SINGLE)
+
+enum {
+ PROP_STYLUS_ONLY = 1,
+ N_PROPERTIES
+};
enum {
PROXIMITY,
@@ -44,20 +53,57 @@ enum {
N_SIGNALS
};
+static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, };
static guint signals[N_SIGNALS] = { 0, };
+static void gtk_gesture_stylus_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GtkGestureStylus *gesture = GTK_GESTURE_STYLUS (object);
+
+ switch (prop_id)
+ {
+ case PROP_STYLUS_ONLY:
+ g_value_set_boolean (value, gtk_gesture_stylus_get_stylus_only (gesture));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void gtk_gesture_stylus_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GtkGestureStylus *gesture = GTK_GESTURE_STYLUS (object);
+
+ switch (prop_id)
+ {
+ case PROP_STYLUS_ONLY:
+ gtk_gesture_stylus_set_stylus_only (gesture, g_value_get_boolean (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
static gboolean
gtk_gesture_stylus_handle_event (GtkEventController *controller,
GdkEvent *event,
double x,
double y)
{
+ GtkGestureStylusPrivate* priv;
GdkModifierType modifiers;
guint n_signal;
+ priv = gtk_gesture_stylus_get_instance_private (GTK_GESTURE_STYLUS (controller));
GTK_EVENT_CONTROLLER_CLASS (gtk_gesture_stylus_parent_class)->handle_event (controller, event, x, y);
- if (!gdk_event_get_device_tool (event))
+ if (!(priv->stylus_only || gdk_event_get_device_tool (event)))
return FALSE;
switch ((guint) gdk_event_get_event_type (event))
@@ -88,8 +134,27 @@ gtk_gesture_stylus_handle_event (GtkEventController *controller,
static void
gtk_gesture_stylus_class_init (GtkGestureStylusClass *klass)
{
+ GObjectClass* object_class;
GtkEventControllerClass *event_controller_class;
+ object_class = G_OBJECT_CLASS (klass);
+ object_class->get_property = gtk_gesture_stylus_get_property;
+ object_class->set_property = gtk_gesture_stylus_set_property;
+
+ /**
+ * GtkGestureStylus:stylus-only: (attributes org.gtk.Property.get=gtk_gesture_stylus_get_stylus_only org.gtk.Property.set=gtk_gesture_stylus_set_stylus_only)
+ *
+ * If this gesture should exclusively react to stylus input devices.
+ *
+ * Since: 4.10
+ */
+ obj_properties[PROP_STYLUS_ONLY] = g_param_spec_boolean ("stylus-only", NULL, NULL,
+ TRUE,
+ G_PARAM_READWRITE |
+ G_PARAM_EXPLICIT_NOTIFY |
+ G_PARAM_CONSTRUCT);
+ g_object_class_install_properties (object_class, N_PROPERTIES, obj_properties);
+
event_controller_class = GTK_EVENT_CONTROLLER_CLASS (klass);
event_controller_class->handle_event = gtk_gesture_stylus_handle_event;
@@ -177,6 +242,9 @@ gtk_gesture_stylus_class_init (GtkGestureStylusClass *klass)
static void
gtk_gesture_stylus_init (GtkGestureStylus *gesture)
{
+ GtkGestureStylusPrivate* priv = gtk_gesture_stylus_get_instance_private(gesture);
+
+ priv->stylus_only = TRUE;
}
/**
@@ -194,6 +262,56 @@ gtk_gesture_stylus_new (void)
}
/**
+ * gtk_gesture_stylus_get_stylus_only: (attributes org.gtk.Method.get_property=stylus-only)
+ * @gesture: the gesture
+ *
+ * Checks whether the gesture is for styluses only.
+ *
+ * Stylus-only gestures will signal events exclusively from stylus
+ * input devices.
+ *
+ * Returns: %TRUE if the gesture is only for stylus events
+ *
+ * Since: 4.10
+ */
+gboolean
+gtk_gesture_stylus_get_stylus_only (GtkGestureStylus *gesture)
+{
+ GtkGestureStylusPrivate *priv = gtk_gesture_stylus_get_instance_private (gesture);
+
+ g_return_val_if_fail (GTK_IS_GESTURE_STYLUS (gesture), FALSE);
+
+ return priv->stylus_only;
+}
+
+/**
+ * gtk_gesture_stylus_set_stylus_only: (attributes org.gtk.Method.set_property=stylus-only)
+ * @gesture: the gesture
+ * @stylus_only: whether the gesture is used exclusivly for stylus events
+ *
+ * Sets the state of stylus-only
+ *
+ * If true, the gesture will exclusivly handle events from stylus input deivces,
+ * otherwise it'll handle events from any pointing device.
+ *
+ * Since: 4.10
+ */
+void
+gtk_gesture_stylus_set_stylus_only (GtkGestureStylus *gesture, gboolean stylus_only)
+{
+ GtkGestureStylusPrivate *priv = gtk_gesture_stylus_get_instance_private (gesture);
+
+ g_return_if_fail (GTK_IS_GESTURE_STYLUS (gesture));
+
+ if (priv->stylus_only == stylus_only)
+ return;
+
+ priv->stylus_only = stylus_only;
+
+ g_object_notify_by_pspec (G_OBJECT (gesture), obj_properties[PROP_STYLUS_ONLY]);
+}
+
+/**
* gtk_gesture_stylus_get_axis:
* @gesture: a `GtkGestureStylus`
* @axis: requested device axis
diff --git a/gtk/gtkgesturestylus.h b/gtk/gtkgesturestylus.h
index df31f5277a..ea7784d249 100644
--- a/gtk/gtkgesturestylus.h
+++ b/gtk/gtkgesturestylus.h
@@ -43,6 +43,12 @@ GType gtk_gesture_stylus_get_type (void) G_GNUC_CONST;
GDK_AVAILABLE_IN_ALL
GtkGesture * gtk_gesture_stylus_new (void);
+GDK_AVAILABLE_IN_4_10
+gboolean gtk_gesture_stylus_get_stylus_only (GtkGestureStylus *gesture);
+GDK_AVAILABLE_IN_4_10
+void gtk_gesture_stylus_set_stylus_only (GtkGestureStylus *gesture,
+ gboolean stylus_only);
+
GDK_AVAILABLE_IN_ALL
gboolean gtk_gesture_stylus_get_axis (GtkGestureStylus *gesture,
GdkAxisUse axis,
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index e5310eed0e..fc3eb09165 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -1703,49 +1703,6 @@ gtk_icon_theme_get_theme_name (GtkIconTheme *self)
return theme_name;
}
-static const char builtin_hicolor_index[] =
-"[Icon Theme]\n"
-"Name=Hicolor\n"
-"Hidden=True\n"
-"Directories=16x16/actions,16x16/status,22x22/actions,24x24/actions,24x24/status,32x32/actions,32x32/status,48x48/status,64x64/actions,scalable/status,scalable/actions\n"
-"[16x16/actions]\n"
-"Size=16\n"
-"Type=Threshold\n"
-"[16x16/status]\n"
-"Size=16\n"
-"Type=Threshold\n"
-"[22x22/actions]\n"
-"Size=22\n"
-"Type=Threshold\n"
-"[24x24/actions]\n"
-"Size=24\n"
-"Type=Threshold\n"
-"[24x24/status]\n"
-"Size=24\n"
-"Type=Threshold\n"
-"[32x32/actions]\n"
-"Size=32\n"
-"Type=Threshold\n"
-"[32x32/status]\n"
-"Size=32\n"
-"Type=Threshold\n"
-"[48x48/status]\n"
-"Size=48\n"
-"Type=Threshold\n"
-"[64x64/actions]\n"
-"Size=64\n"
-"Type=Threshold\n"
-"[scalable/status]\n"
-"MinSize=1\n"
-"Size=128\n"
-"MaxSize=256\n"
-"Type=Scalable\n"
-"[scalable/actions]\n"
-"MinSize=1\n"
-"Size=128\n"
-"MaxSize=256\n"
-"Type=Scalable\n";
-
static void
insert_theme (GtkIconTheme *self,
const char *theme_name)
@@ -1812,9 +1769,20 @@ insert_theme (GtkIconTheme *self,
{
if (strcmp (theme_name, FALLBACK_ICON_THEME) == 0)
{
+ const char *resource_path = "/org/gtk/libgtk/icons/hicolor.index.theme";
+ GBytes *index;
+
+ index = g_resources_lookup_data (resource_path,
+ G_RESOURCE_LOOKUP_FLAGS_NONE,
+ NULL);
+ if (!index)
+ g_error ("Cannot find resource %s", resource_path);
+
theme_file = g_key_file_new ();
g_key_file_set_list_separator (theme_file, ',');
- g_key_file_load_from_data (theme_file, builtin_hicolor_index, -1, 0, NULL);
+ g_key_file_load_from_bytes (theme_file, index, G_KEY_FILE_NONE, NULL);
+
+ g_bytes_unref (index);
}
else
return;
diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c
index db99d57713..d8864fdc17 100644
--- a/gtk/gtkimage.c
+++ b/gtk/gtkimage.c
@@ -19,7 +19,7 @@
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GTK+ Team. See the ChangeLog
* files for a list of changes. These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
#include "config.h"
@@ -128,6 +128,8 @@ static void gtk_image_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec);
+static void gtk_image_clear_internal (GtkImage *self,
+ gboolean notify);
enum
{
@@ -295,7 +297,7 @@ gtk_image_finalize (GObject *object)
{
GtkImage *image = GTK_IMAGE (object);
- gtk_image_clear (image);
+ gtk_image_clear_internal (image, FALSE);
g_clear_object (&image->icon_helper);
@@ -348,7 +350,7 @@ gtk_image_set_property (GObject *object,
}
}
-static void
+static void
gtk_image_get_property (GObject *object,
guint prop_id,
GValue *value,
@@ -484,7 +486,7 @@ gtk_image_new_from_pixbuf (GdkPixbuf *pixbuf)
gtk_image_set_from_pixbuf (image, pixbuf);
- return GTK_WIDGET (image);
+ return GTK_WIDGET (image);
}
/**
@@ -511,7 +513,7 @@ gtk_image_new_from_paintable (GdkPaintable *paintable)
gtk_image_set_from_paintable (image, paintable);
- return GTK_WIDGET (image);
+ return GTK_WIDGET (image);
}
/**
@@ -787,7 +789,7 @@ gtk_image_set_from_gicon (GtkImage *image,
}
g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_GICON]);
-
+
g_object_thaw_notify (G_OBJECT (image));
}
@@ -849,7 +851,7 @@ gtk_image_set_from_paintable (GtkImage *image,
}
g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_PAINTABLE]);
-
+
g_object_thaw_notify (G_OBJECT (image));
}
@@ -1061,7 +1063,7 @@ gtk_image_set_from_definition (GtkImage *image,
g_return_if_fail (GTK_IS_IMAGE (image));
g_object_freeze_notify (G_OBJECT (image));
-
+
gtk_image_clear (image);
if (def != NULL)
@@ -1080,59 +1082,73 @@ gtk_image_get_definition (GtkImage *image)
return gtk_icon_helper_get_definition (image->icon_helper);
}
-/**
- * gtk_image_clear:
- * @image: a `GtkImage`
- *
- * Resets the image to be empty.
- */
-void
-gtk_image_clear (GtkImage *image)
+static void
+gtk_image_clear_internal (GtkImage *self,
+ gboolean notify)
{
- GtkImageType storage_type;
+ GtkImageType storage_type = gtk_image_get_storage_type (self);
+ GObject *gobject = G_OBJECT (self);
- g_object_freeze_notify (G_OBJECT (image));
- storage_type = gtk_image_get_storage_type (image);
+ if (notify)
+ {
+ if (storage_type != GTK_IMAGE_EMPTY)
+ g_object_notify_by_pspec (gobject, image_props[PROP_STORAGE_TYPE]);
- if (storage_type != GTK_IMAGE_EMPTY)
- g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_STORAGE_TYPE]);
+ g_object_notify_by_pspec (gobject, image_props[PROP_ICON_SIZE]);
- g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_ICON_SIZE]);
-
- gtk_image_notify_for_storage_type (image, storage_type);
+ gtk_image_notify_for_storage_type (self, storage_type);
+ }
- if (image->filename)
+ if (self->filename)
{
- g_free (image->filename);
- image->filename = NULL;
- g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_FILE]);
+ g_free (self->filename);
+ self->filename = NULL;
+
+ if (notify)
+ g_object_notify_by_pspec (gobject, image_props[PROP_FILE]);
}
- if (image->resource_path)
+ if (self->resource_path)
{
- g_free (image->resource_path);
- image->resource_path = NULL;
- g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_RESOURCE]);
+ g_free (self->resource_path);
+ self->resource_path = NULL;
+
+ if (notify)
+ g_object_notify_by_pspec (gobject, image_props[PROP_RESOURCE]);
}
if (storage_type == GTK_IMAGE_PAINTABLE)
{
- GdkPaintable *paintable = _gtk_icon_helper_peek_paintable (image->icon_helper);
+ GdkPaintable *paintable = _gtk_icon_helper_peek_paintable (self->icon_helper);
const guint flags = gdk_paintable_get_flags (paintable);
if ((flags & GDK_PAINTABLE_STATIC_CONTENTS) == 0)
g_signal_handlers_disconnect_by_func (paintable,
gtk_image_paintable_invalidate_contents,
- image);
+ self);
if ((flags & GDK_PAINTABLE_STATIC_SIZE) == 0)
g_signal_handlers_disconnect_by_func (paintable,
gtk_image_paintable_invalidate_size,
- image);
+ self);
}
- _gtk_icon_helper_clear (image->icon_helper);
+ _gtk_icon_helper_clear (self->icon_helper);
+}
+
+/**
+ * gtk_image_clear:
+ * @image: a `GtkImage`
+ *
+ * Resets the image to be empty.
+ */
+void
+gtk_image_clear (GtkImage *image)
+{
+ g_return_if_fail (GTK_IS_IMAGE (image));
+ g_object_freeze_notify (G_OBJECT (image));
+ gtk_image_clear_internal (image, TRUE);
g_object_thaw_notify (G_OBJECT (image));
}
diff --git a/gtk/gtkimcontextwayland.c b/gtk/gtkimcontextwayland.c
index 439c64bd3b..29e8a53cbf 100644
--- a/gtk/gtkimcontextwayland.c
+++ b/gtk/gtkimcontextwayland.c
@@ -238,14 +238,24 @@ text_input_delete_surrounding_text (void *data,
{
GtkIMContextWaylandGlobal *global = data;
GtkIMContextWayland *context;
+ char *cursor_pointer;
+ uint32_t char_before_length;
+ uint32_t char_after_length;
if (!global->current)
return;
context = GTK_IM_CONTEXT_WAYLAND (global->current);
- context->pending_surrounding_delete.before_length = before_length;
- context->pending_surrounding_delete.after_length = after_length;
+ /* We already got byte lengths from text_input_v3, but GTK uses char lengths
+ * for delete_surrounding, So convert it here.
+ */
+ cursor_pointer = context->surrounding.text + context->surrounding.cursor_idx;
+ char_before_length = g_utf8_pointer_to_offset (cursor_pointer - before_length, cursor_pointer);
+ char_after_length = g_utf8_pointer_to_offset (cursor_pointer, cursor_pointer + after_length);
+
+ context->pending_surrounding_delete.before_length = char_before_length;
+ context->pending_surrounding_delete.after_length = char_after_length;
}
static void
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index 6119728040..4228fb38ae 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -40,7 +40,7 @@
#include "gtkshortcut.h"
#include "gtkshortcutcontroller.h"
#include "gtkshortcuttrigger.h"
-#include "gtkshow.h"
+#include "gtkfilelauncher.h"
#include "gtksnapshot.h"
#include "gtkrenderbackgroundprivate.h"
#include "gtkrenderborderprivate.h"
@@ -2102,11 +2102,17 @@ gtk_label_activate_link (GtkLabel *self,
{
GtkWidget *widget = GTK_WIDGET (self);
GtkWidget *toplevel = GTK_WIDGET (gtk_widget_get_root (widget));
+ GFile *file;
+ GtkFileLauncher *launcher;
if (!GTK_IS_WINDOW (toplevel))
return FALSE;
- gtk_show_uri (GTK_WINDOW (toplevel), uri, GDK_CURRENT_TIME);
+ file = g_file_new_for_uri (uri);
+ launcher = gtk_file_launcher_new (file);
+ gtk_file_launcher_launch (launcher, GTK_WINDOW (toplevel), NULL, NULL, NULL);
+ g_object_unref (launcher);
+ g_object_unref (file);
return TRUE;
}
@@ -2281,7 +2287,7 @@ gtk_label_class_init (GtkLabelClass *class)
* Gets emitted to activate a URI.
*
* Applications may connect to it to override the default behaviour,
- * which is to call gtk_show_uri().
+ * which is to call [method@Gtk.FileLauncher.launch].
*
* Returns: %TRUE if the link has been activated
*/
diff --git a/gtk/gtklinkbutton.c b/gtk/gtklinkbutton.c
index f2794e1258..f8e27ca2d6 100644
--- a/gtk/gtklinkbutton.c
+++ b/gtk/gtklinkbutton.c
@@ -37,7 +37,7 @@
* The URI bound to a `GtkLinkButton` can be set specifically using
* [method@Gtk.LinkButton.set_uri].
*
- * By default, `GtkLinkButton` calls [func@Gtk.show_uri] when the button
+ * By default, `GtkLinkButton` calls [method@Gtk.FileLauncher.launch] when the button
* is clicked. This behaviour can be overridden by connecting to the
* [signal@Gtk.LinkButton::activate-link] signal and returning %TRUE from
* the signal handler.
@@ -65,7 +65,7 @@
#include "gtkmarshalers.h"
#include "gtkpopovermenu.h"
#include "gtkprivate.h"
-#include "gtkshow.h"
+#include "gtkfilelauncher.h"
#include "gtksizerequest.h"
#include "gtktooltip.h"
#include "gtkwidgetprivate.h"
@@ -198,7 +198,7 @@ gtk_link_button_class_init (GtkLinkButtonClass *klass)
*
* Emitted each time the `GtkLinkButton` is clicked.
*
- * The default handler will call [func@Gtk.show_uri] with the URI
+ * The default handler will call [method@Gtk.FileLauncher.launch] with the URI
* stored inside the [property@Gtk.LinkButton:uri] property.
*
* To override the default behavior, you can connect to the
@@ -479,10 +479,17 @@ static gboolean
gtk_link_button_activate_link (GtkLinkButton *link_button)
{
GtkWidget *toplevel;
+ GFile *file;
+ GtkFileLauncher *launcher;
toplevel = GTK_WIDGET (gtk_widget_get_root (GTK_WIDGET (link_button)));
- gtk_show_uri (GTK_WINDOW (toplevel), link_button->uri, GDK_CURRENT_TIME);
+ file = g_file_new_for_uri (link_button->uri);
+ launcher = gtk_file_launcher_new (file);
+ gtk_file_launcher_launch (launcher, GTK_WINDOW (toplevel), NULL, NULL, NULL);
+ g_object_unref (launcher);
+ g_object_unref (file);
+
gtk_link_button_set_visited (link_button, TRUE);
return TRUE;
diff --git a/gtk/gtklistbase.c b/gtk/gtklistbase.c
index 03bcb48288..d77088481a 100644
--- a/gtk/gtklistbase.c
+++ b/gtk/gtklistbase.c
@@ -803,43 +803,13 @@ gtk_list_base_compute_scroll_align (GtkListBase *self,
}
static void
-gtk_list_base_update_focus_tracker (GtkListBase *self)
+gtk_list_base_scroll_to_item (GtkListBase *self,
+ guint pos)
{
GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self);
- GtkWidget *focus_child;
- guint pos;
-
- focus_child = gtk_widget_get_focus_child (GTK_WIDGET (self));
- if (!GTK_IS_LIST_ITEM_WIDGET (focus_child))
- return;
-
- pos = gtk_list_item_widget_get_position (GTK_LIST_ITEM_WIDGET (focus_child));
- if (pos != gtk_list_item_tracker_get_position (priv->item_manager, priv->focus))
- {
- gtk_list_item_tracker_set_position (priv->item_manager,
- priv->focus,
- pos,
- 0,
- 0);
- }
-}
-
-static void
-gtk_list_base_scroll_to_item (GtkWidget *widget,
- const char *action_name,
- GVariant *parameter)
-{
- GtkListBase *self = GTK_LIST_BASE (widget);
- GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self);
int start, end;
double align_along, align_across;
GtkPackType side_along, side_across;
- guint pos;
-
- if (!g_variant_check_format_string (parameter, "u", FALSE))
- return;
-
- g_variant_get (parameter, "u", &pos);
/* figure out primary orientation and if position is valid */
if (!gtk_list_base_get_allocation_along (GTK_LIST_BASE (self), pos, &start, &end))
@@ -867,14 +837,48 @@ gtk_list_base_scroll_to_item (GtkWidget *widget,
pos,
align_across, side_across,
align_along, side_along);
+}
- /* HACK HACK HACK
- *
- * GTK has no way to track the focused child. But we now that when a listitem
- * gets focus, it calls this action. So we update our focus tracker from here
- * because it's the closest we can get to accurate tracking.
- */
- gtk_list_base_update_focus_tracker (self);
+static void
+gtk_list_base_scroll_to_item_action (GtkWidget *widget,
+ const char *action_name,
+ GVariant *parameter)
+{
+ GtkListBase *self = GTK_LIST_BASE (widget);
+ guint pos;
+
+ if (!g_variant_check_format_string (parameter, "u", FALSE))
+ return;
+
+ g_variant_get (parameter, "u", &pos);
+
+ gtk_list_base_scroll_to_item (self, pos);
+}
+
+static void
+gtk_list_base_set_focus_child (GtkWidget *widget,
+ GtkWidget *child)
+{
+ GtkListBase *self = GTK_LIST_BASE (widget);
+ GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self);
+ guint pos;
+
+ GTK_WIDGET_CLASS (gtk_list_base_parent_class)->set_focus_child (widget, child);
+
+ if (!GTK_IS_LIST_ITEM_WIDGET (child))
+ return;
+
+ pos = gtk_list_item_widget_get_position (GTK_LIST_ITEM_WIDGET (child));
+
+ if (pos != gtk_list_item_tracker_get_position (priv->item_manager, priv->focus))
+ {
+ gtk_list_base_scroll_to_item (self, pos);
+ gtk_list_item_tracker_set_position (priv->item_manager,
+ priv->focus,
+ pos,
+ 0,
+ 0);
+ }
}
static void
@@ -1135,6 +1139,7 @@ gtk_list_base_class_init (GtkListBaseClass *klass)
widget_class->focus = gtk_list_base_focus;
widget_class->grab_focus = gtk_list_base_grab_focus;
+ widget_class->set_focus_child = gtk_list_base_set_focus_child;
gobject_class->dispose = gtk_list_base_dispose;
gobject_class->get_property = gtk_list_base_get_property;
@@ -1179,7 +1184,7 @@ gtk_list_base_class_init (GtkListBaseClass *klass)
gtk_widget_class_install_action (widget_class,
"list.scroll-to-item",
"u",
- gtk_list_base_scroll_to_item);
+ gtk_list_base_scroll_to_item_action);
/**
* GtkListBase|list.select-item:
@@ -1567,25 +1572,16 @@ gtk_list_base_start_rubberband (GtkListBase *self,
}
static void
-gtk_list_base_stop_rubberband (GtkListBase *self,
- gboolean modify,
- gboolean extend)
+gtk_list_base_apply_rubberband_selection (GtkListBase *self,
+ gboolean modify,
+ gboolean extend)
{
GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self);
- GtkListItemManagerItem *item;
GtkSelectionModel *model;
if (!priv->rubberband)
return;
- for (item = gtk_list_item_manager_get_first (priv->item_manager);
- item != NULL;
- item = gtk_rb_tree_node_get_next (item))
- {
- if (item->widget)
- gtk_widget_unset_state_flags (item->widget, GTK_STATE_FLAG_ACTIVE);
- }
-
model = gtk_list_item_manager_get_model (priv->item_manager);
if (model != NULL)
{
@@ -1646,6 +1642,24 @@ gtk_list_base_stop_rubberband (GtkListBase *self,
gtk_bitset_unref (mask);
gtk_bitset_unref (rubberband_selection);
}
+}
+
+static void
+gtk_list_base_stop_rubberband (GtkListBase *self)
+{
+ GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self);
+ GtkListItemManagerItem *item;
+
+ if (!priv->rubberband)
+ return;
+
+ for (item = gtk_list_item_manager_get_first (priv->item_manager);
+ item != NULL;
+ item = gtk_rb_tree_node_get_next (item))
+ {
+ if (item->widget)
+ gtk_widget_unset_state_flags (item->widget, GTK_STATE_FLAG_ACTIVE);
+ }
gtk_list_item_tracker_free (priv->item_manager, priv->rubberband->start_tracker);
g_clear_pointer (&priv->rubberband->widget, gtk_widget_unparent);
@@ -1758,14 +1772,23 @@ gtk_list_base_drag_end (GtkGestureDrag *gesture,
GtkListBase *self)
{
GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self);
+ GdkEventSequence *sequence;
gboolean modify, extend;
if (!priv->rubberband)
return;
+ sequence = gtk_gesture_get_last_updated_sequence (GTK_GESTURE (gesture));
+ if (!gtk_gesture_handles_sequence (GTK_GESTURE (gesture), sequence))
+ {
+ gtk_list_base_stop_rubberband (self);
+ return;
+ }
+
gtk_list_base_drag_update (gesture, offset_x, offset_y, self);
get_selection_modifiers (GTK_GESTURE (gesture), &modify, &extend);
- gtk_list_base_stop_rubberband (self, modify, extend);
+ gtk_list_base_apply_rubberband_selection (self, modify, extend);
+ gtk_list_base_stop_rubberband (self);
}
void
diff --git a/gtk/gtklistbox.c b/gtk/gtklistbox.c
index f5757cd1ba..08730eb4da 100644
--- a/gtk/gtklistbox.c
+++ b/gtk/gtklistbox.c
@@ -864,7 +864,7 @@ gtk_list_box_select_row (GtkListBox *box,
/**
* gtk_list_box_unselect_row:
* @box: a `GtkListBox`
- * @row: the row to unselected
+ * @row: the row to unselect
*
* Unselects a single row of @box, if the selection mode allows it.
*/
diff --git a/gtk/gtklistitemwidget.c b/gtk/gtklistitemwidget.c
index a90bceda1b..9dc96a1982 100644
--- a/gtk/gtklistitemwidget.c
+++ b/gtk/gtklistitemwidget.c
@@ -22,7 +22,6 @@
#include "gtklistitemwidgetprivate.h"
#include "gtkbinlayout.h"
-#include "gtkeventcontrollerfocus.h"
#include "gtkeventcontrollermotion.h"
#include "gtkgestureclick.h"
#include "gtklistitemfactoryprivate.h"
@@ -489,19 +488,6 @@ gtk_list_item_widget_click_gesture_released (GtkGestureClick *gesture,
}
static void
-gtk_list_item_widget_enter_cb (GtkEventControllerFocus *controller,
- GtkListItemWidget *self)
-{
- GtkWidget *widget = GTK_WIDGET (self);
- GtkListItemWidgetPrivate *priv = gtk_list_item_widget_get_instance_private (self);
-
- gtk_widget_activate_action (widget,
- "list.scroll-to-item",
- "u",
- priv->position);
-}
-
-static void
gtk_list_item_widget_hover_cb (GtkEventControllerMotion *controller,
double x,
double y,
@@ -542,10 +528,6 @@ gtk_list_item_widget_init (GtkListItemWidget *self)
G_CALLBACK (gtk_list_item_widget_click_gesture_released), self);
gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (gesture));
- controller = gtk_event_controller_focus_new ();
- g_signal_connect (controller, "enter", G_CALLBACK (gtk_list_item_widget_enter_cb), self);
- gtk_widget_add_controller (GTK_WIDGET (self), controller);
-
controller = gtk_event_controller_motion_new ();
g_signal_connect (controller, "enter", G_CALLBACK (gtk_list_item_widget_hover_cb), self);
gtk_widget_add_controller (GTK_WIDGET (self), controller);
diff --git a/gtk/gtkmenubutton.c b/gtk/gtkmenubutton.c
index af726745b6..73a5fe0a65 100644
--- a/gtk/gtkmenubutton.c
+++ b/gtk/gtkmenubutton.c
@@ -1051,7 +1051,7 @@ gtk_menu_button_get_icon_name (GtkMenuButton *menu_button)
/**
* gtk_menu_button_set_always_show_arrow: (attributes org.gtk.Method.set_property=always-show-arrow)
* @menu_button: a `GtkMenuButton`
- * @always_show_arrow: hether to show a dropdown arrow even when using an icon
+ * @always_show_arrow: whether to show a dropdown arrow even when using an icon
*
* Sets whether to show a dropdown arrow even when using an icon or a custom
* child.
diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c
index 315bfe196f..341dfd7f38 100644
--- a/gtk/gtknotebook.c
+++ b/gtk/gtknotebook.c
@@ -6595,7 +6595,7 @@ gtk_notebook_set_tab_label_text (GtkNotebook *notebook,
* @child.
*
* Returns: (nullable): the text of the tab label, or %NULL if
- * the tab label idget is not a `GtkLabel`. The string is owned
+ * the tab label widget is not a `GtkLabel`. The string is owned
* by the widget and must not be freed.
*/
const char *
@@ -6983,7 +6983,7 @@ gtk_notebook_get_tab_detachable (GtkNotebook *notebook,
* Sets whether the tab can be detached from @notebook to another
* notebook or widget.
*
- * Note that two notebooks must share a common group identificator
+ * Note that two notebooks must share a common group identifier
* (see [method@Gtk.Notebook.set_group_name]) to allow automatic tabs
* interchange between them.
*
diff --git a/gtk/gtkpathbar.c b/gtk/gtkpathbar.c
index 0cf28d5326..c2d2cdc764 100644
--- a/gtk/gtkpathbar.c
+++ b/gtk/gtkpathbar.c
@@ -22,6 +22,7 @@
#include <string.h>
+#include "gtkbinlayout.h"
#include "gtkbox.h"
#include "gtkdragsource.h"
#include "gtkicontheme.h"
@@ -30,6 +31,7 @@
#include "gtklabel.h"
#include "gtkmain.h"
#include "gtkmarshalers.h"
+#include "gtkscrolledwindow.h"
#include "gtksettings.h"
#include "gtktogglebutton.h"
#include "gtkwidgetprivate.h"
@@ -41,6 +43,9 @@ struct _GtkPathBar
{
GtkWidget parent_instance;
+ GtkWidget *buttons_box;
+ GtkWidget *scrolled_window;
+
GFile *root_file;
GFile *home_file;
GFile *desktop_file;
@@ -76,11 +81,7 @@ struct _GtkPathBar
GIcon *desktop_icon;
GList *button_list;
- GList *first_scrolled_button;
GList *fake_root;
- GtkWidget *up_slider_button;
- GtkWidget *down_slider_button;
- gint16 slider_width;
};
typedef struct _GtkPathBarClass GtkPathBarClass;
@@ -104,7 +105,8 @@ typedef enum {
NORMAL_BUTTON,
ROOT_BUTTON,
HOME_BUTTON,
- DESKTOP_BUTTON
+ DESKTOP_BUTTON,
+ RECENT_BUTTON,
} ButtonType;
#define BUTTON_DATA(x) ((ButtonData *)(x))
@@ -129,34 +131,16 @@ struct _ButtonData
* All buttons in front of a fake root are automatically hidden when in a
* directory below a fake root and replaced with the "<" arrow button.
*/
-#define BUTTON_IS_FAKE_ROOT(button) ((button)->type == HOME_BUTTON)
+#define BUTTON_IS_FAKE_ROOT(button) ((button)->type == HOME_BUTTON || (button)->type == RECENT_BUTTON)
G_DEFINE_TYPE (GtkPathBar, gtk_path_bar, GTK_TYPE_WIDGET)
static void gtk_path_bar_finalize (GObject *object);
static void gtk_path_bar_dispose (GObject *object);
-static void gtk_path_bar_measure (GtkWidget *widget,
- GtkOrientation orientation,
- int for_size,
- int *minimum,
- int *natural,
- int *minimum_baseline,
- int *natural_baseline);
-static void gtk_path_bar_size_allocate (GtkWidget *widget,
- int width,
- int height,
- int baseline);
-static void gtk_path_bar_scroll_up (GtkPathBar *path_bar);
-static void gtk_path_bar_scroll_down (GtkPathBar *path_bar);
static void gtk_path_bar_update_button_appearance (GtkPathBar *path_bar,
ButtonData *button_data,
gboolean current_dir);
-static gboolean gtk_path_bar_scroll_controller_scroll (GtkEventControllerScroll *scroll,
- double dx,
- double dy,
- GtkPathBar *path_bar);
-
static void
add_cancellable (GtkPathBar *path_bar,
GCancellable *cancellable)
@@ -206,37 +190,23 @@ cancel_all_cancellables (GtkPathBar *path_bar)
static void
gtk_path_bar_init (GtkPathBar *path_bar)
{
- GtkEventController *controller;
const char *home;
- path_bar->up_slider_button = gtk_button_new_from_icon_name ("pan-start-symbolic");
- gtk_widget_add_css_class (path_bar->up_slider_button, "slider-button");
- gtk_widget_set_parent (path_bar->up_slider_button, GTK_WIDGET (path_bar));
+ path_bar->scrolled_window = gtk_scrolled_window_new ();
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (path_bar->scrolled_window),
+ GTK_POLICY_EXTERNAL, GTK_POLICY_NEVER);
+ gtk_widget_set_hexpand (path_bar->scrolled_window, TRUE);
+ gtk_widget_set_parent (path_bar->scrolled_window, GTK_WIDGET (path_bar));
- path_bar->down_slider_button = gtk_button_new_from_icon_name ("pan-end-symbolic");
- gtk_widget_add_css_class (path_bar->down_slider_button, "slider-button");
- gtk_widget_set_parent (path_bar->down_slider_button, GTK_WIDGET (path_bar));
-
- /* GtkBuilder won't let us connect 'swapped' without specifying the signal's
- * user data in the .ui file
- */
- g_signal_connect_swapped (path_bar->up_slider_button, "clicked",
- G_CALLBACK (gtk_path_bar_scroll_up), path_bar);
- g_signal_connect_swapped (path_bar->down_slider_button, "clicked",
- G_CALLBACK (gtk_path_bar_scroll_down), path_bar);
+ path_bar->buttons_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_widget_add_css_class (path_bar->buttons_box, "linked");
+ gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (path_bar->scrolled_window),
+ path_bar->buttons_box);
- gtk_widget_add_css_class (GTK_WIDGET (path_bar), "linked");
path_bar->get_info_cancellable = NULL;
path_bar->cancellables = NULL;
- controller = gtk_event_controller_scroll_new (GTK_EVENT_CONTROLLER_SCROLL_VERTICAL |
- GTK_EVENT_CONTROLLER_SCROLL_DISCRETE);
- g_signal_connect (controller, "scroll",
- G_CALLBACK (gtk_path_bar_scroll_controller_scroll),
- path_bar);
- gtk_widget_add_controller (GTK_WIDGET (path_bar), controller);
-
home = g_get_home_dir ();
if (home != NULL)
{
@@ -272,9 +242,6 @@ gtk_path_bar_class_init (GtkPathBarClass *path_bar_class)
gobject_class->finalize = gtk_path_bar_finalize;
gobject_class->dispose = gtk_path_bar_dispose;
- widget_class->measure = gtk_path_bar_measure;
- widget_class->size_allocate = gtk_path_bar_size_allocate;
-
path_bar_signals [PATH_CLICKED] =
g_signal_new (I_("path-clicked"),
G_OBJECT_CLASS_TYPE (gobject_class),
@@ -287,6 +254,7 @@ gtk_path_bar_class_init (GtkPathBarClass *path_bar_class)
G_TYPE_FILE,
G_TYPE_BOOLEAN);
+ gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
gtk_widget_class_set_css_name (widget_class, "pathbar");
}
@@ -313,10 +281,8 @@ static void
gtk_path_bar_dispose (GObject *object)
{
GtkPathBar *path_bar = GTK_PATH_BAR (object);
- GtkWidget *w;
- while ((w = gtk_widget_get_first_child (GTK_WIDGET (path_bar))) != NULL)
- gtk_widget_unparent (w);
+ g_clear_pointer (&path_bar->scrolled_window, gtk_widget_unparent);
path_bar->get_info_cancellable = NULL;
cancel_all_cancellables (path_bar);
@@ -325,462 +291,31 @@ gtk_path_bar_dispose (GObject *object)
}
static void
-gtk_path_bar_measure (GtkWidget *widget,
- GtkOrientation orientation,
- int for_size,
- int *minimum,
- int *natural,
- int *minimum_baseline,
- int *natural_baseline)
-{
- GtkPathBar *path_bar = GTK_PATH_BAR (widget);
- ButtonData *button_data;
- GList *list;
- int child_size;
- int size = 0;
- int child_min, child_nat;
-
- *minimum = 0;
- *natural = 0;
-
- if (orientation == GTK_ORIENTATION_HORIZONTAL)
- {
- for (list = path_bar->button_list; list; list = list->next)
- {
- button_data = BUTTON_DATA (list->data);
- gtk_widget_measure (button_data->button, GTK_ORIENTATION_HORIZONTAL, -1,
- &child_min, &child_nat, NULL, NULL);
- gtk_widget_measure (button_data->button, GTK_ORIENTATION_VERTICAL, -1,
- &child_size, NULL, NULL, NULL);
- size = MAX (size, child_size);
-
- if (button_data->type == NORMAL_BUTTON)
- {
- /* Use 2*Height as button width because of ellipsized label. */
- child_min = MAX (child_min, child_size * 2);
- child_nat = MAX (child_min, child_size * 2);
- }
-
- *minimum = MAX (*minimum, child_min);
- *natural = *natural + child_nat;
- }
-
- /* Add space for slider, if we have more than one path */
- /* Theoretically, the slider could be bigger than the other button. But we're
- * not going to worry about that now.
- */
- path_bar->slider_width = 0;
-
- gtk_widget_measure (path_bar->up_slider_button, GTK_ORIENTATION_HORIZONTAL, -1,
- &child_min, &child_nat, NULL, NULL);
- if (path_bar->button_list && path_bar->button_list->next != NULL)
- {
- *minimum += child_min;
- *natural += child_nat;
- }
- path_bar->slider_width = MAX (path_bar->slider_width, child_min);
-
- gtk_widget_measure (path_bar->down_slider_button, GTK_ORIENTATION_HORIZONTAL, -1,
- &child_min, &child_nat, NULL, NULL);
- if (path_bar->button_list && path_bar->button_list->next != NULL)
- {
- *minimum += child_min;
- *natural += child_nat;
- }
- path_bar->slider_width = MAX (path_bar->slider_width, child_min);
-
- }
- else /* VERTICAL */
- {
- for (list = path_bar->button_list; list; list = list->next)
- {
- button_data = BUTTON_DATA (list->data);
- gtk_widget_measure (button_data->button, GTK_ORIENTATION_VERTICAL, -1,
- &child_min, &child_nat, NULL, NULL);
-
- *minimum = MAX (*minimum, child_min);
- *natural = MAX (*natural, child_nat);
- }
-
- gtk_widget_measure (path_bar->up_slider_button, GTK_ORIENTATION_VERTICAL, -1,
- &child_min, &child_nat, NULL, NULL);
- *minimum = MAX (*minimum, child_min);
- *natural = MAX (*natural, child_nat);
-
- gtk_widget_measure (path_bar->up_slider_button, GTK_ORIENTATION_VERTICAL, -1,
- &child_min, &child_nat, NULL, NULL);
- *minimum = MAX (*minimum, child_min);
- *natural = MAX (*natural, child_nat);
- }
-}
-
-static void
-gtk_path_bar_update_slider_buttons (GtkPathBar *path_bar)
-{
- if (path_bar->button_list)
- {
- GtkWidget *button;
-
- button = BUTTON_DATA (path_bar->button_list->data)->button;
- if (gtk_widget_get_child_visible (button))
- gtk_widget_set_sensitive (path_bar->down_slider_button, FALSE);
- else
- gtk_widget_set_sensitive (path_bar->down_slider_button, TRUE);
-
- button = BUTTON_DATA (g_list_last (path_bar->button_list)->data)->button;
- if (gtk_widget_get_child_visible (button))
- gtk_widget_set_sensitive (path_bar->up_slider_button, FALSE);
- else
- gtk_widget_set_sensitive (path_bar->up_slider_button, TRUE);
- }
-}
-
-/* This is a tad complicated
- */
-static void
-gtk_path_bar_size_allocate (GtkWidget *widget,
- int widget_width,
- int widget_height,
- int baseline)
+gtk_path_bar_clear_buttons (GtkPathBar *path_bar)
{
- GtkPathBar *path_bar = GTK_PATH_BAR (widget);
- GtkWidget *child;
- GtkTextDirection direction;
- GtkAllocation child_allocation;
- GList *list, *first_button;
- int width;
- int allocation_width;
- gboolean need_sliders = TRUE;
- int up_slider_offset = 0;
- int down_slider_offset = 0;
- GtkRequisition child_requisition;
-
- /* No path is set; we don't have to allocate anything. */
- if (path_bar->button_list == NULL)
- return;
-
- direction = gtk_widget_get_direction (widget);
- allocation_width = widget_width;
-
- /* First, we check to see if we need the scrollbars. */
- if (path_bar->fake_root)
- width = path_bar->slider_width;
- else
- width = 0;
-
- for (list = path_bar->button_list; list; list = list->next)
- {
- child = BUTTON_DATA (list->data)->button;
-
- gtk_widget_get_preferred_size (child, &child_requisition, NULL);
-
- width += child_requisition.width;
- if (list == path_bar->fake_root)
- break;
- }
-
- if (width <= allocation_width)
- {
- if (path_bar->fake_root)
- first_button = path_bar->fake_root;
- else
- first_button = g_list_last (path_bar->button_list);
- }
- else
- {
- gboolean reached_end = FALSE;
- int slider_space = 2 * path_bar->slider_width;
-
- if (path_bar->first_scrolled_button)
- first_button = path_bar->first_scrolled_button;
- else
- first_button = path_bar->button_list;
- need_sliders = TRUE;
-
- /* To see how much space we have, and how many buttons we can display.
- * We start at the first button, count forward until hit the new
- * button, then count backwards.
- */
- /* Count down the path chain towards the end. */
- gtk_widget_get_preferred_size (BUTTON_DATA (first_button->data)->button,
- &child_requisition, NULL);
-
- width = child_requisition.width;
- list = first_button->prev;
- while (list && !reached_end)
- {
- child = BUTTON_DATA (list->data)->button;
-
- gtk_widget_get_preferred_size (child, &child_requisition, NULL);
-
- if (width + child_requisition.width + slider_space > allocation_width)
- reached_end = TRUE;
- else if (list == path_bar->fake_root)
- break;
- else
- width += child_requisition.width;
-
- list = list->prev;
- }
-
- /* Finally, we walk up, seeing how many of the previous buttons we can
- * add */
- while (first_button->next && !reached_end)
- {
- child = BUTTON_DATA (first_button->next->data)->button;
-
- gtk_widget_get_preferred_size (child, &child_requisition, NULL);
-
- if (width + child_requisition.width + slider_space > allocation_width)
- {
- reached_end = TRUE;
- }
- else
- {
- width += child_requisition.width;
- if (first_button == path_bar->fake_root)
- break;
- first_button = first_button->next;
- }
- }
- }
-
- /* Now, we allocate space to the buttons */
- child_allocation.y = 0;
- child_allocation.height = widget_height;
-
- if (direction == GTK_TEXT_DIR_RTL)
- {
- child_allocation.x = widget_width;
- if (need_sliders || path_bar->fake_root)
- {
- child_allocation.x -= path_bar->slider_width;
- up_slider_offset = widget_width - path_bar->slider_width;
- }
- }
- else
- {
- child_allocation.x = 0;
- if (need_sliders || path_bar->fake_root)
- {
- up_slider_offset = 0;
- child_allocation.x += path_bar->slider_width;
- }
- }
-
- for (list = first_button; list; list = list->prev)
- {
- GtkAllocation widget_allocation;
- ButtonData *button_data;
-
- button_data = BUTTON_DATA (list->data);
- child = button_data->button;
-
- gtk_widget_get_preferred_size (child, &child_requisition, NULL);
-
- child_allocation.width = MIN (child_requisition.width,
- allocation_width - 2 * path_bar->slider_width);
-
- if (direction == GTK_TEXT_DIR_RTL)
- child_allocation.x -= child_allocation.width;
-
- /* Check to see if we've don't have any more space to allocate buttons */
- if (need_sliders && direction == GTK_TEXT_DIR_RTL)
- {
- gtk_widget_get_allocation (widget, &widget_allocation);
- if (child_allocation.x - path_bar->slider_width < widget_allocation.x)
- break;
- }
- else if (need_sliders && direction == GTK_TEXT_DIR_LTR)
- {
- gtk_widget_get_allocation (widget, &widget_allocation);
- if (child_allocation.x + child_allocation.width + path_bar->slider_width >
- widget_allocation.x + allocation_width)
- break;
- }
-
- if (child_allocation.width < child_requisition.width)
- {
- if (!gtk_widget_get_has_tooltip (child))
- gtk_widget_set_tooltip_text (child, button_data->dir_name);
- }
- else if (gtk_widget_get_has_tooltip (child))
- gtk_widget_set_tooltip_text (child, NULL);
-
- gtk_widget_set_child_visible (child, TRUE);
- gtk_widget_size_allocate (child, &child_allocation, baseline);
-
- if (direction == GTK_TEXT_DIR_RTL)
- {
- down_slider_offset = child_allocation.x - path_bar->slider_width;
- }
- else
- {
- down_slider_offset += child_allocation.width;
- child_allocation.x += child_allocation.width;
- }
- }
- /* Now we go hide all the widgets that don't fit */
- while (list)
- {
- child = BUTTON_DATA (list->data)->button;
- gtk_widget_set_child_visible (child, FALSE);
- list = list->prev;
- }
- for (list = first_button->next; list; list = list->next)
- {
- child = BUTTON_DATA (list->data)->button;
- gtk_widget_set_child_visible (child, FALSE);
- }
-
- if (need_sliders || path_bar->fake_root)
- {
- child_allocation.width = path_bar->slider_width;
- child_allocation.x = up_slider_offset;
- gtk_widget_size_allocate (path_bar->up_slider_button,
- &child_allocation,
- -1);
-
- gtk_widget_set_child_visible (path_bar->up_slider_button, TRUE);
- gtk_widget_set_visible (path_bar->up_slider_button, TRUE);
-
- if (direction == GTK_TEXT_DIR_LTR)
- down_slider_offset += path_bar->slider_width;
- }
- else
- {
- gtk_widget_set_child_visible (path_bar->up_slider_button, FALSE);
- }
-
- if (need_sliders)
- {
- child_allocation.width = path_bar->slider_width;
- child_allocation.x = down_slider_offset;
-
- gtk_widget_size_allocate (path_bar->down_slider_button,
- &child_allocation,
- -1);
-
- gtk_widget_set_child_visible (path_bar->down_slider_button, TRUE);
- gtk_widget_set_visible (path_bar->down_slider_button, TRUE);
- gtk_path_bar_update_slider_buttons (path_bar);
- }
- else
- {
- gtk_widget_set_child_visible (path_bar->down_slider_button, FALSE);
- }
-}
+ GtkWidget *w;
-static gboolean
-gtk_path_bar_scroll_controller_scroll (GtkEventControllerScroll *scroll,
- double dx,
- double dy,
- GtkPathBar *path_bar)
-{
- if (dy > 0)
- gtk_path_bar_scroll_down (path_bar);
- else if (dy < 0)
- gtk_path_bar_scroll_up (path_bar);
+ while ((w = gtk_widget_get_first_child (path_bar->buttons_box)) != NULL)
+ gtk_box_remove (GTK_BOX (path_bar->buttons_box), w);
- return GDK_EVENT_STOP;
+ path_bar->fake_root = NULL;
}
static void
-gtk_path_bar_scroll_down (GtkPathBar *path_bar)
+update_visibility_up_to_next_root (GtkPathBar *path_bar,
+ GList *start_from_button)
{
- GtkAllocation allocation, button_allocation;
- GList *list;
- GList *down_button = NULL;
- int space_available;
-
- if (gtk_widget_get_child_visible (BUTTON_DATA (path_bar->button_list->data)->button))
- {
- /* Return if the last button is already visible */
- return;
- }
-
- gtk_widget_queue_resize (GTK_WIDGET (path_bar));
-
- /* We find the button at the 'down' end that we have to make
- * visible */
- for (list = path_bar->button_list; list; list = list->next)
- {
- if (list->next && gtk_widget_get_child_visible (BUTTON_DATA (list->next->data)->button))
- {
- down_button = list;
- break;
- }
- }
- g_assert (down_button);
-
- gtk_widget_get_allocation (GTK_WIDGET (path_bar), &allocation);
- gtk_widget_get_allocation (BUTTON_DATA (down_button->data)->button, &button_allocation);
-
- space_available = (allocation.width
- - 2 * path_bar->slider_width
- - button_allocation.width);
- path_bar->first_scrolled_button = down_button;
+ gboolean fake_root_found = FALSE;
+ GList *l;
- /* We have space_available free space that's not being used.
- * So we walk down from the end, adding buttons until we use all free space.
- */
- while (space_available > 0)
- {
- path_bar->first_scrolled_button = down_button;
- down_button = down_button->next;
- if (!down_button)
- break;
- space_available -= button_allocation.width;
- }
-}
-
-static void
-gtk_path_bar_scroll_up (GtkPathBar *path_bar)
-{
- GList *list;
-
- list = g_list_last (path_bar->button_list);
-
- if (gtk_widget_get_child_visible (BUTTON_DATA (list->data)->button))
- {
- /* Return if the first button is already visible */
- return;
- }
-
- gtk_widget_queue_resize (GTK_WIDGET (path_bar));
-
- for ( ; list; list = list->prev)
- {
- if (list->prev && gtk_widget_get_child_visible (BUTTON_DATA (list->prev->data)->button))
- {
- if (list->prev == path_bar->fake_root)
- path_bar->fake_root = NULL;
- path_bar->first_scrolled_button = list;
- return;
- }
- }
-}
-
-static void
-gtk_path_bar_clear_buttons (GtkPathBar *path_bar)
-{
- GtkWidget *w;
-
- w = gtk_widget_get_first_child (GTK_WIDGET (path_bar));
- while (w)
+ for (l = start_from_button; l; l = l->next)
{
- GtkWidget *next = gtk_widget_get_next_sibling (w);
+ GtkWidget *button = BUTTON_DATA (l->data)->button;
- if (w != path_bar->up_slider_button && w != path_bar->down_slider_button)
- {
- gtk_widget_unparent (w);
- }
+ gtk_widget_set_visible (button, !fake_root_found);
- w = next;
+ fake_root_found |= BUTTON_IS_FAKE_ROOT (BUTTON_DATA (l->data));
}
-
- path_bar->first_scrolled_button = NULL;
- path_bar->fake_root = NULL;
}
static void
@@ -797,7 +332,7 @@ button_clicked_cb (GtkWidget *button,
if (button_data->ignore_changes)
return;
- path_bar = GTK_PATH_BAR (gtk_widget_get_parent (button));
+ path_bar = GTK_PATH_BAR (gtk_widget_get_ancestor (button, GTK_TYPE_PATH_BAR));
button_list = g_list_find (path_bar->button_list, button_data);
g_assert (button_list != NULL);
@@ -808,6 +343,8 @@ button_clicked_cb (GtkWidget *button,
g_signal_handlers_unblock_by_func (button,
G_CALLBACK (button_clicked_cb), data);
+ update_visibility_up_to_next_root (path_bar, button_list);
+
if (button_list->prev)
{
ButtonData *child_data;
@@ -865,6 +402,7 @@ set_button_image_get_info_cb (GObject *source,
g_set_object (&data->path_bar->desktop_icon, icon);
break;
+ case RECENT_BUTTON:
case NORMAL_BUTTON:
case ROOT_BUTTON:
default:
@@ -963,6 +501,11 @@ set_button_image (GtkPathBar *path_bar,
add_cancellable (path_bar, button_data->cancellable);
break;
+ case RECENT_BUTTON:
+ gtk_image_set_from_icon_name (GTK_IMAGE (button_data->image),
+ "document-open-recent-symbolic");
+ break;
+
case NORMAL_BUTTON:
default:
break;
@@ -1015,6 +558,19 @@ gtk_path_bar_update_button_appearance (GtkPathBar *path_bar,
}
}
+static gboolean
+file_is_recent_uri (GFile *file)
+{
+ GFile *recent;
+ gboolean same;
+
+ recent = g_file_new_for_uri ("recent:///");
+ same = g_file_equal (file, recent);
+ g_object_unref (recent);
+
+ return same;
+}
+
static ButtonType
find_button_type (GtkPathBar *path_bar,
GFile *file)
@@ -1028,6 +584,8 @@ find_button_type (GtkPathBar *path_bar,
if (path_bar->desktop_file != NULL &&
g_file_equal (file, path_bar->desktop_file))
return DESKTOP_BUTTON;
+ if (file_is_recent_uri (file))
+ return RECENT_BUTTON;
return NORMAL_BUTTON;
}
@@ -1060,6 +618,7 @@ make_directory_button (GtkPathBar *path_bar,
break;
case HOME_BUTTON:
case DESKTOP_BUTTON:
+ case RECENT_BUTTON:
button_data->image = gtk_image_new ();
button_data->label = gtk_label_new (NULL);
child = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
@@ -1145,7 +704,6 @@ gtk_path_bar_check_parent_path (GtkPathBar *path_bar,
if (!gtk_widget_get_child_visible (BUTTON_DATA (current_path->data)->button))
{
- path_bar->first_scrolled_button = current_path;
gtk_widget_queue_resize (GTK_WIDGET (path_bar));
}
@@ -1181,9 +739,11 @@ gtk_path_bar_set_file_finish (struct SetFileInfo *info,
for (l = info->path_bar->button_list; l; l = l->next)
{
GtkWidget *button = BUTTON_DATA (l->data)->button;
-
- gtk_widget_insert_after (button, GTK_WIDGET (info->path_bar), info->path_bar->up_slider_button);
+ gtk_box_prepend (GTK_BOX (info->path_bar->buttons_box), button);
}
+
+ update_visibility_up_to_next_root (info->path_bar,
+ info->path_bar->button_list);
}
else
{
@@ -1193,7 +753,7 @@ gtk_path_bar_set_file_finish (struct SetFileInfo *info,
{
ButtonData *button_data = BUTTON_DATA (l->data);
- gtk_widget_unparent (button_data->button);
+ gtk_box_remove (GTK_BOX (info->path_bar->buttons_box), button_data->button);
}
g_list_free (info->new_buttons);
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c
index aab85b22af..7ff8cc95a2 100644
--- a/gtk/gtkpopover.c
+++ b/gtk/gtkpopover.c
@@ -598,7 +598,13 @@ present_popup (GtkPopover *popover)
* gtk_popover_present:
* @popover: a `GtkPopover`
*
- * Presents the popover to the user.
+ * Allocate a size for the `GtkPopover`.
+ *
+ * This function needs to be called in size-allocate by widgets
+ * who have a `GtkPopover` as child. When using a layout manager,
+ * this is happening automatically.
+ *
+ * To make a popover appear on screen, use [method@Gtk.Popover.popup].
*/
void
gtk_popover_present (GtkPopover *popover)
diff --git a/gtk/gtkprintoperation-portal.c b/gtk/gtkprintoperation-portal.c
index d2defb56b6..61e4071df4 100644
--- a/gtk/gtkprintoperation-portal.c
+++ b/gtk/gtkprintoperation-portal.c
@@ -34,7 +34,7 @@
#include "gtkprintsettings.h"
#include "gtkpagesetup.h"
#include "gtkprintbackendprivate.h"
-#include "gtkshow.h"
+#include "gtkfilelauncher.h"
#include <glib/gi18n-lib.h>
#include "gtkwindowprivate.h"
#include "gtkprivate.h"
@@ -677,9 +677,12 @@ gtk_print_operation_portal_launch_preview (GtkPrintOperation *op,
GtkWindow *parent,
const char *filename)
{
- char *uri;
-
- uri = g_filename_to_uri (filename, NULL, NULL);
- gtk_show_uri (parent, uri, GDK_CURRENT_TIME);
- g_free (uri);
+ GFile *file;
+ GtkFileLauncher *launcher;
+
+ file = g_file_new_for_path (filename);
+ launcher = gtk_file_launcher_new (file);
+ gtk_file_launcher_launch (launcher, parent, NULL, NULL, NULL);
+ g_object_unref (launcher);
+ g_object_unref (file);
}
diff --git a/gtk/gtkprintoperation-unix.c b/gtk/gtkprintoperation-unix.c
index 4fbcd77c1c..1108927bb2 100644
--- a/gtk/gtkprintoperation-unix.c
+++ b/gtk/gtkprintoperation-unix.c
@@ -41,6 +41,7 @@
#include "gtkprinter.h"
#include "gtkprintjob.h"
#include "gtklabel.h"
+#include "gtkfilelauncher.h"
#include <glib/gi18n-lib.h>
@@ -304,15 +305,17 @@ gtk_print_operation_unix_launch_preview (GtkPrintOperation *op,
if (error != NULL)
{
- char * uri;
+ GFile *file;
+ GtkFileLauncher *launcher;
g_warning ("Error launching preview: %s", error->message);
+ g_clear_error (&error);
- g_error_free (error);
- error = NULL;
- uri = g_filename_to_uri (filename, NULL, NULL);
- gtk_show_uri (parent, uri, GDK_CURRENT_TIME);
- g_free (uri);
+ file = g_file_new_for_path (filename);
+ launcher = gtk_file_launcher_new (file);
+ gtk_file_launcher_launch (launcher, parent, NULL, NULL, NULL);
+ g_object_unref (launcher);
+ g_object_unref (file);
}
out:
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 2c5974954d..667b0d107f 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -2660,6 +2660,8 @@ gtk_widget_pop_paintables (GtkWidget *widget)
* When a toplevel container is shown, it is immediately realized and
* mapped; other shown widgets are realized and mapped when their
* toplevel container is realized and mapped.
+ *
+ * Deprecated: 4.10: Use [method@Gtk.Widget.set_visible] instead
*/
void
gtk_widget_show (GtkWidget *widget)
@@ -2726,6 +2728,8 @@ gtk_widget_real_show (GtkWidget *widget)
* Reverses the effects of gtk_widget_show().
*
* This is causing the widget to be hidden (invisible to the user).
+ *
+ * Deprecated: 4.10: Use [method@Gtk.Widget.set_visible] instead
*/
void
gtk_widget_hide (GtkWidget *widget)
diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h
index ffcab268c6..a7bade8db0 100644
--- a/gtk/gtkwidget.h
+++ b/gtk/gtkwidget.h
@@ -269,9 +269,9 @@ GDK_AVAILABLE_IN_ALL
GType gtk_widget_get_type (void) G_GNUC_CONST;
GDK_AVAILABLE_IN_ALL
void gtk_widget_unparent (GtkWidget *widget);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10_FOR(gtk_widget_set_visible or gtk_window_present)
void gtk_widget_show (GtkWidget *widget);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10_FOR(gtk_widget_set_visible)
void gtk_widget_hide (GtkWidget *widget);
GDK_AVAILABLE_IN_ALL
void gtk_widget_map (GtkWidget *widget);
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 2515532bc3..dfe84c9b6e 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -1094,11 +1094,14 @@ gtk_window_class_init (GtkWindowClass *klass)
*
* emitted when the set of accelerators or mnemonics that
* are associated with @window changes.
+ *
+ * Deprecated: 4.10: Use [class@Gtk.Shortcut] and [class@Gtk.EventController]
+ * to implement keyboard shortcuts
*/
window_signals[KEYS_CHANGED] =
g_signal_new (I_("keys-changed"),
G_TYPE_FROM_CLASS (gobject_class),
- G_SIGNAL_RUN_FIRST,
+ G_SIGNAL_RUN_FIRST | G_SIGNAL_DEPRECATED,
G_STRUCT_OFFSET (GtkWindowClass, keys_changed),
NULL, NULL,
NULL,
diff --git a/gtk/icons/hicolor.index.theme b/gtk/icons/hicolor.index.theme
new file mode 100644
index 0000000000..ec5a2f260d
--- /dev/null
+++ b/gtk/icons/hicolor.index.theme
@@ -0,0 +1,3805 @@
+[Icon Theme]
+Name=Hicolor
+Comment=Fallback icon theme
+Hidden=true
+Directories=16x16/actions,16x16@2/actions,16x16/animations,16x16@2/animations,16x16/apps,16x16@2/apps,16x16/categories,16x16@2/categories,16x16/devices,16x16@2/devices,16x16/emblems,16x16@2/emblems,16x16/emotes,16x16@2/emotes,16x16/filesystems,16x16@2/filesystems,16x16/intl,16x16@2/intl,16x16/mimetypes,16x16@2/mimetypes,16x16/places,16x16@2/places,16x16/status,16x16@2/status,16x16/stock/chart,16x16@2/stock/chart,16x16/stock/code,16x16@2/stock/code,16x16/stock/data,16x16@2/stock/data,16x16/stock/form,16x16@2/stock/form,16x16/stock/image,16x16@2/stock/image,16x16/stock/io,16x16@2/stock/io,16x16/stock/media,16x16@2/stock/media,16x16/stock/navigation,16x16@2/stock/navigation,16x16/stock/net,16x16@2/stock/net,16x16/stock/object,16x16@2/stock/object,16x16/stock/table,16x16@2/stock/table,16x16/stock/text,16x16@2/stock/text,22x22/actions,22x22@2/actions,22x22/animations,22x22@2/animations,22x22/apps,22x22@2/apps,22x22/categories,22x22@2/categories,22x22/devices,22x22@2/devices,22x22/emblems,22x22@2/emblems,22x22/emotes,22x22@2/emotes,22x22/filesystems,22x22@2/filesystems,22x22/intl,22x22@2/intl,22x22/mimetypes,22x22@2/mimetypes,22x22/places,22x22@2/places,22x22/status,22x22@2/status,22x22/stock/chart,22x22@2/stock/chart,22x22/stock/code,22x22@2/stock/code,22x22/stock/data,22x22@2/stock/data,22x22/stock/form,22x22@2/stock/form,22x22/stock/image,22x22@2/stock/image,22x22/stock/io,22x22@2/stock/io,22x22/stock/media,22x22@2/stock/media,22x22/stock/navigation,22x22@2/stock/navigation,22x22/stock/net,22x22@2/stock/net,22x22/stock/object,22x22@2/stock/object,22x22/stock/table,22x22@2/stock/table,22x22/stock/text,22x22@2/stock/text,24x24/actions,24x24@2/actions,24x24/animations,24x24@2/animations,24x24/apps,24x24@2/apps,24x24/categories,24x24@2/categories,24x24/devices,24x24@2/devices,24x24/emblems,24x24@2/emblems,24x24/emotes,24x24@2/emotes,24x24/filesystems,24x24@2/filesystems,24x24/intl,24x24@2/intl,24x24/mimetypes,24x24@2/mimetypes,24x24/places,24x24@2/places,24x24/status,24x24@2/status,24x24/stock/chart,24x24@2/stock/chart,24x24/stock/code,24x24@2/stock/code,24x24/stock/data,24x24@2/stock/data,24x24/stock/form,24x24@2/stock/form,24x24/stock/image,24x24@2/stock/image,24x24/stock/io,24x24@2/stock/io,24x24/stock/media,24x24@2/stock/media,24x24/stock/navigation,24x24@2/stock/navigation,24x24/stock/net,24x24@2/stock/net,24x24/stock/object,24x24@2/stock/object,24x24/stock/table,24x24@2/stock/table,24x24/stock/text,24x24@2/stock/text,32x32/actions,32x32@2/actions,32x32/animations,32x32@2/animations,32x32/apps,32x32@2/apps,32x32/categories,32x32@2/categories,32x32/devices,32x32@2/devices,32x32/emblems,32x32@2/emblems,32x32/emotes,32x32@2/emotes,32x32/filesystems,32x32@2/filesystems,32x32/intl,32x32@2/intl,32x32/mimetypes,32x32@2/mimetypes,32x32/places,32x32@2/places,32x32/status,32x32@2/status,32x32/stock/chart,32x32@2/stock/chart,32x32/stock/code,32x32@2/stock/code,32x32/stock/data,32x32@2/stock/data,32x32/stock/form,32x32@2/stock/form,32x32/stock/image,32x32@2/stock/image,32x32/stock/io,32x32@2/stock/io,32x32/stock/media,32x32@2/stock/media,32x32/stock/navigation,32x32@2/stock/navigation,32x32/stock/net,32x32@2/stock/net,32x32/stock/object,32x32@2/stock/object,32x32/stock/table,32x32@2/stock/table,32x32/stock/text,32x32@2/stock/text,36x36/actions,36x36@2/actions,36x36/animations,36x36@2/animations,36x36/apps,36x36@2/apps,36x36/categories,36x36@2/categories,36x36/devices,36x36@2/devices,36x36/emblems,36x36@2/emblems,36x36/emotes,36x36@2/emotes,36x36/filesystems,36x36@2/filesystems,36x36/intl,36x36@2/intl,36x36/mimetypes,36x36@2/mimetypes,36x36/places,36x36@2/places,36x36/status,36x36@2/status,36x36/stock/chart,36x36@2/stock/chart,36x36/stock/code,36x36@2/stock/code,36x36/stock/data,36x36@2/stock/data,36x36/stock/form,36x36@2/stock/form,36x36/stock/image,36x36@2/stock/image,36x36/stock/io,36x36@2/stock/io,36x36/stock/media,36x36@2/stock/media,36x36/stock/navigation,36x36@2/stock/navigation,36x36/stock/net,36x36@2/stock/net,36x36/stock/object,36x36@2/stock/object,36x36/stock/table,36x36@2/stock/table,36x36/stock/text,36x36@2/stock/text,48x48/actions,48x48@2/actions,48x48/animations,48x48@2/animations,48x48/apps,48x48@2/apps,48x48/categories,48x48@2/categories,48x48/devices,48x48@2/devices,48x48/emblems,48x48@2/emblems,48x48/emotes,48x48@2/emotes,48x48/filesystems,48x48@2/filesystems,48x48/intl,48x48@2/intl,48x48/mimetypes,48x48@2/mimetypes,48x48/places,48x48@2/places,48x48/status,48x48@2/status,48x48/stock/chart,48x48@2/stock/chart,48x48/stock/code,48x48@2/stock/code,48x48/stock/data,48x48@2/stock/data,48x48/stock/form,48x48@2/stock/form,48x48/stock/image,48x48@2/stock/image,48x48/stock/io,48x48@2/stock/io,48x48/stock/media,48x48@2/stock/media,48x48/stock/navigation,48x48@2/stock/navigation,48x48/stock/net,48x48@2/stock/net,48x48/stock/object,48x48@2/stock/object,48x48/stock/table,48x48@2/stock/table,48x48/stock/text,48x48@2/stock/text,64x64/actions,64x64@2/actions,64x64/animations,64x64@2/animations,64x64/apps,64x64@2/apps,64x64/categories,64x64@2/categories,64x64/devices,64x64@2/devices,64x64/emblems,64x64@2/emblems,64x64/emotes,64x64@2/emotes,64x64/filesystems,64x64@2/filesystems,64x64/intl,64x64@2/intl,64x64/mimetypes,64x64@2/mimetypes,64x64/places,64x64@2/places,64x64/status,64x64@2/status,64x64/stock/chart,64x64@2/stock/chart,64x64/stock/code,64x64@2/stock/code,64x64/stock/data,64x64@2/stock/data,64x64/stock/form,64x64@2/stock/form,64x64/stock/image,64x64@2/stock/image,64x64/stock/io,64x64@2/stock/io,64x64/stock/media,64x64@2/stock/media,64x64/stock/navigation,64x64@2/stock/navigation,64x64/stock/net,64x64@2/stock/net,64x64/stock/object,64x64@2/stock/object,64x64/stock/table,64x64@2/stock/table,64x64/stock/text,64x64@2/stock/text,72x72/actions,72x72@2/actions,72x72/animations,72x72@2/animations,72x72/apps,72x72@2/apps,72x72/categories,72x72@2/categories,72x72/devices,72x72@2/devices,72x72/emblems,72x72@2/emblems,72x72/emotes,72x72@2/emotes,72x72/filesystems,72x72@2/filesystems,72x72/intl,72x72@2/intl,72x72/mimetypes,72x72@2/mimetypes,72x72/places,72x72@2/places,72x72/status,72x72@2/status,72x72/stock/chart,72x72@2/stock/chart,72x72/stock/code,72x72@2/stock/code,72x72/stock/data,72x72@2/stock/data,72x72/stock/form,72x72@2/stock/form,72x72/stock/image,72x72@2/stock/image,72x72/stock/io,72x72@2/stock/io,72x72/stock/media,72x72@2/stock/media,72x72/stock/navigation,72x72@2/stock/navigation,72x72/stock/net,72x72@2/stock/net,72x72/stock/object,72x72@2/stock/object,72x72/stock/table,72x72@2/stock/table,72x72/stock/text,72x72@2/stock/text,96x96/actions,96x96@2/actions,96x96/animations,96x96@2/animations,96x96/apps,96x96@2/apps,96x96/categories,96x96@2/categories,96x96/devices,96x96@2/devices,96x96/emblems,96x96@2/emblems,96x96/emotes,96x96@2/emotes,96x96/filesystems,96x96@2/filesystems,96x96/intl,96x96@2/intl,96x96/mimetypes,96x96@2/mimetypes,96x96/places,96x96@2/places,96x96/status,96x96@2/status,96x96/stock/chart,96x96@2/stock/chart,96x96/stock/code,96x96@2/stock/code,96x96/stock/data,96x96@2/stock/data,96x96/stock/form,96x96@2/stock/form,96x96/stock/image,96x96@2/stock/image,96x96/stock/io,96x96@2/stock/io,96x96/stock/media,96x96@2/stock/media,96x96/stock/navigation,96x96@2/stock/navigation,96x96/stock/net,96x96@2/stock/net,96x96/stock/object,96x96@2/stock/object,96x96/stock/table,96x96@2/stock/table,96x96/stock/text,96x96@2/stock/text,128x128/actions,128x128@2/actions,128x128/animations,128x128@2/animations,128x128/apps,128x128@2/apps,128x128/categories,128x128@2/categories,128x128/devices,128x128@2/devices,128x128/emblems,128x128@2/emblems,128x128/emotes,128x128@2/emotes,128x128/filesystems,128x128@2/filesystems,128x128/intl,128x128@2/intl,128x128/mimetypes,128x128@2/mimetypes,128x128/places,128x128@2/places,128x128/status,128x128@2/status,128x128/stock/chart,128x128@2/stock/chart,128x128/stock/code,128x128@2/stock/code,128x128/stock/data,128x128@2/stock/data,128x128/stock/form,128x128@2/stock/form,128x128/stock/image,128x128@2/stock/image,128x128/stock/io,128x128@2/stock/io,128x128/stock/media,128x128@2/stock/media,128x128/stock/navigation,128x128@2/stock/navigation,128x128/stock/net,128x128@2/stock/net,128x128/stock/object,128x128@2/stock/object,128x128/stock/table,128x128@2/stock/table,128x128/stock/text,128x128@2/stock/text,192x192/actions,192x192@2/actions,192x192/animations,192x192@2/animations,192x192/apps,192x192@2/apps,192x192/categories,192x192@2/categories,192x192/devices,192x192@2/devices,192x192/emblems,192x192@2/emblems,192x192/emotes,192x192@2/emotes,192x192/filesystems,192x192@2/filesystems,192x192/intl,192x192@2/intl,192x192/mimetypes,192x192@2/mimetypes,192x192/places,192x192@2/places,192x192/status,192x192@2/status,192x192/stock/chart,192x192@2/stock/chart,192x192/stock/code,192x192@2/stock/code,192x192/stock/data,192x192@2/stock/data,192x192/stock/form,192x192@2/stock/form,192x192/stock/image,192x192@2/stock/image,192x192/stock/io,192x192@2/stock/io,192x192/stock/media,192x192@2/stock/media,192x192/stock/navigation,192x192@2/stock/navigation,192x192/stock/net,192x192@2/stock/net,192x192/stock/object,192x192@2/stock/object,192x192/stock/table,192x192@2/stock/table,192x192/stock/text,192x192@2/stock/text,256x256/actions,256x256@2/actions,256x256/animations,256x256@2/animations,256x256/apps,256x256@2/apps,256x256/categories,256x256@2/categories,256x256/devices,256x256@2/devices,256x256/emblems,256x256@2/emblems,256x256/emotes,256x256@2/emotes,256x256/filesystems,256x256@2/filesystems,256x256/intl,256x256@2/intl,256x256/mimetypes,256x256@2/mimetypes,256x256/places,256x256@2/places,256x256/status,256x256@2/status,256x256/stock/chart,256x256@2/stock/chart,256x256/stock/code,256x256@2/stock/code,256x256/stock/data,256x256@2/stock/data,256x256/stock/form,256x256@2/stock/form,256x256/stock/image,256x256@2/stock/image,256x256/stock/io,256x256@2/stock/io,256x256/stock/media,256x256@2/stock/media,256x256/stock/navigation,256x256@2/stock/navigation,256x256/stock/net,256x256@2/stock/net,256x256/stock/object,256x256@2/stock/object,256x256/stock/table,256x256@2/stock/table,256x256/stock/text,256x256@2/stock/text,512x512/actions,512x512@2/actions,512x512/animations,512x512@2/animations,512x512/apps,512x512@2/apps,512x512/categories,512x512@2/categories,512x512/devices,512x512@2/devices,512x512/emblems,512x512@2/emblems,512x512/emotes,512x512@2/emotes,512x512/filesystems,512x512@2/filesystems,512x512/intl,512x512@2/intl,512x512/mimetypes,512x512@2/mimetypes,512x512/places,512x512@2/places,512x512/status,512x512@2/status,512x512/stock/chart,512x512@2/stock/chart,512x512/stock/code,512x512@2/stock/code,512x512/stock/data,512x512@2/stock/data,512x512/stock/form,512x512@2/stock/form,512x512/stock/image,512x512@2/stock/image,512x512/stock/io,512x512@2/stock/io,512x512/stock/media,512x512@2/stock/media,512x512/stock/navigation,512x512@2/stock/navigation,512x512/stock/net,512x512@2/stock/net,512x512/stock/object,512x512@2/stock/object,512x512/stock/table,512x512@2/stock/table,512x512/stock/text,512x512@2/stock/text,scalable/actions,scalable/animations,scalable/apps,scalable/categories,scalable/devices,scalable/emblems,scalable/emotes,scalable/filesystems,scalable/intl,scalable/mimetypes,scalable/places,scalable/status,scalable/stock/chart,scalable/stock/code,scalable/stock/data,scalable/stock/form,scalable/stock/image,scalable/stock/io,scalable/stock/media,scalable/stock/navigation,scalable/stock/net,scalable/stock/object,scalable/stock/table,scalable/stock/text,symbolic/apps
+
+
+[16x16/actions]
+Size=16
+Context=Actions
+Type=Threshold
+
+[16x16@2/actions]
+Size=16
+Scale=2
+Context=Actions
+Type=Threshold
+
+[16x16/animations]
+Size=16
+Context=Animations
+Type=Threshold
+
+[16x16@2/animations]
+Size=16
+Scale=2
+Context=Animations
+Type=Threshold
+
+[16x16/apps]
+Size=16
+Context=Applications
+Type=Threshold
+
+[16x16@2/apps]
+Size=16
+Scale=2
+Context=Applications
+Type=Threshold
+
+[16x16/categories]
+Size=16
+Context=Categories
+Type=Threshold
+
+[16x16@2/categories]
+Size=16
+Scale=2
+Context=Categories
+Type=Threshold
+
+[16x16/devices]
+Size=16
+Context=Devices
+Type=Threshold
+
+[16x16@2/devices]
+Size=16
+Scale=2
+Context=Devices
+Type=Threshold
+
+[16x16/emblems]
+Size=16
+Context=Emblems
+Type=Threshold
+
+[16x16@2/emblems]
+Size=16
+Scale=2
+Context=Emblems
+Type=Threshold
+
+[16x16/emotes]
+Size=16
+Context=Emotes
+Type=Threshold
+
+[16x16@2/emotes]
+Size=16
+Scale=2
+Context=Emotes
+Type=Threshold
+
+[16x16/filesystems]
+Size=16
+Context=FileSystems
+Type=Threshold
+
+[16x16@2/filesystems]
+Size=16
+Scale=2
+Context=FileSystems
+Type=Threshold
+
+[16x16/intl]
+Size=16
+Context=International
+Type=Threshold
+
+[16x16@2/intl]
+Size=16
+Scale=2
+Context=International
+Type=Threshold
+
+[16x16/mimetypes]
+Size=16
+Context=MimeTypes
+Type=Threshold
+
+[16x16@2/mimetypes]
+Size=16
+Scale=2
+Context=MimeTypes
+Type=Threshold
+
+[16x16/places]
+Size=16
+Context=Places
+Type=Threshold
+
+[16x16@2/places]
+Size=16
+Scale=2
+Context=Places
+Type=Threshold
+
+[16x16/status]
+Size=16
+Context=Status
+Type=Threshold
+
+[16x16@2/status]
+Size=16
+Scale=2
+Context=Status
+Type=Threshold
+
+[16x16/stock/chart]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16@2/stock/chart]
+Size=16
+Scale=2
+Context=Stock
+Type=Threshold
+
+[16x16/stock/code]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16@2/stock/code]
+Size=16
+Scale=2
+Context=Stock
+Type=Threshold
+
+[16x16/stock/data]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16@2/stock/data]
+Size=16
+Scale=2
+Context=Stock
+Type=Threshold
+
+[16x16/stock/form]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16@2/stock/form]
+Size=16
+Scale=2
+Context=Stock
+Type=Threshold
+
+[16x16/stock/image]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16@2/stock/image]
+Size=16
+Scale=2
+Context=Stock
+Type=Threshold
+
+[16x16/stock/io]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16@2/stock/io]
+Size=16
+Scale=2
+Context=Stock
+Type=Threshold
+
+[16x16/stock/media]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16@2/stock/media]
+Size=16
+Scale=2
+Context=Stock
+Type=Threshold
+
+[16x16/stock/navigation]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16@2/stock/navigation]
+Size=16
+Scale=2
+Context=Stock
+Type=Threshold
+
+[16x16/stock/net]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16@2/stock/net]
+Size=16
+Scale=2
+Context=Stock
+Type=Threshold
+
+[16x16/stock/object]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16@2/stock/object]
+Size=16
+Scale=2
+Context=Stock
+Type=Threshold
+
+[16x16/stock/table]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16@2/stock/table]
+Size=16
+Scale=2
+Context=Stock
+Type=Threshold
+
+[16x16/stock/text]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16@2/stock/text]
+Size=16
+Scale=2
+Context=Stock
+Type=Threshold
+
+[22x22/actions]
+Size=22
+Context=Actions
+Type=Threshold
+
+[22x22@2/actions]
+Size=22
+Scale=2
+Context=Actions
+Type=Threshold
+
+[22x22/animations]
+Size=22
+Context=Animations
+Type=Threshold
+
+[22x22@2/animations]
+Size=22
+Scale=2
+Context=Animations
+Type=Threshold
+
+[22x22/apps]
+Size=22
+Context=Applications
+Type=Threshold
+
+[22x22@2/apps]
+Size=22
+Scale=2
+Context=Applications
+Type=Threshold
+
+[22x22/categories]
+Size=22
+Context=Categories
+Type=Threshold
+
+[22x22@2/categories]
+Size=22
+Scale=2
+Context=Categories
+Type=Threshold
+
+[22x22/devices]
+Size=22
+Context=Devices
+Type=Threshold
+
+[22x22@2/devices]
+Size=22
+Scale=2
+Context=Devices
+Type=Threshold
+
+[22x22/emblems]
+Size=22
+Context=Emblems
+Type=Threshold
+
+[22x22@2/emblems]
+Size=22
+Scale=2
+Context=Emblems
+Type=Threshold
+
+[22x22/emotes]
+Size=22
+Context=Emotes
+Type=Threshold
+
+[22x22@2/emotes]
+Size=22
+Scale=2
+Context=Emotes
+Type=Threshold
+
+[22x22/filesystems]
+Size=22
+Context=FileSystems
+Type=Threshold
+
+[22x22@2/filesystems]
+Size=22
+Scale=2
+Context=FileSystems
+Type=Threshold
+
+[22x22/intl]
+Size=22
+Context=International
+Type=Threshold
+
+[22x22@2/intl]
+Size=22
+Scale=2
+Context=International
+Type=Threshold
+
+[22x22/mimetypes]
+Size=22
+Context=MimeTypes
+Type=Threshold
+
+[22x22@2/mimetypes]
+Size=22
+Scale=2
+Context=MimeTypes
+Type=Threshold
+
+[22x22/places]
+Size=22
+Context=Places
+Type=Threshold
+
+[22x22@2/places]
+Size=22
+Scale=2
+Context=Places
+Type=Threshold
+
+[22x22/status]
+Size=22
+Context=Status
+Type=Threshold
+
+[22x22@2/status]
+Size=22
+Scale=2
+Context=Status
+Type=Threshold
+
+[22x22/stock/chart]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22@2/stock/chart]
+Size=22
+Scale=2
+Context=Stock
+Type=Threshold
+
+[22x22/stock/code]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22@2/stock/code]
+Size=22
+Scale=2
+Context=Stock
+Type=Threshold
+
+[22x22/stock/data]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22@2/stock/data]
+Size=22
+Scale=2
+Context=Stock
+Type=Threshold
+
+[22x22/stock/form]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22@2/stock/form]
+Size=22
+Scale=2
+Context=Stock
+Type=Threshold
+
+[22x22/stock/image]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22@2/stock/image]
+Size=22
+Scale=2
+Context=Stock
+Type=Threshold
+
+[22x22/stock/io]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22@2/stock/io]
+Size=22
+Scale=2
+Context=Stock
+Type=Threshold
+
+[22x22/stock/media]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22@2/stock/media]
+Size=22
+Scale=2
+Context=Stock
+Type=Threshold
+
+[22x22/stock/navigation]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22@2/stock/navigation]
+Size=22
+Scale=2
+Context=Stock
+Type=Threshold
+
+[22x22/stock/net]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22@2/stock/net]
+Size=22
+Scale=2
+Context=Stock
+Type=Threshold
+
+[22x22/stock/object]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22@2/stock/object]
+Size=22
+Scale=2
+Context=Stock
+Type=Threshold
+
+[22x22/stock/table]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22@2/stock/table]
+Size=22
+Scale=2
+Context=Stock
+Type=Threshold
+
+[22x22/stock/text]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22@2/stock/text]
+Size=22
+Scale=2
+Context=Stock
+Type=Threshold
+
+[24x24/actions]
+Size=24
+Context=Actions
+Type=Threshold
+
+[24x24@2/actions]
+Size=24
+Scale=2
+Context=Actions
+Type=Threshold
+
+[24x24/animations]
+Size=24
+Context=Animations
+Type=Threshold
+
+[24x24@2/animations]
+Size=24
+Scale=2
+Context=Animations
+Type=Threshold
+
+[24x24/apps]
+Size=24
+Context=Applications
+Type=Threshold
+
+[24x24@2/apps]
+Size=24
+Scale=2
+Context=Applications
+Type=Threshold
+
+[24x24/categories]
+Size=24
+Context=Categories
+Type=Threshold
+
+[24x24@2/categories]
+Size=24
+Scale=2
+Context=Categories
+Type=Threshold
+
+[24x24/devices]
+Size=24
+Context=Devices
+Type=Threshold
+
+[24x24@2/devices]
+Size=24
+Scale=2
+Context=Devices
+Type=Threshold
+
+[24x24/emblems]
+Size=24
+Context=Emblems
+Type=Threshold
+
+[24x24@2/emblems]
+Size=24
+Scale=2
+Context=Emblems
+Type=Threshold
+
+[24x24/emotes]
+Size=24
+Context=Emotes
+Type=Threshold
+
+[24x24@2/emotes]
+Size=24
+Scale=2
+Context=Emotes
+Type=Threshold
+
+[24x24/filesystems]
+Size=24
+Context=FileSystems
+Type=Threshold
+
+[24x24@2/filesystems]
+Size=24
+Scale=2
+Context=FileSystems
+Type=Threshold
+
+[24x24/intl]
+Size=24
+Context=International
+Type=Threshold
+
+[24x24@2/intl]
+Size=24
+Scale=2
+Context=International
+Type=Threshold
+
+[24x24/mimetypes]
+Size=24
+Context=MimeTypes
+Type=Threshold
+
+[24x24@2/mimetypes]
+Size=24
+Scale=2
+Context=MimeTypes
+Type=Threshold
+
+[24x24/places]
+Size=24
+Context=Places
+Type=Threshold
+
+[24x24@2/places]
+Size=24
+Scale=2
+Context=Places
+Type=Threshold
+
+[24x24/status]
+Size=24
+Context=Status
+Type=Threshold
+
+[24x24@2/status]
+Size=24
+Scale=2
+Context=Status
+Type=Threshold
+
+[24x24/stock/chart]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24@2/stock/chart]
+Size=24
+Scale=2
+Context=Stock
+Type=Threshold
+
+[24x24/stock/code]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24@2/stock/code]
+Size=24
+Scale=2
+Context=Stock
+Type=Threshold
+
+[24x24/stock/data]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24@2/stock/data]
+Size=24
+Scale=2
+Context=Stock
+Type=Threshold
+
+[24x24/stock/form]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24@2/stock/form]
+Size=24
+Scale=2
+Context=Stock
+Type=Threshold
+
+[24x24/stock/image]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24@2/stock/image]
+Size=24
+Scale=2
+Context=Stock
+Type=Threshold
+
+[24x24/stock/io]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24@2/stock/io]
+Size=24
+Scale=2
+Context=Stock
+Type=Threshold
+
+[24x24/stock/media]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24@2/stock/media]
+Size=24
+Scale=2
+Context=Stock
+Type=Threshold
+
+[24x24/stock/navigation]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24@2/stock/navigation]
+Size=24
+Scale=2
+Context=Stock
+Type=Threshold
+
+[24x24/stock/net]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24@2/stock/net]
+Size=24
+Scale=2
+Context=Stock
+Type=Threshold
+
+[24x24/stock/object]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24@2/stock/object]
+Size=24
+Scale=2
+Context=Stock
+Type=Threshold
+
+[24x24/stock/table]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24@2/stock/table]
+Size=24
+Scale=2
+Context=Stock
+Type=Threshold
+
+[24x24/stock/text]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24@2/stock/text]
+Size=24
+Scale=2
+Context=Stock
+Type=Threshold
+
+[32x32/actions]
+Size=32
+Context=Actions
+Type=Threshold
+
+[32x32@2/actions]
+Size=32
+Scale=2
+Context=Actions
+Type=Threshold
+
+[32x32/animations]
+Size=32
+Context=Animations
+Type=Threshold
+
+[32x32@2/animations]
+Size=32
+Scale=2
+Context=Animations
+Type=Threshold
+
+[32x32/apps]
+Size=32
+Context=Applications
+Type=Threshold
+
+[32x32@2/apps]
+Size=32
+Scale=2
+Context=Applications
+Type=Threshold
+
+[32x32/categories]
+Size=32
+Context=Categories
+Type=Threshold
+
+[32x32@2/categories]
+Size=32
+Scale=2
+Context=Categories
+Type=Threshold
+
+[32x32/devices]
+Size=32
+Context=Devices
+Type=Threshold
+
+[32x32@2/devices]
+Size=32
+Scale=2
+Context=Devices
+Type=Threshold
+
+[32x32/emblems]
+Size=32
+Context=Emblems
+Type=Threshold
+
+[32x32@2/emblems]
+Size=32
+Scale=2
+Context=Emblems
+Type=Threshold
+
+[32x32/emotes]
+Size=32
+Context=Emotes
+Type=Threshold
+
+[32x32@2/emotes]
+Size=32
+Scale=2
+Context=Emotes
+Type=Threshold
+
+[32x32/filesystems]
+Size=32
+Context=FileSystems
+Type=Threshold
+
+[32x32@2/filesystems]
+Size=32
+Scale=2
+Context=FileSystems
+Type=Threshold
+
+[32x32/intl]
+Size=32
+Context=International
+Type=Threshold
+
+[32x32@2/intl]
+Size=32
+Scale=2
+Context=International
+Type=Threshold
+
+[32x32/mimetypes]
+Size=32
+Context=MimeTypes
+Type=Threshold
+
+[32x32@2/mimetypes]
+Size=32
+Scale=2
+Context=MimeTypes
+Type=Threshold
+
+[32x32/places]
+Size=32
+Context=Places
+Type=Threshold
+
+[32x32@2/places]
+Size=32
+Scale=2
+Context=Places
+Type=Threshold
+
+[32x32/status]
+Size=32
+Context=Status
+Type=Threshold
+
+[32x32@2/status]
+Size=32
+Scale=2
+Context=Status
+Type=Threshold
+
+[32x32/stock/chart]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32@2/stock/chart]
+Size=32
+Scale=2
+Context=Stock
+Type=Threshold
+
+[32x32/stock/code]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32@2/stock/code]
+Size=32
+Scale=2
+Context=Stock
+Type=Threshold
+
+[32x32/stock/data]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32@2/stock/data]
+Size=32
+Scale=2
+Context=Stock
+Type=Threshold
+
+[32x32/stock/form]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32@2/stock/form]
+Size=32
+Scale=2
+Context=Stock
+Type=Threshold
+
+[32x32/stock/image]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32@2/stock/image]
+Size=32
+Scale=2
+Context=Stock
+Type=Threshold
+
+[32x32/stock/io]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32@2/stock/io]
+Size=32
+Scale=2
+Context=Stock
+Type=Threshold
+
+[32x32/stock/media]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32@2/stock/media]
+Size=32
+Scale=2
+Context=Stock
+Type=Threshold
+
+[32x32/stock/navigation]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32@2/stock/navigation]
+Size=32
+Scale=2
+Context=Stock
+Type=Threshold
+
+[32x32/stock/net]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32@2/stock/net]
+Size=32
+Scale=2
+Context=Stock
+Type=Threshold
+
+[32x32/stock/object]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32@2/stock/object]
+Size=32
+Scale=2
+Context=Stock
+Type=Threshold
+
+[32x32/stock/table]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32@2/stock/table]
+Size=32
+Scale=2
+Context=Stock
+Type=Threshold
+
+[32x32/stock/text]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32@2/stock/text]
+Size=32
+Scale=2
+Context=Stock
+Type=Threshold
+
+[36x36/actions]
+Size=36
+Context=Actions
+Type=Threshold
+
+[36x36@2/actions]
+Size=36
+Scale=2
+Context=Actions
+Type=Threshold
+
+[36x36/animations]
+Size=36
+Context=Animations
+Type=Threshold
+
+[36x36@2/animations]
+Size=36
+Scale=2
+Context=Animations
+Type=Threshold
+
+[36x36/apps]
+Size=36
+Context=Applications
+Type=Threshold
+
+[36x36@2/apps]
+Size=36
+Scale=2
+Context=Applications
+Type=Threshold
+
+[36x36/categories]
+Size=36
+Context=Categories
+Type=Threshold
+
+[36x36@2/categories]
+Size=36
+Scale=2
+Context=Categories
+Type=Threshold
+
+[36x36/devices]
+Size=36
+Context=Devices
+Type=Threshold
+
+[36x36@2/devices]
+Size=36
+Scale=2
+Context=Devices
+Type=Threshold
+
+[36x36/emblems]
+Size=36
+Context=Emblems
+Type=Threshold
+
+[36x36@2/emblems]
+Size=36
+Scale=2
+Context=Emblems
+Type=Threshold
+
+[36x36/emotes]
+Size=36
+Context=Emotes
+Type=Threshold
+
+[36x36@2/emotes]
+Size=36
+Scale=2
+Context=Emotes
+Type=Threshold
+
+[36x36/filesystems]
+Size=36
+Context=FileSystems
+Type=Threshold
+
+[36x36@2/filesystems]
+Size=36
+Scale=2
+Context=FileSystems
+Type=Threshold
+
+[36x36/intl]
+Size=36
+Context=International
+Type=Threshold
+
+[36x36@2/intl]
+Size=36
+Scale=2
+Context=International
+Type=Threshold
+
+[36x36/mimetypes]
+Size=36
+Context=MimeTypes
+Type=Threshold
+
+[36x36@2/mimetypes]
+Size=36
+Scale=2
+Context=MimeTypes
+Type=Threshold
+
+[36x36/places]
+Size=36
+Context=Places
+Type=Threshold
+
+[36x36@2/places]
+Size=36
+Scale=2
+Context=Places
+Type=Threshold
+
+[36x36/status]
+Size=36
+Context=Status
+Type=Threshold
+
+[36x36@2/status]
+Size=36
+Scale=2
+Context=Status
+Type=Threshold
+
+[36x36/stock/chart]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36@2/stock/chart]
+Size=36
+Scale=2
+Context=Stock
+Type=Threshold
+
+[36x36/stock/code]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36@2/stock/code]
+Size=36
+Scale=2
+Context=Stock
+Type=Threshold
+
+[36x36/stock/data]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36@2/stock/data]
+Size=36
+Scale=2
+Context=Stock
+Type=Threshold
+
+[36x36/stock/form]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36@2/stock/form]
+Size=36
+Scale=2
+Context=Stock
+Type=Threshold
+
+[36x36/stock/image]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36@2/stock/image]
+Size=36
+Scale=2
+Context=Stock
+Type=Threshold
+
+[36x36/stock/io]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36@2/stock/io]
+Size=36
+Scale=2
+Context=Stock
+Type=Threshold
+
+[36x36/stock/media]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36@2/stock/media]
+Size=36
+Scale=2
+Context=Stock
+Type=Threshold
+
+[36x36/stock/navigation]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36@2/stock/navigation]
+Size=36
+Scale=2
+Context=Stock
+Type=Threshold
+
+[36x36/stock/net]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36@2/stock/net]
+Size=36
+Scale=2
+Context=Stock
+Type=Threshold
+
+[36x36/stock/object]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36@2/stock/object]
+Size=36
+Scale=2
+Context=Stock
+Type=Threshold
+
+[36x36/stock/table]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36@2/stock/table]
+Size=36
+Scale=2
+Context=Stock
+Type=Threshold
+
+[36x36/stock/text]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36@2/stock/text]
+Size=36
+Scale=2
+Context=Stock
+Type=Threshold
+
+[48x48/actions]
+Size=48
+Context=Actions
+Type=Threshold
+
+[48x48@2/actions]
+Size=48
+Scale=2
+Context=Actions
+Type=Threshold
+
+[48x48/animations]
+Size=48
+Context=Animations
+Type=Threshold
+
+[48x48@2/animations]
+Size=48
+Scale=2
+Context=Animations
+Type=Threshold
+
+[48x48/apps]
+Size=48
+Context=Applications
+Type=Threshold
+
+[48x48@2/apps]
+Size=48
+Scale=2
+Context=Applications
+Type=Threshold
+
+[48x48/categories]
+Size=48
+Context=Categories
+Type=Threshold
+
+[48x48@2/categories]
+Size=48
+Scale=2
+Context=Categories
+Type=Threshold
+
+[48x48/devices]
+Size=48
+Context=Devices
+Type=Threshold
+
+[48x48@2/devices]
+Size=48
+Scale=2
+Context=Devices
+Type=Threshold
+
+[48x48/emblems]
+Size=48
+Context=Emblems
+Type=Threshold
+
+[48x48@2/emblems]
+Size=48
+Scale=2
+Context=Emblems
+Type=Threshold
+
+[48x48/emotes]
+Size=48
+Context=Emotes
+Type=Threshold
+
+[48x48@2/emotes]
+Size=48
+Scale=2
+Context=Emotes
+Type=Threshold
+
+[48x48/filesystems]
+Size=48
+Context=FileSystems
+Type=Threshold
+
+[48x48@2/filesystems]
+Size=48
+Scale=2
+Context=FileSystems
+Type=Threshold
+
+[48x48/intl]
+Size=48
+Context=International
+Type=Threshold
+
+[48x48@2/intl]
+Size=48
+Scale=2
+Context=International
+Type=Threshold
+
+[48x48/mimetypes]
+Size=48
+Context=MimeTypes
+Type=Threshold
+
+[48x48@2/mimetypes]
+Size=48
+Scale=2
+Context=MimeTypes
+Type=Threshold
+
+[48x48/places]
+Size=48
+Context=Places
+Type=Threshold
+
+[48x48@2/places]
+Size=48
+Scale=2
+Context=Places
+Type=Threshold
+
+[48x48/status]
+Size=48
+Context=Status
+Type=Threshold
+
+[48x48@2/status]
+Size=48
+Scale=2
+Context=Status
+Type=Threshold
+
+[48x48/stock/chart]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48@2/stock/chart]
+Size=48
+Scale=2
+Context=Stock
+Type=Threshold
+
+[48x48/stock/code]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48@2/stock/code]
+Size=48
+Scale=2
+Context=Stock
+Type=Threshold
+
+[48x48/stock/data]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48@2/stock/data]
+Size=48
+Scale=2
+Context=Stock
+Type=Threshold
+
+[48x48/stock/form]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48@2/stock/form]
+Size=48
+Scale=2
+Context=Stock
+Type=Threshold
+
+[48x48/stock/image]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48@2/stock/image]
+Size=48
+Scale=2
+Context=Stock
+Type=Threshold
+
+[48x48/stock/io]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48@2/stock/io]
+Size=48
+Scale=2
+Context=Stock
+Type=Threshold
+
+[48x48/stock/media]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48@2/stock/media]
+Size=48
+Scale=2
+Context=Stock
+Type=Threshold
+
+[48x48/stock/navigation]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48@2/stock/navigation]
+Size=48
+Scale=2
+Context=Stock
+Type=Threshold
+
+[48x48/stock/net]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48@2/stock/net]
+Size=48
+Scale=2
+Context=Stock
+Type=Threshold
+
+[48x48/stock/object]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48@2/stock/object]
+Size=48
+Scale=2
+Context=Stock
+Type=Threshold
+
+[48x48/stock/table]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48@2/stock/table]
+Size=48
+Scale=2
+Context=Stock
+Type=Threshold
+
+[48x48/stock/text]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48@2/stock/text]
+Size=48
+Scale=2
+Context=Stock
+Type=Threshold
+
+[64x64/actions]
+Size=64
+Context=Actions
+Type=Threshold
+
+[64x64@2/actions]
+Size=64
+Scale=2
+Context=Actions
+Type=Threshold
+
+[64x64/animations]
+Size=64
+Context=Animations
+Type=Threshold
+
+[64x64@2/animations]
+Size=64
+Scale=2
+Context=Animations
+Type=Threshold
+
+[64x64/apps]
+Size=64
+Context=Applications
+Type=Threshold
+
+[64x64@2/apps]
+Size=64
+Scale=2
+Context=Applications
+Type=Threshold
+
+[64x64/categories]
+Size=64
+Context=Categories
+Type=Threshold
+
+[64x64@2/categories]
+Size=64
+Scale=2
+Context=Categories
+Type=Threshold
+
+[64x64/devices]
+Size=64
+Context=Devices
+Type=Threshold
+
+[64x64@2/devices]
+Size=64
+Scale=2
+Context=Devices
+Type=Threshold
+
+[64x64/emblems]
+Size=64
+Context=Emblems
+Type=Threshold
+
+[64x64@2/emblems]
+Size=64
+Scale=2
+Context=Emblems
+Type=Threshold
+
+[64x64/emotes]
+Size=64
+Context=Emotes
+Type=Threshold
+
+[64x64@2/emotes]
+Size=64
+Scale=2
+Context=Emotes
+Type=Threshold
+
+[64x64/filesystems]
+Size=64
+Context=FileSystems
+Type=Threshold
+
+[64x64@2/filesystems]
+Size=64
+Scale=2
+Context=FileSystems
+Type=Threshold
+
+[64x64/intl]
+Size=64
+Context=International
+Type=Threshold
+
+[64x64@2/intl]
+Size=64
+Scale=2
+Context=International
+Type=Threshold
+
+[64x64/mimetypes]
+Size=64
+Context=MimeTypes
+Type=Threshold
+
+[64x64@2/mimetypes]
+Size=64
+Scale=2
+Context=MimeTypes
+Type=Threshold
+
+[64x64/places]
+Size=64
+Context=Places
+Type=Threshold
+
+[64x64@2/places]
+Size=64
+Scale=2
+Context=Places
+Type=Threshold
+
+[64x64/status]
+Size=64
+Context=Status
+Type=Threshold
+
+[64x64@2/status]
+Size=64
+Scale=2
+Context=Status
+Type=Threshold
+
+[64x64/stock/chart]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64@2/stock/chart]
+Size=64
+Scale=2
+Context=Stock
+Type=Threshold
+
+[64x64/stock/code]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64@2/stock/code]
+Size=64
+Scale=2
+Context=Stock
+Type=Threshold
+
+[64x64/stock/data]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64@2/stock/data]
+Size=64
+Scale=2
+Context=Stock
+Type=Threshold
+
+[64x64/stock/form]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64@2/stock/form]
+Size=64
+Scale=2
+Context=Stock
+Type=Threshold
+
+[64x64/stock/image]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64@2/stock/image]
+Size=64
+Scale=2
+Context=Stock
+Type=Threshold
+
+[64x64/stock/io]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64@2/stock/io]
+Size=64
+Scale=2
+Context=Stock
+Type=Threshold
+
+[64x64/stock/media]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64@2/stock/media]
+Size=64
+Scale=2
+Context=Stock
+Type=Threshold
+
+[64x64/stock/navigation]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64@2/stock/navigation]
+Size=64
+Scale=2
+Context=Stock
+Type=Threshold
+
+[64x64/stock/net]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64@2/stock/net]
+Size=64
+Scale=2
+Context=Stock
+Type=Threshold
+
+[64x64/stock/object]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64@2/stock/object]
+Size=64
+Scale=2
+Context=Stock
+Type=Threshold
+
+[64x64/stock/table]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64@2/stock/table]
+Size=64
+Scale=2
+Context=Stock
+Type=Threshold
+
+[64x64/stock/text]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64@2/stock/text]
+Size=64
+Scale=2
+Context=Stock
+Type=Threshold
+
+[72x72/actions]
+Size=72
+Context=Actions
+Type=Threshold
+
+[72x72@2/actions]
+Size=72
+Scale=2
+Context=Actions
+Type=Threshold
+
+[72x72/animations]
+Size=72
+Context=Animations
+Type=Threshold
+
+[72x72@2/animations]
+Size=72
+Scale=2
+Context=Animations
+Type=Threshold
+
+[72x72/apps]
+Size=72
+Context=Applications
+Type=Threshold
+
+[72x72@2/apps]
+Size=72
+Scale=2
+Context=Applications
+Type=Threshold
+
+[72x72/categories]
+Size=72
+Context=Categories
+Type=Threshold
+
+[72x72@2/categories]
+Size=72
+Scale=2
+Context=Categories
+Type=Threshold
+
+[72x72/devices]
+Size=72
+Context=Devices
+Type=Threshold
+
+[72x72@2/devices]
+Size=72
+Scale=2
+Context=Devices
+Type=Threshold
+
+[72x72/emblems]
+Size=72
+Context=Emblems
+Type=Threshold
+
+[72x72@2/emblems]
+Size=72
+Scale=2
+Context=Emblems
+Type=Threshold
+
+[72x72/emotes]
+Size=72
+Context=Emotes
+Type=Threshold
+
+[72x72@2/emotes]
+Size=72
+Scale=2
+Context=Emotes
+Type=Threshold
+
+[72x72/filesystems]
+Size=72
+Context=FileSystems
+Type=Threshold
+
+[72x72@2/filesystems]
+Size=72
+Scale=2
+Context=FileSystems
+Type=Threshold
+
+[72x72/intl]
+Size=72
+Context=International
+Type=Threshold
+
+[72x72@2/intl]
+Size=72
+Scale=2
+Context=International
+Type=Threshold
+
+[72x72/mimetypes]
+Size=72
+Context=MimeTypes
+Type=Threshold
+
+[72x72@2/mimetypes]
+Size=72
+Scale=2
+Context=MimeTypes
+Type=Threshold
+
+[72x72/places]
+Size=72
+Context=Places
+Type=Threshold
+
+[72x72@2/places]
+Size=72
+Scale=2
+Context=Places
+Type=Threshold
+
+[72x72/status]
+Size=72
+Context=Status
+Type=Threshold
+
+[72x72@2/status]
+Size=72
+Scale=2
+Context=Status
+Type=Threshold
+
+[72x72/stock/chart]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72@2/stock/chart]
+Size=72
+Scale=2
+Context=Stock
+Type=Threshold
+
+[72x72/stock/code]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72@2/stock/code]
+Size=72
+Scale=2
+Context=Stock
+Type=Threshold
+
+[72x72/stock/data]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72@2/stock/data]
+Size=72
+Scale=2
+Context=Stock
+Type=Threshold
+
+[72x72/stock/form]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72@2/stock/form]
+Size=72
+Scale=2
+Context=Stock
+Type=Threshold
+
+[72x72/stock/image]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72@2/stock/image]
+Size=72
+Scale=2
+Context=Stock
+Type=Threshold
+
+[72x72/stock/io]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72@2/stock/io]
+Size=72
+Scale=2
+Context=Stock
+Type=Threshold
+
+[72x72/stock/media]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72@2/stock/media]
+Size=72
+Scale=2
+Context=Stock
+Type=Threshold
+
+[72x72/stock/navigation]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72@2/stock/navigation]
+Size=72
+Scale=2
+Context=Stock
+Type=Threshold
+
+[72x72/stock/net]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72@2/stock/net]
+Size=72
+Scale=2
+Context=Stock
+Type=Threshold
+
+[72x72/stock/object]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72@2/stock/object]
+Size=72
+Scale=2
+Context=Stock
+Type=Threshold
+
+[72x72/stock/table]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72@2/stock/table]
+Size=72
+Scale=2
+Context=Stock
+Type=Threshold
+
+[72x72/stock/text]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72@2/stock/text]
+Size=72
+Scale=2
+Context=Stock
+Type=Threshold
+
+[96x96/actions]
+Size=96
+Context=Actions
+Type=Threshold
+
+[96x96@2/actions]
+Size=96
+Scale=2
+Context=Actions
+Type=Threshold
+
+[96x96/animations]
+Size=96
+Context=Animations
+Type=Threshold
+
+[96x96@2/animations]
+Size=96
+Scale=2
+Context=Animations
+Type=Threshold
+
+[96x96/apps]
+Size=96
+Context=Applications
+Type=Threshold
+
+[96x96@2/apps]
+Size=96
+Scale=2
+Context=Applications
+Type=Threshold
+
+[96x96/categories]
+Size=96
+Context=Categories
+Type=Threshold
+
+[96x96@2/categories]
+Size=96
+Scale=2
+Context=Categories
+Type=Threshold
+
+[96x96/devices]
+Size=96
+Context=Devices
+Type=Threshold
+
+[96x96@2/devices]
+Size=96
+Scale=2
+Context=Devices
+Type=Threshold
+
+[96x96/emblems]
+Size=96
+Context=Emblems
+Type=Threshold
+
+[96x96@2/emblems]
+Size=96
+Scale=2
+Context=Emblems
+Type=Threshold
+
+[96x96/emotes]
+Size=96
+Context=Emotes
+Type=Threshold
+
+[96x96@2/emotes]
+Size=96
+Scale=2
+Context=Emotes
+Type=Threshold
+
+[96x96/filesystems]
+Size=96
+Context=FileSystems
+Type=Threshold
+
+[96x96@2/filesystems]
+Size=96
+Scale=2
+Context=FileSystems
+Type=Threshold
+
+[96x96/intl]
+Size=96
+Context=International
+Type=Threshold
+
+[96x96@2/intl]
+Size=96
+Scale=2
+Context=International
+Type=Threshold
+
+[96x96/mimetypes]
+Size=96
+Context=MimeTypes
+Type=Threshold
+
+[96x96@2/mimetypes]
+Size=96
+Scale=2
+Context=MimeTypes
+Type=Threshold
+
+[96x96/places]
+Size=96
+Context=Places
+Type=Threshold
+
+[96x96@2/places]
+Size=96
+Scale=2
+Context=Places
+Type=Threshold
+
+[96x96/status]
+Size=96
+Context=Status
+Type=Threshold
+
+[96x96@2/status]
+Size=96
+Scale=2
+Context=Status
+Type=Threshold
+
+[96x96/stock/chart]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96@2/stock/chart]
+Size=96
+Scale=2
+Context=Stock
+Type=Threshold
+
+[96x96/stock/code]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96@2/stock/code]
+Size=96
+Scale=2
+Context=Stock
+Type=Threshold
+
+[96x96/stock/data]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96@2/stock/data]
+Size=96
+Scale=2
+Context=Stock
+Type=Threshold
+
+[96x96/stock/form]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96@2/stock/form]
+Size=96
+Scale=2
+Context=Stock
+Type=Threshold
+
+[96x96/stock/image]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96@2/stock/image]
+Size=96
+Scale=2
+Context=Stock
+Type=Threshold
+
+[96x96/stock/io]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96@2/stock/io]
+Size=96
+Scale=2
+Context=Stock
+Type=Threshold
+
+[96x96/stock/media]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96@2/stock/media]
+Size=96
+Scale=2
+Context=Stock
+Type=Threshold
+
+[96x96/stock/navigation]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96@2/stock/navigation]
+Size=96
+Scale=2
+Context=Stock
+Type=Threshold
+
+[96x96/stock/net]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96@2/stock/net]
+Size=96
+Scale=2
+Context=Stock
+Type=Threshold
+
+[96x96/stock/object]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96@2/stock/object]
+Size=96
+Scale=2
+Context=Stock
+Type=Threshold
+
+[96x96/stock/table]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96@2/stock/table]
+Size=96
+Scale=2
+Context=Stock
+Type=Threshold
+
+[96x96/stock/text]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96@2/stock/text]
+Size=96
+Scale=2
+Context=Stock
+Type=Threshold
+
+[128x128/actions]
+Size=128
+Context=Actions
+Type=Threshold
+
+[128x128@2/actions]
+Size=128
+Scale=2
+Context=Actions
+Type=Threshold
+
+[128x128/animations]
+Size=128
+Context=Animations
+Type=Threshold
+
+[128x128@2/animations]
+Size=128
+Scale=2
+Context=Animations
+Type=Threshold
+
+[128x128/apps]
+Size=128
+Context=Applications
+Type=Threshold
+
+[128x128@2/apps]
+Size=128
+Scale=2
+Context=Applications
+Type=Threshold
+
+[128x128/categories]
+Size=128
+Context=Categories
+Type=Threshold
+
+[128x128@2/categories]
+Size=128
+Scale=2
+Context=Categories
+Type=Threshold
+
+[128x128/devices]
+Size=128
+Context=Devices
+Type=Threshold
+
+[128x128@2/devices]
+Size=128
+Scale=2
+Context=Devices
+Type=Threshold
+
+[128x128/emblems]
+Size=128
+Context=Emblems
+Type=Threshold
+
+[128x128@2/emblems]
+Size=128
+Scale=2
+Context=Emblems
+Type=Threshold
+
+[128x128/emotes]
+Size=128
+Context=Emotes
+Type=Threshold
+
+[128x128@2/emotes]
+Size=128
+Scale=2
+Context=Emotes
+Type=Threshold
+
+[128x128/filesystems]
+Size=128
+Context=FileSystems
+Type=Threshold
+
+[128x128@2/filesystems]
+Size=128
+Scale=2
+Context=FileSystems
+Type=Threshold
+
+[128x128/intl]
+Size=128
+Context=International
+Type=Threshold
+
+[128x128@2/intl]
+Size=128
+Scale=2
+Context=International
+Type=Threshold
+
+[128x128/mimetypes]
+Size=128
+Context=MimeTypes
+Type=Threshold
+
+[128x128@2/mimetypes]
+Size=128
+Scale=2
+Context=MimeTypes
+Type=Threshold
+
+[128x128/places]
+Size=128
+Context=Places
+Type=Threshold
+
+[128x128@2/places]
+Size=128
+Scale=2
+Context=Places
+Type=Threshold
+
+[128x128/status]
+Size=128
+Context=Status
+Type=Threshold
+
+[128x128@2/status]
+Size=128
+Scale=2
+Context=Status
+Type=Threshold
+
+[128x128/stock/chart]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128@2/stock/chart]
+Size=128
+Scale=2
+Context=Stock
+Type=Threshold
+
+[128x128/stock/code]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128@2/stock/code]
+Size=128
+Scale=2
+Context=Stock
+Type=Threshold
+
+[128x128/stock/data]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128@2/stock/data]
+Size=128
+Scale=2
+Context=Stock
+Type=Threshold
+
+[128x128/stock/form]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128@2/stock/form]
+Size=128
+Scale=2
+Context=Stock
+Type=Threshold
+
+[128x128/stock/image]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128@2/stock/image]
+Size=128
+Scale=2
+Context=Stock
+Type=Threshold
+
+[128x128/stock/io]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128@2/stock/io]
+Size=128
+Scale=2
+Context=Stock
+Type=Threshold
+
+[128x128/stock/media]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128@2/stock/media]
+Size=128
+Scale=2
+Context=Stock
+Type=Threshold
+
+[128x128/stock/navigation]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128@2/stock/navigation]
+Size=128
+Scale=2
+Context=Stock
+Type=Threshold
+
+[128x128/stock/net]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128@2/stock/net]
+Size=128
+Scale=2
+Context=Stock
+Type=Threshold
+
+[128x128/stock/object]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128@2/stock/object]
+Size=128
+Scale=2
+Context=Stock
+Type=Threshold
+
+[128x128/stock/table]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128@2/stock/table]
+Size=128
+Scale=2
+Context=Stock
+Type=Threshold
+
+[128x128/stock/text]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128@2/stock/text]
+Size=128
+Scale=2
+Context=Stock
+Type=Threshold
+
+[192x192/actions]
+Size=192
+Context=Actions
+Type=Threshold
+
+[192x192@2/actions]
+Size=192
+Scale=2
+Context=Actions
+Type=Threshold
+
+[192x192/animations]
+Size=192
+Context=Animations
+Type=Threshold
+
+[192x192@2/animations]
+Size=192
+Scale=2
+Context=Animations
+Type=Threshold
+
+[192x192/apps]
+Size=192
+Context=Applications
+Type=Threshold
+
+[192x192@2/apps]
+Size=192
+Scale=2
+Context=Applications
+Type=Threshold
+
+[192x192/categories]
+Size=192
+Context=Categories
+Type=Threshold
+
+[192x192@2/categories]
+Size=192
+Scale=2
+Context=Categories
+Type=Threshold
+
+[192x192/devices]
+Size=192
+Context=Devices
+Type=Threshold
+
+[192x192@2/devices]
+Size=192
+Scale=2
+Context=Devices
+Type=Threshold
+
+[192x192/emblems]
+Size=192
+Context=Emblems
+Type=Threshold
+
+[192x192@2/emblems]
+Size=192
+Scale=2
+Context=Emblems
+Type=Threshold
+
+[192x192/emotes]
+Size=192
+Context=Emotes
+Type=Threshold
+
+[192x192@2/emotes]
+Size=192
+Scale=2
+Context=Emotes
+Type=Threshold
+
+[192x192/filesystems]
+Size=192
+Context=FileSystems
+Type=Threshold
+
+[192x192@2/filesystems]
+Size=192
+Scale=2
+Context=FileSystems
+Type=Threshold
+
+[192x192/intl]
+Size=192
+Context=International
+Type=Threshold
+
+[192x192@2/intl]
+Size=192
+Scale=2
+Context=International
+Type=Threshold
+
+[192x192/mimetypes]
+Size=192
+Context=MimeTypes
+Type=Threshold
+
+[192x192@2/mimetypes]
+Size=192
+Scale=2
+Context=MimeTypes
+Type=Threshold
+
+[192x192/places]
+Size=192
+Context=Places
+Type=Threshold
+
+[192x192@2/places]
+Size=192
+Scale=2
+Context=Places
+Type=Threshold
+
+[192x192/status]
+Size=192
+Context=Status
+Type=Threshold
+
+[192x192@2/status]
+Size=192
+Scale=2
+Context=Status
+Type=Threshold
+
+[192x192/stock/chart]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192@2/stock/chart]
+Size=192
+Scale=2
+Context=Stock
+Type=Threshold
+
+[192x192/stock/code]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192@2/stock/code]
+Size=192
+Scale=2
+Context=Stock
+Type=Threshold
+
+[192x192/stock/data]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192@2/stock/data]
+Size=192
+Scale=2
+Context=Stock
+Type=Threshold
+
+[192x192/stock/form]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192@2/stock/form]
+Size=192
+Scale=2
+Context=Stock
+Type=Threshold
+
+[192x192/stock/image]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192@2/stock/image]
+Size=192
+Scale=2
+Context=Stock
+Type=Threshold
+
+[192x192/stock/io]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192@2/stock/io]
+Size=192
+Scale=2
+Context=Stock
+Type=Threshold
+
+[192x192/stock/media]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192@2/stock/media]
+Size=192
+Scale=2
+Context=Stock
+Type=Threshold
+
+[192x192/stock/navigation]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192@2/stock/navigation]
+Size=192
+Scale=2
+Context=Stock
+Type=Threshold
+
+[192x192/stock/net]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192@2/stock/net]
+Size=192
+Scale=2
+Context=Stock
+Type=Threshold
+
+[192x192/stock/object]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192@2/stock/object]
+Size=192
+Scale=2
+Context=Stock
+Type=Threshold
+
+[192x192/stock/table]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192@2/stock/table]
+Size=192
+Scale=2
+Context=Stock
+Type=Threshold
+
+[192x192/stock/text]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192@2/stock/text]
+Size=192
+Scale=2
+Context=Stock
+Type=Threshold
+
+[256x256/actions]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Actions
+Type=Scalable
+
+[256x256@2/actions]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Actions
+Type=Scalable
+
+[256x256/animations]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Animations
+Type=Scalable
+
+[256x256@2/animations]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Animations
+Type=Scalable
+
+[256x256/apps]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Applications
+Type=Scalable
+
+[256x256@2/apps]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Applications
+Type=Scalable
+
+[256x256/categories]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Categories
+Type=Scalable
+
+[256x256@2/categories]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Categories
+Type=Scalable
+
+[256x256/devices]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Devices
+Type=Scalable
+
+[256x256@2/devices]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Devices
+Type=Scalable
+
+[256x256/emblems]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Emblems
+Type=Scalable
+
+[256x256@2/emblems]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Emblems
+Type=Scalable
+
+[256x256/emotes]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Emotes
+Type=Scalable
+
+[256x256@2/emotes]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Emotes
+Type=Scalable
+
+[256x256/filesystems]
+MinSize=64
+Size=256
+MaxSize=256
+Context=FileSystems
+Type=Scalable
+
+[256x256@2/filesystems]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=FileSystems
+Type=Scalable
+
+[256x256/intl]
+MinSize=64
+Size=256
+MaxSize=256
+Context=International
+Type=Scalable
+
+[256x256@2/intl]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=International
+Type=Scalable
+
+[256x256/mimetypes]
+MinSize=64
+Size=256
+MaxSize=256
+Context=MimeTypes
+Type=Scalable
+
+[256x256@2/mimetypes]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=MimeTypes
+Type=Scalable
+
+[256x256/places]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Places
+Type=Scalable
+
+[256x256@2/places]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Places
+Type=Scalable
+
+[256x256/status]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Status
+Type=Scalable
+
+[256x256@2/status]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Status
+Type=Scalable
+
+[256x256/stock/chart]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256@2/stock/chart]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/code]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256@2/stock/code]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/data]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256@2/stock/data]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/form]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256@2/stock/form]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/image]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256@2/stock/image]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/io]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256@2/stock/io]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/media]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256@2/stock/media]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/navigation]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256@2/stock/navigation]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/net]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256@2/stock/net]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/object]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256@2/stock/object]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/table]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256@2/stock/table]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/text]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256@2/stock/text]
+MinSize=64
+Size=256
+Scale=2
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[512x512/actions]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Actions
+Type=Scalable
+
+[512x512@2/actions]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Actions
+Type=Scalable
+
+[512x512/animations]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Animations
+Type=Scalable
+
+[512x512@2/animations]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Animations
+Type=Scalable
+
+[512x512/apps]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Applications
+Type=Scalable
+
+[512x512@2/apps]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Applications
+Type=Scalable
+
+[512x512/categories]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Categories
+Type=Scalable
+
+[512x512@2/categories]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Categories
+Type=Scalable
+
+[512x512/devices]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Devices
+Type=Scalable
+
+[512x512@2/devices]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Devices
+Type=Scalable
+
+[512x512/emblems]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Emblems
+Type=Scalable
+
+[512x512@2/emblems]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Emblems
+Type=Scalable
+
+[512x512/emotes]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Emotes
+Type=Scalable
+
+[512x512@2/emotes]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Emotes
+Type=Scalable
+
+[512x512/filesystems]
+MinSize=64
+Size=512
+MaxSize=512
+Context=FileSystems
+Type=Scalable
+
+[512x512@2/filesystems]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=FileSystems
+Type=Scalable
+
+[512x512/intl]
+MinSize=64
+Size=512
+MaxSize=512
+Context=International
+Type=Scalable
+
+[512x512@2/intl]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=International
+Type=Scalable
+
+[512x512/mimetypes]
+MinSize=64
+Size=512
+MaxSize=512
+Context=MimeTypes
+Type=Scalable
+
+[512x512@2/mimetypes]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=MimeTypes
+Type=Scalable
+
+[512x512/places]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Places
+Type=Scalable
+
+[512x512@2/places]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Places
+Type=Scalable
+
+[512x512/status]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Status
+Type=Scalable
+
+[512x512@2/status]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Status
+Type=Scalable
+
+[512x512/stock/chart]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512@2/stock/chart]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512/stock/code]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512@2/stock/code]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512/stock/data]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512@2/stock/data]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512/stock/form]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512@2/stock/form]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512/stock/image]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512@2/stock/image]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512/stock/io]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512@2/stock/io]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512/stock/media]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512@2/stock/media]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512/stock/navigation]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512@2/stock/navigation]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512/stock/net]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512@2/stock/net]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512/stock/object]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512@2/stock/object]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512/stock/table]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512@2/stock/table]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512/stock/text]
+MinSize=64
+Size=512
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[512x512@2/stock/text]
+MinSize=64
+Size=512
+Scale=2
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[scalable/actions]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Actions
+Type=Scalable
+
+[scalable/animations]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Animations
+Type=Scalable
+
+[scalable/apps]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Applications
+Type=Scalable
+
+[scalable/categories]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Categories
+Type=Scalable
+
+[scalable/devices]
+MinSize=1
+Size=128
+MaxSize=512
+Context=Devices
+Type=Scalable
+
+[scalable/emblems]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Emblems
+Type=Scalable
+
+[scalable/emotes]
+MinSize=1
+Size=128
+MaxSize=512
+Context=Emotes
+Type=Scalable
+
+[scalable/filesystems]
+MinSize=1
+Size=128
+MaxSize=256
+Context=FileSystems
+Type=Scalable
+
+[scalable/intl]
+MinSize=1
+Size=128
+MaxSize=512
+Context=International
+Type=Scalable
+
+[scalable/mimetypes]
+MinSize=1
+Size=128
+MaxSize=256
+Context=MimeTypes
+Type=Scalable
+
+[scalable/places]
+MinSize=1
+Size=128
+MaxSize=512
+Context=Places
+Type=Scalable
+
+[scalable/status]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Status
+Type=Scalable
+
+[scalable/stock/chart]
+MinSize=1
+Size=128
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[scalable/stock/code]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/data]
+MinSize=1
+Size=128
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[scalable/stock/form]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/image]
+MinSize=1
+Size=128
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[scalable/stock/io]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/media]
+MinSize=1
+Size=128
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[scalable/stock/navigation]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/net]
+MinSize=1
+Size=128
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[scalable/stock/object]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/table]
+MinSize=1
+Size=128
+MaxSize=512
+Context=Stock
+Type=Scalable
+
+[scalable/stock/text]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[symbolic/apps]
+MinSize=8
+Size=16
+MaxSize=512
+Context=Applications
+Type=Scalable
diff --git a/gtk/meson.build b/gtk/meson.build
index 971d59fd8c..7ac245419a 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -227,6 +227,7 @@ gtk_public_sources = files([
'gtkfilechooserwidget.c',
'gtkfiledialog.c',
'gtkfilefilter.c',
+ 'gtkfilelauncher.c',
'gtkfilter.c',
'gtkfilterlistmodel.c',
'gtkfixed.c',
@@ -345,7 +346,6 @@ gtk_public_sources = files([
'gtkshortcutsshortcut.c',
'gtkshortcutswindow.c',
'gtkshortcuttrigger.c',
- 'gtkshow.c',
'gtksidebarrow.c',
'gtksignallistitemfactory.c',
'gtksingleselection.c',
@@ -478,6 +478,7 @@ gtk_public_headers = files([
'gtkexpression.h',
'gtkfiledialog.h',
'gtkfilefilter.h',
+ 'gtkfilelauncher.h',
'gtkfilter.h',
'gtkfilterlistmodel.h',
'gtkfixed.h',
@@ -578,7 +579,6 @@ gtk_public_headers = files([
'gtkshortcutsshortcut.h',
'gtkshortcutswindow.h',
'gtkshortcuttrigger.h',
- 'gtkshow.h',
'gtksignallistitemfactory.h',
'gtksingleselection.h',
'gtksizegroup.h',
@@ -779,28 +779,21 @@ theme_deps = []
# For git checkouts, but not for tarballs...
if not fs.exists('theme/Default/Default-light.css')
# ... build the theme files
- sassc = find_program('sassc', required: false)
- if not sassc.found()
- subproject('sassc')
- sassc = find_program('sassc', required: true)
- endif
-
- if sassc.found()
- sassc_opts = [ '-a', '-M', '-t', 'compact' ]
+ sassc = find_program('sassc', native: true)
+ sassc_opts = [ '-a', '-M', '-t', 'compact' ]
- subdir('theme/Default')
+ subdir('theme/Default')
- theme_deps += [
- default_theme_deps,
- ]
- endif
+ theme_deps += [
+ default_theme_deps,
+ ]
endif
objcopy_supports_add_symbol = false
objcopy = find_program('objcopy', required : false)
if objcopy.found()
- objcopy_supports_add_symbol = run_command(objcopy, '--help').stdout().contains('--add-symbol')
+ objcopy_supports_add_symbol = run_command(objcopy, '--help', check: false).stdout().contains('--add-symbol')
endif
ld = find_program('ld', required : false)
@@ -1187,9 +1180,6 @@ libgtk = shared_library('gtk-4',
gtk_dep_sources = [gtkversion, gtktypebuiltins_h]
# Introspection
-gir = find_program('g-ir-scanner', required : get_option('introspection'))
-build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled())
-
if build_gir
gir_args = [
'-DGTK_COMPILATION',
diff --git a/gtk/org.gtk.gtk4.Settings.FileChooser.gschema.xml b/gtk/org.gtk.gtk4.Settings.FileChooser.gschema.xml
index d70fab035d..054a256d1a 100644
--- a/gtk/org.gtk.gtk4.Settings.FileChooser.gschema.xml
+++ b/gtk/org.gtk.gtk4.Settings.FileChooser.gschema.xml
@@ -55,6 +55,11 @@
<value nick='category' value='2'/>
</enum>
+ <enum id='org.gtk.gtk4.Settings.FileChooser.ViewType'>
+ <value nick='list' value='0'/>
+ <value nick='grid' value='1'/>
+ </enum>
+
<schema id='org.gtk.gtk4.Settings.FileChooser' path='/org/gtk/gtk4/settings/file-chooser/'>
<key name='location-mode' enum='org.gtk.gtk4.Settings.FileChooser.LocationMode'>
<default>'path-bar'</default>
@@ -169,6 +174,13 @@
'category' -> 'Video'
</description>
</key>
+ <key name="view-type" enum="org.gtk.gtk4.Settings.FileChooser.ViewType">
+ <default>'list'</default>
+ <summary>View type</summary>
+ <description>
+ Whether the files are shown in a list or in a grid.
+ </description>
+ </key>
</schema>
</schemalist>
diff --git a/gtk/theme/Default/_common.scss b/gtk/theme/Default/_common.scss
index b6f2f39e14..056d36c8d3 100644
--- a/gtk/theme/Default/_common.scss
+++ b/gtk/theme/Default/_common.scss
@@ -1652,7 +1652,15 @@ window.devel {
* Pathbars *
************/
-pathbar > button {
+pathbar scrolledwindow undershoot.left {
+ border-left: solid 1px $borders_color;
+}
+
+pathbar scrolledwindow undershoot.right {
+ border-right: solid 1px $borders_color;
+}
+
+pathbar button {
&.text-button, &.image-button, & {
padding-left: 4px;
padding-right: 4px;
@@ -3566,6 +3574,36 @@ filechooser {
}
#pathbarbox { border-bottom: 1px solid $bg_color; }
+
+ gridview child {
+ border-radius: 12px;
+ margin: 12px;
+
+ &:hover {
+ background-color: gtkalpha(currentColor, .04);
+ }
+
+ &:active {
+ background-color: gtkalpha(currentColor, .08);
+ }
+
+ &:selected {
+ background-color: gtkalpha($selected_bg_color, .15);
+ color: inherit;
+ }
+
+ &:selected:hover {
+ background-color: gtkalpha($selected_bg_color, .20);
+ }
+
+ &:selected:active {
+ background-color: gtkalpha($selected_bg_color, .25);
+ }
+
+ & filethumbnail image {
+ filter: drop-shadow(0px 1px 1px rgba(0,0,0,0.3));
+ }
+ }
}
diff --git a/gtk/ui/gtkappchooserdialog.ui b/gtk/ui/gtkappchooserdialog.ui
index 212bd0c18e..1e8faf5cea 100644
--- a/gtk/ui/gtkappchooserdialog.ui
+++ b/gtk/ui/gtkappchooserdialog.ui
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="gtk40">
<template class="GtkAppChooserDialog" parent="GtkDialog">
- <property name="title" translatable="yes">Select Application</property>
+ <property name="title" translatable="yes">Select App</property>
<child internal-child="content_area">
<object class="GtkBox" id="dialog-vbox1">
<property name="orientation">1</property>
@@ -57,13 +57,13 @@
</action-widgets>
</template>
<object class="GtkButton" id="show_more_button">
- <property name="label" translatable="yes">_View All Applications</property>
+ <property name="label" translatable="yes">_View All Apps</property>
<property name="use-underline">1</property>
<property name="receives-default">1</property>
<signal name="clicked" handler="show_more_button_clicked_cb" swapped="no"/>
</object>
<object class="GtkButton" id="software_button">
- <property name="label" translatable="yes">_Find New Applications</property>
+ <property name="label" translatable="yes">_Find New Apps</property>
<property name="use-underline">1</property>
<property name="receives-default">1</property>
<signal name="clicked" handler="software_button_clicked_cb" swapped="no"/>
diff --git a/gtk/ui/gtkfilechooserwidget.ui b/gtk/ui/gtkfilechooserwidget.ui
index 4a55e83d9c..6faecfe9eb 100644
--- a/gtk/ui/gtkfilechooserwidget.ui
+++ b/gtk/ui/gtkfilechooserwidget.ui
@@ -60,6 +60,13 @@
</object>
</child>
<child>
+ <object class="GtkButton" id="browse_toggle_view_button">
+ <property name="icon-name">view-grid-symbolic</property>
+ <property name="action-name">item.toggle-view</property>
+ <property name="tooltip-text" translatable="yes">Grid View</property>
+ </object>
+ </child>
+ <child>
<object class="GtkMenuButton" id="browse_new_folder_button">
<property name="tooltip-text" translatable="yes">Create Folder</property>
<property name="popover">new_folder_popover</property>
@@ -103,8 +110,26 @@
</object>
</child>
<child type="end">
- <object class="GtkSpinner" id="search_spinner">
- <property name="visible">0</property>
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+
+ <child>
+ <object class="GtkSpinner" id="search_spinner">
+ <property name="visible">0</property>
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkButton">
+ <property name="action-name">item.toggle-view</property>
+ <binding name="icon-name">
+ <lookup name="icon-name">browse_toggle_view_button</lookup>
+ </binding>
+ <binding name="tooltip-text">
+ <lookup name="tooltip-text">browse_toggle_view_button</lookup>
+ </binding>
+ </object>
+ </child>
</object>
</child>
</object>
@@ -144,8 +169,8 @@
<style>
<class name="complex"/>
</style>
- <signal name="activate" handler="column_view_row_activated_cb" swapped="no"/>
- <signal name="keynav-failed" handler="browse_files_column_view_keynav_failed_cb"/>
+ <signal name="activate" handler="browse_files_view_row_activated_cb" swapped="no"/>
+ <signal name="keynav-failed" handler="browse_files_view_keynav_failed_cb"/>
<child>
<object class="GtkColumnViewColumn" id="column_view_name_column">
<property name="title" translatable="yes">Name</property>
@@ -661,4 +686,75 @@
</object>
</child>
</object>
+ <object class="GtkGridView" id="browse_files_grid_view">
+ <signal name="activate" handler="browse_files_view_row_activated_cb" swapped="no"/>
+ <signal name="keynav-failed" handler="browse_files_view_keynav_failed_cb"/>
+ <binding name="enable-rubberband">
+ <lookup name="enable-rubberband">browse_files_column_view</lookup>
+ </binding>
+ <binding name="model">
+ <lookup name="model">browse_files_column_view</lookup>
+ </binding>
+ <property name="factory">
+ <object class="GtkBuilderListItemFactory">
+ <property name="bytes"><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <template class="GtkListItem">
+ <property name="child">
+ <object class="GtkFileChooserCell">
+ <binding name="position">
+ <lookup name="position">GtkListItem</lookup>
+ </binding>
+ <binding name="item">
+ <lookup name="item">GtkListItem</lookup>
+ </binding>
+ <binding name="selected">
+ <lookup name="selected">GtkListItem</lookup>
+ </binding>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <binding name="tooltip-text">
+ <closure type="gchararray" function="column_view_get_tooltip_text">
+ <lookup name="item">GtkListItem</lookup>
+ </closure>
+ </binding>
+ <child>
+ <object class="GtkFileThumbnail">
+ <property name="icon-size">96</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <binding name="file-info">
+ <lookup name="item">GtkListItem</lookup>
+ </binding>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="lines">3</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="ellipsize">middle</property>
+ <property name="justify">center</property>
+ <attributes>
+ <attribute name="insert-hyphens" value="false"></attribute>
+ </attributes>
+ <binding name="label">
+ <closure type="gchararray" function="column_view_get_file_display_name">
+ <lookup name="item">GtkListItem</lookup>
+ </closure>
+ </binding>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ </template>
+</interface>
+ ]]></property>
+ </object>
+ </property>
+ </object>
</interface>
diff --git a/meson.build b/meson.build
index cabe74c30d..b7419c62a8 100644
--- a/meson.build
+++ b/meson.build
@@ -12,7 +12,7 @@ project('gtk', 'c',
glib_req = '>= 2.72.0'
pango_req = '>= 1.50.0' # keep this in sync with .gitlab-ci/test-msys.sh
-harfbuzz_req = '>= 2.6.0'
+harfbuzz_req = '>= 2.6.0'
fribidi_req = '>= 0.19.7'
cairo_req = '>= 1.14.0'
gdk_pixbuf_req = '>= 2.30.0'
@@ -368,80 +368,44 @@ gtkinc = include_directories('gtk')
testinc = include_directories('tests')
# Dependencies
-glib_dep = dependency('glib-2.0', version: glib_req,
- fallback : ['glib', 'libglib_dep'])
-gobject_dep = dependency('gobject-2.0', version: glib_req,
- fallback : ['glib', 'libgobject_dep'])
+glib_dep = dependency('glib-2.0', version: glib_req)
+gobject_dep = dependency('gobject-2.0', version: glib_req)
if os_win32
- giowin32_dep = dependency('gio-windows-2.0', version: glib_req, required: win32_enabled,
- fallback : ['glib', 'libgio_dep'])
+ giowin32_dep = dependency('gio-windows-2.0', version: glib_req, required: win32_enabled)
endif
if os_unix
- giounix_dep = dependency('gio-unix-2.0', version: glib_req, required: false,
- fallback : ['glib', 'libgio_dep'])
+ giounix_dep = dependency('gio-unix-2.0', version: glib_req, required: false)
endif
-gmodule_dep = dependency('gmodule-2.0', version: glib_req,
- fallback : ['glib', 'libgmodule_dep'])
+gmodule_dep = dependency('gmodule-2.0', version: glib_req)
cairo_dep = dependency('cairo', version: cairo_req,
- fallback : ['cairo', 'libcairo_dep'],
default_options: ['zlib=enabled', 'tests=disabled'])
-cairogobj_dep = dependency('cairo-gobject', version: cairo_req,
- fallback : ['cairo', 'libcairogobject_dep'])
-pango_dep = dependency('pango', version: pango_req,
- fallback : ['pango', 'libpango_dep'])
-fribidi_dep = dependency('fribidi', version: fribidi_req,
- fallback : ['fribidi', 'libfribidi_dep'])
+cairogobj_dep = dependency('cairo-gobject', version: cairo_req)
+pango_dep = dependency('pango', version: pango_req)
+fribidi_dep = dependency('fribidi', version: fribidi_req)
harfbuzz_dep = dependency('harfbuzz', version: harfbuzz_req,
- fallback: ['harfbuzz', 'libharfbuzz_dep'],
default_options: ['coretext=enabled'])
# Require PangoFT2 if on X11 or wayland
-require_pangoft2 = wayland_enabled or x11_enabled
-
-if require_pangoft2
- pangoft_dep = dependency('pangoft2', version: pango_req,
- fallback : ['pango', 'libpangoft2_dep'])
-else
- pangoft_dep = dependency('pangoft2', required: false)
-endif
+pangoft_dep = dependency('pangoft2', version: pango_req,
+ required: wayland_enabled or x11_enabled)
if win32_enabled
# for GTK_IM_CONTEXT_IME
pangowin32_dep = dependency('pangowin32')
endif
-is_msvc_like = cc.get_argument_syntax() == 'msvc'
-
-pangocairo_dep = dependency('pangocairo', version: pango_req,
- fallback : ['pango', 'libpangocairo_dep'])
+pangocairo_dep = dependency('pangocairo', version: pango_req)
pixbuf_dep = dependency('gdk-pixbuf-2.0', version: gdk_pixbuf_req,
- fallback : ['gdk-pixbuf', 'gdkpixbuf_dep'],
default_options: ['png=enabled', 'jpeg=enabled', 'builtin_loaders=png,jpeg', 'man=false'])
-png_dep = dependency(is_msvc_like ? 'png' : 'libpng',
- fallback: ['libpng', 'libpng_dep'],
- required: true)
-tiff_dep = dependency(is_msvc_like ? 'tiff' : 'libtiff-4',
- fallback: ['libtiff', 'libtiff4_dep'],
- required: true)
-jpeg_dep = dependency(is_msvc_like ? 'jpeg' : 'libjpeg',
- fallback: ['libjpeg-turbo', 'jpeg_dep'],
- required: true)
-
-epoxy_dep = dependency('epoxy', version: epoxy_req,
- fallback: ['libepoxy', 'libepoxy_dep'])
-harfbuzz_dep = dependency('harfbuzz', version: '>= 2.1.0', required: false,
- fallback: ['harfbuzz', 'libharfbuzz_dep'],
- default_options: ['coretext=enabled'])
+png_dep = dependency('libpng', 'png')
+tiff_dep = dependency('libtiff-4', 'tiff')
+jpeg_dep = dependency('libjpeg', 'jpeg')
+
+epoxy_dep = dependency('epoxy', version: epoxy_req)
xkbdep = dependency('xkbcommon', version: xkbcommon_req, required: wayland_enabled)
graphene_dep = dependency('graphene-gobject-1.0', version: graphene_req,
- fallback: ['graphene', 'graphene_dep'],
default_options: ['tests=false'])
iso_codes_dep = dependency('iso-codes', required: false)
-
-gidocgen_dep = dependency('gi-docgen', version: '>= 2021.1',
- fallback: ['gi-docgen', 'dummy_dep'],
- required: get_option('gtk_doc') and get_option('introspection').enabled(),
- native: true)
gi_dep = dependency('gobject-introspection-1.0', version: introspection_req,
required: get_option('introspection').enabled() and
get_option('build-tests'))
@@ -514,11 +478,9 @@ cdata.set('HAVE_PANGOFT', pangoft_dep.found())
wayland_pkgs = []
if wayland_enabled
wlclientdep = dependency('wayland-client', version: wayland_req,
- fallback: 'wayland',
default_options: ['documentation=false'])
wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req)
- wlegldep = dependency('wayland-egl',
- fallback: 'wayland')
+ wlegldep = dependency('wayland-egl')
wlproto_dir = wlprotocolsdep.get_variable('pkgdatadir')
@@ -654,10 +616,6 @@ endif
cloudproviders_dep = dependency('cloudproviders',
required: get_option('cloudproviders'),
version: cloudproviders_req,
- fallback: [
- 'libcloudproviders',
- 'libcloudproviders_dep',
- ],
default_options: [
'vapigen=false',
])
@@ -677,7 +635,6 @@ if not get_option('sysprof').disabled()
'sysprofd=none',
'help=false',
],
- fallback: ['sysprof', 'libsysprof_capture_dep'],
)
cdata.set('HAVE_SYSPROF', libsysprof_capture_dep.found())
libsysprof_dep = dependency('sysprof-4',
@@ -692,7 +649,6 @@ if not get_option('sysprof').disabled()
'sysprofd=none',
'help=false',
],
- fallback: ['sysprof', 'libsysprof_dep'],
)
profiler_enabled = true
else
@@ -772,6 +728,11 @@ int main () {
endif
endif
+# Introspection
+gir = find_program('g-ir-scanner', required : get_option('introspection'))
+build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled())
+
+
project_build_root = meson.current_build_dir()
subdir('gtk/css')
@@ -924,7 +885,6 @@ summary('Introspection', build_gir, section: 'Build')
summary('Documentation', get_option('gtk_doc'), section: 'Build')
summary('Man pages', get_option('man-pages'), section: 'Build')
summary('Tests', get_option('build-tests'), section: 'Build')
-summary('Install tests', get_option('install-tests'), section: 'Build')
summary('Demos', get_option('demos'), section: 'Build')
summary('Examples', get_option('build-examples'), section: 'Build')
diff --git a/meson_options.txt b/meson_options.txt
index c1df7478eb..18f6c134c1 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -123,8 +123,3 @@ option('build-tests',
type: 'boolean',
value: true,
description : 'Build tests')
-
-option('install-tests',
- type: 'boolean',
- value: false,
- description : 'Install tests')
diff --git a/po/LINGUAS b/po/LINGUAS
index 0488fc9c6e..b81afdd008 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -54,6 +54,7 @@ hu
hy
ia
id
+ie
io
is
it
diff --git a/po/POTFILES.in b/po/POTFILES.in
index dce5c8db58..338e1a9c52 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -88,6 +88,7 @@ gtk/deprecated/gtkfontbutton.c
gtk/deprecated/gtkfontchooser.c
gtk/deprecated/gtkiconview.c
gtk/deprecated/gtkliststore.c
+gtk/deprecated/gtkshow.c
gtk/deprecated/gtkstylecontext.c
gtk/deprecated/gtktreednd.c
gtk/deprecated/gtktreemodel.c
@@ -177,6 +178,7 @@ gtk/gtkfilechooserutils.c
gtk/gtkfilechooserwidget.c
gtk/gtkfiledialog.c
gtk/gtkfilefilter.c
+gtk/gtkfilelauncher.c
gtk/gtkfilesystemmodel.c
gtk/gtkfilethumbnail.c
gtk/gtkfilter.c
@@ -298,7 +300,6 @@ gtk/gtkshortcutssection.c
gtk/gtkshortcutsshortcut.c
gtk/gtkshortcutswindow.c
gtk/gtkshortcuttrigger.c
-gtk/gtkshow.c
gtk/gtksidebarrow.c
gtk/gtksignallistitemfactory.c
gtk/gtksingleselection.c
diff --git a/po/fa.po b/po/fa.po
index c568e96478..f8f399a086 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+ 2.6\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
-"POT-Creation-Date: 2022-08-29 18:55+0000\n"
-"PO-Revision-Date: 2022-08-31 17:14+0430\n"
+"POT-Creation-Date: 2022-12-09 20:36+0000\n"
+"PO-Revision-Date: 2022-12-14 16:01+0330\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <>\n"
"Language: fa\n"
@@ -23,7 +23,7 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-Bookmarks: 133,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: Poedit 3.1.1\n"
+"X-Generator: Poedit 3.2.2\n"
#: gdk/broadway/gdkbroadway-server.c:135
#, c-format
@@ -81,7 +81,7 @@ msgstr "هیچ پیکربندی بی‌نظیری برایEGL موجود نیسØ
#, c-format
msgid "EGL implementation is missing extension %s"
msgid_plural "EGL implementation is missing %2$d extensions: %1$s"
-msgstr[0] "پیاده‌سازی EGL %2$Id اÙزونه Ú©Ù… دارد: %1$s"
+msgstr[0] "پیاده سازی EGL %2$Id اÙزونه Ú©Ù… دارد: %1$s"
#: gdk/gdkdisplay.c:1658
msgid "libEGL not available in this sandbox"
@@ -112,12 +112,12 @@ msgstr "کشیدن و رها کردن از دیگر برنامه‌ها پشتی
msgid "No compatible formats to transfer contents."
msgstr "هیچ قالب سازگاری برای انتقال محتویات وجود ندارد."
-#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:605
+#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:610
msgid "No GL API allowed."
msgstr "هیچ رابط برنامه‌نویسی GLای مجاز نیست."
#: gdk/gdkglcontext.c:418 gdk/win32/gdkglcontext-win32-wgl.c:611
-#: gdk/x11/gdkglcontext-glx.c:639
+#: gdk/x11/gdkglcontext-glx.c:644
msgid "Unable to create a GL context"
msgstr "امکان ساخت زمینه مناسب برای GL نبود"
@@ -132,7 +132,7 @@ msgstr "برنامه از API مربوط به %s پشتبانی نمی‌کند"
#. translators: This is about OpenGL backend names, like
#. * "Trying to use X11 GLX, but EGL is already in use"
-#: gdk/gdkglcontext.c:1822
+#: gdk/gdkglcontext.c:1814
#, c-format
msgid "Trying to use %s, but %s is already in use"
msgstr "تلاش شد از %s استÙاده شود، ولی %s از پیش در حال استÙاده است"
@@ -156,368 +156,368 @@ msgstr "قالب تصویر ناشناخته."
#. * Scroll_lock - Scroll lock
#. * KP_Space - Space (keypad)
#.
-#: gdk/keyname-table.h:6843
+#: gdk/keynamesprivate.h:6843
msgctxt "keyboard label"
msgid "BackSpace"
msgstr "پس‌بر"
-#: gdk/keyname-table.h:6844
+#: gdk/keynamesprivate.h:6844
msgctxt "keyboard label"
msgid "Tab"
msgstr "جهش"
-#: gdk/keyname-table.h:6845
+#: gdk/keynamesprivate.h:6845
msgctxt "keyboard label"
msgid "Return"
msgstr "بازگشت"
-#: gdk/keyname-table.h:6846
+#: gdk/keynamesprivate.h:6846
msgctxt "keyboard label"
msgid "Pause"
msgstr "Ù…Ú©Ø«"
-#: gdk/keyname-table.h:6847
+#: gdk/keynamesprivate.h:6847
msgctxt "keyboard label"
msgid "Scroll_Lock"
msgstr "Ù‚ÙÙ„ _لغزش"
-#: gdk/keyname-table.h:6848
+#: gdk/keynamesprivate.h:6848
msgctxt "keyboard label"
msgid "Sys_Req"
msgstr "_درخواست سامانه"
-#: gdk/keyname-table.h:6849
+#: gdk/keynamesprivate.h:6849
msgctxt "keyboard label"
msgid "Escape"
msgstr "گریز"
-#: gdk/keyname-table.h:6850
+#: gdk/keynamesprivate.h:6850
msgctxt "keyboard label"
msgid "Multi_key"
msgstr "کلید _رسانه"
-#: gdk/keyname-table.h:6851
+#: gdk/keynamesprivate.h:6851
msgctxt "keyboard label"
msgid "Home"
msgstr "خانه"
-#: gdk/keyname-table.h:6852
+#: gdk/keynamesprivate.h:6852
msgctxt "keyboard label"
msgid "Left"
msgstr "Ú†Ù¾"
-#: gdk/keyname-table.h:6853
+#: gdk/keynamesprivate.h:6853
msgctxt "keyboard label"
msgid "Up"
msgstr "بالا"
-#: gdk/keyname-table.h:6854
+#: gdk/keynamesprivate.h:6854
msgctxt "keyboard label"
msgid "Right"
msgstr "راست"
-#: gdk/keyname-table.h:6855
+#: gdk/keynamesprivate.h:6855
msgctxt "keyboard label"
msgid "Down"
msgstr "پایین"
-#: gdk/keyname-table.h:6856 gtk/gtkshortcutlabel.c:212
+#: gdk/keynamesprivate.h:6856 gtk/gtkshortcutlabel.c:213
msgctxt "keyboard label"
msgid "Page_Up"
msgstr "صÙحه‌_بالا"
-#: gdk/keyname-table.h:6857 gtk/gtkshortcutlabel.c:215
+#: gdk/keynamesprivate.h:6857 gtk/gtkshortcutlabel.c:216
msgctxt "keyboard label"
msgid "Page_Down"
msgstr "صÙحه‌_پایین"
-#: gdk/keyname-table.h:6858
+#: gdk/keynamesprivate.h:6858
msgctxt "keyboard label"
msgid "End"
msgstr "پایان"
-#: gdk/keyname-table.h:6859
+#: gdk/keynamesprivate.h:6859
msgctxt "keyboard label"
msgid "Begin"
msgstr "آغاز"
-#: gdk/keyname-table.h:6860
+#: gdk/keynamesprivate.h:6860
msgctxt "keyboard label"
msgid "Print"
msgstr "چاپ"
-#: gdk/keyname-table.h:6861
+#: gdk/keynamesprivate.h:6861
msgctxt "keyboard label"
msgid "Insert"
msgstr "درج"
-#: gdk/keyname-table.h:6862
+#: gdk/keynamesprivate.h:6862
msgctxt "keyboard label"
msgid "Num_Lock"
msgstr "Ù‚ÙÙ„ _اعداد"
#. Translators: KP_ means “key pad†here
-#: gdk/keyname-table.h:6864
+#: gdk/keynamesprivate.h:6864
msgctxt "keyboard label"
msgid "KP_Space"
msgstr "_Ùاصلهٔ صÙحه اعداد"
-#: gdk/keyname-table.h:6865
+#: gdk/keynamesprivate.h:6865
msgctxt "keyboard label"
msgid "KP_Tab"
msgstr "_جهش صÙحه اعداد"
-#: gdk/keyname-table.h:6866
+#: gdk/keynamesprivate.h:6866
msgctxt "keyboard label"
msgid "KP_Enter"
msgstr "_ورود صÙحه اعداد"
-#: gdk/keyname-table.h:6867
+#: gdk/keynamesprivate.h:6867
msgctxt "keyboard label"
msgid "KP_Home"
msgstr "_خانه صÙحه اعداد"
-#: gdk/keyname-table.h:6868
+#: gdk/keynamesprivate.h:6868
msgctxt "keyboard label"
msgid "KP_Left"
msgstr "جهت _Ú†Ù¾ صÙحه اعداد"
-#: gdk/keyname-table.h:6869
+#: gdk/keynamesprivate.h:6869
msgctxt "keyboard label"
msgid "KP_Up"
msgstr "جهت _بالای صÙحه اعداد"
-#: gdk/keyname-table.h:6870
+#: gdk/keynamesprivate.h:6870
msgctxt "keyboard label"
msgid "KP_Right"
msgstr "جهت _راست صÙحه اعداد"
-#: gdk/keyname-table.h:6871
+#: gdk/keynamesprivate.h:6871
msgctxt "keyboard label"
msgid "KP_Down"
msgstr "جهت _پایین صÙحه اعداد"
-#: gdk/keyname-table.h:6872
+#: gdk/keynamesprivate.h:6872
msgctxt "keyboard label"
msgid "KP_Page_Up"
msgstr "_صÙحه‌بالای صÙحه اعداد"
-#: gdk/keyname-table.h:6873
+#: gdk/keynamesprivate.h:6873
msgctxt "keyboard label"
msgid "KP_Prior"
msgstr "_پیشین صÙحه اعداد"
-#: gdk/keyname-table.h:6874
+#: gdk/keynamesprivate.h:6874
msgctxt "keyboard label"
msgid "KP_Page_Down"
msgstr "_صÙحه‌پایین صÙحه اعداد"
-#: gdk/keyname-table.h:6875
+#: gdk/keynamesprivate.h:6875
msgctxt "keyboard label"
msgid "KP_Next"
msgstr "_بعدی صÙحه اعداد"
-#: gdk/keyname-table.h:6876
+#: gdk/keynamesprivate.h:6876
msgctxt "keyboard label"
msgid "KP_End"
msgstr "_پایان صÙحه اعداد"
-#: gdk/keyname-table.h:6877
+#: gdk/keynamesprivate.h:6877
msgctxt "keyboard label"
msgid "KP_Begin"
msgstr "Ø¢_غاز صÙحه اعداد"
-#: gdk/keyname-table.h:6878
+#: gdk/keynamesprivate.h:6878
msgctxt "keyboard label"
msgid "KP_Insert"
msgstr "_درج صÙحه اعداد"
-#: gdk/keyname-table.h:6879
+#: gdk/keynamesprivate.h:6879
msgctxt "keyboard label"
msgid "KP_Delete"
msgstr "_حذ٠صÙحه اعداد"
-#: gdk/keyname-table.h:6880
+#: gdk/keynamesprivate.h:6880
msgctxt "keyboard label"
msgid "Delete"
msgstr "حذÙ"
-#: gdk/keyname-table.h:6881
+#: gdk/keynamesprivate.h:6881
msgctxt "keyboard label"
msgid "MonBrightnessUp"
msgstr "اÙزایش درخشندگی صÙحه‌نمایش"
-#: gdk/keyname-table.h:6882
+#: gdk/keynamesprivate.h:6882
msgctxt "keyboard label"
msgid "MonBrightnessDown"
msgstr "کاهش درخشندگی صÙحه‌نمایش"
-#: gdk/keyname-table.h:6883
+#: gdk/keynamesprivate.h:6883
msgctxt "keyboard label"
msgid "KbdBrightnessUp"
msgstr "اÙزایش درخشندگی"
-#: gdk/keyname-table.h:6884
+#: gdk/keynamesprivate.h:6884
msgctxt "keyboard label"
msgid "KbdBrightnessDown"
msgstr "کاهش درخشندگی"
-#: gdk/keyname-table.h:6885
+#: gdk/keynamesprivate.h:6885
msgctxt "keyboard label"
msgid "AudioMute"
msgstr "بی‌صدا"
-#: gdk/keyname-table.h:6886
+#: gdk/keynamesprivate.h:6886
msgctxt "keyboard label"
msgid "AudioMicMute"
msgstr "میکروÙÙ† بی‌صدا"
-#: gdk/keyname-table.h:6887
+#: gdk/keynamesprivate.h:6887
msgctxt "keyboard label"
msgid "AudioLowerVolume"
msgstr "کاهش بلندی صدا"
-#: gdk/keyname-table.h:6888
+#: gdk/keynamesprivate.h:6888
msgctxt "keyboard label"
msgid "AudioRaiseVolume"
msgstr "اÙزایش بلندی صدا"
-#: gdk/keyname-table.h:6889
+#: gdk/keynamesprivate.h:6889
msgctxt "keyboard label"
msgid "AudioPlay"
msgstr "پخش صوت"
-#: gdk/keyname-table.h:6890
+#: gdk/keynamesprivate.h:6890
msgctxt "keyboard label"
msgid "AudioStop"
msgstr "توق٠صوت"
-#: gdk/keyname-table.h:6891
+#: gdk/keynamesprivate.h:6891
msgctxt "keyboard label"
msgid "AudioNext"
msgstr "صوت بعدی"
-#: gdk/keyname-table.h:6892
+#: gdk/keynamesprivate.h:6892
msgctxt "keyboard label"
msgid "AudioPrev"
msgstr "صوت قبلی"
-#: gdk/keyname-table.h:6893
+#: gdk/keynamesprivate.h:6893
msgctxt "keyboard label"
msgid "AudioRecord"
msgstr "ضبط صوت"
-#: gdk/keyname-table.h:6894
+#: gdk/keynamesprivate.h:6894
msgctxt "keyboard label"
msgid "AudioPause"
msgstr "مکث صوت"
-#: gdk/keyname-table.h:6895
+#: gdk/keynamesprivate.h:6895
msgctxt "keyboard label"
msgid "AudioRewind"
msgstr "عقب‌بردن صوت"
-#: gdk/keyname-table.h:6896
+#: gdk/keynamesprivate.h:6896
msgctxt "keyboard label"
msgid "AudioMedia"
msgstr "رسانه صوتی"
-#: gdk/keyname-table.h:6897
+#: gdk/keynamesprivate.h:6897
msgctxt "keyboard label"
msgid "Eject"
msgstr "بیرون دادن"
-#: gdk/keyname-table.h:6898
+#: gdk/keynamesprivate.h:6898
msgctxt "keyboard label"
msgid "Explorer"
msgstr "کاوشگر"
-#: gdk/keyname-table.h:6899
+#: gdk/keynamesprivate.h:6899
msgctxt "keyboard label"
msgid "Calculator"
msgstr "ماشین‌حساب"
-#: gdk/keyname-table.h:6900
+#: gdk/keynamesprivate.h:6900
msgctxt "keyboard label"
msgid "Mail"
msgstr "نامه"
-#: gdk/keyname-table.h:6901
+#: gdk/keynamesprivate.h:6901
msgctxt "keyboard label"
msgid "WWW"
msgstr "وب"
-#: gdk/keyname-table.h:6902
+#: gdk/keynamesprivate.h:6902
msgctxt "keyboard label"
msgid "Search"
msgstr "جست‌وجو"
-#: gdk/keyname-table.h:6903
+#: gdk/keynamesprivate.h:6903
msgctxt "keyboard label"
msgid "Tools"
msgstr "ابزارها"
-#: gdk/keyname-table.h:6904
+#: gdk/keynamesprivate.h:6904
msgctxt "keyboard label"
msgid "ScreenSaver"
msgstr "محاÙظ صÙحه‌نمایش"
-#: gdk/keyname-table.h:6905
+#: gdk/keynamesprivate.h:6905
msgctxt "keyboard label"
msgid "Battery"
msgstr "باتری"
-#: gdk/keyname-table.h:6906
+#: gdk/keynamesprivate.h:6906
msgctxt "keyboard label"
msgid "Launch1"
msgstr "اجرای ۱"
-#: gdk/keyname-table.h:6907
+#: gdk/keynamesprivate.h:6907
msgctxt "keyboard label"
msgid "Forward"
msgstr "جلو"
-#: gdk/keyname-table.h:6908
+#: gdk/keynamesprivate.h:6908
msgctxt "keyboard label"
msgid "Back"
msgstr "عقب"
-#: gdk/keyname-table.h:6909
+#: gdk/keynamesprivate.h:6909
msgctxt "keyboard label"
msgid "Sleep"
msgstr "خواب"
-#: gdk/keyname-table.h:6910
+#: gdk/keynamesprivate.h:6910
msgctxt "keyboard label"
msgid "Hibernate"
msgstr "خواب زمستانی"
-#: gdk/keyname-table.h:6911
+#: gdk/keynamesprivate.h:6911
msgctxt "keyboard label"
msgid "WLAN"
msgstr "شبکهٔ محلّی بی‌سیم"
-#: gdk/keyname-table.h:6912
+#: gdk/keynamesprivate.h:6912
msgctxt "keyboard label"
msgid "WebCam"
msgstr "وب‌کم"
-#: gdk/keyname-table.h:6913
+#: gdk/keynamesprivate.h:6913
msgctxt "keyboard label"
msgid "Display"
msgstr "نمایشگر"
-#: gdk/keyname-table.h:6914
+#: gdk/keynamesprivate.h:6914
msgctxt "keyboard label"
msgid "TouchpadToggle"
msgstr "تغییرحالت صÙحه‌لمسی"
-#: gdk/keyname-table.h:6915
+#: gdk/keynamesprivate.h:6915
msgctxt "keyboard label"
msgid "WakeUp"
msgstr "بیدار"
-#: gdk/keyname-table.h:6916
+#: gdk/keynamesprivate.h:6916
msgctxt "keyboard label"
msgid "Suspend"
msgstr "تعلیق"
@@ -565,10 +565,10 @@ msgstr "نتوانست دادهٔ TIFF را بار کند"
msgid "Reading data failed at row %d"
msgstr "خواندن داده‌ها در ردی٠%Id شکست خورد"
-#: gdk/macos/gdkmacosclipboard.c:557 gdk/wayland/gdkclipboard-wayland.c:231
-#: gdk/wayland/gdkdrop-wayland.c:203 gdk/wayland/gdkprimary-wayland.c:317
+#: gdk/macos/gdkmacosclipboard.c:557 gdk/wayland/gdkclipboard-wayland.c:240
+#: gdk/wayland/gdkdrop-wayland.c:208 gdk/wayland/gdkprimary-wayland.c:336
#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1063
-#: gdk/x11/gdkclipboard-x11.c:791 gdk/x11/gdkdrop-x11.c:233
+#: gdk/x11/gdkclipboard-x11.c:805 gdk/x11/gdkdrop-x11.c:235
msgid "No compatible transfer format found"
msgstr "هیچ قالب انتقال سازگاری پیدا نشد"
@@ -696,7 +696,7 @@ msgstr "شکست در تغییر Ø´Ú©Ù„ قالب W32 دادهٔ ک‌ور 0x%x Ø
#: gdk/win32/gdkglcontext-win32-wgl.c:276 gdk/win32/gdkglcontext-win32-wgl.c:293
msgid "No GL implementation is available"
-msgstr "هیچ پیاده‌سازی GLای پیدا نشد"
+msgstr "هیچ پیاده سازی GLای پیدا نشد"
#: gdk/win32/gdkglcontext-win32-wgl.c:577
msgid "No available configurations for the given pixel format"
@@ -752,27 +752,27 @@ msgid "Opening %d Item"
msgid_plural "Opening %d Items"
msgstr[0] "درحال گشودن %Id مورد"
-#: gdk/x11/gdkclipboard-x11.c:461
+#: gdk/x11/gdkclipboard-x11.c:475
msgid "Clipboard manager could not store selection."
msgstr "مدیر تخته‌گیره نتوانست گزینش را ذخیره کند."
-#: gdk/x11/gdkclipboard-x11.c:641
+#: gdk/x11/gdkclipboard-x11.c:655
msgid "Cannot store clipboard. No clipboard manager is active."
msgstr "نتوانست تخته‌گیره را ذخیره کند. هیچ مدیر تخته‌گیره‌ای Ùعّال نیست."
-#: gdk/x11/gdkglcontext-glx.c:755
+#: gdk/x11/gdkglcontext-glx.c:760
msgid "No GLX configurations available"
msgstr "هیچ پیکربندی‌ای برای GLX موجود نیست"
-#: gdk/x11/gdkglcontext-glx.c:828
+#: gdk/x11/gdkglcontext-glx.c:833
msgid "No GLX configuration with required features found"
msgstr "هیچ پیکربندی‌ای با ویژگی‌های موردنیاز برای GLX موجود نیست"
-#: gdk/x11/gdkglcontext-glx.c:902
+#: gdk/x11/gdkglcontext-glx.c:907
msgid "GLX is not supported"
msgstr "GLX پشتیبانی نمی‌شود"
-#: gdk/x11/gdkselectioninputstream-x11.c:462
+#: gdk/x11/gdkselectioninputstream-x11.c:469
#, c-format
msgid "Format %s not supported"
msgstr "قالب «%s» پشتیبانی نمی‌شود"
@@ -838,53 +838,53 @@ msgstr "گزینش رنگ"
#: gtk/a11y/gtkatspiaction.c:690
msgctxt "accessibility"
msgid "Activate"
-msgstr "Ùعّال‌سازی"
+msgstr "Ùعّال سازی"
#: gtk/a11y/gtkatspiaction.c:380
msgctxt "accessibility"
msgid "Activates the color"
-msgstr "Ùعّال‌سازی رنگ"
+msgstr "Ùعّال سازی رنگ"
#: gtk/a11y/gtkatspiaction.c:387
msgctxt "accessibility"
msgid "Customize"
-msgstr "سÙارشی‌سازی"
+msgstr "سÙارشی سازی"
#: gtk/a11y/gtkatspiaction.c:388
msgctxt "accessibility"
msgid "Customizes the color"
-msgstr "سÙارشی‌سازی رنگ"
+msgstr "سÙارشی سازی رنگ"
#: gtk/a11y/gtkatspiaction.c:440
msgctxt "accessibility"
msgid "Activates the expander"
-msgstr "Ùعّال‌سازی گسترنده"
+msgstr "Ùعّال سازی گسترنده"
#: gtk/a11y/gtkatspiaction.c:496 gtk/a11y/gtkatspiaction.c:604
#: gtk/a11y/gtkatspiaction.c:691
msgctxt "accessibility"
msgid "Activates the entry"
-msgstr "Ùعّال‌سازی ورودی"
+msgstr "Ùعّال سازی ورودی"
#: gtk/a11y/gtkatspiaction.c:503
msgctxt "accessibility"
msgid "Activate primary icon"
-msgstr "Ùعّال‌سازی نقشک نخستین"
+msgstr "Ùعّال سازی نقشک نخستین"
#: gtk/a11y/gtkatspiaction.c:504
msgctxt "accessibility"
msgid "Activates the primary icon of the entry"
-msgstr "Ùعّال‌سازی نقشک نخستین ورودی"
+msgstr "Ùعّال سازی نقشک نخستین ورودی"
#: gtk/a11y/gtkatspiaction.c:511
msgctxt "accessibility"
msgid "Activate secondary icon"
-msgstr "Ùعّال‌سازی نقشک ثانویه"
+msgstr "Ùعّال سازی نقشک ثانویه"
#: gtk/a11y/gtkatspiaction.c:512
msgctxt "accessibility"
msgid "Activates the secondary icon of the entry"
-msgstr "Ùعّال‌سازی نقشک ثانویهٔ ورودی"
+msgstr "Ùعّال سازی نقشک ثانویهٔ ورودی"
#: gtk/a11y/gtkatspiaction.c:611
msgctxt "accessibility"
@@ -899,12 +899,12 @@ msgstr "نمایش محتوای ورودی گذرواژه"
#: gtk/a11y/gtkatspiaction.c:698
msgctxt "accessibility"
msgid "Clear"
-msgstr "پاک‌سازی"
+msgstr "پاک سازی"
#: gtk/a11y/gtkatspiaction.c:699
msgctxt "accessibility"
msgid "Clears the contents of the entry"
-msgstr "پاک‌سازی محتوای ورودی"
+msgstr "پاک سازی محتوای ورودی"
#: gtk/a11y/gtkatspiroot.c:256
msgctxt "accessibility"
@@ -1040,7 +1040,7 @@ msgstr ""
#. * translated on keyboards used for your language, don't translate
#. * this.
#.
-#: gtk/gtkaccelgroup.c:837 gtk/gtkshortcutlabel.c:100 gtk/gtkshortcutlabel.c:136
+#: gtk/gtkaccelgroup.c:837 gtk/gtkshortcutlabel.c:101 gtk/gtkshortcutlabel.c:137
msgctxt "keyboard label"
msgid "Shift"
msgstr "تبدیل"
@@ -1050,7 +1050,7 @@ msgstr "تبدیل"
#. * translated on keyboards used for your language, don't translate
#. * this.
#.
-#: gtk/gtkaccelgroup.c:856 gtk/gtkshortcutlabel.c:103 gtk/gtkshortcutlabel.c:138
+#: gtk/gtkaccelgroup.c:856 gtk/gtkshortcutlabel.c:104 gtk/gtkshortcutlabel.c:139
msgctxt "keyboard label"
msgid "Ctrl"
msgstr "مهار"
@@ -1060,7 +1060,7 @@ msgstr "مهار"
#. * translated on keyboards used for your language, don't translate
#. * this.
#.
-#: gtk/gtkaccelgroup.c:875 gtk/gtkshortcutlabel.c:106 gtk/gtkshortcutlabel.c:140
+#: gtk/gtkaccelgroup.c:875 gtk/gtkshortcutlabel.c:107 gtk/gtkshortcutlabel.c:141
msgctxt "keyboard label"
msgid "Alt"
msgstr "دگرساز"
@@ -1070,7 +1070,7 @@ msgstr "دگرساز"
#. * translated on keyboards used for your language, don't translate
#. * this.
#.
-#: gtk/gtkaccelgroup.c:893 gtk/gtkshortcutlabel.c:112 gtk/gtkshortcutlabel.c:142
+#: gtk/gtkaccelgroup.c:893 gtk/gtkshortcutlabel.c:113 gtk/gtkshortcutlabel.c:143
msgctxt "keyboard label"
msgid "Super"
msgstr "سوپر"
@@ -1080,7 +1080,7 @@ msgstr "سوپر"
#. * translated on keyboards used for your language, don't translate
#. * this.
#.
-#: gtk/gtkaccelgroup.c:907 gtk/gtkshortcutlabel.c:115 gtk/gtkshortcutlabel.c:144
+#: gtk/gtkaccelgroup.c:907 gtk/gtkshortcutlabel.c:116 gtk/gtkshortcutlabel.c:145
msgctxt "keyboard label"
msgid "Hyper"
msgstr "Ùوق"
@@ -1090,7 +1090,7 @@ msgstr "Ùوق"
#. * translated on keyboards used for your language, don't translate
#. * this.
#.
-#: gtk/gtkaccelgroup.c:922 gtk/gtkshortcutlabel.c:109 gtk/gtkshortcutlabel.c:146
+#: gtk/gtkaccelgroup.c:922 gtk/gtkshortcutlabel.c:110 gtk/gtkshortcutlabel.c:147
msgctxt "keyboard label"
msgid "Meta"
msgstr "Ùرا"
@@ -1109,7 +1109,7 @@ msgctxt "keyboard label"
msgid "Space"
msgstr "Ùاصله"
-#: gtk/gtkaccelgroup.c:952 gtk/gtkshortcutlabel.c:171
+#: gtk/gtkaccelgroup.c:952 gtk/gtkshortcutlabel.c:172
msgctxt "keyboard label"
msgid "Backslash"
msgstr "ممیز وارونه"
@@ -1407,7 +1407,7 @@ msgstr "گزینش"
#: gtk/gtkaccessible.c:616
msgctxt "accessibility"
msgid "separator"
-msgstr "جداگر"
+msgstr "جداساز"
#: gtk/gtkaccessible.c:617
msgctxt "accessibility"
@@ -1497,45 +1497,45 @@ msgstr "مورد درخت"
#: gtk/gtkaccessible.c:634
msgctxt "accessibility"
msgid "widget"
-msgstr "ابزارگ"
+msgstr "ابزارک"
#: gtk/gtkaccessible.c:635
msgctxt "accessibility"
msgid "window"
msgstr "پنجره"
-#: gtk/gtkappchooserbutton.c:316
+#: gtk/gtkappchooserbutton.c:317
msgid "Other application…"
msgstr "برنامهٔ دیگر…"
-#: gtk/gtkappchooserdialog.c:205 gtk/gtkappchooserdialog.c:256
+#: gtk/gtkappchooserdialog.c:204 gtk/gtkappchooserdialog.c:255
#: gtk/ui/gtkappchooserdialog.ui:4
msgid "Select Application"
msgstr "گزینش برنامه"
#. Translators: %s is a filename
-#: gtk/gtkappchooserdialog.c:212
+#: gtk/gtkappchooserdialog.c:211
#, c-format
msgid "Opening “%sâ€."
msgstr "درحال گشودن «%s»."
-#: gtk/gtkappchooserdialog.c:213
+#: gtk/gtkappchooserdialog.c:212
#, c-format
msgid "No applications found for “%sâ€"
msgstr "هیچ برنامه‌ای برای «%s» پیدا نشد"
#. Translators: %s is a file type description
-#: gtk/gtkappchooserdialog.c:218
+#: gtk/gtkappchooserdialog.c:217
#, c-format
msgid "Opening “%s†files."
msgstr "در حال گشودن پرونده‌های «%s»."
-#: gtk/gtkappchooserdialog.c:220
+#: gtk/gtkappchooserdialog.c:219
#, c-format
msgid "No applications found for “%s†files"
msgstr "هیچ برنامه‌ای برای پرونده‌های «%s» پیدا نشد"
-#: gtk/gtkappchooserdialog.c:422
+#: gtk/gtkappchooserdialog.c:421
msgid "Failed to start GNOME Software"
msgstr "شکست در اجرای نرم‌اÙزارهای گنوم"
@@ -1662,7 +1662,7 @@ msgstr "%Id"
#: gtk/gtkcellrendereraccel.c:287
msgctxt "Accelerator"
msgid "Disabled"
-msgstr "از کار انداخته شده"
+msgstr "از کار اÙتاده"
#. This label is displayed in a treeview cell displaying
#. * an accelerator key combination that is not valid according
@@ -2081,9 +2081,9 @@ msgstr "یک پرونده با همان نام در حال حاضر وجود دØ
#: gtk/gtkfilechoosernative.c:509 gtk/gtkfilechoosernative.c:580
#: gtk/gtkfilechooserwidget.c:1210 gtk/gtkfilechooserwidget.c:5800
#: gtk/gtkmessagedialog.c:166 gtk/gtkmessagedialog.c:175 gtk/gtkmountoperation.c:608
-#: gtk/gtkpagesetupunixdialog.c:283 gtk/gtkprintbackend.c:640
+#: gtk/gtkpagesetupunixdialog.c:283 gtk/gtkprintbackend.c:637
#: gtk/gtkprinteroptionwidget.c:721 gtk/gtkprintunixdialog.c:651
-#: gtk/gtkprintunixdialog.c:807 gtk/gtkwindow.c:6113 gtk/inspector/css-editor.c:248
+#: gtk/gtkprintunixdialog.c:807 gtk/gtkwindow.c:6152 gtk/inspector/css-editor.c:248
#: gtk/inspector/recorder.c:1723 gtk/ui/gtkappchooserdialog.ui:45
#: gtk/ui/gtkassistant.ui:52 gtk/ui/gtkcolorchooserdialog.ui:33
#: gtk/ui/gtkfontchooserdialog.ui:24
@@ -2091,7 +2091,7 @@ msgid "_Cancel"
msgstr "_انصراÙ"
#: gtk/gtkfilechoosernative.c:510 gtk/gtkfilechoosernative.c:574
-#: gtk/gtkplacessidebar.c:3128 gtk/gtkplacessidebar.c:3213 gtk/gtkplacesview.c:1658
+#: gtk/gtkplacessidebar.c:3146 gtk/gtkplacessidebar.c:3231 gtk/gtkplacesview.c:1659
msgid "_Open"
msgstr "_گشودن"
@@ -2108,7 +2108,7 @@ msgstr "انتخاب این که کدام نوع پرونده‌ها نمایش
#. * is a hostname. Nautilus and the panel contain the same string
#. * to translate.
#.
-#: gtk/gtkfilechooserutils.c:361
+#: gtk/gtkfilechooserutils.c:362
#, c-format
msgid "%1$s on %2$s"
msgstr "%1$s روی %2$s"
@@ -2173,7 +2173,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "اگر موردی را پاک کنید، برای همیشه از دست خواهد رÙت."
#: gtk/gtkfilechooserwidget.c:1211 gtk/gtkfilechooserwidget.c:1827
-#: gtk/gtklabel.c:5652 gtk/gtktext.c:6051 gtk/gtktextview.c:8975
+#: gtk/gtklabel.c:5652 gtk/gtktext.c:6061 gtk/gtktextview.c:8966
msgid "_Delete"
msgstr "_حذÙ"
@@ -2202,7 +2202,7 @@ msgid "_Add to Bookmarks"
msgstr "_اÙزودن به نشانک‌ها"
#: gtk/gtkfilechooserwidget.c:1823 gtk/gtkplacessidebar.c:2310
-#: gtk/gtkplacessidebar.c:3249 gtk/ui/gtkfilechooserwidget.ui:465
+#: gtk/gtkplacessidebar.c:3267 gtk/ui/gtkfilechooserwidget.ui:465
msgid "_Rename"
msgstr "_تغییر نام"
@@ -2373,7 +2373,7 @@ msgstr "شما دسترسی به پوشه مشخص شده را ندارید."
msgid "Could not send the search request"
msgstr "نمی‌توان درخواست جست‌وجو را ارسال کرد"
-#: gtk/gtkfilechooserwidget.c:6876
+#: gtk/gtkfilechooserwidget.c:6877
msgid "Accessed"
msgstr "در دسترس"
@@ -2466,19 +2466,19 @@ msgstr "دگرگونه‌های نویسه"
msgid "OpenGL context creation failed"
msgstr "ساخت زمینه OpenGL شکست خورد"
-#: gtk/gtklabel.c:5649 gtk/gtktext.c:6039 gtk/gtktextview.c:8963
+#: gtk/gtklabel.c:5649 gtk/gtktext.c:6049 gtk/gtktextview.c:8954
msgid "Cu_t"
msgstr "_برش"
-#: gtk/gtklabel.c:5650 gtk/gtktext.c:6043 gtk/gtktextview.c:8967
+#: gtk/gtklabel.c:5650 gtk/gtktext.c:6053 gtk/gtktextview.c:8958
msgid "_Copy"
msgstr "_رونوشت"
-#: gtk/gtklabel.c:5651 gtk/gtktext.c:6047 gtk/gtktextview.c:8971
+#: gtk/gtklabel.c:5651 gtk/gtktext.c:6057 gtk/gtktextview.c:8962
msgid "_Paste"
msgstr "_چسباندن"
-#: gtk/gtklabel.c:5657 gtk/gtktext.c:6060 gtk/gtktextview.c:8996
+#: gtk/gtklabel.c:5657 gtk/gtktext.c:6070 gtk/gtktextview.c:8987
msgid "Select _All"
msgstr "انتخاب _همه"
@@ -2498,15 +2498,15 @@ msgstr "_رونوشت از نشانی"
msgid "Invalid URI"
msgstr "نشانی نامعتبر"
-#: gtk/gtklockbutton.c:285 gtk/ui/gtklockbutton.ui:20
+#: gtk/gtklockbutton.c:286 gtk/ui/gtklockbutton.ui:20
msgid "Lock"
msgstr "Ù‚ÙÙ„"
-#: gtk/gtklockbutton.c:297 gtk/ui/gtklockbutton.ui:26
+#: gtk/gtklockbutton.c:298 gtk/ui/gtklockbutton.ui:26
msgid "Unlock"
msgstr "Ù‚Ùل‌گشایی"
-#: gtk/gtklockbutton.c:309
+#: gtk/gtklockbutton.c:310
msgid ""
"Dialog is unlocked.\n"
"Click to prevent further changes"
@@ -2514,7 +2514,7 @@ msgstr ""
"محاوره باز شده است.\n"
"جهت جلوگیری از تغییرات آتی کلیک کنید"
-#: gtk/gtklockbutton.c:321
+#: gtk/gtklockbutton.c:322
msgid ""
"Dialog is locked.\n"
"Click to make changes"
@@ -2522,7 +2522,7 @@ msgstr ""
"محاوره Ù‚ÙÙ„ شده است.\n"
"جهت ایجاد تغییرات کلیک کنید"
-#: gtk/gtklockbutton.c:333
+#: gtk/gtklockbutton.c:334
msgid ""
"System policy prevents changes.\n"
"Contact your system administrator"
@@ -2535,7 +2535,7 @@ msgstr ""
#. * Do *not* translate it to "predefinito:LTR", if it
#. * it isn't default:LTR or default:RTL it will not work
#.
-#: gtk/gtkmain.c:786
+#: gtk/gtkmain.c:788
msgid "default:LTR"
msgstr "default:RTL"
@@ -2545,7 +2545,7 @@ msgstr "default:RTL"
#. * the separator that your locale uses or use "%Id" instead
#. * of "%d" if your locale uses localized digits.
#.
-#: gtk/gtkmediacontrols.c:99
+#: gtk/gtkmediacontrols.c:100
#, c-format
msgctxt "long time format"
msgid "%d:%02d:%02d"
@@ -2557,7 +2557,7 @@ msgstr "%Id:%I02d:%I02d"
#. * change ":" to the separator that your locale uses or use
#. * "%Id" instead of "%d" if your locale uses localized digits.
#.
-#: gtk/gtkmediacontrols.c:107
+#: gtk/gtkmediacontrols.c:108
#, c-format
msgctxt "long time format"
msgid "-%d:%02d:%02d"
@@ -2569,7 +2569,7 @@ msgstr "-%Id:%I02d:%I02d"
#. * ":" to the separator that your locale uses or use "%Id"
#. * instead of "%d" if your locale uses localized digits.
#.
-#: gtk/gtkmediacontrols.c:118
+#: gtk/gtkmediacontrols.c:119
#, c-format
msgctxt "short time format"
msgid "-%d:%02d"
@@ -2581,14 +2581,14 @@ msgstr "-%Id:%I02d"
#. * separator that your locale uses or use "%Id" instead of
#. * "%d" if your locale uses localized digits.
#.
-#: gtk/gtkmediacontrols.c:127
+#: gtk/gtkmediacontrols.c:128
#, c-format
msgctxt "short time format"
msgid "%d:%02d"
msgstr "%Id:%I02d"
-#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176 gtk/gtkprintbackend.c:641
-#: gtk/gtkwindow.c:6114
+#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176 gtk/gtkprintbackend.c:638
+#: gtk/gtkwindow.c:6153
msgid "_OK"
msgstr "_تأیید"
@@ -2670,10 +2670,10 @@ msgstr "ناتوان در پایان دادن به Ùرایند"
msgid "_End Process"
msgstr "_پایان دادن به Ùرایند"
-#: gtk/gtkmountoperation-stub.c:62
+#: gtk/gtkmountoperation-stub.c:61
#, c-format
msgid "Cannot kill process with PID %d. Operation is not implemented."
-msgstr "نمی‌توان Ùرایند با شناسهٔ %Id را کشت. این کنش پیاده‌سازی نشده است."
+msgstr "نمی‌توان Ùرایند با شناسهٔ %Id را کشت. عملیان پیاده سازی نشده."
#. translators: this string is a name for the 'less' command
#: gtk/gtkmountoperation-x11.c:984
@@ -2858,7 +2858,7 @@ msgstr "دیگر مکان‌ها"
msgid "Show other locations"
msgstr "نمایش دیگر مکان‌ها"
-#: gtk/gtkplacessidebar.c:1962 gtk/gtkplacessidebar.c:2963
+#: gtk/gtkplacessidebar.c:1962 gtk/gtkplacessidebar.c:2981
#, c-format
msgid "Unable to start “%sâ€"
msgstr "نتوانست %s را شروع کند"
@@ -2887,104 +2887,104 @@ msgstr "این نام از پیش گرÙته شده"
msgid "Name"
msgstr "نام"
-#: gtk/gtkplacessidebar.c:2504
+#: gtk/gtkplacessidebar.c:2522
#, c-format
msgid "Unable to unmount “%sâ€"
msgstr "نتوانست %s را پیاده کند"
-#: gtk/gtkplacessidebar.c:2680
+#: gtk/gtkplacessidebar.c:2698
#, c-format
msgid "Unable to stop “%sâ€"
msgstr "نتوانست %s را متوقّ٠کند"
-#: gtk/gtkplacessidebar.c:2709
+#: gtk/gtkplacessidebar.c:2727
#, c-format
msgid "Unable to eject “%sâ€"
msgstr "نتوانست %s را بیرون دهد"
-#: gtk/gtkplacessidebar.c:2738 gtk/gtkplacessidebar.c:2767
+#: gtk/gtkplacessidebar.c:2756 gtk/gtkplacessidebar.c:2785
#, c-format
msgid "Unable to eject %s"
msgstr "نتوانست %s را بیرون دهد"
-#: gtk/gtkplacessidebar.c:2915
+#: gtk/gtkplacessidebar.c:2933
#, c-format
msgid "Unable to poll “%s†for media changes"
msgstr "نتوانست %s را برای تغییرات رسانه‌ای بررسی کند"
-#: gtk/gtkplacessidebar.c:3134 gtk/gtkplacessidebar.c:3221 gtk/gtkplacesview.c:1662
+#: gtk/gtkplacessidebar.c:3152 gtk/gtkplacessidebar.c:3239 gtk/gtkplacesview.c:1663
msgid "Open in New _Tab"
msgstr "گشودن در _زبانهٔ جدید"
-#: gtk/gtkplacessidebar.c:3140 gtk/gtkplacessidebar.c:3230 gtk/gtkplacesview.c:1667
+#: gtk/gtkplacessidebar.c:3158 gtk/gtkplacessidebar.c:3248 gtk/gtkplacesview.c:1668
msgid "Open in New _Window"
msgstr "گشودن در _پنجرهٔ جدید"
-#: gtk/gtkplacessidebar.c:3241
+#: gtk/gtkplacessidebar.c:3259
msgid "_Add Bookmark"
msgstr "_اÙزودن نشانک"
-#: gtk/gtkplacessidebar.c:3245
+#: gtk/gtkplacessidebar.c:3263
msgid "_Remove"
msgstr "_برداشتن"
-#: gtk/gtkplacessidebar.c:3261 gtk/gtkplacesview.c:1692
+#: gtk/gtkplacessidebar.c:3279 gtk/gtkplacesview.c:1693
msgid "_Mount"
msgstr "_سوار کردن"
-#: gtk/gtkplacessidebar.c:3270 gtk/gtkplacesview.c:1681
+#: gtk/gtkplacessidebar.c:3288 gtk/gtkplacesview.c:1682
msgid "_Unmount"
msgstr "_پیاده کردن"
-#: gtk/gtkplacessidebar.c:3277
+#: gtk/gtkplacessidebar.c:3295
msgid "_Eject"
msgstr "_بیرون دادن"
-#: gtk/gtkplacessidebar.c:3287
+#: gtk/gtkplacessidebar.c:3305
msgid "_Detect Media"
msgstr "_تشخیص رسانه"
-#: gtk/gtkplacessidebar.c:3296
+#: gtk/gtkplacessidebar.c:3314
msgid "_Start"
msgstr "_شروع"
-#: gtk/gtkplacessidebar.c:3298
+#: gtk/gtkplacessidebar.c:3316
msgid "_Power On"
msgstr "_روشن کردن"
-#: gtk/gtkplacessidebar.c:3299
+#: gtk/gtkplacessidebar.c:3317
msgid "_Connect Drive"
msgstr "_وصل کردن گرداننده"
-#: gtk/gtkplacessidebar.c:3300
+#: gtk/gtkplacessidebar.c:3318
msgid "_Start Multi-disk Device"
msgstr "_شروع اÙزارهٔ چنددیسکه"
-#: gtk/gtkplacessidebar.c:3301
+#: gtk/gtkplacessidebar.c:3319
msgid "_Unlock Device"
msgstr "Ù‚Ùل‌_گشایی اÙزاره"
-#: gtk/gtkplacessidebar.c:3311
+#: gtk/gtkplacessidebar.c:3329
msgid "_Stop"
msgstr "_توقّÙ"
-#: gtk/gtkplacessidebar.c:3313
+#: gtk/gtkplacessidebar.c:3331
msgid "_Safely Remove Drive"
msgstr "_برداشتن امن گرداننده"
-#: gtk/gtkplacessidebar.c:3314
+#: gtk/gtkplacessidebar.c:3332
msgid "_Disconnect Drive"
msgstr "_قطع کردن گرداننده"
-#: gtk/gtkplacessidebar.c:3315
+#: gtk/gtkplacessidebar.c:3333
msgid "_Stop Multi-disk Device"
msgstr "_توق٠اÙزارهٔ چنددیسکه"
-#: gtk/gtkplacessidebar.c:3316
+#: gtk/gtkplacessidebar.c:3334
msgid "_Lock Device"
msgstr "_Ù‚ÙÙ„ اÙزاره"
-#: gtk/gtkplacessidebar.c:3804 gtk/gtkplacesview.c:1103
+#: gtk/gtkplacessidebar.c:3823 gtk/gtkplacesview.c:1103
msgid "Computer"
msgstr "رایانه"
@@ -3007,71 +3007,71 @@ msgid "Con_nect"
msgstr "اتّ_صال"
#. if it wasn't cancelled show a dialog
-#: gtk/gtkplacesview.c:1366
+#: gtk/gtkplacesview.c:1367
msgid "Unable to unmount volume"
msgstr "نتوانست حجم را پیاده کند"
#. Allow to cancel the operation
-#: gtk/gtkplacesview.c:1458
+#: gtk/gtkplacesview.c:1459
msgid "Cance_l"
msgstr "_لغو"
-#: gtk/gtkplacesview.c:1605
+#: gtk/gtkplacesview.c:1606
msgid "AppleTalk"
msgstr "اپل‌تاک"
-#: gtk/gtkplacesview.c:1611
+#: gtk/gtkplacesview.c:1612
msgid "File Transfer Protocol"
msgstr "قرارداد انتقال پرونده"
#. Translators: do not translate ftp:// and ftps://
-#: gtk/gtkplacesview.c:1613
+#: gtk/gtkplacesview.c:1614
msgid "ftp:// or ftps://"
msgstr "ftp:// یا ftps://"
-#: gtk/gtkplacesview.c:1619
+#: gtk/gtkplacesview.c:1620
msgid "Network File System"
msgstr "سامانهٔ پروندهٔ شبکه"
-#: gtk/gtkplacesview.c:1625
+#: gtk/gtkplacesview.c:1626
msgid "Samba"
msgstr "سامبا"
-#: gtk/gtkplacesview.c:1631
+#: gtk/gtkplacesview.c:1632
msgid "SSH File Transfer Protocol"
msgstr "قرارداد انتقال پروندهٔ SSH"
#. Translators: do not translate sftp:// and ssh://
-#: gtk/gtkplacesview.c:1633
+#: gtk/gtkplacesview.c:1634
msgid "sftp:// or ssh://"
msgstr "sftp:// یا ssh://"
-#: gtk/gtkplacesview.c:1639
+#: gtk/gtkplacesview.c:1640
msgid "WebDAV"
msgstr "وب‌دو"
#. Translators: do not translate dav:// and davs://
-#: gtk/gtkplacesview.c:1641
+#: gtk/gtkplacesview.c:1642
msgid "dav:// or davs://"
msgstr "dav:// یا davs://"
-#: gtk/gtkplacesview.c:1676
+#: gtk/gtkplacesview.c:1677
msgid "_Disconnect"
msgstr "_قطع ارتباط"
-#: gtk/gtkplacesview.c:1687
+#: gtk/gtkplacesview.c:1688
msgid "_Connect"
msgstr "اتّ_صال"
-#: gtk/gtkplacesview.c:1871
+#: gtk/gtkplacesview.c:1905
msgid "Unable to get remote server location"
msgstr "نتوانست موقعیت کارساز دوردست را بگیرد"
-#: gtk/gtkplacesview.c:2014 gtk/gtkplacesview.c:2023
+#: gtk/gtkplacesview.c:2048 gtk/gtkplacesview.c:2057
msgid "Networks"
msgstr "شبکه"
-#: gtk/gtkplacesview.c:2014 gtk/gtkplacesview.c:2023
+#: gtk/gtkplacesview.c:2048 gtk/gtkplacesview.c:2057
msgid "On This Computer"
msgstr "روی این رایانه"
@@ -3094,11 +3094,11 @@ msgstr "قطع ارتباط"
msgid "Unmount"
msgstr "پیاده کردن"
-#: gtk/gtkprintbackend.c:639
+#: gtk/gtkprintbackend.c:636
msgid "Authentication"
msgstr "تأیید هویت"
-#: gtk/gtkprintbackend.c:715
+#: gtk/gtkprintbackend.c:712
msgid "_Remember password"
msgstr "_به‌خاطرسپاری گذرواژه"
@@ -3132,7 +3132,7 @@ msgstr "وضعیت نخستین"
#: gtk/gtkprintoperation.c:1684
msgctxt "print operation status"
msgid "Preparing to print"
-msgstr "در حال آماده‌سازی برای چاپ"
+msgstr "در حال آماده سازی برای چاپ"
#: gtk/gtkprintoperation.c:1685
msgctxt "print operation status"
@@ -3172,17 +3172,17 @@ msgstr "با خطا پایان یاÙت"
#: gtk/gtkprintoperation.c:2234
#, c-format
msgid "Preparing %d"
-msgstr "در حال آماده‌سازی %Id"
+msgstr "آماده سازی %Id"
#: gtk/gtkprintoperation.c:2236 gtk/gtkprintoperation.c:2854
#, c-format
msgid "Preparing"
-msgstr "در حال آماده‌سازی"
+msgstr "در حال آماده سازی"
#: gtk/gtkprintoperation.c:2239
#, c-format
msgid "Printing %d"
-msgstr "در حال چاپ %Id"
+msgstr "چاپ کردن %Id"
#: gtk/gtkprintoperation.c:2885
#, c-format
@@ -3214,7 +3214,7 @@ msgstr "بدون کاغذ"
#. Translators: this is a printer status.
#: gtk/gtkprintoperation-win32.c:639
-#: modules/printbackends/gtkprintbackendcups.c:2660
+#: modules/printbackends/gtkprintbackendcups.c:2639
msgid "Paused"
msgstr "مکث شده"
@@ -3281,35 +3281,35 @@ msgstr "در حال گرÙتن اطلاعات٠چاپگر…"
#. Translators: These strings name the possible arrangements of
#. * multiple pages on a sheet when printing
#.
-#: gtk/gtkprintunixdialog.c:2801 modules/printbackends/gtkprintbackendcups.c:5682
+#: gtk/gtkprintunixdialog.c:2801 modules/printbackends/gtkprintbackendcups.c:5647
msgid "Left to right, top to bottom"
msgstr "از چپ به راست، از بالا به پایین"
-#: gtk/gtkprintunixdialog.c:2801 modules/printbackends/gtkprintbackendcups.c:5682
+#: gtk/gtkprintunixdialog.c:2801 modules/printbackends/gtkprintbackendcups.c:5647
msgid "Left to right, bottom to top"
msgstr "از چپ به راست، از پایین به ابتدا"
-#: gtk/gtkprintunixdialog.c:2802 modules/printbackends/gtkprintbackendcups.c:5683
+#: gtk/gtkprintunixdialog.c:2802 modules/printbackends/gtkprintbackendcups.c:5648
msgid "Right to left, top to bottom"
msgstr "از راست به چپ، از بالا به پایین"
-#: gtk/gtkprintunixdialog.c:2802 modules/printbackends/gtkprintbackendcups.c:5683
+#: gtk/gtkprintunixdialog.c:2802 modules/printbackends/gtkprintbackendcups.c:5648
msgid "Right to left, bottom to top"
msgstr "از راست به چپ، از پایین به بالا"
-#: gtk/gtkprintunixdialog.c:2803 modules/printbackends/gtkprintbackendcups.c:5684
+#: gtk/gtkprintunixdialog.c:2803 modules/printbackends/gtkprintbackendcups.c:5649
msgid "Top to bottom, left to right"
msgstr "از بالا به پایین، از چپ به راست"
-#: gtk/gtkprintunixdialog.c:2803 modules/printbackends/gtkprintbackendcups.c:5684
+#: gtk/gtkprintunixdialog.c:2803 modules/printbackends/gtkprintbackendcups.c:5649
msgid "Top to bottom, right to left"
msgstr "از بالا به پایین، از راست به چپ"
-#: gtk/gtkprintunixdialog.c:2804 modules/printbackends/gtkprintbackendcups.c:5685
+#: gtk/gtkprintunixdialog.c:2804 modules/printbackends/gtkprintbackendcups.c:5650
msgid "Bottom to top, left to right"
msgstr "از انتها به ابتدا، از چپ به راست"
-#: gtk/gtkprintunixdialog.c:2804 modules/printbackends/gtkprintbackendcups.c:5685
+#: gtk/gtkprintunixdialog.c:2804 modules/printbackends/gtkprintbackendcups.c:5650
msgid "Bottom to top, right to left"
msgstr "از پایین به بالا، از راست به چپ"
@@ -3358,14 +3358,14 @@ msgstr "هیچ برنامهٔ ثبت شده‌ای با نام «%s» برای Ù
#: gtk/gtksearchentry.c:639
msgid "Clear entry"
-msgstr "پاک‌سازی ورودی"
+msgstr "پاک سازی ورودی"
#. Translators: This string is used to mark left/right variants of modifier
#. * keys in the shortcut window (e.g. Control_L vs Control_R). Please keep
#. * this string very short, ideally just a single character, since it will
#. * be rendered as part of the key.
#.
-#: gtk/gtkshortcutlabel.c:78
+#: gtk/gtkshortcutlabel.c:79
msgctxt "keyboard side marker"
msgid "L"
msgstr "Ú†"
@@ -3375,7 +3375,7 @@ msgstr "Ú†"
#. * this string very short, ideally just a single character, since it will
#. * be rendered as part of the key.
#.
-#: gtk/gtkshortcutlabel.c:91
+#: gtk/gtkshortcutlabel.c:92
msgctxt "keyboard side marker"
msgid "R"
msgstr "ر"
@@ -3441,19 +3441,24 @@ msgstr "هیچ نتیجه‌ای پیدا نشد"
msgid "Try a different search"
msgstr "جست‌وجو دیگری را امتحان کنید"
-#: gtk/gtkshow.c:177
+#: gtk/gtkshow.c:175
msgid "Could not show link"
msgstr "نتوانست پیوند را نشان دهد"
-#: gtk/gtktext.c:6065 gtk/gtktextview.c:9001
+#: gtk/gtkstacksidebar.c:154
+msgctxt "accessibility"
+msgid "Sidebar"
+msgstr "نوار کناری"
+
+#: gtk/gtktext.c:6075 gtk/gtktextview.c:8992
msgid "Insert _Emoji"
msgstr "درج _ایموجی"
-#: gtk/gtktextview.c:8983
+#: gtk/gtktextview.c:8974
msgid "_Undo"
msgstr "بر_گردان"
-#: gtk/gtktextview.c:8987
+#: gtk/gtktextview.c:8978
msgid "_Redo"
msgstr "_انجام دوباره"
@@ -3480,12 +3485,12 @@ msgctxt "volume percentage"
msgid "%d %%"
msgstr "%Id ٪"
-#: gtk/gtkwindow.c:6101
+#: gtk/gtkwindow.c:6140
#, c-format
msgid "Do you want to use GTK Inspector?"
msgstr "می‌خواهید از بازرس +GTK استÙاده کنید؟"
-#: gtk/gtkwindow.c:6103
+#: gtk/gtkwindow.c:6142
#, c-format
msgid ""
"GTK Inspector is an interactive debugger that lets you explore and modify the "
@@ -3495,7 +3500,7 @@ msgstr ""
"بازرس +GTK یک بازرس تعاملی است که به شما اجازه پیمایش و تغییر هسته برنامه‌های +GTK "
"را می‌دهد. استÙاده از آن ممکن است باعث شود Ú©Ù‡ برنامه‌ها Ù‚ÙÙ„ کنند یا از هم بپاشند."
-#: gtk/gtkwindow.c:6108
+#: gtk/gtkwindow.c:6147
msgid "Don’t show this message again"
msgstr "این پیام را دوباره نشان نده"
@@ -3547,7 +3552,7 @@ msgstr "مقدار"
#: gtk/inspector/action-editor.c:123
msgid "Activate"
-msgstr "Ùعال‌سازی"
+msgstr "Ùعال سازی"
#: gtk/inspector/action-editor.c:135
msgid "Set State"
@@ -4007,7 +4012,7 @@ msgstr "ضبط قاب‌ها"
#: gtk/inspector/recorder.ui:27
msgid "Clear recorded frames"
-msgstr "پاک‌سازی قاب‌های ضبط‌شده"
+msgstr "پاک سازی قاب‌های ضبط‌شده"
#: gtk/inspector/recorder.ui:34
msgid "Add debug nodes"
@@ -4129,20 +4134,16 @@ msgstr "سلسله مراتب"
#: gtk/inspector/type-info.ui:35
msgid "Implements"
-msgstr "پیاده‌سازی‌ها"
+msgstr "پیاده سازی‌ها"
-#: gtk/inspector/visual.c:604 gtk/inspector/visual.c:623
+#: gtk/inspector/visual.c:603 gtk/inspector/visual.c:622
msgid "Theme is hardcoded by GTK_THEME"
msgstr "تم با استÙاده از GTK_THEME رونویسی شده است"
-#: gtk/inspector/visual.c:854
+#: gtk/inspector/visual.c:853
msgid "Backend does not support window scaling"
msgstr "پسانه از تغییر اندازه پنجره پشتیبانی نمی‌کند"
-#: gtk/inspector/visual.c:1044
-msgid "GL rendering is disabled"
-msgstr "پرداخت GL از کار اÙتاده"
-
#: gtk/inspector/visual.ui:35
msgid "GTK Theme"
msgstr "زمینهٔ GTK"
@@ -4233,13 +4234,9 @@ msgstr "نمایش تمرکز"
#: gtk/inspector/visual.ui:654
msgid "Simulate Touchscreen"
-msgstr "شبیه‌سازی صÙحهٔ لمسی"
+msgstr "شبیه سازی صÙحهٔ لمسی"
-#: gtk/inspector/visual.ui:678
-msgid "Software GL"
-msgstr "GL نرم‌اÙزاری"
-
-#: gtk/inspector/visual.ui:714
+#: gtk/inspector/visual.ui:689
msgid "Inspect Inspector"
msgstr "بازرسی بازرس"
@@ -4273,7 +4270,7 @@ msgstr "تغییر وضعیت نوار کناری"
#: gtk/inspector/window.ui:253
msgid "Refresh action state"
-msgstr "تازه‌سازی وضعیت کنش"
+msgstr "تازه سازی وضعیت کنش"
#: gtk/inspector/window.ui:327
msgid "Previous object"
@@ -4780,7 +4777,7 @@ msgstr "ربع پهناها"
#: gtk/open-type-layout.h:96
msgctxt "OpenType layout"
msgid "Randomize"
-msgstr "تصادÙی‌سازی"
+msgstr "تصادÙی سازی"
#: gtk/open-type-layout.h:97
msgctxt "OpenType layout"
@@ -6381,404 +6378,404 @@ msgstr "نتوانست باÙتار نمونه‌گیری دوباره را تخ
msgid "No audio output found"
msgstr "هیچ خروجی صدایی پیدا نشد"
-#: modules/printbackends/gtkprintbackendcups.c:1152
-#: modules/printbackends/gtkprintbackendcups.c:1461
+#: modules/printbackends/gtkprintbackendcups.c:1142
+#: modules/printbackends/gtkprintbackendcups.c:1449
msgid "Username:"
msgstr "نام کاربری:"
-#: modules/printbackends/gtkprintbackendcups.c:1153
-#: modules/printbackends/gtkprintbackendcups.c:1470
+#: modules/printbackends/gtkprintbackendcups.c:1143
+#: modules/printbackends/gtkprintbackendcups.c:1458
msgid "Password:"
msgstr "گذرواژه:"
-#: modules/printbackends/gtkprintbackendcups.c:1192
-#: modules/printbackends/gtkprintbackendcups.c:1483
+#: modules/printbackends/gtkprintbackendcups.c:1181
+#: modules/printbackends/gtkprintbackendcups.c:1471
#, c-format
msgid "Authentication is required to print document “%s†on printer %s"
msgstr "تصدیق هویت برای چاپ سند «%s» برروی چاپگر %s لازم است"
-#: modules/printbackends/gtkprintbackendcups.c:1194
+#: modules/printbackends/gtkprintbackendcups.c:1183
#, c-format
msgid "Authentication is required to print a document on %s"
msgstr "نیاز به تأیید هویت برای چاپ یک سند روی %s"
-#: modules/printbackends/gtkprintbackendcups.c:1198
+#: modules/printbackends/gtkprintbackendcups.c:1187
#, c-format
msgid "Authentication is required to get attributes of job “%sâ€"
msgstr "تصدیق هویت برای گرÙتن ویژگی‌های مربوط به کار «%s» لازم است"
-#: modules/printbackends/gtkprintbackendcups.c:1200
+#: modules/printbackends/gtkprintbackendcups.c:1189
msgid "Authentication is required to get attributes of a job"
msgstr "نیاز به تأیید هویت برای گرÙتن خصیصه‌های کاری"
-#: modules/printbackends/gtkprintbackendcups.c:1204
+#: modules/printbackends/gtkprintbackendcups.c:1193
#, c-format
msgid "Authentication is required to get attributes of printer %s"
msgstr "نیاز به تأیید هویت برای گرÙتن خصیصه‌های چاپگر %s"
-#: modules/printbackends/gtkprintbackendcups.c:1206
+#: modules/printbackends/gtkprintbackendcups.c:1195
msgid "Authentication is required to get attributes of a printer"
msgstr "نیاز به تأیید هویت برای گرÙتن خصیصه‌های چاپگر"
-#: modules/printbackends/gtkprintbackendcups.c:1209
+#: modules/printbackends/gtkprintbackendcups.c:1198
#, c-format
msgid "Authentication is required to get default printer of %s"
msgstr "نیاز به تأیید هویت برای گرÙتن چاپگر پیش‌گزیدهٔ %s"
-#: modules/printbackends/gtkprintbackendcups.c:1212
+#: modules/printbackends/gtkprintbackendcups.c:1201
#, c-format
msgid "Authentication is required to get printers from %s"
msgstr "نیاز به تأیید هویت برای گرÙتن چاپگر‌ها از %s"
-#: modules/printbackends/gtkprintbackendcups.c:1217
+#: modules/printbackends/gtkprintbackendcups.c:1206
#, c-format
msgid "Authentication is required to get a file from %s"
msgstr "نیاز به تأیید هویت برای گرÙتن یک پرونده از %s"
-#: modules/printbackends/gtkprintbackendcups.c:1219
+#: modules/printbackends/gtkprintbackendcups.c:1208
#, c-format
msgid "Authentication is required on %s"
msgstr "نیاز به تأیید هویت روی %s"
-#: modules/printbackends/gtkprintbackendcups.c:1455
+#: modules/printbackends/gtkprintbackendcups.c:1443
msgid "Domain:"
msgstr "دامنه:"
-#: modules/printbackends/gtkprintbackendcups.c:1485
+#: modules/printbackends/gtkprintbackendcups.c:1473
#, c-format
msgid "Authentication is required to print document “%sâ€"
msgstr "تصدیق هویت برای چاپ سند‌ «%s» لازم است"
-#: modules/printbackends/gtkprintbackendcups.c:1490
+#: modules/printbackends/gtkprintbackendcups.c:1478
#, c-format
msgid "Authentication is required to print this document on printer %s"
msgstr "نیاز به تأیید هویت برای چاپ این سند روی چاپگر %s"
-#: modules/printbackends/gtkprintbackendcups.c:1492
+#: modules/printbackends/gtkprintbackendcups.c:1480
msgid "Authentication is required to print this document"
msgstr "تصدیق هویت برای چاپ این سند لازم است"
-#: modules/printbackends/gtkprintbackendcups.c:2589
+#: modules/printbackends/gtkprintbackendcups.c:2568
#, c-format
msgid "Printer “%s†is low on toner."
msgstr "چاپگر «%s» جوهر کم دارد."
-#: modules/printbackends/gtkprintbackendcups.c:2593
+#: modules/printbackends/gtkprintbackendcups.c:2572
#, c-format
msgid "Printer “%s†has no toner left."
msgstr "چاپگر «%s» هیچ جوهری ندارد."
#. Translators: "Developer" like on photo development context
-#: modules/printbackends/gtkprintbackendcups.c:2598
+#: modules/printbackends/gtkprintbackendcups.c:2577
#, c-format
msgid "Printer “%s†is low on developer."
msgstr "چاپگر «%s» توسعه‌دهنده کم دارد."
#. Translators: "Developer" like on photo development context
-#: modules/printbackends/gtkprintbackendcups.c:2603
+#: modules/printbackends/gtkprintbackendcups.c:2582
#, c-format
msgid "Printer “%s†is out of developer."
msgstr "چاپگر «%s» هیچ توسعه‌دهنده‌ای ندارد."
#. Translators: "marker" is one color bin of the printer
-#: modules/printbackends/gtkprintbackendcups.c:2608
+#: modules/printbackends/gtkprintbackendcups.c:2587
#, c-format
msgid "Printer “%s†is low on at least one marker supply."
msgstr "چاپگر «%s» دست‌کم یک منبع نشانگر کم دارد."
#. Translators: "marker" is one color bin of the printer
-#: modules/printbackends/gtkprintbackendcups.c:2613
+#: modules/printbackends/gtkprintbackendcups.c:2592
#, c-format
msgid "Printer “%s†is out of at least one marker supply."
msgstr "چاپگر «%s» دست‌کم از یک منبع نشانگر خالی است."
-#: modules/printbackends/gtkprintbackendcups.c:2617
+#: modules/printbackends/gtkprintbackendcups.c:2596
#, c-format
msgid "The cover is open on printer “%sâ€."
msgstr "روکش روی چاپگر «%s» باز است."
-#: modules/printbackends/gtkprintbackendcups.c:2621
+#: modules/printbackends/gtkprintbackendcups.c:2600
#, c-format
msgid "The door is open on printer “%sâ€."
msgstr "در چاپگر «%s» باز است."
-#: modules/printbackends/gtkprintbackendcups.c:2625
+#: modules/printbackends/gtkprintbackendcups.c:2604
#, c-format
msgid "Printer “%s†is low on paper."
msgstr "چاپگر «%s» کاغذ کم دارد."
-#: modules/printbackends/gtkprintbackendcups.c:2629
+#: modules/printbackends/gtkprintbackendcups.c:2608
#, c-format
msgid "Printer “%s†is out of paper."
msgstr "چاپگر «%s» هیچ کاغذی ندارد."
-#: modules/printbackends/gtkprintbackendcups.c:2633
+#: modules/printbackends/gtkprintbackendcups.c:2612
#, c-format
msgid "Printer “%s†is currently offline."
msgstr "چاپگر «%s» هم‌اکنون برون‌خط است."
-#: modules/printbackends/gtkprintbackendcups.c:2637
+#: modules/printbackends/gtkprintbackendcups.c:2616
#, c-format
msgid "There is a problem on printer “%sâ€."
msgstr "چاپگر «%s» مشکلی دارد."
#. Translators: this is a printer status.
-#: modules/printbackends/gtkprintbackendcups.c:2657
+#: modules/printbackends/gtkprintbackendcups.c:2636
msgid "Paused; Rejecting Jobs"
msgstr "مکث؛ در حال رد کردن کار‌ها"
#. Translators: this is a printer status.
-#: modules/printbackends/gtkprintbackendcups.c:2663
+#: modules/printbackends/gtkprintbackendcups.c:2642
msgid "Rejecting Jobs"
msgstr "در حال رد کردن کار‌ها"
#. Translators: this string connects multiple printer states together.
-#: modules/printbackends/gtkprintbackendcups.c:2704
+#: modules/printbackends/gtkprintbackendcups.c:2683
msgid "; "
msgstr "Ø› "
-#: modules/printbackends/gtkprintbackendcups.c:4619
-#: modules/printbackends/gtkprintbackendcups.c:4686
+#: modules/printbackends/gtkprintbackendcups.c:4584
+#: modules/printbackends/gtkprintbackendcups.c:4651
msgctxt "printing option"
msgid "Two Sided"
msgstr "دو رو"
-#: modules/printbackends/gtkprintbackendcups.c:4620
+#: modules/printbackends/gtkprintbackendcups.c:4585
msgctxt "printing option"
msgid "Paper Type"
msgstr "نوع کاغذ"
-#: modules/printbackends/gtkprintbackendcups.c:4621
+#: modules/printbackends/gtkprintbackendcups.c:4586
msgctxt "printing option"
msgid "Paper Source"
msgstr "منبع کاغذ"
-#: modules/printbackends/gtkprintbackendcups.c:4622
-#: modules/printbackends/gtkprintbackendcups.c:4687
+#: modules/printbackends/gtkprintbackendcups.c:4587
+#: modules/printbackends/gtkprintbackendcups.c:4652
msgctxt "printing option"
msgid "Output Tray"
msgstr "خروجی کاغذ"
-#: modules/printbackends/gtkprintbackendcups.c:4623
+#: modules/printbackends/gtkprintbackendcups.c:4588
msgctxt "printing option"
msgid "Resolution"
msgstr "تÙکیک‌پذیری"
-#: modules/printbackends/gtkprintbackendcups.c:4624
+#: modules/printbackends/gtkprintbackendcups.c:4589
msgctxt "printing option"
msgid "GhostScript pre-filtering"
msgstr "پیش‌پالایش GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4633
+#: modules/printbackends/gtkprintbackendcups.c:4598
msgctxt "printing option value"
msgid "One Sided"
msgstr "یک رو"
#. Translators: this is an option of "Two Sided"
-#: modules/printbackends/gtkprintbackendcups.c:4635
+#: modules/printbackends/gtkprintbackendcups.c:4600
msgctxt "printing option value"
msgid "Long Edge (Standard)"
msgstr "لبه بلند (استاندارد)"
#. Translators: this is an option of "Two Sided"
-#: modules/printbackends/gtkprintbackendcups.c:4637
+#: modules/printbackends/gtkprintbackendcups.c:4602
msgctxt "printing option value"
msgid "Short Edge (Flip)"
msgstr "لبه کوتاه (برگشته)"
#. Translators: this is an option of "Paper Source"
-#: modules/printbackends/gtkprintbackendcups.c:4639
-#: modules/printbackends/gtkprintbackendcups.c:4641
-#: modules/printbackends/gtkprintbackendcups.c:4649
+#: modules/printbackends/gtkprintbackendcups.c:4604
+#: modules/printbackends/gtkprintbackendcups.c:4606
+#: modules/printbackends/gtkprintbackendcups.c:4614
msgctxt "printing option value"
msgid "Auto Select"
msgstr "گزینش خودکار"
#. Translators: this is an option of "Paper Source"
#. Translators: this is an option of "Resolution"
-#: modules/printbackends/gtkprintbackendcups.c:4643
-#: modules/printbackends/gtkprintbackendcups.c:4645
-#: modules/printbackends/gtkprintbackendcups.c:4647
-#: modules/printbackends/gtkprintbackendcups.c:4651
+#: modules/printbackends/gtkprintbackendcups.c:4608
+#: modules/printbackends/gtkprintbackendcups.c:4610
+#: modules/printbackends/gtkprintbackendcups.c:4612
+#: modules/printbackends/gtkprintbackendcups.c:4616
msgctxt "printing option value"
msgid "Printer Default"
msgstr "پیش‌Ùرض چاپگر"
#. Translators: this is an option of "GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4653
+#: modules/printbackends/gtkprintbackendcups.c:4618
msgctxt "printing option value"
msgid "Embed GhostScript fonts only"
msgstr "تنها قلم‌های GhostScript نهÙته شوند"
#. Translators: this is an option of "GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4655
+#: modules/printbackends/gtkprintbackendcups.c:4620
msgctxt "printing option value"
msgid "Convert to PS level 1"
msgstr "تبدیل به سطح ۱ از PS"
#. Translators: this is an option of "GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4657
+#: modules/printbackends/gtkprintbackendcups.c:4622
msgctxt "printing option value"
msgid "Convert to PS level 2"
msgstr "تبدیل به سطح ۲ از PS"
#. Translators: this is an option of "GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4659
+#: modules/printbackends/gtkprintbackendcups.c:4624
msgctxt "printing option value"
msgid "No pre-filtering"
msgstr "بدون پیش‌پالایش"
#. Translators: "Miscellaneous" is the label for a button, that opens
#. up an extra panel of settings in a print dialog.
-#: modules/printbackends/gtkprintbackendcups.c:4668
+#: modules/printbackends/gtkprintbackendcups.c:4633
msgctxt "printing option group"
msgid "Miscellaneous"
msgstr "متÙرّقه"
-#: modules/printbackends/gtkprintbackendcups.c:4695
+#: modules/printbackends/gtkprintbackendcups.c:4660
msgctxt "sides"
msgid "One Sided"
msgstr "یک رو"
#. Translators: this is an option of "Two Sided"
-#: modules/printbackends/gtkprintbackendcups.c:4697
+#: modules/printbackends/gtkprintbackendcups.c:4662
msgctxt "sides"
msgid "Long Edge (Standard)"
msgstr "لبه بلند (استاندارد)"
#. Translators: this is an option of "Two Sided"
-#: modules/printbackends/gtkprintbackendcups.c:4699
+#: modules/printbackends/gtkprintbackendcups.c:4664
msgctxt "sides"
msgid "Short Edge (Flip)"
msgstr "لبه کوتاه (برگشته)"
#. Translators: Top output bin
-#: modules/printbackends/gtkprintbackendcups.c:4702
+#: modules/printbackends/gtkprintbackendcups.c:4667
msgctxt "output-bin"
msgid "Top Bin"
msgstr "محÙظه بالایی"
#. Translators: Middle output bin
-#: modules/printbackends/gtkprintbackendcups.c:4704
+#: modules/printbackends/gtkprintbackendcups.c:4669
msgctxt "output-bin"
msgid "Middle Bin"
msgstr "محÙظه وسط"
#. Translators: Bottom output bin
-#: modules/printbackends/gtkprintbackendcups.c:4706
+#: modules/printbackends/gtkprintbackendcups.c:4671
msgctxt "output-bin"
msgid "Bottom Bin"
msgstr "محÙظه پایین"
#. Translators: Side output bin
-#: modules/printbackends/gtkprintbackendcups.c:4708
+#: modules/printbackends/gtkprintbackendcups.c:4673
msgctxt "output-bin"
msgid "Side Bin"
msgstr "محÙظه کنار"
#. Translators: Left output bin
-#: modules/printbackends/gtkprintbackendcups.c:4710
+#: modules/printbackends/gtkprintbackendcups.c:4675
msgctxt "output-bin"
msgid "Left Bin"
msgstr "محÙظه Ú†Ù¾"
#. Translators: Right output bin
-#: modules/printbackends/gtkprintbackendcups.c:4712
+#: modules/printbackends/gtkprintbackendcups.c:4677
msgctxt "output-bin"
msgid "Right Bin"
msgstr "محÙظه راست"
#. Translators: Center output bin
-#: modules/printbackends/gtkprintbackendcups.c:4714
+#: modules/printbackends/gtkprintbackendcups.c:4679
msgctxt "output-bin"
msgid "Center Bin"
msgstr "محÙظه مرکزی"
#. Translators: Rear output bin
-#: modules/printbackends/gtkprintbackendcups.c:4716
+#: modules/printbackends/gtkprintbackendcups.c:4681
msgctxt "output-bin"
msgid "Rear Bin"
msgstr "محÙظه عقب"
#. Translators: Output bin where one sided output is oriented in the face-up position
-#: modules/printbackends/gtkprintbackendcups.c:4718
+#: modules/printbackends/gtkprintbackendcups.c:4683
msgctxt "output-bin"
msgid "Face Up Bin"
msgstr "محÙظه رو به بالا"
#. Translators: Output bin where one sided output is oriented in the face-down position
-#: modules/printbackends/gtkprintbackendcups.c:4720
+#: modules/printbackends/gtkprintbackendcups.c:4685
msgctxt "output-bin"
msgid "Face Down Bin"
msgstr "محÙطه رو به پایین"
#. Translators: Large capacity output bin
-#: modules/printbackends/gtkprintbackendcups.c:4722
+#: modules/printbackends/gtkprintbackendcups.c:4687
msgctxt "output-bin"
msgid "Large Capacity Bin"
msgstr "محÙظه با گنجایش بالا"
#. Translators: Output stacker number %d
-#: modules/printbackends/gtkprintbackendcups.c:4744
+#: modules/printbackends/gtkprintbackendcups.c:4709
#, c-format
msgctxt "output-bin"
msgid "Stacker %d"
msgstr "پشته‌ساز %Id"
#. Translators: Output mailbox number %d
-#: modules/printbackends/gtkprintbackendcups.c:4748
+#: modules/printbackends/gtkprintbackendcups.c:4713
#, c-format
msgctxt "output-bin"
msgid "Mailbox %d"
msgstr "صندوق پستی %Id"
#. Translators: Private mailbox
-#: modules/printbackends/gtkprintbackendcups.c:4752
+#: modules/printbackends/gtkprintbackendcups.c:4717
msgctxt "output-bin"
msgid "My Mailbox"
msgstr "صندوق پستی من"
#. Translators: Output tray number %d
-#: modules/printbackends/gtkprintbackendcups.c:4756
+#: modules/printbackends/gtkprintbackendcups.c:4721
#, c-format
msgctxt "output-bin"
msgid "Tray %d"
msgstr "سینی %Id"
-#: modules/printbackends/gtkprintbackendcups.c:5233
+#: modules/printbackends/gtkprintbackendcups.c:5198
msgid "Printer Default"
msgstr "پیش‌Ùرض چاپگر"
#. Translators: These strings name the possible values of the
#. * job priority option in the print dialog
#.
-#: modules/printbackends/gtkprintbackendcups.c:5677
+#: modules/printbackends/gtkprintbackendcups.c:5642
msgid "Urgent"
msgstr "Ùوری"
-#: modules/printbackends/gtkprintbackendcups.c:5677
+#: modules/printbackends/gtkprintbackendcups.c:5642
msgid "High"
msgstr "بالا"
-#: modules/printbackends/gtkprintbackendcups.c:5677
+#: modules/printbackends/gtkprintbackendcups.c:5642
msgid "Medium"
msgstr "متوسط"
-#: modules/printbackends/gtkprintbackendcups.c:5677
+#: modules/printbackends/gtkprintbackendcups.c:5642
msgid "Low"
msgstr "پایین"
#. Translators, this string is used to label the job priority option
#. * in the print dialog
#.
-#: modules/printbackends/gtkprintbackendcups.c:5707
+#: modules/printbackends/gtkprintbackendcups.c:5672
msgid "Job Priority"
msgstr "اولویت کار"
#. Translators, this string is used to label the billing info entry
#. * in the print dialog
#.
-#: modules/printbackends/gtkprintbackendcups.c:5718
+#: modules/printbackends/gtkprintbackendcups.c:5683
msgid "Billing Info"
msgstr "اطلاعات صورتحساب"
@@ -6786,37 +6783,37 @@ msgstr "اطلاعات صورتحساب"
#. Translators, these strings are names for various 'standard' cover
#. * pages that the printing system may support.
#.
-#: modules/printbackends/gtkprintbackendcups.c:5742
+#: modules/printbackends/gtkprintbackendcups.c:5707
msgctxt "cover page"
msgid "None"
msgstr "هیچ‌کدام"
-#: modules/printbackends/gtkprintbackendcups.c:5743
+#: modules/printbackends/gtkprintbackendcups.c:5708
msgctxt "cover page"
msgid "Classified"
msgstr "طبقه‌بندی شده"
-#: modules/printbackends/gtkprintbackendcups.c:5744
+#: modules/printbackends/gtkprintbackendcups.c:5709
msgctxt "cover page"
msgid "Confidential"
msgstr "محرمانه"
-#: modules/printbackends/gtkprintbackendcups.c:5745
+#: modules/printbackends/gtkprintbackendcups.c:5710
msgctxt "cover page"
msgid "Secret"
msgstr "سری"
-#: modules/printbackends/gtkprintbackendcups.c:5746
+#: modules/printbackends/gtkprintbackendcups.c:5711
msgctxt "cover page"
msgid "Standard"
msgstr "استاندارد"
-#: modules/printbackends/gtkprintbackendcups.c:5747
+#: modules/printbackends/gtkprintbackendcups.c:5712
msgctxt "cover page"
msgid "Top Secret"
msgstr "Ùوق سری"
-#: modules/printbackends/gtkprintbackendcups.c:5748
+#: modules/printbackends/gtkprintbackendcups.c:5713
msgctxt "cover page"
msgid "Unclassified"
msgstr "طبقه‌بندی نشده"
@@ -6824,7 +6821,7 @@ msgstr "طبقه‌بندی نشده"
#. Translators, this string is used to label the pages-per-sheet option
#. * in the print dialog
#.
-#: modules/printbackends/gtkprintbackendcups.c:5760
+#: modules/printbackends/gtkprintbackendcups.c:5725
msgctxt "printer option"
msgid "Pages per Sheet"
msgstr "تعداد صÙحه‌ها در برگه"
@@ -6832,7 +6829,7 @@ msgstr "تعداد صÙحه‌ها در برگه"
#. Translators, this string is used to label the option in the print
#. * dialog that controls in what order multiple pages are arranged
#.
-#: modules/printbackends/gtkprintbackendcups.c:5777
+#: modules/printbackends/gtkprintbackendcups.c:5742
msgctxt "printer option"
msgid "Page Ordering"
msgstr "ترتیب صÙحه‌ها"
@@ -6840,7 +6837,7 @@ msgstr "ترتیب صÙحه‌ها"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the front cover page.
#.
-#: modules/printbackends/gtkprintbackendcups.c:5819
+#: modules/printbackends/gtkprintbackendcups.c:5784
msgctxt "printer option"
msgid "Before"
msgstr "پیش از"
@@ -6848,7 +6845,7 @@ msgstr "پیش از"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the back cover page.
#.
-#: modules/printbackends/gtkprintbackendcups.c:5834
+#: modules/printbackends/gtkprintbackendcups.c:5799
msgctxt "printer option"
msgid "After"
msgstr "پس از"
@@ -6857,7 +6854,7 @@ msgstr "پس از"
#. * a print job is printed. Possible values are 'now', a specified time,
#. * or 'on hold'
#.
-#: modules/printbackends/gtkprintbackendcups.c:5854
+#: modules/printbackends/gtkprintbackendcups.c:5819
msgctxt "printer option"
msgid "Print at"
msgstr "زمان چاپ"
@@ -6865,7 +6862,7 @@ msgstr "زمان چاپ"
#. Translators: this is the name of the option that allows the user
#. * to specify a time when a print job will be printed.
#.
-#: modules/printbackends/gtkprintbackendcups.c:5865
+#: modules/printbackends/gtkprintbackendcups.c:5830
msgctxt "printer option"
msgid "Print at time"
msgstr "چاپ در زمان مشخص"
@@ -6875,80 +6872,80 @@ msgstr "چاپ در زمان مشخص"
#. * the width and height in points. E.g: "Custom
#. * 230.4x142.9"
#.
-#: modules/printbackends/gtkprintbackendcups.c:5912
+#: modules/printbackends/gtkprintbackendcups.c:5877
#, c-format
msgid "Custom %s×%s"
msgstr "سÙارشی %s×%s"
#. TRANSLATORS: this is the ICC color profile to use for this job
-#: modules/printbackends/gtkprintbackendcups.c:6023
+#: modules/printbackends/gtkprintbackendcups.c:5988
msgctxt "printer option"
msgid "Printer Profile"
msgstr "نمایهٔ چاپگر"
#. TRANSLATORS: this is when color profile information is unavailable
-#: modules/printbackends/gtkprintbackendcups.c:6030
+#: modules/printbackends/gtkprintbackendcups.c:5995
msgctxt "printer option value"
msgid "Unavailable"
msgstr "خارج از دسترس"
-#: modules/printbackends/gtkprintbackendfile.c:234
+#: modules/printbackends/gtkprintbackendfile.c:235
msgid "output"
msgstr "خروجی"
-#: modules/printbackends/gtkprintbackendfile.c:511
+#: modules/printbackends/gtkprintbackendfile.c:507
msgid "Print to File"
msgstr "چاپ در پرونده"
-#: modules/printbackends/gtkprintbackendfile.c:637
+#: modules/printbackends/gtkprintbackendfile.c:633
msgid "PDF"
msgstr "PDF"
-#: modules/printbackends/gtkprintbackendfile.c:637
+#: modules/printbackends/gtkprintbackendfile.c:633
msgid "PostScript"
msgstr "پست‌اسکریپت"
-#: modules/printbackends/gtkprintbackendfile.c:637
+#: modules/printbackends/gtkprintbackendfile.c:633
msgid "SVG"
msgstr "SVG"
-#: modules/printbackends/gtkprintbackendfile.c:650
+#: modules/printbackends/gtkprintbackendfile.c:646
msgid "Pages per _sheet:"
msgstr "تعداد صÙحات در _برگه:"
-#: modules/printbackends/gtkprintbackendfile.c:710
+#: modules/printbackends/gtkprintbackendfile.c:706
msgid "File"
msgstr "پرونده"
-#: modules/printbackends/gtkprintbackendfile.c:720
+#: modules/printbackends/gtkprintbackendfile.c:716
msgid "_Output format"
msgstr "_قالب خروجی"
-#: modules/printbackends/gtkprintbackendlpr.c:377
+#: modules/printbackends/gtkprintbackendlpr.c:372
msgid "Print to LPR"
msgstr "چاپ به صورت LPR"
-#: modules/printbackends/gtkprintbackendlpr.c:406
+#: modules/printbackends/gtkprintbackendlpr.c:401
msgid "Pages Per Sheet"
msgstr "تعداد صÙحات در برگه"
-#: modules/printbackends/gtkprintbackendlpr.c:412
+#: modules/printbackends/gtkprintbackendlpr.c:407
msgid "Command Line"
msgstr "خط Ùرمان"
#. TRANSLATORS: when we're running an old CUPS, and
#. * it hasn't registered the device with colord
-#: modules/printbackends/gtkprintercups.c:273
+#: modules/printbackends/gtkprintercups.c:272
msgid "Color management unavailable"
msgstr "مدیریت رنگ موجود نیست"
#. TRANSLATORS: when there is no color profile available
-#: modules/printbackends/gtkprintercups.c:285
+#: modules/printbackends/gtkprintercups.c:284
msgid "No profile available"
msgstr "مجموعه تنظیماتی موجود نیست"
#. TRANSLATORS: when the color profile has no title
-#: modules/printbackends/gtkprintercups.c:296
+#: modules/printbackends/gtkprintercups.c:295
msgid "Unspecified profile"
msgstr "مجموعه تنطیمات نامشخص"
@@ -7003,7 +7000,7 @@ msgstr ""
"\n"
"دستورها:\n"
" validate تصدیق پرونده\n"
-" simplify ساده‌سازی پرونده\n"
+" simplify ساده سازی پرونده\n"
" enumerate Ùهرست کردن تمام اشیای نام‌دار\n"
" preview پیش‌نمایش پرونده\n"
"\n"
@@ -7096,7 +7093,7 @@ msgstr "تبدیل از GTK 3 به GTK 4"
#: tools/gtk-builder-tool-simplify.c:2370
msgid "Simplify the file."
-msgstr "ساده‌سازی پرونده."
+msgstr "ساده سازی پرونده."
#: tools/gtk-builder-tool-simplify.c:2383
#, c-format
@@ -7106,7 +7103,7 @@ msgstr "هیچ پروندهٔ ‪.ui‬ ای مشخّص نشده\n"
#: tools/gtk-builder-tool-simplify.c:2389
#, c-format
msgid "Can only simplify a single .ui file without --replace\n"
-msgstr "تنها می‌تواند یک تک‌پروندهٔ ‪.ui‬ را بدون ‪--replace‬ ساده‌سازی کند\n"
+msgstr "تنها می‌تواند یک تک‌پروندهٔ ‪.ui‬ را بدون ‪--replace‬ ساده سازی کند\n"
#: tools/gtk-builder-tool-validate.c:168
msgid "Validate the file."
@@ -7276,6 +7273,12 @@ msgstr ""
"اگر به‌راستی می‌خواهید این‌جا انبارهٔ نقشکی ایجاد کنید، از ‪--ignore-theme-index‬ "
"استÙاده کنید.\n"
+#~ msgid "GL rendering is disabled"
+#~ msgstr "پرداخت GL از کار اÙتاده"
+
+#~ msgid "Software GL"
+#~ msgstr "GL نرم‌اÙزاری"
+
# farmaan
#~ msgctxt "Font feature value"
#~ msgid "None"
diff --git a/po/ie.po b/po/ie.po
new file mode 100644
index 0000000000..342780af27
--- /dev/null
+++ b/po/ie.po
@@ -0,0 +1,7810 @@
+# kk@latin translation for gtk+.
+# Copyright (C) 2016 gtk+'s COPYRIGHT HOLDER
+# This file is distributed under the same license as the gtk+ package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gtk+ master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
+"POT-Creation-Date: 2022-12-09 06:01+0700\n"
+"PO-Revision-Date: 2022-12-10 00:16+0700\n"
+"Last-Translator: OIS <mistresssilvara@hotmail.com>\n"
+"Language-Team: kk@latin <kk@latin@li.org>\n"
+"Language: ie\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Generator: Poedit 1.8.12\n"
+
+#: gdk/broadway/gdkbroadway-server.c:135
+#, fuzzy, c-format
+msgid "Broadway display type not supported: %s"
+msgstr "Tip de file %s (%s) es ínsuportat"
+
+#: gdk/gdkclipboard.c:232
+#, fuzzy
+msgid "This clipboard cannot store data."
+msgstr "Null data in li Paperiere"
+
+#: gdk/gdkclipboard.c:287 gdk/gdkclipboard.c:785 gdk/gdkclipboard.c:1085
+#, fuzzy
+msgid "Cannot read from empty clipboard."
+msgstr "Ne successat leer un ressurse"
+
+#: gdk/gdkclipboard.c:318 gdk/gdkclipboard.c:1135 gdk/gdkdrag.c:618
+msgid "No compatible formats to transfer clipboard contents."
+msgstr ""
+
+#: gdk/gdkcontentprovider.c:106 gdk/gdkcontentproviderimpl.c:313
+#: gdk/gdkcontentproviderimpl.c:532
+#, fuzzy, c-format
+msgid "Cannot provide contents as “%sâ€"
+msgstr ""
+"Aperter li contenete del fil-sistema\n"
+"%s"
+
+#: gdk/gdkcontentprovider.c:127
+#, fuzzy, c-format
+msgid "Cannot provide contents as %s"
+msgstr ""
+"Aperter li contenete del fil-sistema\n"
+"%s"
+
+#: gdk/gdkdisplay.c:154 gdk/gdkglcontext.c:435
+msgid "The current backend does not support OpenGL"
+msgstr ""
+
+#: gdk/gdkdisplay.c:1240
+#, fuzzy
+msgid "GL support disabled via GDK_DEBUG"
+msgstr "Supporte de Vulcan es depermisset per GTK_DEBUG"
+
+#: gdk/gdkdisplay.c:1538
+msgid "No EGL configuration available"
+msgstr "Null configuration de EGL es disponibil"
+
+#: gdk/gdkdisplay.c:1546
+msgid "Failed to get EGL configurations"
+msgstr "Ne successat obtener configurationes de EGL"
+
+#: gdk/gdkdisplay.c:1576
+msgid "No EGL configuration with required features found"
+msgstr ""
+
+#: gdk/gdkdisplay.c:1583
+#, fuzzy
+msgid "No perfect EGL configuration found"
+msgstr "Null configuration de EGL es disponibil"
+
+#: gdk/gdkdisplay.c:1625
+#, fuzzy, c-format
+msgid "EGL implementation is missing extension %s"
+msgid_plural "EGL implementation is missing %2$d extensions: %1$s"
+msgstr[0] "Ãndisponibil"
+msgstr[1] "Ãndisponibil"
+
+#: gdk/gdkdisplay.c:1658
+#, fuzzy
+msgid "libEGL not available in this sandbox"
+msgstr "libEGL es índisponibil"
+
+#: gdk/gdkdisplay.c:1659
+msgid "libEGL not available"
+msgstr "libEGL es índisponibil"
+
+#: gdk/gdkdisplay.c:1669
+#, fuzzy
+msgid "Failed to create EGL display"
+msgstr "Ne successat obtener configurationes de EGL"
+
+#: gdk/gdkdisplay.c:1679
+#, fuzzy
+msgid "Could not initialize EGL display"
+msgstr "Ne successat inicialisar monitoration"
+
+#: gdk/gdkdisplay.c:1690
+#, c-format
+msgid "EGL version %d.%d is too old. GTK requires %d.%d"
+msgstr ""
+
+#: gdk/gdkdrop.c:130
+msgid "Drag’n’drop from other applications is not supported."
+msgstr ""
+
+#: gdk/gdkdrop.c:163
+msgid "No compatible formats to transfer contents."
+msgstr ""
+
+#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:604
+#, fuzzy
+msgid "No GL API allowed."
+msgstr "Contextu GL"
+
+#: gdk/gdkglcontext.c:418 gdk/win32/gdkglcontext-win32-wgl.c:611
+#: gdk/x11/gdkglcontext-glx.c:638
+#, fuzzy
+msgid "Unable to create a GL context"
+msgstr "Contextu GL"
+
+#: gdk/gdkglcontext.c:1273
+#, fuzzy
+msgid "Anything but OpenGL ES disabled via GDK_DEBUG"
+msgstr "Supporte de Vulcan es depermisset per GTK_DEBUG"
+
+#: gdk/gdkglcontext.c:1282
+#, c-format
+msgid "Application does not support %s API"
+msgstr ""
+
+#. translators: This is about OpenGL backend names, like
+#. * "Trying to use X11 GLX, but EGL is already in use"
+#: gdk/gdkglcontext.c:1814
+#, fuzzy, c-format
+msgid "Trying to use %s, but %s is already in use"
+msgstr "Li nómine «%s» es ja usat."
+
+#: gdk/gdksurface.c:1226
+msgid "Vulkan support disabled via GDK_DEBUG"
+msgstr "Supporte de Vulcan es depermisset per GTK_DEBUG"
+
+#: gdk/gdktexture.c:525
+msgid "Unknown image format."
+msgstr "Ãnconosset formate de image."
+
+#.
+#. * Translators, the strings in the “keyboard label†context are
+#. * display names for keyboard keys. Some of them have prefixes like
+#. * XF86 or ISO_ — these should be removed in the translation. Similarly,
+#. * underscores should be replaced by spaces. The prefix “KP_†stands
+#. * for “key pad†and you may want to include that in your translation.
+#. * Here are some examples of English translations:
+#. * XF86AudioMute - Audio mute
+#. * Scroll_lock - Scroll lock
+#. * KP_Space - Space (keypad)
+#.
+#: gdk/keynamesprivate.h:6843
+msgctxt "keyboard label"
+msgid "BackSpace"
+msgstr "Backspace"
+
+#: gdk/keynamesprivate.h:6844
+msgctxt "keyboard label"
+msgid "Tab"
+msgstr "Tab"
+
+#: gdk/keynamesprivate.h:6845
+msgctxt "keyboard label"
+msgid "Return"
+msgstr "Return"
+
+#: gdk/keynamesprivate.h:6846
+msgctxt "keyboard label"
+msgid "Pause"
+msgstr "Pause"
+
+#: gdk/keynamesprivate.h:6847
+msgctxt "keyboard label"
+msgid "Scroll_Lock"
+msgstr "Scroll Lock"
+
+#: gdk/keynamesprivate.h:6848
+msgctxt "keyboard label"
+msgid "Sys_Req"
+msgstr "SysRq"
+
+#: gdk/keynamesprivate.h:6849
+msgctxt "keyboard label"
+msgid "Escape"
+msgstr "Esc"
+
+#: gdk/keynamesprivate.h:6850
+#, fuzzy
+msgctxt "keyboard label"
+msgid "Multi_key"
+msgstr "multiarch"
+
+#: gdk/keynamesprivate.h:6851
+msgctxt "keyboard label"
+msgid "Home"
+msgstr "Home"
+
+#: gdk/keynamesprivate.h:6852
+msgctxt "keyboard label"
+msgid "Left"
+msgstr "A levul"
+
+#: gdk/keynamesprivate.h:6853
+msgctxt "keyboard label"
+msgid "Up"
+msgstr "Ad-supra"
+
+#: gdk/keynamesprivate.h:6854
+msgctxt "keyboard label"
+msgid "Right"
+msgstr "A dextri"
+
+#: gdk/keynamesprivate.h:6855
+msgctxt "keyboard label"
+msgid "Down"
+msgstr "Infra"
+
+#: gdk/keynamesprivate.h:6856 gtk/gtkshortcutlabel.c:213
+msgctxt "keyboard label"
+msgid "Page_Up"
+msgstr "Page Up"
+
+#: gdk/keynamesprivate.h:6857 gtk/gtkshortcutlabel.c:216
+msgctxt "keyboard label"
+msgid "Page_Down"
+msgstr "Page Down"
+
+#: gdk/keynamesprivate.h:6858
+msgctxt "keyboard label"
+msgid "End"
+msgstr "End"
+
+#: gdk/keynamesprivate.h:6859
+#, fuzzy
+msgctxt "keyboard label"
+msgid "Begin"
+msgstr "Comense:"
+
+#: gdk/keynamesprivate.h:6860
+#, fuzzy
+msgctxt "keyboard label"
+msgid "Print"
+msgstr "_Printar"
+
+#: gdk/keynamesprivate.h:6861
+msgctxt "keyboard label"
+msgid "Insert"
+msgstr "Insert"
+
+#: gdk/keynamesprivate.h:6862
+msgctxt "keyboard label"
+msgid "Num_Lock"
+msgstr "Num Lock"
+
+#. Translators: KP_ means “key pad†here
+#: gdk/keynamesprivate.h:6864
+msgctxt "keyboard label"
+msgid "KP_Space"
+msgstr "Spacie (keypad)"
+
+#: gdk/keynamesprivate.h:6865
+msgctxt "keyboard label"
+msgid "KP_Tab"
+msgstr "Tab (keypad)"
+
+#: gdk/keynamesprivate.h:6866
+msgctxt "keyboard label"
+msgid "KP_Enter"
+msgstr "PdC Enter"
+
+#: gdk/keynamesprivate.h:6867
+msgctxt "keyboard label"
+msgid "KP_Home"
+msgstr "PdC Home"
+
+#: gdk/keynamesprivate.h:6868
+msgctxt "keyboard label"
+msgid "KP_Left"
+msgstr "A levul (keypad)"
+
+#: gdk/keynamesprivate.h:6869
+#, fuzzy
+msgctxt "keyboard label"
+msgid "KP_Up"
+msgstr "PdC"
+
+#: gdk/keynamesprivate.h:6870
+msgctxt "keyboard label"
+msgid "KP_Right"
+msgstr "A dextri (keypad)"
+
+#: gdk/keynamesprivate.h:6871
+#, fuzzy
+msgctxt "keyboard label"
+msgid "KP_Down"
+msgstr "Infra"
+
+#: gdk/keynamesprivate.h:6872
+#, fuzzy
+msgctxt "keyboard label"
+msgid "KP_Page_Up"
+msgstr "PdC"
+
+#: gdk/keynamesprivate.h:6873
+#, fuzzy
+msgctxt "keyboard label"
+msgid "KP_Prior"
+msgstr "PdC"
+
+#: gdk/keynamesprivate.h:6874
+#, fuzzy
+msgctxt "keyboard label"
+msgid "KP_Page_Down"
+msgstr "Seque_nt págine"
+
+#: gdk/keynamesprivate.h:6875
+#, fuzzy
+msgctxt "keyboard label"
+msgid "KP_Next"
+msgstr "PdC"
+
+#: gdk/keynamesprivate.h:6876
+msgctxt "keyboard label"
+msgid "KP_End"
+msgstr "End (keypad)"
+
+#: gdk/keynamesprivate.h:6877
+#, fuzzy
+msgctxt "keyboard label"
+msgid "KP_Begin"
+msgstr "PdC"
+
+#: gdk/keynamesprivate.h:6878
+msgctxt "keyboard label"
+msgid "KP_Insert"
+msgstr "Ins (keypad)"
+
+#: gdk/keynamesprivate.h:6879
+msgctxt "keyboard label"
+msgid "KP_Delete"
+msgstr "Del (keypad)"
+
+#: gdk/keynamesprivate.h:6880
+msgctxt "keyboard label"
+msgid "Delete"
+msgstr "Delete"
+
+#: gdk/keynamesprivate.h:6881
+msgctxt "keyboard label"
+msgid "MonBrightnessUp"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6882
+msgctxt "keyboard label"
+msgid "MonBrightnessDown"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6883
+msgctxt "keyboard label"
+msgid "KbdBrightnessUp"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6884
+msgctxt "keyboard label"
+msgid "KbdBrightnessDown"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6885
+msgctxt "keyboard label"
+msgid "AudioMute"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6886
+msgctxt "keyboard label"
+msgid "AudioMicMute"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6887
+msgctxt "keyboard label"
+msgid "AudioLowerVolume"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6888
+msgctxt "keyboard label"
+msgid "AudioRaiseVolume"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6889
+msgctxt "keyboard label"
+msgid "AudioPlay"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6890
+msgctxt "keyboard label"
+msgid "AudioStop"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6891
+msgctxt "keyboard label"
+msgid "AudioNext"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6892
+msgctxt "keyboard label"
+msgid "AudioPrev"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6893
+msgctxt "keyboard label"
+msgid "AudioRecord"
+msgstr "Registrar audio"
+
+#: gdk/keynamesprivate.h:6894
+msgctxt "keyboard label"
+msgid "AudioPause"
+msgstr "Pausar audio"
+
+#: gdk/keynamesprivate.h:6895
+msgctxt "keyboard label"
+msgid "AudioRewind"
+msgstr "Rebobinar audio"
+
+#: gdk/keynamesprivate.h:6896
+msgctxt "keyboard label"
+msgid "AudioMedia"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6897
+msgctxt "keyboard label"
+msgid "Eject"
+msgstr "Ejecter"
+
+#: gdk/keynamesprivate.h:6898
+msgctxt "keyboard label"
+msgid "Explorer"
+msgstr "Navigator"
+
+#: gdk/keynamesprivate.h:6899
+msgctxt "keyboard label"
+msgid "Calculator"
+msgstr "Calculator"
+
+#: gdk/keynamesprivate.h:6900
+msgctxt "keyboard label"
+msgid "Mail"
+msgstr "E-post"
+
+#: gdk/keynamesprivate.h:6901
+msgctxt "keyboard label"
+msgid "WWW"
+msgstr "WWW"
+
+#: gdk/keynamesprivate.h:6902
+msgctxt "keyboard label"
+msgid "Search"
+msgstr "Serchar"
+
+#: gdk/keynamesprivate.h:6903
+msgctxt "keyboard label"
+msgid "Tools"
+msgstr "Instrumentarium"
+
+#: gdk/keynamesprivate.h:6904
+msgctxt "keyboard label"
+msgid "ScreenSaver"
+msgstr "Garda-ecran"
+
+#: gdk/keynamesprivate.h:6905
+msgctxt "keyboard label"
+msgid "Battery"
+msgstr "Batterie"
+
+#: gdk/keynamesprivate.h:6906
+msgctxt "keyboard label"
+msgid "Launch1"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6907
+msgctxt "keyboard label"
+msgid "Forward"
+msgstr "Avan"
+
+#: gdk/keynamesprivate.h:6908
+msgctxt "keyboard label"
+msgid "Back"
+msgstr "Retro"
+
+#: gdk/keynamesprivate.h:6909
+msgctxt "keyboard label"
+msgid "Sleep"
+msgstr "Dormir"
+
+#: gdk/keynamesprivate.h:6910
+msgctxt "keyboard label"
+msgid "Hibernate"
+msgstr "Hivernar"
+
+#: gdk/keynamesprivate.h:6911
+msgctxt "keyboard label"
+msgid "WLAN"
+msgstr "WLAN"
+
+#: gdk/keynamesprivate.h:6912
+msgctxt "keyboard label"
+msgid "WebCam"
+msgstr "WebCam"
+
+#: gdk/keynamesprivate.h:6913
+#, fuzzy
+msgctxt "keyboard label"
+msgid "Display"
+msgstr "Monstrar"
+
+#: gdk/keynamesprivate.h:6914
+msgctxt "keyboard label"
+msgid "TouchpadToggle"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6915
+msgctxt "keyboard label"
+msgid "WakeUp"
+msgstr ""
+
+#: gdk/keynamesprivate.h:6916
+msgctxt "keyboard label"
+msgid "Suspend"
+msgstr "Suspender"
+
+#: gdk/loaders/gdkjpeg.c:63
+#, c-format
+msgid "Error interpreting JPEG image file (%s)"
+msgstr ""
+
+#: gdk/loaders/gdkjpeg.c:192
+#, c-format
+msgid "Unsupported JPEG colorspace (%d)"
+msgstr ""
+
+#: gdk/loaders/gdkjpeg.c:201 gdk/loaders/gdkpng.c:266 gdk/loaders/gdktiff.c:453
+#, fuzzy, c-format
+#| msgid "Not enough memory"
+msgid "Not enough memory for image size %ux%u"
+msgstr "Memorie exhaustet"
+
+#: gdk/loaders/gdkpng.c:119
+#, fuzzy, c-format
+msgid "Error reading png (%s)"
+msgstr "Un errore evenit leente «%s»: %s"
+
+#: gdk/loaders/gdkpng.c:217
+#, c-format
+msgid "Unsupported depth %u in png image"
+msgstr ""
+
+#: gdk/loaders/gdkpng.c:247
+#, c-format
+msgid "Unsupported color type %u in png image"
+msgstr ""
+
+#: gdk/loaders/gdktiff.c:340
+msgid "Failed to load RGB data from TIFF file"
+msgstr ""
+
+#: gdk/loaders/gdktiff.c:383
+msgid "Could not load TIFF data"
+msgstr "Ne successat cargar data TIFF"
+
+#: gdk/loaders/gdktiff.c:465
+#, c-format
+msgid "Reading data failed at row %d"
+msgstr ""
+
+#: gdk/macos/gdkmacosclipboard.c:557 gdk/wayland/gdkclipboard-wayland.c:240
+#: gdk/wayland/gdkdrop-wayland.c:208 gdk/wayland/gdkprimary-wayland.c:336
+#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1063
+#: gdk/x11/gdkclipboard-x11.c:805 gdk/x11/gdkdrop-x11.c:235
+#, fuzzy
+msgid "No compatible transfer format found"
+msgstr "Null aparates MTP es trovat"
+
+#: gdk/macos/gdkmacosclipboard.c:643
+#, fuzzy, c-format
+msgid "Failed to decode contents with mime-type of '%s'"
+msgstr "Ne successat assignar li application «%s» por li MIME-tip «%s»."
+
+#: gdk/win32/gdkclipdrop-win32.c:721
+#, c-format
+msgid "Cannot claim clipboard ownership. OpenClipboard() timed out."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:731
+#, c-format
+msgid "Cannot claim clipboard ownership. Another process claimed it before us."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:745
+#, c-format
+msgid "Cannot claim clipboard ownership. OpenClipboard() failed: 0x%lx."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:757
+#, c-format
+msgid "Cannot claim clipboard ownership. EmptyClipboard() failed: 0x%lx."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:800
+#, c-format
+msgid "Cannot set clipboard data. OpenClipboard() timed out."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:810 gdk/win32/gdkclipdrop-win32.c:841
+#, c-format
+msgid "Cannot set clipboard data. Another process claimed clipboard ownership."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:824
+#, c-format
+msgid "Cannot set clipboard data. OpenClipboard() failed: 0x%lx."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:876
+#, c-format
+msgid "Cannot get clipboard data. GlobalLock(0x%p) failed: 0x%lx."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:887
+#, c-format
+msgid "Cannot get clipboard data. GlobalSize(0x%p) failed: 0x%lx."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:900
+#, c-format
+msgid ""
+"Cannot get clipboard data. Failed to allocate %s bytes to store the data."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:932
+#, c-format
+msgid "Cannot get clipboard data. OpenClipboard() timed out."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:942
+#, c-format
+msgid "Cannot get clipboard data. Clipboard ownership changed."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:952
+#, c-format
+msgid ""
+"Cannot get clipboard data. Clipboard data changed before we could get it."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:969
+#, c-format
+msgid "Cannot get clipboard data. OpenClipboard() failed: 0x%lx."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:994
+#, c-format
+msgid "Cannot get clipboard data. No compatible transfer format found."
+msgstr ""
+
+#: gdk/win32/gdkclipdrop-win32.c:1004
+#, c-format
+msgid "Cannot get clipboard data. GetClipboardData() failed: 0x%lx."
+msgstr ""
+
+#: gdk/win32/gdkdrop-win32.c:949
+#, c-format
+msgid "Cannot get DnD data. GlobalLock(0x%p) failed: 0x%lx."
+msgstr ""
+
+#: gdk/win32/gdkdrop-win32.c:958
+#, c-format
+msgid "Cannot get DnD data. GlobalSize(0x%p) failed: 0x%lx."
+msgstr ""
+
+#: gdk/win32/gdkdrop-win32.c:969
+#, c-format
+msgid "Cannot get DnD data. Failed to allocate %s bytes to store the data."
+msgstr ""
+
+#: gdk/win32/gdkdrop-win32.c:1037
+#, c-format
+msgid "GDK surface 0x%p is not registered as a drop target"
+msgstr ""
+
+#: gdk/win32/gdkdrop-win32.c:1044
+#, c-format
+msgid "Target context record 0x%p has no data object"
+msgstr ""
+
+#: gdk/win32/gdkdrop-win32.c:1082
+#, c-format
+msgid "IDataObject_GetData (0x%x) failed, returning 0x%lx"
+msgstr "IDataObject_GetData (0x%x) ne successat, retrodante 0x%lx"
+
+#: gdk/win32/gdkdrop-win32.c:1114
+#, c-format
+msgid "Failed to transmute DnD data W32 format 0x%x to %p (%s)"
+msgstr ""
+
+#: gdk/win32/gdkglcontext-win32-wgl.c:276
+#: gdk/win32/gdkglcontext-win32-wgl.c:293
+#, fuzzy
+msgid "No GL implementation is available"
+msgstr "Version de GL"
+
+#: gdk/win32/gdkglcontext-win32-wgl.c:577
+msgid "No available configurations for the given pixel format"
+msgstr ""
+
+#: gdk/win32/gdkhdataoutputstream-win32.c:63
+#, fuzzy
+msgid "writing a closed stream"
+msgstr "%@ fluvie a %@:%@"
+
+#: gdk/win32/gdkhdataoutputstream-win32.c:85
+#| msgid "GlobalAlloc() failed: "
+msgid "g_try_realloc () failed"
+msgstr "g_try_realloc () ne successat"
+
+#: gdk/win32/gdkhdataoutputstream-win32.c:93
+#: gdk/win32/gdkhdataoutputstream-win32.c:231
+msgid "GlobalReAlloc() failed: "
+msgstr "GlobalReAlloc() ne successat: "
+
+#: gdk/win32/gdkhdataoutputstream-win32.c:105
+msgid "Ran out of buffer space (buffer size is fixed)"
+msgstr ""
+
+#: gdk/win32/gdkhdataoutputstream-win32.c:203
+msgid "Can’t transmute a single handle"
+msgstr ""
+
+#: gdk/win32/gdkhdataoutputstream-win32.c:215
+#, c-format
+msgid "Failed to transmute %zu bytes of data from %s to %u"
+msgstr ""
+
+#: gdk/win32/gdkhdataoutputstream-win32.c:250
+msgid "GlobalLock() failed: "
+msgstr "GlobalLock() ne successat: "
+
+#: gdk/win32/gdkhdataoutputstream-win32.c:364
+msgid "GlobalAlloc() failed: "
+msgstr "GlobalAlloc() ne successat: "
+
+#: gdk/x11/gdkapplaunchcontext-x11.c:296
+#, c-format
+msgid "Starting “%sâ€"
+msgstr "Startante «%s»"
+
+#: gdk/x11/gdkapplaunchcontext-x11.c:309
+#, c-format
+msgid "Opening “%sâ€"
+msgstr "Apertente «%s»"
+
+#: gdk/x11/gdkapplaunchcontext-x11.c:314
+#, c-format
+msgid "Opening %d Item"
+msgid_plural "Opening %d Items"
+msgstr[0] "Apertente %d element"
+msgstr[1] "Apertente %d elementes"
+
+#: gdk/x11/gdkclipboard-x11.c:475
+msgid "Clipboard manager could not store selection."
+msgstr ""
+
+#: gdk/x11/gdkclipboard-x11.c:655
+msgid "Cannot store clipboard. No clipboard manager is active."
+msgstr ""
+
+#: gdk/x11/gdkglcontext-glx.c:754
+#, fuzzy
+msgid "No GLX configurations available"
+msgstr "GLX es ínsupportat"
+
+#: gdk/x11/gdkglcontext-glx.c:827
+msgid "No GLX configuration with required features found"
+msgstr ""
+
+#: gdk/x11/gdkglcontext-glx.c:901
+msgid "GLX is not supported"
+msgstr "GLX es ínsupportat"
+
+#: gdk/x11/gdkselectioninputstream-x11.c:469
+#, c-format
+msgid "Format %s not supported"
+msgstr "Formate %s es ínsupportat"
+
+#: gdk/x11/gdktextlistconverter-x11.c:65 gdk/x11/gdktextlistconverter-x11.c:105
+#, fuzzy
+msgid "Not enough space in destination"
+msgstr ""
+"Ne hay suficent spacie in li destination. Ples provar deleter quelc files "
+"por liberar spacie."
+
+#: gdk/x11/gdktextlistconverter-x11.c:91 gdk/x11/gdktextlistconverter-x11.c:195
+msgid "Need complete input to do conversion"
+msgstr ""
+
+#: gdk/x11/gdktextlistconverter-x11.c:216
+#: gdk/x11/gdktextlistconverter-x11.c:250
+#, fuzzy
+msgid "Invalid byte sequence in conversion input"
+msgstr "Ãnvalid sequentie de octetes in li intrada de conversion"
+
+#: gdk/x11/gdktextlistconverter-x11.c:242
+msgid "Invalid formats in compound text conversion."
+msgstr ""
+
+#: gdk/x11/gdktextlistconverter-x11.c:259
+#, c-format
+msgid "Unsupported encoding “%sâ€"
+msgstr "Ãnsupportat codification «%s»"
+
+#: gsk/gl/gskglrenderer.c:132
+#, c-format
+msgid "This GLES %d.%d implementation does not support half-float vertex data"
+msgstr ""
+
+#: gtk/a11y/gtkatspiaction.c:239
+msgctxt "accessibility"
+msgid "Click"
+msgstr "Far un clic"
+
+#: gtk/a11y/gtkatspiaction.c:240
+msgctxt "accessibility"
+msgid "Clicks the button"
+msgstr "Clicca li buton"
+
+#: gtk/a11y/gtkatspiaction.c:290
+msgctxt "accessibility"
+msgid "Toggle"
+msgstr "Alterar"
+
+#: gtk/a11y/gtkatspiaction.c:291
+#, fuzzy
+msgctxt "accessibility"
+msgid "Toggles the switch"
+msgstr "Monstrar o celar li panel de ligamentes"
+
+#: gtk/a11y/gtkatspiaction.c:371
+msgctxt "accessibility"
+msgid "Select"
+msgstr "Selecter"
+
+#: gtk/a11y/gtkatspiaction.c:372
+msgctxt "accessibility"
+msgid "Selects the color"
+msgstr "Selecte li color"
+
+#: gtk/a11y/gtkatspiaction.c:379 gtk/a11y/gtkatspiaction.c:439
+#: gtk/a11y/gtkatspiaction.c:495 gtk/a11y/gtkatspiaction.c:603
+#: gtk/a11y/gtkatspiaction.c:690
+msgctxt "accessibility"
+msgid "Activate"
+msgstr "Activar"
+
+#: gtk/a11y/gtkatspiaction.c:380
+msgctxt "accessibility"
+msgid "Activates the color"
+msgstr "Activa li color"
+
+#: gtk/a11y/gtkatspiaction.c:387
+msgctxt "accessibility"
+msgid "Customize"
+msgstr "Personalisar"
+
+#: gtk/a11y/gtkatspiaction.c:388
+msgctxt "accessibility"
+msgid "Customizes the color"
+msgstr "Personalisa li color"
+
+#: gtk/a11y/gtkatspiaction.c:440
+msgctxt "accessibility"
+msgid "Activates the expander"
+msgstr "Activa li expander"
+
+#: gtk/a11y/gtkatspiaction.c:496 gtk/a11y/gtkatspiaction.c:604
+#: gtk/a11y/gtkatspiaction.c:691
+msgctxt "accessibility"
+msgid "Activates the entry"
+msgstr "Activar li element"
+
+#: gtk/a11y/gtkatspiaction.c:503
+#, fuzzy
+msgctxt "accessibility"
+msgid "Activate primary icon"
+msgstr "Primari"
+
+#: gtk/a11y/gtkatspiaction.c:504
+#, fuzzy
+msgctxt "accessibility"
+msgid "Activates the primary icon of the entry"
+msgstr "Activar li element"
+
+#: gtk/a11y/gtkatspiaction.c:511
+#, fuzzy
+#| msgctxt "Action description"
+#| msgid "Activates the color"
+msgctxt "accessibility"
+msgid "Activate secondary icon"
+msgstr "Activar"
+
+#: gtk/a11y/gtkatspiaction.c:512
+#, fuzzy
+msgctxt "accessibility"
+msgid "Activates the secondary icon of the entry"
+msgstr "Activar li element"
+
+#: gtk/a11y/gtkatspiaction.c:611
+#, fuzzy
+msgctxt "accessibility"
+msgid "Peek"
+msgstr "Regardar li Pupitre"
+
+#: gtk/a11y/gtkatspiaction.c:612
+#, fuzzy
+msgctxt "accessibility"
+msgid "Shows the contents of the password entry"
+msgstr "Un contrasigne por intrar li chambre"
+
+#: gtk/a11y/gtkatspiaction.c:698
+msgctxt "accessibility"
+msgid "Clear"
+msgstr "Vacuar"
+
+#: gtk/a11y/gtkatspiaction.c:699
+#, fuzzy
+msgctxt "accessibility"
+msgid "Clears the contents of the entry"
+msgstr "Element"
+
+#: gtk/a11y/gtkatspiroot.c:256
+msgctxt "accessibility"
+msgid "application"
+msgstr "application"
+
+#: gtk/css/gtkcssdataurl.c:69
+#, fuzzy, c-format
+msgid "Not a data: URL"
+msgstr "Null data"
+
+#: gtk/css/gtkcssdataurl.c:82
+#, fuzzy, c-format
+msgid "Malformed data: URL"
+msgstr "Li data serialisat es corruptet"
+
+#: gtk/css/gtkcssdataurl.c:140
+#, fuzzy, c-format
+msgid "Could not unescape string"
+msgstr "<catene>"
+
+#: gtk/gtkaboutdialog.c:124 gtk/ui/gtkaboutdialog.ui:163
+msgid "License"
+msgstr "Licentie"
+
+#: gtk/gtkaboutdialog.c:125
+msgid "Custom License"
+msgstr "Personalisat licentie"
+
+#: gtk/gtkaboutdialog.c:126
+msgid "GNU General Public License, version 2 or later"
+msgstr "GNU General Public License, version 2 or later"
+
+#: gtk/gtkaboutdialog.c:127
+msgid "GNU General Public License, version 3 or later"
+msgstr "GNU General Public License, version 3 or later"
+
+#: gtk/gtkaboutdialog.c:128
+msgid "GNU Lesser General Public License, version 2.1 or later"
+msgstr "GNU Lesser General Public License, version 2.1 or later"
+
+#: gtk/gtkaboutdialog.c:129
+msgid "GNU Lesser General Public License, version 3 or later"
+msgstr "GNU Lesser General Public License, version 3 or later"
+
+#: gtk/gtkaboutdialog.c:130
+msgid "BSD 2-Clause License"
+msgstr "BSD 2-Clause License"
+
+#: gtk/gtkaboutdialog.c:131
+msgid "The MIT License (MIT)"
+msgstr "Li licentie MIT (MIT)"
+
+#: gtk/gtkaboutdialog.c:132
+msgid "Artistic License 2.0"
+msgstr "Licentie artistic 2.0"
+
+#: gtk/gtkaboutdialog.c:133
+msgid "GNU General Public License, version 2 only"
+msgstr "GNU General Public License, solmen version 2"
+
+#: gtk/gtkaboutdialog.c:134
+msgid "GNU General Public License, version 3 only"
+msgstr "GNU General Public License, solmen version 3"
+
+#: gtk/gtkaboutdialog.c:135
+msgid "GNU Lesser General Public License, version 2.1 only"
+msgstr "GNU Lesser General Public License, version 2.1 only"
+
+#: gtk/gtkaboutdialog.c:136
+msgid "GNU Lesser General Public License, version 3 only"
+msgstr "GNU Lesser General Public License, version 3 only"
+
+#: gtk/gtkaboutdialog.c:137
+msgid "GNU Affero General Public License, version 3 or later"
+msgstr "GNU Affero General Public License, version 3 or later"
+
+#: gtk/gtkaboutdialog.c:138
+msgid "GNU Affero General Public License, version 3 only"
+msgstr "GNU Affero General Public License, version 3 only"
+
+#: gtk/gtkaboutdialog.c:139
+msgid "BSD 3-Clause License"
+msgstr "BSD 3-Clause License"
+
+#: gtk/gtkaboutdialog.c:140
+msgid "Apache License, Version 2.0"
+msgstr "Apache License, Version 2.0"
+
+#: gtk/gtkaboutdialog.c:141
+#| msgid "Artistic License 2.0"
+msgid "Mozilla Public License 2.0"
+msgstr "Mozilla Public License 2.0"
+
+#: gtk/gtkaboutdialog.c:937
+msgid "Website"
+msgstr "Website"
+
+#: gtk/gtkaboutdialog.c:973 gtk/ui/gtkapplication-quartz.ui:6
+#, c-format
+msgid "About %s"
+msgstr "Pri %s"
+
+#: gtk/gtkaboutdialog.c:2074
+msgid "Created by"
+msgstr "Creat de"
+
+#: gtk/gtkaboutdialog.c:2077
+msgid "Documented by"
+msgstr "Documentat de"
+
+#: gtk/gtkaboutdialog.c:2087
+msgid "Translated by"
+msgstr "Traductet de"
+
+#: gtk/gtkaboutdialog.c:2092
+msgid "Design by"
+msgstr "Dessin de"
+
+#. Translators: this is the license preamble; the string at the end
+#. * contains the name of the license as link text.
+#.
+#: gtk/gtkaboutdialog.c:2257
+#, c-format
+msgid ""
+"This program comes with absolutely no warranty.\n"
+"See the <a href=\"%s\">%s</a> for details."
+msgstr ""
+
+#. This is the text that should appear next to menu accelerators
+#. * that use the shift key. If the text on this key isn't typically
+#. * translated on keyboards used for your language, don't translate
+#. * this.
+#.
+#: gtk/gtkaccelgroup.c:837 gtk/gtkshortcutlabel.c:101
+#: gtk/gtkshortcutlabel.c:137
+msgctxt "keyboard label"
+msgid "Shift"
+msgstr "Shift"
+
+#. This is the text that should appear next to menu accelerators
+#. * that use the control key. If the text on this key isn't typically
+#. * translated on keyboards used for your language, don't translate
+#. * this.
+#.
+#: gtk/gtkaccelgroup.c:856 gtk/gtkshortcutlabel.c:104
+#: gtk/gtkshortcutlabel.c:139
+msgctxt "keyboard label"
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#. This is the text that should appear next to menu accelerators
+#. * that use the alt key. If the text on this key isn't typically
+#. * translated on keyboards used for your language, don't translate
+#. * this.
+#.
+#: gtk/gtkaccelgroup.c:875 gtk/gtkshortcutlabel.c:107
+#: gtk/gtkshortcutlabel.c:141
+msgctxt "keyboard label"
+msgid "Alt"
+msgstr "Alt"
+
+#. This is the text that should appear next to menu accelerators
+#. * that use the super key. If the text on this key isn't typically
+#. * translated on keyboards used for your language, don't translate
+#. * this.
+#.
+#: gtk/gtkaccelgroup.c:893 gtk/gtkshortcutlabel.c:113
+#: gtk/gtkshortcutlabel.c:143
+msgctxt "keyboard label"
+msgid "Super"
+msgstr "Super"
+
+#. This is the text that should appear next to menu accelerators
+#. * that use the hyper key. If the text on this key isn't typically
+#. * translated on keyboards used for your language, don't translate
+#. * this.
+#.
+#: gtk/gtkaccelgroup.c:907 gtk/gtkshortcutlabel.c:116
+#: gtk/gtkshortcutlabel.c:145
+msgctxt "keyboard label"
+msgid "Hyper"
+msgstr "Hyper"
+
+#. This is the text that should appear next to menu accelerators
+#. * that use the meta key. If the text on this key isn't typically
+#. * translated on keyboards used for your language, don't translate
+#. * this.
+#.
+#: gtk/gtkaccelgroup.c:922 gtk/gtkshortcutlabel.c:110
+#: gtk/gtkshortcutlabel.c:147
+msgctxt "keyboard label"
+msgid "Meta"
+msgstr "Meta"
+
+#. Translators: "KP" means "numeric key pad". This string will
+#. * be used in accelerators such as "Ctrl+Shift+KP 1" in menus,
+#. * and therefore the translation needs to be very short.
+#.
+#: gtk/gtkaccelgroup.c:942
+msgctxt "keyboard label"
+msgid "KP"
+msgstr "PdC"
+
+#: gtk/gtkaccelgroup.c:949
+msgctxt "keyboard label"
+msgid "Space"
+msgstr "Spacie"
+
+#: gtk/gtkaccelgroup.c:952 gtk/gtkshortcutlabel.c:172
+msgctxt "keyboard label"
+msgid "Backslash"
+msgstr "Caracter \\"
+
+#: gtk/gtkaccessible.c:558
+#, fuzzy
+msgctxt "accessibility"
+msgid "alert"
+msgstr "Alarm"
+
+#: gtk/gtkaccessible.c:559
+#, fuzzy
+msgctxt "accessibility"
+msgid "alert dialog"
+msgstr "Alarm"
+
+#: gtk/gtkaccessible.c:560
+msgctxt "accessibility"
+msgid "banner"
+msgstr ""
+
+#: gtk/gtkaccessible.c:561
+msgctxt "accessibility"
+msgid "button"
+msgstr "buton"
+
+#: gtk/gtkaccessible.c:562
+#, fuzzy
+#| msgid "Location"
+msgctxt "accessibility"
+msgid "caption"
+msgstr "Titul:"
+
+#: gtk/gtkaccessible.c:563
+msgctxt "accessibility"
+msgid "cell"
+msgstr "cellul"
+
+#: gtk/gtkaccessible.c:564
+msgctxt "accessibility"
+msgid "checkbox"
+msgstr ""
+
+#: gtk/gtkaccessible.c:565
+msgctxt "accessibility"
+msgid "column header"
+msgstr "cap de columne"
+
+#: gtk/gtkaccessible.c:566
+#, fuzzy
+msgctxt "accessibility"
+msgid "combo box"
+msgstr "Dialog"
+
+#: gtk/gtkaccessible.c:567
+msgctxt "accessibility"
+msgid "command"
+msgstr "comande"
+
+#: gtk/gtkaccessible.c:568
+msgctxt "accessibility"
+msgid "composite"
+msgstr "composit"
+
+#: gtk/gtkaccessible.c:569
+msgctxt "accessibility"
+msgid "dialog"
+msgstr "dialog"
+
+#: gtk/gtkaccessible.c:570
+msgctxt "accessibility"
+msgid "document"
+msgstr "document"
+
+#: gtk/gtkaccessible.c:571
+#, fuzzy
+msgctxt "accessibility"
+msgid "feed"
+msgstr "Feed"
+
+#: gtk/gtkaccessible.c:572
+msgctxt "accessibility"
+msgid "form"
+msgstr "formul"
+
+#: gtk/gtkaccessible.c:573
+msgctxt "accessibility"
+msgid "generic"
+msgstr "géneric"
+
+#: gtk/gtkaccessible.c:574
+msgctxt "accessibility"
+msgid "grid"
+msgstr "grille"
+
+#: gtk/gtkaccessible.c:575
+#, fuzzy
+msgctxt "accessibility"
+msgid "grid cell"
+msgstr "grille"
+
+#: gtk/gtkaccessible.c:576
+msgctxt "accessibility"
+msgid "group"
+msgstr "gruppe"
+
+#: gtk/gtkaccessible.c:577
+msgctxt "accessibility"
+msgid "heading"
+msgstr "rubrica"
+
+#: gtk/gtkaccessible.c:578
+msgctxt "accessibility"
+msgid "image"
+msgstr "image"
+
+#: gtk/gtkaccessible.c:579
+#, fuzzy
+msgctxt "accessibility"
+msgid "input"
+msgstr "Intrada"
+
+#: gtk/gtkaccessible.c:580
+msgctxt "accessibility"
+msgid "label"
+msgstr "etiquette"
+
+#: gtk/gtkaccessible.c:581
+msgctxt "accessibility"
+msgid "landmark"
+msgstr ""
+
+#: gtk/gtkaccessible.c:582
+#, fuzzy
+msgctxt "accessibility"
+msgid "legend"
+msgstr "C_urt legende"
+
+#: gtk/gtkaccessible.c:583
+#, fuzzy
+msgctxt "accessibility"
+msgid "link"
+msgstr "ligament"
+
+#: gtk/gtkaccessible.c:584
+msgctxt "accessibility"
+msgid "list"
+msgstr "liste"
+
+#: gtk/gtkaccessible.c:585
+#, fuzzy
+msgctxt "accessibility"
+msgid "list box"
+msgstr "Lettre-_bux"
+
+#: gtk/gtkaccessible.c:586
+#, fuzzy
+msgctxt "accessibility"
+msgid "list item"
+msgstr "Element de liste"
+
+#: gtk/gtkaccessible.c:587
+#, fuzzy
+msgctxt "accessibility"
+msgid "log"
+msgstr "Diarium"
+
+#: gtk/gtkaccessible.c:588
+#, fuzzy
+#| msgid "_Domain"
+msgctxt "accessibility"
+msgid "main"
+msgstr "Primari"
+
+#: gtk/gtkaccessible.c:589
+msgctxt "accessibility"
+msgid "marquee"
+msgstr ""
+
+#: gtk/gtkaccessible.c:590
+#, fuzzy
+msgctxt "accessibility"
+msgid "math"
+msgstr "Matematic"
+
+#: gtk/gtkaccessible.c:591
+msgctxt "accessibility"
+msgid "meter"
+msgstr "mesurette"
+
+#: gtk/gtkaccessible.c:592
+msgctxt "accessibility"
+msgid "menu"
+msgstr "menú"
+
+#: gtk/gtkaccessible.c:593
+msgctxt "accessibility"
+msgid "menu bar"
+msgstr "panel del menú"
+
+#: gtk/gtkaccessible.c:594
+msgctxt "accessibility"
+msgid "menu item"
+msgstr "element de menú"
+
+#: gtk/gtkaccessible.c:595
+#, fuzzy
+msgctxt "accessibility"
+msgid "menu item checkbox"
+msgstr "Aperter"
+
+#: gtk/gtkaccessible.c:596
+#, fuzzy
+msgctxt "accessibility"
+msgid "menu item radio"
+msgstr "Element de _menú"
+
+#: gtk/gtkaccessible.c:597
+#, fuzzy
+#| msgid "Animations"
+msgctxt "accessibility"
+msgid "navigation"
+msgstr "Navigation"
+
+#: gtk/gtkaccessible.c:598
+#, fuzzy
+msgctxt "accessibility"
+msgid "none"
+msgstr "null"
+
+#: gtk/gtkaccessible.c:599
+#, fuzzy
+msgctxt "accessibility"
+msgid "note"
+msgstr "Nota"
+
+#: gtk/gtkaccessible.c:600
+#, fuzzy
+#| msgid "Location"
+msgctxt "accessibility"
+msgid "option"
+msgstr "OPTION"
+
+#: gtk/gtkaccessible.c:601
+#, fuzzy
+#| msgid "Presentation"
+msgctxt "accessibility"
+msgid "presentation"
+msgstr "Presentation"
+
+#: gtk/gtkaccessible.c:602
+#, fuzzy
+msgctxt "accessibility"
+msgid "progress bar"
+msgstr "Barra de position"
+
+#: gtk/gtkaccessible.c:603
+#, fuzzy
+msgctxt "accessibility"
+msgid "radio"
+msgstr "Radio"
+
+#: gtk/gtkaccessible.c:604
+#, fuzzy
+msgctxt "accessibility"
+msgid "radio group"
+msgstr "Radio"
+
+#: gtk/gtkaccessible.c:605
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Orange"
+msgctxt "accessibility"
+msgid "range"
+msgstr "Range"
+
+#: gtk/gtkaccessible.c:606
+#, fuzzy
+msgctxt "accessibility"
+msgid "region"
+msgstr "Region"
+
+#: gtk/gtkaccessible.c:607
+#, fuzzy
+#| msgid "Low"
+msgctxt "accessibility"
+msgid "row"
+msgstr "_Range"
+
+#: gtk/gtkaccessible.c:608
+#, fuzzy
+msgctxt "accessibility"
+msgid "row group"
+msgstr "_Range"
+
+#: gtk/gtkaccessible.c:609
+#, fuzzy
+msgctxt "accessibility"
+msgid "row header"
+msgstr "cap-linea"
+
+#: gtk/gtkaccessible.c:610
+#, fuzzy
+msgctxt "accessibility"
+msgid "scroll bar"
+msgstr "Rular pos _tippa"
+
+#: gtk/gtkaccessible.c:611
+#, fuzzy
+#| msgid "Search"
+msgctxt "accessibility"
+msgid "search"
+msgstr "_Serchar:"
+
+#: gtk/gtkaccessible.c:612
+#, fuzzy
+#| msgid "Search"
+msgctxt "accessibility"
+msgid "search box"
+msgstr "Lettre-_bux"
+
+#: gtk/gtkaccessible.c:613
+msgctxt "accessibility"
+msgid "section"
+msgstr "section"
+
+#: gtk/gtkaccessible.c:614
+#, fuzzy
+msgctxt "accessibility"
+msgid "section head"
+msgstr "Section: "
+
+#: gtk/gtkaccessible.c:615
+#, fuzzy
+#| msgctxt "Action name"
+#| msgid "Select"
+msgctxt "accessibility"
+msgid "select"
+msgstr "Selecter"
+
+#: gtk/gtkaccessible.c:616
+msgctxt "accessibility"
+msgid "separator"
+msgstr "separator"
+
+#: gtk/gtkaccessible.c:617
+msgctxt "accessibility"
+msgid "slider"
+msgstr "glissator"
+
+#: gtk/gtkaccessible.c:618
+#, fuzzy
+msgctxt "accessibility"
+msgid "spin button"
+msgstr "Acurtar li nómines de aparates a alcun númere de caracteres."
+
+#: gtk/gtkaccessible.c:619
+msgctxt "accessibility"
+msgid "status"
+msgstr "statu"
+
+#: gtk/gtkaccessible.c:620
+#, fuzzy
+msgctxt "accessibility"
+msgid "structure"
+msgstr "Structura"
+
+#: gtk/gtkaccessible.c:621
+#, fuzzy
+msgctxt "accessibility"
+msgid "switch"
+msgstr "Cambiar"
+
+#: gtk/gtkaccessible.c:622
+msgctxt "accessibility"
+msgid "tab"
+msgstr "carte"
+
+#: gtk/gtkaccessible.c:623
+msgctxt "accessibility"
+msgid "table"
+msgstr "tabelle"
+
+#: gtk/gtkaccessible.c:624
+#, fuzzy
+msgctxt "accessibility"
+msgid "tab list"
+msgstr "Liste de cartes"
+
+#: gtk/gtkaccessible.c:625
+#, fuzzy
+msgctxt "accessibility"
+msgid "tab panel"
+msgstr "Panel de cartes"
+
+#: gtk/gtkaccessible.c:626
+#, fuzzy
+msgctxt "accessibility"
+msgid "text box"
+msgstr "Lettre-_bux"
+
+#: gtk/gtkaccessible.c:627
+#, fuzzy
+msgctxt "accessibility"
+msgid "time"
+msgstr "Hora"
+
+#: gtk/gtkaccessible.c:628
+#, fuzzy
+msgctxt "accessibility"
+msgid "timer"
+msgstr "Reverter li temporisator"
+
+#: gtk/gtkaccessible.c:629
+#, fuzzy
+msgctxt "accessibility"
+msgid "tool bar"
+msgstr "P_anel de instrumentarium"
+
+#: gtk/gtkaccessible.c:630
+#, fuzzy
+msgctxt "accessibility"
+msgid "tool tip"
+msgstr "U_tensile"
+
+#: gtk/gtkaccessible.c:631
+#, fuzzy
+msgctxt "accessibility"
+msgid "tree"
+msgstr "árbor"
+
+#: gtk/gtkaccessible.c:632
+#, fuzzy
+msgctxt "accessibility"
+msgid "tree grid"
+msgstr "Ãrbor"
+
+#: gtk/gtkaccessible.c:633
+#, fuzzy
+msgctxt "accessibility"
+msgid "tree item"
+msgstr "Ãrb&or"
+
+#: gtk/gtkaccessible.c:634
+#, fuzzy
+msgctxt "accessibility"
+msgid "widget"
+msgstr "Widget"
+
+#: gtk/gtkaccessible.c:635
+#, fuzzy
+#| msgctxt "Stock label, media"
+#| msgid "R_ewind"
+msgctxt "accessibility"
+msgid "window"
+msgstr "fenestre"
+
+#: gtk/gtkappchooserbutton.c:317
+msgid "Other application…"
+msgstr "Altri _application…"
+
+#: gtk/gtkappchooserdialog.c:204 gtk/gtkappchooserdialog.c:255
+#: gtk/ui/gtkappchooserdialog.ui:4
+msgid "Select Application"
+msgstr "Selection del application"
+
+#. Translators: %s is a filename
+#: gtk/gtkappchooserdialog.c:211
+#, c-format
+msgid "Opening “%sâ€."
+msgstr "Apertente «%s»."
+
+#: gtk/gtkappchooserdialog.c:212
+#, fuzzy, c-format
+msgid "No applications found for “%sâ€"
+msgstr "Null applicationes trovat por “%sâ€."
+
+#. Translators: %s is a file type description
+#: gtk/gtkappchooserdialog.c:217
+#, fuzzy, c-format
+msgid "Opening “%s†files."
+msgstr "Un errore evenit apertente files"
+
+#: gtk/gtkappchooserdialog.c:219
+#, c-format
+msgid "No applications found for “%s†files"
+msgstr "Null applicationes trovat por files “%sâ€"
+
+#: gtk/gtkappchooserdialog.c:421
+msgid "Failed to start GNOME Software"
+msgstr "Ne successat lansar li Programmarium de GNOME"
+
+#: gtk/gtkappchooserwidget.c:519
+msgid "Default Application"
+msgstr "Application predefinit"
+
+#: gtk/gtkappchooserwidget.c:569
+#, c-format
+msgid "No applications found for “%sâ€."
+msgstr "Null applicationes trovat por “%sâ€."
+
+#: gtk/gtkappchooserwidget.c:652
+msgid "Recommended Applications"
+msgstr "Recomandat applicationes"
+
+#: gtk/gtkappchooserwidget.c:667
+msgid "Related Applications"
+msgstr "Relatet applicationes"
+
+#: gtk/gtkappchooserwidget.c:681
+msgid "Other Applications"
+msgstr "Altri applicationes"
+
+#. Translators: This is the 'reason' given when inhibiting
+#. * suspend or screen locking, and the caller hasn't specified
+#. * a reason.
+#.
+#: gtk/gtkapplication-dbus.c:706
+#, fuzzy
+msgid "Reason not specified"
+msgstr "Ãnspecificat"
+
+#: gtk/gtkbookmarksmanager.c:51
+#, fuzzy, c-format
+msgid "%s does not exist in the bookmarks list"
+msgstr "%s: %s existiert nicht, muss es jedoch."
+
+#: gtk/gtkbookmarksmanager.c:412
+#, fuzzy, c-format
+msgid "%s already exists in the bookmarks list"
+msgstr "%s: %s ja existe in li sistema de files"
+
+#: gtk/gtkbuilder-menus.c:224
+#, c-format
+msgid "Element <%s> not allowed inside <%s>"
+msgstr "Element <%s> ne es permisset al interiore de <%s>"
+
+#: gtk/gtkbuilder-menus.c:230
+#, c-format
+msgid "Element <%s> not allowed at toplevel"
+msgstr "Element <%s> ne es permisset sur li nivell superiori"
+
+#: gtk/gtkbuilder-menus.c:319
+#, fuzzy, c-format
+#| msgid "Element <%s> not allowed inside <%s>"
+msgid "Text may not appear inside <%s>"
+msgstr "Null textu es permisset in interiore de element <%s>"
+
+#. Translate to calendar:week_start:0 if you want Sunday to be the
+#. * first day of the week to calendar:week_start:1 if you want Monday
+#. * to be the first day of the week, and so on.
+#.
+#: gtk/gtkcalendar.c:656
+msgid "calendar:week_start:0"
+msgstr "calendar:week_start:1"
+
+#. Translate to calendar:YM if you want years to be displayed
+#. * before months; otherwise translate to calendar:MY.
+#. * Do *not* translate it to anything else, if it
+#. * it isn't calendar:YM or calendar:MY it will not work.
+#. *
+#. * Note that the ordering described here is logical order, which is
+#. * further influenced by BIDI ordering. Thus, if you have a default
+#. * text direction of RTL and specify "calendar:YM", then the year
+#. * will appear to the right of the month.
+#.
+#: gtk/gtkcalendar.c:807
+msgid "calendar:MY"
+msgstr "calendar:MY"
+
+#. Translators: This dictates how the year is displayed in
+#. * gtkcalendar widget. See strftime() manual for the format.
+#. * Use only ASCII in the translation.
+#. *
+#. * "%Y" is appropriate for most locales.
+#.
+#: gtk/gtkcalendar.c:1394
+msgctxt "calendar year format"
+msgid "%Y"
+msgstr "%Y"
+
+#. Translators: this defines whether the day numbers should use
+#. * localized digits or the ones used in English (0123...).
+#. *
+#. * Translate to "%Id" if you want to use localized digits, or
+#. * translate to "%d" otherwise.
+#. *
+#. * Note that translating this doesn't guarantee that you get localized
+#. * digits. That needs support from your system and locale definition
+#. * too.
+#.
+#: gtk/gtkcalendar.c:1431
+#, c-format
+msgctxt "calendar:day:digits"
+msgid "%d"
+msgstr "%d"
+
+#. Translators: this defines whether the week numbers should use
+#. * localized digits or the ones used in English (0123...).
+#. *
+#. * Translate to "%Id" if you want to use localized digits, or
+#. * translate to "%d" otherwise.
+#. * Note that translating this doesn't guarantee that you get localized
+#. * digits. That needs support from your system and locale definition
+#. * too.
+#: gtk/gtkcalendar.c:1495
+#, c-format
+msgctxt "calendar:week:digits"
+msgid "%d"
+msgstr "%d"
+
+#. This label is displayed in a treeview cell displaying
+#. * a disabled accelerator key combination.
+#.
+#: gtk/gtkcellrendereraccel.c:287
+msgctxt "Accelerator"
+msgid "Disabled"
+msgstr "Despermisset"
+
+#. This label is displayed in a treeview cell displaying
+#. * an accelerator key combination that is not valid according
+#. * to gtk_accelerator_valid().
+#.
+#: gtk/gtkcellrendereraccel.c:297
+msgctxt "Accelerator"
+msgid "Invalid"
+msgstr "Ãnvalid"
+
+#. This label is displayed in a treeview cell displaying an accelerator
+#. * when the cell is clicked to change the acelerator.
+#.
+#: gtk/gtkcellrendereraccel.c:429 gtk/gtkcellrendereraccel.c:722
+msgid "New accelerator…"
+msgstr "Nov rapid-taste…"
+
+#: gtk/gtkcellrendererprogress.c:128 gtk/gtkcellrendererprogress.c:318
+#: gtk/gtkcellrendererprogress.c:348
+#, c-format
+msgctxt "progress bar label"
+msgid "%d %%"
+msgstr "%d %%"
+
+#: gtk/gtkcolorbutton.c:179 gtk/gtkcolorbutton.c:307
+msgid "Pick a Color"
+msgstr "Selecte un color"
+
+#: gtk/gtkcolorbutton.c:496 gtk/gtkcolorchooserwidget.c:308
+#, c-format
+msgid "Red %d%%, Green %d%%, Blue %d%%, Alpha %d%%"
+msgstr "Rubi %d%%, verdi %d%%, blu %d%%, alfa %d%%"
+
+#: gtk/gtkcolorbutton.c:502 gtk/gtkcolorchooserwidget.c:314
+#, c-format
+msgid "Red %d%%, Green %d%%, Blue %d%%"
+msgstr "Rubi %d%%, verdi %d%%, blu %d%%"
+
+#: gtk/gtkcolorchooserwidget.c:371
+#, c-format
+msgid "Color: %s"
+msgstr "Color: %s"
+
+#: gtk/gtkcolorchooserwidget.c:436
+#, fuzzy
+msgctxt "Color name"
+msgid "Very Light Blue"
+msgstr "Lucid blu"
+
+#: gtk/gtkcolorchooserwidget.c:437
+#, fuzzy
+msgctxt "Color name"
+msgid "Light Blue"
+msgstr "Lucid blu"
+
+#: gtk/gtkcolorchooserwidget.c:438
+msgctxt "Color name"
+msgid "Blue"
+msgstr "Blu"
+
+#: gtk/gtkcolorchooserwidget.c:439
+#, fuzzy
+msgctxt "Color name"
+msgid "Dark Blue"
+msgstr "Obscur:"
+
+#: gtk/gtkcolorchooserwidget.c:440
+#, fuzzy
+msgctxt "Color name"
+msgid "Very Dark Blue"
+msgstr "Obscur:"
+
+#: gtk/gtkcolorchooserwidget.c:441
+#, fuzzy
+msgctxt "Color name"
+msgid "Very Light Green"
+msgstr "Lucid verdi"
+
+#: gtk/gtkcolorchooserwidget.c:442
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Light Gray"
+msgctxt "Color name"
+msgid "Light Green"
+msgstr "Lucid verdi"
+
+#: gtk/gtkcolorchooserwidget.c:443
+msgctxt "Color name"
+msgid "Green"
+msgstr "Verdi"
+
+#: gtk/gtkcolorchooserwidget.c:444
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Dark Gray"
+msgctxt "Color name"
+msgid "Dark Green"
+msgstr "&Verdi:"
+
+#: gtk/gtkcolorchooserwidget.c:445
+#, fuzzy
+msgctxt "Color name"
+msgid "Very Dark Green"
+msgstr "Obscur:"
+
+#: gtk/gtkcolorchooserwidget.c:446
+#, fuzzy
+msgctxt "Color name"
+msgid "Very Light Yellow"
+msgstr "Nigri sur clar yelb"
+
+#: gtk/gtkcolorchooserwidget.c:447
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Light Chameleon"
+msgctxt "Color name"
+msgid "Light Yellow"
+msgstr "Nigri sur clar yelb"
+
+#: gtk/gtkcolorchooserwidget.c:448
+msgctxt "Color name"
+msgid "Yellow"
+msgstr "Yelb"
+
+#: gtk/gtkcolorchooserwidget.c:449
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Dark Chameleon"
+msgctxt "Color name"
+msgid "Dark Yellow"
+msgstr "Yelb"
+
+#: gtk/gtkcolorchooserwidget.c:450
+#, fuzzy
+msgctxt "Color name"
+msgid "Very Dark Yellow"
+msgstr "Yelb"
+
+#: gtk/gtkcolorchooserwidget.c:451
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Light Orange"
+msgctxt "Color name"
+msgid "Very Light Orange"
+msgstr "Orange lucid"
+
+#: gtk/gtkcolorchooserwidget.c:452
+msgctxt "Color name"
+msgid "Light Orange"
+msgstr "Orange lucid"
+
+#: gtk/gtkcolorchooserwidget.c:453
+msgctxt "Color name"
+msgid "Orange"
+msgstr "Orange"
+
+#: gtk/gtkcolorchooserwidget.c:454
+msgctxt "Color name"
+msgid "Dark Orange"
+msgstr "Orange obscur"
+
+#: gtk/gtkcolorchooserwidget.c:455
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Dark Orange"
+msgctxt "Color name"
+msgid "Very Dark Orange"
+msgstr "Orange obscur"
+
+#: gtk/gtkcolorchooserwidget.c:456
+#, fuzzy
+msgctxt "Color name"
+msgid "Very Light Red"
+msgstr "Lucid rubi"
+
+#: gtk/gtkcolorchooserwidget.c:457
+#, fuzzy
+msgctxt "Color name"
+msgid "Light Red"
+msgstr "Lucid rubi"
+
+#: gtk/gtkcolorchooserwidget.c:458
+msgctxt "Color name"
+msgid "Red"
+msgstr "Rubi"
+
+#: gtk/gtkcolorchooserwidget.c:459
+#, fuzzy
+msgctxt "Color name"
+msgid "Dark Red"
+msgstr "Obscur:"
+
+#: gtk/gtkcolorchooserwidget.c:460
+#, fuzzy
+msgctxt "Color name"
+msgid "Very Dark Red"
+msgstr "Obscur:"
+
+#: gtk/gtkcolorchooserwidget.c:461
+#, fuzzy
+msgctxt "Color name"
+msgid "Very Light Purple"
+msgstr "Purpur"
+
+#: gtk/gtkcolorchooserwidget.c:462
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Light Plum"
+msgctxt "Color name"
+msgid "Light Purple"
+msgstr "Purpur"
+
+#: gtk/gtkcolorchooserwidget.c:463
+msgctxt "Color name"
+msgid "Purple"
+msgstr "Purpur"
+
+#: gtk/gtkcolorchooserwidget.c:464
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Dark Plum"
+msgctxt "Color name"
+msgid "Dark Purple"
+msgstr "Purpur"
+
+#: gtk/gtkcolorchooserwidget.c:465
+#, fuzzy
+msgctxt "Color name"
+msgid "Very Dark Purple"
+msgstr "Purpur"
+
+#: gtk/gtkcolorchooserwidget.c:466
+#, fuzzy
+msgctxt "Color name"
+msgid "Very Light Brown"
+msgstr "Brun"
+
+#: gtk/gtkcolorchooserwidget.c:467
+#, fuzzy
+#| msgctxt "output-bin"
+#| msgid "Right Bin"
+msgctxt "Color name"
+msgid "Light Brown"
+msgstr "Brun"
+
+#: gtk/gtkcolorchooserwidget.c:468
+msgctxt "Color name"
+msgid "Brown"
+msgstr "Brun"
+
+#: gtk/gtkcolorchooserwidget.c:469
+#, fuzzy
+msgctxt "Color name"
+msgid "Dark Brown"
+msgstr "Brun"
+
+#: gtk/gtkcolorchooserwidget.c:470
+#, fuzzy
+msgctxt "Color name"
+msgid "Very Dark Brown"
+msgstr "Brun"
+
+#: gtk/gtkcolorchooserwidget.c:471
+msgctxt "Color name"
+msgid "White"
+msgstr "Blanc"
+
+#: gtk/gtkcolorchooserwidget.c:472
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Light Gray"
+msgctxt "Color name"
+msgid "Light Gray 1"
+msgstr "Lucid gris"
+
+#: gtk/gtkcolorchooserwidget.c:473
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Light Gray"
+msgctxt "Color name"
+msgid "Light Gray 2"
+msgstr "Lucid gris"
+
+#: gtk/gtkcolorchooserwidget.c:474
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Light Gray"
+msgctxt "Color name"
+msgid "Light Gray 3"
+msgstr "Lucid gris"
+
+#: gtk/gtkcolorchooserwidget.c:475
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Light Gray"
+msgctxt "Color name"
+msgid "Light Gray 4"
+msgstr "Lucid gris"
+
+#: gtk/gtkcolorchooserwidget.c:476
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Dark Gray"
+msgctxt "Color name"
+msgid "Dark Gray 1"
+msgstr "Gris obscur"
+
+#: gtk/gtkcolorchooserwidget.c:477
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Dark Gray"
+msgctxt "Color name"
+msgid "Dark Gray 2"
+msgstr "Gris obscur"
+
+#: gtk/gtkcolorchooserwidget.c:478
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Dark Gray"
+msgctxt "Color name"
+msgid "Dark Gray 3"
+msgstr "Gris obscur"
+
+#: gtk/gtkcolorchooserwidget.c:479
+#, fuzzy
+#| msgctxt "Color name"
+#| msgid "Dark Gray"
+msgctxt "Color name"
+msgid "Dark Gray 4"
+msgstr "Gris obscur"
+
+#: gtk/gtkcolorchooserwidget.c:480
+msgctxt "Color name"
+msgid "Black"
+msgstr "Nigri"
+
+#. translators: label for the custom section in the color chooser
+#: gtk/gtkcolorchooserwidget.c:552
+msgid "Custom"
+msgstr "Personal"
+
+#: gtk/gtkcolorchooserwidget.c:585
+#, c-format
+msgid "Custom color %d: %s"
+msgstr "Personal color %d: %s"
+
+#: gtk/gtkcolorswatch.c:231
+#, fuzzy
+#| msgctxt "Action name"
+#| msgid "Customize"
+msgid "Customize"
+msgstr "Personalisar"
+
+#. Translate to the default units to use for presenting
+#. * lengths to the user. Translate to default:inch if you
+#. * want inches, otherwise translate to default:mm.
+#. * Do *not* translate it to "predefinito:mm", if it
+#. * it isn't default:mm or default:inch it will not work
+#.
+#: gtk/gtkcustompaperunixdialog.c:112
+msgid "default:mm"
+msgstr "default:mm"
+
+#: gtk/gtkcustompaperunixdialog.c:318
+#, fuzzy
+msgid "Margins from Printer…"
+msgstr "Márgines:"
+
+#: gtk/gtkcustompaperunixdialog.c:348 gtk/gtkmessagedialog.c:162
+#: gtk/ui/gtkassistant.ui:40
+msgid "_Close"
+msgstr "_Cluder"
+
+#. And show the custom paper dialog
+#: gtk/gtkcustompaperunixdialog.c:402 gtk/gtkprintunixdialog.c:3016
+msgid "Manage Custom Sizes"
+msgstr "Personalisat grandores"
+
+#: gtk/gtkcustompaperunixdialog.c:466 gtk/gtkpagesetupunixdialog.c:720
+msgid "inch"
+msgstr "inch"
+
+#: gtk/gtkcustompaperunixdialog.c:468 gtk/gtkpagesetupunixdialog.c:718
+msgid "mm"
+msgstr "mm"
+
+#: gtk/gtkcustompaperunixdialog.c:625
+#, c-format
+msgid "Custom Size %d"
+msgstr "Personalisat %d"
+
+#: gtk/gtkcustompaperunixdialog.c:939
+msgid "_Width:"
+msgstr "_Largore:"
+
+#: gtk/gtkcustompaperunixdialog.c:950
+msgid "_Height:"
+msgstr "_Altore:"
+
+#: gtk/gtkcustompaperunixdialog.c:961
+msgid "Paper Size"
+msgstr "Dimension de papere"
+
+#: gtk/gtkcustompaperunixdialog.c:970
+msgid "_Top:"
+msgstr "_Alt:"
+
+#: gtk/gtkcustompaperunixdialog.c:981
+msgid "_Bottom:"
+msgstr "_Bass:"
+
+#: gtk/gtkcustompaperunixdialog.c:992
+msgid "_Left:"
+msgstr "_Levul:"
+
+#: gtk/gtkcustompaperunixdialog.c:1003
+msgid "_Right:"
+msgstr "_Dextri:"
+
+#: gtk/gtkcustompaperunixdialog.c:1039
+msgid "Paper Margins"
+msgstr "Márgines"
+
+#: gtk/gtkentry.c:3665
+msgid "Insert Emoji"
+msgstr "Inserter un emoji"
+
+#: gtk/gtkfilechooserdialog.c:549
+msgid "_Name"
+msgstr "_Nómine"
+
+#: gtk/gtkfilechoosererrorstack.c:65
+msgid "A folder cannot be called “.â€"
+msgstr "Un fólder ne posse esser nominat “.â€."
+
+#: gtk/gtkfilechoosererrorstack.c:69
+msgid "A file cannot be called “.â€"
+msgstr "Un file ne posse esser nominat “.â€."
+
+#: gtk/gtkfilechoosererrorstack.c:73
+msgid "A folder cannot be called “..â€"
+msgstr "Un fólder ne posse esser nominat “..â€."
+
+#: gtk/gtkfilechoosererrorstack.c:77
+msgid "A file cannot be called “..â€"
+msgstr "Un file ne posse esser nominat “..â€."
+
+#: gtk/gtkfilechoosererrorstack.c:81
+msgid "Folder names cannot contain “/â€"
+msgstr "Nómines de fólderes ne posse contener “/â€."
+
+#: gtk/gtkfilechoosererrorstack.c:85
+msgid "File names cannot contain “/â€"
+msgstr "Nómines de files ne posse contener “/â€."
+
+#: gtk/gtkfilechoosererrorstack.c:89
+#, fuzzy
+msgid "Folder names should not begin with a space"
+msgstr "Nómines de fólder deve ne finir in un spacie"
+
+#: gtk/gtkfilechoosererrorstack.c:93
+#, fuzzy
+msgid "File names should not begin with a space"
+msgstr "Nómines de file deve ne finir in un spacie"
+
+#: gtk/gtkfilechoosererrorstack.c:97
+msgid "Folder names should not end with a space"
+msgstr "Nómines de fólder deve ne finir in un spacie"
+
+#: gtk/gtkfilechoosererrorstack.c:101
+msgid "File names should not end with a space"
+msgstr "Nómines de file deve ne finir in un spacie"
+
+#: gtk/gtkfilechoosererrorstack.c:105
+#, fuzzy
+msgid "Folder names starting with a “.†are hidden"
+msgstr "Nómines de fólder deve ne finir in un spacie"
+
+#: gtk/gtkfilechoosererrorstack.c:109
+#, fuzzy
+msgid "File names starting with a “.†are hidden"
+msgstr "in fil-nómines"
+
+#: gtk/gtkfilechoosererrorstack.c:113
+msgid "A folder with that name already exists"
+msgstr "Li fólder con ti-ci nómine ja existe"
+
+#: gtk/gtkfilechoosererrorstack.c:117
+msgid "A file with that name already exists"
+msgstr "Li file con ti-ci nómine ja existe"
+
+#: gtk/gtkfilechoosernative.c:509 gtk/gtkfilechoosernative.c:580
+#: gtk/gtkfilechooserwidget.c:1210 gtk/gtkfilechooserwidget.c:5800
+#: gtk/gtkmessagedialog.c:166 gtk/gtkmessagedialog.c:175
+#: gtk/gtkmountoperation.c:608 gtk/gtkpagesetupunixdialog.c:283
+#: gtk/gtkprintbackend.c:637 gtk/gtkprinteroptionwidget.c:721
+#: gtk/gtkprintunixdialog.c:651 gtk/gtkprintunixdialog.c:807
+#: gtk/gtkwindow.c:6152 gtk/inspector/css-editor.c:248
+#: gtk/inspector/recorder.c:1723 gtk/ui/gtkappchooserdialog.ui:45
+#: gtk/ui/gtkassistant.ui:52 gtk/ui/gtkcolorchooserdialog.ui:33
+#: gtk/ui/gtkfontchooserdialog.ui:24
+msgid "_Cancel"
+msgstr "_Annular"
+
+#: gtk/gtkfilechoosernative.c:510 gtk/gtkfilechoosernative.c:574
+#: gtk/gtkplacessidebar.c:3146 gtk/gtkplacessidebar.c:3231
+#: gtk/gtkplacesview.c:1659
+msgid "_Open"
+msgstr "_Aperter"
+
+#: gtk/gtkfilechoosernative.c:574 gtk/inspector/css-editor.c:249
+#: gtk/inspector/recorder.c:1724
+msgid "_Save"
+msgstr "_Gardar"
+
+#: gtk/gtkfilechoosernativequartz.c:339 gtk/ui/gtkfilechooserwidget.ui:346
+#, fuzzy
+msgid "Select which types of files are shown"
+msgstr "Selecte li fólder que contene files .po:"
+
+#. Translators: the first string is a path and the second string
+#. * is a hostname. Nautilus and the panel contain the same string
+#. * to translate.
+#.
+#: gtk/gtkfilechooserutils.c:362
+#, c-format
+msgid "%1$s on %2$s"
+msgstr "%1$s sur %2$s"
+
+#: gtk/gtkfilechooserwidget.c:319
+msgid "Type name of new folder"
+msgstr "Provide un nómine del nov fólder"
+
+#: gtk/gtkfilechooserwidget.c:724
+#, fuzzy
+msgid "The folder could not be created"
+msgstr ""
+"Ne successat crear li besonat fólder pro que un fólder con li sam nómine ja "
+"existe."
+
+#: gtk/gtkfilechooserwidget.c:737
+msgid "You need to choose a valid filename."
+msgstr "On deve selecter un valid nómine de file."
+
+#: gtk/gtkfilechooserwidget.c:740
+#, c-format
+msgid "Cannot create a file under %s as it is not a folder"
+msgstr ""
+
+#: gtk/gtkfilechooserwidget.c:750
+msgid "Cannot create file as the filename is too long"
+msgstr ""
+
+#: gtk/gtkfilechooserwidget.c:751
+msgid "Try using a shorter name."
+msgstr "Ples usar un plu curt nómine."
+
+#: gtk/gtkfilechooserwidget.c:761
+msgid "You may only select folders"
+msgstr "On pote selecter solmen fólderes"
+
+#: gtk/gtkfilechooserwidget.c:762
+msgid "The item that you selected is not a folder try using a different item."
+msgstr ""
+
+#: gtk/gtkfilechooserwidget.c:770
+msgid "Invalid file name"
+msgstr "Li nómine de file es ínvalid"
+
+#: gtk/gtkfilechooserwidget.c:779
+msgid "The folder contents could not be displayed"
+msgstr "Li contenete del fólder ne posse esser monstrat"
+
+#: gtk/gtkfilechooserwidget.c:787
+msgid "The file could not be deleted"
+msgstr "Li file ne posset esser deletet"
+
+#: gtk/gtkfilechooserwidget.c:795
+msgid "The file could not be moved to the Trash"
+msgstr "Li file ne posset esser movet in li Paper-corb"
+
+#: gtk/gtkfilechooserwidget.c:1206
+#, c-format
+msgid "Are you sure you want to permanently delete “%s�"
+msgstr "Esque vu vole remover «%s» permanentmen?"
+
+#: gtk/gtkfilechooserwidget.c:1209
+#, fuzzy, c-format
+msgid "If you delete an item, it will be permanently lost."
+msgstr "Si vu delete un element, it va esser perdit irrevocabilmen."
+
+#: gtk/gtkfilechooserwidget.c:1211 gtk/gtkfilechooserwidget.c:1827
+#: gtk/gtklabel.c:5652 gtk/gtktext.c:6061 gtk/gtktextview.c:8966
+msgid "_Delete"
+msgstr "_Deleter"
+
+#: gtk/gtkfilechooserwidget.c:1334
+msgid "The file could not be renamed"
+msgstr "Li file ne posse esser renominat"
+
+#: gtk/gtkfilechooserwidget.c:1594
+#, fuzzy
+msgid "Could not select file"
+msgstr "Ne successat trovar li file «%s»"
+
+#: gtk/gtkfilechooserwidget.c:1807
+msgid "_Visit File"
+msgstr "_Ear al file"
+
+#: gtk/gtkfilechooserwidget.c:1811
+msgid "_Open With File Manager"
+msgstr "_Aperter per gerentiator de files"
+
+#: gtk/gtkfilechooserwidget.c:1815
+msgid "_Copy Location"
+msgstr "Copiar li _localisation"
+
+#: gtk/gtkfilechooserwidget.c:1819
+msgid "_Add to Bookmarks"
+msgstr "Adjunter un _marca-págines"
+
+#: gtk/gtkfilechooserwidget.c:1823 gtk/gtkplacessidebar.c:2310
+#: gtk/gtkplacessidebar.c:3267 gtk/ui/gtkfilechooserwidget.ui:465
+msgid "_Rename"
+msgstr "_Renominar"
+
+#: gtk/gtkfilechooserwidget.c:1831
+msgid "_Move to Trash"
+msgstr "_Mover in li Paper-corb"
+
+#: gtk/gtkfilechooserwidget.c:1840
+msgid "Show _Hidden Files"
+msgstr "Revelar c_elat files"
+
+#: gtk/gtkfilechooserwidget.c:1844
+msgid "Show _Size Column"
+msgstr "Monstrar _grandores"
+
+#: gtk/gtkfilechooserwidget.c:1848
+#, fuzzy
+#| msgid "Show _Size Column"
+msgid "Show T_ype Column"
+msgstr "T_ip de servicie:"
+
+#: gtk/gtkfilechooserwidget.c:1852
+msgid "Show _Time"
+msgstr "Monstrar _horas"
+
+#: gtk/gtkfilechooserwidget.c:1856
+#, fuzzy
+msgid "Sort _Folders Before Files"
+msgstr "Ordinar _fólderes ante files"
+
+#. this is the header for the location column in the print dialog
+#: gtk/gtkfilechooserwidget.c:2256 gtk/inspector/css-node-tree.ui:135
+#: gtk/ui/gtkfilechooserwidget.ui:186 gtk/ui/gtkprintunixdialog.ui:114
+msgid "Location"
+msgstr "Localisation"
+
+#. Label
+#: gtk/gtkfilechooserwidget.c:2363
+msgid "_Name:"
+msgstr "_Nómine:"
+
+#: gtk/gtkfilechooserwidget.c:2897 gtk/gtkfilechooserwidget.c:2911
+#, fuzzy, c-format
+msgid "Searching in %s"
+msgstr "Serchante por «%s»…"
+
+#: gtk/gtkfilechooserwidget.c:2917
+#, fuzzy
+msgid "Searching"
+msgstr "Sercha"
+
+#: gtk/gtkfilechooserwidget.c:2923
+msgid "Enter location or URL"
+msgstr "Intra un localisation o un URL"
+
+#: gtk/gtkfilechooserwidget.c:3813 gtk/gtkfilechooserwidget.c:6637
+#: gtk/ui/gtkfilechooserwidget.ui:226
+msgid "Modified"
+msgstr "Modificat"
+
+#: gtk/gtkfilechooserwidget.c:4072
+#, fuzzy, c-format
+msgid "Could not read the contents of %s"
+msgstr "%s: Anzeigenummer konnte nicht gelesen werden"
+
+#: gtk/gtkfilechooserwidget.c:4076
+#, fuzzy
+msgid "Could not read the contents of the folder"
+msgstr "Li contenete del fólder ne posse esser monstrat"
+
+#. Translators: see g_date_time_format() for details on the format
+#: gtk/gtkfilechooserwidget.c:4216 gtk/gtkfilechooserwidget.c:4259
+msgid "%H:%M"
+msgstr "%H:%M"
+
+#: gtk/gtkfilechooserwidget.c:4218 gtk/gtkfilechooserwidget.c:4261
+msgid "%l:%M %p"
+msgstr "%l:%M %p"
+
+#: gtk/gtkfilechooserwidget.c:4222
+msgid "Yesterday"
+msgstr "Yer"
+
+#: gtk/gtkfilechooserwidget.c:4230
+msgid "%-e %b"
+msgstr "%-e %b"
+
+#: gtk/gtkfilechooserwidget.c:4234
+msgid "%-e %b %Y"
+msgstr "%-e %b %Y"
+
+#: gtk/gtkfilechooserwidget.c:4323 gtk/gtkfilechooserwidget.c:4331
+msgid "Program"
+msgstr "Programma"
+
+#: gtk/gtkfilechooserwidget.c:4324
+msgid "Audio"
+msgstr "Audio"
+
+#: gtk/gtkfilechooserwidget.c:4325 gtk/gtkfontbutton.c:596
+#: gtk/inspector/visual.ui:170
+msgid "Font"
+msgstr "Fonde"
+
+#: gtk/gtkfilechooserwidget.c:4326
+msgid "Image"
+msgstr "Image"
+
+#: gtk/gtkfilechooserwidget.c:4327
+msgid "Archive"
+msgstr "Archive"
+
+#: gtk/gtkfilechooserwidget.c:4328
+#, fuzzy
+msgid "Markup"
+msgstr "Tip del marca:"
+
+#: gtk/gtkfilechooserwidget.c:4329 gtk/gtkfilechooserwidget.c:4330
+msgid "Text"
+msgstr "Textu"
+
+#: gtk/gtkfilechooserwidget.c:4332
+msgid "Video"
+msgstr "Video"
+
+#: gtk/gtkfilechooserwidget.c:4333
+msgid "Contacts"
+msgstr "Contactes"
+
+#: gtk/gtkfilechooserwidget.c:4334
+msgid "Calendar"
+msgstr "Calendare"
+
+#: gtk/gtkfilechooserwidget.c:4335
+msgid "Document"
+msgstr "Document"
+
+#: gtk/gtkfilechooserwidget.c:4336
+msgid "Presentation"
+msgstr "Presentation"
+
+#: gtk/gtkfilechooserwidget.c:4337
+msgid "Spreadsheet"
+msgstr "Folie de calcules"
+
+#: gtk/gtkfilechooserwidget.c:4368 gtk/gtkfilechooserwidget.c:4561
+msgid "Unknown"
+msgstr "Ãnconosset"
+
+#: gtk/gtkfilechooserwidget.c:4600 gtk/gtkplacessidebar.c:1027
+msgid "Home"
+msgstr "Hem"
+
+#: gtk/gtkfilechooserwidget.c:5793 gtk/gtkprintunixdialog.c:642
+#, c-format
+msgid "A file named “%s†already exists. Do you want to replace it?"
+msgstr "Un file nominat «%s» ja existe. Esque substituer it?"
+
+#: gtk/gtkfilechooserwidget.c:5796 gtk/gtkprintunixdialog.c:646
+#, c-format
+msgid ""
+"The file already exists in “%sâ€. Replacing it will overwrite its contents."
+msgstr ""
+"Li file ja existet in «%s». Si on substitue it, su contenete va esser "
+"superscrit."
+
+#: gtk/gtkfilechooserwidget.c:5801 gtk/gtkprintunixdialog.c:654
+msgid "_Replace"
+msgstr "_Substituer"
+
+#: gtk/gtkfilechooserwidget.c:5962
+msgid "You do not have access to the specified folder."
+msgstr "Vu ne have permissiones por acceder li providet fólder."
+
+#: gtk/gtkfilechooserwidget.c:6566
+#, fuzzy
+msgid "Could not send the search request"
+msgstr "Ne successat inviar li actual document"
+
+#: gtk/gtkfilechooserwidget.c:6877
+msgid "Accessed"
+msgstr "Accesset"
+
+#: gtk/gtkfontbutton.c:395
+msgid "Sans 12"
+msgstr "Sans 12"
+
+#: gtk/gtkfontbutton.c:506 gtk/gtkfontbutton.c:620
+msgid "Pick a Font"
+msgstr "Selecte un _fonde"
+
+#: gtk/gtkfontbutton.c:1323
+msgctxt "font"
+msgid "None"
+msgstr "Null"
+
+#: gtk/gtkfontchooserdialog.c:184
+#, fuzzy
+msgid "Change Font Features"
+msgstr "_Fonde…"
+
+#: gtk/gtkfontchooserwidget.c:1534
+msgctxt "Font variation axis"
+msgid "Width"
+msgstr "Largore"
+
+#: gtk/gtkfontchooserwidget.c:1535
+msgctxt "Font variation axis"
+msgid "Weight"
+msgstr "Pesa"
+
+#: gtk/gtkfontchooserwidget.c:1536
+msgctxt "Font variation axis"
+msgid "Italic"
+msgstr "Italic"
+
+#: gtk/gtkfontchooserwidget.c:1537
+msgctxt "Font variation axis"
+msgid "Slant"
+msgstr "Obliqui"
+
+#: gtk/gtkfontchooserwidget.c:1538
+#, fuzzy
+msgctxt "Font variation axis"
+msgid "Optical Size"
+msgstr "Optical dimension"
+
+#: gtk/gtkfontchooserwidget.c:2094
+msgctxt "Font feature value"
+msgid "Default"
+msgstr "Predefinit"
+
+#: gtk/gtkfontchooserwidget.c:2111
+msgctxt "Font feature value"
+msgid "Enable"
+msgstr "Activar"
+
+#: gtk/gtkfontchooserwidget.c:2439
+msgid "Default"
+msgstr "Predefinit"
+
+#: gtk/gtkfontchooserwidget.c:2501
+msgid "Ligatures"
+msgstr "Ligaturas"
+
+#: gtk/gtkfontchooserwidget.c:2502
+#, fuzzy
+#| msgctxt "paper size"
+#| msgid "US Letter Plus"
+msgid "Letter Case"
+msgstr "US _Letter"
+
+#: gtk/gtkfontchooserwidget.c:2503
+#, fuzzy
+msgid "Number Case"
+msgstr "BUXE"
+
+#: gtk/gtkfontchooserwidget.c:2504
+#, fuzzy
+msgid "Number Spacing"
+msgstr "Interspacie:"
+
+#: gtk/gtkfontchooserwidget.c:2505
+msgid "Fractions"
+msgstr "Fractiones"
+
+#: gtk/gtkfontchooserwidget.c:2506
+msgid "Style Variations"
+msgstr "Variationes de stil"
+
+#: gtk/gtkfontchooserwidget.c:2508
+msgid "Character Variations"
+msgstr "Variationes de caracter"
+
+#: gtk/gtkglarea.c:284
+msgid "OpenGL context creation failed"
+msgstr "Ne successat crear un contextu OpenGL"
+
+#: gtk/gtklabel.c:5649 gtk/gtktext.c:6049 gtk/gtktextview.c:8954
+msgid "Cu_t"
+msgstr "Exci_ser"
+
+#: gtk/gtklabel.c:5650 gtk/gtktext.c:6053 gtk/gtktextview.c:8958
+msgid "_Copy"
+msgstr "_Copiar"
+
+#: gtk/gtklabel.c:5651 gtk/gtktext.c:6057 gtk/gtktextview.c:8962
+msgid "_Paste"
+msgstr "Co_llar"
+
+#: gtk/gtklabel.c:5657 gtk/gtktext.c:6070 gtk/gtktextview.c:8987
+msgid "Select _All"
+msgstr "Select _omnicos"
+
+#: gtk/gtklabel.c:5662
+msgid "_Open Link"
+msgstr "_Aperter ligament"
+
+#: gtk/gtklabel.c:5666
+msgid "Copy _Link Address"
+msgstr "Copiar li adresse del _ligament"
+
+#: gtk/gtklinkbutton.c:255
+msgid "_Copy URL"
+msgstr "_Copiar li URL"
+
+#: gtk/gtklinkbutton.c:540
+msgid "Invalid URI"
+msgstr "Ãnvalid URI"
+
+#: gtk/gtklockbutton.c:286 gtk/ui/gtklockbutton.ui:20
+msgid "Lock"
+msgstr "Serrar"
+
+#: gtk/gtklockbutton.c:298 gtk/ui/gtklockbutton.ui:26
+msgid "Unlock"
+msgstr "Desserrar"
+
+#: gtk/gtklockbutton.c:310
+msgid ""
+"Dialog is unlocked.\n"
+"Click to prevent further changes"
+msgstr ""
+"Dialog es desserrat.\n"
+"Clic por impedir plu alterationes."
+
+#: gtk/gtklockbutton.c:322
+msgid ""
+"Dialog is locked.\n"
+"Click to make changes"
+msgstr ""
+"Dialog es serrat.\n"
+"Clic por far alterationes"
+
+#: gtk/gtklockbutton.c:334
+msgid ""
+"System policy prevents changes.\n"
+"Contact your system administrator"
+msgstr ""
+"Li politica del sistema impedi modificationes.\n"
+"Contacte vor administrator de sistema"
+
+#. Translate to default:RTL if you want your widgets
+#. * to be RTL, otherwise translate to default:LTR.
+#. * Do *not* translate it to "predefinito:LTR", if it
+#. * it isn't default:LTR or default:RTL it will not work
+#.
+#: gtk/gtkmain.c:788
+msgid "default:LTR"
+msgstr "default:LTR"
+
+#. hour:minutes:seconds
+#. Translators: This is a time format, like "9:05:02" for 9
+#. * hours, 5 minutes, and 2 seconds. You may change ":" to
+#. * the separator that your locale uses or use "%Id" instead
+#. * of "%d" if your locale uses localized digits.
+#.
+#: gtk/gtkmediacontrols.c:100
+#, c-format
+msgctxt "long time format"
+msgid "%d:%02d:%02d"
+msgstr "%d:%02d:%02d"
+
+#. -hour:minutes:seconds
+#. Translators: This is a time format, like "-9:05:02" for 9
+#. * hours, 5 minutes, and 2 seconds playback remaining. You may
+#. * change ":" to the separator that your locale uses or use
+#. * "%Id" instead of "%d" if your locale uses localized digits.
+#.
+#: gtk/gtkmediacontrols.c:108
+#, c-format
+msgctxt "long time format"
+msgid "-%d:%02d:%02d"
+msgstr "-%d:%02d:%02d"
+
+#. -minutes:seconds
+#. Translators: This is a time format, like "-5:02" for 5
+#. * minutes and 2 seconds playback remaining. You may change
+#. * ":" to the separator that your locale uses or use "%Id"
+#. * instead of "%d" if your locale uses localized digits.
+#.
+#: gtk/gtkmediacontrols.c:119
+#, c-format
+msgctxt "short time format"
+msgid "-%d:%02d"
+msgstr "-%d:%02d"
+
+#. minutes:seconds
+#. Translators: This is a time format, like "5:02" for 5
+#. * minutes and 2 seconds. You may change ":" to the
+#. * separator that your locale uses or use "%Id" instead of
+#. * "%d" if your locale uses localized digits.
+#.
+#: gtk/gtkmediacontrols.c:128
+#, c-format
+msgctxt "short time format"
+msgid "%d:%02d"
+msgstr "%d:%02d"
+
+#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176
+#: gtk/gtkprintbackend.c:638 gtk/gtkwindow.c:6153
+msgid "_OK"
+msgstr "_OK"
+
+#: gtk/gtkmessagedialog.c:170
+msgid "_No"
+msgstr "_No"
+
+#: gtk/gtkmessagedialog.c:171
+msgid "_Yes"
+msgstr "_Yes"
+
+#: gtk/gtkmountoperation.c:609
+msgid "Co_nnect"
+msgstr "Co_nexer"
+
+#: gtk/gtkmountoperation.c:675
+msgid "Connect As"
+msgstr "Connexer quam"
+
+#: gtk/gtkmountoperation.c:684
+msgid "_Anonymous"
+msgstr "_Anonim"
+
+#: gtk/gtkmountoperation.c:691
+msgid "Registered U_ser"
+msgstr "U_sator registrat"
+
+#: gtk/gtkmountoperation.c:701
+msgid "_Username"
+msgstr "Nómine de _usator"
+
+#: gtk/gtkmountoperation.c:706
+msgid "_Domain"
+msgstr "_Dominia"
+
+#: gtk/gtkmountoperation.c:715
+msgid "Volume type"
+msgstr "Tip de tom"
+
+#: gtk/gtkmountoperation.c:725
+msgid "_Hidden"
+msgstr "C_elat"
+
+#: gtk/gtkmountoperation.c:728
+msgid "_Windows system"
+msgstr "Sistema _Windows"
+
+#: gtk/gtkmountoperation.c:731
+msgid "_PIM"
+msgstr ""
+
+#: gtk/gtkmountoperation.c:737
+msgid "_Password"
+msgstr "_Contrasigne"
+
+#: gtk/gtkmountoperation.c:759
+msgid "Forget password _immediately"
+msgstr "Obl_iviar contrasigne ínmediatmen"
+
+#: gtk/gtkmountoperation.c:769
+#, fuzzy
+msgid "Remember password until you _logout"
+msgstr "Memorar _li contrasigne til cluder li session"
+
+#: gtk/gtkmountoperation.c:780
+msgid "Remember _forever"
+msgstr "Memorar pe_rmanentmen"
+
+#: gtk/gtkmountoperation.c:1206
+#, c-format
+msgid "Unknown Application (PID %d)"
+msgstr "Ãnconosset application (PID %d)"
+
+#: gtk/gtkmountoperation.c:1405
+#, fuzzy, c-format
+msgid "Unable to end process"
+msgstr "_Finir li processu"
+
+#: gtk/gtkmountoperation.c:1435
+msgid "_End Process"
+msgstr "T_erminar li processu"
+
+#: gtk/gtkmountoperation-stub.c:61
+#, fuzzy, c-format
+msgid "Cannot kill process with PID %d. Operation is not implemented."
+msgstr ""
+"Ne successat terminar li processu con PID %d per signal %d.\n"
+"%s"
+
+#. translators: this string is a name for the 'less' command
+#: gtk/gtkmountoperation-x11.c:984
+msgid "Terminal Pager"
+msgstr "Paginator por Terminal"
+
+#: gtk/gtkmountoperation-x11.c:985
+msgid "Top Command"
+msgstr "Comande top"
+
+#: gtk/gtkmountoperation-x11.c:986
+msgid "Bourne Again Shell"
+msgstr "BASH"
+
+#: gtk/gtkmountoperation-x11.c:987
+msgid "Bourne Shell"
+msgstr "Shell de Bourne"
+
+#: gtk/gtkmountoperation-x11.c:988
+msgid "Z Shell"
+msgstr "Z-shell"
+
+#: gtk/gtkmountoperation-x11.c:1085
+#, fuzzy, c-format
+msgid "Cannot end process with PID %d: %s"
+msgstr ""
+"Ne successat terminar li processu con PID %d per signal %d.\n"
+"%s"
+
+#: gtk/gtknomediafile.c:48
+msgid "GTK could not find a media module. Check your installation."
+msgstr ""
+
+#: gtk/gtknotebook.c:1491
+msgid "Tab list"
+msgstr "Liste de cartes"
+
+#: gtk/gtknotebook.c:3214
+msgid "Previous tab"
+msgstr "Precedent carte"
+
+#: gtk/gtknotebook.c:3218
+msgid "Next tab"
+msgstr "Sequent carte"
+
+#: gtk/gtknotebook.c:4038
+msgid "Tab"
+msgstr "Carte"
+
+#: gtk/gtknotebook.c:4336 gtk/gtknotebook.c:6544
+#, c-format
+msgid "Page %u"
+msgstr "Págine %u"
+
+#: gtk/gtkpagesetup.c:609 gtk/gtkpapersize.c:942 gtk/gtkpapersize.c:982
+#, fuzzy
+msgid "Not a valid page setup file"
+msgstr "Formate de págine…"
+
+#: gtk/gtkpagesetupunixdialog.c:201 gtk/gtkprintunixdialog.c:736
+#, fuzzy
+msgid "Manage Custom Sizes…"
+msgstr "Personalisat grandores"
+
+#: gtk/gtkpagesetupunixdialog.c:284 gtk/ui/gtkassistant.ui:98
+msgid "_Apply"
+msgstr "_Applicar"
+
+#: gtk/gtkpagesetupunixdialog.c:318 gtk/gtkpagesetupunixdialog.c:570
+msgid "Any Printer"
+msgstr "Alquel printator"
+
+#: gtk/gtkpagesetupunixdialog.c:319
+msgid "For portable documents"
+msgstr "Por documentes portabil"
+
+#: gtk/gtkpagesetupunixdialog.c:738
+#, c-format
+msgid ""
+"Margins:\n"
+" Left: %s %s\n"
+" Right: %s %s\n"
+" Top: %s %s\n"
+" Bottom: %s %s"
+msgstr ""
+
+#: gtk/gtkpagesetupunixdialog.c:784 gtk/ui/gtkpagesetupunixdialog.ui:5
+#: gtk/ui/gtkprintunixdialog.ui:709
+msgid "Page Setup"
+msgstr "Formate de págine"
+
+#: gtk/gtkpasswordentry.c:173
+msgid "Hide Text"
+msgstr "Celar li textu"
+
+#: gtk/gtkpasswordentry.c:178 gtk/gtkpasswordentry.c:622
+msgid "Show Text"
+msgstr "Monstrar li textu"
+
+#: gtk/gtkpasswordentry.c:217
+msgid "Caps Lock is on"
+msgstr "Caps Lock es activ"
+
+#: gtk/gtkpasswordentry.c:698
+msgid "_Show Text"
+msgstr "Mon_strar li textu"
+
+#. translators: %s is the name of a cloud provider for files
+#: gtk/gtkplacessidebar.c:914
+#, c-format
+msgid "Open %s"
+msgstr "Aperter %s"
+
+#: gtk/gtkplacessidebar.c:1005
+msgid "Recent"
+msgstr "Recentis"
+
+#: gtk/gtkplacessidebar.c:1007
+msgid "Recent files"
+msgstr "Recent files"
+
+#: gtk/gtkplacessidebar.c:1016
+msgid "Starred"
+msgstr "Con astres"
+
+#: gtk/gtkplacessidebar.c:1018
+msgid "Starred files"
+msgstr "Files con astres"
+
+#: gtk/gtkplacessidebar.c:1029
+msgid "Open your personal folder"
+msgstr "Aperter vor fólder personal"
+
+#: gtk/gtkplacessidebar.c:1042
+msgid "Desktop"
+msgstr "Pupitre"
+
+#: gtk/gtkplacessidebar.c:1044
+msgid "Open the contents of your desktop in a folder"
+msgstr "Aperter vor Pupitre quam un fólder"
+
+#: gtk/gtkplacessidebar.c:1058
+msgid "Enter Location"
+msgstr "Intrar un localisation"
+
+#: gtk/gtkplacessidebar.c:1060
+msgid "Manually enter a location"
+msgstr "Intra un localisation manualmen"
+
+#: gtk/gtkplacessidebar.c:1070
+msgid "Trash"
+msgstr "Paper-corb"
+
+#: gtk/gtkplacessidebar.c:1072
+msgid "Open the trash"
+msgstr "Aperter li Paper-corb"
+
+#: gtk/gtkplacessidebar.c:1183 gtk/gtkplacessidebar.c:1211
+#: gtk/gtkplacessidebar.c:1411
+#, c-format
+msgid "Mount and open “%sâ€"
+msgstr "Monter e aperter «%s»"
+
+#: gtk/gtkplacessidebar.c:1306
+msgid "Open the contents of the file system"
+msgstr "Aperter li contenete del fil-sistema"
+
+#: gtk/gtkplacessidebar.c:1389
+msgid "New bookmark"
+msgstr "Nov marca-págine"
+
+#: gtk/gtkplacessidebar.c:1391
+msgid "Add a new bookmark"
+msgstr "Adjuncter un nov marca-págine"
+
+#: gtk/gtkplacessidebar.c:1456
+msgid "Other Locations"
+msgstr "Altri localisationes"
+
+#: gtk/gtkplacessidebar.c:1457
+msgid "Show other locations"
+msgstr "Monstrar altri localisationes"
+
+#: gtk/gtkplacessidebar.c:1962 gtk/gtkplacessidebar.c:2981
+#, c-format
+msgid "Unable to start “%sâ€"
+msgstr "Ne posset startar «%s»"
+
+#. Translators: This means that unlocking an encrypted storage
+#. * device failed. %s is the name of the device.
+#.
+#: gtk/gtkplacessidebar.c:1998
+#, fuzzy, c-format
+#| msgid "Opening “%sâ€."
+msgid "Error unlocking “%sâ€"
+msgstr "errore - iconv: %s -> %s\n"
+
+#: gtk/gtkplacessidebar.c:2000
+#, c-format
+msgid "Unable to access “%sâ€"
+msgstr "Ne successat acceder «%s»"
+
+#: gtk/gtkplacessidebar.c:2231
+#, fuzzy
+msgid "This name is already taken"
+msgstr "Li fólder con ti-ci nómine ja existe"
+
+#: gtk/gtkplacessidebar.c:2304 gtk/inspector/actions.ui:19
+#: gtk/inspector/css-node-tree.ui:35 gtk/inspector/prop-list.ui:24
+#: gtk/ui/gtkfilechooserwidget.ui:168 gtk/ui/gtkfilechooserwidget.ui:440
+#: gtk/ui/gtkprintunixdialog.ui:83
+msgid "Name"
+msgstr "Nómine"
+
+#: gtk/gtkplacessidebar.c:2522
+#, c-format
+msgid "Unable to unmount “%sâ€"
+msgstr "Ne successat demonter «%s»"
+
+#: gtk/gtkplacessidebar.c:2698
+#, c-format
+msgid "Unable to stop “%sâ€"
+msgstr "Ne successat stoppar «%s»"
+
+#: gtk/gtkplacessidebar.c:2727
+#, c-format
+msgid "Unable to eject “%sâ€"
+msgstr "Ne successat ejecter «%s»"
+
+#: gtk/gtkplacessidebar.c:2756 gtk/gtkplacessidebar.c:2785
+#, c-format
+msgid "Unable to eject %s"
+msgstr "Ne successat ejecter %s"
+
+#: gtk/gtkplacessidebar.c:2933
+#, fuzzy, c-format
+msgid "Unable to poll “%s†for media changes"
+msgstr "Ne posset acessar «%s»"
+
+#: gtk/gtkplacessidebar.c:3152 gtk/gtkplacessidebar.c:3239
+#: gtk/gtkplacesview.c:1663
+msgid "Open in New _Tab"
+msgstr "Aperter in nov _carte"
+
+#: gtk/gtkplacessidebar.c:3158 gtk/gtkplacessidebar.c:3248
+#: gtk/gtkplacesview.c:1668
+msgid "Open in New _Window"
+msgstr "Aperter in nov fenestre"
+
+#: gtk/gtkplacessidebar.c:3259
+msgid "_Add Bookmark"
+msgstr "_Adjuncter marca-págines"
+
+#: gtk/gtkplacessidebar.c:3263
+msgid "_Remove"
+msgstr "_Remover"
+
+#: gtk/gtkplacessidebar.c:3279 gtk/gtkplacesview.c:1693
+msgid "_Mount"
+msgstr "_Montar"
+
+#: gtk/gtkplacessidebar.c:3288 gtk/gtkplacesview.c:1682
+msgid "_Unmount"
+msgstr "_Desmontar"
+
+#: gtk/gtkplacessidebar.c:3295
+msgid "_Eject"
+msgstr "_Ejecter"
+
+#: gtk/gtkplacessidebar.c:3305
+msgid "_Detect Media"
+msgstr "_Detecter medies"
+
+#: gtk/gtkplacessidebar.c:3314
+msgid "_Start"
+msgstr "_Startar"
+
+#: gtk/gtkplacessidebar.c:3316
+msgid "_Power On"
+msgstr "_Accender"
+
+#: gtk/gtkplacessidebar.c:3317
+msgid "_Connect Drive"
+msgstr "_Conexer li unité"
+
+#: gtk/gtkplacessidebar.c:3318
+msgid "_Start Multi-disk Device"
+msgstr "_Startar li aparate multidisco"
+
+#: gtk/gtkplacessidebar.c:3319
+msgid "_Unlock Device"
+msgstr "D_esserrar li aparate"
+
+#: gtk/gtkplacessidebar.c:3329
+msgid "_Stop"
+msgstr "_Stoppar"
+
+#: gtk/gtkplacessidebar.c:3331
+#, fuzzy
+msgid "_Safely Remove Drive"
+msgstr "_Securmen remover li unité"
+
+#: gtk/gtkplacessidebar.c:3332
+msgid "_Disconnect Drive"
+msgstr "_Deconexer li unité"
+
+#: gtk/gtkplacessidebar.c:3333
+msgid "_Stop Multi-disk Device"
+msgstr "_Stoppar li aparate multidisco"
+
+#: gtk/gtkplacessidebar.c:3334
+msgid "_Lock Device"
+msgstr "S_errar li aparate"
+
+#: gtk/gtkplacessidebar.c:3823 gtk/gtkplacesview.c:1103
+msgid "Computer"
+msgstr "Computator"
+
+#: gtk/gtkplacesview.c:889
+#, fuzzy
+msgid "Searching for network locations"
+msgstr "Navigar localisationes del local rete"
+
+#: gtk/gtkplacesview.c:896
+#, fuzzy
+msgid "No network locations found"
+msgstr "Navigar localisationes del local rete"
+
+#. if it wasn't cancelled show a dialog
+#: gtk/gtkplacesview.c:1210 gtk/gtkplacesview.c:1307
+msgid "Unable to access location"
+msgstr "Ne successat acceder li localisation"
+
+#. Restore from Cancel to Connect
+#: gtk/gtkplacesview.c:1228 gtk/ui/gtkplacesview.ui:262
+msgid "Con_nect"
+msgstr "Co_nexer"
+
+#. if it wasn't cancelled show a dialog
+#: gtk/gtkplacesview.c:1367
+msgid "Unable to unmount volume"
+msgstr "Ne posset desmonter li volume"
+
+#. Allow to cancel the operation
+#: gtk/gtkplacesview.c:1459
+msgid "Cance_l"
+msgstr "Annu_llar"
+
+#: gtk/gtkplacesview.c:1606
+msgid "AppleTalk"
+msgstr "AppleTalk"
+
+#: gtk/gtkplacesview.c:1612
+msgid "File Transfer Protocol"
+msgstr "FTP"
+
+#. Translators: do not translate ftp:// and ftps://
+#: gtk/gtkplacesview.c:1614
+msgid "ftp:// or ftps://"
+msgstr "ftp:// o ftps://"
+
+#: gtk/gtkplacesview.c:1620
+#| msgid "File System"
+msgid "Network File System"
+msgstr "NFS"
+
+#: gtk/gtkplacesview.c:1626
+msgid "Samba"
+msgstr "Samba"
+
+#: gtk/gtkplacesview.c:1632
+msgid "SSH File Transfer Protocol"
+msgstr "SSH FTP"
+
+#. Translators: do not translate sftp:// and ssh://
+#: gtk/gtkplacesview.c:1634
+msgid "sftp:// or ssh://"
+msgstr "sftp:// o ssh://"
+
+#: gtk/gtkplacesview.c:1640
+msgid "WebDAV"
+msgstr "WebDAV"
+
+#. Translators: do not translate dav:// and davs://
+#: gtk/gtkplacesview.c:1642
+msgid "dav:// or davs://"
+msgstr "dav:// o davs://"
+
+#: gtk/gtkplacesview.c:1677
+msgid "_Disconnect"
+msgstr "_Desconexer"
+
+#: gtk/gtkplacesview.c:1688
+msgid "_Connect"
+msgstr "_Connexer"
+
+#: gtk/gtkplacesview.c:1905
+#, fuzzy
+msgid "Unable to get remote server location"
+msgstr "Ne posset acesser li localisation"
+
+#: gtk/gtkplacesview.c:2048 gtk/gtkplacesview.c:2057
+msgid "Networks"
+msgstr "Retes"
+
+#: gtk/gtkplacesview.c:2048 gtk/gtkplacesview.c:2057
+msgid "On This Computer"
+msgstr "Sur ti-ci computator"
+
+#. Translators: respectively, free and total space of the drive. The plural form
+#. * should be based on the free space available.
+#. * i.e. 1 GB / 24 GB available.
+#.
+#: gtk/gtkplacesviewrow.c:135
+#, c-format
+msgid "%s / %s available"
+msgid_plural "%s / %s available"
+msgstr[0] "%s de %s disponibil"
+msgstr[1] "%s de %s disponibil"
+
+#: gtk/gtkplacesviewrow.c:471
+msgid "Disconnect"
+msgstr "Desconexer"
+
+#: gtk/gtkplacesviewrow.c:471 gtk/ui/gtkplacesviewrow.ui:53
+#: gtk/ui/gtksidebarrow.ui:50
+msgid "Unmount"
+msgstr "Desmontar"
+
+#: gtk/gtkprintbackend.c:636
+msgid "Authentication"
+msgstr "Autentication"
+
+#: gtk/gtkprintbackend.c:712
+msgid "_Remember password"
+msgstr "_Memorar li contrasigne"
+
+#: gtk/gtkprinteroptionwidget.c:718
+msgid "Select a filename"
+msgstr "Selecte un nómine de file"
+
+#: gtk/gtkprinteroptionwidget.c:722 gtk/ui/gtkappchooserdialog.ui:50
+#: gtk/ui/gtkcolorchooserdialog.ui:38 gtk/ui/gtkfontchooserdialog.ui:29
+msgid "_Select"
+msgstr "_Selecter"
+
+#: gtk/gtkprinteroptionwidget.c:936
+msgid "Not available"
+msgstr "Ãndisponibil"
+
+#. translators: this string is the default job title for print
+#. * jobs. %s gets replaced by the application name, %d gets replaced
+#. * by the job number.
+#.
+#: gtk/gtkprintoperation.c:253
+#, c-format
+msgid "%s job #%d"
+msgstr "Tasca de %s nró %d"
+
+#: gtk/gtkprintoperation.c:1683
+msgctxt "print operation status"
+msgid "Initial state"
+msgstr "Inicial statu"
+
+#: gtk/gtkprintoperation.c:1684
+msgctxt "print operation status"
+msgid "Preparing to print"
+msgstr "Preparante printation"
+
+#: gtk/gtkprintoperation.c:1685
+msgctxt "print operation status"
+msgid "Generating data"
+msgstr "Generante data"
+
+#: gtk/gtkprintoperation.c:1686
+msgctxt "print operation status"
+msgid "Sending data"
+msgstr "Emissente data"
+
+#: gtk/gtkprintoperation.c:1687
+msgctxt "print operation status"
+msgid "Waiting"
+msgstr "Atendente"
+
+#: gtk/gtkprintoperation.c:1688
+#, fuzzy
+msgctxt "print operation status"
+msgid "Blocking on issue"
+msgstr "Numeró"
+
+#: gtk/gtkprintoperation.c:1689
+msgctxt "print operation status"
+msgid "Printing"
+msgstr "Printation"
+
+#: gtk/gtkprintoperation.c:1690
+msgctxt "print operation status"
+msgid "Finished"
+msgstr "Compleet"
+
+#: gtk/gtkprintoperation.c:1691
+msgctxt "print operation status"
+msgid "Finished with error"
+msgstr "Compleet con un error"
+
+#: gtk/gtkprintoperation.c:2234
+#, c-format
+msgid "Preparing %d"
+msgstr "Preparante %d"
+
+#: gtk/gtkprintoperation.c:2236 gtk/gtkprintoperation.c:2854
+#, c-format
+msgid "Preparing"
+msgstr "Preparante"
+
+#: gtk/gtkprintoperation.c:2239
+#, c-format
+msgid "Printing %d"
+msgstr "Printante %d"
+
+#: gtk/gtkprintoperation.c:2885
+#, fuzzy, c-format
+msgid "Error creating print preview"
+msgstr "Error evenit creante un image de disco"
+
+#: gtk/gtkprintoperation.c:2888
+#, c-format
+msgid "The most probable reason is that a temporary file could not be created."
+msgstr ""
+
+#. window
+#: gtk/gtkprintoperation-portal.c:236 gtk/gtkprintoperation-portal.c:554
+#: gtk/gtkprintoperation-portal.c:623 gtk/gtkprintunixdialog.c:3056
+msgid "Print"
+msgstr "Printar"
+
+#: gtk/gtkprintoperation-unix.c:479 gtk/gtkprintoperation-win32.c:1504
+msgid "Application"
+msgstr "Application"
+
+#: gtk/gtkprintoperation-win32.c:635
+#, fuzzy
+msgid "Printer offline"
+msgstr "Printator:"
+
+#: gtk/gtkprintoperation-win32.c:637
+msgid "Out of paper"
+msgstr "Manca papere"
+
+#. Translators: this is a printer status.
+#: gtk/gtkprintoperation-win32.c:639
+#: modules/printbackends/gtkprintbackendcups.c:2639
+msgid "Paused"
+msgstr "Pausat"
+
+#: gtk/gtkprintoperation-win32.c:641
+msgid "Need user intervention"
+msgstr "Besona un intevenition"
+
+#: gtk/gtkprintoperation-win32.c:748
+msgid "Custom size"
+msgstr "Personal dimension"
+
+#: gtk/gtkprintoperation-win32.c:1596
+msgid "No printer found"
+msgstr "Printator ne esset trovat"
+
+#: gtk/gtkprintoperation-win32.c:1623
+msgid "Invalid argument to CreateDC"
+msgstr "Ãnvalid argument por CreateDC"
+
+#: gtk/gtkprintoperation-win32.c:1659 gtk/gtkprintoperation-win32.c:1905
+msgid "Error from StartDoc"
+msgstr "Errore de StartDoc"
+
+#: gtk/gtkprintoperation-win32.c:1760 gtk/gtkprintoperation-win32.c:1783
+#: gtk/gtkprintoperation-win32.c:1831
+#, fuzzy
+msgid "Not enough free memory"
+msgstr "Memorie exhaustet"
+
+#: gtk/gtkprintoperation-win32.c:1836
+msgid "Invalid argument to PrintDlgEx"
+msgstr "Ãnvalid argument por PrintDlgEx"
+
+#: gtk/gtkprintoperation-win32.c:1841
+#, fuzzy
+msgid "Invalid pointer to PrintDlgEx"
+msgstr "Ãnvalid argument por PrintDlgEx"
+
+#: gtk/gtkprintoperation-win32.c:1846
+#, fuzzy
+msgid "Invalid handle to PrintDlgEx"
+msgstr "Ãnvalid argument por PrintDlgEx"
+
+#: gtk/gtkprintoperation-win32.c:1851
+msgid "Unspecified error"
+msgstr "Ãnspecificat errore"
+
+#: gtk/gtkprintunixdialog.c:806
+msgid "Pre_view"
+msgstr "Pre_vider"
+
+#: gtk/gtkprintunixdialog.c:808
+msgid "_Print"
+msgstr "_Printar"
+
+#: gtk/gtkprintunixdialog.c:936
+#, fuzzy
+msgid "Getting printer information failed"
+msgstr "Printation ne successat. Li printator ne successat inicialisar se."
+
+#: gtk/gtkprintunixdialog.c:1875
+#, fuzzy
+msgid "Getting printer information…"
+msgstr "Un errore evenit obtenente li information pri «%B»."
+
+#. Translators: These strings name the possible arrangements of
+#. * multiple pages on a sheet when printing (same as in gtkprintbackendcups.c)
+#.
+#. Translators: These strings name the possible arrangements of
+#. * multiple pages on a sheet when printing
+#.
+#: gtk/gtkprintunixdialog.c:2801
+#: modules/printbackends/gtkprintbackendcups.c:5647
+msgid "Left to right, top to bottom"
+msgstr "Levul a dextri, alt a bass"
+
+#: gtk/gtkprintunixdialog.c:2801
+#: modules/printbackends/gtkprintbackendcups.c:5647
+msgid "Left to right, bottom to top"
+msgstr "Levul a dextri, bass a alt"
+
+#: gtk/gtkprintunixdialog.c:2802
+#: modules/printbackends/gtkprintbackendcups.c:5648
+msgid "Right to left, top to bottom"
+msgstr "Dextri a levul, alt a bass"
+
+#: gtk/gtkprintunixdialog.c:2802
+#: modules/printbackends/gtkprintbackendcups.c:5648
+msgid "Right to left, bottom to top"
+msgstr "Dextri a levul, bass a alt"
+
+#: gtk/gtkprintunixdialog.c:2803
+#: modules/printbackends/gtkprintbackendcups.c:5649
+msgid "Top to bottom, left to right"
+msgstr "Alt a bass, levul a dextri"
+
+#: gtk/gtkprintunixdialog.c:2803
+#: modules/printbackends/gtkprintbackendcups.c:5649
+msgid "Top to bottom, right to left"
+msgstr "Alt a bass, dextri a levul"
+
+#: gtk/gtkprintunixdialog.c:2804
+#: modules/printbackends/gtkprintbackendcups.c:5650
+msgid "Bottom to top, left to right"
+msgstr "Bass a alt, levul a dextri"
+
+#: gtk/gtkprintunixdialog.c:2804
+#: modules/printbackends/gtkprintbackendcups.c:5650
+msgid "Bottom to top, right to left"
+msgstr "Bass a alt, dextri a levul"
+
+#: gtk/gtkprintunixdialog.c:2808 gtk/gtkprintunixdialog.c:2821
+msgid "Page Ordering"
+msgstr "Órdine de págines"
+
+#: gtk/gtkprintunixdialog.c:2837
+msgid "Left to right"
+msgstr "Levul-ad-dextri"
+
+#: gtk/gtkprintunixdialog.c:2838
+msgid "Right to left"
+msgstr "Dextri-ad-levul"
+
+#: gtk/gtkprintunixdialog.c:2850
+#, fuzzy
+msgid "Top to bottom"
+msgstr "Levul a dextri, alt a bass"
+
+#: gtk/gtkprintunixdialog.c:2851
+#, fuzzy
+msgid "Bottom to top"
+msgstr "Levul a dextri, bass a alt"
+
+#: gtk/gtkprogressbar.c:606
+#, c-format
+msgctxt "progress bar label"
+msgid "%.0f %%"
+msgstr "%.0f %%"
+
+#: gtk/gtkrecentmanager.c:1023 gtk/gtkrecentmanager.c:1036
+#: gtk/gtkrecentmanager.c:1174 gtk/gtkrecentmanager.c:1184
+#: gtk/gtkrecentmanager.c:1234 gtk/gtkrecentmanager.c:1243
+#, fuzzy, c-format
+msgid "Unable to find an item with URI “%sâ€"
+msgstr "Trova un _element por adjunter al «%s»:"
+
+#: gtk/gtkrecentmanager.c:1258
+#, fuzzy, c-format
+msgid "Unable to move the item with URI “%s†to “%sâ€"
+msgstr "Ne successar detecter li schema de URI de «%s»."
+
+#: gtk/gtkrecentmanager.c:2319
+#, c-format
+msgid "No registered application with name “%s†for item with URI “%s†found"
+msgstr ""
+
+#: gtk/gtksearchentry.c:639
+msgid "Clear entry"
+msgstr "Vacuar li intrada"
+
+#. Translators: This string is used to mark left/right variants of modifier
+#. * keys in the shortcut window (e.g. Control_L vs Control_R). Please keep
+#. * this string very short, ideally just a single character, since it will
+#. * be rendered as part of the key.
+#.
+#: gtk/gtkshortcutlabel.c:79
+msgctxt "keyboard side marker"
+msgid "L"
+msgstr "L"
+
+#. Translators: This string is used to mark left/right variants of modifier
+#. * keys in the shortcut window (e.g. Control_L vs Control_R). Please keep
+#. * this string very short, ideally just a single character, since it will
+#. * be rendered as part of the key.
+#.
+#: gtk/gtkshortcutlabel.c:92
+msgctxt "keyboard side marker"
+msgid "R"
+msgstr "D"
+
+#: gtk/gtkshortcutssection.c:404
+msgid "_Show All"
+msgstr "_Revelar omnis"
+
+#: gtk/gtkshortcutsshortcut.c:143
+msgid "Two finger pinch"
+msgstr "Pinceada con du fingres"
+
+#: gtk/gtkshortcutsshortcut.c:147
+msgid "Two finger stretch"
+msgstr "Extension con du fingres"
+
+#: gtk/gtkshortcutsshortcut.c:151
+msgid "Rotate clockwise"
+msgstr "Rotar a dextri"
+
+#: gtk/gtkshortcutsshortcut.c:155
+msgid "Rotate counterclockwise"
+msgstr "Rotar a levul"
+
+#: gtk/gtkshortcutsshortcut.c:159
+#, fuzzy
+msgid "Two finger swipe left"
+msgstr "Trenar a levul"
+
+#: gtk/gtkshortcutsshortcut.c:163
+#, fuzzy
+msgid "Two finger swipe right"
+msgstr "Trenar a dextri"
+
+#: gtk/gtkshortcutsshortcut.c:167
+msgid "Swipe left"
+msgstr "Trenar a levul"
+
+#: gtk/gtkshortcutsshortcut.c:171
+msgid "Swipe right"
+msgstr "Trenar a dextri"
+
+#. Translators: This is the window title for the shortcuts window in normal mode
+#: gtk/gtkshortcutswindow.c:874 gtk/inspector/window.ui:498
+msgid "Shortcuts"
+msgstr "Rapid-tastes"
+
+#. Translators: This is the window title for the shortcuts window in search mode
+#: gtk/gtkshortcutswindow.c:879
+msgid "Search Results"
+msgstr "Resultates del sercha"
+
+#. Translators: This is placeholder text for the search entry in the shortcuts window
+#: gtk/gtkshortcutswindow.c:909
+msgid "Search Shortcuts"
+msgstr "Rapid-tastes de sercha"
+
+#: gtk/gtkshortcutswindow.c:968 gtk/ui/gtkemojichooser.ui:349
+#: gtk/ui/gtkfilechooserwidget.ui:297
+msgid "No Results Found"
+msgstr "Null resultates trovat"
+
+#: gtk/gtkshortcutswindow.c:974 gtk/ui/gtkemojichooser.ui:362
+#: gtk/ui/gtkfilechooserwidget.ui:310 gtk/ui/gtkplacesview.ui:230
+#, fuzzy
+msgid "Try a different search"
+msgstr "Prova un altri sercha"
+
+#: gtk/gtkshow.c:175
+#, fuzzy
+msgid "Could not show link"
+msgstr "Ne successat crear un ligament"
+
+#: gtk/gtkstacksidebar.c:154
+msgctxt "accessibility"
+msgid "Sidebar"
+msgstr "Panel lateral"
+
+#: gtk/gtktext.c:6075 gtk/gtktextview.c:8992
+msgid "Insert _Emoji"
+msgstr "Inserter _emoji"
+
+#: gtk/gtktextview.c:8974
+msgid "_Undo"
+msgstr "_Defar"
+
+#: gtk/gtktextview.c:8978
+msgid "_Redo"
+msgstr "_Refar"
+
+#: gtk/gtktreeexpander.c:205 gtk/inspector/misc-info.ui:287
+msgid "Expand"
+msgstr "Expander"
+
+#: gtk/gtkvolumebutton.c:228
+msgid "Muted"
+msgstr "Assurdat"
+
+#: gtk/gtkvolumebutton.c:232
+msgid "Full Volume"
+msgstr "Tot volúmine"
+
+#. Translators: this is the percentage of the current volume,
+#. * as used in the tooltip, eg. "49 %".
+#. * Translate the "%d" to "%Id" if you want to use localised digits,
+#. * or otherwise translate the "%d" to "%d".
+#.
+#: gtk/gtkvolumebutton.c:245
+#, c-format
+msgctxt "volume percentage"
+msgid "%d %%"
+msgstr "%d %%"
+
+#: gtk/gtkwindow.c:6140
+#, c-format
+msgid "Do you want to use GTK Inspector?"
+msgstr ""
+
+#: gtk/gtkwindow.c:6142
+#, c-format
+msgid ""
+"GTK Inspector is an interactive debugger that lets you explore and modify "
+"the internals of any GTK application. Using it may cause the application to "
+"break or crash."
+msgstr ""
+
+#: gtk/gtkwindow.c:6147
+#, fuzzy
+msgid "Don’t show this message again"
+msgstr "Ne monstrar plu ti-ci avise"
+
+#: gtk/gtkwindowcontrols.c:309 gtk/gtkwindowhandle.c:230
+msgid "Minimize"
+msgstr "Minimisar"
+
+#: gtk/gtkwindowcontrols.c:311
+msgid "Minimize the window"
+msgstr "Minimisar li fenestre"
+
+#: gtk/gtkwindowcontrols.c:335 gtk/gtkwindowhandle.c:236
+msgid "Maximize"
+msgstr "Maximisar"
+
+#: gtk/gtkwindowcontrols.c:337
+msgid "Maximize the window"
+msgstr "Maximisar li fenestre"
+
+#: gtk/gtkwindowcontrols.c:357 gtk/gtkwindowhandle.c:246
+msgid "Close"
+msgstr "Cluder"
+
+#: gtk/gtkwindowcontrols.c:359
+msgid "Close the window"
+msgstr "Cluder li fenestre"
+
+#: gtk/gtkwindowhandle.c:223
+msgid "Restore"
+msgstr "Restituer"
+
+#: gtk/inspector/a11y.ui:16
+msgid "Role"
+msgstr "Rol"
+
+#: gtk/inspector/a11y.ui:40
+msgid "Object path"
+msgstr "Rute de object"
+
+#: gtk/inspector/a11y.ui:66
+msgid "Attribute"
+msgstr "Atribute"
+
+#: gtk/inspector/a11y.ui:78 gtk/inspector/css-node-tree.ui:119
+#: gtk/inspector/prop-list.ui:57 gtk/inspector/recorder.ui:155
+#: gtk/inspector/recorder.ui:221
+msgid "Value"
+msgstr "Valore"
+
+#: gtk/inspector/action-editor.c:123
+msgid "Activate"
+msgstr "Activar"
+
+#: gtk/inspector/action-editor.c:135
+#, fuzzy
+#| msgid "State"
+msgid "Set State"
+msgstr "Assignar statu Rfkill"
+
+#: gtk/inspector/actions.ui:30
+msgid "Enabled"
+msgstr "Permisset"
+
+#: gtk/inspector/actions.ui:41
+msgid "Parameter Type"
+msgstr "Tip de parametre"
+
+#: gtk/inspector/actions.ui:52 gtk/inspector/css-node-tree.ui:74
+#: gtk/inspector/misc-info.ui:121
+msgid "State"
+msgstr "Statu"
+
+#: gtk/inspector/clipboard.c:211 gtk/inspector/misc-info.ui:278
+msgid "Show"
+msgstr "Monstrar"
+
+#: gtk/inspector/clipboard.c:228
+#, fuzzy
+msgid "Hover to load"
+msgstr "Monstrar li URL sub li apuntator:"
+
+#: gtk/inspector/clipboard.c:278
+msgctxt "clipboard"
+msgid "empty"
+msgstr "vacui"
+
+#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325
+msgctxt "clipboard"
+msgid "local"
+msgstr "local"
+
+#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327
+msgctxt "clipboard"
+msgid "remote"
+msgstr "lontan"
+
+#: gtk/inspector/clipboard.ui:31
+#, fuzzy
+msgid "Drag and hold here"
+msgstr "_Detenet"
+
+#: gtk/inspector/clipboard.ui:75 gtk/inspector/window.ui:574
+msgid "Clipboard"
+msgstr "Paperiere"
+
+#: gtk/inspector/clipboard.ui:114
+msgid "Primary"
+msgstr "Primari"
+
+#: gtk/inspector/controllers.c:126
+msgctxt "event phase"
+msgid "None"
+msgstr "Null"
+
+#: gtk/inspector/controllers.c:129
+#, fuzzy
+msgctxt "event phase"
+msgid "Capture"
+msgstr "Registration"
+
+#: gtk/inspector/controllers.c:132
+#, fuzzy
+msgctxt "event phase"
+msgid "Bubble"
+msgstr "Gumme de machar"
+
+#: gtk/inspector/controllers.c:135
+#, fuzzy
+msgctxt "event phase"
+msgid "Target"
+msgstr "Destination"
+
+#: gtk/inspector/controllers.c:156
+#, fuzzy
+#| msgid "Cumulative"
+msgctxt "propagation limit"
+msgid "Native"
+msgstr "Usar li nativ dialogs de Windows"
+
+#: gtk/inspector/css-editor.c:129
+msgid "You can type here any CSS rule recognized by GTK."
+msgstr ""
+
+#: gtk/inspector/css-editor.c:130
+msgid ""
+"You can temporarily disable this custom CSS by clicking on the “Pause†"
+"button above."
+msgstr ""
+
+#: gtk/inspector/css-editor.c:131
+msgid "Changes are applied instantly and globally, for the whole application."
+msgstr ""
+
+#: gtk/inspector/css-editor.c:211
+#, fuzzy, c-format
+msgid "Saving CSS failed"
+msgstr "Gardante…"
+
+#: gtk/inspector/css-editor.ui:30
+#, fuzzy
+msgid "Disable this custom CSS"
+msgstr "Depermisser"
+
+#: gtk/inspector/css-editor.ui:37
+msgid "Save the current CSS"
+msgstr "Gardar li actual CSS"
+
+#: gtk/inspector/css-node-tree.ui:48 tools/gtk-builder-tool-preview.c:178
+#: tools/gtk-builder-tool-screenshot.c:358
+msgid "ID"
+msgstr "ID"
+
+#: gtk/inspector/css-node-tree.ui:61
+#, fuzzy
+msgid "Style Classes"
+msgstr "Classes"
+
+#: gtk/inspector/css-node-tree.ui:104
+msgid "CSS Property"
+msgstr "Proprietá de CSS"
+
+#: gtk/inspector/general.c:330 gtk/inspector/general.c:411
+msgctxt "GL version"
+msgid "None"
+msgstr "Null"
+
+#: gtk/inspector/general.c:339
+msgctxt "GL version"
+msgid "Disabled"
+msgstr "Ãnactiv"
+
+#: gtk/inspector/general.c:340
+msgctxt "GL vendor"
+msgid "Disabled"
+msgstr "Ãnactiv"
+
+#: gtk/inspector/general.c:412
+msgctxt "GL vendor"
+msgid "None"
+msgstr "Null"
+
+#: gtk/inspector/general.c:463
+msgctxt "Vulkan device"
+msgid "Disabled"
+msgstr "Ãnactiv"
+
+#: gtk/inspector/general.c:464 gtk/inspector/general.c:465
+msgctxt "Vulkan version"
+msgid "Disabled"
+msgstr "Ãnactiv"
+
+#: gtk/inspector/general.c:521
+msgctxt "Vulkan device"
+msgid "None"
+msgstr "Null"
+
+#: gtk/inspector/general.c:522 gtk/inspector/general.c:523
+msgctxt "Vulkan version"
+msgid "None"
+msgstr "Null"
+
+#: gtk/inspector/general.c:793
+#, fuzzy
+#| msgid "Theme is hardcoded by GTK_THEME"
+msgid "IM Context is hardcoded by GTK_IM_MODULE"
+msgstr "Tema es predefinit per GTK_THEME"
+
+#: gtk/inspector/general.ui:32
+msgid "GTK Version"
+msgstr "Version de GTK"
+
+#: gtk/inspector/general.ui:58
+msgid "GDK Backend"
+msgstr "Infrastructura de GDK"
+
+#: gtk/inspector/general.ui:84
+#, fuzzy
+msgid "GSK Renderer"
+msgstr "Decovrition del rete Avahi"
+
+#: gtk/inspector/general.ui:110
+msgid "Pango Fontmap"
+msgstr ""
+
+#: gtk/inspector/general.ui:136
+#, fuzzy
+#| msgid "GDK Backend"
+msgid "Media Backend"
+msgstr "Infrastructura:"
+
+#: gtk/inspector/general.ui:162
+#, fuzzy
+msgid "Input Method"
+msgstr "Metode de intrada"
+
+#: gtk/inspector/general.ui:202
+#, fuzzy
+#| msgid "Application"
+msgid "Application ID"
+msgstr "ID de application"
+
+#: gtk/inspector/general.ui:228
+#, fuzzy
+#| msgid "Resources"
+msgid "Resource Path"
+msgstr "ressurse"
+
+#: gtk/inspector/general.ui:268 gtk/ui/gtkplacesview.ui:79
+msgid "Prefix"
+msgstr "Prefix"
+
+#: gtk/inspector/general.ui:470
+#, fuzzy
+msgid "Display"
+msgstr "Monstrar"
+
+#: gtk/inspector/general.ui:497
+#, fuzzy
+msgid "RGBA Visual"
+msgstr "Visual"
+
+#: gtk/inspector/general.ui:523
+msgid "Composited"
+msgstr "Compostet"
+
+#: gtk/inspector/general.ui:575
+msgid "GL Version"
+msgstr "Version de GL"
+
+#: gtk/inspector/general.ui:625
+msgid "GL Vendor"
+msgstr "Venditor de GL"
+
+#: gtk/inspector/general.ui:665
+msgid "Vulkan Device"
+msgstr "Aparate Vulcan"
+
+#: gtk/inspector/general.ui:692
+msgid "Vulkan API version"
+msgstr "Version de API Vulcan"
+
+#: gtk/inspector/general.ui:719
+msgid "Vulkan driver version"
+msgstr "Version del driver Vulcan"
+
+#: gtk/inspector/menu.c:95
+msgid "Unnamed section"
+msgstr "Section sin nómine"
+
+#: gtk/inspector/menu.ui:23
+msgid "Label"
+msgstr "Etiquette"
+
+#: gtk/inspector/menu.ui:36 gtk/inspector/shortcuts.ui:23
+msgid "Action"
+msgstr "Action"
+
+#: gtk/inspector/menu.ui:49
+msgid "Target"
+msgstr "Destination"
+
+#: gtk/inspector/menu.ui:62
+msgid "Icon"
+msgstr "Icone"
+
+#: gtk/inspector/misc-info.ui:32
+msgid "Address"
+msgstr "Adresse"
+
+#: gtk/inspector/misc-info.ui:62 gtk/inspector/prop-list.ui:35
+#: gtk/inspector/statistics.ui:46 gtk/ui/gtkfilechooserwidget.ui:214
+msgid "Type"
+msgstr "Tip"
+
+#: gtk/inspector/misc-info.ui:91
+#, fuzzy
+msgid "Reference Count"
+msgstr "Quam &referentie"
+
+#: gtk/inspector/misc-info.ui:151
+msgid "Direction"
+msgstr "Direction"
+
+#: gtk/inspector/misc-info.ui:181
+#, fuzzy
+msgid "Buildable ID"
+msgstr "ID:"
+
+#: gtk/inspector/misc-info.ui:211
+#, fuzzy
+msgid "Mnemonic Label"
+msgstr "Null etiquette"
+
+#: gtk/inspector/misc-info.ui:240
+#, fuzzy
+msgid "Request Mode"
+msgstr "mode:"
+
+#: gtk/inspector/misc-info.ui:269
+#, fuzzy
+msgid "Measure map"
+msgstr "Corespondentie"
+
+#: gtk/inspector/misc-info.ui:338
+#, fuzzy
+#| msgid "Location"
+msgid "Allocation"
+msgstr "Localisation"
+
+#: gtk/inspector/misc-info.ui:367
+#, fuzzy
+msgid "Baseline"
+msgstr "_Monstrar…"
+
+#: gtk/inspector/misc-info.ui:396
+msgid "Surface"
+msgstr "Superficie"
+
+#: gtk/inspector/misc-info.ui:415 gtk/inspector/misc-info.ui:454
+#: gtk/inspector/misc-info.ui:493 gtk/inspector/prop-editor.c:1162
+#: gtk/inspector/prop-editor.c:1531 gtk/inspector/window.ui:396
+msgid "Properties"
+msgstr "Properties"
+
+#: gtk/inspector/misc-info.ui:435
+#, fuzzy
+msgid "Renderer"
+msgstr "Decovrition del rete Avahi"
+
+#: gtk/inspector/misc-info.ui:474
+#, fuzzy
+msgid "Frame Clock"
+msgstr "Cadre"
+
+#: gtk/inspector/misc-info.ui:513
+#, fuzzy
+msgid "Tick Callback"
+msgstr "Monstrar li etiquette"
+
+#: gtk/inspector/misc-info.ui:543
+#, fuzzy
+msgid "Frame Count"
+msgstr "Númere"
+
+#: gtk/inspector/misc-info.ui:572
+#, fuzzy
+msgid "Frame Rate"
+msgstr "Rapiditá de cadres"
+
+#: gtk/inspector/misc-info.ui:601
+msgid "Mapped"
+msgstr ""
+
+#: gtk/inspector/misc-info.ui:631
+msgid "Realized"
+msgstr "Realisat"
+
+#: gtk/inspector/misc-info.ui:661
+#, fuzzy
+msgid "Is Toplevel"
+msgstr "Element <%s> ne es permisset sur li nivell superiori"
+
+#: gtk/inspector/misc-info.ui:691
+#, fuzzy
+msgid "Child Visible"
+msgstr "Visibil:"
+
+#: gtk/inspector/prop-editor.c:702
+#, fuzzy, c-format
+msgid "Pointer: %p"
+msgstr "Apuntator"
+
+#. Translators: %s is a type name, for example
+#. * GtkPropertyExpression with value \"2.5\"
+#.
+#: gtk/inspector/prop-editor.c:834
+#, fuzzy, c-format
+msgid "%s with value \"%s\""
+msgstr "Ãnvalid valore(s)."
+
+#. Translators: Both %s are type names, for example
+#. * GtkPropertyExpression with type GObject
+#.
+#: gtk/inspector/prop-editor.c:845
+#, fuzzy, c-format
+msgid "%s with type %s"
+msgstr ""
+"<b>%s</b>\n"
+"Tip: %s\n"
+"Grandor: %s"
+
+#. Translators: Both %s are type names, for example
+#. * GtkObjectExpression for GtkStringObject 0x23456789
+#.
+#: gtk/inspector/prop-editor.c:858
+#, fuzzy, c-format
+msgid "%s for %s %p"
+msgstr "%l:%M:%S %p"
+
+#. Translators: Both %s are type names, for example
+#. * GtkPropertyExpression with value type: gchararray
+#.
+#: gtk/inspector/prop-editor.c:888
+#, fuzzy, c-format
+msgid "%s with value type %s"
+msgstr "Tip: %s (%s)"
+
+#: gtk/inspector/prop-editor.c:1242
+#, fuzzy, c-format
+msgid "Uneditable property type: %s"
+msgstr "Ãnconosset proprietá %s"
+
+#: gtk/inspector/prop-editor.c:1383
+#, fuzzy
+#| msgctxt "font"
+#| msgid "None"
+msgctxt "column number"
+msgid "None"
+msgstr "Necú"
+
+#: gtk/inspector/prop-editor.c:1420
+msgid "Attribute:"
+msgstr "Atribute:"
+
+#: gtk/inspector/prop-editor.c:1423
+msgid "Model"
+msgstr "Modelle"
+
+#: gtk/inspector/prop-editor.c:1428
+msgid "Column:"
+msgstr "Columne:"
+
+#. Translators: %s is a type name, for example
+#. * Action from 0x2345678 (GtkApplicationWindow)
+#.
+#: gtk/inspector/prop-editor.c:1527
+#, fuzzy, c-format
+#| msgid "Object: %p (%s)"
+msgid "Action from: %p (%s)"
+msgstr "%l:%M:%S %p"
+
+#: gtk/inspector/prop-editor.c:1582
+msgid "Reset"
+msgstr "Reverter"
+
+#: gtk/inspector/prop-editor.c:1590
+msgctxt "GtkSettings source"
+msgid "Default"
+msgstr "Predefinit"
+
+#: gtk/inspector/prop-editor.c:1593
+msgctxt "GtkSettings source"
+msgid "Theme"
+msgstr "Tema"
+
+#: gtk/inspector/prop-editor.c:1596
+msgctxt "GtkSettings source"
+msgid "XSettings"
+msgstr "XSettings"
+
+#: gtk/inspector/prop-editor.c:1600
+msgctxt "GtkSettings source"
+msgid "Application"
+msgstr "Application"
+
+#: gtk/inspector/prop-editor.c:1603
+msgctxt "GtkSettings source"
+msgid "Unknown"
+msgstr "Ãnconosset"
+
+#: gtk/inspector/prop-editor.c:1606
+msgid "Source:"
+msgstr "Orígine:"
+
+#: gtk/inspector/prop-list.ui:46
+#, fuzzy
+msgid "Defined At"
+msgstr "Personal"
+
+#: gtk/inspector/recorder.c:1694
+#, fuzzy, c-format
+msgid "Saving RenderNode failed"
+msgstr "Gardante…"
+
+#: gtk/inspector/recorder.ui:20
+#, fuzzy
+msgid "Record frames"
+msgstr "Sin cadres"
+
+#: gtk/inspector/recorder.ui:27
+#, fuzzy
+msgid "Clear recorded frames"
+msgstr "Sin cadres"
+
+#: gtk/inspector/recorder.ui:34
+#, fuzzy
+msgid "Add debug nodes"
+msgstr "&Debug"
+
+#: gtk/inspector/recorder.ui:42
+#, fuzzy
+msgid "Highlight event sequences"
+msgstr "Eveniment:"
+
+#: gtk/inspector/recorder.ui:51
+msgid "Use a dark background"
+msgstr "Usar un obscur funde"
+
+#: gtk/inspector/recorder.ui:59
+#, fuzzy
+msgid "Save selected node"
+msgstr "Null node es selectet"
+
+#: gtk/inspector/recorder.ui:67
+msgid "Copy to clipboard"
+msgstr "Copiar al Paperiere"
+
+#: gtk/inspector/recorder.ui:142 gtk/inspector/recorder.ui:208
+msgid "Property"
+msgstr "Proprietá"
+
+#: gtk/inspector/resource-list.ui:59
+msgid "Path"
+msgstr "Rute"
+
+#: gtk/inspector/resource-list.ui:71
+msgid "Count"
+msgstr "Númere"
+
+#: gtk/inspector/resource-list.ui:82 gtk/ui/gtkfilechooserwidget.ui:202
+#: gtk/ui/gtkfontchooserwidget.ui:204 gtk/ui/gtkfontchooserwidget.ui:351
+msgid "Size"
+msgstr "Grandore"
+
+#: gtk/inspector/resource-list.ui:121
+msgid "Name:"
+msgstr "Nómine:"
+
+#: gtk/inspector/resource-list.ui:143
+msgid "Type:"
+msgstr "Tip:"
+
+#: gtk/inspector/resource-list.ui:164
+msgid "Size:"
+msgstr "Dimension:"
+
+#: gtk/inspector/shortcuts.ui:17
+#, fuzzy
+msgid "Trigger"
+msgstr "Invocar"
+
+#: gtk/inspector/size-groups.c:225
+msgctxt "sizegroup mode"
+msgid "None"
+msgstr "Null"
+
+#: gtk/inspector/size-groups.c:226
+msgctxt "sizegroup mode"
+msgid "Horizontal"
+msgstr "Horizontal"
+
+#: gtk/inspector/size-groups.c:227
+msgctxt "sizegroup mode"
+msgid "Vertical"
+msgstr "Vertical"
+
+#: gtk/inspector/size-groups.c:228
+msgctxt "sizegroup mode"
+msgid "Both"
+msgstr "Ambi"
+
+#: gtk/inspector/size-groups.c:240
+msgid "Mode"
+msgstr "Mode"
+
+#: gtk/inspector/statistics.c:400
+msgid "GLib must be configured with -Dbuildtype=debug"
+msgstr ""
+
+#: gtk/inspector/statistics.ui:60
+msgid "Self 1"
+msgstr "Self 1"
+
+#: gtk/inspector/statistics.ui:71
+msgid "Cumulative 1"
+msgstr "Cumulativ 1"
+
+#: gtk/inspector/statistics.ui:82
+msgid "Self 2"
+msgstr "Self 2"
+
+#: gtk/inspector/statistics.ui:93
+msgid "Cumulative 2"
+msgstr "Cumulativ 2"
+
+#: gtk/inspector/statistics.ui:104
+msgid "Self"
+msgstr "Self"
+
+#: gtk/inspector/statistics.ui:120
+msgid "Cumulative"
+msgstr "Cumulativ"
+
+#: gtk/inspector/statistics.ui:151
+msgid "Enable statistics with GOBJECT_DEBUG=instance-count"
+msgstr ""
+
+#: gtk/inspector/tree-data.ui:10
+#, fuzzy
+msgid "Show data"
+msgstr "Null data"
+
+#: gtk/inspector/type-info.ui:14
+msgid "Hierarchy"
+msgstr "Hierarchie"
+
+#: gtk/inspector/type-info.ui:35
+msgid "Implements"
+msgstr "Implementa"
+
+#: gtk/inspector/visual.c:603 gtk/inspector/visual.c:622
+msgid "Theme is hardcoded by GTK_THEME"
+msgstr "Tema es predefinit per GTK_THEME"
+
+#: gtk/inspector/visual.c:853
+msgid "Backend does not support window scaling"
+msgstr ""
+
+#: gtk/inspector/visual.ui:35
+msgid "GTK Theme"
+msgstr "Tema GTK"
+
+#: gtk/inspector/visual.ui:59
+msgid "Dark Variant"
+msgstr "Variante obscur"
+
+#: gtk/inspector/visual.ui:84
+msgid "Cursor Theme"
+msgstr "Tema de apuntatores"
+
+#: gtk/inspector/visual.ui:109
+msgid "Cursor Size"
+msgstr "Dimension de apuntator"
+
+#: gtk/inspector/visual.ui:145
+msgid "Icon Theme"
+msgstr "Tema de icones"
+
+#: gtk/inspector/visual.ui:195
+#, fuzzy
+#| msgid "Font Selection"
+msgid "Font Scale"
+msgstr "_Scale:"
+
+#: gtk/inspector/visual.ui:240
+msgid "Text Direction"
+msgstr "Direction del textu"
+
+#: gtk/inspector/visual.ui:255
+msgid "Left-to-Right"
+msgstr "Levul-ad-dextri"
+
+#: gtk/inspector/visual.ui:256
+msgid "Right-to-Left"
+msgstr "Dextri-ad-levul"
+
+#: gtk/inspector/visual.ui:274
+msgid "Window Scaling"
+msgstr "Scale de fenestres"
+
+#: gtk/inspector/visual.ui:307
+msgid "Animations"
+msgstr "Animationes"
+
+#: gtk/inspector/visual.ui:332
+msgid "Slowdown"
+msgstr ""
+
+#: gtk/inspector/visual.ui:390
+#, fuzzy
+msgid "Show fps overlay"
+msgstr " fps"
+
+#: gtk/inspector/visual.ui:415
+#, fuzzy
+msgid "Show Graphic Updates"
+msgstr "grafico"
+
+#: gtk/inspector/visual.ui:440
+#, fuzzy
+msgid "Show Fallback Rendering"
+msgstr "Presentation"
+
+#: gtk/inspector/visual.ui:465
+#, fuzzy
+msgid "Show Baselines"
+msgstr "_Monstrar…"
+
+#: gtk/inspector/visual.ui:493
+#, fuzzy
+msgid "Show Layout Borders"
+msgstr "Monstrar _bordes de fenestre"
+
+#: gtk/inspector/visual.ui:550
+#, fuzzy
+msgid "CSS Padding"
+msgstr "CSS"
+
+#: gtk/inspector/visual.ui:560
+#, fuzzy
+#| msgid "CSS nodes"
+msgid "CSS Border"
+msgstr "Borde"
+
+#: gtk/inspector/visual.ui:570
+#, fuzzy
+#| msgid "Paper Margins"
+msgid "CSS Margin"
+msgstr "CSS"
+
+#: gtk/inspector/visual.ui:580
+#, fuzzy
+#| msgid "Paper Margins"
+msgid "Widget Margin"
+msgstr "Widget"
+
+#: gtk/inspector/visual.ui:615
+#, fuzzy
+msgid "Show Focus"
+msgstr "_Foco"
+
+#: gtk/inspector/visual.ui:654
+#, fuzzy
+#| msgid "Simulate touchscreen"
+msgid "Simulate Touchscreen"
+msgstr "Simular un panel tactil"
+
+#: gtk/inspector/visual.ui:689
+#, fuzzy
+msgid "Inspect Inspector"
+msgstr "_Inspector"
+
+#: gtk/inspector/window.ui:27
+#, fuzzy
+msgid "Select an Object"
+msgstr "Object"
+
+#: gtk/inspector/window.ui:42 gtk/inspector/window.ui:107
+msgid "Show Details"
+msgstr "Monstrar detallies"
+
+#: gtk/inspector/window.ui:57
+#, fuzzy
+msgid "Show all Objects"
+msgstr "_Revelar omnis"
+
+#: gtk/inspector/window.ui:121
+#, fuzzy
+msgid "Show all Resources"
+msgstr "Monstrar li carte Ressurses"
+
+#: gtk/inspector/window.ui:147
+#, fuzzy
+msgid "Collect Statistics"
+msgstr "Collecter local statistica"
+
+#: gtk/inspector/window.ui:199
+msgid "Objects"
+msgstr "Objectes"
+
+#: gtk/inspector/window.ui:231
+#, fuzzy
+msgid "Toggle Sidebar"
+msgstr "Panel láteral"
+
+#: gtk/inspector/window.ui:253
+#, fuzzy
+msgid "Refresh action state"
+msgstr "Statu"
+
+#: gtk/inspector/window.ui:327
+#, fuzzy
+#| msgctxt "Stock label, media"
+#| msgid "Pre_vious"
+msgid "Previous object"
+msgstr "_Precedent"
+
+#: gtk/inspector/window.ui:334
+#, fuzzy
+msgid "Child object"
+msgstr "Object"
+
+#: gtk/inspector/window.ui:341
+#, fuzzy
+#| msgctxt "Stock label, media"
+#| msgid "Pre_vious"
+msgid "Previous sibling"
+msgstr "following-sibling"
+
+#: gtk/inspector/window.ui:347
+#, fuzzy
+msgid "List Position"
+msgstr "&Position"
+
+#: gtk/inspector/window.ui:356
+#, fuzzy
+msgid "Next sibling"
+msgstr "following-sibling"
+
+#: gtk/inspector/window.ui:386
+msgid "Miscellaneous"
+msgstr "Diversi"
+
+#: gtk/inspector/window.ui:407 gtk/ui/gtkprintunixdialog.ui:393
+msgid "Layout"
+msgstr "Arangeament"
+
+#: gtk/inspector/window.ui:418
+msgid "CSS Nodes"
+msgstr "Nodes CSS"
+
+#: gtk/inspector/window.ui:429
+#, fuzzy
+msgid "Size Groups"
+msgstr "&Gruppes"
+
+#: gtk/inspector/window.ui:438 gtk/inspector/window.ui:447
+msgid "Data"
+msgstr "Data"
+
+#: gtk/inspector/window.ui:457
+msgid "Actions"
+msgstr "Actiones"
+
+#: gtk/inspector/window.ui:468
+msgid "Menu"
+msgstr "Menú"
+
+#: gtk/inspector/window.ui:477
+msgid "Controllers"
+msgstr ""
+
+#: gtk/inspector/window.ui:487
+msgid "Magnifier"
+msgstr "Lupe"
+
+#: gtk/inspector/window.ui:508
+msgid "Accessibility"
+msgstr "Accessibilitá"
+
+#: gtk/inspector/window.ui:532
+msgid "Global"
+msgstr "Global"
+
+#: gtk/inspector/window.ui:545
+msgid "Information"
+msgstr "Information"
+
+#: gtk/inspector/window.ui:554
+msgid "Settings"
+msgstr "Parametres"
+
+#: gtk/inspector/window.ui:563
+msgid "Resources"
+msgstr "Ressurses"
+
+#: gtk/inspector/window.ui:584
+msgid "Statistics"
+msgstr "Statistica"
+
+#: gtk/inspector/window.ui:595
+#, fuzzy
+msgid "Logging"
+msgstr "Apertente un session…"
+
+#: gtk/inspector/window.ui:610
+msgid "CSS"
+msgstr "CSS"
+
+#: gtk/inspector/window.ui:619
+msgid "Recorder"
+msgstr "Registrator"
+
+#: gtk/open-type-layout.h:14
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Access All Alternates"
+msgstr "Accesse:"
+
+#: gtk/open-type-layout.h:15
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Above-base Forms"
+msgstr "&Superiori"
+
+#: gtk/open-type-layout.h:16
+msgctxt "OpenType layout"
+msgid "Above-base Mark Positioning"
+msgstr ""
+
+#: gtk/open-type-layout.h:17
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Above-base Substitutions"
+msgstr "Substitutiones"
+
+#: gtk/open-type-layout.h:18
+#, fuzzy
+#| msgid "Authentication"
+msgctxt "OpenType layout"
+msgid "Alternative Fractions"
+msgstr "Fractiones"
+
+#: gtk/open-type-layout.h:19
+msgctxt "OpenType layout"
+msgid "Akhands"
+msgstr ""
+
+#: gtk/open-type-layout.h:20
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Below-base Forms"
+msgstr "_Basat sur:"
+
+#: gtk/open-type-layout.h:21
+msgctxt "OpenType layout"
+msgid "Below-base Mark Positioning"
+msgstr ""
+
+#: gtk/open-type-layout.h:22
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Below-base Substitutions"
+msgstr "Substitutiones"
+
+#: gtk/open-type-layout.h:23
+msgctxt "OpenType layout"
+msgid "Contextual Alternates"
+msgstr ""
+
+#: gtk/open-type-layout.h:24
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Case-Sensitive Forms"
+msgstr "_Atenter a MAJ/min"
+
+#: gtk/open-type-layout.h:25
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Glyph Composition / Decomposition"
+msgstr "Cache de glifes"
+
+#: gtk/open-type-layout.h:26
+msgctxt "OpenType layout"
+msgid "Conjunct Form After Ro"
+msgstr ""
+
+#: gtk/open-type-layout.h:27
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Conjunct Forms"
+msgstr "Localisat formas"
+
+#: gtk/open-type-layout.h:28
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Contextual Ligatures"
+msgstr "Ligaturas"
+
+#: gtk/open-type-layout.h:29
+msgctxt "OpenType layout"
+msgid "Centered CJK Punctuation"
+msgstr "Centrat punctuation de CJK"
+
+#: gtk/open-type-layout.h:30
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Capital Spacing"
+msgstr "Inicial majuscule"
+
+#: gtk/open-type-layout.h:31
+msgctxt "OpenType layout"
+msgid "Contextual Swash"
+msgstr ""
+
+#: gtk/open-type-layout.h:32
+msgctxt "OpenType layout"
+msgid "Cursive Positioning"
+msgstr ""
+
+#: gtk/open-type-layout.h:33
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Petite Capitals From Capitals"
+msgstr "Micri majuscules"
+
+#: gtk/open-type-layout.h:34
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Small Capitals From Capitals"
+msgstr "Micri majuscules"
+
+#: gtk/open-type-layout.h:35
+msgctxt "OpenType layout"
+msgid "Distances"
+msgstr "Distanties"
+
+#: gtk/open-type-layout.h:36
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Discretionary Ligatures"
+msgstr "Ligaturas"
+
+#: gtk/open-type-layout.h:37
+msgctxt "OpenType layout"
+msgid "Denominators"
+msgstr "Denominatores"
+
+#: gtk/open-type-layout.h:38
+msgctxt "OpenType layout"
+msgid "Dotless Forms"
+msgstr "Formes sin punctu"
+
+#: gtk/open-type-layout.h:39
+msgctxt "OpenType layout"
+msgid "Expert Forms"
+msgstr "Expert formes"
+
+#: gtk/open-type-layout.h:40
+msgctxt "OpenType layout"
+msgid "Final Glyph on Line Alternates"
+msgstr ""
+
+#: gtk/open-type-layout.h:41
+#, fuzzy
+#| msgid "Terminal Pager"
+msgctxt "OpenType layout"
+msgid "Terminal Forms #2"
+msgstr "Terminal"
+
+#: gtk/open-type-layout.h:42
+#, fuzzy
+#| msgid "Terminal Pager"
+msgctxt "OpenType layout"
+msgid "Terminal Forms #3"
+msgstr "Historic formes"
+
+#: gtk/open-type-layout.h:43
+msgctxt "OpenType layout"
+msgid "Terminal Forms"
+msgstr "Formes de terminal"
+
+#: gtk/open-type-layout.h:44
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Flattened accent forms"
+msgstr "Color de accentu:"
+
+#: gtk/open-type-layout.h:45
+msgctxt "OpenType layout"
+msgid "Fractions"
+msgstr "Fractiones"
+
+#: gtk/open-type-layout.h:46
+msgctxt "OpenType layout"
+msgid "Full Widths"
+msgstr "Plen-largore"
+
+#: gtk/open-type-layout.h:47
+msgctxt "OpenType layout"
+msgid "Half Forms"
+msgstr "Midí-formes"
+
+#: gtk/open-type-layout.h:48
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Halant Forms"
+msgstr "Medial formas"
+
+#: gtk/open-type-layout.h:49
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Alternate Half Widths"
+msgstr "Alternativ:"
+
+#: gtk/open-type-layout.h:50
+msgctxt "OpenType layout"
+msgid "Historical Forms"
+msgstr "Historic formes"
+
+#: gtk/open-type-layout.h:51
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Horizontal Kana Alternates"
+msgstr "Horizontal"
+
+#: gtk/open-type-layout.h:52
+msgctxt "OpenType layout"
+msgid "Historical Ligatures"
+msgstr "Historic ligaturas"
+
+#: gtk/open-type-layout.h:53
+msgctxt "OpenType layout"
+msgid "Hangul"
+msgstr "Hangul"
+
+#: gtk/open-type-layout.h:54
+msgctxt "OpenType layout"
+msgid "Hojo Kanji Forms"
+msgstr "Formes hojo kanji"
+
+#: gtk/open-type-layout.h:55
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Half Widths"
+msgstr "Mi-dimension"
+
+#: gtk/open-type-layout.h:56
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Initial Forms"
+msgstr "Formas del _plurale"
+
+#: gtk/open-type-layout.h:57
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Isolated Forms"
+msgstr "Localisat formas"
+
+#: gtk/open-type-layout.h:58
+msgctxt "OpenType layout"
+msgid "Italics"
+msgstr "Italic"
+
+#: gtk/open-type-layout.h:59
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Justification Alternates"
+msgstr "Alineament de subtitules"
+
+#: gtk/open-type-layout.h:60
+msgctxt "OpenType layout"
+msgid "JIS78 Forms"
+msgstr "Formas JIS78"
+
+#: gtk/open-type-layout.h:61
+msgctxt "OpenType layout"
+msgid "JIS83 Forms"
+msgstr "Formas JIS83"
+
+#: gtk/open-type-layout.h:62
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "JIS90 Forms"
+msgstr "Formas JIS78"
+
+#: gtk/open-type-layout.h:63
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "JIS2004 Forms"
+msgstr "Formas del plurale:"
+
+#: gtk/open-type-layout.h:64
+#, fuzzy
+#| msgid "Warning"
+msgctxt "OpenType layout"
+msgid "Kerning"
+msgstr "Avise"
+
+#: gtk/open-type-layout.h:65
+#, fuzzy
+#| msgctxt "output-bin"
+#| msgid "Left Bin"
+msgctxt "OpenType layout"
+msgid "Left Bounds"
+msgstr "Límites"
+
+#: gtk/open-type-layout.h:66
+msgctxt "OpenType layout"
+msgid "Standard Ligatures"
+msgstr "Standard ligaturas"
+
+#: gtk/open-type-layout.h:67
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Leading Jamo Forms"
+msgstr "Remover inicial spacies"
+
+#: gtk/open-type-layout.h:68
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Lining Figures"
+msgstr "Ciffres por tabelles"
+
+#: gtk/open-type-layout.h:69
+msgctxt "OpenType layout"
+msgid "Localized Forms"
+msgstr "Localisat formas"
+
+#: gtk/open-type-layout.h:70
+#, fuzzy
+#| msgid "LRM _Left-to-right mark"
+msgctxt "OpenType layout"
+msgid "Left-to-right alternates"
+msgstr "Levul-a-dextri, conto prim"
+
+#: gtk/open-type-layout.h:71
+#, fuzzy
+#| msgid "LRM _Left-to-right mark"
+msgctxt "OpenType layout"
+msgid "Left-to-right mirrored forms"
+msgstr "Levul-a-dextri, conto prim"
+
+#: gtk/open-type-layout.h:72
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Mark Positioning"
+msgstr "_Marcar"
+
+#: gtk/open-type-layout.h:73
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Medial Forms #2"
+msgstr "Medial formas"
+
+#: gtk/open-type-layout.h:74
+msgctxt "OpenType layout"
+msgid "Medial Forms"
+msgstr "Medial formas"
+
+#: gtk/open-type-layout.h:75
+msgctxt "OpenType layout"
+msgid "Mathematical Greek"
+msgstr "Matematic grec"
+
+#: gtk/open-type-layout.h:76
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Mark to Mark Positioning"
+msgstr "_Marcar"
+
+#: gtk/open-type-layout.h:77
+msgctxt "OpenType layout"
+msgid "Mark Positioning via Substitution"
+msgstr ""
+
+#: gtk/open-type-layout.h:78
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Alternate Annotation Forms"
+msgstr "Alternativ"
+
+#: gtk/open-type-layout.h:79
+msgctxt "OpenType layout"
+msgid "NLC Kanji Forms"
+msgstr "Formes NLC kanji"
+
+#: gtk/open-type-layout.h:80
+msgctxt "OpenType layout"
+msgid "Nukta Forms"
+msgstr "Formes nukta"
+
+#: gtk/open-type-layout.h:81
+msgctxt "OpenType layout"
+msgid "Numerators"
+msgstr ""
+
+#: gtk/open-type-layout.h:82
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Oldstyle Figures"
+msgstr "Ciffres por tabelles"
+
+#: gtk/open-type-layout.h:83
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Optical Bounds"
+msgstr "Optical"
+
+#: gtk/open-type-layout.h:84
+#, fuzzy
+#| msgid "Signals"
+msgctxt "OpenType layout"
+msgid "Ordinals"
+msgstr "Signales"
+
+#: gtk/open-type-layout.h:85
+msgctxt "OpenType layout"
+msgid "Ornaments"
+msgstr ""
+
+#: gtk/open-type-layout.h:86
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Proportional Alternate Widths"
+msgstr "Automatic largore de columnes"
+
+#: gtk/open-type-layout.h:87
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Petite Capitals"
+msgstr "Majuscules"
+
+#: gtk/open-type-layout.h:88
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Proportional Kana"
+msgstr "Japanesi (kana)"
+
+#: gtk/open-type-layout.h:89
+#, fuzzy
+#| msgid "Properties"
+msgctxt "OpenType layout"
+msgid "Proportional Figures"
+msgstr "Ciffres por tabelles"
+
+#: gtk/open-type-layout.h:90
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Pre-Base Forms"
+msgstr "Base"
+
+#: gtk/open-type-layout.h:91
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Pre-base Substitutions"
+msgstr "Substitutiones"
+
+#: gtk/open-type-layout.h:92
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Post-base Forms"
+msgstr "Base"
+
+#: gtk/open-type-layout.h:93
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Post-base Substitutions"
+msgstr "Substitutiones"
+
+#: gtk/open-type-layout.h:94
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Proportional Widths"
+msgstr "Automatic largore de columnes"
+
+#: gtk/open-type-layout.h:95
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Quarter Widths"
+msgstr "Automatic largore de columnes"
+
+#: gtk/open-type-layout.h:96
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Randomize"
+msgstr "Mixter li actual playlist"
+
+#: gtk/open-type-layout.h:97
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Required Contextual Alternates"
+msgstr "Besonat per"
+
+#: gtk/open-type-layout.h:98
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Rakar Forms"
+msgstr "Formas JIS78"
+
+#: gtk/open-type-layout.h:99
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Required Ligatures"
+msgstr "Ligaturas"
+
+#: gtk/open-type-layout.h:100
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Reph Forms"
+msgstr "Formas JIS78"
+
+#: gtk/open-type-layout.h:101
+#, fuzzy
+#| msgctxt "output-bin"
+#| msgid "Right Bin"
+msgctxt "OpenType layout"
+msgid "Right Bounds"
+msgstr "Límites"
+
+#: gtk/open-type-layout.h:102
+#, fuzzy
+#| msgid "RLM _Right-to-left mark"
+msgctxt "OpenType layout"
+msgid "Right-to-left alternates"
+msgstr "Levul-a-dextri, conto prim"
+
+#: gtk/open-type-layout.h:103
+#, fuzzy
+#| msgid "RLM _Right-to-left mark"
+msgctxt "OpenType layout"
+msgid "Right-to-left mirrored forms"
+msgstr "Levul-a-dextri, conto prim"
+
+#: gtk/open-type-layout.h:104
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Ruby Notation Forms"
+msgstr "Scriptes Ruby"
+
+#: gtk/open-type-layout.h:105
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Required Variation Alternates"
+msgstr "Besonat per"
+
+#: gtk/open-type-layout.h:106
+msgctxt "OpenType layout"
+msgid "Stylistic Alternates"
+msgstr ""
+
+#: gtk/open-type-layout.h:107
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Scientific Inferiors"
+msgstr "Scientific"
+
+#: gtk/open-type-layout.h:108
+msgctxt "OpenType layout"
+msgid "Optical size"
+msgstr "Optical dimension"
+
+#: gtk/open-type-layout.h:109
+msgctxt "OpenType layout"
+msgid "Small Capitals"
+msgstr "Micri majuscules"
+
+#: gtk/open-type-layout.h:110
+msgctxt "OpenType layout"
+msgid "Simplified Forms"
+msgstr "Simplificat formes"
+
+#: gtk/open-type-layout.h:111
+msgctxt "OpenType layout"
+msgid "Math script style alternates"
+msgstr ""
+
+#: gtk/open-type-layout.h:112
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Stretching Glyph Decomposition"
+msgstr "Extension del fin"
+
+#: gtk/open-type-layout.h:113
+msgctxt "OpenType layout"
+msgid "Subscript"
+msgstr "Subscrition"
+
+#: gtk/open-type-layout.h:114
+msgctxt "OpenType layout"
+msgid "Superscript"
+msgstr "Superscrition"
+
+#: gtk/open-type-layout.h:115
+msgctxt "OpenType layout"
+msgid "Swash"
+msgstr ""
+
+#: gtk/open-type-layout.h:116
+msgctxt "OpenType layout"
+msgid "Titling"
+msgstr "Titul-stil"
+
+#: gtk/open-type-layout.h:117
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Trailing Jamo Forms"
+msgstr "Historic formes"
+
+#: gtk/open-type-layout.h:118
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Traditional Name Forms"
+msgstr "Traditional formes"
+
+#: gtk/open-type-layout.h:119
+msgctxt "OpenType layout"
+msgid "Tabular Figures"
+msgstr "Ciffres por tabelles"
+
+#: gtk/open-type-layout.h:120
+msgctxt "OpenType layout"
+msgid "Traditional Forms"
+msgstr "Traditional formes"
+
+#: gtk/open-type-layout.h:121
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Third Widths"
+msgstr "Automatic largore de columnes"
+
+#: gtk/open-type-layout.h:122
+msgctxt "OpenType layout"
+msgid "Unicase"
+msgstr "Unicase"
+
+#: gtk/open-type-layout.h:123
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Alternate Vertical Metrics"
+msgstr "Alternativ:"
+
+#: gtk/open-type-layout.h:124
+msgctxt "OpenType layout"
+msgid "Vattu Variants"
+msgstr "Variantes vattu"
+
+#: gtk/open-type-layout.h:125
+#, fuzzy
+#| msgctxt "sizegroup mode"
+#| msgid "Vertical"
+msgctxt "OpenType layout"
+msgid "Vertical Writing"
+msgstr "_Vertical:"
+
+#: gtk/open-type-layout.h:126
+msgctxt "OpenType layout"
+msgid "Alternate Vertical Half Metrics"
+msgstr ""
+
+#: gtk/open-type-layout.h:127
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Vowel Jamo Forms"
+msgstr "Vocalic punctus de hebreic"
+
+#: gtk/open-type-layout.h:128
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Vertical Kana Alternates"
+msgstr "Vertical"
+
+#: gtk/open-type-layout.h:129
+#, fuzzy
+#| msgctxt "sizegroup mode"
+#| msgid "Vertical"
+msgctxt "OpenType layout"
+msgid "Vertical Kerning"
+msgstr "_Vertical:"
+
+#: gtk/open-type-layout.h:130
+msgctxt "OpenType layout"
+msgid "Proportional Alternate Vertical Metrics"
+msgstr ""
+
+#: gtk/open-type-layout.h:131
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Vertical Alternates and Rotation"
+msgstr "Vertical"
+
+#: gtk/open-type-layout.h:132
+#, fuzzy
+msgctxt "OpenType layout"
+msgid "Vertical Alternates for Rotation"
+msgstr "Vertical"
+
+#: gtk/open-type-layout.h:133
+msgctxt "OpenType layout"
+msgid "Slashed Zero"
+msgstr "Trastrecat zero"
+
+#: gtk/paper_names_offsets.c:4
+msgctxt "paper size"
+msgid "asme_f"
+msgstr "asme_f"
+
+#: gtk/paper_names_offsets.c:5
+msgctxt "paper size"
+msgid "A0×2"
+msgstr "A0×2"
+
+#: gtk/paper_names_offsets.c:6
+msgctxt "paper size"
+msgid "A0"
+msgstr "A0"
+
+#: gtk/paper_names_offsets.c:7
+msgctxt "paper size"
+msgid "A0×3"
+msgstr "A0×3"
+
+#: gtk/paper_names_offsets.c:8
+msgctxt "paper size"
+msgid "A1"
+msgstr "A1"
+
+#: gtk/paper_names_offsets.c:9
+msgctxt "paper size"
+msgid "A10"
+msgstr "A10"
+
+#: gtk/paper_names_offsets.c:10
+msgctxt "paper size"
+msgid "A1×3"
+msgstr "A1×3"
+
+#: gtk/paper_names_offsets.c:11
+msgctxt "paper size"
+msgid "A1×4"
+msgstr "A1×4"
+
+#: gtk/paper_names_offsets.c:12
+msgctxt "paper size"
+msgid "A2"
+msgstr "A2"
+
+#: gtk/paper_names_offsets.c:13
+msgctxt "paper size"
+msgid "A2×3"
+msgstr "A2×3"
+
+#: gtk/paper_names_offsets.c:14
+msgctxt "paper size"
+msgid "A2×4"
+msgstr "A2×4"
+
+#: gtk/paper_names_offsets.c:15
+msgctxt "paper size"
+msgid "A2×5"
+msgstr "A2×5"
+
+#: gtk/paper_names_offsets.c:16
+msgctxt "paper size"
+msgid "A3"
+msgstr "A3"
+
+#: gtk/paper_names_offsets.c:17
+msgctxt "paper size"
+msgid "A3 Extra"
+msgstr "A3 Extra"
+
+#: gtk/paper_names_offsets.c:18
+msgctxt "paper size"
+msgid "A3×3"
+msgstr "A3×3"
+
+#: gtk/paper_names_offsets.c:19
+msgctxt "paper size"
+msgid "A3×4"
+msgstr "A3×4"
+
+#: gtk/paper_names_offsets.c:20
+msgctxt "paper size"
+msgid "A3×5"
+msgstr "A3×5"
+
+#: gtk/paper_names_offsets.c:21
+msgctxt "paper size"
+msgid "A3×6"
+msgstr "A3×6"
+
+#: gtk/paper_names_offsets.c:22
+msgctxt "paper size"
+msgid "A3×7"
+msgstr "A3×7"
+
+#: gtk/paper_names_offsets.c:23
+msgctxt "paper size"
+msgid "A4"
+msgstr "A4"
+
+#: gtk/paper_names_offsets.c:24
+msgctxt "paper size"
+msgid "A4 Extra"
+msgstr "A4 Extra"
+
+#: gtk/paper_names_offsets.c:25
+msgctxt "paper size"
+msgid "A4 Tab"
+msgstr "A4 tab"
+
+#: gtk/paper_names_offsets.c:26
+msgctxt "paper size"
+msgid "A4×3"
+msgstr "A4×3"
+
+#: gtk/paper_names_offsets.c:27
+msgctxt "paper size"
+msgid "A4×4"
+msgstr "A4×4"
+
+#: gtk/paper_names_offsets.c:28
+msgctxt "paper size"
+msgid "A4×5"
+msgstr "A4×5"
+
+#: gtk/paper_names_offsets.c:29
+msgctxt "paper size"
+msgid "A4×6"
+msgstr "A4×6"
+
+#: gtk/paper_names_offsets.c:30
+msgctxt "paper size"
+msgid "A4×7"
+msgstr "A4×7"
+
+#: gtk/paper_names_offsets.c:31
+msgctxt "paper size"
+msgid "A4×8"
+msgstr "A4×8"
+
+#: gtk/paper_names_offsets.c:32
+msgctxt "paper size"
+msgid "A4×9"
+msgstr "A4×9"
+
+#: gtk/paper_names_offsets.c:33
+msgctxt "paper size"
+msgid "A5"
+msgstr "A5"
+
+#: gtk/paper_names_offsets.c:34
+msgctxt "paper size"
+msgid "A5 Extra"
+msgstr "A5 Extra"
+
+#: gtk/paper_names_offsets.c:35
+msgctxt "paper size"
+msgid "A6"
+msgstr "A6"
+
+#: gtk/paper_names_offsets.c:36
+msgctxt "paper size"
+msgid "A7"
+msgstr "A7"
+
+#: gtk/paper_names_offsets.c:37
+msgctxt "paper size"
+msgid "A8"
+msgstr "A8"
+
+#: gtk/paper_names_offsets.c:38
+msgctxt "paper size"
+msgid "A9"
+msgstr "A9"
+
+#: gtk/paper_names_offsets.c:39
+msgctxt "paper size"
+msgid "B0"
+msgstr "B0"
+
+#: gtk/paper_names_offsets.c:40
+msgctxt "paper size"
+msgid "B1"
+msgstr "B1"
+
+#: gtk/paper_names_offsets.c:41
+msgctxt "paper size"
+msgid "B10"
+msgstr "B10"
+
+#: gtk/paper_names_offsets.c:42
+msgctxt "paper size"
+msgid "B2"
+msgstr "B2"
+
+#: gtk/paper_names_offsets.c:43
+msgctxt "paper size"
+msgid "B3"
+msgstr "B3"
+
+#: gtk/paper_names_offsets.c:44
+msgctxt "paper size"
+msgid "B4"
+msgstr "B4"
+
+#: gtk/paper_names_offsets.c:45
+msgctxt "paper size"
+msgid "B5"
+msgstr "B5"
+
+#: gtk/paper_names_offsets.c:46
+msgctxt "paper size"
+msgid "B5 Extra"
+msgstr "B5 Extra"
+
+#: gtk/paper_names_offsets.c:47
+msgctxt "paper size"
+msgid "B6"
+msgstr "B6"
+
+#: gtk/paper_names_offsets.c:48
+msgctxt "paper size"
+msgid "B6/C4"
+msgstr "B6/C4"
+
+#: gtk/paper_names_offsets.c:49
+msgctxt "paper size"
+msgid "B7"
+msgstr "B7"
+
+#: gtk/paper_names_offsets.c:50
+msgctxt "paper size"
+msgid "B8"
+msgstr "B8"
+
+#: gtk/paper_names_offsets.c:51
+msgctxt "paper size"
+msgid "B9"
+msgstr "B9"
+
+#: gtk/paper_names_offsets.c:52
+msgctxt "paper size"
+msgid "C0"
+msgstr "C0"
+
+#: gtk/paper_names_offsets.c:53
+msgctxt "paper size"
+msgid "C1"
+msgstr "C1"
+
+#: gtk/paper_names_offsets.c:54
+msgctxt "paper size"
+msgid "C10"
+msgstr "C10"
+
+#: gtk/paper_names_offsets.c:55
+msgctxt "paper size"
+msgid "C2"
+msgstr "C2"
+
+#: gtk/paper_names_offsets.c:56
+msgctxt "paper size"
+msgid "C3"
+msgstr "C3"
+
+#: gtk/paper_names_offsets.c:57
+msgctxt "paper size"
+msgid "C4"
+msgstr "C4"
+
+#: gtk/paper_names_offsets.c:58
+msgctxt "paper size"
+msgid "C5"
+msgstr "C5"
+
+#: gtk/paper_names_offsets.c:59
+msgctxt "paper size"
+msgid "C6"
+msgstr "C6"
+
+#: gtk/paper_names_offsets.c:60
+msgctxt "paper size"
+msgid "C6/C5"
+msgstr "C6/C5"
+
+#: gtk/paper_names_offsets.c:61
+msgctxt "paper size"
+msgid "C7"
+msgstr "C7"
+
+#: gtk/paper_names_offsets.c:62
+msgctxt "paper size"
+msgid "C7/C6"
+msgstr "C7/C6"
+
+#: gtk/paper_names_offsets.c:63
+msgctxt "paper size"
+msgid "C8"
+msgstr "C8"
+
+#: gtk/paper_names_offsets.c:64
+msgctxt "paper size"
+msgid "C9"
+msgstr "C9"
+
+#: gtk/paper_names_offsets.c:65
+msgctxt "paper size"
+msgid "DL Envelope"
+msgstr "Covert DL"
+
+#: gtk/paper_names_offsets.c:66
+msgctxt "paper size"
+msgid "RA0"
+msgstr "RA0"
+
+#: gtk/paper_names_offsets.c:67
+msgctxt "paper size"
+msgid "RA1"
+msgstr "RA1"
+
+#: gtk/paper_names_offsets.c:68
+msgctxt "paper size"
+msgid "RA2"
+msgstr "RA2"
+
+#: gtk/paper_names_offsets.c:69
+msgctxt "paper size"
+msgid "RA3"
+msgstr "RA3"
+
+#: gtk/paper_names_offsets.c:70
+msgctxt "paper size"
+msgid "RA4"
+msgstr "RA4"
+
+#: gtk/paper_names_offsets.c:71
+msgctxt "paper size"
+msgid "SRA0"
+msgstr "SRA0"
+
+#: gtk/paper_names_offsets.c:72
+msgctxt "paper size"
+msgid "SRA1"
+msgstr "SRA1"
+
+#: gtk/paper_names_offsets.c:73
+msgctxt "paper size"
+msgid "SRA2"
+msgstr "SRA2"
+
+#: gtk/paper_names_offsets.c:74
+msgctxt "paper size"
+msgid "SRA3"
+msgstr "SRA3"
+
+#: gtk/paper_names_offsets.c:75
+msgctxt "paper size"
+msgid "SRA4"
+msgstr "SRA4"
+
+#: gtk/paper_names_offsets.c:76
+msgctxt "paper size"
+msgid "JB0"
+msgstr "JB0"
+
+#: gtk/paper_names_offsets.c:77
+msgctxt "paper size"
+msgid "JB1"
+msgstr "JB1"
+
+#: gtk/paper_names_offsets.c:78
+msgctxt "paper size"
+msgid "JB10"
+msgstr "JB10"
+
+#: gtk/paper_names_offsets.c:79
+msgctxt "paper size"
+msgid "JB2"
+msgstr "JB2"
+
+#: gtk/paper_names_offsets.c:80
+msgctxt "paper size"
+msgid "JB3"
+msgstr "JB3"
+
+#: gtk/paper_names_offsets.c:81
+msgctxt "paper size"
+msgid "JB4"
+msgstr "JB4"
+
+#: gtk/paper_names_offsets.c:82
+msgctxt "paper size"
+msgid "JB5"
+msgstr "JB5"
+
+#: gtk/paper_names_offsets.c:83
+msgctxt "paper size"
+msgid "JB6"
+msgstr "JB6"
+
+#: gtk/paper_names_offsets.c:84
+msgctxt "paper size"
+msgid "JB7"
+msgstr "JB7"
+
+#: gtk/paper_names_offsets.c:85
+msgctxt "paper size"
+msgid "JB8"
+msgstr "JB8"
+
+#: gtk/paper_names_offsets.c:86
+msgctxt "paper size"
+msgid "JB9"
+msgstr "JB9"
+
+#: gtk/paper_names_offsets.c:87
+msgctxt "paper size"
+msgid "jis exec"
+msgstr "jis exec"
+
+#: gtk/paper_names_offsets.c:88
+msgctxt "paper size"
+msgid "Choukei 2 Envelope"
+msgstr "Covert Choukei 2"
+
+#: gtk/paper_names_offsets.c:89
+msgctxt "paper size"
+msgid "Choukei 3 Envelope"
+msgstr "Covert Choukei 3"
+
+#: gtk/paper_names_offsets.c:90
+msgctxt "paper size"
+msgid "Choukei 4 Envelope"
+msgstr "Covert Choukei 4"
+
+#: gtk/paper_names_offsets.c:91
+msgctxt "paper size"
+msgid "Choukei 40 Envelope"
+msgstr "Covert Choukei 40"
+
+#: gtk/paper_names_offsets.c:92
+msgctxt "paper size"
+msgid "hagaki (postcard)"
+msgstr "hagaki (carte postal)"
+
+#: gtk/paper_names_offsets.c:93
+msgctxt "paper size"
+msgid "kahu Envelope"
+msgstr "Covert kahu"
+
+#: gtk/paper_names_offsets.c:94
+msgctxt "paper size"
+msgid "kaku2 Envelope"
+msgstr "Covert kaku2"
+
+#: gtk/paper_names_offsets.c:95
+msgctxt "paper size"
+msgid "kaku3 Envelope"
+msgstr "Covert kaku3"
+
+#: gtk/paper_names_offsets.c:96
+msgctxt "paper size"
+msgid "kaku4 Envelope"
+msgstr "Covert kaku4"
+
+#: gtk/paper_names_offsets.c:97
+msgctxt "paper size"
+msgid "kaku5 Envelope"
+msgstr "Covert kaku5"
+
+#: gtk/paper_names_offsets.c:98
+msgctxt "paper size"
+msgid "kaku7 Envelope"
+msgstr "Covert kaku7"
+
+#: gtk/paper_names_offsets.c:99
+msgctxt "paper size"
+msgid "kaku8 Envelope"
+msgstr "Covert kaku8"
+
+#: gtk/paper_names_offsets.c:100
+#, fuzzy
+msgctxt "paper size"
+msgid "oufuku (reply postcard)"
+msgstr "Carte postal"
+
+#: gtk/paper_names_offsets.c:101
+msgctxt "paper size"
+msgid "you4 Envelope"
+msgstr "Covert you4"
+
+#: gtk/paper_names_offsets.c:102
+msgctxt "paper size"
+msgid "you6 Envelope"
+msgstr "Covert you6"
+
+#: gtk/paper_names_offsets.c:103
+msgctxt "paper size"
+msgid "10×11"
+msgstr "10×11"
+
+#: gtk/paper_names_offsets.c:104
+msgctxt "paper size"
+msgid "10×13"
+msgstr "10×13"
+
+#: gtk/paper_names_offsets.c:105
+msgctxt "paper size"
+msgid "10×14"
+msgstr "10×14"
+
+#: gtk/paper_names_offsets.c:106
+msgctxt "paper size"
+msgid "10×15"
+msgstr "10×15"
+
+#: gtk/paper_names_offsets.c:107
+msgctxt "paper size"
+msgid "11×12"
+msgstr "11×12"
+
+#: gtk/paper_names_offsets.c:108
+msgctxt "paper size"
+msgid "11×15"
+msgstr "11×15"
+
+#: gtk/paper_names_offsets.c:109
+msgctxt "paper size"
+msgid "12×19"
+msgstr "12×19"
+
+#: gtk/paper_names_offsets.c:110
+msgctxt "paper size"
+msgid "5×7"
+msgstr "5×7"
+
+#: gtk/paper_names_offsets.c:111
+msgctxt "paper size"
+msgid "6×9 Envelope"
+msgstr "Covert 6×9"
+
+#: gtk/paper_names_offsets.c:112
+msgctxt "paper size"
+msgid "7×9 Envelope"
+msgstr "Covert 7×9"
+
+#: gtk/paper_names_offsets.c:113
+msgctxt "paper size"
+msgid "8×10 Envelope"
+msgstr "Covert 8×10"
+
+#: gtk/paper_names_offsets.c:114
+msgctxt "paper size"
+msgid "9×11 Envelope"
+msgstr "Covert 9×11"
+
+#: gtk/paper_names_offsets.c:115
+msgctxt "paper size"
+msgid "9×12 Envelope"
+msgstr "Covert 9×12"
+
+#: gtk/paper_names_offsets.c:116
+msgctxt "paper size"
+msgid "a2 Envelope"
+msgstr "Covert a2"
+
+#: gtk/paper_names_offsets.c:117
+msgctxt "paper size"
+msgid "Arch A"
+msgstr "Arch A"
+
+#: gtk/paper_names_offsets.c:118
+msgctxt "paper size"
+msgid "Arch B"
+msgstr "Arch B"
+
+#: gtk/paper_names_offsets.c:119
+msgctxt "paper size"
+msgid "Arch C"
+msgstr "Arch C"
+
+#: gtk/paper_names_offsets.c:120
+msgctxt "paper size"
+msgid "Arch D"
+msgstr "Arch D"
+
+#: gtk/paper_names_offsets.c:121
+msgctxt "paper size"
+msgid "Arch E"
+msgstr "Arch E"
+
+#: gtk/paper_names_offsets.c:122
+msgctxt "paper size"
+msgid "b-plus"
+msgstr "b-plus"
+
+#: gtk/paper_names_offsets.c:123
+msgctxt "paper size"
+msgid "c"
+msgstr "c"
+
+#: gtk/paper_names_offsets.c:124
+msgctxt "paper size"
+msgid "c5 Envelope"
+msgstr "Covert c5"
+
+#: gtk/paper_names_offsets.c:125
+msgctxt "paper size"
+msgid "d"
+msgstr "d"
+
+#: gtk/paper_names_offsets.c:126
+msgctxt "paper size"
+msgid "e"
+msgstr "e"
+
+#: gtk/paper_names_offsets.c:127
+msgctxt "paper size"
+msgid "edp"
+msgstr "edp"
+
+#: gtk/paper_names_offsets.c:128
+msgctxt "paper size"
+msgid "European edp"
+msgstr "edp europan"
+
+#: gtk/paper_names_offsets.c:129
+msgctxt "paper size"
+msgid "Executive"
+msgstr "Executive"
+
+#: gtk/paper_names_offsets.c:130
+msgctxt "paper size"
+msgid "f"
+msgstr "f"
+
+#: gtk/paper_names_offsets.c:131
+#, fuzzy
+msgctxt "paper size"
+msgid "Fan-Fold European"
+msgstr "_Plicar omni"
+
+#: gtk/paper_names_offsets.c:132
+#, fuzzy
+msgctxt "paper size"
+msgid "Fan-Fold US"
+msgstr "Ventilator"
+
+#: gtk/paper_names_offsets.c:133
+#, fuzzy
+msgctxt "paper size"
+msgid "Fan-Fold German Legal"
+msgstr "_German"
+
+#: gtk/paper_names_offsets.c:134
+#, fuzzy
+msgctxt "paper size"
+msgid "Government Legal"
+msgstr "US Legal Extra"
+
+#: gtk/paper_names_offsets.c:135
+#, fuzzy
+msgctxt "paper size"
+msgid "Government Letter"
+msgstr "US _Letter"
+
+#: gtk/paper_names_offsets.c:136
+#, fuzzy
+msgctxt "paper size"
+msgid "Index 3×5"
+msgstr "Ãndex"
+
+#: gtk/paper_names_offsets.c:137
+#, fuzzy
+msgctxt "paper size"
+msgid "Index 4×6 (postcard)"
+msgstr "3×2 / 6×4"
+
+#: gtk/paper_names_offsets.c:138
+#, fuzzy
+msgctxt "paper size"
+msgid "Index 4×6 ext"
+msgstr "4 × 6 in."
+
+#: gtk/paper_names_offsets.c:139
+#, fuzzy
+msgctxt "paper size"
+msgid "Index 5×8"
+msgstr "10×8 / 5×4"
+
+#: gtk/paper_names_offsets.c:140
+msgctxt "paper size"
+msgid "Invoice"
+msgstr "Factura"
+
+#: gtk/paper_names_offsets.c:141
+msgctxt "paper size"
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#: gtk/paper_names_offsets.c:142
+msgctxt "paper size"
+msgid "US Legal"
+msgstr "US Legal"
+
+#: gtk/paper_names_offsets.c:143
+msgctxt "paper size"
+msgid "US Legal Extra"
+msgstr "US Legal Extra"
+
+#: gtk/paper_names_offsets.c:144
+msgctxt "paper size"
+msgid "US Letter"
+msgstr "US Letter"
+
+#: gtk/paper_names_offsets.c:145
+msgctxt "paper size"
+msgid "US Letter Extra"
+msgstr "US Letter Extra"
+
+#: gtk/paper_names_offsets.c:146
+msgctxt "paper size"
+msgid "US Letter Plus"
+msgstr "US Letter Plus"
+
+#: gtk/paper_names_offsets.c:147
+#, fuzzy
+msgctxt "paper size"
+msgid "Monarch Envelope"
+msgstr "Covert kaku2"
+
+#: gtk/paper_names_offsets.c:148
+msgctxt "paper size"
+msgid "#10 Envelope"
+msgstr "Covert #10"
+
+#: gtk/paper_names_offsets.c:149
+msgctxt "paper size"
+msgid "#11 Envelope"
+msgstr "Covert #11"
+
+#: gtk/paper_names_offsets.c:150
+msgctxt "paper size"
+msgid "#12 Envelope"
+msgstr "Covert #12"
+
+#: gtk/paper_names_offsets.c:151
+msgctxt "paper size"
+msgid "#14 Envelope"
+msgstr "Covert #14"
+
+#: gtk/paper_names_offsets.c:152
+msgctxt "paper size"
+msgid "#9 Envelope"
+msgstr "Covert #9"
+
+#: gtk/paper_names_offsets.c:153
+msgctxt "paper size"
+msgid "Oficio"
+msgstr "Oficio"
+
+#: gtk/paper_names_offsets.c:154
+#, fuzzy
+msgctxt "paper size"
+msgid "Personal Envelope"
+msgstr "_Personal"
+
+#: gtk/paper_names_offsets.c:155
+msgctxt "paper size"
+msgid "Quarto"
+msgstr "Quarto"
+
+#: gtk/paper_names_offsets.c:156
+msgctxt "paper size"
+msgid "Super A"
+msgstr "Super A"
+
+#: gtk/paper_names_offsets.c:157
+msgctxt "paper size"
+msgid "Super B"
+msgstr "Super B"
+
+#: gtk/paper_names_offsets.c:158
+msgctxt "paper size"
+msgid "Wide Format"
+msgstr "Larg formate"
+
+#: gtk/paper_names_offsets.c:159
+msgctxt "paper size"
+msgid "Photo L"
+msgstr "Foto L"
+
+#: gtk/paper_names_offsets.c:160
+msgctxt "paper size"
+msgid "Dai-pa-kai"
+msgstr "Dai-pa-kai"
+
+#: gtk/paper_names_offsets.c:161
+msgctxt "paper size"
+msgid "Folio"
+msgstr "Folio"
+
+#: gtk/paper_names_offsets.c:162
+msgctxt "paper size"
+msgid "Folio sp"
+msgstr "Folio sp"
+
+#: gtk/paper_names_offsets.c:163
+msgctxt "paper size"
+msgid "Invite Envelope"
+msgstr "Covert por invitation"
+
+#: gtk/paper_names_offsets.c:164
+msgctxt "paper size"
+msgid "Italian Envelope"
+msgstr "Covert italian"
+
+#: gtk/paper_names_offsets.c:165
+msgctxt "paper size"
+msgid "juuro-ku-kai"
+msgstr "juuro-ku-kai"
+
+#: gtk/paper_names_offsets.c:166
+msgctxt "paper size"
+msgid "Large Photo"
+msgstr "Grand foto"
+
+#: gtk/paper_names_offsets.c:167
+msgctxt "paper size"
+msgid "Medium Photo"
+msgstr "Medie foto"
+
+#: gtk/paper_names_offsets.c:168
+msgctxt "paper size"
+msgid "pa-kai"
+msgstr "pa-kai"
+
+#: gtk/paper_names_offsets.c:169
+msgctxt "paper size"
+msgid "Postfix Envelope"
+msgstr "Covert Postfix"
+
+#: gtk/paper_names_offsets.c:170
+msgctxt "paper size"
+msgid "Small Photo"
+msgstr "Micri foto"
+
+#: gtk/paper_names_offsets.c:171
+msgctxt "paper size"
+msgid "Wide Photo"
+msgstr "Larg foto"
+
+#: gtk/paper_names_offsets.c:172
+msgctxt "paper size"
+msgid "prc1 Envelope"
+msgstr "Covert prc1"
+
+#: gtk/paper_names_offsets.c:173
+msgctxt "paper size"
+msgid "prc10 Envelope"
+msgstr "Covert prc10"
+
+#: gtk/paper_names_offsets.c:174
+msgctxt "paper size"
+msgid "prc 16k"
+msgstr "prc 16k"
+
+#: gtk/paper_names_offsets.c:175
+msgctxt "paper size"
+msgid "prc2 Envelope"
+msgstr "Covert prc2"
+
+#: gtk/paper_names_offsets.c:176
+msgctxt "paper size"
+msgid "prc3 Envelope"
+msgstr "Covert prc3"
+
+#: gtk/paper_names_offsets.c:177
+msgctxt "paper size"
+msgid "prc 32k"
+msgstr "prc 32k"
+
+#: gtk/paper_names_offsets.c:178
+msgctxt "paper size"
+msgid "prc4 Envelope"
+msgstr "Covert prc4"
+
+#: gtk/paper_names_offsets.c:179
+msgctxt "paper size"
+msgid "prc5 Envelope"
+msgstr "Covert prc5"
+
+#: gtk/paper_names_offsets.c:180
+msgctxt "paper size"
+msgid "prc6 Envelope"
+msgstr "Covert prc6"
+
+#: gtk/paper_names_offsets.c:181
+msgctxt "paper size"
+msgid "prc7 Envelope"
+msgstr "Covert prc7"
+
+#: gtk/paper_names_offsets.c:182
+msgctxt "paper size"
+msgid "prc8 Envelope"
+msgstr "Covert prc8"
+
+#: gtk/paper_names_offsets.c:183
+msgctxt "paper size"
+msgid "prc9 Envelope"
+msgstr "Covert prc9"
+
+#: gtk/paper_names_offsets.c:184
+msgctxt "paper size"
+msgid "ROC 16k"
+msgstr "ROC 16k"
+
+#: gtk/paper_names_offsets.c:185
+msgctxt "paper size"
+msgid "ROC 8k"
+msgstr "ROC 8k"
+
+#: gtk/ui/gtkaboutdialog.ui:62
+msgid "About"
+msgstr "Pri"
+
+#: gtk/ui/gtkaboutdialog.ui:123
+msgid "Credits"
+msgstr "Credites"
+
+#: gtk/ui/gtkaboutdialog.ui:206
+msgid "System"
+msgstr "Sistema"
+
+#: gtk/ui/gtkappchooserdialog.ui:60
+msgid "_View All Applications"
+msgstr "_Monstra omni applicationes"
+
+#: gtk/ui/gtkappchooserdialog.ui:66
+msgid "_Find New Applications"
+msgstr "_Trovar nov applicationes"
+
+#: gtk/ui/gtkappchooserwidget.ui:100
+msgid "No applications found."
+msgstr "Null applicationes trovat."
+
+#: gtk/ui/gtkapplication-quartz.ui:13
+msgid "Preferences"
+msgstr "Preferenties"
+
+#: gtk/ui/gtkapplication-quartz.ui:19
+msgid "Services"
+msgstr "Servicios"
+
+#: gtk/ui/gtkapplication-quartz.ui:25
+#, c-format
+msgid "Hide %s"
+msgstr "Celar %s"
+
+#: gtk/ui/gtkapplication-quartz.ui:30
+msgid "Hide Others"
+msgstr "Celar li altris"
+
+#: gtk/ui/gtkapplication-quartz.ui:35
+msgid "Show All"
+msgstr "Revelar omnis"
+
+#: gtk/ui/gtkapplication-quartz.ui:42
+#, c-format
+msgid "Quit %s"
+msgstr "Salir %s"
+
+#: gtk/ui/gtkassistant.ui:64
+msgid "_Finish"
+msgstr "_Finir"
+
+#: gtk/ui/gtkassistant.ui:75
+msgid "_Back"
+msgstr "_Precedent"
+
+#: gtk/ui/gtkassistant.ui:86
+msgid "_Next"
+msgstr "_Sequent"
+
+#: gtk/ui/gtkcolorchooserdialog.ui:4
+msgid "Select a Color"
+msgstr "Selecter un color"
+
+#: gtk/ui/gtkcoloreditor.ui:43 gtk/ui/gtkcoloreditor.ui:53
+msgid "Pick a color from the screen"
+msgstr "Selecte un color del ecran"
+
+#: gtk/ui/gtkcoloreditor.ui:80
+#, fuzzy
+msgid "Hexadecimal color or color name"
+msgstr "_Nómine del color:"
+
+#: gtk/ui/gtkcoloreditor.ui:95
+msgid "Hue"
+msgstr "Color"
+
+#: gtk/ui/gtkcoloreditor.ui:111
+msgid "Alpha value"
+msgstr "Valore alfa"
+
+#: gtk/ui/gtkcoloreditor.ui:129
+msgid "Saturation and value"
+msgstr "Saturation e valore"
+
+#: gtk/ui/gtkcoloreditor.ui:153
+msgctxt "Color channel"
+msgid "A"
+msgstr "A"
+
+#: gtk/ui/gtkcoloreditor.ui:189
+msgctxt "Color channel"
+msgid "H"
+msgstr "H"
+
+#: gtk/ui/gtkcoloreditor.ui:226
+msgctxt "Color Channel"
+msgid "S"
+msgstr "S"
+
+#: gtk/ui/gtkcoloreditor.ui:235
+msgctxt "Color Channel"
+msgid "V"
+msgstr "V"
+
+#: gtk/ui/gtkdropdown.ui:19
+msgid "(None)"
+msgstr "(Null)"
+
+#: gtk/ui/gtkdropdown.ui:68
+msgid "Search…"
+msgstr "Serchar…"
+
+#: gtk/ui/gtkemojichooser.ui:69 gtk/ui/gtkemojichooser.ui:239
+msgctxt "emoji category"
+msgid "Smileys & People"
+msgstr "Smileys a homes"
+
+#: gtk/ui/gtkemojichooser.ui:94 gtk/ui/gtkemojichooser.ui:248
+msgctxt "emoji category"
+msgid "Body & Clothing"
+msgstr "Córpor e vestimentes"
+
+#: gtk/ui/gtkemojichooser.ui:119 gtk/ui/gtkemojichooser.ui:257
+msgctxt "emoji category"
+msgid "Animals & Nature"
+msgstr "Animales e natura"
+
+#: gtk/ui/gtkemojichooser.ui:133 gtk/ui/gtkemojichooser.ui:266
+msgctxt "emoji category"
+msgid "Food & Drink"
+msgstr "Manjage e trinkage"
+
+#: gtk/ui/gtkemojichooser.ui:147 gtk/ui/gtkemojichooser.ui:275
+msgctxt "emoji category"
+msgid "Travel & Places"
+msgstr "Locs e turisme"
+
+#: gtk/ui/gtkemojichooser.ui:161 gtk/ui/gtkemojichooser.ui:284
+msgctxt "emoji category"
+msgid "Activities"
+msgstr "Activitás"
+
+#: gtk/ui/gtkemojichooser.ui:175 gtk/ui/gtkemojichooser.ui:293
+msgctxt "emoji category"
+msgid "Objects"
+msgstr "Objectes"
+
+#: gtk/ui/gtkemojichooser.ui:189 gtk/ui/gtkemojichooser.ui:302
+msgctxt "emoji category"
+msgid "Symbols"
+msgstr "Simboles"
+
+#: gtk/ui/gtkemojichooser.ui:203 gtk/ui/gtkemojichooser.ui:311
+msgctxt "emoji category"
+msgid "Flags"
+msgstr "Flaggas"
+
+#: gtk/ui/gtkemojichooser.ui:230
+msgctxt "emoji category"
+msgid "Recent"
+msgstr "Recentis"
+
+#: gtk/ui/gtkfilechooserwidget.ui:64
+msgid "Create Folder"
+msgstr "Crear un fólder"
+
+#: gtk/ui/gtkfilechooserwidget.ui:249
+#, fuzzy
+msgid "Remote location — only searching the current folder"
+msgstr "Serchar solmen li actual fólder"
+
+#: gtk/ui/gtkfilechooserwidget.ui:378
+msgid "Folder Name"
+msgstr "Nómine del fólder"
+
+#: gtk/ui/gtkfilechooserwidget.ui:404
+msgid "_Create"
+msgstr "_Crear"
+
+#: gtk/ui/gtkfontchooserdialog.ui:4
+msgid "Select Font"
+msgstr "Selecter un fonde"
+
+#: gtk/ui/gtkfontchooserwidget.ui:64
+msgid "Search font name"
+msgstr "Serchar un nómine del fonde"
+
+#: gtk/ui/gtkfontchooserwidget.ui:79
+#, fuzzy
+msgid "Filter by"
+msgstr "&Filtre…"
+
+#: gtk/ui/gtkfontchooserwidget.ui:89
+#, fuzzy
+msgid "Monospace"
+msgstr "Monospacie"
+
+#: gtk/ui/gtkfontchooserwidget.ui:95
+msgid "Language"
+msgstr "Lingue"
+
+#: gtk/ui/gtkfontchooserwidget.ui:188 gtk/ui/gtkfontchooserwidget.ui:324
+#, fuzzy
+msgid "Preview Font"
+msgstr "Fonde de previder:"
+
+#: gtk/ui/gtkfontchooserwidget.ui:191 gtk/ui/gtkfontchooserwidget.ui:220
+msgid "horizontal"
+msgstr "horizontal"
+
+#: gtk/ui/gtkfontchooserwidget.ui:270
+msgid "No Fonts Found"
+msgstr "Fondes ne esset trovat"
+
+#: gtk/ui/gtkpagesetupunixdialog.ui:27
+msgid "_Format for:"
+msgstr "_Formatar por:"
+
+#: gtk/ui/gtkpagesetupunixdialog.ui:51 gtk/ui/gtkprintunixdialog.ui:635
+msgid "_Paper size:"
+msgstr "Dimension del _papere:"
+
+#: gtk/ui/gtkpagesetupunixdialog.ui:86
+msgid "_Orientation:"
+msgstr "_Orientation:"
+
+#: gtk/ui/gtkpagesetupunixdialog.ui:98 gtk/ui/gtkprintunixdialog.ui:675
+msgid "Portrait"
+msgstr "Portrete"
+
+#: gtk/ui/gtkpagesetupunixdialog.ui:109 gtk/ui/gtkprintunixdialog.ui:677
+msgid "Reverse portrait"
+msgstr "Reversat portrait"
+
+#: gtk/ui/gtkpagesetupunixdialog.ui:121 gtk/ui/gtkprintunixdialog.ui:676
+msgid "Landscape"
+msgstr "Paisage"
+
+#: gtk/ui/gtkpagesetupunixdialog.ui:132 gtk/ui/gtkprintunixdialog.ui:678
+msgid "Reverse landscape"
+msgstr "Reversat paisage"
+
+#: gtk/ui/gtkplacesview.ui:28
+#, fuzzy
+msgid "Server Addresses"
+msgstr "[Adresses]"
+
+#: gtk/ui/gtkplacesview.ui:40
+msgid ""
+"Server addresses are made up of a protocol prefix and an address. Examples:"
+msgstr ""
+
+#: gtk/ui/gtkplacesview.ui:66
+msgid "Available Protocols"
+msgstr "Disponibil protocoles"
+
+#. Translators: Server as any successfully connected network address
+#: gtk/ui/gtkplacesview.ui:118
+#, fuzzy
+#| msgid "No printer found"
+msgid "No recent servers found"
+msgstr "Null recent servitores trovat"
+
+#: gtk/ui/gtkplacesview.ui:141
+msgid "Recent Servers"
+msgstr "Recent servitores"
+
+#: gtk/ui/gtkplacesview.ui:221
+msgid "No results found"
+msgstr "Null resultates"
+
+#: gtk/ui/gtkplacesview.ui:252
+msgid "Connect to _Server"
+msgstr "Connexer a _servitore"
+
+#: gtk/ui/gtkplacesview.ui:277
+#, fuzzy
+msgid "Enter server address…"
+msgstr "Un nómine o adresse de servitore es mancant."
+
+#. this is the header for the printer status column in the print dialog
+#: gtk/ui/gtkprintunixdialog.ui:145
+msgid "Status"
+msgstr "Statu"
+
+#: gtk/ui/gtkprintunixdialog.ui:199
+msgid "Range"
+msgstr "Range"
+
+#: gtk/ui/gtkprintunixdialog.ui:212
+msgid "_All Pages"
+msgstr "_Omni págines"
+
+#: gtk/ui/gtkprintunixdialog.ui:224
+msgid "C_urrent Page"
+msgstr "Act_ual págine"
+
+#: gtk/ui/gtkprintunixdialog.ui:237
+msgid "Se_lection"
+msgstr "Se_lection"
+
+#: gtk/ui/gtkprintunixdialog.ui:250
+msgid "Pag_es:"
+msgstr "Págin_es:"
+
+#: gtk/ui/gtkprintunixdialog.ui:251 gtk/ui/gtkprintunixdialog.ui:264
+#, fuzzy
+#| msgid ""
+#| "Specify one or more page ranges,\n"
+#| " e.g. 1–3, 7, 11"
+msgid ""
+"Specify one or more page ranges,\n"
+" e.g. 1–3, 7, 11"
+msgstr ""
+"Provide un o plu ranges de págines,\n"
+"p.ex. 1-3, 7, 11"
+
+#: gtk/ui/gtkprintunixdialog.ui:287
+msgid "Copies"
+msgstr "Copies"
+
+#: gtk/ui/gtkprintunixdialog.ui:302
+msgid "Copie_s:"
+msgstr "Copie_s:"
+
+#: gtk/ui/gtkprintunixdialog.ui:325
+#, fuzzy
+msgid "C_ollate"
+msgstr ", C"
+
+#: gtk/ui/gtkprintunixdialog.ui:336
+msgid "_Reverse"
+msgstr "_Reversat"
+
+#: gtk/ui/gtkprintunixdialog.ui:366
+msgid "General"
+msgstr "General"
+
+#: gtk/ui/gtkprintunixdialog.ui:408
+msgid "T_wo-sided:"
+msgstr "D_uplic:"
+
+#: gtk/ui/gtkprintunixdialog.ui:430
+msgid "Pages per _side:"
+msgstr "Págines por _látere:"
+
+#: gtk/ui/gtkprintunixdialog.ui:454
+msgid "Page or_dering:"
+msgstr "Ór_dine de pagines:"
+
+#: gtk/ui/gtkprintunixdialog.ui:477
+msgid "_Only print:"
+msgstr "Printar s_olmen:"
+
+#: gtk/ui/gtkprintunixdialog.ui:493
+msgid "All sheets"
+msgstr "Omni folies"
+
+#: gtk/ui/gtkprintunixdialog.ui:494
+msgid "Even sheets"
+msgstr "Pari folies"
+
+#: gtk/ui/gtkprintunixdialog.ui:495
+msgid "Odd sheets"
+msgstr "Ãnpar folies"
+
+#: gtk/ui/gtkprintunixdialog.ui:509
+msgid "Sc_ale:"
+msgstr "Sc_ale:"
+
+#: gtk/ui/gtkprintunixdialog.ui:554
+msgid "Paper"
+msgstr "Papere"
+
+#: gtk/ui/gtkprintunixdialog.ui:569
+msgid "Paper _type:"
+msgstr "_Tip de papere:"
+
+#: gtk/ui/gtkprintunixdialog.ui:591
+#, fuzzy
+msgid "Paper _source:"
+msgstr "Papere"
+
+#: gtk/ui/gtkprintunixdialog.ui:613
+#, fuzzy
+msgid "Output t_ray:"
+msgstr "Production"
+
+#: gtk/ui/gtkprintunixdialog.ui:658
+msgid "Or_ientation:"
+msgstr "Or_ientation:"
+
+#: gtk/ui/gtkprintunixdialog.ui:732
+msgid "Job Details"
+msgstr "Detallies del tache"
+
+#: gtk/ui/gtkprintunixdialog.ui:747
+msgid "Pri_ority:"
+msgstr "Pri_oritá:"
+
+#: gtk/ui/gtkprintunixdialog.ui:768
+msgid "_Billing info:"
+msgstr "Info de pa_yament…"
+
+#: gtk/ui/gtkprintunixdialog.ui:801
+msgid "Print Document"
+msgstr "Printar document"
+
+#. this is one of the choices for the print at option in the print dialog
+#: gtk/ui/gtkprintunixdialog.ui:814
+msgid "_Now"
+msgstr "_Nu"
+
+#. this is one of the choices for the print at option in the print dialog. It also serves as the label for an entry that allows the user to enter a time.
+#: gtk/ui/gtkprintunixdialog.ui:828
+msgid "A_t:"
+msgstr "_Ye:"
+
+#. Ability to parse the am/pm format depends on actual locale. You can remove the am/pm values below for your locale if they are not supported.
+#: gtk/ui/gtkprintunixdialog.ui:830 gtk/ui/gtkprintunixdialog.ui:832
+#: gtk/ui/gtkprintunixdialog.ui:848 gtk/ui/gtkprintunixdialog.ui:850
+#, fuzzy
+#| msgid ""
+#| "Specify the time of print,\n"
+#| " e.g. 15∶30, 2∶35 pm, 14∶15∶20, 11∶46∶30 am, 4 pm"
+msgid ""
+"Specify the time of print,\n"
+" e.g. 15∶30, 2∶35 pm, 14∶15∶20, 11∶46∶30 am, 4 pm"
+msgstr ""
+"Provide li hora de printation,\n"
+"p.ex. 15:30, 14:15:20, 4"
+
+#. this is one of the choices for the print at option in the print dialog. It means that the print job will not be printed until it explicitly gets 'released'.
+#: gtk/ui/gtkprintunixdialog.ui:862
+msgid "On _hold"
+msgstr "_Detenet"
+
+#: gtk/ui/gtkprintunixdialog.ui:864 gtk/ui/gtkprintunixdialog.ui:865
+msgid "Hold the job until it is explicitly released"
+msgstr ""
+
+#: gtk/ui/gtkprintunixdialog.ui:892
+#, fuzzy
+msgid "Add Cover Page"
+msgstr "Adjuncter un marca-págine al actual págine"
+
+#. this is the label used for the option in the print dialog that controls the front cover page.
+#: gtk/ui/gtkprintunixdialog.ui:907
+msgid "Be_fore:"
+msgstr "_Ante:"
+
+#. this is the label used for the option in the print dialog that controls the back cover page.
+#: gtk/ui/gtkprintunixdialog.ui:928
+msgid "_After:"
+msgstr "_Pos:"
+
+#: gtk/ui/gtkprintunixdialog.ui:957
+msgid "Job"
+msgstr "Tache"
+
+#. This will appear as a tab label in the print dialog.
+#: gtk/ui/gtkprintunixdialog.ui:987
+msgid "Image Quality"
+msgstr "Qualitá de image"
+
+#. This will appear as a tab label in the print dialog.
+#: gtk/ui/gtkprintunixdialog.ui:1016
+msgid "Color"
+msgstr "Color"
+
+#. This will appear as a tab label in the print dialog. It's a typographical term, as in "Binding and finishing"
+#: gtk/ui/gtkprintunixdialog.ui:1045
+#, fuzzy
+msgid "Finishing"
+msgstr "Finalisation…"
+
+#: gtk/ui/gtkprintunixdialog.ui:1074
+msgid "Advanced"
+msgstr "Avansates"
+
+#: gtk/ui/gtkprintunixdialog.ui:1090
+#, fuzzy
+msgid "Some of the settings in the dialog conflict"
+msgstr "Ne posset crear li dialog de parametres."
+
+#: modules/media/gtkffmediafile.c:253
+#, fuzzy, c-format
+#| msgid "Unspecified error"
+msgid "Unspecified error decoding media"
+msgstr "Ãnspecificat errore"
+
+#: modules/media/gtkffmediafile.c:286
+#, fuzzy, c-format
+msgid "Cannot find decoder: %s"
+msgstr "Ne successat gardar li file «%s»"
+
+#: modules/media/gtkffmediafile.c:296 modules/media/gtkffmediafile.c:363
+#, fuzzy
+msgid "Failed to allocate a codec context"
+msgstr "Ne successat codificar li file «{basename}» per li codec «{codec}»"
+
+#: modules/media/gtkffmediafile.c:341
+#, fuzzy, c-format
+msgid "Cannot find encoder: %s"
+msgstr "Ne successat gardar li file «%s»"
+
+#: modules/media/gtkffmediafile.c:352
+#, fuzzy
+msgid "Cannot add new stream"
+msgstr "Nov fluvie"
+
+#: modules/media/gtkffmediafile.c:485 modules/media/gtkffmediafile.c:942
+#, fuzzy
+#| msgid "Failed to load icon"
+msgid "Failed to allocate an audio frame"
+msgstr "Filtration de audio ne successat"
+
+#: modules/media/gtkffmediafile.c:650 modules/media/gtkffmediafile.c:898
+msgid "Not enough memory"
+msgstr "Memorie exhaustet"
+
+#: modules/media/gtkffmediafile.c:821
+#, fuzzy
+msgid "Could not allocate resampler context"
+msgstr "%s: Anzeigenummer konnte nicht gelesen werden"
+
+#: modules/media/gtkffmediafile.c:868
+#, fuzzy
+#| msgid "No items found"
+msgid "No audio output found"
+msgstr "Audioexeada WaveOut"
+
+#: modules/printbackends/gtkprintbackendcups.c:1142
+#: modules/printbackends/gtkprintbackendcups.c:1449
+msgid "Username:"
+msgstr "Nómine de usator:"
+
+#: modules/printbackends/gtkprintbackendcups.c:1143
+#: modules/printbackends/gtkprintbackendcups.c:1458
+msgid "Password:"
+msgstr "Contrasigne:"
+
+#: modules/printbackends/gtkprintbackendcups.c:1181
+#: modules/printbackends/gtkprintbackendcups.c:1471
+#, fuzzy, c-format
+msgid "Authentication is required to print document “%s†on printer %s"
+msgstr "Printar document"
+
+#: modules/printbackends/gtkprintbackendcups.c:1183
+#, fuzzy, c-format
+msgid "Authentication is required to print a document on %s"
+msgstr "Autentication es besonat de %s"
+
+#: modules/printbackends/gtkprintbackendcups.c:1187
+#, fuzzy, c-format
+msgid "Authentication is required to get attributes of job “%sâ€"
+msgstr "Printar document"
+
+#: modules/printbackends/gtkprintbackendcups.c:1189
+msgid "Authentication is required to get attributes of a job"
+msgstr ""
+
+#: modules/printbackends/gtkprintbackendcups.c:1193
+#, c-format
+msgid "Authentication is required to get attributes of printer %s"
+msgstr ""
+
+#: modules/printbackends/gtkprintbackendcups.c:1195
+msgid "Authentication is required to get attributes of a printer"
+msgstr ""
+
+#: modules/printbackends/gtkprintbackendcups.c:1198
+#, c-format
+msgid "Authentication is required to get default printer of %s"
+msgstr ""
+
+#: modules/printbackends/gtkprintbackendcups.c:1201
+#, c-format
+msgid "Authentication is required to get printers from %s"
+msgstr ""
+
+#: modules/printbackends/gtkprintbackendcups.c:1206
+#, c-format
+msgid "Authentication is required to get a file from %s"
+msgstr ""
+
+#: modules/printbackends/gtkprintbackendcups.c:1208
+#, fuzzy, c-format
+msgid "Authentication is required on %s"
+msgstr "Autentication es besonat de %s"
+
+#: modules/printbackends/gtkprintbackendcups.c:1443
+msgid "Domain:"
+msgstr "Dominia:"
+
+#: modules/printbackends/gtkprintbackendcups.c:1473
+#, c-format
+msgid "Authentication is required to print document “%sâ€"
+msgstr "Autentication es besonat por printar li document «%s»"
+
+#: modules/printbackends/gtkprintbackendcups.c:1478
+#, c-format
+msgid "Authentication is required to print this document on printer %s"
+msgstr ""
+
+#: modules/printbackends/gtkprintbackendcups.c:1480
+#, fuzzy
+msgid "Authentication is required to print this document"
+msgstr "Printar document"
+
+#: modules/printbackends/gtkprintbackendcups.c:2568
+#, fuzzy, c-format
+#| msgid "Printer “%s†is out of paper."
+msgid "Printer “%s†is low on toner."
+msgstr " in li printator «%s»"
+
+#: modules/printbackends/gtkprintbackendcups.c:2572
+#, c-format
+msgid "Printer “%s†has no toner left."
+msgstr "Li tóner exhaustet in li printator «%s»."
+
+#. Translators: "Developer" like on photo development context
+#: modules/printbackends/gtkprintbackendcups.c:2577
+#, fuzzy, c-format
+#| msgid "Printer “%s†is out of developer."
+msgid "Printer “%s†is low on developer."
+msgstr " in li printator «%s»"
+
+#. Translators: "Developer" like on photo development context
+#: modules/printbackends/gtkprintbackendcups.c:2582
+#, c-format
+msgid "Printer “%s†is out of developer."
+msgstr "Printator «%s» manca li developpator."
+
+#. Translators: "marker" is one color bin of the printer
+#: modules/printbackends/gtkprintbackendcups.c:2587
+#, fuzzy, c-format
+#| msgid "Printer “%s†is out of paper."
+msgid "Printer “%s†is low on at least one marker supply."
+msgstr "Printator «%s» manca li papere."
+
+#. Translators: "marker" is one color bin of the printer
+#: modules/printbackends/gtkprintbackendcups.c:2592
+#, fuzzy, c-format
+#| msgid "Printer “%s†is out of paper."
+msgid "Printer “%s†is out of at least one marker supply."
+msgstr "Printator «%s» manca li papere."
+
+#: modules/printbackends/gtkprintbackendcups.c:2596
+#, c-format
+msgid "The cover is open on printer “%sâ€."
+msgstr "Li covrette del printator «%s» es apert."
+
+#: modules/printbackends/gtkprintbackendcups.c:2600
+#, c-format
+msgid "The door is open on printer “%sâ€."
+msgstr "Li luca del printator «%s» es apert."
+
+#: modules/printbackends/gtkprintbackendcups.c:2604
+#, fuzzy, c-format
+#| msgid "Printer “%s†is out of paper."
+msgid "Printer “%s†is low on paper."
+msgstr "Papere del printator «%s» exhauste."
+
+#: modules/printbackends/gtkprintbackendcups.c:2608
+#, c-format
+msgid "Printer “%s†is out of paper."
+msgstr "Printator «%s» manca li papere."
+
+#: modules/printbackends/gtkprintbackendcups.c:2612
+#, fuzzy, c-format
+#| msgid "Printer “%s†is out of paper."
+msgid "Printer “%s†is currently offline."
+msgstr "Null driver disponibil por %s."
+
+#: modules/printbackends/gtkprintbackendcups.c:2616
+#, fuzzy, c-format
+#| msgid "There is a problem on printer “%sâ€."
+msgid "There is a problem on printer “%sâ€."
+msgstr "Printator «%s» have un problema."
+
+#. Translators: this is a printer status.
+#: modules/printbackends/gtkprintbackendcups.c:2636
+#, fuzzy
+msgid "Paused; Rejecting Jobs"
+msgstr "Taches in funde"
+
+#. Translators: this is a printer status.
+#: modules/printbackends/gtkprintbackendcups.c:2642
+#, fuzzy
+msgid "Rejecting Jobs"
+msgstr "Taches in funde"
+
+#. Translators: this string connects multiple printer states together.
+#: modules/printbackends/gtkprintbackendcups.c:2683
+msgid "; "
+msgstr ", "
+
+#: modules/printbackends/gtkprintbackendcups.c:4584
+#: modules/printbackends/gtkprintbackendcups.c:4651
+msgctxt "printing option"
+msgid "Two Sided"
+msgstr "Duplic"
+
+#: modules/printbackends/gtkprintbackendcups.c:4585
+msgctxt "printing option"
+msgid "Paper Type"
+msgstr "Tip de papere"
+
+#: modules/printbackends/gtkprintbackendcups.c:4586
+#, fuzzy
+msgctxt "printing option"
+msgid "Paper Source"
+msgstr "Papere"
+
+#: modules/printbackends/gtkprintbackendcups.c:4587
+#: modules/printbackends/gtkprintbackendcups.c:4652
+#, fuzzy
+msgctxt "printing option"
+msgid "Output Tray"
+msgstr "Minimisar a panel"
+
+#: modules/printbackends/gtkprintbackendcups.c:4588
+msgctxt "printing option"
+msgid "Resolution"
+msgstr "Resolution"
+
+#: modules/printbackends/gtkprintbackendcups.c:4589
+#, fuzzy
+#| msgctxt "printing option"
+#| msgid "GhostScript pre-filtering"
+msgctxt "printing option"
+msgid "GhostScript pre-filtering"
+msgstr "Prefiltration de GhostScript"
+
+#: modules/printbackends/gtkprintbackendcups.c:4598
+#, fuzzy
+msgctxt "printing option value"
+msgid "One Sided"
+msgstr "D_uplic:"
+
+#. Translators: this is an option of "Two Sided"
+#: modules/printbackends/gtkprintbackendcups.c:4600
+msgctxt "printing option value"
+msgid "Long Edge (Standard)"
+msgstr "Long bord (standard)"
+
+#. Translators: this is an option of "Two Sided"
+#: modules/printbackends/gtkprintbackendcups.c:4602
+#, fuzzy
+msgctxt "printing option value"
+msgid "Short Edge (Flip)"
+msgstr "Bord:"
+
+#. Translators: this is an option of "Paper Source"
+#: modules/printbackends/gtkprintbackendcups.c:4604
+#: modules/printbackends/gtkprintbackendcups.c:4606
+#: modules/printbackends/gtkprintbackendcups.c:4614
+msgctxt "printing option value"
+msgid "Auto Select"
+msgstr "Autoselecter"
+
+#. Translators: this is an option of "Paper Source"
+#. Translators: this is an option of "Resolution"
+#: modules/printbackends/gtkprintbackendcups.c:4608
+#: modules/printbackends/gtkprintbackendcups.c:4610
+#: modules/printbackends/gtkprintbackendcups.c:4612
+#: modules/printbackends/gtkprintbackendcups.c:4616
+#, fuzzy
+msgctxt "printing option value"
+msgid "Printer Default"
+msgstr "Printator predefinit"
+
+#. Translators: this is an option of "GhostScript"
+#: modules/printbackends/gtkprintbackendcups.c:4618
+msgctxt "printing option value"
+msgid "Embed GhostScript fonts only"
+msgstr ""
+
+#. Translators: this is an option of "GhostScript"
+#: modules/printbackends/gtkprintbackendcups.c:4620
+msgctxt "printing option value"
+msgid "Convert to PS level 1"
+msgstr "Converter a PS nivelle 1"
+
+#. Translators: this is an option of "GhostScript"
+#: modules/printbackends/gtkprintbackendcups.c:4622
+msgctxt "printing option value"
+msgid "Convert to PS level 2"
+msgstr "Converter a PS nivelle 2"
+
+#. Translators: this is an option of "GhostScript"
+#: modules/printbackends/gtkprintbackendcups.c:4624
+#, fuzzy
+msgctxt "printing option value"
+msgid "No pre-filtering"
+msgstr "Prefiltration de GhostScript"
+
+#. Translators: "Miscellaneous" is the label for a button, that opens
+#. up an extra panel of settings in a print dialog.
+#: modules/printbackends/gtkprintbackendcups.c:4633
+msgctxt "printing option group"
+msgid "Miscellaneous"
+msgstr "Diversi"
+
+#: modules/printbackends/gtkprintbackendcups.c:4660
+#, fuzzy
+msgctxt "sides"
+msgid "One Sided"
+msgstr "D_uplic:"
+
+#. Translators: this is an option of "Two Sided"
+#: modules/printbackends/gtkprintbackendcups.c:4662
+#, fuzzy
+msgctxt "sides"
+msgid "Long Edge (Standard)"
+msgstr "Standard"
+
+#. Translators: this is an option of "Two Sided"
+#: modules/printbackends/gtkprintbackendcups.c:4664
+#, fuzzy
+msgctxt "sides"
+msgid "Short Edge (Flip)"
+msgstr "Bord:"
+
+#. Translators: Top output bin
+#: modules/printbackends/gtkprintbackendcups.c:4667
+#, fuzzy
+msgctxt "output-bin"
+msgid "Top Bin"
+msgstr "Bin"
+
+#. Translators: Middle output bin
+#: modules/printbackends/gtkprintbackendcups.c:4669
+#, fuzzy
+msgctxt "output-bin"
+msgid "Middle Bin"
+msgstr "Medial:"
+
+#. Translators: Bottom output bin
+#: modules/printbackends/gtkprintbackendcups.c:4671
+msgctxt "output-bin"
+msgid "Bottom Bin"
+msgstr "Inferiori trog"
+
+#. Translators: Side output bin
+#: modules/printbackends/gtkprintbackendcups.c:4673
+msgctxt "output-bin"
+msgid "Side Bin"
+msgstr "Lateral trog"
+
+#. Translators: Left output bin
+#: modules/printbackends/gtkprintbackendcups.c:4675
+msgctxt "output-bin"
+msgid "Left Bin"
+msgstr "Levul trog"
+
+#. Translators: Right output bin
+#: modules/printbackends/gtkprintbackendcups.c:4677
+msgctxt "output-bin"
+msgid "Right Bin"
+msgstr "Dextri trog"
+
+#. Translators: Center output bin
+#: modules/printbackends/gtkprintbackendcups.c:4679
+msgctxt "output-bin"
+msgid "Center Bin"
+msgstr "Central trog"
+
+#. Translators: Rear output bin
+#: modules/printbackends/gtkprintbackendcups.c:4681
+msgctxt "output-bin"
+msgid "Rear Bin"
+msgstr "Trog posteriori"
+
+#. Translators: Output bin where one sided output is oriented in the face-up position
+#: modules/printbackends/gtkprintbackendcups.c:4683
+#, fuzzy
+msgctxt "output-bin"
+msgid "Face Up Bin"
+msgstr "Bin"
+
+#. Translators: Output bin where one sided output is oriented in the face-down position
+#: modules/printbackends/gtkprintbackendcups.c:4685
+#, fuzzy
+msgctxt "output-bin"
+msgid "Face Down Bin"
+msgstr "Bin"
+
+#. Translators: Large capacity output bin
+#: modules/printbackends/gtkprintbackendcups.c:4687
+msgctxt "output-bin"
+msgid "Large Capacity Bin"
+msgstr "Trog de alt capacitá"
+
+#. Translators: Output stacker number %d
+#: modules/printbackends/gtkprintbackendcups.c:4709
+#, fuzzy, c-format
+msgctxt "output-bin"
+msgid "Stacker %d"
+msgstr " [%d]"
+
+#. Translators: Output mailbox number %d
+#: modules/printbackends/gtkprintbackendcups.c:4713
+#, c-format
+msgctxt "output-bin"
+msgid "Mailbox %d"
+msgstr "Lettre-bux %d"
+
+#. Translators: Private mailbox
+#: modules/printbackends/gtkprintbackendcups.c:4717
+msgctxt "output-bin"
+msgid "My Mailbox"
+msgstr "Mi lettre-bux"
+
+#. Translators: Output tray number %d
+#: modules/printbackends/gtkprintbackendcups.c:4721
+#, c-format
+msgctxt "output-bin"
+msgid "Tray %d"
+msgstr "Trog %d"
+
+#: modules/printbackends/gtkprintbackendcups.c:5198
+msgid "Printer Default"
+msgstr "Printator predefinit"
+
+#. Translators: These strings name the possible values of the
+#. * job priority option in the print dialog
+#.
+#: modules/printbackends/gtkprintbackendcups.c:5642
+msgid "Urgent"
+msgstr "Urgent"
+
+#: modules/printbackends/gtkprintbackendcups.c:5642
+msgid "High"
+msgstr "Alt"
+
+#: modules/printbackends/gtkprintbackendcups.c:5642
+msgid "Medium"
+msgstr "Medial"
+
+#: modules/printbackends/gtkprintbackendcups.c:5642
+msgid "Low"
+msgstr "Bass"
+
+#. Translators, this string is used to label the job priority option
+#. * in the print dialog
+#.
+#: modules/printbackends/gtkprintbackendcups.c:5672
+msgid "Job Priority"
+msgstr "Prioritá del tache"
+
+#. Translators, this string is used to label the billing info entry
+#. * in the print dialog
+#.
+#: modules/printbackends/gtkprintbackendcups.c:5683
+msgid "Billing Info"
+msgstr "Info de payament"
+
+#. Translators, these strings are names for various 'standard' cover
+#. * pages that the printing system may support.
+#.
+#: modules/printbackends/gtkprintbackendcups.c:5707
+msgctxt "cover page"
+msgid "None"
+msgstr "Null"
+
+#: modules/printbackends/gtkprintbackendcups.c:5708
+#, fuzzy
+#| msgid "Classes"
+msgctxt "cover page"
+msgid "Classified"
+msgstr "Classes"
+
+#: modules/printbackends/gtkprintbackendcups.c:5709
+msgctxt "cover page"
+msgid "Confidential"
+msgstr "Confidential"
+
+#: modules/printbackends/gtkprintbackendcups.c:5710
+msgctxt "cover page"
+msgid "Secret"
+msgstr "Secret"
+
+#: modules/printbackends/gtkprintbackendcups.c:5711
+msgctxt "cover page"
+msgid "Standard"
+msgstr "Standard"
+
+#: modules/printbackends/gtkprintbackendcups.c:5712
+msgctxt "cover page"
+msgid "Top Secret"
+msgstr "Ultrasecret"
+
+#: modules/printbackends/gtkprintbackendcups.c:5713
+#, fuzzy
+#| msgid "Classes"
+msgctxt "cover page"
+msgid "Unclassified"
+msgstr "Classes"
+
+#. Translators, this string is used to label the pages-per-sheet option
+#. * in the print dialog
+#.
+#: modules/printbackends/gtkprintbackendcups.c:5725
+msgctxt "printer option"
+msgid "Pages per Sheet"
+msgstr "Págines per folie"
+
+#. Translators, this string is used to label the option in the print
+#. * dialog that controls in what order multiple pages are arranged
+#.
+#: modules/printbackends/gtkprintbackendcups.c:5742
+msgctxt "printer option"
+msgid "Page Ordering"
+msgstr "Órdine de págines"
+
+#. Translators, this is the label used for the option in the print
+#. * dialog that controls the front cover page.
+#.
+#: modules/printbackends/gtkprintbackendcups.c:5784
+msgctxt "printer option"
+msgid "Before"
+msgstr "Ante"
+
+#. Translators, this is the label used for the option in the print
+#. * dialog that controls the back cover page.
+#.
+#: modules/printbackends/gtkprintbackendcups.c:5799
+msgctxt "printer option"
+msgid "After"
+msgstr "Pos"
+
+#. Translators: this is the name of the option that controls when
+#. * a print job is printed. Possible values are 'now', a specified time,
+#. * or 'on hold'
+#.
+#: modules/printbackends/gtkprintbackendcups.c:5819
+msgctxt "printer option"
+msgid "Print at"
+msgstr "Printar ye"
+
+#. Translators: this is the name of the option that allows the user
+#. * to specify a time when a print job will be printed.
+#.
+#: modules/printbackends/gtkprintbackendcups.c:5830
+msgctxt "printer option"
+msgid "Print at time"
+msgstr "Printar ye témpor"
+
+#. Translators: this format is used to display a custom
+#. * paper size. The two placeholders are replaced with
+#. * the width and height in points. E.g: "Custom
+#. * 230.4x142.9"
+#.
+#: modules/printbackends/gtkprintbackendcups.c:5877
+#, c-format
+msgid "Custom %s×%s"
+msgstr "Personal %s×%s"
+
+#. TRANSLATORS: this is the ICC color profile to use for this job
+#: modules/printbackends/gtkprintbackendcups.c:5988
+msgctxt "printer option"
+msgid "Printer Profile"
+msgstr "Profil de printator"
+
+#. TRANSLATORS: this is when color profile information is unavailable
+#: modules/printbackends/gtkprintbackendcups.c:5995
+msgctxt "printer option value"
+msgid "Unavailable"
+msgstr "Ãndisponibil"
+
+#: modules/printbackends/gtkprintbackendfile.c:235
+#, fuzzy
+msgid "output"
+msgstr "production"
+
+#: modules/printbackends/gtkprintbackendfile.c:507
+msgid "Print to File"
+msgstr "Printar a file"
+
+#: modules/printbackends/gtkprintbackendfile.c:633
+msgid "PDF"
+msgstr "PDF"
+
+#: modules/printbackends/gtkprintbackendfile.c:633
+#| msgid "Postscript"
+msgid "PostScript"
+msgstr "PostScript"
+
+#: modules/printbackends/gtkprintbackendfile.c:633
+msgid "SVG"
+msgstr "SVG"
+
+#: modules/printbackends/gtkprintbackendfile.c:646
+msgid "Pages per _sheet:"
+msgstr "Págines por f_olie:"
+
+#: modules/printbackends/gtkprintbackendfile.c:706
+msgid "File"
+msgstr "File"
+
+#: modules/printbackends/gtkprintbackendfile.c:716
+#, fuzzy
+msgid "_Output format"
+msgstr "Formate de production"
+
+#: modules/printbackends/gtkprintbackendlpr.c:372
+msgid "Print to LPR"
+msgstr "Printar a LPR"
+
+#: modules/printbackends/gtkprintbackendlpr.c:401
+msgid "Pages Per Sheet"
+msgstr "Págines por folie"
+
+#: modules/printbackends/gtkprintbackendlpr.c:407
+msgid "Command Line"
+msgstr "Linea de comandes"
+
+#. TRANSLATORS: when we're running an old CUPS, and
+#. * it hasn't registered the device with colord
+#: modules/printbackends/gtkprintercups.c:272
+#, fuzzy
+msgid "Color management unavailable"
+msgstr "Activar gerentie de color por %s"
+
+#. TRANSLATORS: when there is no color profile available
+#: modules/printbackends/gtkprintercups.c:284
+msgid "No profile available"
+msgstr "Null profil disponibil"
+
+#. TRANSLATORS: when the color profile has no title
+#: modules/printbackends/gtkprintercups.c:295
+msgid "Unspecified profile"
+msgstr "Ãnspecificat profil"
+
+#: tools/encodesymbolic.c:41
+msgid "Output to this directory instead of cwd"
+msgstr ""
+
+#: tools/encodesymbolic.c:42
+#, fuzzy
+msgid "Generate debug output"
+msgstr "&Debug"
+
+#: tools/encodesymbolic.c:92
+#, c-format
+msgid "Invalid size %s\n"
+msgstr "Ãnvalid dimension %s\n"
+
+#: tools/encodesymbolic.c:104 tools/encodesymbolic.c:113
+#, fuzzy, c-format
+msgid "Can’t load file: %s\n"
+msgstr "File(s) por cargar."
+
+#: tools/encodesymbolic.c:141 tools/encodesymbolic.c:147
+#, fuzzy, c-format
+#| msgid "Can't save file %s: %s\n"
+msgid "Can’t save file %s: %s\n"
+msgstr "Ne successat gardar li file «%s»."
+
+#: tools/encodesymbolic.c:153
+#, fuzzy, c-format
+msgid "Can’t close stream"
+msgstr "Cluder li c_arte"
+
+#: tools/gtk-builder-tool.c:36
+#, c-format
+msgid ""
+"Usage:\n"
+" gtk-builder-tool [COMMAND] [OPTION…] FILE\n"
+"\n"
+"Perform various tasks on GtkBuilder .ui files.\n"
+"\n"
+"Commands:\n"
+" validate Validate the file\n"
+" simplify Simplify the file\n"
+" enumerate List all named objects\n"
+" preview Preview the file\n"
+" screenshot Take a screenshot of the file\n"
+"\n"
+msgstr ""
+
+#: tools/gtk-builder-tool-enumerate.c:54 tools/gtk-builder-tool-preview.c:179
+#: tools/gtk-builder-tool-preview.c:180 tools/gtk-builder-tool-screenshot.c:359
+#: tools/gtk-builder-tool-screenshot.c:362
+#: tools/gtk-builder-tool-simplify.c:2360 tools/gtk-builder-tool-validate.c:159
+msgid "FILE"
+msgstr "FILE"
+
+#: tools/gtk-builder-tool-enumerate.c:62
+#, fuzzy
+msgid "List all named objects."
+msgstr ""
+"Usage:\n"
+" gtk-builder-tool [COMANDE] FILE\n"
+"\n"
+"Commands:\n"
+" validate Validar li file\n"
+" simplify Simplificar li file\n"
+" enumerate Listar omni nominat objectes\n"
+" preview [OPTIONES] Previder li file\n"
+"\n"
+"Optiones de prevision:\n"
+" --id=ID Previder solmen li nominat objectes\n"
+" --css=FILE Usar li stil ex file CSS\n"
+"\n"
+"Far divers taches sur files .ui de GtkBuilder.\n"
+
+#: tools/gtk-builder-tool-preview.c:178
+#, fuzzy
+msgid "Preview only the named object"
+msgstr ""
+"Usage:\n"
+" gtk-builder-tool [COMANDE] FILE\n"
+"\n"
+"Commands:\n"
+" validate Validar li file\n"
+" simplify Simplificar li file\n"
+" enumerate Listar omni nominat objectes\n"
+" preview [OPTIONES] Previder li file\n"
+"\n"
+"Optiones de prevision:\n"
+" --id=ID Previder solmen li nominat objectes\n"
+" --css=FILE Usar li stil ex file CSS\n"
+"\n"
+"Far divers taches sur files .ui de GtkBuilder.\n"
+
+#: tools/gtk-builder-tool-preview.c:179 tools/gtk-builder-tool-screenshot.c:359
+#, fuzzy
+msgid "Use style from CSS file"
+msgstr ""
+"Usage:\n"
+" gtk-builder-tool [COMANDE] FILE\n"
+"\n"
+"Commands:\n"
+" validate Validar li file\n"
+" simplify Simplificar li file\n"
+" enumerate Listar omni nominat objectes\n"
+" preview [OPTIONES] Previder li file\n"
+"\n"
+"Optiones de prevision:\n"
+" --id=ID Previder solmen li nominat objectes\n"
+" --css=FILE Usar li stil ex file CSS\n"
+"\n"
+"Far divers taches sur files .ui de GtkBuilder.\n"
+
+#: tools/gtk-builder-tool-preview.c:195
+#, fuzzy
+msgid "Preview the file."
+msgstr "Li intern visor ne posse previder ti file."
+
+#: tools/gtk-builder-tool-screenshot.c:358
+#, fuzzy
+msgid "Screenshot only the named object"
+msgstr "Un object posse haver solmen un <%s>"
+
+#: tools/gtk-builder-tool-screenshot.c:360
+#, fuzzy
+msgid "Save as node file instead of png"
+msgstr "Gardar li captura in un file PNG"
+
+#: tools/gtk-builder-tool-screenshot.c:361
+#, fuzzy
+msgid "Overwrite existing file"
+msgstr ""
+"Li nómine de file vu ha selectet ja existe.\n"
+"Esque vu vole substituer li existent file?\n"
+"(Avise: li qualitá del originale posse esser perdit)"
+
+#: tools/gtk-builder-tool-screenshot.c:377
+#, fuzzy
+msgid "Take a screenshot of the file."
+msgstr "Capter li tot ecran"
+
+#: tools/gtk-builder-tool-simplify.c:442
+#, fuzzy, c-format
+msgid "%s:%d: Couldn’t parse value for property '%s': %s\n"
+msgstr "Ne successat analisar valore alfa \"%s\" in li mixtet color"
+
+#: tools/gtk-builder-tool-simplify.c:651
+#, fuzzy, c-format
+#| msgid "Property %s::%s not found\n"
+msgid "%s:%d: %sproperty %s::%s not found\n"
+msgstr "Proprietá %s::%s ne es trovat\n"
+
+#: tools/gtk-builder-tool-simplify.c:2288
+#, fuzzy, c-format
+msgid "Can’t load “%sâ€: %s\n"
+msgstr "Ne successat cargar %s: %s\n"
+
+#: tools/gtk-builder-tool-simplify.c:2299
+#: tools/gtk-builder-tool-simplify.c:2305
+#, fuzzy, c-format
+msgid "Can’t parse “%sâ€: %s\n"
+msgstr "Ne successat analisar li argumentes: %s\n"
+
+#: tools/gtk-builder-tool-simplify.c:2311
+#, fuzzy, c-format
+msgid "Can’t parse “%sâ€\n"
+msgstr "Ne successat analisar li contenete de «%s»: %s"
+
+#: tools/gtk-builder-tool-simplify.c:2335
+#, fuzzy, c-format
+msgid "Failed to read “%sâ€: %s\n"
+msgstr ""
+"Ne successat leer «%s»:\n"
+"%s"
+
+#: tools/gtk-builder-tool-simplify.c:2341
+#, fuzzy, c-format
+msgid "Failed to write %s: “%sâ€\n"
+msgstr "Ne successat scrir li file %s"
+
+#: tools/gtk-builder-tool-simplify.c:2358
+#, fuzzy
+#| msgid "Recent files"
+msgid "Replace the file"
+msgstr ""
+"Substituer li file de configuration\n"
+"«%s»?"
+
+#: tools/gtk-builder-tool-simplify.c:2359
+msgid "Convert from GTK 3 to GTK 4"
+msgstr "Converter ex GTK 3 a GTK 4"
+
+#: tools/gtk-builder-tool-simplify.c:2370
+msgid "Simplify the file."
+msgstr "Simplificar li file."
+
+#: tools/gtk-builder-tool-simplify.c:2383
+#, c-format
+msgid "No .ui file specified\n"
+msgstr "Null file .ui es providet\n"
+
+#: tools/gtk-builder-tool-simplify.c:2389
+#, c-format
+msgid "Can only simplify a single .ui file without --replace\n"
+msgstr ""
+
+#: tools/gtk-builder-tool-validate.c:168
+msgid "Validate the file."
+msgstr "Validar li file."
+
+#: tools/gtk-launch.c:40
+msgid "Show program version"
+msgstr "Monstra li version del programma"
+
+#. Translators: this message will appear immediately after the
+#. usage string - Usage: COMMAND [OPTION…] <THIS_MESSAGE>
+#: tools/gtk-launch.c:72
+#, fuzzy
+#| msgid "APPLICATION [URI...] — launch an APPLICATION"
+msgid "APPLICATION [URI…] — launch an APPLICATION"
+msgstr "APPLICATION [URI…] — startar un APPLICATION"
+
+#. Translators: this message will appear after the usage string
+#. and before the list of options.
+#: tools/gtk-launch.c:76
+msgid ""
+"Launch an application (specified by its desktop file name),\n"
+"optionally passing one or more URIs as arguments."
+msgstr ""
+
+#: tools/gtk-launch.c:86
+#, fuzzy, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Un error evenit cargante li archive."
+
+#: tools/gtk-launch.c:88 tools/gtk-launch.c:109
+#, fuzzy, c-format
+msgid "Try “%s --help†for more information."
+msgstr "Tippa '%s --help' por plu information.\n"
+
+#. Translators: the %s is the program name. This error message
+#. means the user is calling gtk-launch without any argument.
+#: tools/gtk-launch.c:107
+#, c-format
+msgid "%s: missing application name"
+msgstr "%s: nómine de application manca"
+
+#: tools/gtk-launch.c:136
+#, c-format
+msgid "Creating AppInfo from id not supported on non unix operating systems"
+msgstr ""
+
+#. Translators: the first %s is the program name, the second one
+#. is the application name.
+#: tools/gtk-launch.c:144
+#, fuzzy, c-format
+msgid "%s: no such application %s"
+msgstr "Null application predefinit trovat por «%s»"
+
+#. Translators: the first %s is the program name, the second one
+#. is the error message.
+#: tools/gtk-launch.c:162
+#, fuzzy, c-format
+msgid "%s: error launching application: %s\n"
+msgstr "Un errore evenit lansante li dialog de preferenties de tastatura: %s"
+
+#: tools/updateiconcache.c:1391
+#, fuzzy, c-format
+msgid "Failed to write header\n"
+msgstr "Ne successat scrir li file %s"
+
+#: tools/updateiconcache.c:1397
+#, fuzzy, c-format
+msgid "Failed to write hash table\n"
+msgstr "Ne successat scrir li archive."
+
+#: tools/updateiconcache.c:1403
+#, fuzzy, c-format
+msgid "Failed to write folder index\n"
+msgstr "Ne successat scrir data de un element: %1"
+
+#: tools/updateiconcache.c:1411
+#, fuzzy, c-format
+msgid "Failed to rewrite header\n"
+msgstr "Cap-linea:"
+
+#: tools/updateiconcache.c:1505
+#, fuzzy, c-format
+msgid "Failed to open file %s : %s\n"
+msgstr "Ne successat aperter li file «%s»: %s"
+
+#: tools/updateiconcache.c:1513 tools/updateiconcache.c:1543
+#, fuzzy, c-format
+msgid "Failed to write cache file: %s\n"
+msgstr "Ne successat scrir li file %s"
+
+#: tools/updateiconcache.c:1553
+#, c-format
+msgid "The generated cache was invalid.\n"
+msgstr "Li generat cache esset ínvalid.\n"
+
+#: tools/updateiconcache.c:1567
+#, fuzzy, c-format
+msgid "Could not rename %s to %s: %s, removing %s then.\n"
+msgstr "Ne successat renominar «%s» a «%s»: %s"
+
+#: tools/updateiconcache.c:1581
+#, c-format
+msgid "Could not rename %s to %s: %s\n"
+msgstr "Ne successat renominar %s a %s: %s\n"
+
+#: tools/updateiconcache.c:1591
+#, fuzzy, c-format
+msgid "Could not rename %s back to %s: %s.\n"
+msgstr "Ne successat renominar %s a %s: %s\n"
+
+#: tools/updateiconcache.c:1618
+#, c-format
+msgid "Cache file created successfully.\n"
+msgstr "Li file de cache har esset creat con success.\n"
+
+#: tools/updateiconcache.c:1657
+msgid "Overwrite an existing cache, even if up to date"
+msgstr ""
+
+#: tools/updateiconcache.c:1658
+msgid "Don’t check for the existence of index.theme"
+msgstr ""
+
+#: tools/updateiconcache.c:1659
+#, fuzzy
+msgid "Don’t include image data in the cache"
+msgstr "Data del image"
+
+#: tools/updateiconcache.c:1660
+#, fuzzy
+msgid "Include image data in the cache"
+msgstr "includer li cache de icones"
+
+#: tools/updateiconcache.c:1661
+msgid "Output a C header file"
+msgstr "Producter un file de header C"
+
+#: tools/updateiconcache.c:1662
+#, fuzzy
+msgid "Turn off verbose output"
+msgstr "Decomutar ti-ci monitor"
+
+#: tools/updateiconcache.c:1663
+#, fuzzy
+msgid "Validate existing icon cache"
+msgstr "Vacuar li cache de icones"
+
+#: tools/updateiconcache.c:1728
+#, c-format
+msgid "File not found: %s\n"
+msgstr "File ne esset trovat: %s\n"
+
+#: tools/updateiconcache.c:1734
+#, fuzzy, c-format
+msgid "Not a valid icon cache: %s\n"
+msgstr "Vacuar li cache de icones"
+
+#: tools/updateiconcache.c:1747
+#, c-format
+msgid "No theme index file.\n"
+msgstr "Ãndex-fil de tema manca.\n"
+
+#: tools/updateiconcache.c:1751
+#, c-format
+msgid ""
+"No theme index file in “%sâ€.\n"
+"If you really want to create an icon cache here, use --ignore-theme-index.\n"
+msgstr ""
diff --git a/po/ru.po b/po/ru.po
index ec90194421..e08152e520 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -22,8 +22,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+.master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
-"POT-Creation-Date: 2022-10-30 11:34+0000\n"
-"PO-Revision-Date: 2022-10-30 16:26+0300\n"
+"POT-Creation-Date: 2022-12-17 12:46+0000\n"
+"PO-Revision-Date: 2022-12-17 18:37+0300\n"
"Last-Translator: Aleksandr Melman <Alexmelman88@gmail.com>\n"
"Language-Team: РуÑÑкий <gnome-cyr@gnome.org>\n"
"Language: ru\n"
@@ -32,7 +32,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Poedit 3.1.1\n"
+"X-Generator: Poedit 3.2.2\n"
#: gdk/broadway/gdkbroadway-server.c:135
#, c-format
@@ -124,12 +124,12 @@ msgstr "ПеретаÑкивание из других приложений не
msgid "No compatible formats to transfer contents."
msgstr "ОтÑутÑтвие ÑовмеÑтимых форматов Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ Ñодержимого."
-#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:604
+#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:610
msgid "No GL API allowed."
msgstr "API GL не разрешен."
#: gdk/gdkglcontext.c:418 gdk/win32/gdkglcontext-win32-wgl.c:611
-#: gdk/x11/gdkglcontext-glx.c:638
+#: gdk/x11/gdkglcontext-glx.c:644
msgid "Unable to create a GL context"
msgstr "Ðевозможно Ñоздать контекÑÑ‚ GL"
@@ -539,12 +539,12 @@ msgstr "Режим ожиданиÑ"
msgid "Error interpreting JPEG image file (%s)"
msgstr "Ошибка интерпретации файла Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ JPEG (%s)"
-#: gdk/loaders/gdkjpeg.c:192
+#: gdk/loaders/gdkjpeg.c:194
#, c-format
msgid "Unsupported JPEG colorspace (%d)"
msgstr "Ðеподдерживаемое цветовое проÑтранÑтво JPEG (%d)"
-#: gdk/loaders/gdkjpeg.c:201 gdk/loaders/gdkpng.c:266 gdk/loaders/gdktiff.c:453
+#: gdk/loaders/gdkjpeg.c:203 gdk/loaders/gdkpng.c:266 gdk/loaders/gdktiff.c:453
#, c-format
msgid "Not enough memory for image size %ux%u"
msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ %ux%u"
@@ -803,15 +803,15 @@ msgstr "Менеджер буфера обмена не Ñмог ÑохраниÑ
msgid "Cannot store clipboard. No clipboard manager is active."
msgstr "Этот буфер обмена не может хранить данные."
-#: gdk/x11/gdkglcontext-glx.c:754
+#: gdk/x11/gdkglcontext-glx.c:760
msgid "No GLX configurations available"
msgstr "Конфигурации GLX не предлагаютÑÑ"
-#: gdk/x11/gdkglcontext-glx.c:827
+#: gdk/x11/gdkglcontext-glx.c:833
msgid "No GLX configuration with required features found"
msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ GLX Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÐ¼Ñ‹Ð¼Ð¸ функциÑми не найдена"
-#: gdk/x11/gdkglcontext-glx.c:901
+#: gdk/x11/gdkglcontext-glx.c:907
msgid "GLX is not supported"
msgstr "GLX не поддерживаетÑÑ"
@@ -972,11 +972,11 @@ msgid "Could not unescape string"
msgstr "Ðе удалоÑÑŒ раÑкрыть Ñтроку"
#: gtk/deprecated/gtkappchooserbutton.c:323
-msgid "Other application…"
+msgid "Other app…"
msgstr "Другое приложение…"
#: gtk/deprecated/gtkappchooserdialog.c:210
-#: gtk/deprecated/gtkappchooserdialog.c:261 gtk/ui/gtkappchooserdialog.ui:4
+#: gtk/deprecated/gtkappchooserdialog.c:261
msgid "Select Application"
msgstr "Выбрать приложение"
@@ -1007,24 +1007,24 @@ msgid "Failed to start GNOME Software"
msgstr "Ðе удалоÑÑŒ запуÑтить менеджер приложений GNOME"
#: gtk/deprecated/gtkappchooserwidget.c:525
-msgid "Default Application"
+msgid "Default App"
msgstr "Приложение по умолчанию"
#: gtk/deprecated/gtkappchooserwidget.c:575
#, c-format
-msgid "No applications found for “%sâ€."
+msgid "No apps found for “%sâ€."
msgstr "Ðет доÑтупных приложений Ð´Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Â«%s»."
#: gtk/deprecated/gtkappchooserwidget.c:658
-msgid "Recommended Applications"
+msgid "Recommended Apps"
msgstr "Рекомендуемые приложениÑ"
#: gtk/deprecated/gtkappchooserwidget.c:673
-msgid "Related Applications"
+msgid "Related Apps"
msgstr "СвÑзанные приложениÑ"
#: gtk/deprecated/gtkappchooserwidget.c:687
-msgid "Other Applications"
+msgid "Other Apps"
msgstr "Другие приложениÑ"
#. This label is displayed in a treeview cell displaying
@@ -1061,18 +1061,18 @@ msgid "%d %%"
msgstr "%d %%"
#: gtk/deprecated/gtkcolorbutton.c:183 gtk/deprecated/gtkcolorbutton.c:311
-#: gtk/gtkcolordialog.c:410
+#: gtk/gtkcolordialog.c:411
msgid "Pick a Color"
msgstr "Выбрать цвет"
#: gtk/deprecated/gtkcolorbutton.c:502 gtk/gtkcolorchooserwidget.c:312
-#: gtk/gtkcolordialogbutton.c:297
+#: gtk/gtkcolordialogbutton.c:299
#, c-format
msgid "Red %d%%, Green %d%%, Blue %d%%, Alpha %d%%"
msgstr "КраÑный %d%%, зелёный %d%%, Ñиний %d%%, прозрачноÑÑ‚ÑŒ %d%%"
#: gtk/deprecated/gtkcolorbutton.c:508 gtk/gtkcolorchooserwidget.c:318
-#: gtk/gtkcolordialogbutton.c:303
+#: gtk/gtkcolordialogbutton.c:305
#, c-format
msgid "Red %d%%, Green %d%%, Blue %d%%"
msgstr "КраÑный %d%%, зелёный %d%%, Ñиний %d%%"
@@ -1086,16 +1086,20 @@ msgstr "Sans 12"
msgid "Pick a Font"
msgstr "Выбрать шрифт"
-#: gtk/deprecated/gtkfontbutton.c:597 gtk/gtkfilechooserwidget.c:3814
-#: gtk/gtkfontdialogbutton.c:113 gtk/inspector/visual.ui:170
+#: gtk/deprecated/gtkfontbutton.c:597 gtk/gtkfilechooserwidget.c:3853
+#: gtk/gtkfontdialogbutton.c:115 gtk/inspector/visual.ui:170
msgid "Font"
msgstr "Шрифт"
-#: gtk/deprecated/gtkfontbutton.c:1152 gtk/gtkfontdialogbutton.c:606
+#: gtk/deprecated/gtkfontbutton.c:1152 gtk/gtkfontdialogbutton.c:613
msgctxt "font"
msgid "None"
msgstr "Ðет"
+#: gtk/deprecated/gtkshow.c:176
+msgid "Could not show link"
+msgstr "Ðе удалоÑÑŒ показать ÑÑылку"
+
#: gtk/gtkaboutdialog.c:126 gtk/ui/gtkaboutdialog.ui:163
msgid "License"
msgstr "ЛицензиÑ"
@@ -1168,35 +1172,35 @@ msgstr "Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Apache, верÑÐ¸Ñ 2.0"
msgid "Mozilla Public License 2.0"
msgstr "ОбщеÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Mozilla 2.0"
-#: gtk/gtkaboutdialog.c:960
+#: gtk/gtkaboutdialog.c:970
msgid "Website"
msgstr "Веб-Ñтраница"
-#: gtk/gtkaboutdialog.c:996 gtk/ui/gtkapplication-quartz.ui:6
+#: gtk/gtkaboutdialog.c:1006 gtk/ui/gtkapplication-quartz.ui:6
#, c-format
msgid "About %s"
msgstr "О программе %s"
-#: gtk/gtkaboutdialog.c:2093
+#: gtk/gtkaboutdialog.c:2096
msgid "Created by"
msgstr "Ðвтор"
-#: gtk/gtkaboutdialog.c:2096
+#: gtk/gtkaboutdialog.c:2099
msgid "Documented by"
msgstr "ДокументациÑ"
-#: gtk/gtkaboutdialog.c:2106
+#: gtk/gtkaboutdialog.c:2109
msgid "Translated by"
msgstr "Перевод"
-#: gtk/gtkaboutdialog.c:2111
+#: gtk/gtkaboutdialog.c:2114
msgid "Design by"
msgstr "СовмеÑтно Ñ"
#. Translators: this is the license preamble; the string at the end
#. * contains the name of the license as link text.
#.
-#: gtk/gtkaboutdialog.c:2276
+#: gtk/gtkaboutdialog.c:2279
#, c-format
msgid ""
"This program comes with absolutely no warranty.\n"
@@ -1680,7 +1684,7 @@ msgctxt "accessibility"
msgid "window"
msgstr "окно"
-#: gtk/gtkalertdialog.c:689 gtk/gtkcustompaperunixdialog.c:328
+#: gtk/gtkalertdialog.c:660 gtk/gtkcustompaperunixdialog.c:328
#: gtk/gtkmessagedialog.c:166 gtk/ui/gtkassistant.ui:40
msgid "_Close"
msgstr "_Закрыть"
@@ -2040,52 +2044,52 @@ msgid "Margins from Printer…"
msgstr "ÐŸÐ¾Ð»Ñ Ð¸Ð· принтера…"
#. And show the custom paper dialog
-#: gtk/gtkcustompaperunixdialog.c:383 gtk/gtkprintunixdialog.c:3042
+#: gtk/gtkcustompaperunixdialog.c:383 gtk/gtkprintunixdialog.c:3026
msgid "Manage Custom Sizes"
msgstr "Управление пользовательÑкими размерами"
-#: gtk/gtkcustompaperunixdialog.c:447 gtk/gtkpagesetupunixdialog.c:721
+#: gtk/gtkcustompaperunixdialog.c:446 gtk/gtkpagesetupunixdialog.c:721
msgid "inch"
msgstr "дюймы"
-#: gtk/gtkcustompaperunixdialog.c:449 gtk/gtkpagesetupunixdialog.c:719
+#: gtk/gtkcustompaperunixdialog.c:448 gtk/gtkpagesetupunixdialog.c:719
msgid "mm"
msgstr "мм"
-#: gtk/gtkcustompaperunixdialog.c:606
+#: gtk/gtkcustompaperunixdialog.c:604
#, c-format
msgid "Custom Size %d"
msgstr "ПользовательÑкий размер %d"
-#: gtk/gtkcustompaperunixdialog.c:923
+#: gtk/gtkcustompaperunixdialog.c:914
msgid "_Width:"
msgstr "_Ширина:"
-#: gtk/gtkcustompaperunixdialog.c:934
+#: gtk/gtkcustompaperunixdialog.c:923
msgid "_Height:"
msgstr "_Ð’Ñ‹Ñота:"
-#: gtk/gtkcustompaperunixdialog.c:945
+#: gtk/gtkcustompaperunixdialog.c:932
msgid "Paper Size"
msgstr "Размер бумаги"
-#: gtk/gtkcustompaperunixdialog.c:954
+#: gtk/gtkcustompaperunixdialog.c:939
msgid "_Top:"
msgstr "_Верхнее:"
-#: gtk/gtkcustompaperunixdialog.c:965
+#: gtk/gtkcustompaperunixdialog.c:948
msgid "_Bottom:"
msgstr "_Ðижнее:"
-#: gtk/gtkcustompaperunixdialog.c:976
+#: gtk/gtkcustompaperunixdialog.c:957
msgid "_Left:"
msgstr "_Левое:"
-#: gtk/gtkcustompaperunixdialog.c:987
+#: gtk/gtkcustompaperunixdialog.c:966
msgid "_Right:"
msgstr "_Правое:"
-#: gtk/gtkcustompaperunixdialog.c:1023
+#: gtk/gtkcustompaperunixdialog.c:999
msgid "Paper Margins"
msgstr "ÐŸÐ¾Ð»Ñ Ñтраницы"
@@ -2093,7 +2097,7 @@ msgstr "ÐŸÐ¾Ð»Ñ Ñтраницы"
msgid "Insert Emoji"
msgstr "Ð’Ñтавить Emoji"
-#: gtk/gtkfilechooserdialog.c:553
+#: gtk/gtkfilechooserdialog.c:552
msgid "_Name"
msgstr "_ИмÑ"
@@ -2153,29 +2157,29 @@ msgstr "Папка Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует"
msgid "A file with that name already exists"
msgstr "Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует"
-#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:593
-#: gtk/gtkfilechooserwidget.c:1158 gtk/gtkfilechooserwidget.c:4958
-#: gtk/gtkfiledialog.c:681 gtk/gtkmessagedialog.c:170
+#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600
+#: gtk/gtkfilechooserwidget.c:1168 gtk/gtkfilechooserwidget.c:4997
+#: gtk/gtkfiledialog.c:718 gtk/gtkmessagedialog.c:170
#: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608
#: gtk/gtkpagesetupunixdialog.c:283 gtk/gtkprintbackend.c:638
#: gtk/gtkprintunixdialog.c:657 gtk/gtkprintunixdialog.c:814
-#: gtk/gtkwindow.c:6150 gtk/ui/gtkappchooserdialog.ui:45
+#: gtk/gtkwindow.c:6156 gtk/ui/gtkappchooserdialog.ui:45
#: gtk/ui/gtkassistant.ui:52 gtk/ui/gtkcolorchooserdialog.ui:33
#: gtk/ui/gtkfontchooserdialog.ui:24
msgid "_Cancel"
msgstr "_Отмена"
-#: gtk/gtkfilechoosernative.c:521 gtk/gtkfilechoosernative.c:587
-#: gtk/gtkfiledialog.c:663 gtk/gtkplacessidebar.c:3145
+#: gtk/gtkfilechoosernative.c:521 gtk/gtkfilechoosernative.c:594
+#: gtk/gtkfiledialog.c:690 gtk/gtkplacessidebar.c:3145
#: gtk/gtkplacessidebar.c:3230 gtk/gtkplacesview.c:1645
msgid "_Open"
msgstr "_Открыть"
-#: gtk/gtkfilechoosernative.c:587 gtk/gtkfiledialog.c:668
+#: gtk/gtkfilechoosernative.c:594 gtk/gtkfiledialog.c:695
msgid "_Save"
msgstr "_Сохранить"
-#: gtk/gtkfilechoosernativequartz.c:340 gtk/ui/gtkfilechooserwidget.ui:521
+#: gtk/gtkfilechoosernativequartz.c:340 gtk/ui/gtkfilechooserwidget.ui:546
msgid "Select which types of files are shown"
msgstr "Выбрать отображаемые типы файлов"
@@ -2188,294 +2192,302 @@ msgstr "Выбрать отображаемые типы файлов"
msgid "%1$s on %2$s"
msgstr "%1$s на %2$s"
-#: gtk/gtkfilechooserwidget.c:337
+#: gtk/gtkfilechooserwidget.c:347
msgid "Type name of new folder"
msgstr "Введите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð¹ папки"
-#: gtk/gtkfilechooserwidget.c:700
+#: gtk/gtkfilechooserwidget.c:710
msgid "The folder could not be created"
msgstr "Ðе удалоÑÑŒ Ñоздать папку"
-#: gtk/gtkfilechooserwidget.c:713
+#: gtk/gtkfilechooserwidget.c:723
msgid "You need to choose a valid filename."
msgstr "Ðеобходимо выбрать корректное Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°."
-#: gtk/gtkfilechooserwidget.c:716
+#: gtk/gtkfilechooserwidget.c:726
#, c-format
msgid "Cannot create a file under %s as it is not a folder"
msgstr "Ðевозможно Ñоздать файл в %s, так как Ñто не папка"
-#: gtk/gtkfilechooserwidget.c:726
+#: gtk/gtkfilechooserwidget.c:736
msgid "Cannot create file as the filename is too long"
msgstr "Ðевозможно Ñоздать файл: Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ñлишком длинное"
-#: gtk/gtkfilechooserwidget.c:727
+#: gtk/gtkfilechooserwidget.c:737
msgid "Try using a shorter name."
msgstr "ИÑпользуйте более короткое имÑ."
-#: gtk/gtkfilechooserwidget.c:737
+#: gtk/gtkfilechooserwidget.c:747
msgid "You may only select folders"
msgstr "Можно выбирать только папки"
-#: gtk/gtkfilechooserwidget.c:738
+#: gtk/gtkfilechooserwidget.c:748
msgid "The item that you selected is not a folder try using a different item."
msgstr "Выбранный Ñлемент не ÑвлÑетÑÑ Ð¿Ð°Ð¿ÐºÐ¾Ð¹. Выберите другой Ñлемент."
-#: gtk/gtkfilechooserwidget.c:746
+#: gtk/gtkfilechooserwidget.c:756
msgid "Invalid file name"
msgstr "ÐедопуÑтимое Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°"
-#: gtk/gtkfilechooserwidget.c:755
+#: gtk/gtkfilechooserwidget.c:765
msgid "The folder contents could not be displayed"
msgstr "Ðе удалоÑÑŒ отобразить Ñодержимое папки"
-#: gtk/gtkfilechooserwidget.c:763
+#: gtk/gtkfilechooserwidget.c:773
msgid "The file could not be deleted"
msgstr "Файл не может быть удалён"
-#: gtk/gtkfilechooserwidget.c:771
+#: gtk/gtkfilechooserwidget.c:781
msgid "The file could not be moved to the Trash"
msgstr "Файл не может быть перемещён в корзину"
-#: gtk/gtkfilechooserwidget.c:1156
+#: gtk/gtkfilechooserwidget.c:1166
#, c-format
msgid "Are you sure you want to permanently delete “%s�"
msgstr "Уверены что хотите безвозвратно удалить «%s»?"
-#: gtk/gtkfilechooserwidget.c:1157
+#: gtk/gtkfilechooserwidget.c:1167
msgid "If you delete an item, it will be permanently lost."
msgstr "ЕÑли вы удалите Ñлемент, он будет навÑегда утерÑн."
-#: gtk/gtkfilechooserwidget.c:1158 gtk/gtkfilechooserwidget.c:1754
-#: gtk/gtklabel.c:5655 gtk/gtktext.c:6060 gtk/gtktextview.c:8965
+#: gtk/gtkfilechooserwidget.c:1168 gtk/gtkfilechooserwidget.c:1793
+#: gtk/gtklabel.c:5661 gtk/gtktext.c:6087 gtk/gtktextview.c:8997
msgid "_Delete"
msgstr "_Удалить"
-#: gtk/gtkfilechooserwidget.c:1271
+#: gtk/gtkfilechooserwidget.c:1281
msgid "The file could not be renamed"
msgstr "Файл не может быть переименован"
-#: gtk/gtkfilechooserwidget.c:1531
+#: gtk/gtkfilechooserwidget.c:1487
msgid "Could not select file"
msgstr "Ðе удалоÑÑŒ выделить файл"
-#: gtk/gtkfilechooserwidget.c:1734
+#: gtk/gtkfilechooserwidget.c:1702 gtk/ui/gtkfilechooserwidget.ui:66
+msgid "Switch to grid view"
+msgstr "ПереключитьÑÑ Ð½Ð° вид Ñеткой"
+
+#: gtk/gtkfilechooserwidget.c:1708
+msgid "Switch to list view"
+msgstr "ПереключитьÑÑ Ð½Ð° вид ÑпиÑком"
+
+#: gtk/gtkfilechooserwidget.c:1773
msgid "_Visit File"
msgstr "_Перейти к файлу"
-#: gtk/gtkfilechooserwidget.c:1738
+#: gtk/gtkfilechooserwidget.c:1777
msgid "_Open With File Manager"
msgstr "_Открыть в файловом менеджере"
-#: gtk/gtkfilechooserwidget.c:1742
+#: gtk/gtkfilechooserwidget.c:1781
msgid "_Copy Location"
msgstr "Копировать _адреÑ"
-#: gtk/gtkfilechooserwidget.c:1746
+#: gtk/gtkfilechooserwidget.c:1785
msgid "_Add to Bookmarks"
msgstr "_Добавить в закладки"
-#: gtk/gtkfilechooserwidget.c:1750 gtk/gtkplacessidebar.c:2309
-#: gtk/gtkplacessidebar.c:3266 gtk/ui/gtkfilechooserwidget.ui:640
+#: gtk/gtkfilechooserwidget.c:1789 gtk/gtkplacessidebar.c:2309
+#: gtk/gtkplacessidebar.c:3266 gtk/ui/gtkfilechooserwidget.ui:665
msgid "_Rename"
msgstr "_Переименовать"
-#: gtk/gtkfilechooserwidget.c:1758
+#: gtk/gtkfilechooserwidget.c:1797
msgid "_Move to Trash"
msgstr "П_еремеÑтить в корзину"
-#: gtk/gtkfilechooserwidget.c:1767
+#: gtk/gtkfilechooserwidget.c:1806
msgid "Show _Hidden Files"
msgstr "Показывать _Ñкрытые файлы"
-#: gtk/gtkfilechooserwidget.c:1771
+#: gtk/gtkfilechooserwidget.c:1810
msgid "Show _Size Column"
msgstr "Показывать _размер"
-#: gtk/gtkfilechooserwidget.c:1775
+#: gtk/gtkfilechooserwidget.c:1815
msgid "Show T_ype Column"
msgstr "Показать колонку _типа"
-#: gtk/gtkfilechooserwidget.c:1779
+#: gtk/gtkfilechooserwidget.c:1820
msgid "Show _Time"
msgstr "Показывать _времÑ"
-#: gtk/gtkfilechooserwidget.c:1783
+#: gtk/gtkfilechooserwidget.c:1825
msgid "Sort _Folders Before Files"
msgstr "Сортировать _папки перед файлами"
-#: gtk/gtkfilechooserwidget.c:1913 gtk/gtkfilechooserwidget.c:1949
-#: gtk/gtkfilechooserwidget.c:3857
+#: gtk/gtkfilechooserwidget.c:1959 gtk/gtkfilechooserwidget.c:1995
+#: gtk/gtkfilechooserwidget.c:3896
msgid "Unknown"
msgstr "ÐеизвеÑтен"
-#: gtk/gtkfilechooserwidget.c:2007 gtk/gtkplacessidebar.c:1026
+#: gtk/gtkfilechooserwidget.c:2053 gtk/gtkplacessidebar.c:1026
msgid "Home"
msgstr "ДомашнÑÑ Ð¿Ð°Ð¿ÐºÐ°"
#. this is the header for the location column in the print dialog
-#: gtk/gtkfilechooserwidget.c:2183 gtk/inspector/css-node-tree.ui:76
-#: gtk/ui/gtkfilechooserwidget.ui:213 gtk/ui/gtkprintunixdialog.ui:114
+#: gtk/gtkfilechooserwidget.c:2220 gtk/inspector/css-node-tree.ui:76
+#: gtk/ui/gtkfilechooserwidget.ui:238 gtk/ui/gtkprintunixdialog.ui:114
msgid "Location"
msgstr "РаÑположение"
#. Label
-#: gtk/gtkfilechooserwidget.c:2290
+#: gtk/gtkfilechooserwidget.c:2327
msgid "_Name:"
msgstr "_ИмÑ:"
-#: gtk/gtkfilechooserwidget.c:2833 gtk/gtkfilechooserwidget.c:2847
+#: gtk/gtkfilechooserwidget.c:2867 gtk/gtkfilechooserwidget.c:2881
#, c-format
msgid "Searching in %s"
msgstr "ПоиÑк в %s"
-#: gtk/gtkfilechooserwidget.c:2853
+#: gtk/gtkfilechooserwidget.c:2887
msgid "Searching"
msgstr "ПоиÑк"
-#: gtk/gtkfilechooserwidget.c:2859
+#: gtk/gtkfilechooserwidget.c:2893
msgid "Enter location or URL"
msgstr "Введите раÑположение или URL"
-#: gtk/gtkfilechooserwidget.c:3420 gtk/gtkfilechooserwidget.c:5743
-#: gtk/ui/gtkfilechooserwidget.ui:358
+#: gtk/gtkfilechooserwidget.c:3459 gtk/gtkfilechooserwidget.c:5782
+#: gtk/ui/gtkfilechooserwidget.ui:383
msgid "Modified"
msgstr "Изменён"
-#: gtk/gtkfilechooserwidget.c:3601
+#: gtk/gtkfilechooserwidget.c:3640
#, c-format
msgid "Could not read the contents of %s"
msgstr "Ðе удалоÑÑŒ прочитать Ñодержимое %s"
-#: gtk/gtkfilechooserwidget.c:3605
+#: gtk/gtkfilechooserwidget.c:3644
msgid "Could not read the contents of the folder"
msgstr "Ðе удалоÑÑŒ прочитать Ñодержимое папки"
#. Translators: see g_date_time_format() for details on the format
-#: gtk/gtkfilechooserwidget.c:3752 gtk/gtkfilechooserwidget.c:3795
+#: gtk/gtkfilechooserwidget.c:3791 gtk/gtkfilechooserwidget.c:3834
msgid "%H:%M"
msgstr "%H:%M"
-#: gtk/gtkfilechooserwidget.c:3754 gtk/gtkfilechooserwidget.c:3797
+#: gtk/gtkfilechooserwidget.c:3793 gtk/gtkfilechooserwidget.c:3836
msgid "%l:%M %p"
msgstr "%l:%M %p"
-#: gtk/gtkfilechooserwidget.c:3758
+#: gtk/gtkfilechooserwidget.c:3797
msgid "Yesterday"
msgstr "Вчера"
# полное название меÑÑца
-#: gtk/gtkfilechooserwidget.c:3766
+#: gtk/gtkfilechooserwidget.c:3805
msgid "%-e %b"
msgstr "%-e %B"
# полное название меÑÑца
-#: gtk/gtkfilechooserwidget.c:3770
+#: gtk/gtkfilechooserwidget.c:3809
msgid "%-e %b %Y"
msgstr "%-e %B %Y"
-#: gtk/gtkfilechooserwidget.c:3812 gtk/gtkfilechooserwidget.c:3820
+#: gtk/gtkfilechooserwidget.c:3851 gtk/gtkfilechooserwidget.c:3859
msgid "Program"
msgstr "Программа"
-#: gtk/gtkfilechooserwidget.c:3813
+#: gtk/gtkfilechooserwidget.c:3852
msgid "Audio"
msgstr "Ðудио"
-#: gtk/gtkfilechooserwidget.c:3815
+#: gtk/gtkfilechooserwidget.c:3854
msgid "Image"
msgstr "Изображение"
-#: gtk/gtkfilechooserwidget.c:3816
+#: gtk/gtkfilechooserwidget.c:3855
msgid "Archive"
msgstr "Ðрхивировать"
-#: gtk/gtkfilechooserwidget.c:3817
+#: gtk/gtkfilechooserwidget.c:3856
msgid "Markup"
msgstr "Разметка"
-#: gtk/gtkfilechooserwidget.c:3818 gtk/gtkfilechooserwidget.c:3819
+#: gtk/gtkfilechooserwidget.c:3857 gtk/gtkfilechooserwidget.c:3858
msgid "Text"
msgstr "ТекÑÑ‚"
-#: gtk/gtkfilechooserwidget.c:3821
+#: gtk/gtkfilechooserwidget.c:3860
msgid "Video"
msgstr "Видео"
-#: gtk/gtkfilechooserwidget.c:3822
+#: gtk/gtkfilechooserwidget.c:3861
msgid "Contacts"
msgstr "Контакты"
-#: gtk/gtkfilechooserwidget.c:3823
+#: gtk/gtkfilechooserwidget.c:3862
msgid "Calendar"
msgstr "Календарь"
-#: gtk/gtkfilechooserwidget.c:3824
+#: gtk/gtkfilechooserwidget.c:3863
msgid "Document"
msgstr "Документ"
-#: gtk/gtkfilechooserwidget.c:3825
+#: gtk/gtkfilechooserwidget.c:3864
msgid "Presentation"
msgstr "ПрезентациÑ"
-#: gtk/gtkfilechooserwidget.c:3826
+#: gtk/gtkfilechooserwidget.c:3865
msgid "Spreadsheet"
msgstr "Таблица"
-#: gtk/gtkfilechooserwidget.c:4950 gtk/gtkprintunixdialog.c:648
+#: gtk/gtkfilechooserwidget.c:4989 gtk/gtkprintunixdialog.c:648
#, c-format
msgid "A file named “%s†already exists. Do you want to replace it?"
msgstr "Файл Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ «%s» уже ÑущеÑтвует. Заменить его?"
-#: gtk/gtkfilechooserwidget.c:4952 gtk/gtkprintunixdialog.c:652
+#: gtk/gtkfilechooserwidget.c:4991 gtk/gtkprintunixdialog.c:652
#, c-format
msgid ""
"The file already exists in “%sâ€. Replacing it will overwrite its contents."
msgstr ""
"Файл уже ÑущеÑтвует в «%s». Его замена приведёт к перезапиÑи Ñодержимого."
-#: gtk/gtkfilechooserwidget.c:4958 gtk/gtkprintunixdialog.c:660
+#: gtk/gtkfilechooserwidget.c:4997 gtk/gtkprintunixdialog.c:660
msgid "_Replace"
msgstr "_Заменить"
-#: gtk/gtkfilechooserwidget.c:5113
+#: gtk/gtkfilechooserwidget.c:5152
msgid "You do not have access to the specified folder."
msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ доÑтупа к указанной папке."
-#: gtk/gtkfilechooserwidget.c:5690
+#: gtk/gtkfilechooserwidget.c:5729
msgid "Could not send the search request"
msgstr "Ðе удалоÑÑŒ поÑлать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° поиÑк"
-#: gtk/gtkfilechooserwidget.c:5966
+#: gtk/gtkfilechooserwidget.c:6005
msgid "Accessed"
msgstr "ДоÑтуп"
-#: gtk/gtkfiledialog.c:664
+#: gtk/gtkfiledialog.c:691
msgid "Pick Files"
msgstr "Выбрать файлы"
-#: gtk/gtkfiledialog.c:664
+#: gtk/gtkfiledialog.c:691
msgid "Pick a File"
msgstr "Выбрать файл"
-#: gtk/gtkfiledialog.c:669
+#: gtk/gtkfiledialog.c:696
msgid "Save a File"
msgstr "Сохранить файл"
-#: gtk/gtkfiledialog.c:673 gtk/ui/gtkappchooserdialog.ui:50
+#: gtk/gtkfiledialog.c:700 gtk/ui/gtkappchooserdialog.ui:50
#: gtk/ui/gtkcolorchooserdialog.ui:38 gtk/ui/gtkfontchooserdialog.ui:29
msgid "_Select"
msgstr "_Выбрать"
-#: gtk/gtkfiledialog.c:674
+#: gtk/gtkfiledialog.c:701
msgid "Select Folders"
msgstr "Выбрать папки"
-#: gtk/gtkfiledialog.c:674
+#: gtk/gtkfiledialog.c:701
msgid "Select a Folder"
msgstr "Выбрать папку"
-#: gtk/gtkfontchooserdialog.c:188
+#: gtk/gtkfontchooserdialog.c:187
msgid "Change Font Features"
msgstr "Изменение характериÑтик шрифта"
@@ -2551,27 +2563,27 @@ msgstr "Вариации Ñимволов"
msgid "OpenGL context creation failed"
msgstr "Ðе удалоÑÑŒ Ñоздать контекÑÑ‚ OpenGL"
-#: gtk/gtklabel.c:5652 gtk/gtktext.c:6048 gtk/gtktextview.c:8953
+#: gtk/gtklabel.c:5658 gtk/gtktext.c:6075 gtk/gtktextview.c:8985
msgid "Cu_t"
msgstr "В_ырезать"
-#: gtk/gtklabel.c:5653 gtk/gtktext.c:6052 gtk/gtktextview.c:8957
+#: gtk/gtklabel.c:5659 gtk/gtktext.c:6079 gtk/gtktextview.c:8989
msgid "_Copy"
msgstr "_Копировать"
-#: gtk/gtklabel.c:5654 gtk/gtktext.c:6056 gtk/gtktextview.c:8961
+#: gtk/gtklabel.c:5660 gtk/gtktext.c:6083 gtk/gtktextview.c:8993
msgid "_Paste"
msgstr "Ð’ÑÑ‚_авить"
-#: gtk/gtklabel.c:5660 gtk/gtktext.c:6069 gtk/gtktextview.c:8986
+#: gtk/gtklabel.c:5666 gtk/gtktext.c:6096 gtk/gtktextview.c:9018
msgid "Select _All"
msgstr "Выделить вÑ_Ñ‘"
-#: gtk/gtklabel.c:5665
+#: gtk/gtklabel.c:5671
msgid "_Open Link"
msgstr "_Открыть ÑÑылку"
-#: gtk/gtklabel.c:5669
+#: gtk/gtklabel.c:5675
msgid "Copy _Link Address"
msgstr "_Скопировать Ð°Ð´Ñ€ÐµÑ ÑÑылки"
@@ -2579,7 +2591,7 @@ msgstr "_Скопировать Ð°Ð´Ñ€ÐµÑ ÑÑылки"
msgid "_Copy URL"
msgstr "_Копировать URL"
-#: gtk/gtklinkbutton.c:540
+#: gtk/gtklinkbutton.c:547
msgid "Invalid URI"
msgstr "Ðеверный URI"
@@ -2620,7 +2632,7 @@ msgstr ""
#. * Do *not* translate it to "predefinito:LTR", if it
#. * it isn't default:LTR or default:RTL it will not work
#.
-#: gtk/gtkmain.c:788
+#: gtk/gtkmain.c:789
msgid "default:LTR"
msgstr "default:LTR"
@@ -2673,7 +2685,7 @@ msgid "%d:%02d"
msgstr "%d:%02d"
#: gtk/gtkmessagedialog.c:162 gtk/gtkmessagedialog.c:180
-#: gtk/gtkprintbackend.c:639 gtk/gtkwindow.c:6151
+#: gtk/gtkprintbackend.c:639 gtk/gtkwindow.c:6157
msgid "_OK"
msgstr "_OK"
@@ -2752,6 +2764,7 @@ msgstr "ÐеизвеÑтное приложение (PID %d)"
#. * the dialog...
#.
#: gtk/gtkmountoperation.c:1396
+#, c-format
msgid "Unable to end process"
msgstr "Ðе удаётÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚ÑŒ процеÑÑ"
@@ -2810,7 +2823,7 @@ msgstr "Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð²ÐºÐ»Ð°Ð´ÐºÐ°"
msgid "Tab"
msgstr "Tab"
-#: gtk/gtknotebook.c:4335 gtk/gtknotebook.c:6543
+#: gtk/gtknotebook.c:4333 gtk/gtknotebook.c:6539
#, c-format
msgid "Page %u"
msgstr "Страница %u"
@@ -2855,19 +2868,19 @@ msgstr ""
msgid "Page Setup"
msgstr "ÐаÑтройка Ñтраницы"
-#: gtk/gtkpasswordentry.c:173
+#: gtk/gtkpasswordentry.c:170
msgid "Hide Text"
msgstr "Скрыть текÑÑ‚"
-#: gtk/gtkpasswordentry.c:178 gtk/gtkpasswordentry.c:622
+#: gtk/gtkpasswordentry.c:175 gtk/gtkpasswordentry.c:619
msgid "Show Text"
msgstr "Показать текÑÑ‚"
-#: gtk/gtkpasswordentry.c:217
+#: gtk/gtkpasswordentry.c:214
msgid "Caps Lock is on"
msgstr "Включён режим Caps Lock"
-#: gtk/gtkpasswordentry.c:698
+#: gtk/gtkpasswordentry.c:695
msgid "_Show Text"
msgstr "_Показать текÑÑ‚"
@@ -2971,7 +2984,7 @@ msgstr "Это Ð¸Ð¼Ñ ÑƒÐ¶Ðµ занÑто"
#: gtk/gtkplacessidebar.c:2303 gtk/inspector/actions.ui:19
#: gtk/inspector/css-node-tree.ui:22 gtk/inspector/prop-list.ui:24
-#: gtk/ui/gtkfilechooserwidget.ui:151 gtk/ui/gtkfilechooserwidget.ui:615
+#: gtk/ui/gtkfilechooserwidget.ui:176 gtk/ui/gtkfilechooserwidget.ui:640
#: gtk/ui/gtkprintunixdialog.ui:83
msgid "Name"
msgstr "ИмÑ"
@@ -3288,11 +3301,11 @@ msgstr "Ðаиболее вероÑÑ‚Ð½Ð°Ñ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ð°: не удалоÑÑŒ
#. window
#: gtk/gtkprintoperation-portal.c:236 gtk/gtkprintoperation-portal.c:554
-#: gtk/gtkprintoperation-portal.c:623 gtk/gtkprintunixdialog.c:3082
+#: gtk/gtkprintoperation-portal.c:623 gtk/gtkprintunixdialog.c:3066
msgid "Print"
msgstr "Печать"
-#: gtk/gtkprintoperation-unix.c:478 gtk/gtkprintoperation-win32.c:1504
+#: gtk/gtkprintoperation-unix.c:481 gtk/gtkprintoperation-win32.c:1504
msgid "Application"
msgstr "Приложение"
@@ -3306,7 +3319,7 @@ msgstr "Ðет бумаги"
#. Translators: this is a printer status.
#: gtk/gtkprintoperation-win32.c:639
-#: modules/printbackends/gtkprintbackendcups.c:2639
+#: modules/printbackends/gtkprintbackendcups.c:2638
msgid "Paused"
msgstr "ПриоÑтановлено"
@@ -3363,7 +3376,7 @@ msgstr "Пе_чать"
msgid "Getting printer information failed"
msgstr "Ðе удалоÑÑŒ получить информацию о принтере"
-#: gtk/gtkprintunixdialog.c:1882
+#: gtk/gtkprintunixdialog.c:1866
msgid "Getting printer information…"
msgstr "Получение информации о принтере…"
@@ -3373,63 +3386,63 @@ msgstr "Получение информации о принтере…"
#. Translators: These strings name the possible arrangements of
#. * multiple pages on a sheet when printing
#.
-#: gtk/gtkprintunixdialog.c:2827
-#: modules/printbackends/gtkprintbackendcups.c:5647
+#: gtk/gtkprintunixdialog.c:2811
+#: modules/printbackends/gtkprintbackendcups.c:5646
msgid "Left to right, top to bottom"
msgstr "Слева направо, Ñверху вниз"
-#: gtk/gtkprintunixdialog.c:2827
-#: modules/printbackends/gtkprintbackendcups.c:5647
+#: gtk/gtkprintunixdialog.c:2811
+#: modules/printbackends/gtkprintbackendcups.c:5646
msgid "Left to right, bottom to top"
msgstr "Слева направо, Ñнизу вверх"
-#: gtk/gtkprintunixdialog.c:2828
-#: modules/printbackends/gtkprintbackendcups.c:5648
+#: gtk/gtkprintunixdialog.c:2812
+#: modules/printbackends/gtkprintbackendcups.c:5647
msgid "Right to left, top to bottom"
msgstr "Справа налево, Ñверху вниз"
-#: gtk/gtkprintunixdialog.c:2828
-#: modules/printbackends/gtkprintbackendcups.c:5648
+#: gtk/gtkprintunixdialog.c:2812
+#: modules/printbackends/gtkprintbackendcups.c:5647
msgid "Right to left, bottom to top"
msgstr "Справа налево, Ñнизу вверх"
-#: gtk/gtkprintunixdialog.c:2829
-#: modules/printbackends/gtkprintbackendcups.c:5649
+#: gtk/gtkprintunixdialog.c:2813
+#: modules/printbackends/gtkprintbackendcups.c:5648
msgid "Top to bottom, left to right"
msgstr "Сверху вниз, Ñлева направо"
-#: gtk/gtkprintunixdialog.c:2829
-#: modules/printbackends/gtkprintbackendcups.c:5649
+#: gtk/gtkprintunixdialog.c:2813
+#: modules/printbackends/gtkprintbackendcups.c:5648
msgid "Top to bottom, right to left"
msgstr "Сверху вниз, Ñправа налево"
-#: gtk/gtkprintunixdialog.c:2830
-#: modules/printbackends/gtkprintbackendcups.c:5650
+#: gtk/gtkprintunixdialog.c:2814
+#: modules/printbackends/gtkprintbackendcups.c:5649
msgid "Bottom to top, left to right"
msgstr "Снизу вверх, Ñлева направо"
-#: gtk/gtkprintunixdialog.c:2830
-#: modules/printbackends/gtkprintbackendcups.c:5650
+#: gtk/gtkprintunixdialog.c:2814
+#: modules/printbackends/gtkprintbackendcups.c:5649
msgid "Bottom to top, right to left"
msgstr "Снизу вверх, Ñправа налево"
-#: gtk/gtkprintunixdialog.c:2834 gtk/gtkprintunixdialog.c:2847
+#: gtk/gtkprintunixdialog.c:2818 gtk/gtkprintunixdialog.c:2831
msgid "Page Ordering"
msgstr "ПорÑдок Ñтраниц"
-#: gtk/gtkprintunixdialog.c:2863
+#: gtk/gtkprintunixdialog.c:2847
msgid "Left to right"
msgstr "Слева направо"
-#: gtk/gtkprintunixdialog.c:2864
+#: gtk/gtkprintunixdialog.c:2848
msgid "Right to left"
msgstr "Справа налево"
-#: gtk/gtkprintunixdialog.c:2876
+#: gtk/gtkprintunixdialog.c:2860
msgid "Top to bottom"
msgstr "Сверху вниз"
-#: gtk/gtkprintunixdialog.c:2877
+#: gtk/gtkprintunixdialog.c:2861
msgid "Bottom to top"
msgstr "Снизу вверх"
@@ -3534,37 +3547,33 @@ msgid "Search Shortcuts"
msgstr "ПоиÑк Ñрлыков"
#: gtk/gtkshortcutswindow.c:968 gtk/ui/gtkemojichooser.ui:349
-#: gtk/ui/gtkfilechooserwidget.ui:472
+#: gtk/ui/gtkfilechooserwidget.ui:497
msgid "No Results Found"
msgstr "Результатов не найдено"
#: gtk/gtkshortcutswindow.c:974 gtk/ui/gtkemojichooser.ui:362
-#: gtk/ui/gtkfilechooserwidget.ui:485 gtk/ui/gtkplacesview.ui:218
+#: gtk/ui/gtkfilechooserwidget.ui:510 gtk/ui/gtkplacesview.ui:218
msgid "Try a different search"
msgstr "Попробуйте другой поиÑковый запроÑ"
-#: gtk/gtkshow.c:170
-msgid "Could not show link"
-msgstr "Ðе удалоÑÑŒ показать ÑÑылку"
-
#: gtk/gtkstacksidebar.c:154
msgctxt "accessibility"
msgid "Sidebar"
msgstr "Ð‘Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ"
-#: gtk/gtktext.c:6074 gtk/gtktextview.c:8991
+#: gtk/gtktext.c:6101 gtk/gtktextview.c:9023
msgid "Insert _Emoji"
msgstr "Ð’Ñтавить _Emoji"
-#: gtk/gtktextview.c:8973
+#: gtk/gtktextview.c:9005
msgid "_Undo"
msgstr "_Отменить"
-#: gtk/gtktextview.c:8977
+#: gtk/gtktextview.c:9009
msgid "_Redo"
msgstr "Ве_рнуть"
-#: gtk/gtktreeexpander.c:205 gtk/inspector/misc-info.ui:287
+#: gtk/gtktreeexpander.c:189 gtk/inspector/misc-info.ui:287
msgid "Expand"
msgstr "Развернуть"
@@ -3587,12 +3596,12 @@ msgctxt "volume percentage"
msgid "%d %%"
msgstr "%d %%"
-#: gtk/gtkwindow.c:6138
+#: gtk/gtkwindow.c:6145
#, c-format
msgid "Do you want to use GTK Inspector?"
msgstr "Ð’Ñ‹ хотите иÑпользовать GTK Inspector?"
-#: gtk/gtkwindow.c:6140
+#: gtk/gtkwindow.c:6147
#, c-format
msgid ""
"GTK Inspector is an interactive debugger that lets you explore and modify "
@@ -3603,7 +3612,7 @@ msgstr ""
"изменÑÑ‚ÑŒ внутренние компоненты любого GTK-приложениÑ. Его иÑпользование "
"может привеÑти к поломке или аварийному завершению работы приложениÑ."
-#: gtk/gtkwindow.c:6145
+#: gtk/gtkwindow.c:6152
msgid "Don’t show this message again"
msgstr "Ðе показывать Ñто Ñообщение Ñнова"
@@ -3649,7 +3658,7 @@ msgstr "Ðтрибут"
#: gtk/inspector/a11y.ui:84 gtk/inspector/css-node-tree.ui:70
#: gtk/inspector/prop-list.ui:57 gtk/inspector/recorder.ui:149
-#: gtk/inspector/recorder.ui:192 gtk/inspector/strv-editor.c:74
+#: gtk/inspector/recorder.ui:192 gtk/inspector/strv-editor.c:73
msgid "Value"
msgstr "Значение"
@@ -3752,6 +3761,7 @@ msgid "Changes are applied instantly and globally, for the whole application."
msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²ÑтупÑÑ‚ в Ñилу немедленно Ð´Ð»Ñ Ð²Ñего приложениÑ."
#: gtk/inspector/css-editor.c:206
+#, c-format
msgid "Saving CSS failed"
msgstr "Сбой при Ñохранении CSS"
@@ -3914,7 +3924,7 @@ msgid "Address"
msgstr "ÐдреÑ"
#: gtk/inspector/misc-info.ui:62 gtk/inspector/prop-list.ui:35
-#: gtk/inspector/statistics.ui:36 gtk/ui/gtkfilechooserwidget.ui:311
+#: gtk/inspector/statistics.ui:36 gtk/ui/gtkfilechooserwidget.ui:336
msgid "Type"
msgstr "Тип"
@@ -3955,8 +3965,8 @@ msgid "Surface"
msgstr "ПоверхноÑÑ‚ÑŒ"
#: gtk/inspector/misc-info.ui:415 gtk/inspector/misc-info.ui:454
-#: gtk/inspector/misc-info.ui:493 gtk/inspector/prop-editor.c:1152
-#: gtk/inspector/prop-editor.c:1537 gtk/inspector/window.ui:396
+#: gtk/inspector/misc-info.ui:493 gtk/inspector/prop-editor.c:1150
+#: gtk/inspector/prop-editor.c:1533 gtk/inspector/window.ui:396
msgid "Properties"
msgstr "СвойÑтва"
@@ -4034,66 +4044,66 @@ msgstr "%s Ð´Ð»Ñ %s %p"
msgid "%s with value type %s"
msgstr "%s Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ %s"
-#: gtk/inspector/prop-editor.c:1231
+#: gtk/inspector/prop-editor.c:1227
#, c-format
msgid "Uneditable property type: %s"
msgstr "Ðередактируемое ÑвойÑтво: %s"
-#: gtk/inspector/prop-editor.c:1389
+#: gtk/inspector/prop-editor.c:1385
msgctxt "column number"
msgid "None"
msgstr "Отключено"
-#: gtk/inspector/prop-editor.c:1426
+#: gtk/inspector/prop-editor.c:1422
msgid "Attribute:"
msgstr "Ðтрибут:"
-#: gtk/inspector/prop-editor.c:1429
+#: gtk/inspector/prop-editor.c:1425
msgid "Model"
msgstr "Модель"
-#: gtk/inspector/prop-editor.c:1434
+#: gtk/inspector/prop-editor.c:1430
msgid "Column:"
msgstr "Столбец:"
#. Translators: %s is a type name, for example
#. * Action from 0x2345678 (GtkApplicationWindow)
#.
-#: gtk/inspector/prop-editor.c:1533
+#: gtk/inspector/prop-editor.c:1529
#, c-format
msgid "Action from: %p (%s)"
msgstr "ДейÑтвие из: %p (%s)"
-#: gtk/inspector/prop-editor.c:1588
+#: gtk/inspector/prop-editor.c:1584
msgid "Reset"
msgstr "СброÑить"
-#: gtk/inspector/prop-editor.c:1596
+#: gtk/inspector/prop-editor.c:1592
msgctxt "GtkSettings source"
msgid "Default"
msgstr "По умолчанию"
-#: gtk/inspector/prop-editor.c:1599
+#: gtk/inspector/prop-editor.c:1595
msgctxt "GtkSettings source"
msgid "Theme"
msgstr "Тема"
-#: gtk/inspector/prop-editor.c:1602
+#: gtk/inspector/prop-editor.c:1598
msgctxt "GtkSettings source"
msgid "XSettings"
msgstr "XSettings"
-#: gtk/inspector/prop-editor.c:1606
+#: gtk/inspector/prop-editor.c:1602
msgctxt "GtkSettings source"
msgid "Application"
msgstr "Приложение"
-#: gtk/inspector/prop-editor.c:1609
+#: gtk/inspector/prop-editor.c:1605
msgctxt "GtkSettings source"
msgid "Unknown"
msgstr "ÐеизвеÑтный"
-#: gtk/inspector/prop-editor.c:1612
+#: gtk/inspector/prop-editor.c:1608
msgid "Source:"
msgstr "ИÑточник:"
@@ -4101,7 +4111,8 @@ msgstr "ИÑточник:"
msgid "Defined At"
msgstr "Определён в"
-#: gtk/inspector/recorder.c:1832
+#: gtk/inspector/recorder.c:1829
+#, c-format
msgid "Saving RenderNode failed"
msgstr "Сбой при Ñохранении RenderNode"
@@ -4145,7 +4156,7 @@ msgstr "Путь"
msgid "Count"
msgstr "Счётчик"
-#: gtk/inspector/resource-list.ui:82 gtk/ui/gtkfilechooserwidget.ui:265
+#: gtk/inspector/resource-list.ui:82 gtk/ui/gtkfilechooserwidget.ui:290
#: gtk/ui/gtkfontchooserwidget.ui:204 gtk/ui/gtkfontchooserwidget.ui:351
msgid "Size"
msgstr "Размер"
@@ -4222,12 +4233,12 @@ msgstr "ВозраÑтающий"
msgid "Enable statistics with GOBJECT_DEBUG=instance-count"
msgstr "Включение ÑтатиÑтики Ñ Ð¸Ñпользованием GOBJECT_DEBUG=instance-count"
-#: gtk/inspector/strv-editor.c:85
+#: gtk/inspector/strv-editor.c:83
#, c-format
msgid "Remove %s"
msgstr "Удалить %s"
-#: gtk/inspector/strv-editor.c:118
+#: gtk/inspector/strv-editor.c:115
msgid "Add"
msgstr "Добавить"
@@ -4437,7 +4448,7 @@ msgstr "Увеличитель"
#: gtk/inspector/window.ui:508
msgid "Accessibility"
-msgstr "ДоÑтупноÑÑ‚ÑŒ"
+msgstr "Специальные возможноÑти"
#: gtk/inspector/window.ui:532
msgid "Global"
@@ -5993,12 +6004,16 @@ msgstr "БлагодарноÑти"
msgid "System"
msgstr "СиÑтема"
+#: gtk/ui/gtkappchooserdialog.ui:4
+msgid "Select App"
+msgstr "Выбрать приложение"
+
#: gtk/ui/gtkappchooserdialog.ui:60
-msgid "_View All Applications"
+msgid "_View All Apps"
msgstr "_ПроÑмотреть вÑе приложениÑ"
#: gtk/ui/gtkappchooserdialog.ui:66
-msgid "_Find New Applications"
+msgid "_Find New Apps"
msgstr "_Ðайти новые приложениÑ"
#: gtk/ui/gtkappchooserwidget.ui:100
@@ -6145,19 +6160,19 @@ msgctxt "emoji category"
msgid "Recent"
msgstr "Ðедавние"
-#: gtk/ui/gtkfilechooserwidget.ui:64
+#: gtk/ui/gtkfilechooserwidget.ui:71
msgid "Create Folder"
msgstr "Создать папку"
-#: gtk/ui/gtkfilechooserwidget.ui:424
+#: gtk/ui/gtkfilechooserwidget.ui:449
msgid "Remote location — only searching the current folder"
msgstr "Удалённое меÑтоположение — поиÑк только в текущей папке"
-#: gtk/ui/gtkfilechooserwidget.ui:553
+#: gtk/ui/gtkfilechooserwidget.ui:578
msgid "Folder Name"
msgstr "Ð˜Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸"
-#: gtk/ui/gtkfilechooserwidget.ui:579
+#: gtk/ui/gtkfilechooserwidget.ui:604
msgid "_Create"
msgstr "_Создать"
@@ -6481,446 +6496,446 @@ msgstr "Ðе удалоÑÑŒ выделить контекÑÑ‚ повторной
msgid "No audio output found"
msgstr "Ðудиовыход не найден"
-#: modules/printbackends/gtkprintbackendcups.c:1142
-#: modules/printbackends/gtkprintbackendcups.c:1449
+#: modules/printbackends/gtkprintbackendcups.c:1141
+#: modules/printbackends/gtkprintbackendcups.c:1448
msgid "Username:"
msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ:"
-#: modules/printbackends/gtkprintbackendcups.c:1143
-#: modules/printbackends/gtkprintbackendcups.c:1458
+#: modules/printbackends/gtkprintbackendcups.c:1142
+#: modules/printbackends/gtkprintbackendcups.c:1457
msgid "Password:"
msgstr "Пароль:"
-#: modules/printbackends/gtkprintbackendcups.c:1181
-#: modules/printbackends/gtkprintbackendcups.c:1471
+#: modules/printbackends/gtkprintbackendcups.c:1180
+#: modules/printbackends/gtkprintbackendcups.c:1470
#, c-format
msgid "Authentication is required to print document “%s†on printer %s"
msgstr ""
"Ð”Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ документа «%s» на принтере %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:1183
+#: modules/printbackends/gtkprintbackendcups.c:1182
#, c-format
msgid "Authentication is required to print a document on %s"
msgstr "Ð”Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ документа на принтере %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:1187
+#: modules/printbackends/gtkprintbackendcups.c:1186
#, c-format
msgid "Authentication is required to get attributes of job “%sâ€"
msgstr ""
"Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Â«%s» требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:1189
+#: modules/printbackends/gtkprintbackendcups.c:1188
msgid "Authentication is required to get attributes of a job"
msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:1193
+#: modules/printbackends/gtkprintbackendcups.c:1192
#, c-format
msgid "Authentication is required to get attributes of printer %s"
msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² принтера %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:1195
+#: modules/printbackends/gtkprintbackendcups.c:1194
msgid "Authentication is required to get attributes of a printer"
msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² принтера требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:1198
+#: modules/printbackends/gtkprintbackendcups.c:1197
#, c-format
msgid "Authentication is required to get default printer of %s"
msgstr ""
"Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð° по умолчанию на %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:1201
+#: modules/printbackends/gtkprintbackendcups.c:1200
#, c-format
msgid "Authentication is required to get printers from %s"
msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑпиÑка принтеров от %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:1206
+#: modules/printbackends/gtkprintbackendcups.c:1205
#, c-format
msgid "Authentication is required to get a file from %s"
msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° из %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:1208
+#: modules/printbackends/gtkprintbackendcups.c:1207
#, c-format
msgid "Authentication is required on %s"
msgstr "Ð”Ð»Ñ Ð´Ð¾Ñтупа к %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:1443
+#: modules/printbackends/gtkprintbackendcups.c:1442
msgid "Domain:"
msgstr "Домен:"
-#: modules/printbackends/gtkprintbackendcups.c:1473
+#: modules/printbackends/gtkprintbackendcups.c:1472
#, c-format
msgid "Authentication is required to print document “%sâ€"
msgstr ""
"Ð”Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ документа на принтере «%s» требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:1478
+#: modules/printbackends/gtkprintbackendcups.c:1477
#, c-format
msgid "Authentication is required to print this document on printer %s"
msgstr "Ð”Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ документа на принтере %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:1480
+#: modules/printbackends/gtkprintbackendcups.c:1479
msgid "Authentication is required to print this document"
msgstr ""
"Ð”Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ Ñтого документа на принтере требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа"
-#: modules/printbackends/gtkprintbackendcups.c:2568
+#: modules/printbackends/gtkprintbackendcups.c:2567
#, c-format
msgid "Printer “%s†is low on toner."
msgstr "Ð’ принтере «%s» заканчиваетÑÑ Ñ‚Ð¾Ð½ÐµÑ€."
-#: modules/printbackends/gtkprintbackendcups.c:2572
+#: modules/printbackends/gtkprintbackendcups.c:2571
#, c-format
msgid "Printer “%s†has no toner left."
msgstr "Ð’ принтере «%s» закончилÑÑ Ñ‚Ð¾Ð½ÐµÑ€."
#. Translators: "Developer" like on photo development context
-#: modules/printbackends/gtkprintbackendcups.c:2577
+#: modules/printbackends/gtkprintbackendcups.c:2576
#, c-format
msgid "Printer “%s†is low on developer."
msgstr "Ð’ принтере «%s» заканчиваетÑÑ Ð¿Ñ€Ð¾Ñвитель."
#. Translators: "Developer" like on photo development context
-#: modules/printbackends/gtkprintbackendcups.c:2582
+#: modules/printbackends/gtkprintbackendcups.c:2581
#, c-format
msgid "Printer “%s†is out of developer."
msgstr "Ð’ принтере «%s» закончилÑÑ Ð¿Ñ€Ð¾Ñвитель."
#. Translators: "marker" is one color bin of the printer
-#: modules/printbackends/gtkprintbackendcups.c:2587
+#: modules/printbackends/gtkprintbackendcups.c:2586
#, c-format
msgid "Printer “%s†is low on at least one marker supply."
msgstr "Ð’ принтере «%s» заканчиваетÑÑ Ð¾Ð´Ð¸Ð½ из тонеров."
#. Translators: "marker" is one color bin of the printer
-#: modules/printbackends/gtkprintbackendcups.c:2592
+#: modules/printbackends/gtkprintbackendcups.c:2591
#, c-format
msgid "Printer “%s†is out of at least one marker supply."
msgstr "Ð’ принтере «%s» закончилÑÑ Ð¾Ð´Ð¸Ð½ из тонеров."
-#: modules/printbackends/gtkprintbackendcups.c:2596
+#: modules/printbackends/gtkprintbackendcups.c:2595
#, c-format
msgid "The cover is open on printer “%sâ€."
msgstr "В принтере «%s» открыта крышка."
-#: modules/printbackends/gtkprintbackendcups.c:2600
+#: modules/printbackends/gtkprintbackendcups.c:2599
#, c-format
msgid "The door is open on printer “%sâ€."
msgstr "В принтере «%s» открыта дверца."
-#: modules/printbackends/gtkprintbackendcups.c:2604
+#: modules/printbackends/gtkprintbackendcups.c:2603
#, c-format
msgid "Printer “%s†is low on paper."
msgstr "Ð’ принтере «%s» заканчиваетÑÑ Ð±ÑƒÐ¼Ð°Ð³Ð°."
-#: modules/printbackends/gtkprintbackendcups.c:2608
+#: modules/printbackends/gtkprintbackendcups.c:2607
#, c-format
msgid "Printer “%s†is out of paper."
msgstr "Ð’ принтере «%s» закончилаÑÑŒ бумага."
-#: modules/printbackends/gtkprintbackendcups.c:2612
+#: modules/printbackends/gtkprintbackendcups.c:2611
#, c-format
msgid "Printer “%s†is currently offline."
msgstr "Принтер «%s» в данный момент отключён."
-#: modules/printbackends/gtkprintbackendcups.c:2616
+#: modules/printbackends/gtkprintbackendcups.c:2615
#, c-format
msgid "There is a problem on printer “%sâ€."
msgstr "Ðеполадка Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð¾Ð¼ «%s»."
#. Translators: this is a printer status.
-#: modules/printbackends/gtkprintbackendcups.c:2636
+#: modules/printbackends/gtkprintbackendcups.c:2635
msgid "Paused; Rejecting Jobs"
msgstr "ПриоÑтановлено; отмена заданий"
#. Translators: this is a printer status.
-#: modules/printbackends/gtkprintbackendcups.c:2642
+#: modules/printbackends/gtkprintbackendcups.c:2641
msgid "Rejecting Jobs"
msgstr "Отмена заданий"
#. Translators: this string connects multiple printer states together.
-#: modules/printbackends/gtkprintbackendcups.c:2683
+#: modules/printbackends/gtkprintbackendcups.c:2682
msgid "; "
msgstr "; "
-#: modules/printbackends/gtkprintbackendcups.c:4584
-#: modules/printbackends/gtkprintbackendcups.c:4651
+#: modules/printbackends/gtkprintbackendcups.c:4583
+#: modules/printbackends/gtkprintbackendcups.c:4650
msgctxt "printing option"
msgid "Two Sided"
msgstr "С двух Ñторон"
-#: modules/printbackends/gtkprintbackendcups.c:4585
+#: modules/printbackends/gtkprintbackendcups.c:4584
msgctxt "printing option"
msgid "Paper Type"
msgstr "Тип бумаги"
-#: modules/printbackends/gtkprintbackendcups.c:4586
+#: modules/printbackends/gtkprintbackendcups.c:4585
msgctxt "printing option"
msgid "Paper Source"
msgstr "ИÑточник бумаги"
-#: modules/printbackends/gtkprintbackendcups.c:4587
-#: modules/printbackends/gtkprintbackendcups.c:4652
+#: modules/printbackends/gtkprintbackendcups.c:4586
+#: modules/printbackends/gtkprintbackendcups.c:4651
msgctxt "printing option"
msgid "Output Tray"
msgstr "Лоток вывода"
-#: modules/printbackends/gtkprintbackendcups.c:4588
+#: modules/printbackends/gtkprintbackendcups.c:4587
msgctxt "printing option"
msgid "Resolution"
msgstr "Разрешение"
-#: modules/printbackends/gtkprintbackendcups.c:4589
+#: modules/printbackends/gtkprintbackendcups.c:4588
msgctxt "printing option"
msgid "GhostScript pre-filtering"
msgstr "Ð¤Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4598
+#: modules/printbackends/gtkprintbackendcups.c:4597
msgctxt "printing option value"
msgid "One Sided"
msgstr "С одной Ñтороны"
#. Translators: this is an option of "Two Sided"
-#: modules/printbackends/gtkprintbackendcups.c:4600
+#: modules/printbackends/gtkprintbackendcups.c:4599
msgctxt "printing option value"
msgid "Long Edge (Standard)"
msgstr "По длинной Ñтороне"
#. Translators: this is an option of "Two Sided"
-#: modules/printbackends/gtkprintbackendcups.c:4602
+#: modules/printbackends/gtkprintbackendcups.c:4601
msgctxt "printing option value"
msgid "Short Edge (Flip)"
msgstr "По короткой Ñтороне"
#. Translators: this is an option of "Paper Source"
-#: modules/printbackends/gtkprintbackendcups.c:4604
-#: modules/printbackends/gtkprintbackendcups.c:4606
-#: modules/printbackends/gtkprintbackendcups.c:4614
+#: modules/printbackends/gtkprintbackendcups.c:4603
+#: modules/printbackends/gtkprintbackendcups.c:4605
+#: modules/printbackends/gtkprintbackendcups.c:4613
msgctxt "printing option value"
msgid "Auto Select"
msgstr "Ðвтовыбор"
#. Translators: this is an option of "Paper Source"
#. Translators: this is an option of "Resolution"
-#: modules/printbackends/gtkprintbackendcups.c:4608
-#: modules/printbackends/gtkprintbackendcups.c:4610
-#: modules/printbackends/gtkprintbackendcups.c:4612
-#: modules/printbackends/gtkprintbackendcups.c:4616
+#: modules/printbackends/gtkprintbackendcups.c:4607
+#: modules/printbackends/gtkprintbackendcups.c:4609
+#: modules/printbackends/gtkprintbackendcups.c:4611
+#: modules/printbackends/gtkprintbackendcups.c:4615
msgctxt "printing option value"
msgid "Printer Default"
msgstr "Ð£Ð¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð°"
#. Translators: this is an option of "GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4618
+#: modules/printbackends/gtkprintbackendcups.c:4617
msgctxt "printing option value"
msgid "Embed GhostScript fonts only"
msgstr "Ð’Ñтраивать только шрифты GhostScript"
#. Translators: this is an option of "GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4620
+#: modules/printbackends/gtkprintbackendcups.c:4619
msgctxt "printing option value"
msgid "Convert to PS level 1"
msgstr "Преобразовать в формат PS уровень 1"
#. Translators: this is an option of "GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4622
+#: modules/printbackends/gtkprintbackendcups.c:4621
msgctxt "printing option value"
msgid "Convert to PS level 2"
msgstr "Преобразовать в формат PS уровень 2"
#. Translators: this is an option of "GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4624
+#: modules/printbackends/gtkprintbackendcups.c:4623
msgctxt "printing option value"
msgid "No pre-filtering"
msgstr "Ðе фильтровать перед печатью"
#. Translators: "Miscellaneous" is the label for a button, that opens
#. up an extra panel of settings in a print dialog.
-#: modules/printbackends/gtkprintbackendcups.c:4633
+#: modules/printbackends/gtkprintbackendcups.c:4632
msgctxt "printing option group"
msgid "Miscellaneous"
msgstr "Дополнительно"
-#: modules/printbackends/gtkprintbackendcups.c:4660
+#: modules/printbackends/gtkprintbackendcups.c:4659
msgctxt "sides"
msgid "One Sided"
msgstr "С одной Ñтороны"
#. Translators: this is an option of "Two Sided"
-#: modules/printbackends/gtkprintbackendcups.c:4662
+#: modules/printbackends/gtkprintbackendcups.c:4661
msgctxt "sides"
msgid "Long Edge (Standard)"
msgstr "По длинной Ñтороне"
#. Translators: this is an option of "Two Sided"
-#: modules/printbackends/gtkprintbackendcups.c:4664
+#: modules/printbackends/gtkprintbackendcups.c:4663
msgctxt "sides"
msgid "Short Edge (Flip)"
msgstr "По короткой Ñтороне"
#. Translators: Top output bin
-#: modules/printbackends/gtkprintbackendcups.c:4667
+#: modules/printbackends/gtkprintbackendcups.c:4666
msgctxt "output-bin"
msgid "Top Bin"
msgstr "Верхний контейнер"
#. Translators: Middle output bin
-#: modules/printbackends/gtkprintbackendcups.c:4669
+#: modules/printbackends/gtkprintbackendcups.c:4668
msgctxt "output-bin"
msgid "Middle Bin"
msgstr "Средний контейнер"
#. Translators: Bottom output bin
-#: modules/printbackends/gtkprintbackendcups.c:4671
+#: modules/printbackends/gtkprintbackendcups.c:4670
msgctxt "output-bin"
msgid "Bottom Bin"
msgstr "Ðижний контейнер"
#. Translators: Side output bin
-#: modules/printbackends/gtkprintbackendcups.c:4673
+#: modules/printbackends/gtkprintbackendcups.c:4672
msgctxt "output-bin"
msgid "Side Bin"
msgstr "Боковой контейнер"
#. Translators: Left output bin
-#: modules/printbackends/gtkprintbackendcups.c:4675
+#: modules/printbackends/gtkprintbackendcups.c:4674
msgctxt "output-bin"
msgid "Left Bin"
msgstr "Левый контейнер"
#. Translators: Right output bin
-#: modules/printbackends/gtkprintbackendcups.c:4677
+#: modules/printbackends/gtkprintbackendcups.c:4676
msgctxt "output-bin"
msgid "Right Bin"
msgstr "Правый контейнер"
#. Translators: Center output bin
-#: modules/printbackends/gtkprintbackendcups.c:4679
+#: modules/printbackends/gtkprintbackendcups.c:4678
msgctxt "output-bin"
msgid "Center Bin"
msgstr "Центральный контейнер"
#. Translators: Rear output bin
-#: modules/printbackends/gtkprintbackendcups.c:4681
+#: modules/printbackends/gtkprintbackendcups.c:4680
msgctxt "output-bin"
msgid "Rear Bin"
msgstr "Тыловой контейнер"
#. Translators: Output bin where one sided output is oriented in the face-up position
-#: modules/printbackends/gtkprintbackendcups.c:4683
+#: modules/printbackends/gtkprintbackendcups.c:4682
msgctxt "output-bin"
msgid "Face Up Bin"
msgstr "Контейнер лицом вверх"
#. Translators: Output bin where one sided output is oriented in the face-down position
-#: modules/printbackends/gtkprintbackendcups.c:4685
+#: modules/printbackends/gtkprintbackendcups.c:4684
msgctxt "output-bin"
msgid "Face Down Bin"
msgstr "Контейнер лицом вниз"
#. Translators: Large capacity output bin
-#: modules/printbackends/gtkprintbackendcups.c:4687
+#: modules/printbackends/gtkprintbackendcups.c:4686
msgctxt "output-bin"
msgid "Large Capacity Bin"
msgstr "Контейнер большой ёмкоÑти"
#. Translators: Output stacker number %d
-#: modules/printbackends/gtkprintbackendcups.c:4709
+#: modules/printbackends/gtkprintbackendcups.c:4708
#, c-format
msgctxt "output-bin"
msgid "Stacker %d"
msgstr "Ðакопитель %d"
#. Translators: Output mailbox number %d
-#: modules/printbackends/gtkprintbackendcups.c:4713
+#: modules/printbackends/gtkprintbackendcups.c:4712
#, c-format
msgctxt "output-bin"
msgid "Mailbox %d"
msgstr "Почтовый Ñщик %d"
#. Translators: Private mailbox
-#: modules/printbackends/gtkprintbackendcups.c:4717
+#: modules/printbackends/gtkprintbackendcups.c:4716
msgctxt "output-bin"
msgid "My Mailbox"
msgstr "Мой почтовый Ñщик"
#. Translators: Output tray number %d
-#: modules/printbackends/gtkprintbackendcups.c:4721
+#: modules/printbackends/gtkprintbackendcups.c:4720
#, c-format
msgctxt "output-bin"
msgid "Tray %d"
msgstr "Трей %d"
-#: modules/printbackends/gtkprintbackendcups.c:5198
+#: modules/printbackends/gtkprintbackendcups.c:5197
msgid "Printer Default"
msgstr "Ð£Ð¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð°"
#. Translators: These strings name the possible values of the
#. * job priority option in the print dialog
#.
-#: modules/printbackends/gtkprintbackendcups.c:5642
+#: modules/printbackends/gtkprintbackendcups.c:5641
msgid "Urgent"
msgstr "Срочно"
-#: modules/printbackends/gtkprintbackendcups.c:5642
+#: modules/printbackends/gtkprintbackendcups.c:5641
msgid "High"
msgstr "Ð’Ñ‹Ñокий"
-#: modules/printbackends/gtkprintbackendcups.c:5642
+#: modules/printbackends/gtkprintbackendcups.c:5641
msgid "Medium"
msgstr "Средний"
-#: modules/printbackends/gtkprintbackendcups.c:5642
+#: modules/printbackends/gtkprintbackendcups.c:5641
msgid "Low"
msgstr "Ðизкий"
#. Translators, this string is used to label the job priority option
#. * in the print dialog
#.
-#: modules/printbackends/gtkprintbackendcups.c:5672
+#: modules/printbackends/gtkprintbackendcups.c:5671
msgid "Job Priority"
msgstr "Приоритет"
#. Translators, this string is used to label the billing info entry
#. * in the print dialog
#.
-#: modules/printbackends/gtkprintbackendcups.c:5683
+#: modules/printbackends/gtkprintbackendcups.c:5682
msgid "Billing Info"
msgstr "РаÑположение"
#. Translators, these strings are names for various 'standard' cover
#. * pages that the printing system may support.
#.
-#: modules/printbackends/gtkprintbackendcups.c:5707
+#: modules/printbackends/gtkprintbackendcups.c:5706
msgctxt "cover page"
msgid "None"
msgstr "Ðет"
-#: modules/printbackends/gtkprintbackendcups.c:5708
+#: modules/printbackends/gtkprintbackendcups.c:5707
msgctxt "cover page"
msgid "Classified"
msgstr "КлаÑÑифицировано"
-#: modules/printbackends/gtkprintbackendcups.c:5709
+#: modules/printbackends/gtkprintbackendcups.c:5708
msgctxt "cover page"
msgid "Confidential"
msgstr "Конфиденциально"
-#: modules/printbackends/gtkprintbackendcups.c:5710
+#: modules/printbackends/gtkprintbackendcups.c:5709
msgctxt "cover page"
msgid "Secret"
msgstr "Секретно"
-#: modules/printbackends/gtkprintbackendcups.c:5711
+#: modules/printbackends/gtkprintbackendcups.c:5710
msgctxt "cover page"
msgid "Standard"
msgstr "Стандарт"
-#: modules/printbackends/gtkprintbackendcups.c:5712
+#: modules/printbackends/gtkprintbackendcups.c:5711
msgctxt "cover page"
msgid "Top Secret"
msgstr "Совершенно Ñекретно"
-#: modules/printbackends/gtkprintbackendcups.c:5713
+#: modules/printbackends/gtkprintbackendcups.c:5712
msgctxt "cover page"
msgid "Unclassified"
msgstr "Ðе клаÑÑифицировано"
@@ -6928,7 +6943,7 @@ msgstr "Ðе клаÑÑифицировано"
#. Translators, this string is used to label the pages-per-sheet option
#. * in the print dialog
#.
-#: modules/printbackends/gtkprintbackendcups.c:5725
+#: modules/printbackends/gtkprintbackendcups.c:5724
msgctxt "printer option"
msgid "Pages per Sheet"
msgstr "Страниц на лиÑÑ‚"
@@ -6936,7 +6951,7 @@ msgstr "Страниц на лиÑÑ‚"
#. Translators, this string is used to label the option in the print
#. * dialog that controls in what order multiple pages are arranged
#.
-#: modules/printbackends/gtkprintbackendcups.c:5742
+#: modules/printbackends/gtkprintbackendcups.c:5741
msgctxt "printer option"
msgid "Page Ordering"
msgstr "ПорÑдок Ñтраниц"
@@ -6944,7 +6959,7 @@ msgstr "ПорÑдок Ñтраниц"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the front cover page.
#.
-#: modules/printbackends/gtkprintbackendcups.c:5784
+#: modules/printbackends/gtkprintbackendcups.c:5783
msgctxt "printer option"
msgid "Before"
msgstr "До"
@@ -6952,7 +6967,7 @@ msgstr "До"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the back cover page.
#.
-#: modules/printbackends/gtkprintbackendcups.c:5799
+#: modules/printbackends/gtkprintbackendcups.c:5798
msgctxt "printer option"
msgid "After"
msgstr "ПоÑле"
@@ -6961,7 +6976,7 @@ msgstr "ПоÑле"
#. * a print job is printed. Possible values are 'now', a specified time,
#. * or 'on hold'
#.
-#: modules/printbackends/gtkprintbackendcups.c:5819
+#: modules/printbackends/gtkprintbackendcups.c:5818
msgctxt "printer option"
msgid "Print at"
msgstr "ВремÑ"
@@ -6969,7 +6984,7 @@ msgstr "ВремÑ"
#. Translators: this is the name of the option that allows the user
#. * to specify a time when a print job will be printed.
#.
-#: modules/printbackends/gtkprintbackendcups.c:5830
+#: modules/printbackends/gtkprintbackendcups.c:5829
msgctxt "printer option"
msgid "Print at time"
msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° печати"
@@ -6979,64 +6994,64 @@ msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° печати"
#. * the width and height in points. E.g: "Custom
#. * 230.4x142.9"
#.
-#: modules/printbackends/gtkprintbackendcups.c:5877
+#: modules/printbackends/gtkprintbackendcups.c:5876
#, c-format
msgid "Custom %s×%s"
msgstr "ОÑобый %s×%s"
#. TRANSLATORS: this is the ICC color profile to use for this job
-#: modules/printbackends/gtkprintbackendcups.c:5988
+#: modules/printbackends/gtkprintbackendcups.c:5987
msgctxt "printer option"
msgid "Printer Profile"
msgstr "Профиль принтера"
#. TRANSLATORS: this is when color profile information is unavailable
-#: modules/printbackends/gtkprintbackendcups.c:5995
+#: modules/printbackends/gtkprintbackendcups.c:5994
msgctxt "printer option value"
msgid "Unavailable"
msgstr "ÐедоÑтупно"
-#: modules/printbackends/gtkprintbackendfile.c:235
+#: modules/printbackends/gtkprintbackendfile.c:238
msgid "output"
msgstr "вывод"
-#: modules/printbackends/gtkprintbackendfile.c:507
+#: modules/printbackends/gtkprintbackendfile.c:510
msgid "Print to File"
msgstr "Печатать в файл"
-#: modules/printbackends/gtkprintbackendfile.c:633
+#: modules/printbackends/gtkprintbackendfile.c:636
msgid "PDF"
msgstr "PDF"
-#: modules/printbackends/gtkprintbackendfile.c:633
+#: modules/printbackends/gtkprintbackendfile.c:636
msgid "PostScript"
msgstr "PostScript"
-#: modules/printbackends/gtkprintbackendfile.c:633
+#: modules/printbackends/gtkprintbackendfile.c:636
msgid "SVG"
msgstr "SVG"
-#: modules/printbackends/gtkprintbackendfile.c:646
+#: modules/printbackends/gtkprintbackendfile.c:649
msgid "Pages per _sheet:"
msgstr "Страниц на _лиÑÑ‚:"
-#: modules/printbackends/gtkprintbackendfile.c:706
+#: modules/printbackends/gtkprintbackendfile.c:709
msgid "File"
msgstr "Файл"
-#: modules/printbackends/gtkprintbackendfile.c:716
+#: modules/printbackends/gtkprintbackendfile.c:719
msgid "_Output format"
msgstr "Формат _вывода"
-#: modules/printbackends/gtkprintbackendlpr.c:372
+#: modules/printbackends/gtkprintbackendlpr.c:375
msgid "Print to LPR"
msgstr "Печатать на LPR"
-#: modules/printbackends/gtkprintbackendlpr.c:401
+#: modules/printbackends/gtkprintbackendlpr.c:404
msgid "Pages Per Sheet"
msgstr "Страниц на лиÑÑ‚"
-#: modules/printbackends/gtkprintbackendlpr.c:407
+#: modules/printbackends/gtkprintbackendlpr.c:410
msgid "Command Line"
msgstr "ÐšÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока"
@@ -7320,55 +7335,55 @@ msgstr "Ðе удалоÑÑŒ переименовать %s в %s: %s\n"
msgid "Could not rename %s back to %s: %s.\n"
msgstr "Ðе удалоÑÑŒ переименовать %s обратно в %s: %s\n"
-#: tools/updateiconcache.c:1618
+#: tools/updateiconcache.c:1614
#, c-format
msgid "Cache file created successfully.\n"
msgstr "КÑш-файл уÑпешно Ñоздан.\n"
-#: tools/updateiconcache.c:1657
+#: tools/updateiconcache.c:1653
msgid "Overwrite an existing cache, even if up to date"
msgstr "ПерезапиÑать ÑущеÑтвующий кÑш-файл, даже еÑли он обновлён"
-#: tools/updateiconcache.c:1658
+#: tools/updateiconcache.c:1654
msgid "Don’t check for the existence of index.theme"
msgstr "Ðе проверÑÑ‚ÑŒ ÑущеÑтвование файла index.theme"
-#: tools/updateiconcache.c:1659
+#: tools/updateiconcache.c:1655
msgid "Don’t include image data in the cache"
msgstr "Ðе включать Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² кÑш"
-#: tools/updateiconcache.c:1660
+#: tools/updateiconcache.c:1656
msgid "Include image data in the cache"
msgstr "Включить Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² кÑш"
-#: tools/updateiconcache.c:1661
+#: tools/updateiconcache.c:1657
msgid "Output a C header file"
msgstr "Выдавать заголовочный файл C"
-#: tools/updateiconcache.c:1662
+#: tools/updateiconcache.c:1658
msgid "Turn off verbose output"
msgstr "Выключить раÑширенный вывод"
-#: tools/updateiconcache.c:1663
+#: tools/updateiconcache.c:1659
msgid "Validate existing icon cache"
msgstr "Проверить текущий кÑш значков"
-#: tools/updateiconcache.c:1728
+#: tools/updateiconcache.c:1724
#, c-format
msgid "File not found: %s\n"
msgstr "Файл не найден: %s\n"
-#: tools/updateiconcache.c:1734
+#: tools/updateiconcache.c:1730
#, c-format
msgid "Not a valid icon cache: %s\n"
msgstr "Ðекорректный кÑш значков: %s\n"
-#: tools/updateiconcache.c:1747
+#: tools/updateiconcache.c:1743
#, c-format
msgid "No theme index file.\n"
msgstr "Ðет файла Ñ Ð¸Ð½Ð´ÐµÐºÑом темы.\n"
-#: tools/updateiconcache.c:1751
+#: tools/updateiconcache.c:1747
#, c-format
msgid ""
"No theme index file in “%sâ€.\n"
@@ -7378,6 +7393,9 @@ msgstr ""
"ЕÑли дейÑтвительно хотите Ñоздать здеÑÑŒ кÑш значков, иÑпользуйте --ignore-"
"theme-index.\n"
+#~ msgid "Default Application"
+#~ msgstr "Приложение по умолчанию"
+
#~ msgid "horizontal"
#~ msgstr "горизонтальный"
diff --git a/po/uk.po b/po/uk.po
index 13b4e49c68..2c5162a06b 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
-"POT-Creation-Date: 2022-09-26 14:41+0000\n"
-"PO-Revision-Date: 2022-09-26 17:54+0300\n"
+"POT-Creation-Date: 2022-12-17 12:46+0000\n"
+"PO-Revision-Date: 2022-12-23 15:48+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
"Language: uk\n"
@@ -102,7 +102,8 @@ msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ диÑплей EGL"
#: gdk/gdkdisplay.c:1690
#, c-format
msgid "EGL version %d.%d is too old. GTK requires %d.%d"
-msgstr "ВерÑÑ–Ñ EGL %d.%d Ñ” надто давньою. Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ GTK потрібна верÑÑ–Ñ %d.%d"
+msgstr ""
+"ВерÑÑ–Ñ EGL %d.%d Ñ” надто давньою. Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ GTK потрібна верÑÑ–Ñ %d.%d"
#: gdk/gdkdrop.c:130
msgid "Drag’n’drop from other applications is not supported."
@@ -113,12 +114,12 @@ msgstr ""
msgid "No compatible formats to transfer contents."
msgstr "Ðемає ÑуміÑних форматів Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…."
-#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:604
+#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:610
msgid "No GL API allowed."
msgstr "Програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ GL заборонено."
#: gdk/gdkglcontext.c:418 gdk/win32/gdkglcontext-win32-wgl.c:611
-#: gdk/x11/gdkglcontext-glx.c:638
+#: gdk/x11/gdkglcontext-glx.c:644
msgid "Unable to create a GL context"
msgstr "Ðеможливо Ñтворити вміÑÑ‚ GL"
@@ -528,12 +529,12 @@ msgstr "Suspend"
msgid "Error interpreting JPEG image file (%s)"
msgstr "Помилка інтерпретації файлу Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ JPEG (%s)"
-#: gdk/loaders/gdkjpeg.c:192
+#: gdk/loaders/gdkjpeg.c:194
#, c-format
msgid "Unsupported JPEG colorspace (%d)"
msgstr "Ðепідтримуваний проÑÑ‚Ñ–Ñ€ кольорів JPEG (%d)"
-#: gdk/loaders/gdkjpeg.c:201 gdk/loaders/gdkpng.c:266 gdk/loaders/gdktiff.c:453
+#: gdk/loaders/gdkjpeg.c:203 gdk/loaders/gdkpng.c:266 gdk/loaders/gdktiff.c:453
#, c-format
msgid "Not enough memory for image size %ux%u"
msgstr "ÐедоÑтатньо пам'ÑÑ‚Ñ– Ð´Ð»Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ %ux%u"
@@ -567,7 +568,7 @@ msgid "Reading data failed at row %d"
msgstr "Помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… у Ñ€Ñдку %d"
#: gdk/macos/gdkmacosclipboard.c:557 gdk/wayland/gdkclipboard-wayland.c:240
-#: gdk/wayland/gdkdrop-wayland.c:208 gdk/wayland/gdkprimary-wayland.c:335
+#: gdk/wayland/gdkdrop-wayland.c:208 gdk/wayland/gdkprimary-wayland.c:336
#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1063
#: gdk/x11/gdkclipboard-x11.c:805 gdk/x11/gdkdrop-x11.c:235
msgid "No compatible transfer format found"
@@ -587,7 +588,8 @@ msgstr ""
#: gdk/win32/gdkclipdrop-win32.c:731
#, c-format
-msgid "Cannot claim clipboard ownership. Another process claimed it before us."
+msgid ""
+"Cannot claim clipboard ownership. Another process claimed it before us."
msgstr ""
"Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ буфер обміну у влаÑніÑÑ‚ÑŒ. Інший Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ð¾Ð²'Ñзав його із "
"Ñобою до наÑ."
@@ -614,7 +616,8 @@ msgstr ""
#: gdk/win32/gdkclipdrop-win32.c:810 gdk/win32/gdkclipdrop-win32.c:841
#, c-format
-msgid "Cannot set clipboard data. Another process claimed clipboard ownership."
+msgid ""
+"Cannot set clipboard data. Another process claimed clipboard ownership."
msgstr ""
"Ðе вдалоÑÑ Ð²Ñтановити дані буфера обміну. Інший Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ð¾Ð²'Ñзав його із "
"Ñобою до наÑ."
@@ -800,15 +803,15 @@ msgstr ""
"Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ буфер обміну. Ðемає активної програми Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ "
"буфером обміну."
-#: gdk/x11/gdkglcontext-glx.c:754
+#: gdk/x11/gdkglcontext-glx.c:760
msgid "No GLX configurations available"
msgstr "Ðемає доÑтупних налаштувань GLX"
-#: gdk/x11/gdkglcontext-glx.c:827
+#: gdk/x11/gdkglcontext-glx.c:833
msgid "No GLX configuration with required features found"
msgstr "Ðе знайдено налаштувань GLX із потрібними можливоÑÑ‚Ñми"
-#: gdk/x11/gdkglcontext-glx.c:901
+#: gdk/x11/gdkglcontext-glx.c:907
msgid "GLX is not supported"
msgstr "Підтримки GLX не передбачено"
@@ -969,109 +972,244 @@ msgstr "Помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…: адреÑа"
msgid "Could not unescape string"
msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ ÐµÐºÑ€Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñимволів у Ñ€Ñдку"
-#: gtk/gtkaboutdialog.c:124 gtk/ui/gtkaboutdialog.ui:163
+#: gtk/deprecated/gtkappchooserbutton.c:323
+#| msgid "Other…"
+msgid "Other app…"
+msgstr "Інша програма…"
+
+#: gtk/deprecated/gtkappchooserdialog.c:210
+#: gtk/deprecated/gtkappchooserdialog.c:261
+msgid "Select Application"
+msgstr "Виберіть програму"
+
+#. Translators: %s is a filename
+#: gtk/deprecated/gtkappchooserdialog.c:217
+#, c-format
+msgid "Opening “%sâ€."
+msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»."
+
+#: gtk/deprecated/gtkappchooserdialog.c:218
+#, c-format
+msgid "No applications found for “%sâ€"
+msgstr "Ðе знайдено програм Ð´Ð»Ñ Â«%s»"
+
+#. Translators: %s is a file type description
+#: gtk/deprecated/gtkappchooserdialog.c:223
+#, c-format
+msgid "Opening “%s†files."
+msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² «%s»."
+
+#: gtk/deprecated/gtkappchooserdialog.c:225
+#, c-format
+msgid "No applications found for “%s†files"
+msgstr "Ðе знайдено програм Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² «%s»"
+
+#: gtk/deprecated/gtkappchooserdialog.c:427
+msgid "Failed to start GNOME Software"
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити «Програмні заÑоби GNOME»"
+
+#: gtk/deprecated/gtkappchooserwidget.c:525
+#| msgid "Default"
+msgid "Default App"
+msgstr "Типова програма"
+
+#: gtk/deprecated/gtkappchooserwidget.c:575
+#, c-format
+#| msgid "No applications found for “%sâ€."
+msgid "No apps found for “%sâ€."
+msgstr "Ðе знайдено програм Ð´Ð»Ñ Â«%s»."
+
+#: gtk/deprecated/gtkappchooserwidget.c:658
+#| msgid "Recommended Applications"
+msgid "Recommended Apps"
+msgstr "Рекомендовані програми"
+
+#: gtk/deprecated/gtkappchooserwidget.c:673
+#| msgid "Related Applications"
+msgid "Related Apps"
+msgstr "Пов'Ñзані програми"
+
+#: gtk/deprecated/gtkappchooserwidget.c:687
+#| msgid "Other Applications"
+msgid "Other Apps"
+msgstr "Інші програми"
+
+#. This label is displayed in a treeview cell displaying
+#. * a disabled accelerator key combination.
+#.
+#: gtk/deprecated/gtkcellrendereraccel.c:294
+msgctxt "Accelerator"
+msgid "Disabled"
+msgstr "Вимкнено"
+
+#. This label is displayed in a treeview cell displaying
+#. * an accelerator key combination that is not valid according
+#. * to gtk_accelerator_valid().
+#.
+#: gtk/deprecated/gtkcellrendereraccel.c:304
+msgctxt "Accelerator"
+msgid "Invalid"
+msgstr "Ðеправильний"
+
+#. This label is displayed in a treeview cell displaying an accelerator
+#. * when the cell is clicked to change the acelerator.
+#.
+#: gtk/deprecated/gtkcellrendereraccel.c:436
+#: gtk/deprecated/gtkcellrendereraccel.c:729
+msgid "New accelerator…"
+msgstr "Ðове ÑкороченнÑ…"
+
+#: gtk/deprecated/gtkcellrendererprogress.c:132
+#: gtk/deprecated/gtkcellrendererprogress.c:322
+#: gtk/deprecated/gtkcellrendererprogress.c:352
+#, c-format
+msgctxt "progress bar label"
+msgid "%d %%"
+msgstr "%d %%"
+
+#: gtk/deprecated/gtkcolorbutton.c:183 gtk/deprecated/gtkcolorbutton.c:311
+#: gtk/gtkcolordialog.c:411
+msgid "Pick a Color"
+msgstr "Вибір кольору"
+
+#: gtk/deprecated/gtkcolorbutton.c:502 gtk/gtkcolorchooserwidget.c:312
+#: gtk/gtkcolordialogbutton.c:299
+#, c-format
+msgid "Red %d%%, Green %d%%, Blue %d%%, Alpha %d%%"
+msgstr "Червоний %d%%, Зелений %d%%, Синій %d%%, Ðльфа %d%%"
+
+#: gtk/deprecated/gtkcolorbutton.c:508 gtk/gtkcolorchooserwidget.c:318
+#: gtk/gtkcolordialogbutton.c:305
+#, c-format
+msgid "Red %d%%, Green %d%%, Blue %d%%"
+msgstr "Червоний %d%%, Зелений %d%%, Синій %d%%"
+
+#: gtk/deprecated/gtkfontbutton.c:396
+msgid "Sans 12"
+msgstr "Sans 12"
+
+#: gtk/deprecated/gtkfontbutton.c:507 gtk/deprecated/gtkfontbutton.c:621
+#: gtk/gtkfontdialog.c:595
+msgid "Pick a Font"
+msgstr "Виберіть шрифт"
+
+#: gtk/deprecated/gtkfontbutton.c:597 gtk/gtkfilechooserwidget.c:3853
+#: gtk/gtkfontdialogbutton.c:115 gtk/inspector/visual.ui:170
+msgid "Font"
+msgstr "Шрифт"
+
+#: gtk/deprecated/gtkfontbutton.c:1152 gtk/gtkfontdialogbutton.c:613
+msgctxt "font"
+msgid "None"
+msgstr "Ðемає"
+
+#: gtk/deprecated/gtkshow.c:176
+msgid "Could not show link"
+msgstr "Ðе вдалоÑÑŒ показати поÑиланнÑ"
+
+#: gtk/gtkaboutdialog.c:126 gtk/ui/gtkaboutdialog.ui:163
msgid "License"
msgstr "ЛіцензіÑ"
-#: gtk/gtkaboutdialog.c:125
+#: gtk/gtkaboutdialog.c:127
msgid "Custom License"
msgstr "Ðетипові умови ліцензуваннÑ"
-#: gtk/gtkaboutdialog.c:126
+#: gtk/gtkaboutdialog.c:128
msgid "GNU General Public License, version 2 or later"
msgstr "Загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU (GNU GPL), верÑÑ–Ñ 2 або новіша"
-#: gtk/gtkaboutdialog.c:127
+#: gtk/gtkaboutdialog.c:129
msgid "GNU General Public License, version 3 or later"
msgstr "Загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU (GNU GPL), верÑÑ–Ñ 3 або новіша"
-#: gtk/gtkaboutdialog.c:128
+#: gtk/gtkaboutdialog.c:130
msgid "GNU Lesser General Public License, version 2.1 or later"
msgstr ""
"Звужена загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU (GNU LGPL), верÑÑ–Ñ 2.1 або новіша"
-#: gtk/gtkaboutdialog.c:129
+#: gtk/gtkaboutdialog.c:131
msgid "GNU Lesser General Public License, version 3 or later"
msgstr ""
"Звужена загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU (GNU LGPL), верÑÑ–Ñ 3 або новіша"
-#: gtk/gtkaboutdialog.c:130
+#: gtk/gtkaboutdialog.c:132
msgid "BSD 2-Clause License"
msgstr "Спрощена (2-Clause) Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ BSD"
-#: gtk/gtkaboutdialog.c:131
+#: gtk/gtkaboutdialog.c:133
msgid "The MIT License (MIT)"
msgstr "Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ MIT (MIT)"
-#: gtk/gtkaboutdialog.c:132
+#: gtk/gtkaboutdialog.c:134
msgid "Artistic License 2.0"
msgstr "ÐртиÑтична Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ 2.0"
-#: gtk/gtkaboutdialog.c:133
+#: gtk/gtkaboutdialog.c:135
msgid "GNU General Public License, version 2 only"
msgstr "Загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU (GNU GPL), лише верÑÑ–Ñ— 2"
-#: gtk/gtkaboutdialog.c:134
+#: gtk/gtkaboutdialog.c:136
msgid "GNU General Public License, version 3 only"
msgstr "Загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU (GNU GPL), лише верÑÑ–Ñ— 3"
-#: gtk/gtkaboutdialog.c:135
+#: gtk/gtkaboutdialog.c:137
msgid "GNU Lesser General Public License, version 2.1 only"
msgstr "Скорочена загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU, лише верÑÑ–Ñ— 2.1"
-#: gtk/gtkaboutdialog.c:136
+#: gtk/gtkaboutdialog.c:138
msgid "GNU Lesser General Public License, version 3 only"
msgstr "Скорочена загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU, лише верÑÑ–Ñ— 3"
-#: gtk/gtkaboutdialog.c:137
+#: gtk/gtkaboutdialog.c:139
msgid "GNU Affero General Public License, version 3 or later"
msgstr "Звужена загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU Affero, верÑÑ–Ñ 3 або новіша"
-#: gtk/gtkaboutdialog.c:138
+#: gtk/gtkaboutdialog.c:140
msgid "GNU Affero General Public License, version 3 only"
msgstr "Загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Affero GNU (GNU GPL), лише верÑÑ–Ñ— 3"
-#: gtk/gtkaboutdialog.c:139
+#: gtk/gtkaboutdialog.c:141
msgid "BSD 3-Clause License"
msgstr "Спрощена (3-Clause) Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ BSD"
-#: gtk/gtkaboutdialog.c:140
+#: gtk/gtkaboutdialog.c:142
msgid "Apache License, Version 2.0"
msgstr "Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Apache, верÑÑ–Ñ 2.0"
-#: gtk/gtkaboutdialog.c:141
+#: gtk/gtkaboutdialog.c:143
msgid "Mozilla Public License 2.0"
msgstr "ГромадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Mozilla 2.0"
-#: gtk/gtkaboutdialog.c:937
+#: gtk/gtkaboutdialog.c:970
msgid "Website"
msgstr "Сайт"
-#: gtk/gtkaboutdialog.c:973 gtk/ui/gtkapplication-quartz.ui:6
+#: gtk/gtkaboutdialog.c:1006 gtk/ui/gtkapplication-quartz.ui:6
#, c-format
msgid "About %s"
msgstr "Про %s"
-#: gtk/gtkaboutdialog.c:2074
+#: gtk/gtkaboutdialog.c:2096
msgid "Created by"
msgstr "СтвореннÑ"
-#: gtk/gtkaboutdialog.c:2077
+#: gtk/gtkaboutdialog.c:2099
msgid "Documented by"
msgstr "ДокументаціÑ"
-#: gtk/gtkaboutdialog.c:2087
+#: gtk/gtkaboutdialog.c:2109
msgid "Translated by"
msgstr "Переклад"
-#: gtk/gtkaboutdialog.c:2092
+#: gtk/gtkaboutdialog.c:2114
msgid "Design by"
msgstr "Дизайн"
#. Translators: this is the license preamble; the string at the end
#. * contains the name of the license as link text.
#.
-#: gtk/gtkaboutdialog.c:2257
+#: gtk/gtkaboutdialog.c:2279
#, c-format
msgid ""
"This program comes with absolutely no warranty.\n"
@@ -1555,61 +1693,10 @@ msgctxt "accessibility"
msgid "window"
msgstr "вікно"
-#: gtk/gtkappchooserbutton.c:317
-msgid "Other application…"
-msgstr "Інша програма…"
-
-#: gtk/gtkappchooserdialog.c:204 gtk/gtkappchooserdialog.c:255
-#: gtk/ui/gtkappchooserdialog.ui:4
-msgid "Select Application"
-msgstr "Виберіть програму"
-
-#. Translators: %s is a filename
-#: gtk/gtkappchooserdialog.c:211
-#, c-format
-msgid "Opening “%sâ€."
-msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»."
-
-#: gtk/gtkappchooserdialog.c:212
-#, c-format
-msgid "No applications found for “%sâ€"
-msgstr "Ðе знайдено програм Ð´Ð»Ñ Â«%s»"
-
-#. Translators: %s is a file type description
-#: gtk/gtkappchooserdialog.c:217
-#, c-format
-msgid "Opening “%s†files."
-msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² «%s»."
-
-#: gtk/gtkappchooserdialog.c:219
-#, c-format
-msgid "No applications found for “%s†files"
-msgstr "Ðе знайдено програм Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² «%s»"
-
-#: gtk/gtkappchooserdialog.c:421
-msgid "Failed to start GNOME Software"
-msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити «Програмні заÑоби GNOME»"
-
-#: gtk/gtkappchooserwidget.c:519
-msgid "Default Application"
-msgstr "Типова програма"
-
-#: gtk/gtkappchooserwidget.c:569
-#, c-format
-msgid "No applications found for “%sâ€."
-msgstr "Ðе знайдено програм Ð´Ð»Ñ Â«%s»."
-
-#: gtk/gtkappchooserwidget.c:652
-msgid "Recommended Applications"
-msgstr "Рекомендовані програми"
-
-#: gtk/gtkappchooserwidget.c:667
-msgid "Related Applications"
-msgstr "Подібні програми"
-
-#: gtk/gtkappchooserwidget.c:681
-msgid "Other Applications"
-msgstr "Інші програми"
+#: gtk/gtkalertdialog.c:660 gtk/gtkcustompaperunixdialog.c:328
+#: gtk/gtkmessagedialog.c:166 gtk/ui/gtkassistant.ui:40
+msgid "_Close"
+msgstr "_Закрити"
#. Translators: This is the 'reason' given when inhibiting
#. * suspend or screen locking, and the caller hasn't specified
@@ -1619,12 +1706,12 @@ msgstr "Інші програми"
msgid "Reason not specified"
msgstr "Причину не вказано"
-#: gtk/gtkbookmarksmanager.c:51
+#: gtk/gtkbookmarksmanager.c:53
#, c-format
msgid "%s does not exist in the bookmarks list"
msgstr "%s немає у ÑпиÑку закладок"
-#: gtk/gtkbookmarksmanager.c:412
+#: gtk/gtkbookmarksmanager.c:414
#, c-format
msgid "%s already exists in the bookmarks list"
msgstr "%s вже Ñ” у ÑпиÑку закладок"
@@ -1707,287 +1794,242 @@ msgctxt "calendar:week:digits"
msgid "%d"
msgstr "%d"
-#. This label is displayed in a treeview cell displaying
-#. * a disabled accelerator key combination.
-#.
-#: gtk/gtkcellrendereraccel.c:287
-msgctxt "Accelerator"
-msgid "Disabled"
-msgstr "Вимкнено"
-
-#. This label is displayed in a treeview cell displaying
-#. * an accelerator key combination that is not valid according
-#. * to gtk_accelerator_valid().
-#.
-#: gtk/gtkcellrendereraccel.c:297
-msgctxt "Accelerator"
-msgid "Invalid"
-msgstr "Ðеправильний"
-
-#. This label is displayed in a treeview cell displaying an accelerator
-#. * when the cell is clicked to change the acelerator.
-#.
-#: gtk/gtkcellrendereraccel.c:429 gtk/gtkcellrendereraccel.c:722
-msgid "New accelerator…"
-msgstr "Ðове ÑкороченнÑ…"
-
-#: gtk/gtkcellrendererprogress.c:128 gtk/gtkcellrendererprogress.c:318
-#: gtk/gtkcellrendererprogress.c:348
-#, c-format
-msgctxt "progress bar label"
-msgid "%d %%"
-msgstr "%d %%"
-
-#: gtk/gtkcolorbutton.c:179 gtk/gtkcolorbutton.c:307
-msgid "Pick a Color"
-msgstr "Вибір кольору"
-
-#: gtk/gtkcolorbutton.c:496 gtk/gtkcolorchooserwidget.c:308
-#, c-format
-msgid "Red %d%%, Green %d%%, Blue %d%%, Alpha %d%%"
-msgstr "Червоний %d%%, Зелений %d%%, Синій %d%%, Ðльфа %d%%"
-
-#: gtk/gtkcolorbutton.c:502 gtk/gtkcolorchooserwidget.c:314
-#, c-format
-msgid "Red %d%%, Green %d%%, Blue %d%%"
-msgstr "Червоний %d%%, Зелений %d%%, Синій %d%%"
-
-#: gtk/gtkcolorchooserwidget.c:371
+#: gtk/gtkcolorchooserwidget.c:375
#, c-format
msgid "Color: %s"
msgstr "Колір: %s"
-#: gtk/gtkcolorchooserwidget.c:436
+#: gtk/gtkcolorchooserwidget.c:440
msgctxt "Color name"
msgid "Very Light Blue"
msgstr "Дуже Ñвітло-Ñиній"
-#: gtk/gtkcolorchooserwidget.c:437
+#: gtk/gtkcolorchooserwidget.c:441
msgctxt "Color name"
msgid "Light Blue"
msgstr "Світло-Ñиній"
-#: gtk/gtkcolorchooserwidget.c:438
+#: gtk/gtkcolorchooserwidget.c:442
msgctxt "Color name"
msgid "Blue"
msgstr "Синій"
-#: gtk/gtkcolorchooserwidget.c:439
+#: gtk/gtkcolorchooserwidget.c:443
msgctxt "Color name"
msgid "Dark Blue"
msgstr "Темно-Ñиній"
-#: gtk/gtkcolorchooserwidget.c:440
+#: gtk/gtkcolorchooserwidget.c:444
msgctxt "Color name"
msgid "Very Dark Blue"
msgstr "Дуже темно-Ñиній"
-#: gtk/gtkcolorchooserwidget.c:441
+#: gtk/gtkcolorchooserwidget.c:445
msgctxt "Color name"
msgid "Very Light Green"
msgstr "Дуже Ñвітло-зелений"
-#: gtk/gtkcolorchooserwidget.c:442
+#: gtk/gtkcolorchooserwidget.c:446
msgctxt "Color name"
msgid "Light Green"
msgstr "Світло-зелений"
-#: gtk/gtkcolorchooserwidget.c:443
+#: gtk/gtkcolorchooserwidget.c:447
msgctxt "Color name"
msgid "Green"
msgstr "Зелений"
-#: gtk/gtkcolorchooserwidget.c:444
+#: gtk/gtkcolorchooserwidget.c:448
msgctxt "Color name"
msgid "Dark Green"
msgstr "Темно-зелений"
-#: gtk/gtkcolorchooserwidget.c:445
+#: gtk/gtkcolorchooserwidget.c:449
msgctxt "Color name"
msgid "Very Dark Green"
msgstr "Дуже темно-зелений"
-#: gtk/gtkcolorchooserwidget.c:446
+#: gtk/gtkcolorchooserwidget.c:450
msgctxt "Color name"
msgid "Very Light Yellow"
msgstr "Дуже Ñвітло-жовтий"
-#: gtk/gtkcolorchooserwidget.c:447
+#: gtk/gtkcolorchooserwidget.c:451
msgctxt "Color name"
msgid "Light Yellow"
msgstr "Світло-жовтий"
-#: gtk/gtkcolorchooserwidget.c:448
+#: gtk/gtkcolorchooserwidget.c:452
msgctxt "Color name"
msgid "Yellow"
msgstr "Жовтий"
-#: gtk/gtkcolorchooserwidget.c:449
+#: gtk/gtkcolorchooserwidget.c:453
msgctxt "Color name"
msgid "Dark Yellow"
msgstr "Темно-жовтий"
-#: gtk/gtkcolorchooserwidget.c:450
+#: gtk/gtkcolorchooserwidget.c:454
msgctxt "Color name"
msgid "Very Dark Yellow"
msgstr "Дуже темно-жовтий"
-#: gtk/gtkcolorchooserwidget.c:451
+#: gtk/gtkcolorchooserwidget.c:455
msgctxt "Color name"
msgid "Very Light Orange"
msgstr "Дуже Ñвітло-жовтогарÑчий"
-#: gtk/gtkcolorchooserwidget.c:452
+#: gtk/gtkcolorchooserwidget.c:456
msgctxt "Color name"
msgid "Light Orange"
msgstr "Світло-жовтогарÑчий"
-#: gtk/gtkcolorchooserwidget.c:453
+#: gtk/gtkcolorchooserwidget.c:457
msgctxt "Color name"
msgid "Orange"
msgstr "ЖовтогарÑчий"
-#: gtk/gtkcolorchooserwidget.c:454
+#: gtk/gtkcolorchooserwidget.c:458
msgctxt "Color name"
msgid "Dark Orange"
msgstr "Темно-жовтогарÑчий"
-#: gtk/gtkcolorchooserwidget.c:455
+#: gtk/gtkcolorchooserwidget.c:459
msgctxt "Color name"
msgid "Very Dark Orange"
msgstr "Дуже темно-жовтогарÑчий"
-#: gtk/gtkcolorchooserwidget.c:456
+#: gtk/gtkcolorchooserwidget.c:460
msgctxt "Color name"
msgid "Very Light Red"
msgstr "Дуже Ñвітло-червоний"
-#: gtk/gtkcolorchooserwidget.c:457
+#: gtk/gtkcolorchooserwidget.c:461
msgctxt "Color name"
msgid "Light Red"
msgstr "Світло-червоний"
-#: gtk/gtkcolorchooserwidget.c:458
+#: gtk/gtkcolorchooserwidget.c:462
msgctxt "Color name"
msgid "Red"
msgstr "Червоний"
-#: gtk/gtkcolorchooserwidget.c:459
+#: gtk/gtkcolorchooserwidget.c:463
msgctxt "Color name"
msgid "Dark Red"
msgstr "Темно-червоний"
-#: gtk/gtkcolorchooserwidget.c:460
+#: gtk/gtkcolorchooserwidget.c:464
msgctxt "Color name"
msgid "Very Dark Red"
msgstr "Дуже темно-червоний"
-#: gtk/gtkcolorchooserwidget.c:461
+#: gtk/gtkcolorchooserwidget.c:465
msgctxt "Color name"
msgid "Very Light Purple"
msgstr "Дуже Ñвітло-пурпуровий"
-#: gtk/gtkcolorchooserwidget.c:462
+#: gtk/gtkcolorchooserwidget.c:466
msgctxt "Color name"
msgid "Light Purple"
msgstr "Світло-пурпуровий"
-#: gtk/gtkcolorchooserwidget.c:463
+#: gtk/gtkcolorchooserwidget.c:467
msgctxt "Color name"
msgid "Purple"
msgstr "Пурпуровий"
-#: gtk/gtkcolorchooserwidget.c:464
+#: gtk/gtkcolorchooserwidget.c:468
msgctxt "Color name"
msgid "Dark Purple"
msgstr "Темно-пурпуровий"
-#: gtk/gtkcolorchooserwidget.c:465
+#: gtk/gtkcolorchooserwidget.c:469
msgctxt "Color name"
msgid "Very Dark Purple"
msgstr "Дуже темно-пурпуровий"
-#: gtk/gtkcolorchooserwidget.c:466
+#: gtk/gtkcolorchooserwidget.c:470
msgctxt "Color name"
msgid "Very Light Brown"
msgstr "Дуже Ñвітло-коричневий"
-#: gtk/gtkcolorchooserwidget.c:467
+#: gtk/gtkcolorchooserwidget.c:471
msgctxt "Color name"
msgid "Light Brown"
msgstr "Світло-коричневий"
-#: gtk/gtkcolorchooserwidget.c:468
+#: gtk/gtkcolorchooserwidget.c:472
msgctxt "Color name"
msgid "Brown"
msgstr "Коричневий"
-#: gtk/gtkcolorchooserwidget.c:469
+#: gtk/gtkcolorchooserwidget.c:473
msgctxt "Color name"
msgid "Dark Brown"
msgstr "Темно-коричневий"
-#: gtk/gtkcolorchooserwidget.c:470
+#: gtk/gtkcolorchooserwidget.c:474
msgctxt "Color name"
msgid "Very Dark Brown"
msgstr "Дуже темно-коричневий"
-#: gtk/gtkcolorchooserwidget.c:471
+#: gtk/gtkcolorchooserwidget.c:475
msgctxt "Color name"
msgid "White"
msgstr "Білий"
-#: gtk/gtkcolorchooserwidget.c:472
+#: gtk/gtkcolorchooserwidget.c:476
msgctxt "Color name"
msgid "Light Gray 1"
msgstr "Світло-Ñірий 1"
-#: gtk/gtkcolorchooserwidget.c:473
+#: gtk/gtkcolorchooserwidget.c:477
msgctxt "Color name"
msgid "Light Gray 2"
msgstr "Світло-Ñірий 2"
-#: gtk/gtkcolorchooserwidget.c:474
+#: gtk/gtkcolorchooserwidget.c:478
msgctxt "Color name"
msgid "Light Gray 3"
msgstr "Світло-Ñірий 3"
-#: gtk/gtkcolorchooserwidget.c:475
+#: gtk/gtkcolorchooserwidget.c:479
msgctxt "Color name"
msgid "Light Gray 4"
msgstr "Світло-Ñірий 4"
-#: gtk/gtkcolorchooserwidget.c:476
+#: gtk/gtkcolorchooserwidget.c:480
msgctxt "Color name"
msgid "Dark Gray 1"
msgstr "Темно-Ñірий 1"
-#: gtk/gtkcolorchooserwidget.c:477
+#: gtk/gtkcolorchooserwidget.c:481
msgctxt "Color name"
msgid "Dark Gray 2"
msgstr "Темно-Ñірий 2"
-#: gtk/gtkcolorchooserwidget.c:478
+#: gtk/gtkcolorchooserwidget.c:482
msgctxt "Color name"
msgid "Dark Gray 3"
msgstr "Темно-Ñірий 3"
-#: gtk/gtkcolorchooserwidget.c:479
+#: gtk/gtkcolorchooserwidget.c:483
msgctxt "Color name"
msgid "Dark Gray 4"
msgstr "Темно-Ñірий 4"
-#: gtk/gtkcolorchooserwidget.c:480
+#: gtk/gtkcolorchooserwidget.c:484
msgctxt "Color name"
msgid "Black"
msgstr "Чорний"
#. translators: label for the custom section in the color chooser
-#: gtk/gtkcolorchooserwidget.c:552
+#: gtk/gtkcolorchooserwidget.c:556
msgid "Custom"
msgstr "ВлаÑний"
-#: gtk/gtkcolorchooserwidget.c:585
+#: gtk/gtkcolorchooserwidget.c:589
#, c-format
msgid "Custom color %d: %s"
msgstr "ВлаÑний колір %d: %s"
@@ -2006,70 +2048,65 @@ msgstr "Ðалаштувати"
msgid "default:mm"
msgstr "default:mm"
-#: gtk/gtkcustompaperunixdialog.c:318
+#: gtk/gtkcustompaperunixdialog.c:297
msgid "Margins from Printer…"
msgstr "ÐŸÐ¾Ð»Ñ Ð· принтера…"
-#: gtk/gtkcustompaperunixdialog.c:348 gtk/gtkmessagedialog.c:162
-#: gtk/ui/gtkassistant.ui:40
-msgid "_Close"
-msgstr "_Закрити"
-
#. And show the custom paper dialog
-#: gtk/gtkcustompaperunixdialog.c:402 gtk/gtkprintunixdialog.c:3016
+#: gtk/gtkcustompaperunixdialog.c:383 gtk/gtkprintunixdialog.c:3026
msgid "Manage Custom Sizes"
msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð»Ð°Ñними розмірами"
-#: gtk/gtkcustompaperunixdialog.c:466 gtk/gtkpagesetupunixdialog.c:720
+#: gtk/gtkcustompaperunixdialog.c:446 gtk/gtkpagesetupunixdialog.c:721
msgid "inch"
msgstr "дюйми"
-#: gtk/gtkcustompaperunixdialog.c:468 gtk/gtkpagesetupunixdialog.c:718
+#: gtk/gtkcustompaperunixdialog.c:448 gtk/gtkpagesetupunixdialog.c:719
msgid "mm"
msgstr "мм"
-#: gtk/gtkcustompaperunixdialog.c:625
+#: gtk/gtkcustompaperunixdialog.c:604
#, c-format
msgid "Custom Size %d"
msgstr "ВлаÑний розмір %d"
-#: gtk/gtkcustompaperunixdialog.c:939
+#: gtk/gtkcustompaperunixdialog.c:914
msgid "_Width:"
msgstr "_Ширина:"
-#: gtk/gtkcustompaperunixdialog.c:950
+#: gtk/gtkcustompaperunixdialog.c:923
msgid "_Height:"
msgstr "_ВиÑота:"
-#: gtk/gtkcustompaperunixdialog.c:961
+#: gtk/gtkcustompaperunixdialog.c:932
msgid "Paper Size"
msgstr "Розмір паперу"
-#: gtk/gtkcustompaperunixdialog.c:970
+#: gtk/gtkcustompaperunixdialog.c:939
msgid "_Top:"
msgstr "_Верхнє:"
-#: gtk/gtkcustompaperunixdialog.c:981
+#: gtk/gtkcustompaperunixdialog.c:948
msgid "_Bottom:"
msgstr "_Ðижнє:"
-#: gtk/gtkcustompaperunixdialog.c:992
+#: gtk/gtkcustompaperunixdialog.c:957
msgid "_Left:"
msgstr "_Ліве:"
-#: gtk/gtkcustompaperunixdialog.c:1003
+#: gtk/gtkcustompaperunixdialog.c:966
msgid "_Right:"
msgstr "_Праве:"
-#: gtk/gtkcustompaperunixdialog.c:1039
+#: gtk/gtkcustompaperunixdialog.c:999
msgid "Paper Margins"
msgstr "ÐŸÐ¾Ð»Ñ Ñторінки"
-#: gtk/gtkentry.c:3665
+#: gtk/gtkentry.c:3685
msgid "Insert Emoji"
msgstr "Ð’Ñтавити емодзі"
-#: gtk/gtkfilechooserdialog.c:549
+#: gtk/gtkfilechooserdialog.c:552
msgid "_Name"
msgstr "_Ðазва"
@@ -2129,31 +2166,29 @@ msgstr "Тека з такою назвою вже Ñ–Ñнує"
msgid "A file with that name already exists"
msgstr "Файл з такою назвою вже Ñ–Ñнує"
-#: gtk/gtkfilechoosernative.c:509 gtk/gtkfilechoosernative.c:580
-#: gtk/gtkfilechooserwidget.c:1210 gtk/gtkfilechooserwidget.c:5800
-#: gtk/gtkmessagedialog.c:166 gtk/gtkmessagedialog.c:175
-#: gtk/gtkmountoperation.c:608 gtk/gtkpagesetupunixdialog.c:283
-#: gtk/gtkprintbackend.c:637 gtk/gtkprinteroptionwidget.c:721
-#: gtk/gtkprintunixdialog.c:651 gtk/gtkprintunixdialog.c:807
-#: gtk/gtkwindow.c:6113 gtk/inspector/css-editor.c:248
-#: gtk/inspector/recorder.c:1723 gtk/ui/gtkappchooserdialog.ui:45
+#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600
+#: gtk/gtkfilechooserwidget.c:1168 gtk/gtkfilechooserwidget.c:4997
+#: gtk/gtkfiledialog.c:718 gtk/gtkmessagedialog.c:170
+#: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608
+#: gtk/gtkpagesetupunixdialog.c:283 gtk/gtkprintbackend.c:638
+#: gtk/gtkprintunixdialog.c:657 gtk/gtkprintunixdialog.c:814
+#: gtk/gtkwindow.c:6156 gtk/ui/gtkappchooserdialog.ui:45
#: gtk/ui/gtkassistant.ui:52 gtk/ui/gtkcolorchooserdialog.ui:33
#: gtk/ui/gtkfontchooserdialog.ui:24
msgid "_Cancel"
msgstr "_СкаÑувати"
-#: gtk/gtkfilechoosernative.c:510 gtk/gtkfilechoosernative.c:574
-#: gtk/gtkplacessidebar.c:3146 gtk/gtkplacessidebar.c:3231
-#: gtk/gtkplacesview.c:1659
+#: gtk/gtkfilechoosernative.c:521 gtk/gtkfilechoosernative.c:594
+#: gtk/gtkfiledialog.c:690 gtk/gtkplacessidebar.c:3145
+#: gtk/gtkplacessidebar.c:3230 gtk/gtkplacesview.c:1645
msgid "_Open"
msgstr "_Відкрити"
-#: gtk/gtkfilechoosernative.c:574 gtk/inspector/css-editor.c:249
-#: gtk/inspector/recorder.c:1724
+#: gtk/gtkfilechoosernative.c:594 gtk/gtkfiledialog.c:695
msgid "_Save"
msgstr "З_берегти"
-#: gtk/gtkfilechoosernativequartz.c:339 gtk/ui/gtkfilechooserwidget.ui:346
+#: gtk/gtkfilechoosernativequartz.c:340 gtk/ui/gtkfilechooserwidget.ui:546
msgid "Select which types of files are shown"
msgstr "Виберіть типи файлів, Ñкі Ñлід показувати"
@@ -2161,384 +2196,404 @@ msgstr "Виберіть типи файлів, Ñкі Ñлід показува
#. * is a hostname. Nautilus and the panel contain the same string
#. * to translate.
#.
-#: gtk/gtkfilechooserutils.c:362
+#: gtk/gtkfilechooserutils.c:364
#, c-format
msgid "%1$s on %2$s"
msgstr "%1$s на %2$s"
-#: gtk/gtkfilechooserwidget.c:319
+#: gtk/gtkfilechooserwidget.c:347
msgid "Type name of new folder"
msgstr "Введіть назву нової теки"
-#: gtk/gtkfilechooserwidget.c:724
+#: gtk/gtkfilechooserwidget.c:710
msgid "The folder could not be created"
msgstr "Ðе вдалоÑÑŒ Ñтворити теку"
-#: gtk/gtkfilechooserwidget.c:737
+#: gtk/gtkfilechooserwidget.c:723
msgid "You need to choose a valid filename."
msgstr "Потрібно вибрати допуÑтиму назву файла."
-#: gtk/gtkfilechooserwidget.c:740
+#: gtk/gtkfilechooserwidget.c:726
#, c-format
msgid "Cannot create a file under %s as it is not a folder"
msgstr "Ðе вдалоÑÑŒ Ñтворити файл під %s, оÑкільки це не Ñ” текою"
-#: gtk/gtkfilechooserwidget.c:750
+#: gtk/gtkfilechooserwidget.c:736
msgid "Cannot create file as the filename is too long"
msgstr "Ðе вдалоÑÑ Ñтворити файл із вказаною назвою. Ðазва Ñ” надто довгою."
-#: gtk/gtkfilechooserwidget.c:751
+#: gtk/gtkfilechooserwidget.c:737
msgid "Try using a shorter name."
msgstr "Спробуйте Ñкорити назву."
-#: gtk/gtkfilechooserwidget.c:761
+#: gtk/gtkfilechooserwidget.c:747
msgid "You may only select folders"
msgstr "Позначати можна лише теки"
-#: gtk/gtkfilechooserwidget.c:762
+#: gtk/gtkfilechooserwidget.c:748
msgid "The item that you selected is not a folder try using a different item."
msgstr "Вибраний пункт не Ñ” текою; Ñпробуйте інший пункт."
-#: gtk/gtkfilechooserwidget.c:770
+#: gtk/gtkfilechooserwidget.c:756
msgid "Invalid file name"
msgstr "Ðеправильна назва файла"
-#: gtk/gtkfilechooserwidget.c:779
+#: gtk/gtkfilechooserwidget.c:765
msgid "The folder contents could not be displayed"
msgstr "Ðе вдалоÑÑŒ показати вміÑÑ‚ теки"
-#: gtk/gtkfilechooserwidget.c:787
+#: gtk/gtkfilechooserwidget.c:773
msgid "The file could not be deleted"
msgstr "Ðеможливо вилучити файл"
-#: gtk/gtkfilechooserwidget.c:795
+#: gtk/gtkfilechooserwidget.c:781
msgid "The file could not be moved to the Trash"
msgstr "Ðеможливо переміÑтити файл у Ñмітник"
-#: gtk/gtkfilechooserwidget.c:1206
+#: gtk/gtkfilechooserwidget.c:1166
#, c-format
msgid "Are you sure you want to permanently delete “%s�"
msgstr "ОÑтаточно вилучити «%s»?"
-#: gtk/gtkfilechooserwidget.c:1209
-#, c-format
+#: gtk/gtkfilechooserwidget.c:1167
msgid "If you delete an item, it will be permanently lost."
msgstr "Якщо вилучити об'єкт, його буде втрачено назавжди."
-#: gtk/gtkfilechooserwidget.c:1211 gtk/gtkfilechooserwidget.c:1827
-#: gtk/gtklabel.c:5652 gtk/gtktext.c:6051 gtk/gtktextview.c:8968
+#: gtk/gtkfilechooserwidget.c:1168 gtk/gtkfilechooserwidget.c:1793
+#: gtk/gtklabel.c:5661 gtk/gtktext.c:6087 gtk/gtktextview.c:8997
msgid "_Delete"
msgstr "В_илучити"
-#: gtk/gtkfilechooserwidget.c:1334
+#: gtk/gtkfilechooserwidget.c:1281
msgid "The file could not be renamed"
msgstr "Ðеможливо перейменувати файл"
-#: gtk/gtkfilechooserwidget.c:1594
+#: gtk/gtkfilechooserwidget.c:1487
msgid "Could not select file"
msgstr "Ðе вдалоÑÑŒ вибрати файл"
-#: gtk/gtkfilechooserwidget.c:1807
+#: gtk/gtkfilechooserwidget.c:1702 gtk/ui/gtkfilechooserwidget.ui:66
+msgid "Switch to grid view"
+msgstr "ПеремкнутиÑÑ Ð½Ð° переглÑд таблиці"
+
+#: gtk/gtkfilechooserwidget.c:1708
+msgid "Switch to list view"
+msgstr "ПеремкнутиÑÑ Ð½Ð° переглÑд ÑпиÑку"
+
+#: gtk/gtkfilechooserwidget.c:1773
msgid "_Visit File"
msgstr "_Відвідати файл"
-#: gtk/gtkfilechooserwidget.c:1811
+#: gtk/gtkfilechooserwidget.c:1777
msgid "_Open With File Manager"
msgstr "_Відкрити через файловий менеджер"
-#: gtk/gtkfilechooserwidget.c:1815
+#: gtk/gtkfilechooserwidget.c:1781
msgid "_Copy Location"
msgstr "Копіювати _адреÑу"
-#: gtk/gtkfilechooserwidget.c:1819
+#: gtk/gtkfilechooserwidget.c:1785
msgid "_Add to Bookmarks"
msgstr "_Додати до закладок"
-#: gtk/gtkfilechooserwidget.c:1823 gtk/gtkplacessidebar.c:2310
-#: gtk/gtkplacessidebar.c:3267 gtk/ui/gtkfilechooserwidget.ui:465
+#: gtk/gtkfilechooserwidget.c:1789 gtk/gtkplacessidebar.c:2309
+#: gtk/gtkplacessidebar.c:3266 gtk/ui/gtkfilechooserwidget.ui:665
msgid "_Rename"
msgstr "Пере_йменувати"
-#: gtk/gtkfilechooserwidget.c:1831
+#: gtk/gtkfilechooserwidget.c:1797
msgid "_Move to Trash"
msgstr "Пере_міÑтити у Ñмітник"
-#: gtk/gtkfilechooserwidget.c:1840
+#: gtk/gtkfilechooserwidget.c:1806
msgid "Show _Hidden Files"
msgstr "Показати при_ховані файли"
-#: gtk/gtkfilechooserwidget.c:1844
+#: gtk/gtkfilechooserwidget.c:1810
msgid "Show _Size Column"
msgstr "Показувати _розмір ÑтовпцÑ"
-#: gtk/gtkfilechooserwidget.c:1848
+#: gtk/gtkfilechooserwidget.c:1815
msgid "Show T_ype Column"
msgstr "Показувати Ñтовпчик _типу"
-#: gtk/gtkfilechooserwidget.c:1852
+#: gtk/gtkfilechooserwidget.c:1820
msgid "Show _Time"
msgstr "Показувати _чаÑ"
-#: gtk/gtkfilechooserwidget.c:1856
+#: gtk/gtkfilechooserwidget.c:1825
msgid "Sort _Folders Before Files"
msgstr "ВпорÑдковувати _теки перед файлами"
+#: gtk/gtkfilechooserwidget.c:1959 gtk/gtkfilechooserwidget.c:1995
+#: gtk/gtkfilechooserwidget.c:3896
+msgid "Unknown"
+msgstr "Ðевідомо"
+
+#: gtk/gtkfilechooserwidget.c:2053 gtk/gtkplacessidebar.c:1026
+msgid "Home"
+msgstr "Домівка"
+
#. this is the header for the location column in the print dialog
-#: gtk/gtkfilechooserwidget.c:2256 gtk/inspector/css-node-tree.ui:135
-#: gtk/ui/gtkfilechooserwidget.ui:186 gtk/ui/gtkprintunixdialog.ui:114
+#: gtk/gtkfilechooserwidget.c:2220 gtk/inspector/css-node-tree.ui:76
+#: gtk/ui/gtkfilechooserwidget.ui:238 gtk/ui/gtkprintunixdialog.ui:114
msgid "Location"
msgstr "ÐдреÑа"
#. Label
-#: gtk/gtkfilechooserwidget.c:2363
+#: gtk/gtkfilechooserwidget.c:2327
msgid "_Name:"
msgstr "_Ðазва:"
-#: gtk/gtkfilechooserwidget.c:2897 gtk/gtkfilechooserwidget.c:2911
+#: gtk/gtkfilechooserwidget.c:2867 gtk/gtkfilechooserwidget.c:2881
#, c-format
msgid "Searching in %s"
msgstr "Пошук в %s"
-#: gtk/gtkfilechooserwidget.c:2917
+#: gtk/gtkfilechooserwidget.c:2887
msgid "Searching"
msgstr "Пошук"
-#: gtk/gtkfilechooserwidget.c:2923
+#: gtk/gtkfilechooserwidget.c:2893
msgid "Enter location or URL"
msgstr "УвеÑти адреÑу або URL"
-#: gtk/gtkfilechooserwidget.c:3813 gtk/gtkfilechooserwidget.c:6637
-#: gtk/ui/gtkfilechooserwidget.ui:226
+#: gtk/gtkfilechooserwidget.c:3459 gtk/gtkfilechooserwidget.c:5782
+#: gtk/ui/gtkfilechooserwidget.ui:383
msgid "Modified"
msgstr "Змінено"
-#: gtk/gtkfilechooserwidget.c:4072
+#: gtk/gtkfilechooserwidget.c:3640
#, c-format
msgid "Could not read the contents of %s"
msgstr "Ðе вдалоÑÑŒ прочитати вміÑÑ‚ %s"
-#: gtk/gtkfilechooserwidget.c:4076
+#: gtk/gtkfilechooserwidget.c:3644
msgid "Could not read the contents of the folder"
msgstr "Ðе вдалоÑÑŒ прочитати вміÑÑ‚ теки"
#. Translators: see g_date_time_format() for details on the format
-#: gtk/gtkfilechooserwidget.c:4216 gtk/gtkfilechooserwidget.c:4259
+#: gtk/gtkfilechooserwidget.c:3791 gtk/gtkfilechooserwidget.c:3834
msgid "%H:%M"
msgstr "%H:%M"
-#: gtk/gtkfilechooserwidget.c:4218 gtk/gtkfilechooserwidget.c:4261
+#: gtk/gtkfilechooserwidget.c:3793 gtk/gtkfilechooserwidget.c:3836
msgid "%l:%M %p"
msgstr "%l:%M %p"
-#: gtk/gtkfilechooserwidget.c:4222
+#: gtk/gtkfilechooserwidget.c:3797
msgid "Yesterday"
msgstr "Учора"
-#: gtk/gtkfilechooserwidget.c:4230
+#: gtk/gtkfilechooserwidget.c:3805
msgid "%-e %b"
msgstr "%-e %b"
-#: gtk/gtkfilechooserwidget.c:4234
+#: gtk/gtkfilechooserwidget.c:3809
msgid "%-e %b %Y"
msgstr "%-e %b %Y"
-#: gtk/gtkfilechooserwidget.c:4323 gtk/gtkfilechooserwidget.c:4331
+#: gtk/gtkfilechooserwidget.c:3851 gtk/gtkfilechooserwidget.c:3859
msgid "Program"
msgstr "Програма"
-#: gtk/gtkfilechooserwidget.c:4324
+#: gtk/gtkfilechooserwidget.c:3852
msgid "Audio"
msgstr "Звук"
-#: gtk/gtkfilechooserwidget.c:4325 gtk/gtkfontbutton.c:596
-#: gtk/inspector/visual.ui:170
-msgid "Font"
-msgstr "Шрифт"
-
-#: gtk/gtkfilechooserwidget.c:4326
+#: gtk/gtkfilechooserwidget.c:3854
msgid "Image"
msgstr "Картинка"
-#: gtk/gtkfilechooserwidget.c:4327
+#: gtk/gtkfilechooserwidget.c:3855
msgid "Archive"
msgstr "Ðрхів"
-#: gtk/gtkfilechooserwidget.c:4328
+#: gtk/gtkfilechooserwidget.c:3856
msgid "Markup"
msgstr "Розмітка"
-#: gtk/gtkfilechooserwidget.c:4329 gtk/gtkfilechooserwidget.c:4330
+#: gtk/gtkfilechooserwidget.c:3857 gtk/gtkfilechooserwidget.c:3858
msgid "Text"
msgstr "ТекÑÑ‚"
-#: gtk/gtkfilechooserwidget.c:4332
+#: gtk/gtkfilechooserwidget.c:3860
msgid "Video"
msgstr "Відео"
-#: gtk/gtkfilechooserwidget.c:4333
+#: gtk/gtkfilechooserwidget.c:3861
msgid "Contacts"
msgstr "Контакти"
-#: gtk/gtkfilechooserwidget.c:4334
+#: gtk/gtkfilechooserwidget.c:3862
msgid "Calendar"
msgstr "Календар"
-#: gtk/gtkfilechooserwidget.c:4335
+#: gtk/gtkfilechooserwidget.c:3863
msgid "Document"
msgstr "Документ"
-#: gtk/gtkfilechooserwidget.c:4336
+#: gtk/gtkfilechooserwidget.c:3864
msgid "Presentation"
msgstr "ПрезентаціÑ"
-#: gtk/gtkfilechooserwidget.c:4337
+#: gtk/gtkfilechooserwidget.c:3865
msgid "Spreadsheet"
msgstr "Електронна таблицÑ"
-#: gtk/gtkfilechooserwidget.c:4368 gtk/gtkfilechooserwidget.c:4561
-msgid "Unknown"
-msgstr "Ðевідомо"
-
-#: gtk/gtkfilechooserwidget.c:4600 gtk/gtkplacessidebar.c:1027
-msgid "Home"
-msgstr "Домівка"
-
-#: gtk/gtkfilechooserwidget.c:5793 gtk/gtkprintunixdialog.c:642
+#: gtk/gtkfilechooserwidget.c:4989 gtk/gtkprintunixdialog.c:648
#, c-format
msgid "A file named “%s†already exists. Do you want to replace it?"
msgstr "Файл з назвою «%s» вже Ñ–Ñнує. Замінити його?"
-#: gtk/gtkfilechooserwidget.c:5796 gtk/gtkprintunixdialog.c:646
+#: gtk/gtkfilechooserwidget.c:4991 gtk/gtkprintunixdialog.c:652
#, c-format
msgid ""
"The file already exists in “%sâ€. Replacing it will overwrite its contents."
msgstr "Файл у «%s» вже Ñ–Ñнує. ÐŸÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ Ð¿Ñ€Ð¸Ð·Ð²ÐµÐ´Ðµ до втрати вміÑту."
-#: gtk/gtkfilechooserwidget.c:5801 gtk/gtkprintunixdialog.c:654
+#: gtk/gtkfilechooserwidget.c:4997 gtk/gtkprintunixdialog.c:660
msgid "_Replace"
msgstr "_Замінити"
-#: gtk/gtkfilechooserwidget.c:5962
+#: gtk/gtkfilechooserwidget.c:5152
msgid "You do not have access to the specified folder."
msgstr "Ви не маєте доÑтупу до вказаної теки."
-#: gtk/gtkfilechooserwidget.c:6566
+#: gtk/gtkfilechooserwidget.c:5729
msgid "Could not send the search request"
msgstr "Ðе вдалоÑÑŒ надіÑлати запит на пошук"
-#: gtk/gtkfilechooserwidget.c:6876
+#: gtk/gtkfilechooserwidget.c:6005
msgid "Accessed"
msgstr "Дозволено"
-#: gtk/gtkfontbutton.c:395
-msgid "Sans 12"
-msgstr "Sans 12"
+#: gtk/gtkfiledialog.c:691
+#| msgid "Print to File"
+msgid "Pick Files"
+msgstr "Вибір файлів"
-#: gtk/gtkfontbutton.c:506 gtk/gtkfontbutton.c:620
-msgid "Pick a Font"
-msgstr "Виберіть шрифт"
+#: gtk/gtkfiledialog.c:691
+#| msgid "Pick a Font"
+msgid "Pick a File"
+msgstr "Вибір файла"
-#: gtk/gtkfontbutton.c:1323
-msgctxt "font"
-msgid "None"
-msgstr "Ðемає"
+#: gtk/gtkfiledialog.c:696
+#| msgid "Select a File"
+msgid "Save a File"
+msgstr "Зберегти файл"
+
+#: gtk/gtkfiledialog.c:700 gtk/ui/gtkappchooserdialog.ui:50
+#: gtk/ui/gtkcolorchooserdialog.ui:38 gtk/ui/gtkfontchooserdialog.ui:29
+msgid "_Select"
+msgstr "_Вибрати"
+
+#: gtk/gtkfiledialog.c:701
+#| msgid "Select a File"
+msgid "Select Folders"
+msgstr "Вибір тек"
-#: gtk/gtkfontchooserdialog.c:184
+#: gtk/gtkfiledialog.c:701
+#| msgid "Select a File"
+msgid "Select a Folder"
+msgstr "Вибір теки"
+
+#: gtk/gtkfontchooserdialog.c:187
msgid "Change Font Features"
msgstr "Змінити влаÑтивоÑÑ‚Ñ– шрифту"
-#: gtk/gtkfontchooserwidget.c:1534
+#: gtk/gtkfontchooserwidget.c:1546
msgctxt "Font variation axis"
msgid "Width"
msgstr "Ширина"
-#: gtk/gtkfontchooserwidget.c:1535
+#: gtk/gtkfontchooserwidget.c:1547
msgctxt "Font variation axis"
msgid "Weight"
msgstr "Вага"
-#: gtk/gtkfontchooserwidget.c:1536
+#: gtk/gtkfontchooserwidget.c:1548
msgctxt "Font variation axis"
msgid "Italic"
msgstr "КурÑив"
-#: gtk/gtkfontchooserwidget.c:1537
+#: gtk/gtkfontchooserwidget.c:1549
msgctxt "Font variation axis"
msgid "Slant"
msgstr "Ðахил"
-#: gtk/gtkfontchooserwidget.c:1538
+#: gtk/gtkfontchooserwidget.c:1550
msgctxt "Font variation axis"
msgid "Optical Size"
msgstr "Оптичний розмір"
-#: gtk/gtkfontchooserwidget.c:2094
+#: gtk/gtkfontchooserwidget.c:2102
msgctxt "Font feature value"
msgid "Default"
msgstr "Типове"
-#: gtk/gtkfontchooserwidget.c:2111
+#: gtk/gtkfontchooserwidget.c:2119
msgctxt "Font feature value"
msgid "Enable"
msgstr "Увімкнути"
-#: gtk/gtkfontchooserwidget.c:2439
+#: gtk/gtkfontchooserwidget.c:2447
msgid "Default"
msgstr "Типово"
-#: gtk/gtkfontchooserwidget.c:2501
+#: gtk/gtkfontchooserwidget.c:2509
msgid "Ligatures"
msgstr "Лігатури"
-#: gtk/gtkfontchooserwidget.c:2502
+#: gtk/gtkfontchooserwidget.c:2510
msgid "Letter Case"
msgstr "Розмір літер"
-#: gtk/gtkfontchooserwidget.c:2503
+#: gtk/gtkfontchooserwidget.c:2511
msgid "Number Case"
msgstr "Розмір цифр"
-#: gtk/gtkfontchooserwidget.c:2504
+#: gtk/gtkfontchooserwidget.c:2512
msgid "Number Spacing"
msgstr "Інтервали між цифрами"
-#: gtk/gtkfontchooserwidget.c:2505
+#: gtk/gtkfontchooserwidget.c:2513
msgid "Fractions"
msgstr "Дроби"
-#: gtk/gtkfontchooserwidget.c:2506
+#: gtk/gtkfontchooserwidget.c:2514
msgid "Style Variations"
msgstr "Варіанти Ñтилів"
-#: gtk/gtkfontchooserwidget.c:2508
+#: gtk/gtkfontchooserwidget.c:2516
msgid "Character Variations"
msgstr "Варіанти Ñимволів"
-#: gtk/gtkglarea.c:284
+#: gtk/gtkglarea.c:286
msgid "OpenGL context creation failed"
msgstr "Ðе вдалоÑÑ Ñтворити контекÑÑ‚ OpenGL"
-#: gtk/gtklabel.c:5649 gtk/gtktext.c:6039 gtk/gtktextview.c:8956
+#: gtk/gtklabel.c:5658 gtk/gtktext.c:6075 gtk/gtktextview.c:8985
msgid "Cu_t"
msgstr "Ви_різати"
-#: gtk/gtklabel.c:5650 gtk/gtktext.c:6043 gtk/gtktextview.c:8960
+#: gtk/gtklabel.c:5659 gtk/gtktext.c:6079 gtk/gtktextview.c:8989
msgid "_Copy"
msgstr "_Копіювати"
-#: gtk/gtklabel.c:5651 gtk/gtktext.c:6047 gtk/gtktextview.c:8964
+#: gtk/gtklabel.c:5660 gtk/gtktext.c:6083 gtk/gtktextview.c:8993
msgid "_Paste"
msgstr "Ð’ÑÑ‚_авити"
-#: gtk/gtklabel.c:5657 gtk/gtktext.c:6060 gtk/gtktextview.c:8989
+#: gtk/gtklabel.c:5666 gtk/gtktext.c:6096 gtk/gtktextview.c:9018
msgid "Select _All"
msgstr "Виді_лити вÑе"
-#: gtk/gtklabel.c:5662
+#: gtk/gtklabel.c:5671
msgid "_Open Link"
msgstr "_Відкрити поÑиланнÑ"
-#: gtk/gtklabel.c:5666
+#: gtk/gtklabel.c:5675
msgid "Copy _Link Address"
msgstr "Копіювати _адреÑу поÑиланнÑ"
@@ -2546,7 +2601,7 @@ msgstr "Копіювати _адреÑу поÑиланнÑ"
msgid "_Copy URL"
msgstr "_Копіювати адреÑу"
-#: gtk/gtklinkbutton.c:540
+#: gtk/gtklinkbutton.c:547
msgid "Invalid URI"
msgstr "Ðеправильний URI"
@@ -2587,7 +2642,7 @@ msgstr ""
#. * Do *not* translate it to "predefinito:LTR", if it
#. * it isn't default:LTR or default:RTL it will not work
#.
-#: gtk/gtkmain.c:788
+#: gtk/gtkmain.c:789
msgid "default:LTR"
msgstr "default:LTR"
@@ -2639,16 +2694,16 @@ msgctxt "short time format"
msgid "%d:%02d"
msgstr "%d:%02d"
-#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176
-#: gtk/gtkprintbackend.c:638 gtk/gtkwindow.c:6114
+#: gtk/gtkmessagedialog.c:162 gtk/gtkmessagedialog.c:180
+#: gtk/gtkprintbackend.c:639 gtk/gtkwindow.c:6157
msgid "_OK"
msgstr "_Гаразд"
-#: gtk/gtkmessagedialog.c:170
+#: gtk/gtkmessagedialog.c:174
msgid "_No"
msgstr "Ð_Ñ–"
-#: gtk/gtkmessagedialog.c:171
+#: gtk/gtkmessagedialog.c:175
msgid "_Yes"
msgstr "_Так"
@@ -2656,69 +2711,74 @@ msgstr "_Так"
msgid "Co_nnect"
msgstr "З'_єднатиÑÑŒ"
-#: gtk/gtkmountoperation.c:675
+#: gtk/gtkmountoperation.c:676
msgid "Connect As"
msgstr "З'єднатиÑÑŒ Ñк"
-#: gtk/gtkmountoperation.c:684
+#: gtk/gtkmountoperation.c:685
msgid "_Anonymous"
msgstr "_Ðнонімний кориÑтувач"
-#: gtk/gtkmountoperation.c:691
+#: gtk/gtkmountoperation.c:692
msgid "Registered U_ser"
msgstr "ЗареєÑтрований _кориÑтувач"
-#: gtk/gtkmountoperation.c:701
+#: gtk/gtkmountoperation.c:702
msgid "_Username"
msgstr "_КориÑтувач"
-#: gtk/gtkmountoperation.c:706
+#: gtk/gtkmountoperation.c:707
msgid "_Domain"
msgstr "_Домен"
-#: gtk/gtkmountoperation.c:715
+#: gtk/gtkmountoperation.c:716
msgid "Volume type"
msgstr "Тип тому"
-#: gtk/gtkmountoperation.c:725
+#: gtk/gtkmountoperation.c:726
msgid "_Hidden"
msgstr "При_хований"
-#: gtk/gtkmountoperation.c:728
+#: gtk/gtkmountoperation.c:729
msgid "_Windows system"
msgstr "С_иÑтема Windows"
-#: gtk/gtkmountoperation.c:731
+#: gtk/gtkmountoperation.c:732
msgid "_PIM"
msgstr "_PIM"
-#: gtk/gtkmountoperation.c:737
+#: gtk/gtkmountoperation.c:738
msgid "_Password"
msgstr "_Пароль"
-#: gtk/gtkmountoperation.c:759
+#: gtk/gtkmountoperation.c:760
msgid "Forget password _immediately"
msgstr "_Забути пароль негайно"
-#: gtk/gtkmountoperation.c:769
+#: gtk/gtkmountoperation.c:770
msgid "Remember password until you _logout"
msgstr "Запам'Ñтати пароль _до виходу з ÑеанÑу"
-#: gtk/gtkmountoperation.c:780
+#: gtk/gtkmountoperation.c:781
msgid "Remember _forever"
msgstr "Запам'Ñтати _назавжди"
-#: gtk/gtkmountoperation.c:1206
+#: gtk/gtkmountoperation.c:1251
#, c-format
msgid "Unknown Application (PID %d)"
msgstr "Ðевідома програма (PID %d)"
-#: gtk/gtkmountoperation.c:1405
+#. Use GTK_DIALOG_DESTROY_WITH_PARENT here since the parent dialog can be
+#. * indeed be destroyed via the GMountOperation::abort signal... for example,
+#. * this is triggered if the user yanks the device while we are showing
+#. * the dialog...
+#.
+#: gtk/gtkmountoperation.c:1396
#, c-format
msgid "Unable to end process"
msgstr "Ðе вдалоÑÑŒ завершити процеÑ"
-#: gtk/gtkmountoperation.c:1435
+#: gtk/gtkmountoperation.c:1546
msgid "_End Process"
msgstr "_Завершити процеÑ"
@@ -2728,27 +2788,27 @@ msgid "Cannot kill process with PID %d. Operation is not implemented."
msgstr "Ðе вдалоÑÑŒ знищити Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· PID %d. Дію не здійÑнено."
#. translators: this string is a name for the 'less' command
-#: gtk/gtkmountoperation-x11.c:984
+#: gtk/gtkmountoperation-x11.c:987
msgid "Terminal Pager"
msgstr "Гортач термінала"
-#: gtk/gtkmountoperation-x11.c:985
+#: gtk/gtkmountoperation-x11.c:988
msgid "Top Command"
msgstr "Ð’ÐµÑ€Ñ…Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°"
-#: gtk/gtkmountoperation-x11.c:986
+#: gtk/gtkmountoperation-x11.c:989
msgid "Bourne Again Shell"
msgstr "Bourne Again Shell"
-#: gtk/gtkmountoperation-x11.c:987
+#: gtk/gtkmountoperation-x11.c:990
msgid "Bourne Shell"
msgstr "Bourne Shell"
-#: gtk/gtkmountoperation-x11.c:988
+#: gtk/gtkmountoperation-x11.c:991
msgid "Z Shell"
msgstr "Z Shell"
-#: gtk/gtkmountoperation-x11.c:1085
+#: gtk/gtkmountoperation-x11.c:1091
#, c-format
msgid "Cannot end process with PID %d: %s"
msgstr "Ðе вдалоÑÑŒ завершити Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· PID %d: %s"
@@ -2759,23 +2819,23 @@ msgstr ""
"GTK не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ мультимедійний модуль. Перевірте, чи належним чином "
"вÑтановлено програми."
-#: gtk/gtknotebook.c:1491
+#: gtk/gtknotebook.c:1490
msgid "Tab list"
msgstr "СпиÑок вкладок"
-#: gtk/gtknotebook.c:3214
+#: gtk/gtknotebook.c:3213
msgid "Previous tab"
msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ð²ÐºÐ»Ð°Ð´ÐºÐ°"
-#: gtk/gtknotebook.c:3218
+#: gtk/gtknotebook.c:3217
msgid "Next tab"
msgstr "ÐаÑтупна вкладка"
-#: gtk/gtknotebook.c:4038
+#: gtk/gtknotebook.c:4037
msgid "Tab"
msgstr "Вкладка"
-#: gtk/gtknotebook.c:4336 gtk/gtknotebook.c:6544
+#: gtk/gtknotebook.c:4333 gtk/gtknotebook.c:6539
#, c-format
msgid "Page %u"
msgstr "Сторінка %u"
@@ -2784,7 +2844,7 @@ msgstr "Сторінка %u"
msgid "Not a valid page setup file"
msgstr "Ðекоректний файл Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ€ÑƒÐºÑƒ"
-#: gtk/gtkpagesetupunixdialog.c:201 gtk/gtkprintunixdialog.c:736
+#: gtk/gtkpagesetupunixdialog.c:199 gtk/gtkprintunixdialog.c:743
msgid "Manage Custom Sizes…"
msgstr "Організувати влаÑні розміри…"
@@ -2792,15 +2852,15 @@ msgstr "Організувати влаÑні розміри…"
msgid "_Apply"
msgstr "ЗаÑÑ‚_оÑувати"
-#: gtk/gtkpagesetupunixdialog.c:318 gtk/gtkpagesetupunixdialog.c:570
+#: gtk/gtkpagesetupunixdialog.c:319 gtk/gtkpagesetupunixdialog.c:571
msgid "Any Printer"
msgstr "Будь-Ñкий принтер"
-#: gtk/gtkpagesetupunixdialog.c:319
+#: gtk/gtkpagesetupunixdialog.c:320
msgid "For portable documents"
msgstr "Ð”Ð»Ñ Ð¿Ð¾Ñ€Ñ‚Ð°Ñ‚Ð¸Ð²Ð½Ð¸Ñ… документів"
-#: gtk/gtkpagesetupunixdialog.c:738
+#: gtk/gtkpagesetupunixdialog.c:739
#, c-format
msgid ""
"Margins:\n"
@@ -2815,104 +2875,104 @@ msgstr ""
" Верхнє: %s %s\n"
" Ðижнє: %s %s"
-#: gtk/gtkpagesetupunixdialog.c:784 gtk/ui/gtkpagesetupunixdialog.ui:5
+#: gtk/gtkpagesetupunixdialog.c:785 gtk/ui/gtkpagesetupunixdialog.ui:5
#: gtk/ui/gtkprintunixdialog.ui:709
msgid "Page Setup"
msgstr "Параметри Ñторінки"
-#: gtk/gtkpasswordentry.c:173
+#: gtk/gtkpasswordentry.c:170
msgid "Hide Text"
msgstr "Сховати текÑÑ‚"
-#: gtk/gtkpasswordentry.c:178 gtk/gtkpasswordentry.c:622
+#: gtk/gtkpasswordentry.c:175 gtk/gtkpasswordentry.c:619
msgid "Show Text"
msgstr "Показати текÑÑ‚"
-#: gtk/gtkpasswordentry.c:217
+#: gtk/gtkpasswordentry.c:214
msgid "Caps Lock is on"
msgstr "Caps Lock увімкнено"
-#: gtk/gtkpasswordentry.c:698
+#: gtk/gtkpasswordentry.c:695
msgid "_Show Text"
msgstr "По_казати текÑÑ‚"
#. translators: %s is the name of a cloud provider for files
-#: gtk/gtkplacessidebar.c:914
+#: gtk/gtkplacessidebar.c:913
#, c-format
msgid "Open %s"
msgstr "Відкрити %s"
-#: gtk/gtkplacessidebar.c:1005
+#: gtk/gtkplacessidebar.c:1004
msgid "Recent"
msgstr "Ðещодавні"
-#: gtk/gtkplacessidebar.c:1007
+#: gtk/gtkplacessidebar.c:1006
msgid "Recent files"
msgstr "Ðещодавні файли"
-#: gtk/gtkplacessidebar.c:1016
+#: gtk/gtkplacessidebar.c:1015
msgid "Starred"
msgstr "З зірочками"
-#: gtk/gtkplacessidebar.c:1018
+#: gtk/gtkplacessidebar.c:1017
msgid "Starred files"
msgstr "Файли з зірочками"
-#: gtk/gtkplacessidebar.c:1029
+#: gtk/gtkplacessidebar.c:1028
msgid "Open your personal folder"
msgstr "Відкрити оÑобиÑту теку"
-#: gtk/gtkplacessidebar.c:1042
+#: gtk/gtkplacessidebar.c:1041
msgid "Desktop"
msgstr "СтільницÑ"
-#: gtk/gtkplacessidebar.c:1044
+#: gtk/gtkplacessidebar.c:1043
msgid "Open the contents of your desktop in a folder"
msgstr "Відкрити вміÑÑ‚ Ñтільниці Ñк теку"
-#: gtk/gtkplacessidebar.c:1058
+#: gtk/gtkplacessidebar.c:1057
msgid "Enter Location"
msgstr "УвеÑти адреÑу"
-#: gtk/gtkplacessidebar.c:1060
+#: gtk/gtkplacessidebar.c:1059
msgid "Manually enter a location"
msgstr "Вручну ввеÑти адреÑу"
-#: gtk/gtkplacessidebar.c:1070
+#: gtk/gtkplacessidebar.c:1069
msgid "Trash"
msgstr "Смітник"
-#: gtk/gtkplacessidebar.c:1072
+#: gtk/gtkplacessidebar.c:1071
msgid "Open the trash"
msgstr "Відкрити теку Ñмітника"
-#: gtk/gtkplacessidebar.c:1183 gtk/gtkplacessidebar.c:1211
-#: gtk/gtkplacessidebar.c:1411
+#: gtk/gtkplacessidebar.c:1182 gtk/gtkplacessidebar.c:1210
+#: gtk/gtkplacessidebar.c:1410
#, c-format
msgid "Mount and open “%sâ€"
msgstr "Змонтувати і відкрити «%s»"
-#: gtk/gtkplacessidebar.c:1306
+#: gtk/gtkplacessidebar.c:1305
msgid "Open the contents of the file system"
msgstr "Відкрити ÑпиÑок реÑурÑів файлової ÑиÑтеми"
-#: gtk/gtkplacessidebar.c:1389
+#: gtk/gtkplacessidebar.c:1388
msgid "New bookmark"
msgstr "Створити закладку"
-#: gtk/gtkplacessidebar.c:1391
+#: gtk/gtkplacessidebar.c:1390
msgid "Add a new bookmark"
msgstr "ЗаклаÑти"
-#: gtk/gtkplacessidebar.c:1456
+#: gtk/gtkplacessidebar.c:1455
msgid "Other Locations"
msgstr "Інші міÑцÑ"
-#: gtk/gtkplacessidebar.c:1457
+#: gtk/gtkplacessidebar.c:1456
msgid "Show other locations"
msgstr "Показувати інші міÑцÑ"
-#: gtk/gtkplacessidebar.c:1962 gtk/gtkplacessidebar.c:2981
+#: gtk/gtkplacessidebar.c:1961 gtk/gtkplacessidebar.c:2980
#, c-format
msgid "Unable to start “%sâ€"
msgstr "Ðеможливо запуÑтити «%s»"
@@ -2920,214 +2980,214 @@ msgstr "Ðеможливо запуÑтити «%s»"
#. Translators: This means that unlocking an encrypted storage
#. * device failed. %s is the name of the device.
#.
-#: gtk/gtkplacessidebar.c:1998
+#: gtk/gtkplacessidebar.c:1997
#, c-format
msgid "Error unlocking “%sâ€"
msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби відкрити «%s»"
-#: gtk/gtkplacessidebar.c:2000
+#: gtk/gtkplacessidebar.c:1999
#, c-format
msgid "Unable to access “%sâ€"
msgstr "Ðе вдалоÑÑŒ доÑтупитиÑÑŒ до «%s»"
-#: gtk/gtkplacessidebar.c:2231
+#: gtk/gtkplacessidebar.c:2230
msgid "This name is already taken"
msgstr "Цю назву вже вжито"
-#: gtk/gtkplacessidebar.c:2304 gtk/inspector/actions.ui:19
-#: gtk/inspector/css-node-tree.ui:35 gtk/inspector/prop-list.ui:24
-#: gtk/ui/gtkfilechooserwidget.ui:168 gtk/ui/gtkfilechooserwidget.ui:440
+#: gtk/gtkplacessidebar.c:2303 gtk/inspector/actions.ui:19
+#: gtk/inspector/css-node-tree.ui:22 gtk/inspector/prop-list.ui:24
+#: gtk/ui/gtkfilechooserwidget.ui:176 gtk/ui/gtkfilechooserwidget.ui:640
#: gtk/ui/gtkprintunixdialog.ui:83
msgid "Name"
msgstr "Ðазва"
-#: gtk/gtkplacessidebar.c:2522
+#: gtk/gtkplacessidebar.c:2521
#, c-format
msgid "Unable to unmount “%sâ€"
msgstr "Ðеможливо демонтувати «%s»"
-#: gtk/gtkplacessidebar.c:2698
+#: gtk/gtkplacessidebar.c:2697
#, c-format
msgid "Unable to stop “%sâ€"
msgstr "Ðеможливо запуÑтити «%s»"
-#: gtk/gtkplacessidebar.c:2727
+#: gtk/gtkplacessidebar.c:2726
#, c-format
msgid "Unable to eject “%sâ€"
msgstr "Ðеможливо витÑгнути «%s»"
-#: gtk/gtkplacessidebar.c:2756 gtk/gtkplacessidebar.c:2785
+#: gtk/gtkplacessidebar.c:2755 gtk/gtkplacessidebar.c:2784
#, c-format
msgid "Unable to eject %s"
msgstr "Ðе вдалоÑÑ Ð²Ð¸Ñ‚Ñгнути %s"
-#: gtk/gtkplacessidebar.c:2933
+#: gtk/gtkplacessidebar.c:2932
#, c-format
msgid "Unable to poll “%s†for media changes"
msgstr "Ðеможливо опитати «%s» на зміну ноÑÑ–Ñ"
-#: gtk/gtkplacessidebar.c:3152 gtk/gtkplacessidebar.c:3239
-#: gtk/gtkplacesview.c:1663
+#: gtk/gtkplacessidebar.c:3151 gtk/gtkplacessidebar.c:3238
+#: gtk/gtkplacesview.c:1649
msgid "Open in New _Tab"
msgstr "Відкрити у новій в_кладці"
-#: gtk/gtkplacessidebar.c:3158 gtk/gtkplacessidebar.c:3248
-#: gtk/gtkplacesview.c:1668
+#: gtk/gtkplacessidebar.c:3157 gtk/gtkplacessidebar.c:3247
+#: gtk/gtkplacesview.c:1654
msgid "Open in New _Window"
msgstr "Відкрити у новому _вікні"
-#: gtk/gtkplacessidebar.c:3259
+#: gtk/gtkplacessidebar.c:3258
msgid "_Add Bookmark"
msgstr "_Додати до закладок"
-#: gtk/gtkplacessidebar.c:3263
+#: gtk/gtkplacessidebar.c:3262
msgid "_Remove"
msgstr "Ви_лучити"
-#: gtk/gtkplacessidebar.c:3279 gtk/gtkplacesview.c:1693
+#: gtk/gtkplacessidebar.c:3278 gtk/gtkplacesview.c:1679
msgid "_Mount"
msgstr "_Змонтувати"
-#: gtk/gtkplacessidebar.c:3288 gtk/gtkplacesview.c:1682
+#: gtk/gtkplacessidebar.c:3287 gtk/gtkplacesview.c:1668
msgid "_Unmount"
msgstr "_Демонтувати"
-#: gtk/gtkplacessidebar.c:3295
+#: gtk/gtkplacessidebar.c:3294
msgid "_Eject"
msgstr "Ви_Ñ‚Ñгнути"
-#: gtk/gtkplacessidebar.c:3305
+#: gtk/gtkplacessidebar.c:3304
msgid "_Detect Media"
msgstr "Ви_Ñвити ноÑій"
-#: gtk/gtkplacessidebar.c:3314
+#: gtk/gtkplacessidebar.c:3313
msgid "_Start"
msgstr "П_уÑк"
-#: gtk/gtkplacessidebar.c:3316
+#: gtk/gtkplacessidebar.c:3315
msgid "_Power On"
msgstr "_Увімкнути"
-#: gtk/gtkplacessidebar.c:3317
+#: gtk/gtkplacessidebar.c:3316
msgid "_Connect Drive"
msgstr "Під’_єднати диÑк"
-#: gtk/gtkplacessidebar.c:3318
+#: gtk/gtkplacessidebar.c:3317
msgid "_Start Multi-disk Device"
msgstr "З_апуÑтити багатодиÑковий приÑтрій"
-#: gtk/gtkplacessidebar.c:3319
+#: gtk/gtkplacessidebar.c:3318
msgid "_Unlock Device"
msgstr "_Розблокувати приÑтрій"
-#: gtk/gtkplacessidebar.c:3329
+#: gtk/gtkplacessidebar.c:3328
msgid "_Stop"
msgstr "С_топ"
-#: gtk/gtkplacessidebar.c:3331
+#: gtk/gtkplacessidebar.c:3330
msgid "_Safely Remove Drive"
msgstr "_Безпечне Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ñтрою"
-#: gtk/gtkplacessidebar.c:3332
+#: gtk/gtkplacessidebar.c:3331
msgid "_Disconnect Drive"
msgstr "_Від'єднати диÑк"
-#: gtk/gtkplacessidebar.c:3333
+#: gtk/gtkplacessidebar.c:3332
msgid "_Stop Multi-disk Device"
msgstr "З_упинити багатодиÑковий приÑтрій"
-#: gtk/gtkplacessidebar.c:3334
+#: gtk/gtkplacessidebar.c:3333
msgid "_Lock Device"
msgstr "За_блокувати приÑтрій"
-#: gtk/gtkplacessidebar.c:3823 gtk/gtkplacesview.c:1103
+#: gtk/gtkplacessidebar.c:3822 gtk/gtkplacesview.c:1089
msgid "Computer"
msgstr "Комп'ютер"
-#: gtk/gtkplacesview.c:889
+#: gtk/gtkplacesview.c:875
msgid "Searching for network locations"
msgstr "Пошук мережевих адреÑ"
-#: gtk/gtkplacesview.c:896
+#: gtk/gtkplacesview.c:882
msgid "No network locations found"
msgstr "Ðе знайдено жодної мережевої адреÑи"
#. if it wasn't cancelled show a dialog
-#: gtk/gtkplacesview.c:1210 gtk/gtkplacesview.c:1307
+#: gtk/gtkplacesview.c:1196 gtk/gtkplacesview.c:1293
msgid "Unable to access location"
msgstr "Ðеможливо доÑтупитиÑÑŒ до адреÑи"
#. Restore from Cancel to Connect
-#: gtk/gtkplacesview.c:1228 gtk/ui/gtkplacesview.ui:262
+#: gtk/gtkplacesview.c:1214 gtk/ui/gtkplacesview.ui:250
msgid "Con_nect"
msgstr "З'_єднатиÑÑŒ"
#. if it wasn't cancelled show a dialog
-#: gtk/gtkplacesview.c:1367
+#: gtk/gtkplacesview.c:1353
msgid "Unable to unmount volume"
msgstr "Ðеможливо демонтувати том"
#. Allow to cancel the operation
-#: gtk/gtkplacesview.c:1459
+#: gtk/gtkplacesview.c:1445
msgid "Cance_l"
msgstr "_СкаÑувати"
-#: gtk/gtkplacesview.c:1606
+#: gtk/gtkplacesview.c:1592
msgid "AppleTalk"
msgstr "AppleTalk"
-#: gtk/gtkplacesview.c:1612
+#: gtk/gtkplacesview.c:1598
msgid "File Transfer Protocol"
msgstr "Протокол Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²"
#. Translators: do not translate ftp:// and ftps://
-#: gtk/gtkplacesview.c:1614
+#: gtk/gtkplacesview.c:1600
msgid "ftp:// or ftps://"
msgstr "ftp:// або ftps://"
-#: gtk/gtkplacesview.c:1620
+#: gtk/gtkplacesview.c:1606
msgid "Network File System"
msgstr "СиÑтема мережевих файлів"
-#: gtk/gtkplacesview.c:1626
+#: gtk/gtkplacesview.c:1612
msgid "Samba"
msgstr "Samba"
-#: gtk/gtkplacesview.c:1632
+#: gtk/gtkplacesview.c:1618
msgid "SSH File Transfer Protocol"
msgstr "Протокол Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² SSH"
#. Translators: do not translate sftp:// and ssh://
-#: gtk/gtkplacesview.c:1634
+#: gtk/gtkplacesview.c:1620
msgid "sftp:// or ssh://"
msgstr "sftp:// або ssh://"
-#: gtk/gtkplacesview.c:1640
+#: gtk/gtkplacesview.c:1626
msgid "WebDAV"
msgstr "WebDAV"
#. Translators: do not translate dav:// and davs://
-#: gtk/gtkplacesview.c:1642
+#: gtk/gtkplacesview.c:1628
msgid "dav:// or davs://"
msgstr "dav:// або davs://"
-#: gtk/gtkplacesview.c:1677
+#: gtk/gtkplacesview.c:1663
msgid "_Disconnect"
msgstr "_Від'єднати"
-#: gtk/gtkplacesview.c:1688
+#: gtk/gtkplacesview.c:1674
msgid "_Connect"
msgstr "З'_єднатиÑÑŒ"
-#: gtk/gtkplacesview.c:1905
+#: gtk/gtkplacesview.c:1891
msgid "Unable to get remote server location"
msgstr "Ðеможливо одержати адреÑу віддаленого Ñервера"
-#: gtk/gtkplacesview.c:2048 gtk/gtkplacesview.c:2057
+#: gtk/gtkplacesview.c:2034 gtk/gtkplacesview.c:2043
msgid "Networks"
msgstr "Мережі"
-#: gtk/gtkplacesview.c:2048 gtk/gtkplacesview.c:2057
+#: gtk/gtkplacesview.c:2034 gtk/gtkplacesview.c:2043
msgid "On This Computer"
msgstr "Ðа цьому комп'ютері"
@@ -3153,24 +3213,19 @@ msgstr "Від'єднати"
msgid "Unmount"
msgstr "Демонтувати"
-#: gtk/gtkprintbackend.c:636
+#: gtk/gtkprintbackend.c:637
msgid "Authentication"
msgstr "ÐвтентифікаціÑ"
-#: gtk/gtkprintbackend.c:712
+#: gtk/gtkprintbackend.c:716
msgid "_Remember password"
msgstr "_Запам'Ñтати пароль"
-#: gtk/gtkprinteroptionwidget.c:718
+#: gtk/gtkprinteroptionwidget.c:739
msgid "Select a filename"
msgstr "Вибрати назву файла"
-#: gtk/gtkprinteroptionwidget.c:722 gtk/ui/gtkappchooserdialog.ui:50
-#: gtk/ui/gtkcolorchooserdialog.ui:38 gtk/ui/gtkfontchooserdialog.ui:29
-msgid "_Select"
-msgstr "_Вибрати"
-
-#: gtk/gtkprinteroptionwidget.c:936
+#: gtk/gtkprinteroptionwidget.c:947
msgid "Not available"
msgstr "ÐедоÑтупно"
@@ -3233,7 +3288,7 @@ msgstr "Завершено з помилкою"
msgid "Preparing %d"
msgstr "ÐŸÑ–Ð´Ð³Ð¾Ñ‚Ð¾Ð²Ð»ÐµÐ½Ð½Ñ %d"
-#: gtk/gtkprintoperation.c:2236 gtk/gtkprintoperation.c:2854
+#: gtk/gtkprintoperation.c:2236 gtk/gtkprintoperation.c:2855
#, c-format
msgid "Preparing"
msgstr "ПідготовленнÑ"
@@ -3243,23 +3298,24 @@ msgstr "ПідготовленнÑ"
msgid "Printing %d"
msgstr "Ð”Ñ€ÑƒÐºÑƒÐ²Ð°Ð½Ð½Ñ %d"
-#: gtk/gtkprintoperation.c:2885
+#: gtk/gtkprintoperation.c:2888
#, c-format
msgid "Error creating print preview"
msgstr "Помилка при Ñтворенні переглÑду"
-#: gtk/gtkprintoperation.c:2888
+#: gtk/gtkprintoperation.c:2891
#, c-format
-msgid "The most probable reason is that a temporary file could not be created."
+msgid ""
+"The most probable reason is that a temporary file could not be created."
msgstr "Ðайімовірніша причина: не вдалоÑÑŒ Ñтворити тимчаÑовий файл."
#. window
#: gtk/gtkprintoperation-portal.c:236 gtk/gtkprintoperation-portal.c:554
-#: gtk/gtkprintoperation-portal.c:623 gtk/gtkprintunixdialog.c:3056
+#: gtk/gtkprintoperation-portal.c:623 gtk/gtkprintunixdialog.c:3066
msgid "Print"
msgstr "Друкувати"
-#: gtk/gtkprintoperation-unix.c:479 gtk/gtkprintoperation-win32.c:1504
+#: gtk/gtkprintoperation-unix.c:481 gtk/gtkprintoperation-win32.c:1504
msgid "Application"
msgstr "Програма"
@@ -3273,7 +3329,7 @@ msgstr "Ðемає паперу"
#. Translators: this is a printer status.
#: gtk/gtkprintoperation-win32.c:639
-#: modules/printbackends/gtkprintbackendcups.c:2639
+#: modules/printbackends/gtkprintbackendcups.c:2638
msgid "Paused"
msgstr "Призупинено"
@@ -3318,19 +3374,19 @@ msgstr "Ðеправильний обробник Ð´Ð»Ñ PrintDlgEx"
msgid "Unspecified error"
msgstr "Ðевизначена помилка"
-#: gtk/gtkprintunixdialog.c:806
+#: gtk/gtkprintunixdialog.c:813
msgid "Pre_view"
msgstr "_ПереглÑд"
-#: gtk/gtkprintunixdialog.c:808
+#: gtk/gtkprintunixdialog.c:815
msgid "_Print"
msgstr "_Ðадрукувати"
-#: gtk/gtkprintunixdialog.c:936
+#: gtk/gtkprintunixdialog.c:943
msgid "Getting printer information failed"
msgstr "Ðе вдалоÑÑŒ отримати інформації про принтер"
-#: gtk/gtkprintunixdialog.c:1875
+#: gtk/gtkprintunixdialog.c:1866
msgid "Getting printer information…"
msgstr "ÐžÐ´ÐµÑ€Ð¶Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— про принтер…"
@@ -3340,67 +3396,67 @@ msgstr "ÐžÐ´ÐµÑ€Ð¶Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— про принтер…"
#. Translators: These strings name the possible arrangements of
#. * multiple pages on a sheet when printing
#.
-#: gtk/gtkprintunixdialog.c:2801
-#: modules/printbackends/gtkprintbackendcups.c:5647
+#: gtk/gtkprintunixdialog.c:2811
+#: modules/printbackends/gtkprintbackendcups.c:5646
msgid "Left to right, top to bottom"
msgstr "Зліва направо, згори вниз"
-#: gtk/gtkprintunixdialog.c:2801
-#: modules/printbackends/gtkprintbackendcups.c:5647
+#: gtk/gtkprintunixdialog.c:2811
+#: modules/printbackends/gtkprintbackendcups.c:5646
msgid "Left to right, bottom to top"
msgstr "Зліва направо, знизу вгору"
-#: gtk/gtkprintunixdialog.c:2802
-#: modules/printbackends/gtkprintbackendcups.c:5648
+#: gtk/gtkprintunixdialog.c:2812
+#: modules/printbackends/gtkprintbackendcups.c:5647
msgid "Right to left, top to bottom"
msgstr "Справа наліво, згори вниз"
-#: gtk/gtkprintunixdialog.c:2802
-#: modules/printbackends/gtkprintbackendcups.c:5648
+#: gtk/gtkprintunixdialog.c:2812
+#: modules/printbackends/gtkprintbackendcups.c:5647
msgid "Right to left, bottom to top"
msgstr "Справа наліво, знизу вгору"
-#: gtk/gtkprintunixdialog.c:2803
-#: modules/printbackends/gtkprintbackendcups.c:5649
+#: gtk/gtkprintunixdialog.c:2813
+#: modules/printbackends/gtkprintbackendcups.c:5648
msgid "Top to bottom, left to right"
msgstr "Згори вниз, зліва направо"
-#: gtk/gtkprintunixdialog.c:2803
-#: modules/printbackends/gtkprintbackendcups.c:5649
+#: gtk/gtkprintunixdialog.c:2813
+#: modules/printbackends/gtkprintbackendcups.c:5648
msgid "Top to bottom, right to left"
msgstr "Згори вниз, Ñправа наліво"
-#: gtk/gtkprintunixdialog.c:2804
-#: modules/printbackends/gtkprintbackendcups.c:5650
+#: gtk/gtkprintunixdialog.c:2814
+#: modules/printbackends/gtkprintbackendcups.c:5649
msgid "Bottom to top, left to right"
msgstr "Знизу вгору, зліва направо"
-#: gtk/gtkprintunixdialog.c:2804
-#: modules/printbackends/gtkprintbackendcups.c:5650
+#: gtk/gtkprintunixdialog.c:2814
+#: modules/printbackends/gtkprintbackendcups.c:5649
msgid "Bottom to top, right to left"
msgstr "Знизу вгору, Ñправа наліво"
-#: gtk/gtkprintunixdialog.c:2808 gtk/gtkprintunixdialog.c:2821
+#: gtk/gtkprintunixdialog.c:2818 gtk/gtkprintunixdialog.c:2831
msgid "Page Ordering"
msgstr "ПорÑдок Ñторінок"
-#: gtk/gtkprintunixdialog.c:2837
+#: gtk/gtkprintunixdialog.c:2847
msgid "Left to right"
msgstr "Зліва направо"
-#: gtk/gtkprintunixdialog.c:2838
+#: gtk/gtkprintunixdialog.c:2848
msgid "Right to left"
msgstr "Справа наліво"
-#: gtk/gtkprintunixdialog.c:2850
+#: gtk/gtkprintunixdialog.c:2860
msgid "Top to bottom"
msgstr "Згори донизу"
-#: gtk/gtkprintunixdialog.c:2851
+#: gtk/gtkprintunixdialog.c:2861
msgid "Bottom to top"
msgstr "Знизу догори"
-#: gtk/gtkprogressbar.c:606
+#: gtk/gtkprogressbar.c:608
#, c-format
msgctxt "progress bar label"
msgid "%.0f %%"
@@ -3424,7 +3480,7 @@ msgid "No registered application with name “%s†for item with URI “%s†f
msgstr ""
"Ðе знайдено зареєÑтрованої програми з назвою «%s» Ð´Ð»Ñ Ð¿ÑƒÐ½ÐºÑ‚Ñƒ з URI «%s»"
-#: gtk/gtksearchentry.c:639
+#: gtk/gtksearchentry.c:638
msgid "Clear entry"
msgstr "Спорожнити запиÑ"
@@ -3500,38 +3556,33 @@ msgid "Search Shortcuts"
msgstr "Ð¡ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ"
#: gtk/gtkshortcutswindow.c:968 gtk/ui/gtkemojichooser.ui:349
-#: gtk/ui/gtkfilechooserwidget.ui:297
+#: gtk/ui/gtkfilechooserwidget.ui:497
msgid "No Results Found"
msgstr "Безрезультатно"
#: gtk/gtkshortcutswindow.c:974 gtk/ui/gtkemojichooser.ui:362
-#: gtk/ui/gtkfilechooserwidget.ui:310 gtk/ui/gtkplacesview.ui:230
+#: gtk/ui/gtkfilechooserwidget.ui:510 gtk/ui/gtkplacesview.ui:218
msgid "Try a different search"
msgstr "Спробуйте пошукати по-інакшому"
-#: gtk/gtkshow.c:175
-msgid "Could not show link"
-msgstr "Ðе вдалоÑÑŒ показати поÑиланнÑ"
-
#: gtk/gtkstacksidebar.c:154
-#| msgid "Toggle Sidebar"
msgctxt "accessibility"
msgid "Sidebar"
msgstr "Бічна панель"
-#: gtk/gtktext.c:6065 gtk/gtktextview.c:8994
+#: gtk/gtktext.c:6101 gtk/gtktextview.c:9023
msgid "Insert _Emoji"
msgstr "Ð’Ñтавити _емодзі"
-#: gtk/gtktextview.c:8976
+#: gtk/gtktextview.c:9005
msgid "_Undo"
msgstr "_СкаÑувати"
-#: gtk/gtktextview.c:8980
+#: gtk/gtktextview.c:9009
msgid "_Redo"
msgstr "Пов_торити"
-#: gtk/gtktreeexpander.c:205 gtk/inspector/misc-info.ui:287
+#: gtk/gtktreeexpander.c:189 gtk/inspector/misc-info.ui:287
msgid "Expand"
msgstr "Розгорнути"
@@ -3554,12 +3605,12 @@ msgctxt "volume percentage"
msgid "%d %%"
msgstr "%d %%"
-#: gtk/gtkwindow.c:6101
+#: gtk/gtkwindow.c:6145
#, c-format
msgid "Do you want to use GTK Inspector?"
msgstr "Бажаєте викориÑтовувати інÑпектор GTK?"
-#: gtk/gtkwindow.c:6103
+#: gtk/gtkwindow.c:6147
#, c-format
msgid ""
"GTK Inspector is an interactive debugger that lets you explore and modify "
@@ -3570,7 +3621,7 @@ msgstr ""
"редагувати внутрішні чаÑтини будь-Ñкі програми GTK. Його викориÑÑ‚Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ "
"Ñпричинити збої в програмі."
-#: gtk/gtkwindow.c:6108
+#: gtk/gtkwindow.c:6152
msgid "Don’t show this message again"
msgstr "Ðе показувати це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð´Ð°Ð»Ñ–"
@@ -3606,17 +3657,17 @@ msgstr "Відновити"
msgid "Role"
msgstr "Роль"
-#: gtk/inspector/a11y.ui:40
+#: gtk/inspector/a11y.ui:43
msgid "Object path"
msgstr "ШлÑÑ… до об'єкта"
-#: gtk/inspector/a11y.ui:66
+#: gtk/inspector/a11y.ui:72
msgid "Attribute"
msgstr "Ðтрибут"
-#: gtk/inspector/a11y.ui:78 gtk/inspector/css-node-tree.ui:119
-#: gtk/inspector/prop-list.ui:57 gtk/inspector/recorder.ui:155
-#: gtk/inspector/recorder.ui:221
+#: gtk/inspector/a11y.ui:84 gtk/inspector/css-node-tree.ui:70
+#: gtk/inspector/prop-list.ui:57 gtk/inspector/recorder.ui:149
+#: gtk/inspector/recorder.ui:192 gtk/inspector/strv-editor.c:73
msgid "Value"
msgstr "ЗначеннÑ"
@@ -3636,7 +3687,7 @@ msgstr "Увімкнено"
msgid "Parameter Type"
msgstr "Тип параметра"
-#: gtk/inspector/actions.ui:52 gtk/inspector/css-node-tree.ui:74
+#: gtk/inspector/actions.ui:52 gtk/inspector/css-node-tree.ui:41
#: gtk/inspector/misc-info.ui:121
msgid "State"
msgstr "Стан"
@@ -3701,22 +3752,22 @@ msgctxt "propagation limit"
msgid "Native"
msgstr "Природне"
-#: gtk/inspector/css-editor.c:129
+#: gtk/inspector/css-editor.c:128
msgid "You can type here any CSS rule recognized by GTK."
msgstr "Можете ввеÑти будь-Ñке правило CSS, Ñке розпізнає GTK."
-#: gtk/inspector/css-editor.c:130
+#: gtk/inspector/css-editor.c:129
msgid ""
"You can temporarily disable this custom CSS by clicking on the “Pause†"
"button above."
msgstr ""
"Можете тимчаÑово вимкнути цю CSS, натиÑнувши на кнопку «Призупинити» вище."
-#: gtk/inspector/css-editor.c:131
+#: gtk/inspector/css-editor.c:130
msgid "Changes are applied instantly and globally, for the whole application."
msgstr "Зміни заÑтоÑовуютьÑÑ Ð¼Ð¸Ñ‚Ñ‚Ñ”Ð²Ð¾ Ñ– повÑюдно, Ð´Ð»Ñ Ð²ÑÑ–Ñ” програми."
-#: gtk/inspector/css-editor.c:211
+#: gtk/inspector/css-editor.c:206
#, c-format
msgid "Saving CSS failed"
msgstr "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ CSS"
@@ -3729,16 +3780,16 @@ msgstr "Вимкнутий цей CSS"
msgid "Save the current CSS"
msgstr "Зберегти поточний CSS"
-#: gtk/inspector/css-node-tree.ui:48 tools/gtk-builder-tool-preview.c:178
+#: gtk/inspector/css-node-tree.ui:28 tools/gtk-builder-tool-preview.c:178
#: tools/gtk-builder-tool-screenshot.c:358
msgid "ID"
msgstr "Ідентифікатор"
-#: gtk/inspector/css-node-tree.ui:61
+#: gtk/inspector/css-node-tree.ui:34
msgid "Style Classes"
msgstr "КлаÑи Ñтилів"
-#: gtk/inspector/css-node-tree.ui:104
+#: gtk/inspector/css-node-tree.ui:64
msgid "CSS Property"
msgstr "ВлаÑтивіÑÑ‚ÑŒ CSS"
@@ -3818,7 +3869,7 @@ msgstr "Ід. програми"
msgid "Resource Path"
msgstr "ШлÑÑ… до реÑурÑів"
-#: gtk/inspector/general.ui:268 gtk/ui/gtkplacesview.ui:79
+#: gtk/inspector/general.ui:268 gtk/ui/gtkplacesview.ui:67
msgid "Prefix"
msgstr "ПрефікÑ"
@@ -3854,23 +3905,23 @@ msgstr "ВерÑÑ–Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñу Vulkan"
msgid "Vulkan driver version"
msgstr "ВерÑÑ–Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° Vulkan"
-#: gtk/inspector/menu.c:95
+#: gtk/inspector/menu.c:264
msgid "Unnamed section"
msgstr "Ðеназваний розділ"
-#: gtk/inspector/menu.ui:23
+#: gtk/inspector/menu.ui:26
msgid "Label"
msgstr "Мітка"
-#: gtk/inspector/menu.ui:36 gtk/inspector/shortcuts.ui:23
+#: gtk/inspector/menu.ui:31 gtk/inspector/shortcuts.ui:23
msgid "Action"
msgstr "ДіÑ"
-#: gtk/inspector/menu.ui:49
+#: gtk/inspector/menu.ui:36
msgid "Target"
msgstr "Ціль"
-#: gtk/inspector/menu.ui:62
+#: gtk/inspector/menu.ui:41
msgid "Icon"
msgstr "Піктограма"
@@ -3879,7 +3930,7 @@ msgid "Address"
msgstr "ÐдреÑа"
#: gtk/inspector/misc-info.ui:62 gtk/inspector/prop-list.ui:35
-#: gtk/inspector/statistics.ui:46 gtk/ui/gtkfilechooserwidget.ui:214
+#: gtk/inspector/statistics.ui:36 gtk/ui/gtkfilechooserwidget.ui:336
msgid "Type"
msgstr "Тип"
@@ -3920,8 +3971,8 @@ msgid "Surface"
msgstr "ПоверхнÑ"
#: gtk/inspector/misc-info.ui:415 gtk/inspector/misc-info.ui:454
-#: gtk/inspector/misc-info.ui:493 gtk/inspector/prop-editor.c:1162
-#: gtk/inspector/prop-editor.c:1531 gtk/inspector/window.ui:396
+#: gtk/inspector/misc-info.ui:493 gtk/inspector/prop-editor.c:1150
+#: gtk/inspector/prop-editor.c:1533 gtk/inspector/window.ui:396
msgid "Properties"
msgstr "ВлаÑтивоÑÑ‚Ñ–"
@@ -3969,7 +4020,7 @@ msgstr "Принтер: %p"
#. Translators: %s is a type name, for example
#. * GtkPropertyExpression with value \"2.5\"
#.
-#: gtk/inspector/prop-editor.c:834
+#: gtk/inspector/prop-editor.c:824
#, c-format
msgid "%s with value \"%s\""
msgstr "%s зі значеннÑм «%s»"
@@ -3977,7 +4028,7 @@ msgstr "%s зі значеннÑм «%s»"
#. Translators: Both %s are type names, for example
#. * GtkPropertyExpression with type GObject
#.
-#: gtk/inspector/prop-editor.c:845
+#: gtk/inspector/prop-editor.c:835
#, c-format
msgid "%s with type %s"
msgstr "%s з типом %s"
@@ -3985,7 +4036,7 @@ msgstr "%s з типом %s"
#. Translators: Both %s are type names, for example
#. * GtkObjectExpression for GtkStringObject 0x23456789
#.
-#: gtk/inspector/prop-editor.c:858
+#: gtk/inspector/prop-editor.c:848
#, c-format
msgid "%s for %s %p"
msgstr "%s Ð´Ð»Ñ %s %p"
@@ -3993,71 +4044,71 @@ msgstr "%s Ð´Ð»Ñ %s %p"
#. Translators: Both %s are type names, for example
#. * GtkPropertyExpression with value type: gchararray
#.
-#: gtk/inspector/prop-editor.c:888
+#: gtk/inspector/prop-editor.c:878
#, c-format
msgid "%s with value type %s"
msgstr "%s із типом Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s"
-#: gtk/inspector/prop-editor.c:1242
+#: gtk/inspector/prop-editor.c:1227
#, c-format
msgid "Uneditable property type: %s"
msgstr "Ðеможливо редагувати цей тип влаÑтивоÑÑ‚Ñ–: %s"
-#: gtk/inspector/prop-editor.c:1383
+#: gtk/inspector/prop-editor.c:1385
msgctxt "column number"
msgid "None"
msgstr "Ðемає"
-#: gtk/inspector/prop-editor.c:1420
+#: gtk/inspector/prop-editor.c:1422
msgid "Attribute:"
msgstr "Ðтрибут:"
-#: gtk/inspector/prop-editor.c:1423
+#: gtk/inspector/prop-editor.c:1425
msgid "Model"
msgstr "Модель"
-#: gtk/inspector/prop-editor.c:1428
+#: gtk/inspector/prop-editor.c:1430
msgid "Column:"
msgstr "Стовпець:"
#. Translators: %s is a type name, for example
#. * Action from 0x2345678 (GtkApplicationWindow)
#.
-#: gtk/inspector/prop-editor.c:1527
+#: gtk/inspector/prop-editor.c:1529
#, c-format
msgid "Action from: %p (%s)"
msgstr "Джерело дії: %p (%s)"
-#: gtk/inspector/prop-editor.c:1582
+#: gtk/inspector/prop-editor.c:1584
msgid "Reset"
msgstr "Скинути"
-#: gtk/inspector/prop-editor.c:1590
+#: gtk/inspector/prop-editor.c:1592
msgctxt "GtkSettings source"
msgid "Default"
msgstr "Типове"
-#: gtk/inspector/prop-editor.c:1593
+#: gtk/inspector/prop-editor.c:1595
msgctxt "GtkSettings source"
msgid "Theme"
msgstr "Тема"
-#: gtk/inspector/prop-editor.c:1596
+#: gtk/inspector/prop-editor.c:1598
msgctxt "GtkSettings source"
msgid "XSettings"
msgstr "XSettings"
-#: gtk/inspector/prop-editor.c:1600
+#: gtk/inspector/prop-editor.c:1602
msgctxt "GtkSettings source"
msgid "Application"
msgstr "Програма"
-#: gtk/inspector/prop-editor.c:1603
+#: gtk/inspector/prop-editor.c:1605
msgctxt "GtkSettings source"
msgid "Unknown"
msgstr "Ðевідоме"
-#: gtk/inspector/prop-editor.c:1606
+#: gtk/inspector/prop-editor.c:1608
msgid "Source:"
msgstr "Джерело:"
@@ -4065,7 +4116,7 @@ msgstr "Джерело:"
msgid "Defined At"
msgstr "Визначено в"
-#: gtk/inspector/recorder.c:1694
+#: gtk/inspector/recorder.c:1829
#, c-format
msgid "Saving RenderNode failed"
msgstr "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ RenderNode"
@@ -4098,7 +4149,7 @@ msgstr "Зберегти позначений вузол"
msgid "Copy to clipboard"
msgstr "Скопіювати до буфера"
-#: gtk/inspector/recorder.ui:142 gtk/inspector/recorder.ui:208
+#: gtk/inspector/recorder.ui:144 gtk/inspector/recorder.ui:187
msgid "Property"
msgstr "ВлаÑтивіÑÑ‚ÑŒ"
@@ -4110,7 +4161,7 @@ msgstr "ШлÑÑ…"
msgid "Count"
msgstr "Підрахунок"
-#: gtk/inspector/resource-list.ui:82 gtk/ui/gtkfilechooserwidget.ui:202
+#: gtk/inspector/resource-list.ui:82 gtk/ui/gtkfilechooserwidget.ui:290
#: gtk/ui/gtkfontchooserwidget.ui:204 gtk/ui/gtkfontchooserwidget.ui:351
msgid "Size"
msgstr "Розмір"
@@ -4155,38 +4206,49 @@ msgstr "Обидва"
msgid "Mode"
msgstr "Режим"
-#: gtk/inspector/statistics.c:400
+#: gtk/inspector/statistics.c:814
msgid "GLib must be configured with -Dbuildtype=debug"
msgstr "GLib має бути налаштований з -Dbuildtype=debug"
-#: gtk/inspector/statistics.ui:60
+#: gtk/inspector/statistics.ui:41
msgid "Self 1"
msgstr "Ðабутий 1"
-#: gtk/inspector/statistics.ui:71
+#: gtk/inspector/statistics.ui:46
msgid "Cumulative 1"
msgstr "Ðагромаджений 1"
-#: gtk/inspector/statistics.ui:82
+#: gtk/inspector/statistics.ui:51
msgid "Self 2"
msgstr "Ðабутий 2"
-#: gtk/inspector/statistics.ui:93
+#: gtk/inspector/statistics.ui:56
msgid "Cumulative 2"
msgstr "Ðагромаджений 2"
-#: gtk/inspector/statistics.ui:104
+#: gtk/inspector/statistics.ui:61
msgid "Self"
msgstr "Ðабутий"
-#: gtk/inspector/statistics.ui:120
+#: gtk/inspector/statistics.ui:66
msgid "Cumulative"
msgstr "Ðагромаджений"
-#: gtk/inspector/statistics.ui:151
+#: gtk/inspector/statistics.ui:88
msgid "Enable statistics with GOBJECT_DEBUG=instance-count"
msgstr "Увімкнути ÑтатиÑтику з GOBJECT_DEBUG=instance-count"
+#: gtk/inspector/strv-editor.c:83
+#, c-format
+#| msgid "_Remove"
+msgid "Remove %s"
+msgstr "Вилучити %s"
+
+#: gtk/inspector/strv-editor.c:115
+#| msgid "Address"
+msgid "Add"
+msgstr "Додати"
+
#: gtk/inspector/tree-data.ui:10
msgid "Show data"
msgstr "Показати дані"
@@ -5949,12 +6011,19 @@ msgstr "ПодÑки"
msgid "System"
msgstr "СиÑтема"
+#: gtk/ui/gtkappchooserdialog.ui:4
+#| msgid "Select _All"
+msgid "Select App"
+msgstr "Вибір програми"
+
#: gtk/ui/gtkappchooserdialog.ui:60
-msgid "_View All Applications"
-msgstr "_ПереглÑнути вÑÑ– програми"
+#| msgid "_View All Applications"
+msgid "_View All Apps"
+msgstr "П_ереглÑнути уÑÑ– програми"
#: gtk/ui/gtkappchooserdialog.ui:66
-msgid "_Find New Applications"
+#| msgid "_Find New Applications"
+msgid "_Find New Apps"
msgstr "_Знайти нові програми"
#: gtk/ui/gtkappchooserwidget.ui:100
@@ -6101,19 +6170,19 @@ msgctxt "emoji category"
msgid "Recent"
msgstr "Ðещодавні"
-#: gtk/ui/gtkfilechooserwidget.ui:64
+#: gtk/ui/gtkfilechooserwidget.ui:71
msgid "Create Folder"
msgstr "Створити теку"
-#: gtk/ui/gtkfilechooserwidget.ui:249
+#: gtk/ui/gtkfilechooserwidget.ui:449
msgid "Remote location — only searching the current folder"
msgstr "Віддалена адреÑа — пошук можливий лише в поточній теці"
-#: gtk/ui/gtkfilechooserwidget.ui:378
+#: gtk/ui/gtkfilechooserwidget.ui:578
msgid "Folder Name"
msgstr "Ðазва теки"
-#: gtk/ui/gtkfilechooserwidget.ui:404
+#: gtk/ui/gtkfilechooserwidget.ui:604
msgid "_Create"
msgstr "_Створити"
@@ -6141,10 +6210,6 @@ msgstr "Мова"
msgid "Preview Font"
msgstr "ПереглÑд шрифту"
-#: gtk/ui/gtkfontchooserwidget.ui:191 gtk/ui/gtkfontchooserwidget.ui:220
-msgid "horizontal"
-msgstr "горизонтальна"
-
#: gtk/ui/gtkfontchooserwidget.ui:270
msgid "No Fonts Found"
msgstr "Ðе знайдено жодного шрифту"
@@ -6177,37 +6242,38 @@ msgstr "Ðльбомна"
msgid "Reverse landscape"
msgstr "Обернена альбомна"
-#: gtk/ui/gtkplacesview.ui:28
+#: gtk/ui/gtkplacesview.ui:16
msgid "Server Addresses"
msgstr "Серверні адреÑи"
-#: gtk/ui/gtkplacesview.ui:40
+#: gtk/ui/gtkplacesview.ui:28
msgid ""
"Server addresses are made up of a protocol prefix and an address. Examples:"
-msgstr "Серверні адреÑи ÑкладаютьÑÑ Ð· префікÑу протоколу та адреÑи. Ðаприклад:"
+msgstr ""
+"Серверні адреÑи ÑкладаютьÑÑ Ð· префікÑу протоколу та адреÑи. Ðаприклад:"
-#: gtk/ui/gtkplacesview.ui:66
+#: gtk/ui/gtkplacesview.ui:54
msgid "Available Protocols"
msgstr "ДоÑтупні протоколи"
#. Translators: Server as any successfully connected network address
-#: gtk/ui/gtkplacesview.ui:118
+#: gtk/ui/gtkplacesview.ui:106
msgid "No recent servers found"
msgstr "Ðе знайдено жодного недавнього Ñервера"
-#: gtk/ui/gtkplacesview.ui:141
+#: gtk/ui/gtkplacesview.ui:129
msgid "Recent Servers"
msgstr "Ðедавні Ñервери"
-#: gtk/ui/gtkplacesview.ui:221
+#: gtk/ui/gtkplacesview.ui:209
msgid "No results found"
msgstr "Безрезультатно"
-#: gtk/ui/gtkplacesview.ui:252
+#: gtk/ui/gtkplacesview.ui:240
msgid "Connect to _Server"
msgstr "З'єднатиÑÑŒ із _Ñервером"
-#: gtk/ui/gtkplacesview.ui:277
+#: gtk/ui/gtkplacesview.ui:265
msgid "Enter server address…"
msgstr "УвеÑти адреÑу Ñервера…"
@@ -6441,443 +6507,444 @@ msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити контекÑÑ‚ заÑобу Ð
msgid "No audio output found"
msgstr "Ðе знайдено виходу звукових даних"
-#: modules/printbackends/gtkprintbackendcups.c:1142
-#: modules/printbackends/gtkprintbackendcups.c:1449
+#: modules/printbackends/gtkprintbackendcups.c:1141
+#: modules/printbackends/gtkprintbackendcups.c:1448
msgid "Username:"
msgstr "КориÑтувач:"
-#: modules/printbackends/gtkprintbackendcups.c:1143
-#: modules/printbackends/gtkprintbackendcups.c:1458
+#: modules/printbackends/gtkprintbackendcups.c:1142
+#: modules/printbackends/gtkprintbackendcups.c:1457
msgid "Password:"
msgstr "Пароль:"
-#: modules/printbackends/gtkprintbackendcups.c:1181
-#: modules/printbackends/gtkprintbackendcups.c:1471
+#: modules/printbackends/gtkprintbackendcups.c:1180
+#: modules/printbackends/gtkprintbackendcups.c:1470
#, c-format
msgid "Authentication is required to print document “%s†on printer %s"
msgstr ""
"Щоб надрукувати документ «%s» на принтері %s, потрібно пройти автентифікацію"
-#: modules/printbackends/gtkprintbackendcups.c:1183
+#: modules/printbackends/gtkprintbackendcups.c:1182
#, c-format
msgid "Authentication is required to print a document on %s"
msgstr "Ð”Ð»Ñ Ð´Ñ€ÑƒÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚ %s на принтері потрібно пройти автентифікацію"
-#: modules/printbackends/gtkprintbackendcups.c:1187
+#: modules/printbackends/gtkprintbackendcups.c:1186
#, c-format
msgid "Authentication is required to get attributes of job “%sâ€"
msgstr "Щоб одержати атрибути Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Â«%s», потрібно пройти автентифікацію"
-#: modules/printbackends/gtkprintbackendcups.c:1189
+#: modules/printbackends/gtkprintbackendcups.c:1188
msgid "Authentication is required to get attributes of a job"
msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾ пройти автентифікацію"
-#: modules/printbackends/gtkprintbackendcups.c:1193
+#: modules/printbackends/gtkprintbackendcups.c:1192
#, c-format
msgid "Authentication is required to get attributes of printer %s"
msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² принтера %s потрібно пройти автентифікацію"
-#: modules/printbackends/gtkprintbackendcups.c:1195
+#: modules/printbackends/gtkprintbackendcups.c:1194
msgid "Authentication is required to get attributes of a printer"
msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² принтера потрібно пройти автентифікацію"
-#: modules/printbackends/gtkprintbackendcups.c:1198
+#: modules/printbackends/gtkprintbackendcups.c:1197
#, c-format
msgid "Authentication is required to get default printer of %s"
msgstr ""
"Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ принтера вузла %s потрібно пройти автентифікацію"
-#: modules/printbackends/gtkprintbackendcups.c:1201
+#: modules/printbackends/gtkprintbackendcups.c:1200
#, c-format
msgid "Authentication is required to get printers from %s"
msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ñ–Ð² вузла %s потрібно пройти автентифікацію"
-#: modules/printbackends/gtkprintbackendcups.c:1206
+#: modules/printbackends/gtkprintbackendcups.c:1205
#, c-format
msgid "Authentication is required to get a file from %s"
msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° з %s потрібно пройти автентифікацію"
-#: modules/printbackends/gtkprintbackendcups.c:1208
+#: modules/printbackends/gtkprintbackendcups.c:1207
#, c-format
msgid "Authentication is required on %s"
msgstr "Потрібно пройти автентифікацію на %s"
-#: modules/printbackends/gtkprintbackendcups.c:1443
+#: modules/printbackends/gtkprintbackendcups.c:1442
msgid "Domain:"
msgstr "Домен:"
-#: modules/printbackends/gtkprintbackendcups.c:1473
+#: modules/printbackends/gtkprintbackendcups.c:1472
#, c-format
msgid "Authentication is required to print document “%sâ€"
msgstr "Щоб надрукувати документ «%s», потрібно пройти автентифікацію"
-#: modules/printbackends/gtkprintbackendcups.c:1478
+#: modules/printbackends/gtkprintbackendcups.c:1477
#, c-format
msgid "Authentication is required to print this document on printer %s"
-msgstr "Ð”Ð»Ñ Ð´Ñ€ÑƒÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° на принтері %s потрібно пройти автентифікацію"
+msgstr ""
+"Ð”Ð»Ñ Ð´Ñ€ÑƒÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° на принтері %s потрібно пройти автентифікацію"
-#: modules/printbackends/gtkprintbackendcups.c:1480
+#: modules/printbackends/gtkprintbackendcups.c:1479
msgid "Authentication is required to print this document"
msgstr "Ð”Ð»Ñ Ð´Ñ€ÑƒÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° потрібно пройти автентифікацію"
-#: modules/printbackends/gtkprintbackendcups.c:2568
+#: modules/printbackends/gtkprintbackendcups.c:2567
#, c-format
msgid "Printer “%s†is low on toner."
msgstr "У принтері «%s» закінчуєтьÑÑ Ñ‚Ð¾Ð½ÐµÑ€."
-#: modules/printbackends/gtkprintbackendcups.c:2572
+#: modules/printbackends/gtkprintbackendcups.c:2571
#, c-format
msgid "Printer “%s†has no toner left."
msgstr "У принтері «%s» закінчивÑÑ Ñ‚Ð¾Ð½ÐµÑ€."
#. Translators: "Developer" like on photo development context
-#: modules/printbackends/gtkprintbackendcups.c:2577
+#: modules/printbackends/gtkprintbackendcups.c:2576
#, c-format
msgid "Printer “%s†is low on developer."
msgstr "У принтері «%s» закінчуєтьÑÑ Ð¿Ñ€Ð¾Ñвник."
#. Translators: "Developer" like on photo development context
-#: modules/printbackends/gtkprintbackendcups.c:2582
+#: modules/printbackends/gtkprintbackendcups.c:2581
#, c-format
msgid "Printer “%s†is out of developer."
msgstr "У принтері «%s» закінчивÑÑ Ð¿Ñ€Ð¾Ñвник."
#. Translators: "marker" is one color bin of the printer
-#: modules/printbackends/gtkprintbackendcups.c:2587
+#: modules/printbackends/gtkprintbackendcups.c:2586
#, c-format
msgid "Printer “%s†is low on at least one marker supply."
msgstr "У принтері «%s» закінчуєтьÑÑ Ð¾Ð´Ð½Ð° із фарб."
#. Translators: "marker" is one color bin of the printer
-#: modules/printbackends/gtkprintbackendcups.c:2592
+#: modules/printbackends/gtkprintbackendcups.c:2591
#, c-format
msgid "Printer “%s†is out of at least one marker supply."
msgstr "У принтері «%s» закінчилаÑÑŒ одна із фарб."
-#: modules/printbackends/gtkprintbackendcups.c:2596
+#: modules/printbackends/gtkprintbackendcups.c:2595
#, c-format
msgid "The cover is open on printer “%sâ€."
msgstr "У принтері «%s» відкрито кришку."
-#: modules/printbackends/gtkprintbackendcups.c:2600
+#: modules/printbackends/gtkprintbackendcups.c:2599
#, c-format
msgid "The door is open on printer “%sâ€."
msgstr "У принтері «%s» відкрито дверці."
-#: modules/printbackends/gtkprintbackendcups.c:2604
+#: modules/printbackends/gtkprintbackendcups.c:2603
#, c-format
msgid "Printer “%s†is low on paper."
msgstr "У принтері «%s» закінчуєтьÑÑ Ð¿Ð°Ð¿Ñ–Ñ€."
-#: modules/printbackends/gtkprintbackendcups.c:2608
+#: modules/printbackends/gtkprintbackendcups.c:2607
#, c-format
msgid "Printer “%s†is out of paper."
msgstr "У принтері «%s» закінчивÑÑ Ð¿Ð°Ð¿Ñ–Ñ€."
-#: modules/printbackends/gtkprintbackendcups.c:2612
+#: modules/printbackends/gtkprintbackendcups.c:2611
#, c-format
msgid "Printer “%s†is currently offline."
msgstr "Принтер «%s» наразі недоÑтупний."
-#: modules/printbackends/gtkprintbackendcups.c:2616
+#: modules/printbackends/gtkprintbackendcups.c:2615
#, c-format
msgid "There is a problem on printer “%sâ€."
msgstr "Проблема з принтером «%s»."
#. Translators: this is a printer status.
-#: modules/printbackends/gtkprintbackendcups.c:2636
+#: modules/printbackends/gtkprintbackendcups.c:2635
msgid "Paused; Rejecting Jobs"
msgstr "Призупинено ; ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ"
#. Translators: this is a printer status.
-#: modules/printbackends/gtkprintbackendcups.c:2642
+#: modules/printbackends/gtkprintbackendcups.c:2641
msgid "Rejecting Jobs"
msgstr "СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ"
#. Translators: this string connects multiple printer states together.
-#: modules/printbackends/gtkprintbackendcups.c:2683
+#: modules/printbackends/gtkprintbackendcups.c:2682
msgid "; "
msgstr "; "
-#: modules/printbackends/gtkprintbackendcups.c:4584
-#: modules/printbackends/gtkprintbackendcups.c:4651
+#: modules/printbackends/gtkprintbackendcups.c:4583
+#: modules/printbackends/gtkprintbackendcups.c:4650
msgctxt "printing option"
msgid "Two Sided"
msgstr "З двох Ñторін"
-#: modules/printbackends/gtkprintbackendcups.c:4585
+#: modules/printbackends/gtkprintbackendcups.c:4584
msgctxt "printing option"
msgid "Paper Type"
msgstr "Тип паперу"
-#: modules/printbackends/gtkprintbackendcups.c:4586
+#: modules/printbackends/gtkprintbackendcups.c:4585
msgctxt "printing option"
msgid "Paper Source"
msgstr "Джерело паперу"
-#: modules/printbackends/gtkprintbackendcups.c:4587
-#: modules/printbackends/gtkprintbackendcups.c:4652
+#: modules/printbackends/gtkprintbackendcups.c:4586
+#: modules/printbackends/gtkprintbackendcups.c:4651
msgctxt "printing option"
msgid "Output Tray"
msgstr "Лоток виводу"
-#: modules/printbackends/gtkprintbackendcups.c:4588
+#: modules/printbackends/gtkprintbackendcups.c:4587
msgctxt "printing option"
msgid "Resolution"
msgstr "РоздільніÑÑ‚ÑŒ"
-#: modules/printbackends/gtkprintbackendcups.c:4589
+#: modules/printbackends/gtkprintbackendcups.c:4588
msgctxt "printing option"
msgid "GhostScript pre-filtering"
msgstr "ВідÑÑ–ÑŽÐ²Ð°Ð½Ð½Ñ GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4598
+#: modules/printbackends/gtkprintbackendcups.c:4597
msgctxt "printing option value"
msgid "One Sided"
msgstr "З однієї Ñторони"
#. Translators: this is an option of "Two Sided"
-#: modules/printbackends/gtkprintbackendcups.c:4600
+#: modules/printbackends/gtkprintbackendcups.c:4599
msgctxt "printing option value"
msgid "Long Edge (Standard)"
msgstr "За довгою Ñтороною"
#. Translators: this is an option of "Two Sided"
-#: modules/printbackends/gtkprintbackendcups.c:4602
+#: modules/printbackends/gtkprintbackendcups.c:4601
msgctxt "printing option value"
msgid "Short Edge (Flip)"
msgstr "За короткою Ñтороною"
#. Translators: this is an option of "Paper Source"
-#: modules/printbackends/gtkprintbackendcups.c:4604
-#: modules/printbackends/gtkprintbackendcups.c:4606
-#: modules/printbackends/gtkprintbackendcups.c:4614
+#: modules/printbackends/gtkprintbackendcups.c:4603
+#: modules/printbackends/gtkprintbackendcups.c:4605
+#: modules/printbackends/gtkprintbackendcups.c:4613
msgctxt "printing option value"
msgid "Auto Select"
msgstr "Ðвтоматичний вибір"
#. Translators: this is an option of "Paper Source"
#. Translators: this is an option of "Resolution"
-#: modules/printbackends/gtkprintbackendcups.c:4608
-#: modules/printbackends/gtkprintbackendcups.c:4610
-#: modules/printbackends/gtkprintbackendcups.c:4612
-#: modules/printbackends/gtkprintbackendcups.c:4616
+#: modules/printbackends/gtkprintbackendcups.c:4607
+#: modules/printbackends/gtkprintbackendcups.c:4609
+#: modules/printbackends/gtkprintbackendcups.c:4611
+#: modules/printbackends/gtkprintbackendcups.c:4615
msgctxt "printing option value"
msgid "Printer Default"
msgstr "Типовий принтер"
#. Translators: this is an option of "GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4618
+#: modules/printbackends/gtkprintbackendcups.c:4617
msgctxt "printing option value"
msgid "Embed GhostScript fonts only"
msgstr "Вбудовувати лише шрифти GhostScript"
#. Translators: this is an option of "GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4620
+#: modules/printbackends/gtkprintbackendcups.c:4619
msgctxt "printing option value"
msgid "Convert to PS level 1"
msgstr "Перетворювати на формат PS рівень 1"
#. Translators: this is an option of "GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4622
+#: modules/printbackends/gtkprintbackendcups.c:4621
msgctxt "printing option value"
msgid "Convert to PS level 2"
msgstr "Перетворити на формат PS рівень 2"
#. Translators: this is an option of "GhostScript"
-#: modules/printbackends/gtkprintbackendcups.c:4624
+#: modules/printbackends/gtkprintbackendcups.c:4623
msgctxt "printing option value"
msgid "No pre-filtering"
msgstr "Ðе відÑіювати нічого"
#. Translators: "Miscellaneous" is the label for a button, that opens
#. up an extra panel of settings in a print dialog.
-#: modules/printbackends/gtkprintbackendcups.c:4633
+#: modules/printbackends/gtkprintbackendcups.c:4632
msgctxt "printing option group"
msgid "Miscellaneous"
msgstr "Інше"
-#: modules/printbackends/gtkprintbackendcups.c:4660
+#: modules/printbackends/gtkprintbackendcups.c:4659
msgctxt "sides"
msgid "One Sided"
msgstr "З однієї Ñторони"
#. Translators: this is an option of "Two Sided"
-#: modules/printbackends/gtkprintbackendcups.c:4662
+#: modules/printbackends/gtkprintbackendcups.c:4661
msgctxt "sides"
msgid "Long Edge (Standard)"
msgstr "За довгою Ñтороною"
#. Translators: this is an option of "Two Sided"
-#: modules/printbackends/gtkprintbackendcups.c:4664
+#: modules/printbackends/gtkprintbackendcups.c:4663
msgctxt "sides"
msgid "Short Edge (Flip)"
msgstr "За короткою Ñтороною"
#. Translators: Top output bin
-#: modules/printbackends/gtkprintbackendcups.c:4667
+#: modules/printbackends/gtkprintbackendcups.c:4666
msgctxt "output-bin"
msgid "Top Bin"
msgstr "Ð’ÐµÑ€Ñ…Ð½Ñ Ñкринька"
#. Translators: Middle output bin
-#: modules/printbackends/gtkprintbackendcups.c:4669
+#: modules/printbackends/gtkprintbackendcups.c:4668
msgctxt "output-bin"
msgid "Middle Bin"
msgstr "Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ñкринька"
#. Translators: Bottom output bin
-#: modules/printbackends/gtkprintbackendcups.c:4671
+#: modules/printbackends/gtkprintbackendcups.c:4670
msgctxt "output-bin"
msgid "Bottom Bin"
msgstr "ÐÐ¸Ð¶Ð½Ñ Ñкринька"
#. Translators: Side output bin
-#: modules/printbackends/gtkprintbackendcups.c:4673
+#: modules/printbackends/gtkprintbackendcups.c:4672
msgctxt "output-bin"
msgid "Side Bin"
msgstr "Бічна Ñкринька"
#. Translators: Left output bin
-#: modules/printbackends/gtkprintbackendcups.c:4675
+#: modules/printbackends/gtkprintbackendcups.c:4674
msgctxt "output-bin"
msgid "Left Bin"
msgstr "Ліва Ñкринька"
#. Translators: Right output bin
-#: modules/printbackends/gtkprintbackendcups.c:4677
+#: modules/printbackends/gtkprintbackendcups.c:4676
msgctxt "output-bin"
msgid "Right Bin"
msgstr "Права Ñкринька"
#. Translators: Center output bin
-#: modules/printbackends/gtkprintbackendcups.c:4679
+#: modules/printbackends/gtkprintbackendcups.c:4678
msgctxt "output-bin"
msgid "Center Bin"
msgstr "Центральна Ñкринька"
#. Translators: Rear output bin
-#: modules/printbackends/gtkprintbackendcups.c:4681
+#: modules/printbackends/gtkprintbackendcups.c:4680
msgctxt "output-bin"
msgid "Rear Bin"
msgstr "Ð—Ð°Ð´Ð½Ñ Ñкринька"
#. Translators: Output bin where one sided output is oriented in the face-up position
-#: modules/printbackends/gtkprintbackendcups.c:4683
+#: modules/printbackends/gtkprintbackendcups.c:4682
msgctxt "output-bin"
msgid "Face Up Bin"
msgstr "Розвернута Ñкринька"
#. Translators: Output bin where one sided output is oriented in the face-down position
-#: modules/printbackends/gtkprintbackendcups.c:4685
+#: modules/printbackends/gtkprintbackendcups.c:4684
msgctxt "output-bin"
msgid "Face Down Bin"
msgstr "Перевернута Ñкринька"
#. Translators: Large capacity output bin
-#: modules/printbackends/gtkprintbackendcups.c:4687
+#: modules/printbackends/gtkprintbackendcups.c:4686
msgctxt "output-bin"
msgid "Large Capacity Bin"
msgstr "Скринька великої ємноÑÑ‚Ñ–"
#. Translators: Output stacker number %d
-#: modules/printbackends/gtkprintbackendcups.c:4709
+#: modules/printbackends/gtkprintbackendcups.c:4708
#, c-format
msgctxt "output-bin"
msgid "Stacker %d"
msgstr "Укладальник %d"
#. Translators: Output mailbox number %d
-#: modules/printbackends/gtkprintbackendcups.c:4713
+#: modules/printbackends/gtkprintbackendcups.c:4712
#, c-format
msgctxt "output-bin"
msgid "Mailbox %d"
msgstr "Поштова Ñкринька %d"
#. Translators: Private mailbox
-#: modules/printbackends/gtkprintbackendcups.c:4717
+#: modules/printbackends/gtkprintbackendcups.c:4716
msgctxt "output-bin"
msgid "My Mailbox"
msgstr "ÐœÐ¾Ñ Ð¿Ð¾ÑˆÑ‚Ð¾Ð²Ð° Ñкринька"
#. Translators: Output tray number %d
-#: modules/printbackends/gtkprintbackendcups.c:4721
+#: modules/printbackends/gtkprintbackendcups.c:4720
#, c-format
msgctxt "output-bin"
msgid "Tray %d"
msgstr "Лоток %d"
-#: modules/printbackends/gtkprintbackendcups.c:5198
+#: modules/printbackends/gtkprintbackendcups.c:5197
msgid "Printer Default"
msgstr "Типовий принтер"
#. Translators: These strings name the possible values of the
#. * job priority option in the print dialog
#.
-#: modules/printbackends/gtkprintbackendcups.c:5642
+#: modules/printbackends/gtkprintbackendcups.c:5641
msgid "Urgent"
msgstr "Терміново"
-#: modules/printbackends/gtkprintbackendcups.c:5642
+#: modules/printbackends/gtkprintbackendcups.c:5641
msgid "High"
msgstr "ВиÑокий"
-#: modules/printbackends/gtkprintbackendcups.c:5642
+#: modules/printbackends/gtkprintbackendcups.c:5641
msgid "Medium"
msgstr "Середній"
-#: modules/printbackends/gtkprintbackendcups.c:5642
+#: modules/printbackends/gtkprintbackendcups.c:5641
msgid "Low"
msgstr "Ðизький"
#. Translators, this string is used to label the job priority option
#. * in the print dialog
#.
-#: modules/printbackends/gtkprintbackendcups.c:5672
+#: modules/printbackends/gtkprintbackendcups.c:5671
msgid "Job Priority"
msgstr "Пріоритет завданнÑ"
#. Translators, this string is used to label the billing info entry
#. * in the print dialog
#.
-#: modules/printbackends/gtkprintbackendcups.c:5683
+#: modules/printbackends/gtkprintbackendcups.c:5682
msgid "Billing Info"
msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ облік"
#. Translators, these strings are names for various 'standard' cover
#. * pages that the printing system may support.
#.
-#: modules/printbackends/gtkprintbackendcups.c:5707
+#: modules/printbackends/gtkprintbackendcups.c:5706
msgctxt "cover page"
msgid "None"
msgstr "Ðемає"
-#: modules/printbackends/gtkprintbackendcups.c:5708
+#: modules/printbackends/gtkprintbackendcups.c:5707
msgctxt "cover page"
msgid "Classified"
msgstr "КлаÑифіковано"
-#: modules/printbackends/gtkprintbackendcups.c:5709
+#: modules/printbackends/gtkprintbackendcups.c:5708
msgctxt "cover page"
msgid "Confidential"
msgstr "Конфіденційно"
-#: modules/printbackends/gtkprintbackendcups.c:5710
+#: modules/printbackends/gtkprintbackendcups.c:5709
msgctxt "cover page"
msgid "Secret"
msgstr "Таємно"
-#: modules/printbackends/gtkprintbackendcups.c:5711
+#: modules/printbackends/gtkprintbackendcups.c:5710
msgctxt "cover page"
msgid "Standard"
msgstr "Стандартно"
-#: modules/printbackends/gtkprintbackendcups.c:5712
+#: modules/printbackends/gtkprintbackendcups.c:5711
msgctxt "cover page"
msgid "Top Secret"
msgstr "Цілковито таємно"
-#: modules/printbackends/gtkprintbackendcups.c:5713
+#: modules/printbackends/gtkprintbackendcups.c:5712
msgctxt "cover page"
msgid "Unclassified"
msgstr "Ðе клаÑифіковано"
@@ -6885,7 +6952,7 @@ msgstr "Ðе клаÑифіковано"
#. Translators, this string is used to label the pages-per-sheet option
#. * in the print dialog
#.
-#: modules/printbackends/gtkprintbackendcups.c:5725
+#: modules/printbackends/gtkprintbackendcups.c:5724
msgctxt "printer option"
msgid "Pages per Sheet"
msgstr "Сторінок на аркуш"
@@ -6893,7 +6960,7 @@ msgstr "Сторінок на аркуш"
#. Translators, this string is used to label the option in the print
#. * dialog that controls in what order multiple pages are arranged
#.
-#: modules/printbackends/gtkprintbackendcups.c:5742
+#: modules/printbackends/gtkprintbackendcups.c:5741
msgctxt "printer option"
msgid "Page Ordering"
msgstr "ПорÑдок Ñторінок"
@@ -6901,7 +6968,7 @@ msgstr "ПорÑдок Ñторінок"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the front cover page.
#.
-#: modules/printbackends/gtkprintbackendcups.c:5784
+#: modules/printbackends/gtkprintbackendcups.c:5783
msgctxt "printer option"
msgid "Before"
msgstr "Перед"
@@ -6909,7 +6976,7 @@ msgstr "Перед"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the back cover page.
#.
-#: modules/printbackends/gtkprintbackendcups.c:5799
+#: modules/printbackends/gtkprintbackendcups.c:5798
msgctxt "printer option"
msgid "After"
msgstr "ПіÑлÑ"
@@ -6918,7 +6985,7 @@ msgstr "ПіÑлÑ"
#. * a print job is printed. Possible values are 'now', a specified time,
#. * or 'on hold'
#.
-#: modules/printbackends/gtkprintbackendcups.c:5819
+#: modules/printbackends/gtkprintbackendcups.c:5818
msgctxt "printer option"
msgid "Print at"
msgstr "Ðадрукувати"
@@ -6926,7 +6993,7 @@ msgstr "Ðадрукувати"
#. Translators: this is the name of the option that allows the user
#. * to specify a time when a print job will be printed.
#.
-#: modules/printbackends/gtkprintbackendcups.c:5830
+#: modules/printbackends/gtkprintbackendcups.c:5829
msgctxt "printer option"
msgid "Print at time"
msgstr "Ðадрукувати о"
@@ -6936,64 +7003,64 @@ msgstr "Ðадрукувати о"
#. * the width and height in points. E.g: "Custom
#. * 230.4x142.9"
#.
-#: modules/printbackends/gtkprintbackendcups.c:5877
+#: modules/printbackends/gtkprintbackendcups.c:5876
#, c-format
msgid "Custom %s×%s"
msgstr "Інший %s×%s"
#. TRANSLATORS: this is the ICC color profile to use for this job
-#: modules/printbackends/gtkprintbackendcups.c:5988
+#: modules/printbackends/gtkprintbackendcups.c:5987
msgctxt "printer option"
msgid "Printer Profile"
msgstr "Профіль принтера"
#. TRANSLATORS: this is when color profile information is unavailable
-#: modules/printbackends/gtkprintbackendcups.c:5995
+#: modules/printbackends/gtkprintbackendcups.c:5994
msgctxt "printer option value"
msgid "Unavailable"
msgstr "ÐедоÑтупно"
-#: modules/printbackends/gtkprintbackendfile.c:235
+#: modules/printbackends/gtkprintbackendfile.c:238
msgid "output"
msgstr "вивід"
-#: modules/printbackends/gtkprintbackendfile.c:507
+#: modules/printbackends/gtkprintbackendfile.c:510
msgid "Print to File"
msgstr "Друкувати у файл"
-#: modules/printbackends/gtkprintbackendfile.c:633
+#: modules/printbackends/gtkprintbackendfile.c:636
msgid "PDF"
msgstr "PDF"
-#: modules/printbackends/gtkprintbackendfile.c:633
+#: modules/printbackends/gtkprintbackendfile.c:636
msgid "PostScript"
msgstr "PostScript"
-#: modules/printbackends/gtkprintbackendfile.c:633
+#: modules/printbackends/gtkprintbackendfile.c:636
msgid "SVG"
msgstr "SVG"
-#: modules/printbackends/gtkprintbackendfile.c:646
+#: modules/printbackends/gtkprintbackendfile.c:649
msgid "Pages per _sheet:"
msgstr "Сторінок на _аркуш:"
-#: modules/printbackends/gtkprintbackendfile.c:706
+#: modules/printbackends/gtkprintbackendfile.c:709
msgid "File"
msgstr "Файл"
-#: modules/printbackends/gtkprintbackendfile.c:716
+#: modules/printbackends/gtkprintbackendfile.c:719
msgid "_Output format"
msgstr "Формат _виводу"
-#: modules/printbackends/gtkprintbackendlpr.c:371
+#: modules/printbackends/gtkprintbackendlpr.c:375
msgid "Print to LPR"
msgstr "Друкувати в LPR"
-#: modules/printbackends/gtkprintbackendlpr.c:400
+#: modules/printbackends/gtkprintbackendlpr.c:404
msgid "Pages Per Sheet"
msgstr "Сторінок на аркуш"
-#: modules/printbackends/gtkprintbackendlpr.c:406
+#: modules/printbackends/gtkprintbackendlpr.c:410
msgid "Command Line"
msgstr "Командний Ñ€Ñдок"
@@ -7070,15 +7137,16 @@ msgstr ""
" screenshot Зробити знімок вікна з файла.\n"
"\n"
-#: tools/gtk-builder-tool-enumerate.c:54 tools/gtk-builder-tool-preview.c:179
+#: tools/gtk-builder-tool-enumerate.c:56 tools/gtk-builder-tool-preview.c:179
#: tools/gtk-builder-tool-preview.c:180 tools/gtk-builder-tool-screenshot.c:359
#: tools/gtk-builder-tool-screenshot.c:362
-#: tools/gtk-builder-tool-simplify.c:2360 tools/gtk-builder-tool-validate.c:159
+#: tools/gtk-builder-tool-simplify.c:2362 tools/gtk-builder-tool-validate.c:260
msgid "FILE"
msgstr "ФÐЙЛ"
-#: tools/gtk-builder-tool-enumerate.c:62
-msgid "List all named objects."
+#: tools/gtk-builder-tool-enumerate.c:64
+#| msgid "List all named objects."
+msgid "Print all named objects."
msgstr "ВивеÑти ÑпиÑок уÑÑ–Ñ… іменованих об'єктів."
#: tools/gtk-builder-tool-preview.c:178
@@ -7109,65 +7177,65 @@ msgstr "ПерезапиÑати наÑвний файл"
msgid "Take a screenshot of the file."
msgstr "Зробити знімок вікна вміÑту файла."
-#: tools/gtk-builder-tool-simplify.c:442
+#: tools/gtk-builder-tool-simplify.c:444
#, c-format
msgid "%s:%d: Couldn’t parse value for property '%s': %s\n"
msgstr "%s:%d: не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ð»Ð°ÑтивоÑÑ‚Ñ– «%s»: %s\n"
-#: tools/gtk-builder-tool-simplify.c:651
+#: tools/gtk-builder-tool-simplify.c:653
#, c-format
msgid "%s:%d: %sproperty %s::%s not found\n"
msgstr "%s:%d: %sвлаÑтивіÑÑ‚ÑŒ %s::%s не знайдено\n"
-#: tools/gtk-builder-tool-simplify.c:2288
+#: tools/gtk-builder-tool-simplify.c:2290
#, c-format
msgid "Can’t load “%sâ€: %s\n"
msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ «%s»: %s\n"
-#: tools/gtk-builder-tool-simplify.c:2299
-#: tools/gtk-builder-tool-simplify.c:2305
+#: tools/gtk-builder-tool-simplify.c:2301
+#: tools/gtk-builder-tool-simplify.c:2307
#, c-format
msgid "Can’t parse “%sâ€: %s\n"
msgstr "Ðе вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ «%s»: %s\n"
-#: tools/gtk-builder-tool-simplify.c:2311
+#: tools/gtk-builder-tool-simplify.c:2313
#, c-format
msgid "Can’t parse “%sâ€\n"
msgstr "Ðе вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ «%s»\n"
-#: tools/gtk-builder-tool-simplify.c:2335
+#: tools/gtk-builder-tool-simplify.c:2337
#, c-format
msgid "Failed to read “%sâ€: %s\n"
msgstr "Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ «%s»: %s\n"
-#: tools/gtk-builder-tool-simplify.c:2341
+#: tools/gtk-builder-tool-simplify.c:2343
#, c-format
msgid "Failed to write %s: “%sâ€\n"
msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати %s: «%s»\n"
-#: tools/gtk-builder-tool-simplify.c:2358
+#: tools/gtk-builder-tool-simplify.c:2360
msgid "Replace the file"
msgstr "Замінити файл"
-#: tools/gtk-builder-tool-simplify.c:2359
+#: tools/gtk-builder-tool-simplify.c:2361
msgid "Convert from GTK 3 to GTK 4"
msgstr "Перетворити з GTK 3 на GTK 4"
-#: tools/gtk-builder-tool-simplify.c:2370
+#: tools/gtk-builder-tool-simplify.c:2372
msgid "Simplify the file."
msgstr "СпроÑтити файл."
-#: tools/gtk-builder-tool-simplify.c:2383
+#: tools/gtk-builder-tool-simplify.c:2385
#, c-format
msgid "No .ui file specified\n"
msgstr "Ðе вказано файла .ui\n"
-#: tools/gtk-builder-tool-simplify.c:2389
+#: tools/gtk-builder-tool-simplify.c:2391
#, c-format
msgid "Can only simplify a single .ui file without --replace\n"
msgstr "Без --replace можна Ñпрощувати лише один файл .ui\n"
-#: tools/gtk-builder-tool-validate.c:168
+#: tools/gtk-builder-tool-validate.c:269
msgid "Validate the file."
msgstr "Перевірити чинніÑÑ‚ÑŒ файла."
@@ -7279,55 +7347,55 @@ msgstr "Ðе вдалоÑÑŒ перейменувати %s у %s: %s\n"
msgid "Could not rename %s back to %s: %s.\n"
msgstr "Ðе вдалоÑÑŒ перейменувати %s назад на %s: %s.\n"
-#: tools/updateiconcache.c:1618
+#: tools/updateiconcache.c:1614
#, c-format
msgid "Cache file created successfully.\n"
msgstr "Файл кешу уÑпішно Ñтворено.\n"
-#: tools/updateiconcache.c:1657
+#: tools/updateiconcache.c:1653
msgid "Overwrite an existing cache, even if up to date"
msgstr "ПерезапиÑати наÑвний кеш, навіть Ñкщо його оновлено"
-#: tools/updateiconcache.c:1658
+#: tools/updateiconcache.c:1654
msgid "Don’t check for the existence of index.theme"
msgstr "Ðе перевірÑти Ñ–ÑÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° index.theme"
-#: tools/updateiconcache.c:1659
+#: tools/updateiconcache.c:1655
msgid "Don’t include image data in the cache"
msgstr "Ðе враховувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² кеші"
-#: tools/updateiconcache.c:1660
+#: tools/updateiconcache.c:1656
msgid "Include image data in the cache"
msgstr "Враховувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² кеші"
-#: tools/updateiconcache.c:1661
+#: tools/updateiconcache.c:1657
msgid "Output a C header file"
msgstr "Видавати файл заголовків на мові C"
-#: tools/updateiconcache.c:1662
+#: tools/updateiconcache.c:1658
msgid "Turn off verbose output"
msgstr "Вимкнути розширений вивід"
-#: tools/updateiconcache.c:1663
+#: tools/updateiconcache.c:1659
msgid "Validate existing icon cache"
msgstr "Перевірити наÑвний кеш піктограм"
-#: tools/updateiconcache.c:1728
+#: tools/updateiconcache.c:1724
#, c-format
msgid "File not found: %s\n"
msgstr "Ðе вдалоÑÑŒ знайти файл: %s\n"
-#: tools/updateiconcache.c:1734
+#: tools/updateiconcache.c:1730
#, c-format
msgid "Not a valid icon cache: %s\n"
msgstr "Ðекоректний піктограма у кеші: %s\n"
-#: tools/updateiconcache.c:1747
+#: tools/updateiconcache.c:1743
#, c-format
msgid "No theme index file.\n"
msgstr "Ðемає файла з індекÑом теми.\n"
-#: tools/updateiconcache.c:1751
+#: tools/updateiconcache.c:1747
#, c-format
msgid ""
"No theme index file in “%sâ€.\n"
@@ -7337,6 +7405,15 @@ msgstr ""
"Якщо ви дійÑно бажаєте Ñтворити тут кеш значків, викориÑтовуйте --ignore-"
"theme-index.\n"
+#~ msgid "Other application…"
+#~ msgstr "Інша програма…"
+
+#~ msgid "Default Application"
+#~ msgstr "Типова програма"
+
+#~ msgid "horizontal"
+#~ msgstr "горизонтальна"
+
#~ msgid "GL rendering is disabled"
#~ msgstr "Ð’Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ GL вимкнено"
@@ -8104,12 +8181,6 @@ msgstr ""
#~ msgid "Dormant"
#~ msgstr "БездіÑльний"
-#~ msgid "Select a File"
-#~ msgstr "Виберіть файл"
-
-#~ msgid "Other…"
-#~ msgstr "Інше…"
-
#~ msgid "C_redits"
#~ msgstr "_ПодÑки"
diff --git a/subprojects/cairo.wrap b/subprojects/cairo.wrap
index d09964e401..fb8aa712b3 100644
--- a/subprojects/cairo.wrap
+++ b/subprojects/cairo.wrap
@@ -1,6 +1,10 @@
[wrap-git]
-directory=cairo
-url=https://gitlab.freedesktop.org/cairo/cairo.git
-push-url=ssh://git@gitlab.freedesktop.org:cairo/cairo.git
-revision=master
-depth=1
+directory = cairo
+url = https://gitlab.freedesktop.org/cairo/cairo.git
+push-url = ssh://git@gitlab.freedesktop.org:cairo/cairo.git
+revision = master
+depth = 1
+
+[provide]
+cairo = libcairo_dep
+cairo-gobject = libcairogobject_dep
diff --git a/subprojects/fribidi.wrap b/subprojects/fribidi.wrap
new file mode 100644
index 0000000000..20ba8edf1d
--- /dev/null
+++ b/subprojects/fribidi.wrap
@@ -0,0 +1,9 @@
+[wrap-git]
+directory = fribidi
+url = https://github.com/fribidi/fribidi.git
+push-url = git@github.com:fribidi/fribidi.git
+revision = master
+depth = 1
+
+[provide]
+dependency_names = fribidi
diff --git a/subprojects/gdk-pixbuf.wrap b/subprojects/gdk-pixbuf.wrap
index 123ea163f9..d3a2db833f 100644
--- a/subprojects/gdk-pixbuf.wrap
+++ b/subprojects/gdk-pixbuf.wrap
@@ -1,6 +1,10 @@
[wrap-git]
-directory=gdk-pixbuf
-url=https://gitlab.gnome.org/GNOME/gdk-pixbuf.git
-push-url=ssh://git@gitlab.gnome.org:GNOME/gdk-pixbuf.git
-revision=master
-depth=1
+directory = gdk-pixbuf
+url = https://gitlab.gnome.org/GNOME/gdk-pixbuf.git
+push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/gdk-pixbuf.git
+revision = master
+depth = 1
+
+[provide]
+dependency_names = gdk-pixbuf-2.0
+program_names = gdk-pixbuf-query-loaders, gdk-pixbuf-pixdata, gdk-pixbuf-csource, gdk-pixbuf-thumbnailer
diff --git a/subprojects/gi-docgen.wrap b/subprojects/gi-docgen.wrap
index 98cd921182..85c85da16f 100644
--- a/subprojects/gi-docgen.wrap
+++ b/subprojects/gi-docgen.wrap
@@ -1,6 +1,9 @@
[wrap-git]
-directory=gi-docgen
-url=https://gitlab.gnome.org/GNOME/gi-docgen.git
-push-url=ssh://git@gitlab.gnome.org:GNOME/gi-docgen.git
-revision=main
-depth=1
+directory = gi-docgen
+url = https://gitlab.gnome.org/GNOME/gi-docgen.git
+push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/gi-docgen.git
+revision = main
+depth = 1
+
+[provide]
+program_names = gi-docgen
diff --git a/subprojects/glib.wrap b/subprojects/glib.wrap
index c785910d9f..525a37bbf3 100644
--- a/subprojects/glib.wrap
+++ b/subprojects/glib.wrap
@@ -1,6 +1,10 @@
[wrap-git]
-directory=glib
-url=https://gitlab.gnome.org/GNOME/glib.git
-push-url=ssh://git@gitlab.gnome.org:GNOME/glib.git
-revision=main
-depth=1
+directory = glib
+url = https://gitlab.gnome.org/GNOME/glib.git
+push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/glib.git
+revision = main
+depth = 1
+
+[provide]
+dependency_names = gthread-2.0, gobject-2.0, gmodule-no-export-2.0, gmodule-export-2.0, gmodule-2.0, glib-2.0, gio-2.0, gio-windows-2.0, gio-unix-2.0
+program_names = glib-genmarshal, glib-mkenums, glib-compile-schemas, glib-compile-resources, gio-querymodules, gdbus-codegen
diff --git a/subprojects/graphene.wrap b/subprojects/graphene.wrap
index 902095dbd7..e15c661551 100644
--- a/subprojects/graphene.wrap
+++ b/subprojects/graphene.wrap
@@ -1,5 +1,8 @@
[wrap-git]
-directory=graphene
-url=https://github.com/ebassi/graphene.git
-revision=master
-depth=1
+directory = graphene
+url = https://github.com/ebassi/graphene.git
+revision = master
+depth = 1
+
+[provide]
+dependency_names = graphene-1.0, graphene-gobject-1.0
diff --git a/subprojects/harfbuzz.wrap b/subprojects/harfbuzz.wrap
index 10b770d424..9245bfb525 100644
--- a/subprojects/harfbuzz.wrap
+++ b/subprojects/harfbuzz.wrap
@@ -1,6 +1,9 @@
[wrap-git]
-directory=harfbuzz
-url=https://github.com/harfbuzz/harfbuzz.git
-push-url=git@github.com:harfbuzz/harfbuzz.git
-revision=main
-depth=1
+directory = harfbuzz
+url = https://github.com/harfbuzz/harfbuzz.git
+push-url = git@github.com:harfbuzz/harfbuzz.git
+revision = 4.0.0
+depth = 1
+
+[provide]
+harfbuzz = libharfbuzz_dep
diff --git a/subprojects/libcloudproviders.wrap b/subprojects/libcloudproviders.wrap
index baa31bb003..919c70345f 100644
--- a/subprojects/libcloudproviders.wrap
+++ b/subprojects/libcloudproviders.wrap
@@ -1,5 +1,9 @@
[wrap-git]
-directory=libcloudproviders
-url=https://gitlab.gnome.org/World/libcloudproviders.git
-revision=master
-depth=1
+directory = libcloudproviders
+url = https://gitlab.gnome.org/World/libcloudproviders.git
+push-url = ssh://git@ssh.gitlab.gnome.org:World/libcloudproviders.git
+revision = master
+depth = 1
+
+[provide]
+libcloudproviders = libcloudproviders_dep
diff --git a/subprojects/libepoxy.wrap b/subprojects/libepoxy.wrap
index fc5147a22b..245769050a 100644
--- a/subprojects/libepoxy.wrap
+++ b/subprojects/libepoxy.wrap
@@ -1,5 +1,8 @@
[wrap-git]
-directory=libepoxy
-url=https://github.com/anholt/libepoxy.git
-revision=master
-depth=1
+directory = libepoxy
+url = https://github.com/anholt/libepoxy.git
+revision = master
+depth = 1
+
+[provide]
+dependency_names = epoxy
diff --git a/subprojects/pango.wrap b/subprojects/pango.wrap
index 64317f97fe..b75c158b86 100644
--- a/subprojects/pango.wrap
+++ b/subprojects/pango.wrap
@@ -1,6 +1,13 @@
[wrap-git]
-directory=pango
-url=https://gitlab.gnome.org/GNOME/pango.git
-push-url=ssh://git@gitlab.gnome.org:GNOME/pango.git
-revision=main
-depth=1
+directory = pango
+url = https://gitlab.gnome.org/GNOME/pango.git
+push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/pango.git
+revision = main
+depth = 1
+
+[provide]
+pango = libpango_dep
+pangoft2 = libpangoft2_dep
+pangoxft = libpangoxft_dep
+pangowin32 = libpangowin32_dep
+pangocairo = libpangocairo_dep
diff --git a/subprojects/sassc.wrap b/subprojects/sassc.wrap
index edd76c61be..2930f5c1a3 100644
--- a/subprojects/sassc.wrap
+++ b/subprojects/sassc.wrap
@@ -1,5 +1,8 @@
[wrap-git]
-directory=sassc
-url=https://github.com/lazka/sassc.git
-revision=meson
-depth=1
+directory = sassc
+url = https://github.com/lazka/sassc.git
+revision = meson
+depth = 1
+
+[provide]
+program_names = sassc
diff --git a/subprojects/sysprof.wrap b/subprojects/sysprof.wrap
index 99aa36ce87..29dcbdc130 100644
--- a/subprojects/sysprof.wrap
+++ b/subprojects/sysprof.wrap
@@ -1,5 +1,8 @@
[wrap-git]
-directory=sysprof
-url=https://gitlab.gnome.org/GNOME/sysprof.git
-revision=master
-depth=1
+directory = sysprof
+url = https://gitlab.gnome.org/GNOME/sysprof.git
+revision = master
+depth = 1
+
+[provide]
+dependency_names = sysprof-4, sysprof-capture-4, sysprof-ui-4
diff --git a/subprojects/wayland.wrap b/subprojects/wayland.wrap
index 5be67bf491..7dc36737f7 100644
--- a/subprojects/wayland.wrap
+++ b/subprojects/wayland.wrap
@@ -1,8 +1,9 @@
[wrap-git]
-directory=wayland
-url=https://gitlab.freedesktop.org/wayland/wayland.git
-revision=main
-depth=1
+directory = wayland
+url = https://gitlab.freedesktop.org/wayland/wayland.git
+push-url = git@gitlab.freedesktop.org:wayland/wayland
+revision = main
+depth = 1
[provide]
dependency_names = wayland-client, wayland-egl
diff --git a/tests/animated-resizing.c b/tests/animated-resizing.c
index bf7a0b68c4..77f21ea9a8 100644
--- a/tests/animated-resizing.c
+++ b/tests/animated-resizing.c
@@ -218,7 +218,7 @@ main(int argc, char **argv)
G_CALLBACK (on_map), NULL);
on_frame (0.);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/animated-revealing.c b/tests/animated-revealing.c
index 5e5f666a53..424c04ad8b 100644
--- a/tests/animated-revealing.c
+++ b/tests/animated-revealing.c
@@ -80,7 +80,7 @@ main(int argc, char **argv)
}
}
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/listmodel.c b/tests/listmodel.c
index b4a2864dbf..32a4b28335 100644
--- a/tests/listmodel.c
+++ b/tests/listmodel.c
@@ -225,7 +225,7 @@ main (int argc, char *argv[])
g_signal_connect (button, "clicked", G_CALLBACK (remove_some), store);
gtk_grid_attach (GTK_GRID (grid), button, 0, 2, 1, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/motion-compression.c b/tests/motion-compression.c
index b0b1a8edbb..dc918988d0 100644
--- a/tests/motion-compression.c
+++ b/tests/motion-compression.c
@@ -85,7 +85,7 @@ main (int argc, char **argv)
g_signal_connect (window, "destroy",
G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/overlayscroll.c b/tests/overlayscroll.c
index bf6783989b..1dd36b0e24 100644
--- a/tests/overlayscroll.c
+++ b/tests/overlayscroll.c
@@ -105,7 +105,7 @@ main (int argc, char *argv[])
sb2 = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, adj);
gtk_box_append (GTK_BOX (box), sb2);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/scrolling-performance.c b/tests/scrolling-performance.c
index f386c911b7..b813356415 100644
--- a/tests/scrolling-performance.c
+++ b/tests/scrolling-performance.c
@@ -150,7 +150,7 @@ main (int argc, char **argv)
NULL,
NULL);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
g_signal_connect (window, "destroy",
G_CALLBACK (quit_cb), &done);
diff --git a/tests/showrendernode.c b/tests/showrendernode.c
index 9d145e6a82..c23d49b75b 100644
--- a/tests/showrendernode.c
+++ b/tests/showrendernode.c
@@ -283,7 +283,7 @@ main (int argc, char **argv)
MAX (500, node_bounds.size.height));
g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/simple.c b/tests/simple.c
index 062afdc9fa..a3068ee5a9 100644
--- a/tests/simple.c
+++ b/tests/simple.c
@@ -59,7 +59,7 @@ main (int argc, char *argv[])
gtk_window_set_child (GTK_WINDOW (window), button);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/syncscroll.c b/tests/syncscroll.c
index 5d724dca64..9e4a0020de 100644
--- a/tests/syncscroll.c
+++ b/tests/syncscroll.c
@@ -66,7 +66,7 @@ main (int argc, char *argv[])
gtk_box_append (GTK_BOX (box), sb);
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testaccel.c b/tests/testaccel.c
index 9dd7abbfb4..b8008a7f53 100644
--- a/tests/testaccel.c
+++ b/tests/testaccel.c
@@ -127,7 +127,7 @@ main (int argc, char **argv)
dialog = key_test ();
- gtk_widget_show (dialog);
+ gtk_window_present (GTK_WINDOW (dialog));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testadjustsize.c b/tests/testadjustsize.c
index 6b0997d4fc..27101ed490 100644
--- a/tests/testadjustsize.c
+++ b/tests/testadjustsize.c
@@ -96,7 +96,7 @@ open_test_window (void)
gtk_grid_attach (GTK_GRID (grid), test_widgets[i], i % 3, i / 3, 1, 1);
}
- gtk_widget_show (test_window);
+ gtk_window_present (GTK_WINDOW (test_window));
}
static void
@@ -163,7 +163,7 @@ open_control_window (void)
gtk_box_append (GTK_BOX (box), toggle);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
#define TEST_WIDGET(outer) (gtk_overlay_get_child (GTK_OVERLAY (gtk_overlay_get_child (GTK_OVERLAY (outer)))))
@@ -268,7 +268,7 @@ open_alignment_window (void)
}
}
- gtk_widget_show (test_window);
+ gtk_window_present (GTK_WINDOW (test_window));
}
static GtkWidget*
@@ -318,7 +318,7 @@ open_margin_window (void)
gtk_box_append (GTK_BOX (box), child);
}
- gtk_widget_show (test_window);
+ gtk_window_present (GTK_WINDOW (test_window));
}
static void
diff --git a/tests/testappchooser.c b/tests/testappchooser.c
index 09a856d561..c2d6f587d1 100644
--- a/tests/testappchooser.c
+++ b/tests/testappchooser.c
@@ -124,7 +124,7 @@ display_dialog (void)
if (dialog == NULL)
prepare_dialog ();
- gtk_widget_show (dialog);
+ gtk_window_present (GTK_WINDOW (dialog));
}
static void
@@ -253,7 +253,7 @@ main (int argc, char **argv)
gtk_window_set_child (GTK_WINDOW (toplevel), grid);
- gtk_widget_show (toplevel);
+ gtk_window_present (GTK_WINDOW (toplevel));
g_signal_connect (toplevel, "destroy", G_CALLBACK (quit_cb), &done);
while (!done)
diff --git a/tests/testappchooserbutton.c b/tests/testappchooserbutton.c
index 1ffc062d4a..3172588206 100644
--- a/tests/testappchooserbutton.c
+++ b/tests/testappchooserbutton.c
@@ -147,7 +147,7 @@ main (int argc,
gtk_app_chooser_button_set_active_custom_item (GTK_APP_CHOOSER_BUTTON (button),
CUSTOM_ITEM);
#endif
- gtk_widget_show (toplevel);
+ gtk_window_present (GTK_WINDOW (toplevel));
g_signal_connect (toplevel, "destroy", G_CALLBACK (quit_cb), &done);
diff --git a/tests/testassistant.c b/tests/testassistant.c
index b478128842..b7404a7423 100644
--- a/tests/testassistant.c
+++ b/tests/testassistant.c
@@ -178,7 +178,7 @@ create_simple_assistant (GtkWidget *widget)
}
if (!gtk_widget_get_visible (assistant))
- gtk_widget_show (assistant);
+ gtk_window_present (GTK_WINDOW (assistant));
else
{
gtk_window_destroy (GTK_WINDOW (assistant));
@@ -710,7 +710,7 @@ main (int argc, char *argv[])
gtk_box_append (GTK_BOX (box), button);
}
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testbaseline.c b/tests/testbaseline.c
index 06f362c56f..9e5751e603 100644
--- a/tests/testbaseline.c
+++ b/tests/testbaseline.c
@@ -401,7 +401,7 @@ main (int argc,
}
}
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testblur.c b/tests/testblur.c
index 618862cf1c..a1eb5f1858 100644
--- a/tests/testblur.c
+++ b/tests/testblur.c
@@ -126,7 +126,7 @@ main (int argc, char **argv)
gtk_box_append (GTK_BOX (blur_box), scale);
gtk_window_set_child (GTK_WINDOW (window), blur_box);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testborderdrawing.c b/tests/testborderdrawing.c
index e78f324940..661d2481c9 100644
--- a/tests/testborderdrawing.c
+++ b/tests/testborderdrawing.c
@@ -166,7 +166,7 @@ main (int argc, char **argv)
gtk_box_append (GTK_BOX (box), bottom);
gtk_window_set_child (GTK_WINDOW (window), box);
g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testcalendar.c b/tests/testcalendar.c
index 387731d5a9..b4edcac895 100644
--- a/tests/testcalendar.c
+++ b/tests/testcalendar.c
@@ -314,7 +314,7 @@ create_calendar(void)
gtk_window_set_default_size (GTK_WINDOW (window), 600, 0);
g_signal_connect (window, "close-request", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testcellarea.c b/tests/testcellarea.c
index 212988b610..66341d7ccc 100644
--- a/tests/testcellarea.c
+++ b/tests/testcellarea.c
@@ -249,7 +249,7 @@ simple_cell_area (void)
gtk_window_set_child (GTK_WINDOW (window), hbox);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
/*******************************************************
@@ -455,7 +455,7 @@ focus_cell_area (void)
gtk_window_set_child (GTK_WINDOW (window), hbox);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
@@ -579,7 +579,7 @@ background_area (void)
g_signal_connect (G_OBJECT (widget), "value-changed",
G_CALLBACK (item_padding_changed), iconview);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
diff --git a/tests/testcellrenderertext.c b/tests/testcellrenderertext.c
index fd40a75188..5c5fd814a6 100644
--- a/tests/testcellrenderertext.c
+++ b/tests/testcellrenderertext.c
@@ -295,7 +295,7 @@ main (int argc, char **argv)
gtk_widget_set_vexpand (tree, TRUE);
gtk_box_append (GTK_BOX (vbox), tree);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testcenterbox.c b/tests/testcenterbox.c
index 0b420baea4..f32f443dc3 100644
--- a/tests/testcenterbox.c
+++ b/tests/testcenterbox.c
@@ -42,7 +42,7 @@ main (int argc, char *argv[])
g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testclipboard2.c b/tests/testclipboard2.c
index ed80ffde30..32df2cba95 100644
--- a/tests/testclipboard2.c
+++ b/tests/testclipboard2.c
@@ -452,7 +452,7 @@ main (int argc, char **argv)
get_window_contents (gtk_widget_get_display (window),
alt_display));
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testcolumnview.c b/tests/testcolumnview.c
index 4f5a365f85..6b85251b50 100644
--- a/tests/testcolumnview.c
+++ b/tests/testcolumnview.c
@@ -775,7 +775,7 @@ main (int argc, char *argv[])
g_object_unref (scope);
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
toplevels = gtk_window_get_toplevels ();
while (g_list_model_get_n_items (toplevels))
diff --git a/tests/testcombo.c b/tests/testcombo.c
index 6cfb010bec..063a66ba56 100644
--- a/tests/testcombo.c
+++ b/tests/testcombo.c
@@ -1103,7 +1103,6 @@ main (int argc, char **argv)
gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0);
tmp = gtk_cell_view_new ();
- gtk_widget_show (tmp);
gtk_cell_view_set_model (GTK_CELL_VIEW (tmp), model);
renderer = gtk_cell_renderer_text_new ();
@@ -1298,7 +1297,7 @@ main (int argc, char **argv)
gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 53);
gtk_frame_set_child (GTK_FRAME (tmp), combobox);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testcombochange.c b/tests/testcombochange.c
index 0833e98b47..95f316be2d 100644
--- a/tests/testcombochange.c
+++ b/tests/testcombochange.c
@@ -257,7 +257,7 @@ main (int argc, char **argv)
gtk_widget_set_hexpand (close_button, TRUE);
gtk_box_append (GTK_BOX (content_area), close_button);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
GMainLoop *loop = g_main_loop_new (NULL, FALSE);
diff --git a/tests/testdatatable.c b/tests/testdatatable.c
index bb9f86dc4f..72de5829e4 100644
--- a/tests/testdatatable.c
+++ b/tests/testdatatable.c
@@ -286,7 +286,7 @@ main (int argc, char **argv)
NULL);
}
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
g_signal_connect (window, "destroy",
G_CALLBACK (quit_cb), &done);
diff --git a/tests/testdnd.c b/tests/testdnd.c
index 471ab2cab9..66e3c3c94a 100644
--- a/tests/testdnd.c
+++ b/tests/testdnd.c
@@ -386,7 +386,7 @@ popdown_cb (gpointer data)
{
popdown_timer = 0;
- gtk_widget_hide (popup_window);
+ gtk_widget_set_visible (popup_window, FALSE);
popped_up = FALSE;
return FALSE;
@@ -465,7 +465,7 @@ popup_cb (gpointer data)
}
gtk_window_set_child (GTK_WINDOW (popup_window), grid);
}
- gtk_widget_show (popup_window);
+ gtk_widget_set_visible (popup_window, TRUE);
popped_up = TRUE;
}
@@ -588,7 +588,7 @@ main (int argc, char **argv)
gtk_widget_set_vexpand (button, TRUE);
gtk_grid_attach (GTK_GRID (grid), button, 0, 1, 1, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testdnd2.c b/tests/testdnd2.c
index 591d12fe53..c4b5ffa0ea 100644
--- a/tests/testdnd2.c
+++ b/tests/testdnd2.c
@@ -429,7 +429,7 @@ main (int argc, char *Argv[])
gtk_grid_attach (GTK_GRID (grid), make_image ("dialog-information", CENTER), 1, 3, 1, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testellipsise.c b/tests/testellipsise.c
index e497dd3805..76b4cef6fc 100644
--- a/tests/testellipsise.c
+++ b/tests/testellipsise.c
@@ -153,7 +153,7 @@ main (int argc, char *argv[])
g_signal_connect (combo, "changed", G_CALLBACK (combo_changed_cb), label);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testentrycompletion.c b/tests/testentrycompletion.c
index 8f0253b73b..a29930b59f 100644
--- a/tests/testentrycompletion.c
+++ b/tests/testentrycompletion.c
@@ -411,7 +411,7 @@ main (int argc, char *argv[])
gtk_box_append (GTK_BOX (vbox), entry);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testentryicons.c b/tests/testentryicons.c
index a39b1c573f..25d640f758 100644
--- a/tests/testentryicons.c
+++ b/tests/testentryicons.c
@@ -300,7 +300,7 @@ main (int argc, char **argv)
provider = gtk_css_provider_new ();
gtk_css_provider_load_from_data (provider, cssdata, -1);
gtk_style_context_add_provider_for_display (gdk_display_get_default (), GTK_STYLE_PROVIDER (provider), 800);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testexpand.c b/tests/testexpand.c
index 03b18bebc3..9929c8a3d2 100644
--- a/tests/testexpand.c
+++ b/tests/testexpand.c
@@ -102,7 +102,7 @@ create_box_window (void)
gtk_label_new ("VBox 3 Bottom"));
gtk_window_set_child (GTK_WINDOW (window), box1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -154,7 +154,7 @@ create_grid_window (void)
gtk_grid_attach (GTK_GRID (grid), colorbox, 1, 2, 1, 1);
gtk_window_set_child (GTK_WINDOW (window), grid);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
int
diff --git a/tests/testfilechooser.c b/tests/testfilechooser.c
index 65f15e49d6..b112c22e5b 100644
--- a/tests/testfilechooser.c
+++ b/tests/testfilechooser.c
@@ -105,7 +105,7 @@ set_current_folder (GtkFileChooser *chooser,
GTK_BUTTONS_CLOSE,
"Could not set the folder to %s",
name);
- gtk_widget_show (dialog);
+ gtk_window_present (GTK_WINDOW (dialog));
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy),
NULL);
@@ -142,7 +142,7 @@ set_filename (GtkFileChooser *chooser,
GTK_BUTTONS_CLOSE,
"Could not select %s",
name);
- gtk_widget_show (dialog);
+ gtk_window_present (GTK_WINDOW (dialog));
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy),
NULL);
@@ -203,8 +203,8 @@ static void
unmap_and_remap_cb (GtkButton *button,
GtkFileChooser *chooser)
{
- gtk_widget_hide (GTK_WIDGET (chooser));
- gtk_widget_show (GTK_WIDGET (chooser));
+ gtk_widget_set_visible (GTK_WIDGET (chooser), FALSE);
+ gtk_widget_set_visible (GTK_WIDGET (chooser), TRUE);
}
static void
@@ -367,8 +367,7 @@ main (int argc, char **argv)
if (initial_folder)
set_current_folder (GTK_FILE_CHOOSER (dialog), initial_folder);
- /* show_all() to reveal bugs in composite widget handling */
- gtk_widget_show (dialog);
+ gtk_window_present (GTK_WINDOW (dialog));
/* Extra controls for manipulating the test environment
*/
diff --git a/tests/testflowbox.c b/tests/testflowbox.c
index b672179321..20efb47b86 100644
--- a/tests/testflowbox.c
+++ b/tests/testflowbox.c
@@ -617,7 +617,7 @@ main (int argc, char *argv[])
g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testfontchooserdialog.c b/tests/testfontchooserdialog.c
index 78b70969c7..72388c1845 100644
--- a/tests/testfontchooserdialog.c
+++ b/tests/testfontchooserdialog.c
@@ -163,7 +163,7 @@ main (int argc, char *argv[])
g_signal_connect (toggle, "notify::active", G_CALLBACK (level_changed), font_button);
gtk_box_append (GTK_BOX (box), toggle);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
g_signal_connect (font_button, "notify::font",
G_CALLBACK (notify_font_cb), NULL);
diff --git a/tests/testfontoptions.c b/tests/testfontoptions.c
index 85d95e1ce1..dd348a91d2 100644
--- a/tests/testfontoptions.c
+++ b/tests/testfontoptions.c
@@ -85,7 +85,7 @@ main (int argc, char *argv[])
gtk_combo_box_set_active (GTK_COMBO_BOX (subpixel), 0);
gtk_combo_box_set_active (GTK_COMBO_BOX (hintstyle), 0);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testframe.c b/tests/testframe.c
index d2345b7dd5..c2215db182 100644
--- a/tests/testframe.c
+++ b/tests/testframe.c
@@ -100,7 +100,7 @@ int main (int argc, char **argv)
g_signal_connect (widget, "value-changed", G_CALLBACK (spin_xalign_cb), frame);
gtk_grid_attach (grid, widget, 1, 0, 1, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testfullscreen.c b/tests/testfullscreen.c
index 3adc82310f..ac266aee39 100644
--- a/tests/testfullscreen.c
+++ b/tests/testfullscreen.c
@@ -82,7 +82,7 @@ main (int argc, char *argv[])
g_signal_connect (button, "clicked", G_CALLBACK (remove_fullscreen_cb), NULL);
gtk_box_append (GTK_BOX (vbox), button);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testgaction.c b/tests/testgaction.c
index ef02e39f18..b85c107684 100644
--- a/tests/testgaction.c
+++ b/tests/testgaction.c
@@ -195,7 +195,7 @@ int main (int argc, char **argv)
gtk_window_set_child (GTK_WINDOW (window), box);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
return 0;
diff --git a/tests/testglarea.c b/tests/testglarea.c
index 5c8ab927f9..5805836d2c 100644
--- a/tests/testglarea.c
+++ b/tests/testglarea.c
@@ -444,7 +444,7 @@ main (int argc, char *argv[])
gtk_box_append (GTK_BOX (box), button);
g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_destroy), window);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testglblending.c b/tests/testglblending.c
index 01fb874bed..89c9faee73 100644
--- a/tests/testglblending.c
+++ b/tests/testglblending.c
@@ -85,7 +85,7 @@ main (int argc, char *argv[])
gtk_widget_set_size_request (spinner, 50, 50);
gtk_fixed_put (GTK_FIXED (fixed), spinner, 110, 150);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testgmenu.c b/tests/testgmenu.c
index 009b2b29dd..421682623c 100644
--- a/tests/testgmenu.c
+++ b/tests/testgmenu.c
@@ -693,7 +693,7 @@ main (int argc, char *argv[])
gtk_box_append (GTK_BOX (box), button);
}
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testgrid.c b/tests/testgrid.c
index a311bb69dc..3a5bb92819 100644
--- a/tests/testgrid.c
+++ b/tests/testgrid.c
@@ -85,7 +85,7 @@ simple_grid (void)
g_assert (gtk_grid_get_child_at (GTK_GRID (grid), -1, 0) == test6);
g_assert (gtk_grid_get_child_at (GTK_GRID (grid), -1, 1) == test6);
g_assert (gtk_grid_get_child_at (GTK_GRID (grid), -1, 2) == NULL);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -131,7 +131,7 @@ text_grid (void)
gtk_label_set_width_chars (GTK_LABEL (label), 10);
gtk_grid_attach (GTK_GRID (grid), label, 1, 1, 1, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -196,7 +196,7 @@ box_comparison (void)
gtk_box_append (GTK_BOX (vbox), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL));
gtk_box_append (GTK_BOX (vbox), gtk_label_new ("Below"));
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -224,7 +224,7 @@ empty_line (void)
gtk_grid_attach (GTK_GRID (grid), test_widget ("(10, 0)", "green"), 10, 0, 1, 1);
gtk_grid_attach (GTK_GRID (grid), test_widget ("(10, 1)", "magenta"), 10, 1, 1, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -248,7 +248,7 @@ empty_grid (void)
gtk_widget_set_hexpand (child, TRUE);
gtk_widget_set_vexpand (child, TRUE);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
gtk_widget_hide (child);
}
@@ -297,7 +297,7 @@ scrolling (void)
g_free (color);
}
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -406,7 +406,7 @@ insert (void)
g_signal_connect (button, "clicked", G_CALLBACK (insert_cb), window);
gtk_grid_attach (GTK_GRID (g), button, 0, 2, 2, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -455,7 +455,7 @@ spanning_grid (void)
c = test_widget ("7", "cyan");
gtk_grid_attach (GTK_GRID (g), c, 1, 0, 1, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
int
diff --git a/tests/testgridbaseline.c b/tests/testgridbaseline.c
index e96b5fd612..052d67a168 100644
--- a/tests/testgridbaseline.c
+++ b/tests/testgridbaseline.c
@@ -52,7 +52,7 @@ main (int argc, char *argv[])
gtk_grid_attach (GTK_GRID (grid), label3, 0, 1, 1, 1);
gtk_grid_attach (GTK_GRID (grid), label4, 1, 1, 1, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
return 0;
diff --git a/tests/testgrouping.c b/tests/testgrouping.c
index 323ebe4796..16b87557da 100644
--- a/tests/testgrouping.c
+++ b/tests/testgrouping.c
@@ -159,7 +159,7 @@ main (int argc, char **argv)
NULL);
gtk_tree_view_insert_column (GTK_TREE_VIEW (tv), column, 0);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testgtk.c b/tests/testgtk.c
index 7974620f2a..5ab0fee4e9 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -244,7 +244,7 @@ create_alpha_window (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -257,10 +257,7 @@ static void
button_window (GtkWidget *widget,
GtkWidget *button)
{
- if (!gtk_widget_get_visible (button))
- gtk_widget_show (button);
- else
- gtk_widget_hide (button);
+ gtk_widget_set_visible (button, !gtk_widget_get_visible (button));
}
static void
@@ -339,7 +336,7 @@ create_buttons (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -396,7 +393,7 @@ create_toggle_buttons (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -514,7 +511,7 @@ create_check_buttons (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -595,7 +592,7 @@ create_radio_buttons (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -791,7 +788,7 @@ create_statusbar (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -1063,7 +1060,7 @@ static void create_labels (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -1184,7 +1181,7 @@ create_rotated_text (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -1265,7 +1262,7 @@ create_pixbuf (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -1355,7 +1352,7 @@ create_tooltips (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -1413,7 +1410,7 @@ create_image (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -1575,7 +1572,7 @@ create_listbox (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -1609,7 +1606,7 @@ cmw_color (GtkWidget *widget, GtkWidget *parent)
G_CALLBACK (gtk_window_destroy), NULL);
/* wait until destroy calls gtk_main_quit */
- gtk_widget_show (csd);
+ gtk_window_present (GTK_WINDOW (csd));
while (!done)
g_main_context_iteration (NULL, TRUE);
}
@@ -1689,7 +1686,7 @@ create_modal_window (GtkWidget *widget)
G_CALLBACK (cmw_file), window);
/* Show widgets */
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
/* wait until dialog get destroyed */
while (!done)
@@ -1891,7 +1888,7 @@ create_scrolled_windows (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -2079,7 +2076,7 @@ create_entry (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -2114,7 +2111,7 @@ create_expander (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -2685,7 +2682,7 @@ create_spins (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -2993,7 +2990,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
window);
gtk_box_append (GTK_BOX (hbox), button);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
gtk_editable_set_text (GTK_EDITABLE (entry), "arrow");
}
@@ -3039,7 +3036,7 @@ create_color_selection (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -3166,7 +3163,7 @@ create_flipping (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -3209,7 +3206,7 @@ create_font_selection (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -3418,7 +3415,7 @@ create_display_screen (GtkWidget *widget)
G_CALLBACK (screen_display_destroy_diag), window);
g_signal_connect (applyb, "clicked",
G_CALLBACK (screen_display_check), scr_dpy_data);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
/*
@@ -3525,7 +3522,7 @@ create_range_controls (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -3899,7 +3896,7 @@ create_notebook (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -4049,7 +4046,7 @@ create_panes (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -4524,7 +4521,7 @@ create_wmhints (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -4761,7 +4758,7 @@ create_surface_states (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -4976,7 +4973,7 @@ create_window_sizing (GtkWidget *widget)
*/
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -5372,7 +5369,7 @@ create_timeout_test (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -5728,7 +5725,7 @@ create_native_dialogs (GtkWidget *widget)
}
if (!gtk_widget_get_visible (window))
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
}
@@ -5887,7 +5884,7 @@ create_main_window (void)
gtk_box_append (GTK_BOX (box2), button);
gtk_window_set_default_widget (GTK_WINDOW (window), button);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static char *
diff --git a/tests/testheaderbar.c b/tests/testheaderbar.c
index fc7ffa5cda..497dc0c870 100644
--- a/tests/testheaderbar.c
+++ b/tests/testheaderbar.c
@@ -41,7 +41,7 @@ create_regular (GtkApplication *app)
gtk_label_set_wrap (GTK_LABEL (label), TRUE);
gtk_window_set_child (GTK_WINDOW (window), label);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -59,7 +59,7 @@ create_headerbar_as_titlebar (GtkApplication *app)
gtk_label_set_wrap (GTK_LABEL (label), TRUE);
gtk_window_set_child (GTK_WINDOW (window), label);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -82,7 +82,7 @@ create_headerbar_inside_window (GtkApplication *app)
gtk_widget_set_vexpand (label, TRUE);
gtk_box_append (GTK_BOX (box), label);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -130,7 +130,7 @@ create_headerbar_overlay (GtkApplication *app)
gtk_widget_set_vexpand (label, TRUE);
gtk_box_append (GTK_BOX (box), label);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -174,7 +174,7 @@ create_hiding_headerbar (GtkApplication *app)
label = gtk_label_new ("Show headerbar");
gtk_box_append (GTK_BOX (hbox), label);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
static void
@@ -209,7 +209,7 @@ create_fake_headerbar (GtkApplication *app)
gtk_widget_set_vexpand (label, TRUE);
gtk_box_append (GTK_BOX (box), label);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
/* split headerbar */
@@ -414,7 +414,7 @@ on_bookmark_clicked (GtkButton *button, gpointer data)
g_signal_connect (chooser, "response",
G_CALLBACK (gtk_window_destroy), NULL);
- gtk_widget_show (chooser);
+ gtk_window_present (GTK_WINDOW (chooser));
}
static void
@@ -522,7 +522,7 @@ create_technorama (GtkApplication *app)
gtk_action_bar_pack_end (GTK_ACTION_BAR (footer), button);
g_signal_connect (button, "clicked", G_CALLBACK (toggle_fullscreen), window);
gtk_box_append (GTK_BOX (box), footer);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
struct {
@@ -571,7 +571,7 @@ app_activate_cb (GtkApplication *app)
gtk_box_append (GTK_BOX (box), btn);
}
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
int
diff --git a/tests/testheightforwidth.c b/tests/testheightforwidth.c
index a6b79357fc..c66f593495 100644
--- a/tests/testheightforwidth.c
+++ b/tests/testheightforwidth.c
@@ -647,7 +647,7 @@ test_clicked (GtkWidget *button,
g_object_unref (builder);
}
- gtk_widget_show (interface->window);
+ gtk_window_present (GTK_WINDOW (interface->window));
}
@@ -705,7 +705,7 @@ main (int argc, char *argv[])
g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testhover.c b/tests/testhover.c
index e493155eef..a139919221 100644
--- a/tests/testhover.c
+++ b/tests/testhover.c
@@ -117,7 +117,7 @@ test1 (void)
gtk_box_append (GTK_BOX (box), gtk_image_new_from_icon_name ("start-here"));
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), NULL);
}
@@ -129,8 +129,8 @@ enter2_cb (GtkEventController *controller)
{
GtkWidget *box = gtk_event_controller_get_widget (controller);
- gtk_widget_hide (gtk_widget_get_first_child (box));
- gtk_widget_show (gtk_widget_get_last_child (box));
+ gtk_widget_set_visible (gtk_widget_get_first_child (box), FALSE);
+ gtk_widget_set_visible (gtk_widget_get_last_child (box), TRUE);
}
static void
@@ -138,8 +138,8 @@ leave2_cb (GtkEventController *controller)
{
GtkWidget *box = gtk_event_controller_get_widget (controller);
- gtk_widget_show (gtk_widget_get_first_child (box));
- gtk_widget_hide (gtk_widget_get_last_child (box));
+ gtk_widget_set_visible (gtk_widget_get_first_child (box), TRUE);
+ gtk_widget_set_visible (gtk_widget_get_last_child (box), FALSE);
}
static void
@@ -161,9 +161,9 @@ test2 (void)
gtk_box_append (GTK_BOX (box), gtk_image_new_from_icon_name ("start-here"));
gtk_box_append (GTK_BOX (box), gtk_label_new ("HOVER!"));
- gtk_widget_hide (gtk_widget_get_last_child (box));
+ gtk_widget_set_visible (gtk_widget_get_last_child (box), FALSE);
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), NULL);
}
@@ -207,7 +207,7 @@ test3 (void)
gtk_stack_add_named (GTK_STACK (stack), gtk_label_new ("HOVER!"), "enter");
gtk_stack_set_visible_child_name (GTK_STACK (stack), "leave");
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), NULL);
}
@@ -252,7 +252,7 @@ test4 (void)
gtk_fixed_put (GTK_FIXED (fixed), gtk_image_new_from_icon_name ("start-here"), 0, 0);
gtk_fixed_put (GTK_FIXED (fixed), gtk_label_new ("HOVER!"), -1000, -1000);
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), NULL);
}
diff --git a/tests/testiconview-keynav.c b/tests/testiconview-keynav.c
index 254ed6542e..bf0b7828b9 100644
--- a/tests/testiconview-keynav.c
+++ b/tests/testiconview-keynav.c
@@ -261,7 +261,7 @@ main (int argc, char *argv[])
gtk_box_append (GTK_BOX (vbox), views.header2);
gtk_box_append (GTK_BOX (vbox), views.view2);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testiconview.c b/tests/testiconview.c
index b638127cab..26f54455c8 100644
--- a/tests/testiconview.c
+++ b/tests/testiconview.c
@@ -585,7 +585,7 @@ main (int argc, char **argv)
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_paned_set_end_child (GTK_PANED (paned), scrolled_window);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testinfobar.c b/tests/testinfobar.c
index cd751a1748..6c5ac54d6d 100644
--- a/tests/testinfobar.c
+++ b/tests/testinfobar.c
@@ -14,7 +14,7 @@ on_info_bar_response (GtkInfoBar *info_bar,
switch (response_id)
{
case GTK_RESPONSE_CLOSE:
- gtk_widget_hide (GTK_WIDGET (info_bar));
+ gtk_widget_set_visible (GTK_WIDGET (info_bar), FALSE);
break;
case RESPONSE_UNREVEAL:
diff --git a/tests/testinhibitshortcuts.c b/tests/testinhibitshortcuts.c
index 62d59047c5..3c818ef9a5 100644
--- a/tests/testinhibitshortcuts.c
+++ b/tests/testinhibitshortcuts.c
@@ -96,7 +96,7 @@ main (int argc, char *argv[])
g_signal_connect (G_OBJECT (surface), "notify::shortcuts-inhibited",
G_CALLBACK (on_shortcuts_inhibit_change), button);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testkineticscrolling.c b/tests/testkineticscrolling.c
index 9ce50288c8..5096db646c 100644
--- a/tests/testkineticscrolling.c
+++ b/tests/testkineticscrolling.c
@@ -122,7 +122,7 @@ kinetic_scrolling (void)
gtk_window_set_child (GTK_WINDOW (window), grid);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
int
diff --git a/tests/testlevelbar.c b/tests/testlevelbar.c
index 2886d66f7c..e3ace27e3d 100644
--- a/tests/testlevelbar.c
+++ b/tests/testlevelbar.c
@@ -106,7 +106,7 @@ main (int argc, char *argv[])
gtk_box_append (GTK_BOX (box2), sw);
g_signal_connect (sw, "notify::active", G_CALLBACK (toggle), bar);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
diff --git a/tests/testlist.c b/tests/testlist.c
index 435e2250f2..d0372dc243 100644
--- a/tests/testlist.c
+++ b/tests/testlist.c
@@ -362,7 +362,7 @@ main (int argc, char *argv[])
gtk_box_append (GTK_BOX (vbox), button);
g_signal_connect (button, "clicked", G_CALLBACK (visibility_clicked_cb), row3);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testlist2.c b/tests/testlist2.c
index 0a43faf29e..57c3062eee 100644
--- a/tests/testlist2.c
+++ b/tests/testlist2.c
@@ -133,7 +133,7 @@ int main (int argc, char *argv[])
}
g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testlist3.c b/tests/testlist3.c
index 87b8b44b62..d272c4bd5e 100644
--- a/tests/testlist3.c
+++ b/tests/testlist3.c
@@ -177,7 +177,7 @@ main (int argc, char *argv[])
gtk_list_box_insert (GTK_LIST_BOX (list), row, -1);
}
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testlist4.c b/tests/testlist4.c
index 5bf7910ff0..5e0263ab0b 100644
--- a/tests/testlist4.c
+++ b/tests/testlist4.c
@@ -174,7 +174,7 @@ new_window (GApplication *app)
G_CALLBACK (row_without_gaction_activated_cb), label);
/* let the show begin */
- gtk_widget_show (GTK_WIDGET (window));
+ gtk_window_present (GTK_WINDOW (window));
}
static void
diff --git a/tests/testlistview-animating.c b/tests/testlistview-animating.c
index 9554f6fc97..7c25180a0f 100644
--- a/tests/testlistview-animating.c
+++ b/tests/testlistview-animating.c
@@ -178,7 +178,7 @@ main (int argc,
g_timeout_add (100, do_stuff, store);
g_timeout_add_seconds (3, revert_sort, sorter);
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
toplevels = gtk_window_get_toplevels ();
while (g_list_model_get_n_items (toplevels))
diff --git a/tests/testlistview.c b/tests/testlistview.c
index 47e54e1023..2ceb672169 100644
--- a/tests/testlistview.c
+++ b/tests/testlistview.c
@@ -647,7 +647,7 @@ main (int argc, char *argv[])
g_object_unref (selectionmodel);
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
toplevels = gtk_window_get_toplevels ();
while (g_list_model_get_n_items (toplevels))
diff --git a/tests/testlockbutton.c b/tests/testlockbutton.c
index 88665bc3b8..67bcb45853 100644
--- a/tests/testlockbutton.c
+++ b/tests/testlockbutton.c
@@ -263,8 +263,8 @@ main (int argc, char *argv[])
gtk_box_append (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), content);
gtk_box_append (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), button);
- gtk_widget_show (window);
- gtk_widget_show (dialog);
+ gtk_window_present (GTK_WINDOW (window));
+ gtk_window_present (GTK_WINDOW (dialog));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testlogout.c b/tests/testlogout.c
index bf05fae7d1..529bd265a7 100644
--- a/tests/testlogout.c
+++ b/tests/testlogout.c
@@ -127,7 +127,7 @@ activate (GtkApplication *app,
gtk_grid_set_row_spacing (GTK_GRID (grid), 6);
gtk_grid_set_column_spacing (GTK_GRID (grid), 6);
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
gtk_application_add_window (app, GTK_WINDOW (win));
}
diff --git a/tests/testmenubutton.c b/tests/testmenubutton.c
index 8fb8431a1d..52ef96bd2e 100644
--- a/tests/testmenubutton.c
+++ b/tests/testmenubutton.c
@@ -115,7 +115,7 @@ int main (int argc, char **argv)
gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), G_MENU_MODEL (menu));
gtk_grid_attach (GTK_GRID (grid), button, 1, row++, 1, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testmodelbutton.c b/tests/testmodelbutton.c
index 3bf057648b..027e36a278 100644
--- a/tests/testmodelbutton.c
+++ b/tests/testmodelbutton.c
@@ -77,7 +77,7 @@ on_application_activate (GApplication *gapplication,
widget = gtk_window_new ();
gtk_box_append (GTK_BOX (widget), box);
- gtk_widget_show (widget);
+ gtk_window_present (GTK_WINDOW (widget))
gtk_application_add_window (GTK_APPLICATION (application), GTK_WINDOW (widget));
}
diff --git a/tests/testnotebookdnd.c b/tests/testnotebookdnd.c
index 5bb1ce4458..85ec062af8 100644
--- a/tests/testnotebookdnd.c
+++ b/tests/testnotebookdnd.c
@@ -75,7 +75,7 @@ window_creation_function (GtkNotebook *source_notebook,
gtk_window_set_child (GTK_WINDOW (window), notebook);
gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
return GTK_NOTEBOOK (notebook);
}
@@ -230,7 +230,6 @@ create_notebook_with_notebooks (const char **labels,
GtkPositionType pos)
{
GtkWidget *notebook, *title, *page;
- int count = 0;
notebook = gtk_notebook_new ();
g_signal_connect (notebook, "create-window",
@@ -251,7 +250,6 @@ create_notebook_with_notebooks (const char **labels,
gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (notebook), page, TRUE);
gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (notebook), page, TRUE);
- count++;
labels++;
}
@@ -322,7 +320,7 @@ main (int argc, char *argv[])
g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testoutsetshadowdrawing.c b/tests/testoutsetshadowdrawing.c
index f619d97e3d..ad79a9a25f 100644
--- a/tests/testoutsetshadowdrawing.c
+++ b/tests/testoutsetshadowdrawing.c
@@ -165,7 +165,7 @@ main (int argc, char **argv)
gtk_box_append (GTK_BOX (box), bottom);
gtk_window_set_child (GTK_WINDOW (window), box);
g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testoverlay.c b/tests/testoverlay.c
index 5f36060f6b..83c551998f 100644
--- a/tests/testoverlay.c
+++ b/tests/testoverlay.c
@@ -538,28 +538,28 @@ main (int argc, char *argv[])
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
win1 = test_nonzerox ();
- gtk_widget_show (win1);
+ gtk_window_present (GTK_WINDOW (win1));
win2 = test_relative ();
- gtk_widget_show (win2);
+ gtk_window_present (GTK_WINDOW (win2));
win3 = test_fullwidth ();
- gtk_widget_show (win3);
+ gtk_window_present (GTK_WINDOW (win3));
win4 = test_scrolling ();
- gtk_widget_show (win4);
+ gtk_window_present (GTK_WINDOW (win4));
win5 = test_builder ();
- gtk_widget_show (win5);
+ gtk_window_present (GTK_WINDOW (win5));
win6 = test_chase ();
- gtk_widget_show (win6);
+ gtk_window_present (GTK_WINDOW (win6));
win7 = test_stacking ();
- gtk_widget_show (win7);
+ gtk_window_present (GTK_WINDOW (win7));
win8 = test_input_stacking ();
- gtk_widget_show (win8);
+ gtk_window_present (GTK_WINDOW (win8));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testoverlaystyleclass.c b/tests/testoverlaystyleclass.c
index 51c24ca7b1..747783972a 100644
--- a/tests/testoverlaystyleclass.c
+++ b/tests/testoverlaystyleclass.c
@@ -123,7 +123,7 @@ main (int argc, char *argv[])
g_print ("\n");
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testplacesview.c b/tests/testplacesview.c
index 50e00e99cc..86bcc6437d 100644
--- a/tests/testplacesview.c
+++ b/tests/testplacesview.c
@@ -28,7 +28,7 @@ main (int argc, char *argv[])
view = gtk_places_view_new ();
gtk_window_set_child (GTK_WINDOW (win), view);
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), &done);
diff --git a/tests/testpopover.c b/tests/testpopover.c
index c7bfc48fc3..863be85830 100644
--- a/tests/testpopover.c
+++ b/tests/testpopover.c
@@ -194,7 +194,7 @@ main (int argc, char *argv[])
g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testrevealer.c b/tests/testrevealer.c
index 0a97193587..f72e04e6e7 100644
--- a/tests/testrevealer.c
+++ b/tests/testrevealer.c
@@ -162,7 +162,7 @@ main (int argc,
gtk_revealer_set_transition_duration (GTK_REVEALER (revealer), 2000);
gtk_grid_attach (GTK_GRID (box), revealer, 3, 4, 1, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testscale.c b/tests/testscale.c
index 2c73d30f1b..27a4bb6e8a 100644
--- a/tests/testscale.c
+++ b/tests/testscale.c
@@ -232,13 +232,13 @@ int main (int argc, char *argv[])
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
g_signal_connect (button, "toggled", G_CALLBACK (trough), NULL);
gtk_box_append (GTK_BOX (box2), button);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
button = gtk_toggle_button_new_with_label ("Extra");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), FALSE);
g_signal_connect (button, "toggled", G_CALLBACK (extra), NULL);
gtk_box_append (GTK_BOX (box2), button);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testscrolledge.c b/tests/testscrolledge.c
index 5661202d1a..3780845413 100644
--- a/tests/testscrolledge.c
+++ b/tests/testscrolledge.c
@@ -58,7 +58,7 @@ add_rows (gpointer data)
{
GtkListBox *list = data;
- gtk_widget_hide (popup);
+ gtk_widget_set_visible (popup, FALSE);
gtk_spinner_stop (GTK_SPINNER (spinner));
populate_list (list);
@@ -75,7 +75,7 @@ edge_overshot (GtkScrolledWindow *sw,
if (pos == GTK_POS_BOTTOM)
{
gtk_spinner_start (GTK_SPINNER (spinner));
- gtk_widget_show (popup);
+ gtk_widget_set_visible (popup, TRUE);
if (add_rows_id == 0)
add_rows_id = g_timeout_add (2000, add_rows, list);
@@ -118,7 +118,7 @@ main (int argc, char *argv[])
gtk_box_append (GTK_BOX (popup), spinner);
gtk_overlay_add_overlay (GTK_OVERLAY (overlay), popup);
- gtk_widget_hide (popup);
+ gtk_widget_set_visible (popup, FALSE);
sw = gtk_scrolled_window_new ();
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
@@ -133,7 +133,7 @@ main (int argc, char *argv[])
g_signal_connect (sw, "edge-overshot", G_CALLBACK (edge_overshot), list);
g_signal_connect (sw, "edge-reached", G_CALLBACK (edge_reached), list);
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testscrolledwindow.c b/tests/testscrolledwindow.c
index 59ce67ac21..834e04cdb8 100644
--- a/tests/testscrolledwindow.c
+++ b/tests/testscrolledwindow.c
@@ -194,7 +194,7 @@ scrollable_policy (void)
g_signal_connect (G_OBJECT (widget), "toggled",
G_CALLBACK (kinetic_scrolling_changed), swindow);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
/* Popover */
popover = gtk_popover_new ();
diff --git a/tests/testselectionmode.c b/tests/testselectionmode.c
index 823663396a..2353befbde 100644
--- a/tests/testselectionmode.c
+++ b/tests/testselectionmode.c
@@ -114,9 +114,9 @@ selection_mode_enter (GtkButton *button, GtkBuilder *builder)
gtk_widget_add_css_class (header, "selection-mode");
gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (header), FALSE);
- gtk_widget_hide (headerbutton);
- gtk_widget_hide (selectbutton);
- gtk_widget_show (cancelbutton);
+ gtk_widget_set_visible (headerbutton, FALSE);
+ gtk_widget_set_visible (selectbutton, FALSE);
+ gtk_widget_set_visible (cancelbutton, TRUE);
gtk_stack_set_visible_child_name (GTK_STACK (titlestack), "selection");
gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (list), FALSE);
@@ -147,9 +147,9 @@ selection_mode_leave (GtkButton *button, GtkBuilder *builder)
gtk_widget_remove_css_class (header, "selection-mode");
gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (header), TRUE);
- gtk_widget_show (headerbutton);
- gtk_widget_show (selectbutton);
- gtk_widget_hide (cancelbutton);
+ gtk_widget_set_visible (headerbutton, TRUE);
+ gtk_widget_set_visible (selectbutton, TRUE);
+ gtk_widget_set_visible (cancelbutton, FALSE);
gtk_stack_set_visible_child_name (GTK_STACK (titlestack), "title");
gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (list), TRUE);
@@ -225,7 +225,7 @@ main (int argc, char *argv[])
g_signal_connect (list, "selected-rows-changed", G_CALLBACK (selected_rows_changed), NULL);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testsensitive.c b/tests/testsensitive.c
index e53d80049d..04ed007c88 100644
--- a/tests/testsensitive.c
+++ b/tests/testsensitive.c
@@ -79,7 +79,7 @@ int main (int argc, char *argv[])
g_object_bind_property (c, "active", w, "sensitive", G_BINDING_BIDIRECTIONAL);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testspinbutton.c b/tests/testspinbutton.c
index 0d21cf3a0b..fd2f4ca2e9 100644
--- a/tests/testspinbutton.c
+++ b/tests/testspinbutton.c
@@ -69,7 +69,7 @@ prepare_window_for_orientation (GtkOrientation orientation)
gtk_box_append (GTK_BOX (mainbox), hbox);
}
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
num_windows++;
}
diff --git a/tests/teststack.c b/tests/teststack.c
index fa15b56004..198e9b5f7e 100644
--- a/tests/teststack.c
+++ b/tests/teststack.c
@@ -258,7 +258,7 @@ main (int argc,
(GCallback)update_forward_button_sensitivity, button);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testswitch.c b/tests/testswitch.c
index 015700d1f4..02b496f92b 100644
--- a/tests/testswitch.c
+++ b/tests/testswitch.c
@@ -170,7 +170,7 @@ int main (int argc, char *argv[])
gtk_window_set_title (GTK_WINDOW (window), "GtkSwitch");
gtk_window_set_default_size (GTK_WINDOW (window), 400, -1);
g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
gtk_window_set_child (GTK_WINDOW (window), vbox);
diff --git a/tests/testtextscroll.c b/tests/testtextscroll.c
index d0787d5557..bd1cb835a4 100644
--- a/tests/testtextscroll.c
+++ b/tests/testtextscroll.c
@@ -184,7 +184,7 @@ main (int argc, char *argv[])
gtk_window_set_child (GTK_WINDOW (window), box);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (1)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtexture.c b/tests/testtexture.c
index 78c5464949..335f847fb8 100644
--- a/tests/testtexture.c
+++ b/tests/testtexture.c
@@ -145,7 +145,7 @@ main (int argc, char **argv)
gtk_window_set_child (GTK_WINDOW (window), view);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtextview.c b/tests/testtextview.c
index ae7d65ec06..cb893d5ea0 100644
--- a/tests/testtextview.c
+++ b/tests/testtextview.c
@@ -201,7 +201,7 @@ main (int argc, char **argv)
gtk_text_view_add_child_at_anchor (GTK_TEXT_VIEW (textview),
button2, anchor);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtextview2.c b/tests/testtextview2.c
index 16353ac366..df06849e33 100644
--- a/tests/testtextview2.c
+++ b/tests/testtextview2.c
@@ -242,7 +242,7 @@ main (int argc, char *argv[])
g_signal_connect (button, "notify::active", G_CALLBACK (toggle_cursor), NULL);
gtk_box_append (GTK_BOX (box2), button);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtooltips.c b/tests/testtooltips.c
index c312ce69b1..f8c512d3ce 100644
--- a/tests/testtooltips.c
+++ b/tests/testtooltips.c
@@ -447,7 +447,7 @@ main (int argc, char *argv[])
gtk_box_append (GTK_BOX (box), button);
/* Done! */
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtransform.c b/tests/testtransform.c
index e14de24ce3..19990038c6 100644
--- a/tests/testtransform.c
+++ b/tests/testtransform.c
@@ -84,7 +84,7 @@ main (int argc, char *argv[])
gtk_window_set_child (GTK_WINDOW (window), fixed2);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtreechanging.c b/tests/testtreechanging.c
index 7845fd8fa1..fe930b3676 100644
--- a/tests/testtreechanging.c
+++ b/tests/testtreechanging.c
@@ -519,7 +519,7 @@ main (int argc,
add (GTK_TREE_VIEW (treeview));
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (sw), treeview);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
g_idle_add (dance, treeview);
diff --git a/tests/testtreecolumns.c b/tests/testtreecolumns.c
index 4fc4fb7410..decb99f185 100644
--- a/tests/testtreecolumns.c
+++ b/tests/testtreecolumns.c
@@ -766,7 +766,7 @@ main (int argc, char *argv[])
swindow = gtk_scrolled_window_new ();
gtk_window_set_child (GTK_WINDOW (window), swindow);
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (swindow), sample_tree_view_top);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
window = gtk_window_new ();
g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
@@ -775,7 +775,7 @@ main (int argc, char *argv[])
swindow = gtk_scrolled_window_new ();
gtk_window_set_child (GTK_WINDOW (window), swindow);
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (swindow), sample_tree_view_bottom);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
/* Set up the main window */
window = gtk_window_new ();
@@ -912,7 +912,7 @@ main (int argc, char *argv[])
g_signal_connect (button, "clicked", G_CALLBACK (add_clicked), left_tree_model);
gtk_box_append (GTK_BOX (hbox), button);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtreecolumnsizing.c b/tests/testtreecolumnsizing.c
index 48a08e26d7..520a4c51e0 100644
--- a/tests/testtreecolumnsizing.c
+++ b/tests/testtreecolumnsizing.c
@@ -243,7 +243,7 @@ main (int argc, char **argv)
gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0);
/* Done */
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtreednd.c b/tests/testtreednd.c
index 5debefaf87..4cd34f6d77 100644
--- a/tests/testtreednd.c
+++ b/tests/testtreednd.c
@@ -128,7 +128,7 @@ main (int argc, char *argv[])
gtk_box_append (GTK_BOX (box), get_dragsource ());
gtk_box_append (GTK_BOX (box), get_droptarget ());
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtreeedit.c b/tests/testtreeedit.c
index 3e70813c32..96f8b114c7 100644
--- a/tests/testtreeedit.c
+++ b/tests/testtreeedit.c
@@ -395,7 +395,7 @@ main (int argc, char **argv)
create_control (cntl_vbox, 3, CNTL_FIXED, &callback[2]);
create_control (cntl_vbox, 4, CNTL_FIXED, &callback[3]);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtreeflow.c b/tests/testtreeflow.c
index 6e2474bc6a..79d37349dc 100644
--- a/tests/testtreeflow.c
+++ b/tests/testtreeflow.c
@@ -180,7 +180,7 @@ main (int argc, char *argv[])
g_signal_connect (button, "clicked", G_CALLBACK (futz), NULL);
g_signal_connect (button, "realize", G_CALLBACK (gtk_widget_grab_focus), NULL);
gtk_window_set_default_size (GTK_WINDOW (window), 300, 400);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
g_timeout_add (1000, (GSourceFunc) futz, NULL);
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtreefocus.c b/tests/testtreefocus.c
index ac29abf903..d97bc89537 100644
--- a/tests/testtreefocus.c
+++ b/tests/testtreefocus.c
@@ -475,7 +475,7 @@ main (int argc, char *argv[])
NULL);
gtk_window_set_default_size (GTK_WINDOW (window),
650, 400);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
window = gtk_window_new ();
gtk_window_set_title (GTK_WINDOW (window), "Model");
@@ -543,7 +543,7 @@ main (int argc, char *argv[])
gtk_window_set_default_size (GTK_WINDOW (window),
650, 400);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtreepos.c b/tests/testtreepos.c
index d3cabaab3f..559f5bd709 100644
--- a/tests/testtreepos.c
+++ b/tests/testtreepos.c
@@ -138,7 +138,7 @@ int main (int argc, char *argv[])
G_CALLBACK (release_event), tv);
gtk_widget_add_controller (tv, GTK_EVENT_CONTROLLER (gesture));
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testtreesort.c b/tests/testtreesort.c
index dac2aafcb0..f5d5c3526c 100644
--- a/tests/testtreesort.c
+++ b/tests/testtreesort.c
@@ -238,7 +238,7 @@ main (int argc, char *argv[])
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolled_window), tree_view);
gtk_window_set_default_size (GTK_WINDOW (window), 400, 400);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
/**
* Second window - GtkTreeModelSort wrapping the GtkTreeStore
@@ -303,7 +303,7 @@ main (int argc, char *argv[])
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolled_window2), tree_view2);
gtk_window_set_default_size (GTK_WINDOW (window2), 400, 400);
- gtk_widget_show (window2);
+ gtk_window_present (GTK_WINDOW (window2));
}
/**
@@ -370,7 +370,7 @@ main (int argc, char *argv[])
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolled_window3), tree_view3);
gtk_window_set_default_size (GTK_WINDOW (window3), 400, 400);
- gtk_widget_show (window3);
+ gtk_window_present (GTK_WINDOW (window3));
}
for (i = 0; data[i].word_1 != NULL; i++)
diff --git a/tests/testtreeview.c b/tests/testtreeview.c
index 6a828c8f90..46300a188f 100644
--- a/tests/testtreeview.c
+++ b/tests/testtreeview.c
@@ -757,7 +757,7 @@ main (int argc,
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (sw), tv);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testverticalcells.c b/tests/testverticalcells.c
index 739e7e6068..8528f5bece 100644
--- a/tests/testverticalcells.c
+++ b/tests/testverticalcells.c
@@ -384,7 +384,7 @@ main (int argc, char **argv)
gtk_window_set_default_size (GTK_WINDOW (window),
800, 400);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testvolumebutton.c b/tests/testvolumebutton.c
index 982d5c285d..593dd6755d 100644
--- a/tests/testvolumebutton.c
+++ b/tests/testvolumebutton.c
@@ -51,7 +51,7 @@ show_error (gpointer data)
g_signal_connect_object (G_OBJECT (dialog),
"response",
G_CALLBACK (response_cb), NULL, 0);
- gtk_widget_show (dialog);
+ gtk_window_present (GTK_WINDOW (dialog));
return G_SOURCE_REMOVE;
}
@@ -84,7 +84,7 @@ main (int argc,
gtk_box_append (GTK_BOX (box), button);
gtk_box_append (GTK_BOX (box), button2);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
g_timeout_add (4000, (GSourceFunc) show_error, window);
while (TRUE)
diff --git a/tests/testwidgetfocus.c b/tests/testwidgetfocus.c
index fa58fad2c1..25d71c7485 100644
--- a/tests/testwidgetfocus.c
+++ b/tests/testwidgetfocus.c
@@ -300,7 +300,7 @@ main(int argc, char **argv)
gtk_window_set_child (GTK_WINDOW (window), widget);
g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testwidgettransforms.c b/tests/testwidgettransforms.c
index 0deca31e4f..c729768589 100644
--- a/tests/testwidgettransforms.c
+++ b/tests/testwidgettransforms.c
@@ -344,7 +344,7 @@ main (int argc, char **argv)
gtk_window_set_default_size ((GtkWindow *)window, 200, 200);
g_signal_connect (window, "close-request", G_CALLBACK (quit_cb), &done);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!done)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testwindowdrag.c b/tests/testwindowdrag.c
index 1c25a906fa..8b60835165 100644
--- a/tests/testwindowdrag.c
+++ b/tests/testwindowdrag.c
@@ -134,7 +134,7 @@ main (int argc, char *argv[])
resize_button (GDK_SURFACE_EDGE_SOUTH_EAST),
2, 2, 1, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (TRUE)
g_main_context_iteration (NULL, TRUE);
diff --git a/tests/testwindowsize.c b/tests/testwindowsize.c
index f280ba2158..e21f06e32b 100644
--- a/tests/testwindowsize.c
+++ b/tests/testwindowsize.c
@@ -83,7 +83,7 @@ show_dialog (void)
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy),
NULL);
- gtk_widget_show (dialog);
+ gtk_window_present (GTK_WINDOW (dialog));
}
static void
@@ -141,7 +141,7 @@ create_window (void)
g_signal_connect (button, "clicked", G_CALLBACK (show_dialog), NULL);
gtk_grid_attach (GTK_GRID (grid), button, 2, 4, 1, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
GMainLoop *loop = g_main_loop_new (NULL, FALSE);
diff --git a/tests/treestoretest.c b/tests/treestoretest.c
index b7f4a622bb..19da9c595a 100644
--- a/tests/treestoretest.c
+++ b/tests/treestoretest.c
@@ -451,7 +451,7 @@ make_window (int view_type)
iter_append (NULL, GTK_TREE_VIEW (tree_view));
}
/* Show it all */
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
}
int
diff --git a/tests/video-timer.c b/tests/video-timer.c
index ed070e111f..1a8a04da05 100644
--- a/tests/video-timer.c
+++ b/tests/video-timer.c
@@ -404,7 +404,7 @@ main(int argc, char **argv)
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), on_draw, NULL, NULL);
gtk_window_set_child (GTK_WINDOW (window), da);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
frame_queue = g_queue_new ();
g_mutex_init (&frame_mutex);
diff --git a/testsuite/a11y/general.c b/testsuite/a11y/general.c
index c459b5029c..006023919d 100644
--- a/testsuite/a11y/general.c
+++ b/testsuite/a11y/general.c
@@ -15,7 +15,7 @@ test_hidden (void)
gtk_test_accessible_assert_state (widget, GTK_ACCESSIBLE_STATE_HIDDEN, FALSE);
- gtk_widget_hide (widget);
+ gtk_widget_set_visible (widget, FALSE);
gtk_test_accessible_assert_state (widget, GTK_ACCESSIBLE_STATE_HIDDEN, TRUE);
diff --git a/testsuite/a11y/meson.build b/testsuite/a11y/meson.build
index 4547b21ba2..c43465efb2 100644
--- a/testsuite/a11y/meson.build
+++ b/testsuite/a11y/meson.build
@@ -1,6 +1,3 @@
-testexecdir = join_paths(installed_test_bindir, 'gtk')
-testdatadir = join_paths(installed_test_datadir, 'gtk')
-
# Available keys for each test:
#
# - 'name': the test name; used for the test and to determine the base
@@ -64,12 +61,11 @@ foreach t : tests
test_extra_suites = t.get('suites', [])
test_timeout = 60
- test_exe = executable(test_name, test_srcs,
+ test_exe = executable(test_name,
+ sources: test_srcs,
c_args: test_cargs + test_extra_cargs,
link_args: test_extra_ldflags,
dependencies: libgtk_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
)
if test_extra_suites.contains('slow')
diff --git a/testsuite/a11y/window.c b/testsuite/a11y/window.c
index 40dcc5a555..50e9b78b25 100644
--- a/testsuite/a11y/window.c
+++ b/testsuite/a11y/window.c
@@ -19,7 +19,7 @@ window_state (void)
gtk_test_accessible_assert_state (window, GTK_ACCESSIBLE_STATE_HIDDEN, FALSE);
- gtk_widget_hide (window);
+ gtk_widget_set_visible (window, FALSE);
gtk_test_accessible_assert_state (window, GTK_ACCESSIBLE_STATE_HIDDEN, TRUE);
diff --git a/testsuite/css/change/meson.build b/testsuite/css/change/meson.build
index 9409f483c1..a75b530731 100644
--- a/testsuite/css/change/meson.build
+++ b/testsuite/css/change/meson.build
@@ -7,17 +7,10 @@ changetest_env.set('GIO_USE_VFS', 'local')
changetest_env.set('GSETTINGS_BACKEND', 'memory')
changetest_env.set('G_ENABLE_DIAGNOSTIC', '0')
-testexecdir = join_paths(installed_test_bindir, 'css', 'change')
-testdatadir = join_paths(installed_test_datadir, 'css')
-
-test_change = executable(
- 'test-css-change',
- 'test-css-change.c',
- '../../testutils.c',
+test_change = executable('test-css-change',
+ sources: ['test-css-change.c', '../../testutils.c'],
c_args: common_cflags,
dependencies: libgtk_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
)
test('change', test_change,
@@ -26,22 +19,3 @@ test('change', test_change,
env: changetest_env,
suite: 'css',
)
-
-test_data = [
- 'test1.css', 'test1.ui', 'test1.nodes',
- 'test2.css', 'test2.ui', 'test2.nodes',
- 'test3.css', 'test3.ui', 'test3.nodes',
- 'test4.css', 'test4.ui', 'test4.nodes',
-]
-
-if get_option('install-tests')
- conf = configuration_data()
- conf.set('libexecdir', gtk_libexecdir)
- configure_file(input: 'change.test.in',
- output: 'change.test',
- configuration: conf,
- install_dir: testdatadir)
-
- install_data(test_data, install_dir: testexecdir)
-
-endif
diff --git a/testsuite/css/change/test-css-change.c b/testsuite/css/change/test-css-change.c
index 9d918ebfb6..93f4df2236 100644
--- a/testsuite/css/change/test-css-change.c
+++ b/testsuite/css/change/test-css-change.c
@@ -98,7 +98,7 @@ load_ui_file (GFile *file, gboolean generate)
output = NULL;
g_signal_connect (window, "map", G_CALLBACK (style_context_changed), &output);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!output)
g_main_context_iteration (NULL, FALSE);
diff --git a/testsuite/css/meson.build b/testsuite/css/meson.build
index 20c031410d..24084d6b05 100644
--- a/testsuite/css/meson.build
+++ b/testsuite/css/meson.build
@@ -13,14 +13,10 @@ subdir('nodes')
subdir('style')
subdir('change')
-testexecdir = join_paths(installed_test_bindir, 'css')
-testdatadir = join_paths(installed_test_datadir, 'css')
-
-test_api = executable('api', 'api.c',
+test_api = executable('api',
+ sources: ['api.c'],
c_args: common_cflags,
dependencies: libgtk_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
)
test('api', test_api,
@@ -30,12 +26,11 @@ test('api', test_api,
suite: 'css',
)
-test_data = executable('data', 'data.c',
+test_data = executable('data',
+ sources: ['data.c'],
c_args: common_cflags,
include_directories: [confinc, ],
dependencies: libgtk_static_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
)
test('data', test_data,
@@ -45,11 +40,10 @@ test('data', test_data,
suite: 'css',
)
-transition = executable('transition', 'transition.c',
+transition = executable('transition',
+ sources: ['transition.c'],
c_args: common_cflags,
dependencies: libgtk_static_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
)
test('transition', transition,
@@ -59,24 +53,6 @@ test('transition', transition,
suite: 'css'
)
-if get_option('install-tests')
- conf = configuration_data()
- conf.set('libexecdir', gtk_libexecdir)
- configure_file(input: 'api.test.in',
- output: 'api.test',
- configuration: conf,
- install_dir: testdatadir,
- )
-
- conf = configuration_data()
- conf.set('libexecdir', gtk_libexecdir)
- configure_file(input: 'data.test.in',
- output: 'data.test',
- configuration: conf,
- install_dir: testdatadir,
- )
-endif
-
if false and get_option ('profiler')
adwaita_env = csstest_env
diff --git a/testsuite/css/nodes/meson.build b/testsuite/css/nodes/meson.build
index eb619cf29c..576b4d8456 100644
--- a/testsuite/css/nodes/meson.build
+++ b/testsuite/css/nodes/meson.build
@@ -7,81 +7,15 @@ nodetest_env.set('GIO_USE_VFS', 'local')
nodetest_env.set('GSETTINGS_BACKEND', 'memory')
nodetest_env.set('G_ENABLE_DIAGNOSTIC', '0')
-testexecdir = join_paths(installed_test_bindir, 'css', 'nodes')
-testdatadir = join_paths(installed_test_datadir, 'css')
+test_nodes = executable('test-css-nodes',
+ sources: ['test-css-nodes.c', '../../testutils.c'],
+ c_args: common_cflags,
+ dependencies: libgtk_dep,
+)
-test_nodes = executable('test-css-nodes', 'test-css-nodes.c', '../../testutils.c',
- c_args: common_cflags,
- install: get_option('install-tests'),
- install_dir: testexecdir,
- dependencies: libgtk_dep)
test('nodes', test_nodes,
args: [ '--tap', '-k' ],
protocol: 'tap',
env: nodetest_env,
suite: 'css',
)
-
-test_data = [
- 'box.ltr.nodes',
- 'box.ltr.ui',
- 'box.rtl.nodes',
- 'box.rtl.ui',
- 'buttons.nodes',
- 'buttons.ui',
- 'checkbutton.ltr.nodes',
- 'checkbutton.ltr.ui',
- 'checkbutton.rtl.nodes',
- 'checkbutton.rtl.ui',
- 'combobox.nodes',
- 'combobox.ui',
- 'entries.nodes',
- 'entries.ui',
- 'expander.ltr.nodes',
- 'expander.ltr.ui',
- 'expander.rtl.nodes',
- 'expander.rtl.ui',
- 'levelbar.ltr.nodes',
- 'levelbar.ltr.ui',
- 'levelbar.rtl.nodes',
- 'levelbar.rtl.ui',
- 'notebook-arrows2.nodes',
- 'notebook-arrows2.ui',
- 'notebook-arrows.nodes',
- 'notebook-arrows.ui',
- 'notebook.bottom.ltr.nodes',
- 'notebook.bottom.ltr.ui',
- 'notebook.bottom.rtl.nodes',
- 'notebook.bottom.rtl.ui',
- 'notebook.left.ltr.nodes',
- 'notebook.left.ltr.ui',
- 'notebook.left.rtl.nodes',
- 'notebook.left.rtl.ui',
- 'notebook.right.ltr.nodes',
- 'notebook.right.ltr.ui',
- 'notebook.right.rtl.nodes',
- 'notebook.right.rtl.ui',
- 'notebook.top.ltr.nodes',
- 'notebook.top.ltr.ui',
- 'notebook.top.rtl.nodes',
- 'notebook.top.rtl.ui',
- 'paned.ltr.nodes',
- 'paned.ltr.ui',
- 'paned.rtl.nodes',
- 'paned.rtl.ui',
- 'progressbar.nodes',
- 'progressbar.ui',
- 'scale.nodes',
- 'scale.ui',
-]
-
-if get_option('install-tests')
- conf = configuration_data()
- conf.set('libexecdir', gtk_libexecdir)
- configure_file(input: 'nodes.test.in',
- output: 'nodes.test',
- configuration: conf,
- install_dir: testdatadir)
-
- install_data(test_data, install_dir: testexecdir)
-endif
diff --git a/testsuite/css/nodes/test-css-nodes.c b/testsuite/css/nodes/test-css-nodes.c
index 038f9daf58..67bd2429aa 100644
--- a/testsuite/css/nodes/test-css-nodes.c
+++ b/testsuite/css/nodes/test-css-nodes.c
@@ -86,7 +86,7 @@ load_ui_file (GFile *file, gboolean generate)
output = NULL;
g_signal_connect (window, "map", G_CALLBACK (style_context_changed), &output);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!output)
g_main_context_iteration (NULL, FALSE);
diff --git a/testsuite/css/parser/meson.build b/testsuite/css/parser/meson.build
index d0fdd0d9a9..b419c29865 100644
--- a/testsuite/css/parser/meson.build
+++ b/testsuite/css/parser/meson.build
@@ -1,11 +1,8 @@
-testexecdir = join_paths(installed_test_bindir, 'css', 'parser')
-testdatadir = join_paths(installed_test_datadir, 'css')
-
-test_parser = executable('test-css-parser', 'test-css-parser.c', '../../testutils.c',
- c_args: common_cflags,
- install: get_option('install-tests'),
- install_dir: testexecdir,
- dependencies: libgtk_dep)
+test_parser = executable('test-css-parser',
+ sources: ['test-css-parser.c', '../../testutils.c'],
+ c_args: common_cflags,
+ dependencies: libgtk_dep,
+)
test_data = [
'animation-crash-3.12.css',
@@ -537,15 +534,3 @@ foreach testname : test_data
suite: 'css')
endif
endforeach
-
-if get_option('install-tests')
- conf = configuration_data()
- conf.set('libexecdir', gtk_libexecdir)
- configure_file(input: 'parser.test.in',
- output: 'parser.test',
- configuration: conf,
- install_dir: testdatadir)
-
- install_data(test_data, install_dir: testexecdir)
-
-endif
diff --git a/testsuite/css/style/meson.build b/testsuite/css/style/meson.build
index 3228049499..ef703d7994 100644
--- a/testsuite/css/style/meson.build
+++ b/testsuite/css/style/meson.build
@@ -7,73 +7,21 @@ styletest_env.set('GIO_USE_VFS', 'local')
styletest_env.set('GSETTINGS_BACKEND', 'memory')
styletest_env.set('G_ENABLE_DIAGNOSTIC', '0')
-testexecdir = join_paths(installed_test_bindir, 'css', 'style')
-testdatadir = join_paths(installed_test_datadir, 'css')
-
cssresources = gnome.compile_resources(
'cssresources',
'test-css-style.gresource.xml',
source_dir: '.',
)
-test_style = executable(
- 'test-css-style',
- 'test-css-style.c',
- '../../testutils.c',
- cssresources,
+test_style = executable('test-css-style',
+ sources: ['test-css-style.c', '../../testutils.c', cssresources],
c_args: common_cflags,
dependencies: libgtk_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
)
+
test('style', test_style,
args: [ '--tap', '-k' ],
protocol: 'tap',
env: styletest_env,
suite: 'css',
)
-
-test_data = [
- 'adjacent-states.css',
- 'adjacent-states.nodes',
- 'adjacent-states.ui',
- 'bloomfilter-not.css',
- 'bloomfilter-not.nodes',
- 'bloomfilter-not.ui',
- 'colornames.css',
- 'colornames.nodes',
- 'colornames.ui',
- 'currentcolor.css',
- 'currentcolor.nodes',
- 'currentcolor.ui',
- 'font.css',
- 'font.nodes',
- 'font.ui',
- 'gradient.css',
- 'gradient.nodes',
- 'gradient.ui',
- 'gtk.css',
- 'inherit.css',
- 'inherit.nodes',
- 'inherit.ui',
- 'label.css',
- 'label.nodes',
- 'label.ui',
- 'misc.css',
- 'misc.nodes',
- 'misc.ui',
- 'nth-child.css',
- 'nth-child.nodes',
- 'nth-child.ui',
-]
-
-if get_option('install-tests')
- conf = configuration_data()
- conf.set('libexecdir', gtk_libexecdir)
- configure_file(input: 'style.test.in',
- output: 'style.test',
- configuration: conf,
- install_dir: testdatadir)
-
- install_data(test_data, install_dir: testexecdir)
-endif
diff --git a/testsuite/css/style/test-css-style.c b/testsuite/css/style/test-css-style.c
index 7875b94838..20e234ce8f 100644
--- a/testsuite/css/style/test-css-style.c
+++ b/testsuite/css/style/test-css-style.c
@@ -115,7 +115,7 @@ load_ui_file (GFile *file, gboolean generate)
output = NULL;
g_signal_connect (window, "map", G_CALLBACK (style_context_changed), &output);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
while (!output)
g_main_context_iteration (NULL, FALSE);
diff --git a/testsuite/gdk/meson.build b/testsuite/gdk/meson.build
index 3236ce7d5d..f3d3a1ba4a 100644
--- a/testsuite/gdk/meson.build
+++ b/testsuite/gdk/meson.build
@@ -1,13 +1,10 @@
-testexecdir = join_paths(installed_test_bindir, 'gdk')
-testdatadir = join_paths(installed_test_datadir, 'gdk')
-
clipboard_client = executable('clipboard-client',
- sources: ['clipboard-client.c'],
- include_directories: [confinc],
- c_args: common_cflags,
- dependencies: [ libgtk_dep ],
- install: get_option('install-tests'),
- install_dir: testexecdir)
+ sources: ['clipboard-client.c'],
+ include_directories: [confinc],
+ c_args: common_cflags,
+ dependencies: [ libgtk_dep ],
+ install: false,
+)
tests = [
{ 'name': 'array' },
@@ -35,8 +32,7 @@ foreach t : tests
sources: '@0@.c'.format(test_name),
c_args: common_cflags,
dependencies: libgtk_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
+ install: false,
)
suites = ['gdk'] + t.get('suites', [])
@@ -63,8 +59,7 @@ foreach t : internal_tests
test_exe = executable(t, '@0@.c'.format(t),
c_args: common_cflags,
dependencies: libgtk_static_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
+ install: false,
)
test(t, test_exe,
@@ -78,28 +73,3 @@ foreach t : internal_tests
suite: 'gdk',
)
endforeach
-
-
-if get_option('install-tests')
- foreach t : tests
- test_name = t.get('name')
- suites = t.get('suites', [])
-
- if suites.contains('flaky') or suites.contains('failing')
- continue
- endif
-
- test_cdata = configuration_data()
- test_cdata.set('testexecdir', testexecdir)
- test_cdata.set('test', test_name)
- configure_file(input: 'gdk.test.in',
- output: '@0@.test'.format(test_name),
- configuration: test_cdata,
- install: true,
- install_dir: testdatadir,
- )
- endforeach
-
- install_subdir('clipboard-data', install_dir: testexecdir)
- install_subdir('image-data', install_dir: testexecdir)
-endif
diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build
index 3c90dd632e..1897562465 100644
--- a/testsuite/gsk/meson.build
+++ b/testsuite/gsk/meson.build
@@ -1,22 +1,12 @@
-testexecdir = join_paths(installed_test_bindir, 'gsk')
-testdatadir = join_paths(installed_test_datadir, 'gsk')
-
-compare_render = executable(
- 'compare-render',
+compare_render = executable('compare-render',
['compare-render.c', '../reftests/reftest-compare.c'],
dependencies: libgtk_dep,
c_args: common_cflags,
- install: get_option('install-tests'),
- install_dir: testexecdir
)
-node_parser = executable(
- 'node-parser',
- ['node-parser.c'],
+node_parser = executable('node-parser', 'node-parser.c',
dependencies: libgtk_dep,
c_args: common_cflags,
- install: get_option('install-tests'),
- install_dir: testexecdir
)
compare_render_tests = [
@@ -84,8 +74,6 @@ compare_render_tests = [
'repeat-texture',
'transform-in-transform',
'transform-in-transform-in-transform',
- 'unaligned-offscreen',
- 'upside-down-label-3d', # not really 3d, but cairo fails it
'rounded-clip-in-clip-3d', # not really 3d, but cairo fails it
]
@@ -98,29 +86,49 @@ informative_render_tests = [
]
renderers = [
- # name exclude term
- [ 'gl', '' ],
- [ 'broadway', '-3d' ],
- [ 'cairo', '-3d' ],
+ { 'name': 'gl' },
+ { 'name': 'broadway', 'exclude_term': '-3d' },
+ { 'name': 'cairo', 'exclude_term': '-3d' },
+]
+
+compare_xfails = [
+ # Both tests fail because of some font rendering issue
+ 'unaligned-offscreen',
+ 'upside-down-label-3d', # not really 3d, but cairo fails it
]
foreach renderer : renderers
- foreach test : compare_render_tests
- if ((renderer[1] == '' or not test.contains(renderer[1])) and
- (renderer[0] != 'broadway' or broadway_enabled))
- test(renderer[0] + ' ' + test, compare_render,
+ foreach testname : compare_render_tests
+
+ renderer_name = renderer.get('name')
+ exclude_term = renderer.get('exclude_term', '')
+
+ suites = [
+ 'gsk',
+ 'gsk-compare',
+ 'gsk-' + renderer_name,
+ 'gsk-compare-' + renderer_name,
+ ]
+
+ if compare_xfails.contains(testname)
+ suites += 'failing'
+ endif
+
+ if ((exclude_term == '' or not testname.contains(exclude_term)) and
+ (renderer_name != 'broadway' or broadway_enabled))
+ test(renderer_name + ' ' + testname, compare_render,
args: [
- '--output', join_paths(meson.current_build_dir(), 'compare', renderer[0]),
- join_paths(meson.current_source_dir(), 'compare', test + '.node'),
- join_paths(meson.current_source_dir(), 'compare', test + '.png'),
+ '--output', join_paths(meson.current_build_dir(), 'compare', renderer_name),
+ join_paths(meson.current_source_dir(), 'compare', testname + '.node'),
+ join_paths(meson.current_source_dir(), 'compare', testname + '.png'),
],
env: [
- 'GSK_RENDERER=' + renderer[0],
+ 'GSK_RENDERER=' + renderer_name,
'GTK_A11Y=test',
'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir())
],
- suite: [ 'gsk', 'gsk-compare', 'gsk-' + renderer[0], 'gsk-compare-' + renderer[0] ],
+ suite: suites,
)
endif
endforeach
@@ -248,11 +256,9 @@ foreach t : tests
test_extra_ldflags = t.get(3, [])
test_exe = executable(test_name, test_srcs,
+ dependencies : libgtk_dep,
c_args : test_cargs + test_extra_cargs + common_cflags,
link_args : test_extra_ldflags,
- dependencies : libgtk_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
)
test(test_name, test_exe,
@@ -281,12 +287,11 @@ foreach t : internal_tests
test_extra_cargs = t.get(2, [])
test_extra_ldflags = t.get(3, [])
- test_exe = executable(test_name, test_srcs,
+ test_exe = executable(test_name,
+ sources: test_srcs,
+ dependencies : libgtk_static_dep,
c_args : test_cargs + test_extra_cargs + common_cflags,
link_args : test_extra_ldflags,
- dependencies : libgtk_static_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
)
test(test_name, test_exe,
diff --git a/testsuite/gtk/displayclose.c b/testsuite/gtk/displayclose.c
index 3cef035d33..6e2fcd0edd 100644
--- a/testsuite/gtk/displayclose.c
+++ b/testsuite/gtk/displayclose.c
@@ -30,7 +30,7 @@ main (int argc, char **argv)
G_CALLBACK (gtk_window_destroy), win);
gtk_window_set_child (GTK_WINDOW (win), but);
- gtk_widget_show (win);
+ gtk_window_present (GTK_WINDOW (win));
gtk_test_widget_wait_for_draw (win);
diff --git a/testsuite/gtk/flowbox.c b/testsuite/gtk/flowbox.c
index a3e63cf4d5..0a7752d5d3 100644
--- a/testsuite/gtk/flowbox.c
+++ b/testsuite/gtk/flowbox.c
@@ -18,7 +18,7 @@ show_and_wait (GtkWidget *widget)
gboolean done = FALSE;
g_timeout_add (500, main_loop_quit_cb, &done);
- gtk_widget_show (widget);
+ gtk_widget_set_visible (widget, TRUE);
while (!done)
g_main_context_iteration (NULL, FALSE);
}
diff --git a/testsuite/gtk/gestures.c b/testsuite/gtk/gestures.c
index 595c79ea8a..b2c5f034d9 100644
--- a/testsuite/gtk/gestures.c
+++ b/testsuite/gtk/gestures.c
@@ -427,7 +427,7 @@ test_phases (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
@@ -479,7 +479,7 @@ test_mixed (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
@@ -538,7 +538,7 @@ test_early_exit (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
@@ -593,7 +593,7 @@ test_claim_capture (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
@@ -640,7 +640,7 @@ test_claim_target (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
@@ -687,7 +687,7 @@ test_claim_bubble (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
@@ -741,7 +741,7 @@ test_early_claim_capture (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
@@ -798,7 +798,7 @@ test_late_claim_capture (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
@@ -857,7 +857,7 @@ test_group (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
@@ -908,10 +908,10 @@ test_gestures_outside_grab (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
D = gtk_window_new ();
- gtk_widget_show (D);
+ gtk_window_present (GTK_WINDOW (D));
str = g_string_new ("");
@@ -968,7 +968,7 @@ test_gestures_inside_grab (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
@@ -1028,7 +1028,7 @@ test_multitouch_on_single (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
@@ -1079,7 +1079,7 @@ test_multitouch_activation (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
@@ -1155,7 +1155,7 @@ test_multitouch_interaction (void)
gtk_box_append (GTK_BOX (A), B);
gtk_box_append (GTK_BOX (B), C);
- gtk_widget_show (A);
+ gtk_window_present (GTK_WINDOW (A));
str = g_string_new ("");
diff --git a/testsuite/gtk/listbox.c b/testsuite/gtk/listbox.c
index fea62ba599..b72c7a48c7 100644
--- a/testsuite/gtk/listbox.c
+++ b/testsuite/gtk/listbox.c
@@ -59,7 +59,6 @@ test_sort (void)
list = GTK_LIST_BOX (gtk_list_box_new ());
g_object_ref_sink (list);
- gtk_widget_show (GTK_WIDGET (list));
for (i = 0; i < 100; i++)
{
@@ -116,7 +115,6 @@ test_selection (void)
list = GTK_LIST_BOX (gtk_list_box_new ());
g_object_ref_sink (list);
- gtk_widget_show (GTK_WIDGET (list));
g_assert_cmpint (gtk_list_box_get_selection_mode (list), ==, GTK_SELECTION_SINGLE);
g_assert_null (gtk_list_box_get_selected_row (list));
@@ -204,7 +202,6 @@ test_multi_selection (void)
list = GTK_LIST_BOX (gtk_list_box_new ());
g_object_ref_sink (list);
- gtk_widget_show (GTK_WIDGET (list));
g_assert_cmpint (gtk_list_box_get_selection_mode (list), ==, GTK_SELECTION_SINGLE);
g_assert_null (gtk_list_box_get_selected_rows (list));
@@ -318,7 +315,6 @@ test_filter (void)
list = GTK_LIST_BOX (gtk_list_box_new ());
g_object_ref_sink (list);
- gtk_widget_show (GTK_WIDGET (list));
g_assert_cmpint (gtk_list_box_get_selection_mode (list), ==, GTK_SELECTION_SINGLE);
g_assert_null (gtk_list_box_get_selected_row (list));
@@ -410,7 +406,6 @@ test_header (void)
list = GTK_LIST_BOX (gtk_list_box_new ());
g_object_ref_sink (list);
- gtk_widget_show (GTK_WIDGET (list));
g_assert_cmpint (gtk_list_box_get_selection_mode (list), ==, GTK_SELECTION_SINGLE);
g_assert_null (gtk_list_box_get_selected_row (list));
diff --git a/testsuite/gtk/meson.build b/testsuite/gtk/meson.build
index 3c107efd2a..73dd1369c3 100644
--- a/testsuite/gtk/meson.build
+++ b/testsuite/gtk/meson.build
@@ -1,6 +1,3 @@
-testexecdir = join_paths(installed_test_bindir, 'gtk')
-testdatadir = join_paths(installed_test_datadir, 'gtk')
-
gtk_tests_export_dynamic_ldflag = []
if cc.get_id() != 'msvc'
@@ -172,8 +169,6 @@ foreach t : tests
c_args: test_cargs + test_extra_cargs,
link_args: test_extra_ldflags,
dependencies: libgtk_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
)
if test_extra_suites.contains('slow')
@@ -202,8 +197,6 @@ foreach t : internal_tests
c_args: test_cargs + test_extra_cargs,
link_args: test_extra_ldflags,
dependencies: libgtk_static_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
)
if test_extra_suites.contains('slow')
@@ -222,10 +215,8 @@ endforeach
# FIXME: if objc autotestkeywords_CPPFLAGS += -DHAVE_OBJC=1 -x objective-c++
if add_languages('cpp', required: false, native: false)
test_exe = executable('autotestkeywords',
- sources: 'autotestkeywords.cc',
+ sources: ['autotestkeywords.cc'],
dependencies: libgtk_dep,
- install: get_option('install-tests'),
- install_dir: testexecdir,
)
test('c++ keywords', test_exe,
args: [ '--tap', '-k' ],
@@ -233,16 +224,6 @@ if add_languages('cpp', required: false, native: false)
env: test_env,
suite: 'gtk',
)
- if get_option('install-tests')
- conf = configuration_data()
- conf.set('testexecdir', testexecdir)
- conf.set('test', 'autotestkeywords')
- configure_file(input: 'gtk.test.in',
- output: 'autotestkeywords.test',
- configuration: conf,
- install_dir: testdatadir,
- )
- endif
endif
@@ -268,13 +249,10 @@ focus_chain_tests = [
#[ 'widget-factory3', 'tab-backward' ],
]
-focus_chain = executable(
- 'test-focus-chain',
+focus_chain = executable('test-focus-chain',
sources: ['test-focus-chain.c', '../testutils.c'],
dependencies: libgtk_dep,
c_args: common_cflags,
- install: get_option('install-tests'),
- install_dir: testexecdir
)
foreach test : focus_chain_tests
@@ -296,30 +274,6 @@ test('potfiles', make_pot,
workdir: meson.project_source_root(),
suite: ['gtk', 'translations' ])
-if get_option('install-tests')
- foreach t : tests
- test_name = t.get('name')
- suites = t.get('suites', [])
-
- if suites.contains('flaky') or suites.contains('failing')
- continue
- endif
-
- conf = configuration_data()
- conf.set('testexecdir', testexecdir)
- conf.set('test', test_name)
- configure_file(input: 'gtk.test.in',
- output: '@0@.test'.format(test_name),
- configuration: conf,
- install_dir: testdatadir,
- )
- endforeach
-
- install_subdir('icons', install_dir: testexecdir)
- install_subdir('icons2', install_dir: testexecdir)
- install_subdir('ui', install_dir: testexecdir)
-endif
-
if false and get_option ('profiler')
performance_env = test_env
diff --git a/testsuite/gtk/templates.c b/testsuite/gtk/templates.c
index aa3c95f9b3..6de199ac52 100644
--- a/testsuite/gtk/templates.c
+++ b/testsuite/gtk/templates.c
@@ -42,7 +42,7 @@ show_and_wait (GtkWidget *widget)
gboolean done = FALSE;
g_timeout_add (500, main_loop_quit_cb, &done);
- gtk_widget_show (widget);
+ gtk_widget_set_visible (widget, TRUE);
while (!done)
g_main_context_iteration (NULL, FALSE);
}
diff --git a/testsuite/gtk/test-focus-chain.c b/testsuite/gtk/test-focus-chain.c
index 14418519d4..3846ac525d 100644
--- a/testsuite/gtk/test-focus-chain.c
+++ b/testsuite/gtk/test-focus-chain.c
@@ -79,7 +79,7 @@ generate_focus_chain (GtkWidget *window,
GtkWidget *focus;
int count = 0;
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
/* start without focus */
gtk_window_set_focus (GTK_WINDOW (window), NULL);
@@ -203,7 +203,7 @@ load_ui_file (GFile *ui_file,
g_assert_nonnull (window);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
timeout_handle_id = g_timeout_add (2000,
quit_iteration_loop,
diff --git a/testsuite/gtk/treeview.c b/testsuite/gtk/treeview.c
index 4ddaf65f7c..26ea8edfc8 100644
--- a/testsuite/gtk/treeview.c
+++ b/testsuite/gtk/treeview.c
@@ -215,7 +215,7 @@ test_row_separator_height (void)
NULL);
gtk_window_set_child (GTK_WINDOW (window), tree_view);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
gtk_test_widget_wait_for_draw (window);
diff --git a/testsuite/gtk/window.c b/testsuite/gtk/window.c
index c92c92e03f..a003b3bbaf 100644
--- a/testsuite/gtk/window.c
+++ b/testsuite/gtk/window.c
@@ -96,7 +96,7 @@ test_default_size (void)
g_assert_cmpint (w, ==, 300);
g_assert_cmpint (h, ==, 300);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
done = FALSE;
if (!interactive)
@@ -131,8 +131,8 @@ test_default_size (void)
g_assert_cmpint (h, ==, 300);
/* check that even hide/show does not pull in the new default */
- gtk_widget_hide (window);
- gtk_widget_show (window);
+ gtk_widget_set_visible (window, FALSE);
+ gtk_widget_set_visible (window, TRUE);
done = FALSE;
if (!interactive)
@@ -162,7 +162,7 @@ test_resize_popup (void)
g_assert_cmpint (w, ==, 1);
g_assert_cmpint (h, ==, 1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
done = FALSE;
if (!interactive)
@@ -190,7 +190,7 @@ test_show_hide (void)
window = gtk_window_new ();
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
done = FALSE;
if (!interactive)
@@ -212,7 +212,7 @@ test_show_hide (void)
g_assert_cmpint (w, ==, w1);
g_assert_cmpint (h, ==, h1);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
done = FALSE;
if (!interactive)
diff --git a/testsuite/introspection/api.py b/testsuite/introspection/api.py
index a2feac37ea..9bbbedfe13 100755
--- a/testsuite/introspection/api.py
+++ b/testsuite/introspection/api.py
@@ -14,7 +14,10 @@ if hasattr(os, 'add_dll_directory'):
if path != '' and os.path.isdir(path):
os.add_dll_directory(path)
-import gi
+try:
+ import gi
+except ImportError:
+ sys.exit(77) # skip this test, gi module is not available
gi.require_version('Gtk', '4.0')
diff --git a/testsuite/introspection/meson.build b/testsuite/introspection/meson.build
index c64a0f54d3..a30c687353 100644
--- a/testsuite/introspection/meson.build
+++ b/testsuite/introspection/meson.build
@@ -1,5 +1,3 @@
-py = import('python').find_installation('python3', modules: ['gi'])
-
env = environment()
env.prepend('GI_TYPELIB_PATH',
project_build_root / 'gtk',
diff --git a/testsuite/reftests/meson.build b/testsuite/reftests/meson.build
index 329348d64f..b8e0ef0e64 100644
--- a/testsuite/reftests/meson.build
+++ b/testsuite/reftests/meson.build
@@ -598,6 +598,7 @@ xfails = [
'label-background.ui',
'label-wrap-justify.ui',
]
+
flaky = [
# these tests need a better way to perform delayed actions
# they are not in xfails since they succeed on some platforms
@@ -608,6 +609,10 @@ flaky = [
# to be left enabled. Remove it until somebody figures out
# what is going on there.
'treeview-headers-hidden.ui',
+ # this consistently times out in the ci
+ 'shorthand-entry-border.ui',
+ # blinking cursors and timing issues make this unreliable
+ 'fixed-widget-stacking.ui',
]
reftest_env = environment()
diff --git a/testsuite/reftests/reftest-snapshot.c b/testsuite/reftests/reftest-snapshot.c
index 167311630e..d2ecc0ee65 100644
--- a/testsuite/reftests/reftest-snapshot.c
+++ b/testsuite/reftests/reftest-snapshot.c
@@ -312,7 +312,7 @@ reftest_snapshot_ui_file (const char *ui_file)
g_object_unref (builder);
g_assert_true (window);
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
return snapshot_widget (window);
}
diff --git a/testsuite/tools/meson.build b/testsuite/tools/meson.build
index 582bce6fb8..986c2d6dcc 100644
--- a/testsuite/tools/meson.build
+++ b/testsuite/tools/meson.build
@@ -1,23 +1,12 @@
-testexecdir = join_paths(installed_test_bindir, 'tools')
-testdatadir = join_paths(installed_test_datadir, 'tools')
-
bash = find_program('bash', required : false)
if bash.found()
test_env = environment()
foreach t : ['simplify', 'simplify-3to4', 'validate', 'settings']
- if get_option('install-tests')
- configure_file(output: t,
- input: '@0@.in'.format(t),
- copy: true,
- install_dir: testexecdir,
- )
- else
- configure_file(output: t,
- input: '@0@.in'.format(t),
- copy: true,
- )
- endif
+ configure_file(output: t,
+ input: '@0@.in'.format(t),
+ copy: true,
+ )
test(t, bash,
args: t,
workdir: meson.current_build_dir(),
@@ -34,20 +23,3 @@ if bash.found()
)
endforeach
endif
-
-if get_option('install-tests')
- foreach t : ['simplify', 'settings']
- test_conf = configuration_data()
- test_conf.set('testexecdir', testexecdir)
- test_conf.set('test', t)
- configure_file(output: '@0@.test'.format(t),
- input: 'tools.test.in',
- configuration: test_conf,
- install_dir: testdatadir,
- )
- endforeach
-
- install_subdir('simplify-data', install_dir: testexecdir)
- install_subdir('simplify-data-3to4', install_dir: testexecdir)
- install_subdir('validate-data', install_dir: testexecdir)
-endif