From fab808f92cb3afa2fb39d503615247dc4f3cfffa Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Thu, 14 Feb 2013 13:00:19 +0000 Subject: [PATCH 001/208] wayland: Add basic multiple output support Store the wl_output pointer within the the GdkWaylandMonitor structure. --- gdk/wayland/gdkdisplay-wayland.c | 5 +++-- gdk/wayland/gdkdisplay-wayland.h | 1 - gdk/wayland/gdkscreen-wayland.c | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c index 640e3e900c..ecb0e6491c 100644 --- a/gdk/wayland/gdkdisplay-wayland.c +++ b/gdk/wayland/gdkdisplay-wayland.c @@ -95,6 +95,7 @@ gdk_registry_handle_global(void *data, struct wl_registry *registry, uint32_t id GdkWaylandDisplay *display_wayland = data; GdkDisplay *gdk_display = GDK_DISPLAY_OBJECT (data); struct wl_seat *seat; + struct wl_output *output; if (strcmp(interface, "wl_compositor") == 0) { display_wayland->compositor = @@ -109,9 +110,9 @@ gdk_registry_handle_global(void *data, struct wl_registry *registry, uint32_t id display_wayland->shell = wl_registry_bind(display_wayland->wl_registry, id, &wl_shell_interface, 1); } else if (strcmp(interface, "wl_output") == 0) { - display_wayland->output = + output = wl_registry_bind(display_wayland->wl_registry, id, &wl_output_interface, 1); - _gdk_wayland_screen_add_output(display_wayland->screen, display_wayland->output); + _gdk_wayland_screen_add_output(display_wayland->screen, output); } else if (strcmp(interface, "wl_seat") == 0) { seat = wl_registry_bind(display_wayland->wl_registry, id, &wl_seat_interface, 1); _gdk_wayland_device_manager_add_device (gdk_display->device_manager, diff --git a/gdk/wayland/gdkdisplay-wayland.h b/gdk/wayland/gdkdisplay-wayland.h index fc9042904b..fb284e323c 100644 --- a/gdk/wayland/gdkdisplay-wayland.h +++ b/gdk/wayland/gdkdisplay-wayland.h @@ -61,7 +61,6 @@ struct _GdkWaylandDisplay struct wl_compositor *compositor; struct wl_shm *shm; struct wl_shell *shell; - struct wl_output *output; struct wl_input_device *input_device; struct wl_data_device_manager *data_device_manager; diff --git a/gdk/wayland/gdkscreen-wayland.c b/gdk/wayland/gdkscreen-wayland.c index cf4bd2d4f8..d30cc7c1c9 100644 --- a/gdk/wayland/gdkscreen-wayland.c +++ b/gdk/wayland/gdkscreen-wayland.c @@ -67,6 +67,7 @@ struct _GdkWaylandScreenClass struct _GdkWaylandMonitor { + struct wl_output *output; GdkRectangle geometry; int width_mm; int height_mm; @@ -589,6 +590,7 @@ _gdk_wayland_screen_add_output (GdkScreen *screen, GdkWaylandScreen *screen_wayland = GDK_WAYLAND_SCREEN (screen); GdkWaylandMonitor *monitor = g_new0(GdkWaylandMonitor, 1); + monitor->output = output; g_ptr_array_add(screen_wayland->monitors, monitor); wl_output_add_listener(output, &output_listener, monitor); From 4e1d99994073a0d16d02b6c29474c4700e1d9318 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Thu, 14 Feb 2013 13:28:07 +0000 Subject: [PATCH 002/208] wayland: Add support for output device removal Since we only receive an object id for the removed object we must try and remove that from the list of devices based on that id. --- gdk/wayland/gdkdisplay-wayland.c | 9 +++++++-- gdk/wayland/gdkprivate-wayland.h | 4 ++-- gdk/wayland/gdkscreen-wayland.c | 17 +++++++++++++++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c index ecb0e6491c..24f5ceb550 100644 --- a/gdk/wayland/gdkdisplay-wayland.c +++ b/gdk/wayland/gdkdisplay-wayland.c @@ -125,9 +125,14 @@ gdk_registry_handle_global(void *data, struct wl_registry *registry, uint32_t id } static void -gdk_registry_handle_global_remove(void *data, - struct wl_registry *registry, uint32_t name) +gdk_registry_handle_global_remove(void *data, + struct wl_registry *registry, + uint32_t id) { + GdkWaylandDisplay *display_wayland = data; + + /* We don't know what this item is - try as an output */ + _gdk_wayland_screen_remove_output_by_id (display_wayland->screen, id); } static const struct wl_registry_listener registry_listener = { diff --git a/gdk/wayland/gdkprivate-wayland.h b/gdk/wayland/gdkprivate-wayland.h index 21684d8ba8..a80dd15171 100644 --- a/gdk/wayland/gdkprivate-wayland.h +++ b/gdk/wayland/gdkprivate-wayland.h @@ -146,8 +146,8 @@ GdkWindow *_gdk_wayland_screen_create_root_window (GdkScreen *screen, GdkScreen *_gdk_wayland_screen_new (GdkDisplay *display); void _gdk_wayland_screen_add_output (GdkScreen *scren, struct wl_output *output); -void _gdk_wayland_screen_remove_output (GdkScreen *screen, - struct wl_output *output); +void _gdk_wayland_screen_remove_output_by_id (GdkScreen *screen, + guint32 id); void _gdk_wayland_display_manager_add_display (GdkDisplayManager *manager, GdkDisplay *display); diff --git a/gdk/wayland/gdkscreen-wayland.c b/gdk/wayland/gdkscreen-wayland.c index d30cc7c1c9..b69d783f6c 100644 --- a/gdk/wayland/gdkscreen-wayland.c +++ b/gdk/wayland/gdkscreen-wayland.c @@ -597,7 +597,20 @@ _gdk_wayland_screen_add_output (GdkScreen *screen, } void -_gdk_wayland_screen_remove_output (GdkScreen *screen, - struct wl_output *output) +_gdk_wayland_screen_remove_output_by_id (GdkScreen *screen, + guint32 id) { + GdkWaylandScreen *screen_wayland = GDK_WAYLAND_SCREEN (screen); + int i; + + for (i = 0; i < screen_wayland->monitors->len; i++) + { + GdkWaylandMonitor *monitor = screen_wayland->monitors->pdata[i]; + + if (wl_proxy_get_id ((struct wl_proxy *)monitor->output) == id) + { + g_ptr_array_remove (screen_wayland->monitors, monitor); + break; + } + } } From bff9de1adcb4ddef53d52fb1f296be35c2cda16b Mon Sep 17 00:00:00 2001 From: Anish A Date: Thu, 14 Feb 2013 23:08:33 +0400 Subject: [PATCH 003/208] Updated Malayalam Localization --- po/ml.po | 516 +++++++++++++++++++++++++------------------------------ 1 file changed, 234 insertions(+), 282 deletions(-) diff --git a/po/ml.po b/po/ml.po index e2e9ac229a..6ad496828a 100644 --- a/po/ml.po +++ b/po/ml.po @@ -1,25 +1,26 @@ # translation of gtk+.master.ml.po to # This file is distributed under the same license as the gtk+ package. # Copyright (C) 2003-2008 gtk+'S COPYRIGHT HOLDER. -# # FSF-India , 2003. # Ani Peter , 2006, 2007, 2009, 2012. # Hari Vishnu , 2008. +# Anish A , 2013. msgid "" msgstr "" "Project-Id-Version: gtk+.master.ml\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." -"cgi?product=gtk%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-09-18 11:52+0000\n" -"PO-Revision-Date: 2012-09-20 00:59+0000\n" -"Last-Translator: Ani Peter \n" -"Language-Team: Malayalam \n" -"Language: \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" +"%2b&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-02-07 10:19+0000\n" +"PO-Revision-Date: 2013-02-08 22:58+0530\n" +"Last-Translator: Anish A \n" +"Language-Team: Swatantra Malayalam Computing\n" +"Language: ml\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" #: ../gdk/gdk.c:155 #, c-format @@ -359,15 +360,11 @@ msgid "XF86Launch1" msgstr "XF86Launch1" #: ../gdk/keyname-table.h:4007 -#| msgctxt "Stock label, navigation" -#| msgid "_Forward" msgctxt "keyboard label" msgid "XF86Forward" msgstr "XF86Forward" #: ../gdk/keyname-table.h:4008 -#| msgctxt "Stock label, navigation" -#| msgid "_Back" msgctxt "keyboard label" msgid "XF86Back" msgstr "XF86Back" @@ -459,21 +456,21 @@ msgid_plural "Opening %d Items" msgstr[0] "%d വസ്തു തുറക്കുന്നു" msgstr[1] "%d വസ്തുക്കള്‍ തുറക്കുന്നു" -#: ../gtk/a11y/gtkspinneraccessible.c:40 +#: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" msgstr "സ്പിന്നര്‍" -#: ../gtk/a11y/gtkspinneraccessible.c:41 +#: ../gtk/a11y/gtkspinneraccessible.c:40 msgid "Provides visual indication of progress" msgstr "പുരോഗതിയുടെ കാണുന്ന സൂചിക ലഭ്യമാക്കുന്നു" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:62 msgctxt "light switch widget" msgid "Switch" msgstr "സ്വിച്ച്" -#: ../gtk/a11y/gtkswitchaccessible.c:64 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgid "Switches between on and off states" msgstr "ഓണ്‍, ഓഫ് അവസ്ഥകള്‍ തമ്മില്‍ മാറ്റുക" @@ -502,7 +499,6 @@ msgid "Position on the color wheel." msgstr "കളര്‍ വീലിലുള്ള സ്ഥാനം." #: ../gtk/deprecated/gtkcolorsel.c:464 -#| msgid "_Saturation:" msgid "S_aturation:" msgstr "_സാച്ചുറേഷന്‍:" @@ -593,8 +589,7 @@ msgid "" "The previously-selected color, for comparison to the color you're selecting " "now." msgstr "" -"നിങ്ങള്‍ മുമ്പു് തെരഞ്ഞെടുത്ത നിറം, ഇതു് നിങ്ങള്‍ മുമ്പു് തെരഞ്ഞെടുത്ത നിറവുമായി " -"താരതമ്യപ്പെടുത്തുവാനാണു്." +"നിങ്ങള്‍ മുമ്പു് തെരഞ്ഞെടുത്ത നിറം, ഇതു് നിങ്ങള്‍ മുമ്പു് തെരഞ്ഞെടുത്ത നിറവുമായി താരതമ്യപ്പെടുത്തുവാനാണു്." #: ../gtk/deprecated/gtkcolorsel.c:1088 msgid "The color you've chosen." @@ -619,7 +614,6 @@ msgstr "" #: ../gtk/deprecated/gtkcolorseldialog.c:201 ../gtk/gtkappchooserdialog.c:574 #: ../gtk/gtkcolorchooserdialog.c:150 ../gtk/gtkfontchooserdialog.c:174 #: ../gtk/gtkprinteroptionwidget.c:550 -#| msgid "_Selection: " msgid "_Select" msgstr "_തെരഞ്ഞെടുക്കുക:" @@ -689,30 +683,27 @@ msgid "Could not show link" msgstr "കണ്ണി കാണിക്കുവാന്‍ സാധ്യമായില്ല" #: ../gtk/gtkaboutdialog.c:1017 -#| msgctxt "keyboard label" -#| msgid "Home" -msgid "Homepage" -msgstr "ആസ്ഥാനതാള്‍" +msgid "Website" +msgstr "വെബ് വിലാസം" #: ../gtk/gtkaboutdialog.c:1071 #, c-format msgid "About %s" msgstr "%s സംബന്ധിച്ച്" -#: ../gtk/gtkaboutdialog.c:2399 -#| msgid "C_reate" +#: ../gtk/gtkaboutdialog.c:2398 msgid "Created by" msgstr "ഉണ്ടാക്കുന്നതു്" -#: ../gtk/gtkaboutdialog.c:2402 +#: ../gtk/gtkaboutdialog.c:2401 msgid "Documented by" msgstr "സഹായക്കുറിപ്പുകള്‍" -#: ../gtk/gtkaboutdialog.c:2412 +#: ../gtk/gtkaboutdialog.c:2411 msgid "Translated by" msgstr "പരിഭാഷകര്‍" -#: ../gtk/gtkaboutdialog.c:2417 +#: ../gtk/gtkaboutdialog.c:2416 msgid "Artwork by" msgstr "കലാവിരുതുകള്‍" @@ -787,9 +778,8 @@ msgid "Backslash" msgstr "Backslash" #: ../gtk/gtkappchooserbutton.c:290 -#| msgid "Application" -msgid "Other application..." -msgstr "മറ്റു് പ്രയോഗം..." +msgid "Other application…" +msgstr "മറ്റു് പ്രയോഗം…" #: ../gtk/gtkappchooserdialog.c:137 msgid "Failed to look for applications online" @@ -800,18 +790,15 @@ msgid "_Find applications online" msgstr "പ്രയോഗങ്ങള്‍ ഓണ്‍ലൈന്‍ _കണ്ടുപിടിയ്ക്കുക" #: ../gtk/gtkappchooserdialog.c:247 -#| msgid "Could not clear list" msgid "Could not run application" msgstr "പ്രയോഗം പ്രവര്‍ത്തിയ്ക്കുവാന്‍ സാധ്യമായില്ല" #: ../gtk/gtkappchooserdialog.c:260 #, c-format -#| msgid "Could not mount %s" msgid "Could not find '%s'" msgstr "'%s' കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല" #: ../gtk/gtkappchooserdialog.c:263 -#| msgid "Could not show link" msgid "Could not find application" msgstr "പ്രയോഗം കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല" @@ -821,7 +808,7 @@ msgstr "പ്രയോഗം കണ്ടുപിടിയ്ക്കുവ msgid "Select an application to open \"%s\"" msgstr "\"%s\" തുറക്കുന്നതിനായി ഒരു പ്രയോഗം തെരഞ്ഞെടുക്കുക" -#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:654 +#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:657 #, c-format msgid "No applications available to open \"%s\"" msgstr "\"%s\"-നുചിതമായ പ്രയോഗം ലഭ്യമല്ല" @@ -842,41 +829,34 @@ msgid "" "Click \"Show other applications\", for more options, or \"Find applications " "online\" to install a new application" msgstr "" -"കൂടുതല്‍ ഐച്ഛികങ്ങള്‍ക്കായി \"മറ്റു് പ്രയോഗങ്ങള്‍ കാണിയ്ക്കുക\" ക്ലിക്ക് ചെയ്യുക, അല്ലെങ്കില്‍ " -"പുതിയൊരു പ്രയോഗം ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനായി \"ഓണ്‍ലൈനായി പ്രയോഗങ്ങള്‍ " -"കണ്ടുപിടിയ്ക്കുക\"" +"കൂടുതല്‍ ഐച്ഛികങ്ങള്‍ക്കായി \"മറ്റു് പ്രയോഗങ്ങള്‍ കാണിയ്ക്കുക\" ക്ലിക്ക് ചെയ്യുക, അല്ലെങ്കില്‍ പുതിയൊരു " +"പ്രയോഗം ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനായി \"ഓണ്‍ലൈനായി പ്രയോഗങ്ങള്‍ കണ്ടുപിടിയ്ക്കുക\"" #: ../gtk/gtkappchooserdialog.c:492 -#| msgid "Forget password _immediately" msgid "Forget association" msgstr "ബന്ധം മറക്കുക" #: ../gtk/gtkappchooserdialog.c:558 -#| msgid "Show GTK+ Options" msgid "Show other applications" msgstr "മറ്റു് പ്രയോഗങ്ങള്‍ കാണിയ്ക്കുക" -#: ../gtk/gtkappchooserwidget.c:603 -#| msgid "Application" +#: ../gtk/gtkappchooserwidget.c:606 msgid "Default Application" msgstr "സ്വതവേയുള്ള പ്രയോഗം" -#: ../gtk/gtkappchooserwidget.c:741 -#| msgid "Application" +#: ../gtk/gtkappchooserwidget.c:744 msgid "Recommended Applications" msgstr "ഉചിതമായ പ്രയോഗങ്ങള്‍" -#: ../gtk/gtkappchooserwidget.c:756 -#| msgid "Application" +#: ../gtk/gtkappchooserwidget.c:759 msgid "Related Applications" msgstr "ബന്ധമുള്ള പ്രയോഗങ്ങള്‍" -#: ../gtk/gtkappchooserwidget.c:770 -#| msgid "Application" +#: ../gtk/gtkappchooserwidget.c:773 msgid "Other Applications" msgstr "മറ്റു് പ്രയോഗങ്ങള്‍" -#: ../gtk/gtkapplication.c:1558 +#: ../gtk/gtkapplication.c:1557 #, c-format msgid "" "%s cannot quit at this time:\n" @@ -893,32 +873,24 @@ msgid "Application" msgstr "പ്രയോഗം" #: ../gtk/gtkassistant.c:1008 -#| msgctxt "Stock label" -#| msgid "C_onnect" msgid "C_ontinue" msgstr "തു_ടരുക" #: ../gtk/gtkassistant.c:1011 -#| msgctxt "Stock label, navigation" -#| msgid "_Back" msgid "Go _Back" msgstr "_പുറകോട്ട്" #: ../gtk/gtkassistant.c:1015 -#| msgctxt "print operation status" -#| msgid "Finished" msgid "_Finish" msgstr "_പൂര്‍ത്തിയാക്കിയിരിക്കുന്നു" #: ../gtk/gtkbuilder-menus.c:220 #, c-format -#| msgid "Element <%s> is not allowed below <%s>" msgid "Element <%s> not allowed inside <%s>" msgstr "എലമെന്റ് <%s>ഉള്ളില്‍ അനുവദിക്കുന്നതല്ല <%s>" #: ../gtk/gtkbuilder-menus.c:225 #, c-format -#| msgid "Element <%s> is not allowed below <%s>" msgid "Element <%s> not allowed at toplevel" msgstr "എല്ലമെന്റ് <%s> മുകളില്‍ അനുവദിയ്ക്കുന്നില്ല" @@ -1047,9 +1019,9 @@ msgstr "തെറ്റായ " #. * an accelerator when the cell is clicked to change the #. * acelerator. #. -#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:745 -msgid "New accelerator..." -msgstr "പുതിയ ആക്സലറേറ്റര്‍..." +#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 +msgid "New accelerator…" +msgstr "പുതിയ ആക്സലറേറ്റര്‍…" #: ../gtk/gtkcellrendererprogress.c:372 ../gtk/gtkcellrendererprogress.c:462 #, c-format @@ -1077,7 +1049,6 @@ msgstr "ചുവപ്പു് %d%%, പച്ച %d%%, നീല %d%%" #: ../gtk/gtkcolorchooserwidget.c:360 #, c-format -#| msgid "Color" msgid "Color: %s" msgstr "നിറം: %s" @@ -1102,7 +1073,6 @@ msgid "Light Orange" msgstr "ഇളം ഓറഞ്ച്" #: ../gtk/gtkcolorchooserwidget.c:423 -#| msgid "Range" msgctxt "Color name" msgid "Orange" msgstr "ഓറഞ്ചു്" @@ -1178,7 +1148,6 @@ msgid "Light Chocolate" msgstr "ഇളം ചോക്കളേറ്റ്" #: ../gtk/gtkcolorchooserwidget.c:438 -#| msgid "C_ollate" msgctxt "Color name" msgid "Chocolate" msgstr "ചോക്കോളേറ്റ്" @@ -1239,7 +1208,6 @@ msgid "Dark Gray" msgstr "കടും ഗ്രേ" #: ../gtk/gtkcolorchooserwidget.c:463 -#| msgid "Medium" msgctxt "Color name" msgid "Medium Gray" msgstr "ഇടത്തരം ഗ്രേ" @@ -1266,34 +1234,28 @@ msgstr "വെളുപ്പു്" #. translators: label for the custom section in the color chooser #: ../gtk/gtkcolorchooserwidget.c:516 -#| msgid "Custom size" msgid "Custom" msgstr "യഥേഷ്ടമാക്കുക" #: ../gtk/gtkcolorchooserwidget.c:524 -#| msgid "Create Fo_lder" msgid "Create custom color" msgstr "യഥേഷ്ടമുള്ള നിറം തയ്യാറാക്കുക" #: ../gtk/gtkcolorchooserwidget.c:543 #, c-format -#| msgid "Custom %sx%s" msgid "Custom color %d: %s" msgstr "യഥേഷ്ടമുള്ള നിറം %d: %s" #: ../gtk/gtkcoloreditor.c:412 -#| msgid "Color _name:" msgid "Color Name" msgstr "നിറത്തിന്റെ പേരു്" #: ../gtk/gtkcoloreditor.c:457 -#| msgid "_Saturation:" msgctxt "Color channel" msgid "Saturation" msgstr "സാച്ചുറേഷന്‍:" #: ../gtk/gtkcoloreditor.c:463 -#| msgid "_Value:" msgctxt "Color channel" msgid "Value" msgstr "മൂല്യം:" @@ -1309,7 +1271,6 @@ msgid "V" msgstr "V" #: ../gtk/gtkcoloreditor.c:481 ../gtk/gtkcolorscale.c:301 -#| msgid "_Hue:" msgctxt "Color channel" msgid "Hue" msgstr "ഹ്യൂ" @@ -1325,19 +1286,15 @@ msgid "Alpha" msgstr "ആല്‍ഫാ" #: ../gtk/gtkcoloreditor.c:503 -#| msgctxt "paper size" -#| msgid "A0" msgctxt "Color channel" msgid "A" msgstr "A" #: ../gtk/gtkcolorplane.c:438 -#| msgid "Color _name:" msgid "Color Plane" msgstr "കളര്‍ പ്ലെയിന്‍" #: ../gtk/gtkcolorswatch.c:447 -#| msgid "Custom size" msgid "_Customize" msgstr "_യഥേഷ്ടമാക്കുക" @@ -1365,8 +1322,8 @@ msgid "mm" msgstr "mm" #: ../gtk/gtkcustompaperunixdialog.c:605 -msgid "Margins from Printer..." -msgstr "പ്രിന്ററില്‍ നിന്നുള്ള മാര്‍ജിനുകള്‍" +msgid "Margins from Printer…" +msgstr "പ്രിന്ററില്‍ നിന്നുള്ള മാര്‍ജിനുകള്‍…" #: ../gtk/gtkcustompaperunixdialog.c:771 #, c-format @@ -1405,15 +1362,15 @@ msgstr "_വലത്ത്:" msgid "Paper Margins" msgstr "പേപ്പറിനുള്ള മാര്‍ജിനുകള്‍" -#: ../gtk/gtkentry.c:9140 ../gtk/gtktextview.c:8583 +#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8591 msgid "Input _Methods" msgstr "ഇന്‍പുട്ട് _രീതികള്‍" -#: ../gtk/gtkentry.c:9154 ../gtk/gtktextview.c:8597 +#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8605 msgid "_Insert Unicode Control Character" msgstr "_Insert Unicode Control Character" -#: ../gtk/gtkentry.c:10107 +#: ../gtk/gtkentry.c:10094 msgid "Caps Lock is on" msgstr "Caps Lock ഓണ്‍ ആണു്" @@ -1459,11 +1416,10 @@ msgstr "Caps Lock ഓണ്‍ ആണു്" #. * Private Macros * #. * **************** #: ../gtk/gtkfilechooserbutton.c:104 -#| msgid "Select A File" msgid "Select a File" msgstr "ഒരു ഫയല്‍ തെരഞ്ഞെടുക്കുക" -#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1817 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1820 msgid "Desktop" msgstr "പണിയിടം" @@ -1472,30 +1428,30 @@ msgid "(None)" msgstr "(ഒന്നുമില്ല)" #: ../gtk/gtkfilechooserbutton.c:2046 -msgid "Other..." -msgstr "മറ്റുള്ളവ..." +msgid "Other…" +msgstr "മറ്റുളളവ…" #: ../gtk/gtkfilechooserdefault.c:152 msgid "Type name of new folder" msgstr "പുതിയ അറയുടെ പേരു് ടൈപ്പ് ചെയ്യുക" -#: ../gtk/gtkfilechooserdefault.c:968 +#: ../gtk/gtkfilechooserdefault.c:971 msgid "Could not retrieve information about the file" msgstr "ഫയല്‍ സംബന്ധിച്ചുള്ള വിവരം ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:979 +#: ../gtk/gtkfilechooserdefault.c:982 msgid "Could not add a bookmark" msgstr "ഒരു ഓര്‍മ്മക്കുറിപ്പു് ചേര്‍ക്കുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:990 +#: ../gtk/gtkfilechooserdefault.c:993 msgid "Could not remove bookmark" msgstr "ഓര്‍മ്മക്കുറിപ്പു് നീക്കം ചെയ്യുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:1001 +#: ../gtk/gtkfilechooserdefault.c:1004 msgid "The folder could not be created" msgstr "അറ ഉണ്ടാക്കുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:1014 +#: ../gtk/gtkfilechooserdefault.c:1017 msgid "" "The folder could not be created, as a file with the same name already " "exists. Try using a different name for the folder, or rename the file first." @@ -1503,29 +1459,27 @@ msgstr "" "അറ ഉണ്ടാക്കുവാന്‍ സാധ്യമായില്ല, കാരണം ആ പേരില്‍ മറ്റൊരു ഫയല്‍ നിലവിലുണ്ട്. വേറൊരു പേരു് " "ഉപയോഗിക്കുക, അല്ലെങ്കില്‍ ആദ്യം ഫയലിന്റെ പേരു് മാറ്റുക." -#: ../gtk/gtkfilechooserdefault.c:1028 +#: ../gtk/gtkfilechooserdefault.c:1031 msgid "You need to choose a valid filename." msgstr "ശരിയായൊരു ഫയല്‍നാമം തെരഞ്ഞെടുക്കേണ്ടതുണ്ടു്." -#: ../gtk/gtkfilechooserdefault.c:1031 +#: ../gtk/gtkfilechooserdefault.c:1034 #, c-format -#| msgid "Cannot change to folder because it is not local" msgid "Cannot create a file under %s as it is not a folder" msgstr "ഒരു ഫോള്‍ഡര്‍ അല്ലാത്തതിനാല്‍ %s-ല്‍ ഒരു ഫയല്‍ തയ്യാറാക്കുവാന്‍ സാധ്യമല്ല" -#: ../gtk/gtkfilechooserdefault.c:1043 +#: ../gtk/gtkfilechooserdefault.c:1046 msgid "" "You may only select folders. The item that you selected is not a folder; " "try using a different item." msgstr "" -"ഫോള്‍ഡറുകള്‍ മാത്രം തെരഞ്ഞെടുക്കുക. നിങ്ങള്‍ തെരഞ്ഞെടുത്തതു് ഒരു ഫോള്‍ഡറല്ല; " -"വേറൊന്നു് തെരഞ്ഞെടുക്കുക." +"ഫോള്‍ഡറുകള്‍ മാത്രം തെരഞ്ഞെടുക്കുക. നിങ്ങള്‍ തെരഞ്ഞെടുത്തതു് ഒരു ഫോള്‍ഡറല്ല; വേറൊന്നു് തെരഞ്ഞെടുക്കുക." -#: ../gtk/gtkfilechooserdefault.c:1053 +#: ../gtk/gtkfilechooserdefault.c:1056 msgid "Invalid file name" msgstr "തെറ്റായ ഫയല്‍നാമം" -#: ../gtk/gtkfilechooserdefault.c:1063 +#: ../gtk/gtkfilechooserdefault.c:1066 msgid "The folder contents could not be displayed" msgstr "അറയിലുള്ളവ പ്രദര്‍ശിപ്പിക്കുവാന്‍ സാധ്യമായില്ല" @@ -1533,209 +1487,209 @@ msgstr "അറയിലുള്ളവ പ്രദര്‍ശിപ്പി #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1589 +#: ../gtk/gtkfilechooserdefault.c:1592 #, c-format msgid "%1$s on %2$s" msgstr "%1$s, %2$s-ല്‍" -#: ../gtk/gtkfilechooserdefault.c:1738 +#: ../gtk/gtkfilechooserdefault.c:1741 msgid "Search" msgstr "തെരയുക" -#: ../gtk/gtkfilechooserdefault.c:1762 ../gtk/gtkfilechooserdefault.c:4988 +#: ../gtk/gtkfilechooserdefault.c:1765 ../gtk/gtkfilechooserdefault.c:4991 msgid "Recently Used" msgstr "ഏറ്റവും ഒടുവില്‍ ഉപയോഗിച്ച" -#: ../gtk/gtkfilechooserdefault.c:2361 +#: ../gtk/gtkfilechooserdefault.c:2364 msgid "Select which types of files are shown" msgstr "ഏത് തരം ഫയലുകളാണ് കാണിച്ചിട്ടുള്ളത് എന്ന് തെരഞ്ഞെടുക്കുക" -#: ../gtk/gtkfilechooserdefault.c:2720 +#: ../gtk/gtkfilechooserdefault.c:2723 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "ഓര്‍മ്മക്കുറിപ്പിലേയ്ക്കു് '%s' അറ ചേര്‍ക്കുക" -#: ../gtk/gtkfilechooserdefault.c:2764 +#: ../gtk/gtkfilechooserdefault.c:2767 #, c-format msgid "Add the current folder to the bookmarks" msgstr "ഈ അറ ഓര്‍മ്മക്കുറിപ്പിലേയ്ക്കു് ചേര്‍ക്കുക" -#: ../gtk/gtkfilechooserdefault.c:2766 +#: ../gtk/gtkfilechooserdefault.c:2769 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "തെരഞ്ഞെടുത്ത അറകള്‍ ഓര്‍മ്മക്കുറിപ്പിലേയ്ക്കു് ചേര്‍ക്കുക" -#: ../gtk/gtkfilechooserdefault.c:2804 +#: ../gtk/gtkfilechooserdefault.c:2807 #, c-format msgid "Remove the bookmark '%s'" msgstr "'%s' എന്ന ഓര്‍മ്മക്കുറിപ്പു് നീക്കം ചെയ്യുക" -#: ../gtk/gtkfilechooserdefault.c:2806 +#: ../gtk/gtkfilechooserdefault.c:2809 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "'%s' അടയാളക്കുറിപ്പു് നീക്കം ചെയ്യുവാന്‍ സാധ്യമല്ല" -#: ../gtk/gtkfilechooserdefault.c:2813 ../gtk/gtkfilechooserdefault.c:3699 +#: ../gtk/gtkfilechooserdefault.c:2816 ../gtk/gtkfilechooserdefault.c:3702 msgid "Remove the selected bookmark" msgstr "തെരഞ്ഞെടുത്ത ഓര്‍മ്മക്കുറിപ്പു് നീക്കം ചെയ്യുക" -#: ../gtk/gtkfilechooserdefault.c:3377 +#: ../gtk/gtkfilechooserdefault.c:3380 msgid "Remove" msgstr "നീക്കം ചെയ്യുക" -#: ../gtk/gtkfilechooserdefault.c:3386 -msgid "Rename..." -msgstr "പേരു് മാറ്റുക..." +#: ../gtk/gtkfilechooserdefault.c:3389 +msgid "Rename…" +msgstr "പേര് മാറ്റുക…‌" #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3550 +#: ../gtk/gtkfilechooserdefault.c:3553 msgid "Places" msgstr "സ്ഥലങ്ങള്‍" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3607 +#: ../gtk/gtkfilechooserdefault.c:3610 msgid "_Places" msgstr "_സ്ഥലങ്ങള്‍" -#: ../gtk/gtkfilechooserdefault.c:3687 +#: ../gtk/gtkfilechooserdefault.c:3690 msgid "Add the selected folder to the Bookmarks" msgstr "തെരഞ്ഞെടുത്ത അറ ഓര്‍മ്മക്കുറിപ്പിലേയ്ക്കു് ചേര്‍ക്കുക" -#: ../gtk/gtkfilechooserdefault.c:3948 +#: ../gtk/gtkfilechooserdefault.c:3951 msgid "Could not select file" msgstr "ഫയല്‍ തെരഞ്ഞെടുക്കുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:4173 +#: ../gtk/gtkfilechooserdefault.c:4176 msgid "_Visit this file" msgstr "ഈ ഫയല്‍ _സന്ദര്‍ശിയ്ക്കുക" -#: ../gtk/gtkfilechooserdefault.c:4176 -#| msgid "Copy _Location" +#: ../gtk/gtkfilechooserdefault.c:4179 msgid "_Copy file’s location" msgstr "ഫയലിന്റെ സ്ഥാനം _പകര്‍ത്തുക" -#: ../gtk/gtkfilechooserdefault.c:4179 +#: ../gtk/gtkfilechooserdefault.c:4182 msgid "_Add to Bookmarks" msgstr "ഓര്‍മ്മക്കുറിപ്പിലേയ്ക്കു് _ചേര്‍ക്കുക" -#: ../gtk/gtkfilechooserdefault.c:4186 +#: ../gtk/gtkfilechooserdefault.c:4189 msgid "Show _Hidden Files" msgstr "_അദൃശ്യമായ ഫയലുകള്‍ കാണിക്കുക" -#: ../gtk/gtkfilechooserdefault.c:4189 +#: ../gtk/gtkfilechooserdefault.c:4192 msgid "Show _Size Column" msgstr "_വ്യാപ്തിയ്ക്കുള്ള നിര കാണിക്കുക" -#: ../gtk/gtkfilechooserdefault.c:4414 +#: ../gtk/gtkfilechooserdefault.c:4417 msgid "Files" msgstr "ഫയലുകള്‍" -#: ../gtk/gtkfilechooserdefault.c:4465 +#: ../gtk/gtkfilechooserdefault.c:4468 msgid "Name" msgstr "പേരു്" -#: ../gtk/gtkfilechooserdefault.c:4488 +#: ../gtk/gtkfilechooserdefault.c:4491 msgid "Size" msgstr "വലിപ്പം" -#: ../gtk/gtkfilechooserdefault.c:4502 +#: ../gtk/gtkfilechooserdefault.c:4505 msgid "Modified" msgstr "മാറ്റം വരുത്തിയവ" #. Label -#: ../gtk/gtkfilechooserdefault.c:4595 +#: ../gtk/gtkfilechooserdefault.c:4598 msgid "_Name:" msgstr "_പേരു്:" -#: ../gtk/gtkfilechooserdefault.c:4826 +#: ../gtk/gtkfilechooserdefault.c:4829 msgid "Type a file name" msgstr "ഒരു ഫയലിന്റെ പേരു് ടൈപ്പ് ചെയ്യുക" -#: ../gtk/gtkfilechooserdefault.c:4873 ../gtk/gtkfilechooserdefault.c:4884 +#: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887 msgid "Please select a folder below" msgstr "താഴെയുള്ള ഒരു ഫോള്‍ഡര്‍ ദയവായി തെരഞ്ഞെടുക്കുക" -#: ../gtk/gtkfilechooserdefault.c:4879 -#| msgid "Type a file name" +#: ../gtk/gtkfilechooserdefault.c:4882 msgid "Please type a file name" msgstr "ഒരു ഫയലിന്റെ പേരു് ടൈപ്പ് ചെയ്യുക" #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4950 +#: ../gtk/gtkfilechooserdefault.c:4953 msgid "Create Fo_lder" msgstr "_അറ ഉണ്ടാക്കുക" -#: ../gtk/gtkfilechooserdefault.c:4998 +#: ../gtk/gtkfilechooserdefault.c:5001 msgid "Search:" msgstr "തെരയുക:" -#: ../gtk/gtkfilechooserdefault.c:5049 +#: ../gtk/gtkfilechooserdefault.c:5052 msgid "_Location:" msgstr "_സ്ഥാനം:" -#: ../gtk/gtkfilechooserdefault.c:5500 +#: ../gtk/gtkfilechooserdefault.c:5502 msgid "Save in _folder:" msgstr "_അറയില്‍ സൂക്ഷിക്കുക:" -#: ../gtk/gtkfilechooserdefault.c:5502 +#: ../gtk/gtkfilechooserdefault.c:5504 msgid "Create in _folder:" msgstr "_അറയില്‍ ഉണ്ടാക്കുക:" -#: ../gtk/gtkfilechooserdefault.c:6589 +#: ../gtk/gtkfilechooserdefault.c:6597 #, c-format msgid "Could not read the contents of %s" msgstr "%s-ന്റെ ഉള്ളടക്കം വായിയ്ക്കുവാന്‍ സാധ്യമല്ല" -#: ../gtk/gtkfilechooserdefault.c:6593 +#: ../gtk/gtkfilechooserdefault.c:6601 msgid "Could not read the contents of the folder" msgstr "ഫോള്‍ഡറിന്റെ ഉള്ളടക്കം വായിയ്ക്കുവാന്‍ സാധ്യമല്ല" -#: ../gtk/gtkfilechooserdefault.c:6686 ../gtk/gtkfilechooserdefault.c:6754 -#: ../gtk/gtkfilechooserdefault.c:6934 +#: ../gtk/gtkfilechooserdefault.c:6694 ../gtk/gtkfilechooserdefault.c:6762 +#: ../gtk/gtkfilechooserdefault.c:6942 msgid "Unknown" msgstr "അപരിചിതം" -#: ../gtk/gtkfilechooserdefault.c:6701 +#: ../gtk/gtkfilechooserdefault.c:6709 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6703 +#: ../gtk/gtkfilechooserdefault.c:6711 msgid "Yesterday at %H:%M" msgstr "ഇന്നലെ %H:%M" -#: ../gtk/gtkfilechooserdefault.c:7405 +#: ../gtk/gtkfilechooserdefault.c:7413 msgid "Cannot change to folder because it is not local" msgstr "ലോക്കല്‍ ആയതിനാല്‍ അറയിലേയ്ക്കു് മാറ്റുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:8009 ../gtk/gtkfilechooserdefault.c:8030 +#: ../gtk/gtkfilechooserdefault.c:8020 ../gtk/gtkfilechooserdefault.c:8041 #, c-format msgid "Shortcut %s already exists" msgstr "%s എന്ന കുറുക്ക് വഴി നിലവിലുണ്ട്" -#: ../gtk/gtkfilechooserdefault.c:8120 +#: ../gtk/gtkfilechooserdefault.c:8131 #, c-format msgid "Shortcut %s does not exist" msgstr "%s എന്ന കുറുക്ക് വഴി നിലവിലില്ല" -#: ../gtk/gtkfilechooserdefault.c:8366 ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8377 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "\"%s\" എന്ന പേരില്‍ ഒരു ഫയല്‍ നിലവിലുണ്ട്. നിങ്ങള്‍ക്ക് അത് മാറ്റി എഴുതണമോ?" -#: ../gtk/gtkfilechooserdefault.c:8369 ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8380 ../gtk/gtkprintunixdialog.c:552 #, c-format -msgid "The file already exists in \"%s\". Replacing it will overwrite its contents." -msgstr "\"%s\"-ല്‍ ഒരു ഫയല്‍ ഉണ്ട്. അതിന്റെ സ്ഥാനത്ത് ഇത് സൂക്ഷിച്ചാല്‍ ഉള്ളടക്കം മാറ്റി എഴുതപ്പെടുന്നു." +msgid "" +"The file already exists in \"%s\". Replacing it will overwrite its contents." +msgstr "" +"\"%s\"-ല്‍ ഒരു ഫയല്‍ ഉണ്ട്. അതിന്റെ സ്ഥാനത്ത് ഇത് സൂക്ഷിച്ചാല്‍ ഉള്ളടക്കം മാറ്റി എഴുതപ്പെടുന്നു." -#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "മാറ്റി വേറെ സൂക്ഷിക്കുക (_R)" -#: ../gtk/gtkfilechooserdefault.c:9181 +#: ../gtk/gtkfilechooserdefault.c:9192 msgid "Could not start the search process" msgstr "തിരച്ചില്‍ പ്രക്രിയ ആരംഭിക്കുവാനായില്ല" -#: ../gtk/gtkfilechooserdefault.c:9182 +#: ../gtk/gtkfilechooserdefault.c:9193 msgid "" "The program was not able to create a connection to the indexer daemon. " "Please make sure it is running." @@ -1743,11 +1697,11 @@ msgstr "" "indexer ഡെമണിലേക്ക് ഒരു കണക്ഷന്‍ ഉണ്ടാക്കുവാന്‍ പ്രോഗ്റാമിന് സാധ്യമായില്ല. അത് പ്രവറ്‍ത്തിക്കുന്നു " "എന്നുറപ്പാക്കുക." -#: ../gtk/gtkfilechooserdefault.c:9196 +#: ../gtk/gtkfilechooserdefault.c:9207 msgid "Could not send the search request" msgstr "തിരച്ചിലിനുള്ള ആവശ്യം അയയ്ക്കുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:9806 +#: ../gtk/gtkfilechooserdefault.c:9817 #, c-format msgid "Could not mount %s" msgstr "%s മൌണ്ട് ചെയ്യുവാന്‍ സാധ്യമായില്ല" @@ -1775,23 +1729,23 @@ msgstr "അക്ഷരസഞ്ചയം" #: ../gtk/gtkfontchooserwidget.c:110 msgid "No fonts matched your search. You can revise your search and try again." -msgstr "നിങ്ങള്‍ തെരയുന്ന അക്ഷരസഞ്ചയം ലഭ്യമല്ല. ദയവായി തെരച്ചില്‍ പരിശോധിച്ചു് വീണ്ടും ശ്രമിയ്ക്കുക." +msgstr "" +"നിങ്ങള്‍ തെരയുന്ന അക്ഷരസഞ്ചയം ലഭ്യമല്ല. ദയവായി തെരച്ചില്‍ പരിശോധിച്ചു് വീണ്ടും ശ്രമിയ്ക്കുക." #: ../gtk/gtkfontchooserwidget.c:557 msgid "Search font name" msgstr "അക്ഷരസഞ്ചയത്തിന്റെ നാമം തെരയുക" #: ../gtk/gtkfontchooserwidget.c:891 -#| msgid "_Family:" msgid "Font Family" msgstr "അക്ഷരസഞ്ചയത്തിന്റെ കുടുംബം" -#: ../gtk/gtkicontheme.c:1627 +#: ../gtk/gtkicontheme.c:1931 #, c-format msgid "Icon '%s' not present in theme" msgstr "പ്രമേയത്തില്‍ '%s' എന്ന ചിഹ്നം ലഭ്യമല്ല" -#: ../gtk/gtkicontheme.c:3137 +#: ../gtk/gtkicontheme.c:3462 msgid "Failed to load icon" msgstr "ചിഹ്നം ലഭ്യമാക്കുന്നതില്‍ പരാജയം" @@ -1816,59 +1770,61 @@ msgid "System (%s)" msgstr "സിസ്റ്റം (%s)" #. Open Link -#: ../gtk/gtklabel.c:6224 +#: ../gtk/gtklabel.c:6139 msgid "_Open Link" msgstr "കണ്ണി _തുറക്കുക " #. Copy Link Address -#: ../gtk/gtklabel.c:6236 +#: ../gtk/gtklabel.c:6151 msgid "Copy _Link Address" msgstr "_കണ്ണിയുടെ വിലാസം പകര്‍ത്തുക" -#: ../gtk/gtk-launch.c:69 -msgid "APPLICATION [URI...] - launch an APPLICATION with URI." -msgstr "APPLICATION [URI...] - URI ഉള്ള ഒരു APPLICATION തുറക്കുക." +#: ../gtk/gtk-launch.c:71 +msgid "APPLICATION [URI…] — launch an APPLICATION with URI." +msgstr "APPLICATION [URI…] - URI ഉള്ള ഒരു APPLICATION തുറക്കുക." #. Translators: this message will appear after the usage string #. and before the list of options. -#: ../gtk/gtk-launch.c:73 +#: ../gtk/gtk-launch.c:75 msgid "" "Launch specified application by its desktop file info\n" "optionally passing list of URIs as arguments." -msgstr "" -"ആര്‍ഗ്യുമെന്റുകളായി യുആര്‍ഐ പട്ടിക നല്‍കി, പണിയിട ഫയല്‍ " -"ആവശ്യപ്പെട്ട പ്രയോഗം ലഭ്യമാക്കുന്നു." +msgstr "ആര്‍ഗ്യുമെന്റുകളായി യുആര്‍ഐ പട്ടിക നല്‍കി, പണിയിട ഫയല്‍ ആവശ്യപ്പെട്ട പ്രയോഗം ലഭ്യമാക്കുന്നു." -#: ../gtk/gtk-launch.c:85 +#: ../gtk/gtk-launch.c:87 #, c-format -#| msgid "Error loading icon: %s" msgid "Error parsing commandline options: %s\n" msgstr "കമാന്‍ഡ്‌ലൈന്‍ ഐച്ഛികങ്ങള്‍ പാഴ്സ് ചെയ്യുന്നതില്‍ പിശക് %s\n" -#: ../gtk/gtk-launch.c:87 ../gtk/gtk-launch.c:100 +#: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102 #, c-format msgid "Try \"%s --help\" for more information." msgstr "കൂടുതല്‍ വിവരങ്ങള്‍ക്കായി \"%s --help\" ഉപയോഗിയ്ക്കുക." #. Translators: the %s is the program name. This error message #. means the user is calling gtk-launch without any argument. -#: ../gtk/gtk-launch.c:98 +#: ../gtk/gtk-launch.c:100 #, c-format msgid "%s: missing application name" msgstr "%s: പ്രയോഗത്തിന്റെ നാമം ലഭ്യമല്ല" +#: ../gtk/gtk-launch.c:121 +#, 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. -#: ../gtk/gtk-launch.c:122 +#: ../gtk/gtk-launch.c:129 #, c-format msgid "%s: no such application %s" msgstr "%s: %s പോലുള്ള പ്രയോഗം" #. Translators: the first %s is the program name, the second one #. is the error message. -#: ../gtk/gtk-launch.c:140 +#: ../gtk/gtk-launch.c:147 #, c-format -#| msgid "Error loading icon: %s" msgid "%s: error launching application: %s\n" msgstr "%s: പ്രയോഗം ലഭ്യമാക്കുന്നതില്‍ പിശക്: %s\n" @@ -1881,8 +1837,6 @@ msgid "Invalid URI" msgstr "തെറ്റായ URI" #: ../gtk/gtklockbutton.c:290 -#| msgctxt "keyboard label" -#| msgid "Num_Lock" msgid "Lock" msgstr "പൂട്ടുക" @@ -1944,78 +1898,73 @@ msgstr "നിറ്‍ജ്ജീവമാക്കുവാനുള്ള GT #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: ../gtk/gtkmain.c:707 +#: ../gtk/gtkmain.c:703 msgid "default:LTR" msgstr "default:LTR" -#: ../gtk/gtkmain.c:775 +#: ../gtk/gtkmain.c:768 #, c-format msgid "Cannot open display: %s" msgstr "ഡിസ്പ്ലെ തുറക്കുവാന്‍ സാധ്യമല്ല: %s" -#: ../gtk/gtkmain.c:841 +#: ../gtk/gtkmain.c:834 msgid "GTK+ Options" msgstr "GTK+ ഉപാധികള്‍" -#: ../gtk/gtkmain.c:841 +#: ../gtk/gtkmain.c:834 msgid "Show GTK+ Options" msgstr "GTK+ ഉപാധികള്‍ കാണിക്കുക" -#: ../gtk/gtkmountoperation.c:532 +#: ../gtk/gtkmountoperation.c:535 msgid "Co_nnect" msgstr "ക_ണക്ട് ചെയ്യുക" -#: ../gtk/gtkmountoperation.c:606 -#| msgid "Co_nnect" +#: ../gtk/gtkmountoperation.c:609 msgid "Connect As" msgstr "ഇങ്ങനെ കണക്ട് ചെയ്യുക" -#: ../gtk/gtkmountoperation.c:615 -#| msgid "Connect _anonymously" +#: ../gtk/gtkmountoperation.c:618 msgid "_Anonymous" msgstr "_അജ്ഞാതം" -#: ../gtk/gtkmountoperation.c:624 +#: ../gtk/gtkmountoperation.c:627 msgid "Registered U_ser" msgstr "രജിസ്ടര്‍ _ഉപയോക്താവു്" -#: ../gtk/gtkmountoperation.c:635 -#| msgid "_Username:" +#: ../gtk/gtkmountoperation.c:638 msgid "_Username" msgstr "_ഉപയോക്താവു്" -#: ../gtk/gtkmountoperation.c:640 -#| msgid "_Domain:" +#: ../gtk/gtkmountoperation.c:643 msgid "_Domain" msgstr "_ഡൊമെയിന്‍" -#: ../gtk/gtkmountoperation.c:646 -#| msgid "_Password:" +#: ../gtk/gtkmountoperation.c:649 msgid "_Password" msgstr "_രഹസ്യവാക്ക്" -#: ../gtk/gtkmountoperation.c:668 +#: ../gtk/gtkmountoperation.c:671 msgid "Forget password _immediately" msgstr "_ഉടന്‍ രഹസ്യവാക്ക് ഉടന്‍ മറക്കുക" -#: ../gtk/gtkmountoperation.c:678 +#: ../gtk/gtkmountoperation.c:681 msgid "Remember password until you _logout" msgstr "_പുറത്തു് കടക്കുന്നതു്വരെ പാസ്‌വേര്‍ഡ് സൂക്ഷിക്കുക" -#: ../gtk/gtkmountoperation.c:688 +#: ../gtk/gtkmountoperation.c:691 msgid "Remember _forever" msgstr "_എന്നേക്കുമായി സൂക്ഷിക്കുക" -#: ../gtk/gtkmountoperation.c:1077 +#: ../gtk/gtkmountoperation.c:1080 #, c-format msgid "Unknown Application (PID %d)" msgstr "അപരിചിതമായ പ്രയോഗം (PID %d)" -#: ../gtk/gtkmountoperation.c:1260 +#: ../gtk/gtkmountoperation.c:1263 msgid "Unable to end process" msgstr "പ്രക്രിയ അവസാനിപ്പിക്കുവാന്‍ സാധ്യമല്ല" -#: ../gtk/gtkmountoperation.c:1297 +#: ../gtk/gtkmountoperation.c:1300 msgid "_End Process" msgstr "പ്രക്രിയ _അവസാനിപ്പിക്കുക" @@ -2050,7 +1999,7 @@ msgstr "Z ഷെല്‍" msgid "Cannot end process with PID %d: %s" msgstr "PID %d-ല്‍ പ്രക്രിയ അവസാനിപ്പിക്കുവാന്‍ സാധ്യമല്ല: %s" -#: ../gtk/gtknotebook.c:5051 ../gtk/gtknotebook.c:7705 +#: ../gtk/gtknotebook.c:5069 ../gtk/gtknotebook.c:7723 #, c-format msgid "Page %u" msgstr "താള്‍ %u" @@ -2058,16 +2007,14 @@ msgstr "താള്‍ %u" #. Translators: the format here is used to build the string that will be rendered #. * in the number emblem. #. -#: ../gtk/gtknumerableicon.c:481 +#: ../gtk/gtknumerableicon.c:482 #, c-format -#| msgctxt "calendar:day:digits" -#| msgid "%d" msgctxt "Number format" msgid "%d" msgstr "%d" -#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:846 -#: ../gtk/gtkpapersize.c:886 +#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:848 +#: ../gtk/gtkpapersize.c:888 msgid "Not a valid page setup file" msgstr "ശരിയായ താള്‍ ക്രമികരണ ഫയല്‍ അല്ല" @@ -2095,8 +2042,8 @@ msgstr "" " താഴെ: %s %s" #: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 -msgid "Manage Custom Sizes..." -msgstr "നിങ്ങള്‍ സജ്ജമാക്കിയ വലിപ്പംകള്‍ കൈകാര്യം ചെയ്യുക..." +msgid "Manage Custom Sizes…" +msgstr "നിങ്ങള്‍ സജ്ജമാക്കിയ വലിപ്പങ്ങള്‍ കൈകാര്യം ചെയ്യുക…" #: ../gtk/gtkpagesetupunixdialog.c:896 msgid "_Format for:" @@ -2126,7 +2073,7 @@ msgstr "താഴേക്കുള്ള വഴി" msgid "File System Root" msgstr "ഫയല്‍ സിസ്റ്റം റൂട്ട്" -#: ../gtk/gtkprintbackend.c:748 +#: ../gtk/gtkprintbackend.c:750 msgid "Authentication" msgstr "ആധികാരികത ഉറപ്പാക്കല്‍" @@ -2278,8 +2225,8 @@ msgid "Getting printer information failed" msgstr "പ്രിന്ററിന്റെ വിവരങ്ങള്‍ ലഭ്യമാക്കുന്നതില്‍ പരാജയം" #: ../gtk/gtkprintunixdialog.c:1916 -msgid "Getting printer information..." -msgstr "പ്രിന്ററിന്റെ വിവരങ്ങള്‍ ലഭ്യമാക്കുന്നു..." +msgid "Getting printer information…" +msgstr "പ്രിന്ററിന്റെ വിവരങ്ങള്‍ ലഭ്യമാക്കുന്നു…" #: ../gtk/gtkprintunixdialog.c:2184 msgid "Printer" @@ -2355,42 +2302,42 @@ msgstr "സാധാരണ" #. * multiple pages on a sheet when printing #. #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, top to bottom" msgstr "ഇടതില്‍ നിന്നും വലത്തേയ്ക്ക്, മുകളില്‍ നിന്നും താഴേയ്ക്ക്" #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, bottom to top" msgstr "ഇടതില്‍ നിന്നും വലത്തേയ്ക്ക്, താഴെ നിന്നും മുകളിലേക്ക്, " #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, top to bottom" msgstr "വലതു്‌ നിന്നും ഇടത്തേയ്ക്ക്, മുകളില്‍ നിന്നും താഴേയ്ക്ക്" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, bottom to top" msgstr ", താഴെ നിന്നും മുകളിലേക്ക്" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, left to right" msgstr "മുകളില്‍ നിന്നും താഴേയ്ക്ക്, ഇടതില്‍ നിന്നും വലത്തേയ്ക്ക്" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, right to left" msgstr "മുകളില്‍ നിന്നും താഴേയ്ക്ക്, വലതു്‌ നിന്നും ഇടത്തേയ്ക്ക്" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, left to right" msgstr "താഴെ നിന്നും മുകളിലേക്ക്, " #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, right to left" msgstr "താഴെ നിന്നും മുകളിലേക്ക്, വലതു്‌ നിന്നും ഇടത്തേയ്ക്ക്" @@ -2398,7 +2345,7 @@ msgstr "താഴെ നിന്നും മുകളിലേക്ക്, #. * dialog that controls in what order multiple pages are arranged #. #: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3766 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772 msgid "Page Ordering" msgstr "പേജിന്റെ ക്രമം" @@ -2600,36 +2547,36 @@ msgstr "പ്രിന്റ് ചെയ്യുക" msgid "Select which type of documents are shown" msgstr "ഏത് തരം രേഖകളാണ് പ്രദര്‍ശിപ്പിച്ചിരിക്കുന്നത് എന്ന് തെരഞ്ഞെടുക്കുക" -#: ../gtk/gtkrecentchooserdefault.c:1130 ../gtk/gtkrecentchooserdefault.c:1167 +#: ../gtk/gtkrecentchooserdefault.c:1129 ../gtk/gtkrecentchooserdefault.c:1166 #, c-format msgid "No item for URI '%s' found" msgstr "URI '%s'-നുള്ള വസ്തു ലഭ്യമല്ല" -#: ../gtk/gtkrecentchooserdefault.c:1294 +#: ../gtk/gtkrecentchooserdefault.c:1293 msgid "Untitled filter" msgstr "തലക്കെട്ടില്ലാത്ത ഫില്‍‌റ്ററ്‍" -#: ../gtk/gtkrecentchooserdefault.c:1647 +#: ../gtk/gtkrecentchooserdefault.c:1646 msgid "Could not remove item" msgstr "വസ്തു നീക്കം ചെയ്യുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkrecentchooserdefault.c:1691 +#: ../gtk/gtkrecentchooserdefault.c:1690 msgid "Could not clear list" msgstr "പട്ടിക വെടിപ്പാക്കുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkrecentchooserdefault.c:1775 +#: ../gtk/gtkrecentchooserdefault.c:1774 msgid "Copy _Location" msgstr "സ്ഥാനം പകര്‍ത്തുക (_L)" -#: ../gtk/gtkrecentchooserdefault.c:1788 +#: ../gtk/gtkrecentchooserdefault.c:1787 msgid "_Remove From List" msgstr "പട്ടികയില്‍ നിന്നും നീക്കം ചെയ്യുക (_R)" -#: ../gtk/gtkrecentchooserdefault.c:1797 +#: ../gtk/gtkrecentchooserdefault.c:1796 msgid "_Clear List" msgstr "പട്ടിക വെടിപ്പാക്കുക (_C)" -#: ../gtk/gtkrecentchooserdefault.c:1811 +#: ../gtk/gtkrecentchooserdefault.c:1810 msgid "Show _Private Resources" msgstr "സ്വകാര്യ ഉറവിടങ്ങള്‍ കാണിക്കുക (_P)" @@ -3202,7 +3149,7 @@ msgstr "_ചെറുതാക്കുക" #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for #. * the state #. -#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:586 +#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:583 msgctxt "switch" msgid "ON" msgstr "ഓണ്‍ " @@ -3210,7 +3157,7 @@ msgstr "ഓണ്‍ " #. Translators: if the "off" state label requires more than three #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state #. -#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:615 +#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:598 msgctxt "switch" msgid "OFF" msgstr "ഓഫ്" @@ -3287,7 +3234,8 @@ msgstr "\"%s\" ശരിയായ പേരുള്ള ഒരു സവിശ #: ../gtk/gtktextbufferserialize.c:1200 #, c-format -msgid "\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\"" +msgid "" +"\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\"" msgstr "" "\"%s\", \"%s\" തരത്തിലുള്ള മൂല്ല്യമായി വേര്‍തിരിക്കുവാന്‍ സാധ്യമല്ല. ഇതു് \"%s\" എന്ന " "സവിശേഷതയ്ക്കുള്ളതാണു്" @@ -3326,7 +3274,8 @@ msgid "Serialized data is malformed" msgstr "സീരിയലൈസ്ഡ് ഡേറ്റാ തെറ്റാകുന്നു" #: ../gtk/gtktextbufferserialize.c:1868 -msgid "Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001" +msgid "" +"Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001" msgstr "സീരിയലൈസ്ഡ് ഡേറ്റാ തെറ്റാകുന്നു. ആദ്യത്തെ ഭാഗം GTKTEXTBUFFERCONTENTS-0001 അല്ല." #: ../gtk/gtktextutil.c:58 @@ -3379,7 +3328,7 @@ msgstr "അപ്രതീക്ഷിതമായ ആരംഭ റ്റാഗ msgid "Unexpected character data on line %d char %d" msgstr "%d വരിയില്‍ അപ്രതീക്ഷിതമായ അക്ഷരം %d" -#: ../gtk/gtkuimanager.c:2738 +#: ../gtk/gtkuimanager.c:2694 msgid "Empty" msgstr "ശൂന്യം" @@ -4559,169 +4508,169 @@ msgstr "താല്‍കാല്‍കമായി നിര്‍ത്ത msgid "Rejecting Jobs" msgstr "ജോലികള്‍ റിജെക്ര്റ് ചെയ്യുന്നു" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2909 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2915 msgid "Two Sided" msgstr "ഇരുവശവുമുള്ള" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2910 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2916 msgid "Paper Type" msgstr "ഏത് തരം പേപ്പറ്‍" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2911 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2917 msgid "Paper Source" msgstr "പേപ്പറിന്റെ ഉറവിടം" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2912 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2918 msgid "Output Tray" msgstr "ഔട്ട്പുട്ട് ട്രേ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2913 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2919 msgid "Resolution" msgstr "റിസല്യൂഷന്‍" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2914 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2920 msgid "GhostScript pre-filtering" msgstr "GhostScript പ്രീ-ഫില്‍‌റ്ററിങ്" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2923 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 msgid "One Sided" msgstr "ഒരു വശം മാത്രം" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2925 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 msgid "Long Edge (Standard)" msgstr "ലോങ് എഡ്ജ് (സാധാരണ)" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2927 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 msgid "Short Edge (Flip)" msgstr "ഷോര്‍ട്ട് എഡ്ജ് (ഫ്ലിപ്പ്)" #. Translators: this is an option of "Paper Source" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 msgid "Auto Select" msgstr "സ്വയം തെരഞ്ഞെടുക്കുക" #. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Resolution" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2941 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3429 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3435 msgid "Printer Default" msgstr "സ്വതവേസുള്ള പ്രിന്ററ്‍" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 msgid "Embed GhostScript fonts only" msgstr "GhostScript അക്ഷരസഞ്ചയങ്ങള്‍ മാത്രം എംബഡ് ചെയ്യുക" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2951 msgid "Convert to PS level 1" msgstr "പിഎസ് ലവല്‍ 1-ലേക്കു് വേര്‍തിരിക്കുക" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2953 msgid "Convert to PS level 2" msgstr "പിഎസ് ലവല്‍ 2-ലേക്കു് വേര്‍തിരിക്കുക" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2955 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/cups/gtkprintbackendcups.c:2958 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2964 msgid "Miscellaneous" msgstr "മറ്റുള്ളവ" #. Translators: These strings name the possible values of the #. * job priority option in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Urgent" msgstr "അത്യാവശ്യമായ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "High" msgstr "കൂടിയ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Medium" msgstr "ഇടത്തരം" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Low" msgstr "കുറഞ്ഞ" #. Translators, this string is used to label the job priority option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3711 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3717 msgid "Job Priority" msgstr "ജോലി മുന്‍ഗണന" #. Translators, this string is used to label the billing info entry #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3722 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3728 msgid "Billing Info" msgstr "ബില്ലിങ് വിവരം" #. Translators, these strings are names for various 'standard' cover #. * pages that the printing system may support. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "None" msgstr "ഒന്നുമില്ല" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Classified" msgstr "വേറ്‍തിരിച്ച" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Confidential" msgstr "വളരെ രഹസ്യമായ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Secret" msgstr "രഹസ്യം" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Standard" msgstr "നിലവാരമുള്ള" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Top Secret" msgstr "പരമ രഹസ്യം" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Unclassified" msgstr "വേറ്‍തിരിച്ചിട്ടില്ലാത്ത" #. Translators, this string is used to label the pages-per-sheet option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3748 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3754 msgid "Pages per Sheet" msgstr "ഒരു ഷീറ്റില്‍ എത്ര താള്‍" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3808 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3814 msgid "Before" msgstr "മുമ്പ്" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3823 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3829 msgid "After" msgstr "ശേഷം" @@ -4729,14 +4678,14 @@ msgstr "ശേഷം" #. * a print job is printed. Possible values are 'now', a specified time, #. * or 'on hold' #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3843 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849 msgid "Print at" 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/cups/gtkprintbackendcups.c:3854 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860 msgid "Print at time" msgstr "പ്രിന്റ് ചെയ്യുക ഈ സമയത്ത്" @@ -4744,19 +4693,17 @@ msgstr "പ്രിന്റ് ചെയ്യുക ഈ സമയത്ത് #. * size. The two placeholders are replaced with the width and height #. * in points. E.g: "Custom 230.4x142.9" #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895 #, c-format msgid "Custom %sx%s" msgstr "കസ്റ്റം %sx%s" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3970 -#| msgid "Printer offline" +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3976 msgid "Printer Profile" msgstr "പ്രിന്റര്‍ പ്രോഫൈല്‍" #. TRANSLATORS: this is when color profile information is unavailable -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3977 -#| msgid "Not available" +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3983 msgid "Unavailable" msgstr "ലഭ്യമല്ല" @@ -4768,18 +4715,15 @@ msgstr "നിറം കൈകാര്യം ചെയ്യല്‍ ലഭ് #. TRANSLATORS: when there is no color profile available #: ../modules/printbackends/cups/gtkprintercups.c:233 -#| msgid "Not available" msgid "No profile available" msgstr "പ്രൊഫൈല്‍ ലഭ്യമല്ല" #. TRANSLATORS: when the color profile has no title #: ../modules/printbackends/cups/gtkprintercups.c:244 -#| msgid "Unspecified error" msgid "Unspecified profile" msgstr "വ്യക്തമാക്കാത്ത പ്രൊഫൈല്‍" #: ../modules/printbackends/file/gtkprintbackendfile.c:249 -#| msgid "output.%s" msgid "output" msgstr "ഔട്ട്പുട്ട്" @@ -4859,6 +4803,17 @@ msgstr "test-output.%s" msgid "Print to Test Printer" msgstr "ടെസ്റ്റ് പ്രിന്ററിലേക്ക് പ്രിന്റ് ചെയ്യുക" +#~| msgctxt "keyboard label" +#~| msgid "Home" +#~ msgid "Homepage" +#~ msgstr "ആസ്ഥാനതാള്‍" + +#~ msgid "Rename..." +#~ msgstr "പേരു് മാറ്റുക..." + +#~ msgid "Manage Custom Sizes..." +#~ msgstr "നിങ്ങള്‍ സജ്ജമാക്കിയ വലിപ്പംകള്‍ കൈകാര്യം ചെയ്യുക..." + #~ msgid "X screen to use" #~ msgstr "ഉപയോഗിക്കുവാനുള്ള X സ്ക്രീന്‍" @@ -5667,9 +5622,6 @@ msgstr "ടെസ്റ്റ് പ്രിന്ററിലേക്ക് #~ msgid "Rename file \"%s\" to:" #~ msgstr "\"%s\" എന്ന ഫയല്‍ മാറ്റേണ്ട പേര്:" -#~ msgid "_Rename" -#~ msgstr "പേരു് _മാറ്റുക" - #~ msgid "" #~ "The filename \"%s\" couldn't be converted to UTF-8. (try setting the " #~ "environment variable G_FILENAME_ENCODING): %s" From 32c6c672d14c335202607a6c6a19ea8f113a4d16 Mon Sep 17 00:00:00 2001 From: Anish A Date: Thu, 14 Feb 2013 23:10:04 +0400 Subject: [PATCH 004/208] Revert "Updated Malayalam Localization" This reverts commit bff9de1adcb4ddef53d52fb1f296be35c2cda16b. --- po/ml.po | 516 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 282 insertions(+), 234 deletions(-) diff --git a/po/ml.po b/po/ml.po index 6ad496828a..e2e9ac229a 100644 --- a/po/ml.po +++ b/po/ml.po @@ -1,26 +1,25 @@ # translation of gtk+.master.ml.po to # This file is distributed under the same license as the gtk+ package. # Copyright (C) 2003-2008 gtk+'S COPYRIGHT HOLDER. +# # FSF-India , 2003. # Ani Peter , 2006, 2007, 2009, 2012. # Hari Vishnu , 2008. -# Anish A , 2013. msgid "" msgstr "" "Project-Id-Version: gtk+.master.ml\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" -"%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2013-02-07 10:19+0000\n" -"PO-Revision-Date: 2013-02-08 22:58+0530\n" -"Last-Translator: Anish A \n" -"Language-Team: Swatantra Malayalam Computing\n" -"Language: ml\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." +"cgi?product=gtk%2b&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2012-09-18 11:52+0000\n" +"PO-Revision-Date: 2012-09-20 00:59+0000\n" +"Last-Translator: Ani Peter \n" +"Language-Team: Malayalam \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Virtaal 0.7.1\n" -"X-Project-Style: gnome\n" #: ../gdk/gdk.c:155 #, c-format @@ -360,11 +359,15 @@ msgid "XF86Launch1" msgstr "XF86Launch1" #: ../gdk/keyname-table.h:4007 +#| msgctxt "Stock label, navigation" +#| msgid "_Forward" msgctxt "keyboard label" msgid "XF86Forward" msgstr "XF86Forward" #: ../gdk/keyname-table.h:4008 +#| msgctxt "Stock label, navigation" +#| msgid "_Back" msgctxt "keyboard label" msgid "XF86Back" msgstr "XF86Back" @@ -456,21 +459,21 @@ msgid_plural "Opening %d Items" msgstr[0] "%d വസ്തു തുറക്കുന്നു" msgstr[1] "%d വസ്തുക്കള്‍ തുറക്കുന്നു" -#: ../gtk/a11y/gtkspinneraccessible.c:39 +#: ../gtk/a11y/gtkspinneraccessible.c:40 msgctxt "throbbing progress animation widget" msgid "Spinner" msgstr "സ്പിന്നര്‍" -#: ../gtk/a11y/gtkspinneraccessible.c:40 +#: ../gtk/a11y/gtkspinneraccessible.c:41 msgid "Provides visual indication of progress" msgstr "പുരോഗതിയുടെ കാണുന്ന സൂചിക ലഭ്യമാക്കുന്നു" -#: ../gtk/a11y/gtkswitchaccessible.c:62 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgctxt "light switch widget" msgid "Switch" msgstr "സ്വിച്ച്" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:64 msgid "Switches between on and off states" msgstr "ഓണ്‍, ഓഫ് അവസ്ഥകള്‍ തമ്മില്‍ മാറ്റുക" @@ -499,6 +502,7 @@ msgid "Position on the color wheel." msgstr "കളര്‍ വീലിലുള്ള സ്ഥാനം." #: ../gtk/deprecated/gtkcolorsel.c:464 +#| msgid "_Saturation:" msgid "S_aturation:" msgstr "_സാച്ചുറേഷന്‍:" @@ -589,7 +593,8 @@ msgid "" "The previously-selected color, for comparison to the color you're selecting " "now." msgstr "" -"നിങ്ങള്‍ മുമ്പു് തെരഞ്ഞെടുത്ത നിറം, ഇതു് നിങ്ങള്‍ മുമ്പു് തെരഞ്ഞെടുത്ത നിറവുമായി താരതമ്യപ്പെടുത്തുവാനാണു്." +"നിങ്ങള്‍ മുമ്പു് തെരഞ്ഞെടുത്ത നിറം, ഇതു് നിങ്ങള്‍ മുമ്പു് തെരഞ്ഞെടുത്ത നിറവുമായി " +"താരതമ്യപ്പെടുത്തുവാനാണു്." #: ../gtk/deprecated/gtkcolorsel.c:1088 msgid "The color you've chosen." @@ -614,6 +619,7 @@ msgstr "" #: ../gtk/deprecated/gtkcolorseldialog.c:201 ../gtk/gtkappchooserdialog.c:574 #: ../gtk/gtkcolorchooserdialog.c:150 ../gtk/gtkfontchooserdialog.c:174 #: ../gtk/gtkprinteroptionwidget.c:550 +#| msgid "_Selection: " msgid "_Select" msgstr "_തെരഞ്ഞെടുക്കുക:" @@ -683,27 +689,30 @@ msgid "Could not show link" msgstr "കണ്ണി കാണിക്കുവാന്‍ സാധ്യമായില്ല" #: ../gtk/gtkaboutdialog.c:1017 -msgid "Website" -msgstr "വെബ് വിലാസം" +#| msgctxt "keyboard label" +#| msgid "Home" +msgid "Homepage" +msgstr "ആസ്ഥാനതാള്‍" #: ../gtk/gtkaboutdialog.c:1071 #, c-format msgid "About %s" msgstr "%s സംബന്ധിച്ച്" -#: ../gtk/gtkaboutdialog.c:2398 +#: ../gtk/gtkaboutdialog.c:2399 +#| msgid "C_reate" msgid "Created by" msgstr "ഉണ്ടാക്കുന്നതു്" -#: ../gtk/gtkaboutdialog.c:2401 +#: ../gtk/gtkaboutdialog.c:2402 msgid "Documented by" msgstr "സഹായക്കുറിപ്പുകള്‍" -#: ../gtk/gtkaboutdialog.c:2411 +#: ../gtk/gtkaboutdialog.c:2412 msgid "Translated by" msgstr "പരിഭാഷകര്‍" -#: ../gtk/gtkaboutdialog.c:2416 +#: ../gtk/gtkaboutdialog.c:2417 msgid "Artwork by" msgstr "കലാവിരുതുകള്‍" @@ -778,8 +787,9 @@ msgid "Backslash" msgstr "Backslash" #: ../gtk/gtkappchooserbutton.c:290 -msgid "Other application…" -msgstr "മറ്റു് പ്രയോഗം…" +#| msgid "Application" +msgid "Other application..." +msgstr "മറ്റു് പ്രയോഗം..." #: ../gtk/gtkappchooserdialog.c:137 msgid "Failed to look for applications online" @@ -790,15 +800,18 @@ msgid "_Find applications online" msgstr "പ്രയോഗങ്ങള്‍ ഓണ്‍ലൈന്‍ _കണ്ടുപിടിയ്ക്കുക" #: ../gtk/gtkappchooserdialog.c:247 +#| msgid "Could not clear list" msgid "Could not run application" msgstr "പ്രയോഗം പ്രവര്‍ത്തിയ്ക്കുവാന്‍ സാധ്യമായില്ല" #: ../gtk/gtkappchooserdialog.c:260 #, c-format +#| msgid "Could not mount %s" msgid "Could not find '%s'" msgstr "'%s' കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല" #: ../gtk/gtkappchooserdialog.c:263 +#| msgid "Could not show link" msgid "Could not find application" msgstr "പ്രയോഗം കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല" @@ -808,7 +821,7 @@ msgstr "പ്രയോഗം കണ്ടുപിടിയ്ക്കുവ msgid "Select an application to open \"%s\"" msgstr "\"%s\" തുറക്കുന്നതിനായി ഒരു പ്രയോഗം തെരഞ്ഞെടുക്കുക" -#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:657 +#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:654 #, c-format msgid "No applications available to open \"%s\"" msgstr "\"%s\"-നുചിതമായ പ്രയോഗം ലഭ്യമല്ല" @@ -829,34 +842,41 @@ msgid "" "Click \"Show other applications\", for more options, or \"Find applications " "online\" to install a new application" msgstr "" -"കൂടുതല്‍ ഐച്ഛികങ്ങള്‍ക്കായി \"മറ്റു് പ്രയോഗങ്ങള്‍ കാണിയ്ക്കുക\" ക്ലിക്ക് ചെയ്യുക, അല്ലെങ്കില്‍ പുതിയൊരു " -"പ്രയോഗം ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനായി \"ഓണ്‍ലൈനായി പ്രയോഗങ്ങള്‍ കണ്ടുപിടിയ്ക്കുക\"" +"കൂടുതല്‍ ഐച്ഛികങ്ങള്‍ക്കായി \"മറ്റു് പ്രയോഗങ്ങള്‍ കാണിയ്ക്കുക\" ക്ലിക്ക് ചെയ്യുക, അല്ലെങ്കില്‍ " +"പുതിയൊരു പ്രയോഗം ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനായി \"ഓണ്‍ലൈനായി പ്രയോഗങ്ങള്‍ " +"കണ്ടുപിടിയ്ക്കുക\"" #: ../gtk/gtkappchooserdialog.c:492 +#| msgid "Forget password _immediately" msgid "Forget association" msgstr "ബന്ധം മറക്കുക" #: ../gtk/gtkappchooserdialog.c:558 +#| msgid "Show GTK+ Options" msgid "Show other applications" msgstr "മറ്റു് പ്രയോഗങ്ങള്‍ കാണിയ്ക്കുക" -#: ../gtk/gtkappchooserwidget.c:606 +#: ../gtk/gtkappchooserwidget.c:603 +#| msgid "Application" msgid "Default Application" msgstr "സ്വതവേയുള്ള പ്രയോഗം" -#: ../gtk/gtkappchooserwidget.c:744 +#: ../gtk/gtkappchooserwidget.c:741 +#| msgid "Application" msgid "Recommended Applications" msgstr "ഉചിതമായ പ്രയോഗങ്ങള്‍" -#: ../gtk/gtkappchooserwidget.c:759 +#: ../gtk/gtkappchooserwidget.c:756 +#| msgid "Application" msgid "Related Applications" msgstr "ബന്ധമുള്ള പ്രയോഗങ്ങള്‍" -#: ../gtk/gtkappchooserwidget.c:773 +#: ../gtk/gtkappchooserwidget.c:770 +#| msgid "Application" msgid "Other Applications" msgstr "മറ്റു് പ്രയോഗങ്ങള്‍" -#: ../gtk/gtkapplication.c:1557 +#: ../gtk/gtkapplication.c:1558 #, c-format msgid "" "%s cannot quit at this time:\n" @@ -873,24 +893,32 @@ msgid "Application" msgstr "പ്രയോഗം" #: ../gtk/gtkassistant.c:1008 +#| msgctxt "Stock label" +#| msgid "C_onnect" msgid "C_ontinue" msgstr "തു_ടരുക" #: ../gtk/gtkassistant.c:1011 +#| msgctxt "Stock label, navigation" +#| msgid "_Back" msgid "Go _Back" msgstr "_പുറകോട്ട്" #: ../gtk/gtkassistant.c:1015 +#| msgctxt "print operation status" +#| msgid "Finished" msgid "_Finish" msgstr "_പൂര്‍ത്തിയാക്കിയിരിക്കുന്നു" #: ../gtk/gtkbuilder-menus.c:220 #, c-format +#| msgid "Element <%s> is not allowed below <%s>" msgid "Element <%s> not allowed inside <%s>" msgstr "എലമെന്റ് <%s>ഉള്ളില്‍ അനുവദിക്കുന്നതല്ല <%s>" #: ../gtk/gtkbuilder-menus.c:225 #, c-format +#| msgid "Element <%s> is not allowed below <%s>" msgid "Element <%s> not allowed at toplevel" msgstr "എല്ലമെന്റ് <%s> മുകളില്‍ അനുവദിയ്ക്കുന്നില്ല" @@ -1019,9 +1047,9 @@ msgstr "തെറ്റായ " #. * an accelerator when the cell is clicked to change the #. * acelerator. #. -#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 -msgid "New accelerator…" -msgstr "പുതിയ ആക്സലറേറ്റര്‍…" +#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:745 +msgid "New accelerator..." +msgstr "പുതിയ ആക്സലറേറ്റര്‍..." #: ../gtk/gtkcellrendererprogress.c:372 ../gtk/gtkcellrendererprogress.c:462 #, c-format @@ -1049,6 +1077,7 @@ msgstr "ചുവപ്പു് %d%%, പച്ച %d%%, നീല %d%%" #: ../gtk/gtkcolorchooserwidget.c:360 #, c-format +#| msgid "Color" msgid "Color: %s" msgstr "നിറം: %s" @@ -1073,6 +1102,7 @@ msgid "Light Orange" msgstr "ഇളം ഓറഞ്ച്" #: ../gtk/gtkcolorchooserwidget.c:423 +#| msgid "Range" msgctxt "Color name" msgid "Orange" msgstr "ഓറഞ്ചു്" @@ -1148,6 +1178,7 @@ msgid "Light Chocolate" msgstr "ഇളം ചോക്കളേറ്റ്" #: ../gtk/gtkcolorchooserwidget.c:438 +#| msgid "C_ollate" msgctxt "Color name" msgid "Chocolate" msgstr "ചോക്കോളേറ്റ്" @@ -1208,6 +1239,7 @@ msgid "Dark Gray" msgstr "കടും ഗ്രേ" #: ../gtk/gtkcolorchooserwidget.c:463 +#| msgid "Medium" msgctxt "Color name" msgid "Medium Gray" msgstr "ഇടത്തരം ഗ്രേ" @@ -1234,28 +1266,34 @@ msgstr "വെളുപ്പു്" #. translators: label for the custom section in the color chooser #: ../gtk/gtkcolorchooserwidget.c:516 +#| msgid "Custom size" msgid "Custom" msgstr "യഥേഷ്ടമാക്കുക" #: ../gtk/gtkcolorchooserwidget.c:524 +#| msgid "Create Fo_lder" msgid "Create custom color" msgstr "യഥേഷ്ടമുള്ള നിറം തയ്യാറാക്കുക" #: ../gtk/gtkcolorchooserwidget.c:543 #, c-format +#| msgid "Custom %sx%s" msgid "Custom color %d: %s" msgstr "യഥേഷ്ടമുള്ള നിറം %d: %s" #: ../gtk/gtkcoloreditor.c:412 +#| msgid "Color _name:" msgid "Color Name" msgstr "നിറത്തിന്റെ പേരു്" #: ../gtk/gtkcoloreditor.c:457 +#| msgid "_Saturation:" msgctxt "Color channel" msgid "Saturation" msgstr "സാച്ചുറേഷന്‍:" #: ../gtk/gtkcoloreditor.c:463 +#| msgid "_Value:" msgctxt "Color channel" msgid "Value" msgstr "മൂല്യം:" @@ -1271,6 +1309,7 @@ msgid "V" msgstr "V" #: ../gtk/gtkcoloreditor.c:481 ../gtk/gtkcolorscale.c:301 +#| msgid "_Hue:" msgctxt "Color channel" msgid "Hue" msgstr "ഹ്യൂ" @@ -1286,15 +1325,19 @@ msgid "Alpha" msgstr "ആല്‍ഫാ" #: ../gtk/gtkcoloreditor.c:503 +#| msgctxt "paper size" +#| msgid "A0" msgctxt "Color channel" msgid "A" msgstr "A" #: ../gtk/gtkcolorplane.c:438 +#| msgid "Color _name:" msgid "Color Plane" msgstr "കളര്‍ പ്ലെയിന്‍" #: ../gtk/gtkcolorswatch.c:447 +#| msgid "Custom size" msgid "_Customize" msgstr "_യഥേഷ്ടമാക്കുക" @@ -1322,8 +1365,8 @@ msgid "mm" msgstr "mm" #: ../gtk/gtkcustompaperunixdialog.c:605 -msgid "Margins from Printer…" -msgstr "പ്രിന്ററില്‍ നിന്നുള്ള മാര്‍ജിനുകള്‍…" +msgid "Margins from Printer..." +msgstr "പ്രിന്ററില്‍ നിന്നുള്ള മാര്‍ജിനുകള്‍" #: ../gtk/gtkcustompaperunixdialog.c:771 #, c-format @@ -1362,15 +1405,15 @@ msgstr "_വലത്ത്:" msgid "Paper Margins" msgstr "പേപ്പറിനുള്ള മാര്‍ജിനുകള്‍" -#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8591 +#: ../gtk/gtkentry.c:9140 ../gtk/gtktextview.c:8583 msgid "Input _Methods" msgstr "ഇന്‍പുട്ട് _രീതികള്‍" -#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8605 +#: ../gtk/gtkentry.c:9154 ../gtk/gtktextview.c:8597 msgid "_Insert Unicode Control Character" msgstr "_Insert Unicode Control Character" -#: ../gtk/gtkentry.c:10094 +#: ../gtk/gtkentry.c:10107 msgid "Caps Lock is on" msgstr "Caps Lock ഓണ്‍ ആണു്" @@ -1416,10 +1459,11 @@ msgstr "Caps Lock ഓണ്‍ ആണു്" #. * Private Macros * #. * **************** #: ../gtk/gtkfilechooserbutton.c:104 +#| msgid "Select A File" msgid "Select a File" msgstr "ഒരു ഫയല്‍ തെരഞ്ഞെടുക്കുക" -#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1820 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1817 msgid "Desktop" msgstr "പണിയിടം" @@ -1428,30 +1472,30 @@ msgid "(None)" msgstr "(ഒന്നുമില്ല)" #: ../gtk/gtkfilechooserbutton.c:2046 -msgid "Other…" -msgstr "മറ്റുളളവ…" +msgid "Other..." +msgstr "മറ്റുള്ളവ..." #: ../gtk/gtkfilechooserdefault.c:152 msgid "Type name of new folder" msgstr "പുതിയ അറയുടെ പേരു് ടൈപ്പ് ചെയ്യുക" -#: ../gtk/gtkfilechooserdefault.c:971 +#: ../gtk/gtkfilechooserdefault.c:968 msgid "Could not retrieve information about the file" msgstr "ഫയല്‍ സംബന്ധിച്ചുള്ള വിവരം ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:982 +#: ../gtk/gtkfilechooserdefault.c:979 msgid "Could not add a bookmark" msgstr "ഒരു ഓര്‍മ്മക്കുറിപ്പു് ചേര്‍ക്കുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:993 +#: ../gtk/gtkfilechooserdefault.c:990 msgid "Could not remove bookmark" msgstr "ഓര്‍മ്മക്കുറിപ്പു് നീക്കം ചെയ്യുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:1004 +#: ../gtk/gtkfilechooserdefault.c:1001 msgid "The folder could not be created" msgstr "അറ ഉണ്ടാക്കുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:1017 +#: ../gtk/gtkfilechooserdefault.c:1014 msgid "" "The folder could not be created, as a file with the same name already " "exists. Try using a different name for the folder, or rename the file first." @@ -1459,27 +1503,29 @@ msgstr "" "അറ ഉണ്ടാക്കുവാന്‍ സാധ്യമായില്ല, കാരണം ആ പേരില്‍ മറ്റൊരു ഫയല്‍ നിലവിലുണ്ട്. വേറൊരു പേരു് " "ഉപയോഗിക്കുക, അല്ലെങ്കില്‍ ആദ്യം ഫയലിന്റെ പേരു് മാറ്റുക." -#: ../gtk/gtkfilechooserdefault.c:1031 +#: ../gtk/gtkfilechooserdefault.c:1028 msgid "You need to choose a valid filename." msgstr "ശരിയായൊരു ഫയല്‍നാമം തെരഞ്ഞെടുക്കേണ്ടതുണ്ടു്." -#: ../gtk/gtkfilechooserdefault.c:1034 +#: ../gtk/gtkfilechooserdefault.c:1031 #, c-format +#| msgid "Cannot change to folder because it is not local" msgid "Cannot create a file under %s as it is not a folder" msgstr "ഒരു ഫോള്‍ഡര്‍ അല്ലാത്തതിനാല്‍ %s-ല്‍ ഒരു ഫയല്‍ തയ്യാറാക്കുവാന്‍ സാധ്യമല്ല" -#: ../gtk/gtkfilechooserdefault.c:1046 +#: ../gtk/gtkfilechooserdefault.c:1043 msgid "" "You may only select folders. The item that you selected is not a folder; " "try using a different item." msgstr "" -"ഫോള്‍ഡറുകള്‍ മാത്രം തെരഞ്ഞെടുക്കുക. നിങ്ങള്‍ തെരഞ്ഞെടുത്തതു് ഒരു ഫോള്‍ഡറല്ല; വേറൊന്നു് തെരഞ്ഞെടുക്കുക." +"ഫോള്‍ഡറുകള്‍ മാത്രം തെരഞ്ഞെടുക്കുക. നിങ്ങള്‍ തെരഞ്ഞെടുത്തതു് ഒരു ഫോള്‍ഡറല്ല; " +"വേറൊന്നു് തെരഞ്ഞെടുക്കുക." -#: ../gtk/gtkfilechooserdefault.c:1056 +#: ../gtk/gtkfilechooserdefault.c:1053 msgid "Invalid file name" msgstr "തെറ്റായ ഫയല്‍നാമം" -#: ../gtk/gtkfilechooserdefault.c:1066 +#: ../gtk/gtkfilechooserdefault.c:1063 msgid "The folder contents could not be displayed" msgstr "അറയിലുള്ളവ പ്രദര്‍ശിപ്പിക്കുവാന്‍ സാധ്യമായില്ല" @@ -1487,209 +1533,209 @@ msgstr "അറയിലുള്ളവ പ്രദര്‍ശിപ്പി #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1592 +#: ../gtk/gtkfilechooserdefault.c:1589 #, c-format msgid "%1$s on %2$s" msgstr "%1$s, %2$s-ല്‍" -#: ../gtk/gtkfilechooserdefault.c:1741 +#: ../gtk/gtkfilechooserdefault.c:1738 msgid "Search" msgstr "തെരയുക" -#: ../gtk/gtkfilechooserdefault.c:1765 ../gtk/gtkfilechooserdefault.c:4991 +#: ../gtk/gtkfilechooserdefault.c:1762 ../gtk/gtkfilechooserdefault.c:4988 msgid "Recently Used" msgstr "ഏറ്റവും ഒടുവില്‍ ഉപയോഗിച്ച" -#: ../gtk/gtkfilechooserdefault.c:2364 +#: ../gtk/gtkfilechooserdefault.c:2361 msgid "Select which types of files are shown" msgstr "ഏത് തരം ഫയലുകളാണ് കാണിച്ചിട്ടുള്ളത് എന്ന് തെരഞ്ഞെടുക്കുക" -#: ../gtk/gtkfilechooserdefault.c:2723 +#: ../gtk/gtkfilechooserdefault.c:2720 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "ഓര്‍മ്മക്കുറിപ്പിലേയ്ക്കു് '%s' അറ ചേര്‍ക്കുക" -#: ../gtk/gtkfilechooserdefault.c:2767 +#: ../gtk/gtkfilechooserdefault.c:2764 #, c-format msgid "Add the current folder to the bookmarks" msgstr "ഈ അറ ഓര്‍മ്മക്കുറിപ്പിലേയ്ക്കു് ചേര്‍ക്കുക" -#: ../gtk/gtkfilechooserdefault.c:2769 +#: ../gtk/gtkfilechooserdefault.c:2766 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "തെരഞ്ഞെടുത്ത അറകള്‍ ഓര്‍മ്മക്കുറിപ്പിലേയ്ക്കു് ചേര്‍ക്കുക" -#: ../gtk/gtkfilechooserdefault.c:2807 +#: ../gtk/gtkfilechooserdefault.c:2804 #, c-format msgid "Remove the bookmark '%s'" msgstr "'%s' എന്ന ഓര്‍മ്മക്കുറിപ്പു് നീക്കം ചെയ്യുക" -#: ../gtk/gtkfilechooserdefault.c:2809 +#: ../gtk/gtkfilechooserdefault.c:2806 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "'%s' അടയാളക്കുറിപ്പു് നീക്കം ചെയ്യുവാന്‍ സാധ്യമല്ല" -#: ../gtk/gtkfilechooserdefault.c:2816 ../gtk/gtkfilechooserdefault.c:3702 +#: ../gtk/gtkfilechooserdefault.c:2813 ../gtk/gtkfilechooserdefault.c:3699 msgid "Remove the selected bookmark" msgstr "തെരഞ്ഞെടുത്ത ഓര്‍മ്മക്കുറിപ്പു് നീക്കം ചെയ്യുക" -#: ../gtk/gtkfilechooserdefault.c:3380 +#: ../gtk/gtkfilechooserdefault.c:3377 msgid "Remove" msgstr "നീക്കം ചെയ്യുക" -#: ../gtk/gtkfilechooserdefault.c:3389 -msgid "Rename…" -msgstr "പേര് മാറ്റുക…‌" +#: ../gtk/gtkfilechooserdefault.c:3386 +msgid "Rename..." +msgstr "പേരു് മാറ്റുക..." #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3553 +#: ../gtk/gtkfilechooserdefault.c:3550 msgid "Places" msgstr "സ്ഥലങ്ങള്‍" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3610 +#: ../gtk/gtkfilechooserdefault.c:3607 msgid "_Places" msgstr "_സ്ഥലങ്ങള്‍" -#: ../gtk/gtkfilechooserdefault.c:3690 +#: ../gtk/gtkfilechooserdefault.c:3687 msgid "Add the selected folder to the Bookmarks" msgstr "തെരഞ്ഞെടുത്ത അറ ഓര്‍മ്മക്കുറിപ്പിലേയ്ക്കു് ചേര്‍ക്കുക" -#: ../gtk/gtkfilechooserdefault.c:3951 +#: ../gtk/gtkfilechooserdefault.c:3948 msgid "Could not select file" msgstr "ഫയല്‍ തെരഞ്ഞെടുക്കുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:4176 +#: ../gtk/gtkfilechooserdefault.c:4173 msgid "_Visit this file" msgstr "ഈ ഫയല്‍ _സന്ദര്‍ശിയ്ക്കുക" -#: ../gtk/gtkfilechooserdefault.c:4179 +#: ../gtk/gtkfilechooserdefault.c:4176 +#| msgid "Copy _Location" msgid "_Copy file’s location" msgstr "ഫയലിന്റെ സ്ഥാനം _പകര്‍ത്തുക" -#: ../gtk/gtkfilechooserdefault.c:4182 +#: ../gtk/gtkfilechooserdefault.c:4179 msgid "_Add to Bookmarks" msgstr "ഓര്‍മ്മക്കുറിപ്പിലേയ്ക്കു് _ചേര്‍ക്കുക" -#: ../gtk/gtkfilechooserdefault.c:4189 +#: ../gtk/gtkfilechooserdefault.c:4186 msgid "Show _Hidden Files" msgstr "_അദൃശ്യമായ ഫയലുകള്‍ കാണിക്കുക" -#: ../gtk/gtkfilechooserdefault.c:4192 +#: ../gtk/gtkfilechooserdefault.c:4189 msgid "Show _Size Column" msgstr "_വ്യാപ്തിയ്ക്കുള്ള നിര കാണിക്കുക" -#: ../gtk/gtkfilechooserdefault.c:4417 +#: ../gtk/gtkfilechooserdefault.c:4414 msgid "Files" msgstr "ഫയലുകള്‍" -#: ../gtk/gtkfilechooserdefault.c:4468 +#: ../gtk/gtkfilechooserdefault.c:4465 msgid "Name" msgstr "പേരു്" -#: ../gtk/gtkfilechooserdefault.c:4491 +#: ../gtk/gtkfilechooserdefault.c:4488 msgid "Size" msgstr "വലിപ്പം" -#: ../gtk/gtkfilechooserdefault.c:4505 +#: ../gtk/gtkfilechooserdefault.c:4502 msgid "Modified" msgstr "മാറ്റം വരുത്തിയവ" #. Label -#: ../gtk/gtkfilechooserdefault.c:4598 +#: ../gtk/gtkfilechooserdefault.c:4595 msgid "_Name:" msgstr "_പേരു്:" -#: ../gtk/gtkfilechooserdefault.c:4829 +#: ../gtk/gtkfilechooserdefault.c:4826 msgid "Type a file name" msgstr "ഒരു ഫയലിന്റെ പേരു് ടൈപ്പ് ചെയ്യുക" -#: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887 +#: ../gtk/gtkfilechooserdefault.c:4873 ../gtk/gtkfilechooserdefault.c:4884 msgid "Please select a folder below" msgstr "താഴെയുള്ള ഒരു ഫോള്‍ഡര്‍ ദയവായി തെരഞ്ഞെടുക്കുക" -#: ../gtk/gtkfilechooserdefault.c:4882 +#: ../gtk/gtkfilechooserdefault.c:4879 +#| msgid "Type a file name" msgid "Please type a file name" msgstr "ഒരു ഫയലിന്റെ പേരു് ടൈപ്പ് ചെയ്യുക" #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4953 +#: ../gtk/gtkfilechooserdefault.c:4950 msgid "Create Fo_lder" msgstr "_അറ ഉണ്ടാക്കുക" -#: ../gtk/gtkfilechooserdefault.c:5001 +#: ../gtk/gtkfilechooserdefault.c:4998 msgid "Search:" msgstr "തെരയുക:" -#: ../gtk/gtkfilechooserdefault.c:5052 +#: ../gtk/gtkfilechooserdefault.c:5049 msgid "_Location:" msgstr "_സ്ഥാനം:" -#: ../gtk/gtkfilechooserdefault.c:5502 +#: ../gtk/gtkfilechooserdefault.c:5500 msgid "Save in _folder:" msgstr "_അറയില്‍ സൂക്ഷിക്കുക:" -#: ../gtk/gtkfilechooserdefault.c:5504 +#: ../gtk/gtkfilechooserdefault.c:5502 msgid "Create in _folder:" msgstr "_അറയില്‍ ഉണ്ടാക്കുക:" -#: ../gtk/gtkfilechooserdefault.c:6597 +#: ../gtk/gtkfilechooserdefault.c:6589 #, c-format msgid "Could not read the contents of %s" msgstr "%s-ന്റെ ഉള്ളടക്കം വായിയ്ക്കുവാന്‍ സാധ്യമല്ല" -#: ../gtk/gtkfilechooserdefault.c:6601 +#: ../gtk/gtkfilechooserdefault.c:6593 msgid "Could not read the contents of the folder" msgstr "ഫോള്‍ഡറിന്റെ ഉള്ളടക്കം വായിയ്ക്കുവാന്‍ സാധ്യമല്ല" -#: ../gtk/gtkfilechooserdefault.c:6694 ../gtk/gtkfilechooserdefault.c:6762 -#: ../gtk/gtkfilechooserdefault.c:6942 +#: ../gtk/gtkfilechooserdefault.c:6686 ../gtk/gtkfilechooserdefault.c:6754 +#: ../gtk/gtkfilechooserdefault.c:6934 msgid "Unknown" msgstr "അപരിചിതം" -#: ../gtk/gtkfilechooserdefault.c:6709 +#: ../gtk/gtkfilechooserdefault.c:6701 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6711 +#: ../gtk/gtkfilechooserdefault.c:6703 msgid "Yesterday at %H:%M" msgstr "ഇന്നലെ %H:%M" -#: ../gtk/gtkfilechooserdefault.c:7413 +#: ../gtk/gtkfilechooserdefault.c:7405 msgid "Cannot change to folder because it is not local" msgstr "ലോക്കല്‍ ആയതിനാല്‍ അറയിലേയ്ക്കു് മാറ്റുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:8020 ../gtk/gtkfilechooserdefault.c:8041 +#: ../gtk/gtkfilechooserdefault.c:8009 ../gtk/gtkfilechooserdefault.c:8030 #, c-format msgid "Shortcut %s already exists" msgstr "%s എന്ന കുറുക്ക് വഴി നിലവിലുണ്ട്" -#: ../gtk/gtkfilechooserdefault.c:8131 +#: ../gtk/gtkfilechooserdefault.c:8120 #, c-format msgid "Shortcut %s does not exist" msgstr "%s എന്ന കുറുക്ക് വഴി നിലവിലില്ല" -#: ../gtk/gtkfilechooserdefault.c:8377 ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8366 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "\"%s\" എന്ന പേരില്‍ ഒരു ഫയല്‍ നിലവിലുണ്ട്. നിങ്ങള്‍ക്ക് അത് മാറ്റി എഴുതണമോ?" -#: ../gtk/gtkfilechooserdefault.c:8380 ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8369 ../gtk/gtkprintunixdialog.c:552 #, c-format -msgid "" -"The file already exists in \"%s\". Replacing it will overwrite its contents." -msgstr "" -"\"%s\"-ല്‍ ഒരു ഫയല്‍ ഉണ്ട്. അതിന്റെ സ്ഥാനത്ത് ഇത് സൂക്ഷിച്ചാല്‍ ഉള്ളടക്കം മാറ്റി എഴുതപ്പെടുന്നു." +msgid "The file already exists in \"%s\". Replacing it will overwrite its contents." +msgstr "\"%s\"-ല്‍ ഒരു ഫയല്‍ ഉണ്ട്. അതിന്റെ സ്ഥാനത്ത് ഇത് സൂക്ഷിച്ചാല്‍ ഉള്ളടക്കം മാറ്റി എഴുതപ്പെടുന്നു." -#: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "മാറ്റി വേറെ സൂക്ഷിക്കുക (_R)" -#: ../gtk/gtkfilechooserdefault.c:9192 +#: ../gtk/gtkfilechooserdefault.c:9181 msgid "Could not start the search process" msgstr "തിരച്ചില്‍ പ്രക്രിയ ആരംഭിക്കുവാനായില്ല" -#: ../gtk/gtkfilechooserdefault.c:9193 +#: ../gtk/gtkfilechooserdefault.c:9182 msgid "" "The program was not able to create a connection to the indexer daemon. " "Please make sure it is running." @@ -1697,11 +1743,11 @@ msgstr "" "indexer ഡെമണിലേക്ക് ഒരു കണക്ഷന്‍ ഉണ്ടാക്കുവാന്‍ പ്രോഗ്റാമിന് സാധ്യമായില്ല. അത് പ്രവറ്‍ത്തിക്കുന്നു " "എന്നുറപ്പാക്കുക." -#: ../gtk/gtkfilechooserdefault.c:9207 +#: ../gtk/gtkfilechooserdefault.c:9196 msgid "Could not send the search request" msgstr "തിരച്ചിലിനുള്ള ആവശ്യം അയയ്ക്കുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkfilechooserdefault.c:9817 +#: ../gtk/gtkfilechooserdefault.c:9806 #, c-format msgid "Could not mount %s" msgstr "%s മൌണ്ട് ചെയ്യുവാന്‍ സാധ്യമായില്ല" @@ -1729,23 +1775,23 @@ msgstr "അക്ഷരസഞ്ചയം" #: ../gtk/gtkfontchooserwidget.c:110 msgid "No fonts matched your search. You can revise your search and try again." -msgstr "" -"നിങ്ങള്‍ തെരയുന്ന അക്ഷരസഞ്ചയം ലഭ്യമല്ല. ദയവായി തെരച്ചില്‍ പരിശോധിച്ചു് വീണ്ടും ശ്രമിയ്ക്കുക." +msgstr "നിങ്ങള്‍ തെരയുന്ന അക്ഷരസഞ്ചയം ലഭ്യമല്ല. ദയവായി തെരച്ചില്‍ പരിശോധിച്ചു് വീണ്ടും ശ്രമിയ്ക്കുക." #: ../gtk/gtkfontchooserwidget.c:557 msgid "Search font name" msgstr "അക്ഷരസഞ്ചയത്തിന്റെ നാമം തെരയുക" #: ../gtk/gtkfontchooserwidget.c:891 +#| msgid "_Family:" msgid "Font Family" msgstr "അക്ഷരസഞ്ചയത്തിന്റെ കുടുംബം" -#: ../gtk/gtkicontheme.c:1931 +#: ../gtk/gtkicontheme.c:1627 #, c-format msgid "Icon '%s' not present in theme" msgstr "പ്രമേയത്തില്‍ '%s' എന്ന ചിഹ്നം ലഭ്യമല്ല" -#: ../gtk/gtkicontheme.c:3462 +#: ../gtk/gtkicontheme.c:3137 msgid "Failed to load icon" msgstr "ചിഹ്നം ലഭ്യമാക്കുന്നതില്‍ പരാജയം" @@ -1770,61 +1816,59 @@ msgid "System (%s)" msgstr "സിസ്റ്റം (%s)" #. Open Link -#: ../gtk/gtklabel.c:6139 +#: ../gtk/gtklabel.c:6224 msgid "_Open Link" msgstr "കണ്ണി _തുറക്കുക " #. Copy Link Address -#: ../gtk/gtklabel.c:6151 +#: ../gtk/gtklabel.c:6236 msgid "Copy _Link Address" msgstr "_കണ്ണിയുടെ വിലാസം പകര്‍ത്തുക" -#: ../gtk/gtk-launch.c:71 -msgid "APPLICATION [URI…] — launch an APPLICATION with URI." -msgstr "APPLICATION [URI…] - URI ഉള്ള ഒരു APPLICATION തുറക്കുക." +#: ../gtk/gtk-launch.c:69 +msgid "APPLICATION [URI...] - launch an APPLICATION with URI." +msgstr "APPLICATION [URI...] - URI ഉള്ള ഒരു APPLICATION തുറക്കുക." #. Translators: this message will appear after the usage string #. and before the list of options. -#: ../gtk/gtk-launch.c:75 +#: ../gtk/gtk-launch.c:73 msgid "" "Launch specified application by its desktop file info\n" "optionally passing list of URIs as arguments." -msgstr "ആര്‍ഗ്യുമെന്റുകളായി യുആര്‍ഐ പട്ടിക നല്‍കി, പണിയിട ഫയല്‍ ആവശ്യപ്പെട്ട പ്രയോഗം ലഭ്യമാക്കുന്നു." +msgstr "" +"ആര്‍ഗ്യുമെന്റുകളായി യുആര്‍ഐ പട്ടിക നല്‍കി, പണിയിട ഫയല്‍ " +"ആവശ്യപ്പെട്ട പ്രയോഗം ലഭ്യമാക്കുന്നു." -#: ../gtk/gtk-launch.c:87 +#: ../gtk/gtk-launch.c:85 #, c-format +#| msgid "Error loading icon: %s" msgid "Error parsing commandline options: %s\n" msgstr "കമാന്‍ഡ്‌ലൈന്‍ ഐച്ഛികങ്ങള്‍ പാഴ്സ് ചെയ്യുന്നതില്‍ പിശക് %s\n" -#: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102 +#: ../gtk/gtk-launch.c:87 ../gtk/gtk-launch.c:100 #, c-format msgid "Try \"%s --help\" for more information." msgstr "കൂടുതല്‍ വിവരങ്ങള്‍ക്കായി \"%s --help\" ഉപയോഗിയ്ക്കുക." #. Translators: the %s is the program name. This error message #. means the user is calling gtk-launch without any argument. -#: ../gtk/gtk-launch.c:100 +#: ../gtk/gtk-launch.c:98 #, c-format msgid "%s: missing application name" msgstr "%s: പ്രയോഗത്തിന്റെ നാമം ലഭ്യമല്ല" -#: ../gtk/gtk-launch.c:121 -#, 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. -#: ../gtk/gtk-launch.c:129 +#: ../gtk/gtk-launch.c:122 #, c-format msgid "%s: no such application %s" msgstr "%s: %s പോലുള്ള പ്രയോഗം" #. Translators: the first %s is the program name, the second one #. is the error message. -#: ../gtk/gtk-launch.c:147 +#: ../gtk/gtk-launch.c:140 #, c-format +#| msgid "Error loading icon: %s" msgid "%s: error launching application: %s\n" msgstr "%s: പ്രയോഗം ലഭ്യമാക്കുന്നതില്‍ പിശക്: %s\n" @@ -1837,6 +1881,8 @@ msgid "Invalid URI" msgstr "തെറ്റായ URI" #: ../gtk/gtklockbutton.c:290 +#| msgctxt "keyboard label" +#| msgid "Num_Lock" msgid "Lock" msgstr "പൂട്ടുക" @@ -1898,73 +1944,78 @@ msgstr "നിറ്‍ജ്ജീവമാക്കുവാനുള്ള GT #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: ../gtk/gtkmain.c:703 +#: ../gtk/gtkmain.c:707 msgid "default:LTR" msgstr "default:LTR" -#: ../gtk/gtkmain.c:768 +#: ../gtk/gtkmain.c:775 #, c-format msgid "Cannot open display: %s" msgstr "ഡിസ്പ്ലെ തുറക്കുവാന്‍ സാധ്യമല്ല: %s" -#: ../gtk/gtkmain.c:834 +#: ../gtk/gtkmain.c:841 msgid "GTK+ Options" msgstr "GTK+ ഉപാധികള്‍" -#: ../gtk/gtkmain.c:834 +#: ../gtk/gtkmain.c:841 msgid "Show GTK+ Options" msgstr "GTK+ ഉപാധികള്‍ കാണിക്കുക" -#: ../gtk/gtkmountoperation.c:535 +#: ../gtk/gtkmountoperation.c:532 msgid "Co_nnect" msgstr "ക_ണക്ട് ചെയ്യുക" -#: ../gtk/gtkmountoperation.c:609 +#: ../gtk/gtkmountoperation.c:606 +#| msgid "Co_nnect" msgid "Connect As" msgstr "ഇങ്ങനെ കണക്ട് ചെയ്യുക" -#: ../gtk/gtkmountoperation.c:618 +#: ../gtk/gtkmountoperation.c:615 +#| msgid "Connect _anonymously" msgid "_Anonymous" msgstr "_അജ്ഞാതം" -#: ../gtk/gtkmountoperation.c:627 +#: ../gtk/gtkmountoperation.c:624 msgid "Registered U_ser" msgstr "രജിസ്ടര്‍ _ഉപയോക്താവു്" -#: ../gtk/gtkmountoperation.c:638 +#: ../gtk/gtkmountoperation.c:635 +#| msgid "_Username:" msgid "_Username" msgstr "_ഉപയോക്താവു്" -#: ../gtk/gtkmountoperation.c:643 +#: ../gtk/gtkmountoperation.c:640 +#| msgid "_Domain:" msgid "_Domain" msgstr "_ഡൊമെയിന്‍" -#: ../gtk/gtkmountoperation.c:649 +#: ../gtk/gtkmountoperation.c:646 +#| msgid "_Password:" msgid "_Password" msgstr "_രഹസ്യവാക്ക്" -#: ../gtk/gtkmountoperation.c:671 +#: ../gtk/gtkmountoperation.c:668 msgid "Forget password _immediately" msgstr "_ഉടന്‍ രഹസ്യവാക്ക് ഉടന്‍ മറക്കുക" -#: ../gtk/gtkmountoperation.c:681 +#: ../gtk/gtkmountoperation.c:678 msgid "Remember password until you _logout" msgstr "_പുറത്തു് കടക്കുന്നതു്വരെ പാസ്‌വേര്‍ഡ് സൂക്ഷിക്കുക" -#: ../gtk/gtkmountoperation.c:691 +#: ../gtk/gtkmountoperation.c:688 msgid "Remember _forever" msgstr "_എന്നേക്കുമായി സൂക്ഷിക്കുക" -#: ../gtk/gtkmountoperation.c:1080 +#: ../gtk/gtkmountoperation.c:1077 #, c-format msgid "Unknown Application (PID %d)" msgstr "അപരിചിതമായ പ്രയോഗം (PID %d)" -#: ../gtk/gtkmountoperation.c:1263 +#: ../gtk/gtkmountoperation.c:1260 msgid "Unable to end process" msgstr "പ്രക്രിയ അവസാനിപ്പിക്കുവാന്‍ സാധ്യമല്ല" -#: ../gtk/gtkmountoperation.c:1300 +#: ../gtk/gtkmountoperation.c:1297 msgid "_End Process" msgstr "പ്രക്രിയ _അവസാനിപ്പിക്കുക" @@ -1999,7 +2050,7 @@ msgstr "Z ഷെല്‍" msgid "Cannot end process with PID %d: %s" msgstr "PID %d-ല്‍ പ്രക്രിയ അവസാനിപ്പിക്കുവാന്‍ സാധ്യമല്ല: %s" -#: ../gtk/gtknotebook.c:5069 ../gtk/gtknotebook.c:7723 +#: ../gtk/gtknotebook.c:5051 ../gtk/gtknotebook.c:7705 #, c-format msgid "Page %u" msgstr "താള്‍ %u" @@ -2007,14 +2058,16 @@ msgstr "താള്‍ %u" #. Translators: the format here is used to build the string that will be rendered #. * in the number emblem. #. -#: ../gtk/gtknumerableicon.c:482 +#: ../gtk/gtknumerableicon.c:481 #, c-format +#| msgctxt "calendar:day:digits" +#| msgid "%d" msgctxt "Number format" msgid "%d" msgstr "%d" -#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:848 -#: ../gtk/gtkpapersize.c:888 +#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:846 +#: ../gtk/gtkpapersize.c:886 msgid "Not a valid page setup file" msgstr "ശരിയായ താള്‍ ക്രമികരണ ഫയല്‍ അല്ല" @@ -2042,8 +2095,8 @@ msgstr "" " താഴെ: %s %s" #: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 -msgid "Manage Custom Sizes…" -msgstr "നിങ്ങള്‍ സജ്ജമാക്കിയ വലിപ്പങ്ങള്‍ കൈകാര്യം ചെയ്യുക…" +msgid "Manage Custom Sizes..." +msgstr "നിങ്ങള്‍ സജ്ജമാക്കിയ വലിപ്പംകള്‍ കൈകാര്യം ചെയ്യുക..." #: ../gtk/gtkpagesetupunixdialog.c:896 msgid "_Format for:" @@ -2073,7 +2126,7 @@ msgstr "താഴേക്കുള്ള വഴി" msgid "File System Root" msgstr "ഫയല്‍ സിസ്റ്റം റൂട്ട്" -#: ../gtk/gtkprintbackend.c:750 +#: ../gtk/gtkprintbackend.c:748 msgid "Authentication" msgstr "ആധികാരികത ഉറപ്പാക്കല്‍" @@ -2225,8 +2278,8 @@ msgid "Getting printer information failed" msgstr "പ്രിന്ററിന്റെ വിവരങ്ങള്‍ ലഭ്യമാക്കുന്നതില്‍ പരാജയം" #: ../gtk/gtkprintunixdialog.c:1916 -msgid "Getting printer information…" -msgstr "പ്രിന്ററിന്റെ വിവരങ്ങള്‍ ലഭ്യമാക്കുന്നു…" +msgid "Getting printer information..." +msgstr "പ്രിന്ററിന്റെ വിവരങ്ങള്‍ ലഭ്യമാക്കുന്നു..." #: ../gtk/gtkprintunixdialog.c:2184 msgid "Printer" @@ -2302,42 +2355,42 @@ msgstr "സാധാരണ" #. * multiple pages on a sheet when printing #. #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 msgid "Left to right, top to bottom" msgstr "ഇടതില്‍ നിന്നും വലത്തേയ്ക്ക്, മുകളില്‍ നിന്നും താഴേയ്ക്ക്" #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 msgid "Left to right, bottom to top" msgstr "ഇടതില്‍ നിന്നും വലത്തേയ്ക്ക്, താഴെ നിന്നും മുകളിലേക്ക്, " #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Right to left, top to bottom" msgstr "വലതു്‌ നിന്നും ഇടത്തേയ്ക്ക്, മുകളില്‍ നിന്നും താഴേയ്ക്ക്" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Right to left, bottom to top" msgstr ", താഴെ നിന്നും മുകളിലേക്ക്" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 msgid "Top to bottom, left to right" msgstr "മുകളില്‍ നിന്നും താഴേയ്ക്ക്, ഇടതില്‍ നിന്നും വലത്തേയ്ക്ക്" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 msgid "Top to bottom, right to left" msgstr "മുകളില്‍ നിന്നും താഴേയ്ക്ക്, വലതു്‌ നിന്നും ഇടത്തേയ്ക്ക്" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 msgid "Bottom to top, left to right" msgstr "താഴെ നിന്നും മുകളിലേക്ക്, " #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 msgid "Bottom to top, right to left" msgstr "താഴെ നിന്നും മുകളിലേക്ക്, വലതു്‌ നിന്നും ഇടത്തേയ്ക്ക്" @@ -2345,7 +2398,7 @@ msgstr "താഴെ നിന്നും മുകളിലേക്ക്, #. * dialog that controls in what order multiple pages are arranged #. #: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3766 msgid "Page Ordering" msgstr "പേജിന്റെ ക്രമം" @@ -2547,36 +2600,36 @@ msgstr "പ്രിന്റ് ചെയ്യുക" msgid "Select which type of documents are shown" msgstr "ഏത് തരം രേഖകളാണ് പ്രദര്‍ശിപ്പിച്ചിരിക്കുന്നത് എന്ന് തെരഞ്ഞെടുക്കുക" -#: ../gtk/gtkrecentchooserdefault.c:1129 ../gtk/gtkrecentchooserdefault.c:1166 +#: ../gtk/gtkrecentchooserdefault.c:1130 ../gtk/gtkrecentchooserdefault.c:1167 #, c-format msgid "No item for URI '%s' found" msgstr "URI '%s'-നുള്ള വസ്തു ലഭ്യമല്ല" -#: ../gtk/gtkrecentchooserdefault.c:1293 +#: ../gtk/gtkrecentchooserdefault.c:1294 msgid "Untitled filter" msgstr "തലക്കെട്ടില്ലാത്ത ഫില്‍‌റ്ററ്‍" -#: ../gtk/gtkrecentchooserdefault.c:1646 +#: ../gtk/gtkrecentchooserdefault.c:1647 msgid "Could not remove item" msgstr "വസ്തു നീക്കം ചെയ്യുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkrecentchooserdefault.c:1690 +#: ../gtk/gtkrecentchooserdefault.c:1691 msgid "Could not clear list" msgstr "പട്ടിക വെടിപ്പാക്കുവാന്‍ സാധ്യമായില്ല" -#: ../gtk/gtkrecentchooserdefault.c:1774 +#: ../gtk/gtkrecentchooserdefault.c:1775 msgid "Copy _Location" msgstr "സ്ഥാനം പകര്‍ത്തുക (_L)" -#: ../gtk/gtkrecentchooserdefault.c:1787 +#: ../gtk/gtkrecentchooserdefault.c:1788 msgid "_Remove From List" msgstr "പട്ടികയില്‍ നിന്നും നീക്കം ചെയ്യുക (_R)" -#: ../gtk/gtkrecentchooserdefault.c:1796 +#: ../gtk/gtkrecentchooserdefault.c:1797 msgid "_Clear List" msgstr "പട്ടിക വെടിപ്പാക്കുക (_C)" -#: ../gtk/gtkrecentchooserdefault.c:1810 +#: ../gtk/gtkrecentchooserdefault.c:1811 msgid "Show _Private Resources" msgstr "സ്വകാര്യ ഉറവിടങ്ങള്‍ കാണിക്കുക (_P)" @@ -3149,7 +3202,7 @@ msgstr "_ചെറുതാക്കുക" #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for #. * the state #. -#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:583 +#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:586 msgctxt "switch" msgid "ON" msgstr "ഓണ്‍ " @@ -3157,7 +3210,7 @@ msgstr "ഓണ്‍ " #. Translators: if the "off" state label requires more than three #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state #. -#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:598 +#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:615 msgctxt "switch" msgid "OFF" msgstr "ഓഫ്" @@ -3234,8 +3287,7 @@ msgstr "\"%s\" ശരിയായ പേരുള്ള ഒരു സവിശ #: ../gtk/gtktextbufferserialize.c:1200 #, c-format -msgid "" -"\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\"" +msgid "\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\"" msgstr "" "\"%s\", \"%s\" തരത്തിലുള്ള മൂല്ല്യമായി വേര്‍തിരിക്കുവാന്‍ സാധ്യമല്ല. ഇതു് \"%s\" എന്ന " "സവിശേഷതയ്ക്കുള്ളതാണു്" @@ -3274,8 +3326,7 @@ msgid "Serialized data is malformed" msgstr "സീരിയലൈസ്ഡ് ഡേറ്റാ തെറ്റാകുന്നു" #: ../gtk/gtktextbufferserialize.c:1868 -msgid "" -"Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001" +msgid "Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001" msgstr "സീരിയലൈസ്ഡ് ഡേറ്റാ തെറ്റാകുന്നു. ആദ്യത്തെ ഭാഗം GTKTEXTBUFFERCONTENTS-0001 അല്ല." #: ../gtk/gtktextutil.c:58 @@ -3328,7 +3379,7 @@ msgstr "അപ്രതീക്ഷിതമായ ആരംഭ റ്റാഗ msgid "Unexpected character data on line %d char %d" msgstr "%d വരിയില്‍ അപ്രതീക്ഷിതമായ അക്ഷരം %d" -#: ../gtk/gtkuimanager.c:2694 +#: ../gtk/gtkuimanager.c:2738 msgid "Empty" msgstr "ശൂന്യം" @@ -4508,169 +4559,169 @@ msgstr "താല്‍കാല്‍കമായി നിര്‍ത്ത msgid "Rejecting Jobs" msgstr "ജോലികള്‍ റിജെക്ര്റ് ചെയ്യുന്നു" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2915 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2909 msgid "Two Sided" msgstr "ഇരുവശവുമുള്ള" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2916 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2910 msgid "Paper Type" msgstr "ഏത് തരം പേപ്പറ്‍" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2917 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2911 msgid "Paper Source" msgstr "പേപ്പറിന്റെ ഉറവിടം" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2918 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2912 msgid "Output Tray" msgstr "ഔട്ട്പുട്ട് ട്രേ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2919 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2913 msgid "Resolution" msgstr "റിസല്യൂഷന്‍" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2920 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2914 msgid "GhostScript pre-filtering" msgstr "GhostScript പ്രീ-ഫില്‍‌റ്ററിങ്" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2923 msgid "One Sided" msgstr "ഒരു വശം മാത്രം" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2925 msgid "Long Edge (Standard)" msgstr "ലോങ് എഡ്ജ് (സാധാരണ)" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2927 msgid "Short Edge (Flip)" msgstr "ഷോര്‍ട്ട് എഡ്ജ് (ഫ്ലിപ്പ്)" #. Translators: this is an option of "Paper Source" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 msgid "Auto Select" msgstr "സ്വയം തെരഞ്ഞെടുക്കുക" #. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Resolution" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2941 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3435 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3429 msgid "Printer Default" msgstr "സ്വതവേസുള്ള പ്രിന്ററ്‍" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 msgid "Embed GhostScript fonts only" msgstr "GhostScript അക്ഷരസഞ്ചയങ്ങള്‍ മാത്രം എംബഡ് ചെയ്യുക" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2951 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 msgid "Convert to PS level 1" msgstr "പിഎസ് ലവല്‍ 1-ലേക്കു് വേര്‍തിരിക്കുക" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2953 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 msgid "Convert to PS level 2" msgstr "പിഎസ് ലവല്‍ 2-ലേക്കു് വേര്‍തിരിക്കുക" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2955 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 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/cups/gtkprintbackendcups.c:2964 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2958 msgid "Miscellaneous" msgstr "മറ്റുള്ളവ" #. Translators: These strings name the possible values of the #. * job priority option in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 msgid "Urgent" msgstr "അത്യാവശ്യമായ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 msgid "High" msgstr "കൂടിയ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 msgid "Medium" msgstr "ഇടത്തരം" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 msgid "Low" msgstr "കുറഞ്ഞ" #. Translators, this string is used to label the job priority option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3717 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3711 msgid "Job Priority" msgstr "ജോലി മുന്‍ഗണന" #. Translators, this string is used to label the billing info entry #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3728 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3722 msgid "Billing Info" msgstr "ബില്ലിങ് വിവരം" #. Translators, these strings are names for various 'standard' cover #. * pages that the printing system may support. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 msgid "None" msgstr "ഒന്നുമില്ല" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 msgid "Classified" msgstr "വേറ്‍തിരിച്ച" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 msgid "Confidential" msgstr "വളരെ രഹസ്യമായ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 msgid "Secret" msgstr "രഹസ്യം" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 msgid "Standard" msgstr "നിലവാരമുള്ള" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 msgid "Top Secret" msgstr "പരമ രഹസ്യം" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 msgid "Unclassified" msgstr "വേറ്‍തിരിച്ചിട്ടില്ലാത്ത" #. Translators, this string is used to label the pages-per-sheet option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3754 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3748 msgid "Pages per Sheet" msgstr "ഒരു ഷീറ്റില്‍ എത്ര താള്‍" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3814 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3808 msgid "Before" msgstr "മുമ്പ്" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3829 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3823 msgid "After" msgstr "ശേഷം" @@ -4678,14 +4729,14 @@ msgstr "ശേഷം" #. * a print job is printed. Possible values are 'now', a specified time, #. * or 'on hold' #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3843 msgid "Print at" 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/cups/gtkprintbackendcups.c:3860 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3854 msgid "Print at time" msgstr "പ്രിന്റ് ചെയ്യുക ഈ സമയത്ത്" @@ -4693,17 +4744,19 @@ msgstr "പ്രിന്റ് ചെയ്യുക ഈ സമയത്ത് #. * size. The two placeholders are replaced with the width and height #. * in points. E.g: "Custom 230.4x142.9" #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889 #, c-format msgid "Custom %sx%s" msgstr "കസ്റ്റം %sx%s" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3976 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3970 +#| msgid "Printer offline" msgid "Printer Profile" msgstr "പ്രിന്റര്‍ പ്രോഫൈല്‍" #. TRANSLATORS: this is when color profile information is unavailable -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3983 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3977 +#| msgid "Not available" msgid "Unavailable" msgstr "ലഭ്യമല്ല" @@ -4715,15 +4768,18 @@ msgstr "നിറം കൈകാര്യം ചെയ്യല്‍ ലഭ് #. TRANSLATORS: when there is no color profile available #: ../modules/printbackends/cups/gtkprintercups.c:233 +#| msgid "Not available" msgid "No profile available" msgstr "പ്രൊഫൈല്‍ ലഭ്യമല്ല" #. TRANSLATORS: when the color profile has no title #: ../modules/printbackends/cups/gtkprintercups.c:244 +#| msgid "Unspecified error" msgid "Unspecified profile" msgstr "വ്യക്തമാക്കാത്ത പ്രൊഫൈല്‍" #: ../modules/printbackends/file/gtkprintbackendfile.c:249 +#| msgid "output.%s" msgid "output" msgstr "ഔട്ട്പുട്ട്" @@ -4803,17 +4859,6 @@ msgstr "test-output.%s" msgid "Print to Test Printer" msgstr "ടെസ്റ്റ് പ്രിന്ററിലേക്ക് പ്രിന്റ് ചെയ്യുക" -#~| msgctxt "keyboard label" -#~| msgid "Home" -#~ msgid "Homepage" -#~ msgstr "ആസ്ഥാനതാള്‍" - -#~ msgid "Rename..." -#~ msgstr "പേരു് മാറ്റുക..." - -#~ msgid "Manage Custom Sizes..." -#~ msgstr "നിങ്ങള്‍ സജ്ജമാക്കിയ വലിപ്പംകള്‍ കൈകാര്യം ചെയ്യുക..." - #~ msgid "X screen to use" #~ msgstr "ഉപയോഗിക്കുവാനുള്ള X സ്ക്രീന്‍" @@ -5622,6 +5667,9 @@ msgstr "ടെസ്റ്റ് പ്രിന്ററിലേക്ക് #~ msgid "Rename file \"%s\" to:" #~ msgstr "\"%s\" എന്ന ഫയല്‍ മാറ്റേണ്ട പേര്:" +#~ msgid "_Rename" +#~ msgstr "പേരു് _മാറ്റുക" + #~ msgid "" #~ "The filename \"%s\" couldn't be converted to UTF-8. (try setting the " #~ "environment variable G_FILENAME_ENCODING): %s" From e2d0846386ed65efce5018e09a5196005dbedf16 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Wed, 13 Feb 2013 15:05:02 +0100 Subject: [PATCH 005/208] Make GtkIconInfo a GObject This is necessary in order to have async operations on it. All the old copy/free functions keeps working, and g_boxed_copy on a GObject also works, so this should be mostly compatible, but techncally its a minor ABI break since the GType changes fundamental type. Changes like this has happened before though, like with GVariant becomming its own fundamental type. https://bugzilla.gnome.org/show_bug.cgi?id=693802 --- gtk/gtkicontheme.c | 52 ++++++++++++++++++++++++++++++---------------- gtk/gtkicontheme.h | 6 ++++++ 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index 0520686206..3b79a55f3e 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -225,8 +225,15 @@ struct _SymbolicPixbufCache { SymbolicPixbufCache *next; }; +struct _GtkIconInfoClass +{ + GObjectClass parent_class; +}; + struct _GtkIconInfo { + GObject parent_instance; + /* Information about the source */ IconInfoKey key; @@ -256,8 +263,6 @@ struct _GtkIconInfo guint forced_size : 1; guint emblems_applied : 1; - guint ref_count; - /* Cached information if we go ahead and try to load * the icon. */ @@ -2971,19 +2976,20 @@ icon_data_free (GtkIconData *icon_data) * GtkIconInfo */ -G_DEFINE_BOXED_TYPE (GtkIconInfo, gtk_icon_info, - gtk_icon_info_copy, - gtk_icon_info_free) +static void gtk_icon_info_class_init (GtkIconInfoClass *klass); + +G_DEFINE_TYPE (GtkIconInfo, gtk_icon_info, G_TYPE_OBJECT) + +static void +gtk_icon_info_init (GtkIconInfo *icon_info) +{ + icon_info->scale = -1.; +} static GtkIconInfo * icon_info_new (void) { - GtkIconInfo *icon_info = g_slice_new0 (GtkIconInfo); - - icon_info->scale = -1.; - icon_info->ref_count = 1; - - return icon_info; + return g_object_new (GTK_TYPE_ICON_INFO, NULL); } static GtkIconInfo * @@ -3015,9 +3021,7 @@ gtk_icon_info_copy (GtkIconInfo *icon_info) g_return_val_if_fail (icon_info != NULL, NULL); - icon_info->ref_count++; - - return icon_info; + return g_object_ref (icon_info); } /** @@ -3033,9 +3037,13 @@ gtk_icon_info_free (GtkIconInfo *icon_info) { g_return_if_fail (icon_info != NULL); - icon_info->ref_count--; - if (icon_info->ref_count > 0) - return; + g_object_unref (icon_info); +} + +static void +gtk_icon_info_finalize (GObject *object) +{ + GtkIconInfo *icon_info = (GtkIconInfo *) object; if (icon_info->in_cache) g_hash_table_remove (icon_info->in_cache->priv->info_cache, &icon_info->key); @@ -3057,7 +3065,15 @@ gtk_icon_info_free (GtkIconInfo *icon_info) symbolic_pixbuf_cache_free (icon_info->symbolic_pixbuf_cache); - g_slice_free (GtkIconInfo, icon_info); + G_OBJECT_CLASS (gtk_icon_info_parent_class)->finalize (object); +} + +static void +gtk_icon_info_class_init (GtkIconInfoClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->finalize = gtk_icon_info_finalize; } /** diff --git a/gtk/gtkicontheme.h b/gtk/gtkicontheme.h index 8852110cdb..cf284291cb 100644 --- a/gtk/gtkicontheme.h +++ b/gtk/gtkicontheme.h @@ -29,6 +29,11 @@ G_BEGIN_DECLS #define GTK_TYPE_ICON_INFO (gtk_icon_info_get_type ()) +#define GTK_ICON_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ICON_INFO, GtkIconInfo)) +#define GTK_ICON_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ICON_INFO, GtkIconInfoClass)) +#define GTK_IS_ICON_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ICON_INFO)) +#define GTK_IS_ICON_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ICON_INFO)) +#define GTK_ICON_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ICON_INFO, GtkIconInfoClass)) #define GTK_TYPE_ICON_THEME (gtk_icon_theme_get_type ()) #define GTK_ICON_THEME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ICON_THEME, GtkIconTheme)) @@ -44,6 +49,7 @@ G_BEGIN_DECLS * an icon theme. */ typedef struct _GtkIconInfo GtkIconInfo; +typedef struct _GtkIconInfoClass GtkIconInfoClass; typedef struct _GtkIconTheme GtkIconTheme; typedef struct _GtkIconThemeClass GtkIconThemeClass; typedef struct _GtkIconThemePrivate GtkIconThemePrivate; From 7690846c3f18ff94c4d1213f722cab102cd7506a Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 14 Feb 2013 13:32:30 +0100 Subject: [PATCH 006/208] Add gtk_icon_info_load_icon_async This lets you asynchronously load icons. We need this for gnome-shell to replace its current non-threadsafe use of GtkIconTheme. https://bugzilla.gnome.org/show_bug.cgi?id=693802 --- gtk/gtk.symbols | 2 + gtk/gtkicontheme.c | 188 ++++++++++++++++++++++++++++++++++++++++++ gtk/gtkicontheme.h | 9 ++ tests/testicontheme.c | 61 ++++++++++++++ 4 files changed, 260 insertions(+) diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index d0e219c643..ff0ee486d5 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -1255,6 +1255,8 @@ gtk_icon_info_get_embedded_rect gtk_icon_info_get_filename gtk_icon_info_get_type gtk_icon_info_load_icon +gtk_icon_info_load_icon_async +gtk_icon_info_load_icon_finish gtk_icon_info_load_symbolic gtk_icon_info_load_symbolic_for_context gtk_icon_info_load_symbolic_for_style diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index 3b79a55f3e..f2e9f6c1c0 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -350,6 +350,7 @@ static void do_theme_change (GtkIconTheme *icon_theme); static void blow_themes (GtkIconTheme *icon_themes); static gboolean rescan_themes (GtkIconTheme *icon_themes); +static GtkIconData *icon_data_dup (GtkIconData *icon_data); static void icon_data_free (GtkIconData *icon_data); static void load_icon_data (IconThemeDir *dir, const char *path, @@ -2972,6 +2973,26 @@ icon_data_free (GtkIconData *icon_data) g_slice_free (GtkIconData, icon_data); } +static GtkIconData * +icon_data_dup (GtkIconData *icon_data) +{ + GtkIconData *dup = NULL; + if (icon_data) + { + dup = g_slice_new0 (GtkIconData); + *dup = *icon_data; + if (dup->n_attach_points > 0) + { + dup->attach_points = g_memdup (dup->attach_points, + sizeof (GdkPoint) * dup->n_attach_points); + } + dup->display_name = g_strdup (dup->display_name); + } + + return dup; +} + + /* * GtkIconInfo */ @@ -2992,6 +3013,45 @@ icon_info_new (void) return g_object_new (GTK_TYPE_ICON_INFO, NULL); } +/* This only copies whatever is needed to load the pixbuf, so that we can do + * a load in a thread without affecting the original IconInfo from the thread. + */ +static GtkIconInfo * +icon_info_dup (GtkIconInfo *icon_info) +{ + GtkIconInfo *dup; + GSList *l; + + dup = icon_info_new (); + + dup->filename = g_strdup (icon_info->filename); + if (icon_info->icon_file) + dup->icon_file = g_object_ref (icon_info->icon_file); + if (icon_info->loadable) + dup->loadable = g_object_ref (icon_info->loadable); + + for (l = icon_info->emblem_infos; l != NULL; l = l->next) + { + dup->emblem_infos = + g_slist_append (dup->emblem_infos, + icon_info_dup (l->data)); + } + + if (icon_info->cache_pixbuf) + dup->cache_pixbuf = g_object_ref (icon_info->cache_pixbuf); + + dup->data = icon_data_dup (icon_info->data); + dup->dir_type = icon_info->dir_type; + dup->dir_size = icon_info->dir_size; + dup->threshold = icon_info->threshold; + dup->desired_size = icon_info->desired_size; + dup->raw_coordinates = icon_info->raw_coordinates; + dup->forced_size = icon_info->forced_size; + dup->emblems_applied = icon_info->emblems_applied; + + return dup; +} + static GtkIconInfo * icon_info_new_builtin (BuiltinIcon *icon) { @@ -3238,6 +3298,21 @@ apply_emblems (GtkIconInfo *info) info->emblems_applied = TRUE; } +/* If this returns TRUE, its safe to call + icon_info_ensure_scale_and_pixbuf without blocking */ +static gboolean +icon_info_get_pixbuf_ready (GtkIconInfo *icon_info) +{ + if (icon_info->pixbuf && + (icon_info->emblem_infos == NULL || icon_info->emblems_applied)) + return TRUE; + + if (icon_info->load_error) + return TRUE; + + return FALSE; +} + /* This function contains the complicated logic for deciding * on the size at which to load the icon and loading it at * that size. @@ -3504,6 +3579,119 @@ gtk_icon_info_load_icon (GtkIconInfo *icon_info, return icon_info->proxy_pixbuf; } +static void +load_icon_thread (GTask *task, + gpointer source_object, + gpointer task_data, + GCancellable *cancellable) +{ + GtkIconInfo *dup = task_data; + + icon_info_ensure_scale_and_pixbuf (dup, FALSE); + g_task_return_pointer (task, NULL, NULL); +} + +/** + * gtk_icon_info_load_icon_async: + * @icon_info: a #GtkIconInfo structure from gtk_icon_theme_lookup_icon() + * @cancellable: (allow-none): optional #GCancellable object, + * %NULL to ignore + * @callback: (scope async): a #GAsyncReadyCallback to call when the + * request is satisfied + * @user_data: (closure): the data to pass to callback function + * + * Asynchronously load, render and scale an icon previously looked up + * from the icon theme using gtk_icon_theme_lookup_icon(). + * + * For more details, see gtk_icon_info_load_icon() which is the synchronous + * version of this call. + * + * Since: 3.8 + **/ +void +gtk_icon_info_load_icon_async (GtkIconInfo *icon_info, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *task; + GdkPixbuf *pixbuf; + GtkIconInfo *dup; + GError *error = NULL; + + task = g_task_new (icon_info, cancellable, callback, user_data); + + if (icon_info_get_pixbuf_ready (icon_info)) + { + pixbuf = gtk_icon_info_load_icon (icon_info, &error); + if (pixbuf == NULL) + g_task_return_error (task, error); + else + g_task_return_pointer (task, pixbuf, g_object_unref); + g_object_unref (task); + } + else + { + dup = icon_info_dup (icon_info); + g_task_set_task_data (task, dup, g_object_unref); + g_task_run_in_thread (task, load_icon_thread); + g_object_unref (task); + } +} + +/** + * gtk_icon_info_load_icon_finish: + * @icon_info: a #GtkIconInfo structure from gtk_icon_theme_lookup_icon() + * @res: a #GAsyncResult + * @error: (allow-none): location to store error information on failure, + * or %NULL. + * + * Finishes an async icon load, see gtk_icon_info_load_icon_async(). + * + * Return value: (transfer full): the rendered icon; this may be a newly + * created icon or a new reference to an internal icon, so you must + * not modify the icon. Use g_object_unref() to release your reference + * to the icon. + * + * Since: 3.8 + **/ +GdkPixbuf * +gtk_icon_info_load_icon_finish (GtkIconInfo *icon_info, + GAsyncResult *result, + GError **error) +{ + GTask *task = G_TASK (result); + GtkIconInfo *dup; + + g_return_val_if_fail (g_task_is_valid (result, icon_info), NULL); + + dup = g_task_get_task_data (task); + if (dup == NULL || g_task_had_error (task)) + return g_task_propagate_pointer (task, error); + + /* We ran the thread and it was not cancelled */ + + /* Check if someone else updated the icon_info in between */ + if (!icon_info_get_pixbuf_ready (icon_info)) + { + /* If not, copy results from dup back to icon_info */ + + icon_info->emblems_applied = dup->emblems_applied; + icon_info->scale = dup->scale; + g_clear_object (&icon_info->pixbuf); + if (dup->pixbuf) + icon_info->pixbuf = g_object_ref (dup->pixbuf); + g_clear_error (&icon_info->load_error); + if (dup->load_error) + icon_info->load_error = g_error_copy (dup->load_error); + } + + g_assert (icon_info_get_pixbuf_ready (icon_info)); + + /* This is now guaranteed to not block */ + return gtk_icon_info_load_icon (icon_info, error); +} + static gchar * gdk_color_to_css (GdkColor *color) { diff --git a/gtk/gtkicontheme.h b/gtk/gtkicontheme.h index cf284291cb..3888cdab7b 100644 --- a/gtk/gtkicontheme.h +++ b/gtk/gtkicontheme.h @@ -203,6 +203,15 @@ const gchar * gtk_icon_info_get_filename (GtkIconInfo *icon_info GdkPixbuf * gtk_icon_info_get_builtin_pixbuf (GtkIconInfo *icon_info); GdkPixbuf * gtk_icon_info_load_icon (GtkIconInfo *icon_info, GError **error); +GDK_AVAILABLE_IN_3_8 +void gtk_icon_info_load_icon_async (GtkIconInfo *icon_info, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GDK_AVAILABLE_IN_3_8 +GdkPixbuf * gtk_icon_info_load_icon_finish (GtkIconInfo *icon_info, + GAsyncResult *res, + GError **error); GdkPixbuf * gtk_icon_info_load_symbolic (GtkIconInfo *icon_info, const GdkRGBA *fg, const GdkRGBA *success_color, diff --git a/tests/testicontheme.c b/tests/testicontheme.c index ad9a459e05..bc0ee6959f 100644 --- a/tests/testicontheme.c +++ b/tests/testicontheme.c @@ -34,6 +34,28 @@ usage (void) ); } +static void +icon_loaded_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GdkPixbuf *pixbuf; + GError *error; + + error = NULL; + pixbuf = gtk_icon_info_load_icon_finish (GTK_ICON_INFO (source_object), + res, &error); + + if (pixbuf == NULL) + { + g_print ("%s\n", error->message); + exit (1); + } + + gtk_image_set_from_pixbuf (GTK_IMAGE (user_data), pixbuf); + g_object_unref (pixbuf); +} + int main (int argc, char *argv[]) @@ -101,6 +123,45 @@ main (int argc, char *argv[]) G_CALLBACK (gtk_main_quit), window); gtk_widget_show_all (window); + gtk_main (); + } + else if (strcmp (argv[1], "display-async") == 0) + { + GtkWidget *window, *image; + GtkIconSize size; + GtkIconInfo *info; + + if (argc < 4) + { + g_object_unref (icon_theme); + usage (); + return 1; + } + + if (argc >= 5) + size = atoi (argv[4]); + else + size = GTK_ICON_SIZE_BUTTON; + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + image = gtk_image_new (); + gtk_container_add (GTK_CONTAINER (window), image); + g_signal_connect (window, "delete-event", + G_CALLBACK (gtk_main_quit), window); + gtk_widget_show_all (window); + + info = gtk_icon_theme_lookup_icon (icon_theme, argv[3], size, + GTK_ICON_LOOKUP_USE_BUILTIN); + + if (info == NULL) + { + g_print ("Icon not found\n"); + return 1; + } + + gtk_icon_info_load_icon_async (info, + NULL, icon_loaded_cb, image); + gtk_main (); } else if (strcmp (argv[1], "list") == 0) From 23d5c41603b8a6277253261a210b87334d62748f Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 14 Feb 2013 14:58:02 +0100 Subject: [PATCH 007/208] GtkIconTheme Don't leak pixbuf in symbolic icon cache We need to unref the pixbuf we just put in the cache, because symbolic_pixbuf_cache_new takes a ref. https://bugzilla.gnome.org/show_bug.cgi?id=693802 --- gtk/gtkicontheme.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index f2e9f6c1c0..de5c96c6b9 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -3885,7 +3885,7 @@ _gtk_icon_info_load_symbolic_internal (GtkIconInfo *icon_info, icon_info->symbolic_pixbuf_cache = symbolic_pixbuf_cache_new (pixbuf, fg, success_color, warning_color, error_color, icon_info->symbolic_pixbuf_cache); - + g_object_unref (pixbuf); return symbolic_cache_get_proxy (icon_info->symbolic_pixbuf_cache, icon_info); } From f35ad7ab8b4f118353afb7331a52921927f2bc9d Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 14 Feb 2013 16:01:04 +0100 Subject: [PATCH 008/208] GtkIconTheme: Add async versions of symbolic icon loaders https://bugzilla.gnome.org/show_bug.cgi?id=693802 --- gtk/gtk.symbols | 4 + gtk/gtkicontheme.c | 354 +++++++++++++++++++++++++++++++++++++++++++-- gtk/gtkicontheme.h | 25 ++++ 3 files changed, 373 insertions(+), 10 deletions(-) diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index ff0ee486d5..8231f02886 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -1258,7 +1258,11 @@ gtk_icon_info_load_icon gtk_icon_info_load_icon_async gtk_icon_info_load_icon_finish gtk_icon_info_load_symbolic +gtk_icon_info_load_symbolic_async +gtk_icon_info_load_symbolic_finish gtk_icon_info_load_symbolic_for_context +gtk_icon_info_load_symbolic_for_context_async +gtk_icon_info_load_symbolic_for_context_finish gtk_icon_info_load_symbolic_for_style gtk_icon_info_new_for_pixbuf gtk_icon_info_set_raw_coordinates diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index de5c96c6b9..e2c9eaa340 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -3766,7 +3766,8 @@ _gtk_icon_info_load_symbolic_internal (GtkIconInfo *icon_info, const GdkRGBA *success_color, const GdkRGBA *warning_color, const GdkRGBA *error_color, - GError **error) + gboolean use_cache, + GError **error) { GInputStream *stream; GdkPixbuf *pixbuf; @@ -3778,10 +3779,13 @@ _gtk_icon_info_load_symbolic_internal (GtkIconInfo *icon_info, gchar *width, *height, *uri; SymbolicPixbufCache *symbolic_cache; - symbolic_cache = symbolic_pixbuf_cache_matches (icon_info->symbolic_pixbuf_cache, - fg, success_color, warning_color, error_color); - if (symbolic_cache) - return symbolic_cache_get_proxy (symbolic_cache, icon_info); + if (use_cache) + { + symbolic_cache = symbolic_pixbuf_cache_matches (icon_info->symbolic_pixbuf_cache, + fg, success_color, warning_color, error_color); + if (symbolic_cache) + return symbolic_cache_get_proxy (symbolic_cache, icon_info); + } /* css_fg can't possibly have failed, otherwise * that would mean we have a broken style */ @@ -3882,11 +3886,16 @@ _gtk_icon_info_load_symbolic_internal (GtkIconInfo *icon_info, if (pixbuf != NULL) { - icon_info->symbolic_pixbuf_cache = - symbolic_pixbuf_cache_new (pixbuf, fg, success_color, warning_color, error_color, - icon_info->symbolic_pixbuf_cache); - g_object_unref (pixbuf); - return symbolic_cache_get_proxy (icon_info->symbolic_pixbuf_cache, icon_info); + if (use_cache) + { + icon_info->symbolic_pixbuf_cache = + symbolic_pixbuf_cache_new (pixbuf, fg, success_color, warning_color, error_color, + icon_info->symbolic_pixbuf_cache); + g_object_unref (pixbuf); + return symbolic_cache_get_proxy (icon_info->symbolic_pixbuf_cache, icon_info); + } + else + return pixbuf; } return NULL; @@ -3960,6 +3969,7 @@ gtk_icon_info_load_symbolic (GtkIconInfo *icon_info, return _gtk_icon_info_load_symbolic_internal (icon_info, fg, success_color, warning_color, error_color, + TRUE, error); } @@ -4046,9 +4056,332 @@ gtk_icon_info_load_symbolic_for_context (GtkIconInfo *icon_info, return _gtk_icon_info_load_symbolic_internal (icon_info, fgp, success_colorp, warning_colorp, error_colorp, + TRUE, error); } +typedef struct { + gboolean is_symbolic; + GtkIconInfo *dup; + GdkRGBA fg; + gboolean fg_set; + GdkRGBA success_color; + gboolean success_color_set; + GdkRGBA warning_color; + gboolean warning_color_set; + GdkRGBA error_color; + gboolean error_color_set; +} AsyncSymbolicData; + +static void +async_symbolic_data_free (AsyncSymbolicData *data) +{ + if (data->dup) + g_object_unref (data->dup); + g_slice_free (AsyncSymbolicData, data); +} + +static void +async_load_no_symbolic_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GtkIconInfo *icon_info = GTK_ICON_INFO (source_object); + GTask *task = user_data; + GError *error = NULL; + GdkPixbuf *pixbuf; + + pixbuf = gtk_icon_info_load_icon_finish (icon_info, res, &error); + if (pixbuf == NULL) + g_task_return_error (task, error); + else + g_task_return_pointer (task, pixbuf, g_object_unref); + g_object_unref (task); +} + +static void +load_symbolic_icon_thread (GTask *task, + gpointer source_object, + gpointer task_data, + GCancellable *cancellable) +{ + AsyncSymbolicData *data = task_data; + GError *error; + GdkPixbuf *pixbuf; + + error = NULL; + pixbuf = + _gtk_icon_info_load_symbolic_internal (data->dup, + data->fg_set ? &data->fg : NULL, + data->success_color_set ? &data->success_color : NULL, + data->warning_color_set ? &data->warning_color : NULL, + data->error_color_set ? &data->error_color : NULL, + FALSE, + &error); + if (pixbuf == NULL) + g_task_return_error (task, error); + else + g_task_return_pointer (task, pixbuf, g_object_unref); +} + +/** + * gtk_icon_info_load_symbolic_async: + * @icon_info: a #GtkIconInfo structure from gtk_icon_theme_lookup_icon() + * @fg: a #GdkRGBA representing the foreground color of the icon + * @success_color: (allow-none): a #GdkRGBA representing the warning color + * of the icon or %NULL to use the default color + * @warning_color: (allow-none): a #GdkRGBA representing the warning color + * of the icon or %NULL to use the default color + * @error_color: (allow-none): a #GdkRGBA representing the error color + * of the icon or %NULL to use the default color (allow-none) + * @cancellable: (allow-none): optional #GCancellable object, + * %NULL to ignore + * @callback: (scope async): a #GAsyncReadyCallback to call when the + * request is satisfied + * @user_data: (closure): the data to pass to callback function + * + * Asynchronously load, render and scale a symbolic icon previously looked up + * from the icon theme using gtk_icon_theme_lookup_icon(). + * + * For more details, see gtk_icon_info_load_symbolic() which is the synchronous + * version of this call. + * + * Since: 3.8 + **/ +void +gtk_icon_info_load_symbolic_async (GtkIconInfo *icon_info, + const GdkRGBA *fg, + const GdkRGBA *success_color, + const GdkRGBA *warning_color, + const GdkRGBA *error_color, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *task; + AsyncSymbolicData *data; + gchar *icon_uri; + SymbolicPixbufCache *symbolic_cache; + GdkPixbuf *pixbuf; + + g_return_if_fail (icon_info != NULL); + g_return_if_fail (fg != NULL); + + task = g_task_new (icon_info, cancellable, callback, user_data); + + data = g_slice_new0 (AsyncSymbolicData); + g_task_set_task_data (task, data, (GDestroyNotify) async_symbolic_data_free); + + icon_uri = NULL; + if (icon_info->icon_file) + icon_uri = g_file_get_uri (icon_info->icon_file); + + data->is_symbolic = (icon_uri != NULL) && (g_str_has_suffix (icon_uri, "-symbolic.svg")); + g_free (icon_uri); + + if (!data->is_symbolic) + { + gtk_icon_info_load_icon_async (icon_info, cancellable, async_load_no_symbolic_cb, g_object_ref (task)); + } + else + { + symbolic_cache = symbolic_pixbuf_cache_matches (icon_info->symbolic_pixbuf_cache, + fg, success_color, warning_color, error_color); + if (symbolic_cache) + { + pixbuf = symbolic_cache_get_proxy (symbolic_cache, icon_info); + g_task_return_pointer (task, pixbuf, g_object_unref); + } + else + { + if (fg) + { + data->fg = *fg; + data->fg_set = TRUE; + } + + if (success_color) + { + data->success_color = *success_color; + data->success_color_set = TRUE; + } + + if (warning_color) + { + data->warning_color = *warning_color; + data->warning_color_set = TRUE; + } + + if (error_color) + { + data->error_color = *error_color; + data->error_color_set = TRUE; + } + + data->dup = icon_info_dup (icon_info); + g_task_run_in_thread (task, load_symbolic_icon_thread); + } + } + g_object_unref (task); +} + +/** + * gtk_icon_info_load_symbolic_finish: + * @icon_info: a #GtkIconInfo structure from gtk_icon_theme_lookup_icon() + * @res: a #GAsyncResult + * @was_symbolic: (out) (allow-none): a #gboolean, returns whether the + * loaded icon was a symbolic one and whether the @fg color was + * applied to it. + * @error: (allow-none): location to store error information on failure, + * or %NULL. + * + * Finishes an async icon load, see gtk_icon_info_load_symbolic_async(). + * + * Return value: (transfer full): the rendered icon; this may be a newly + * created icon or a new reference to an internal icon, so you must + * not modify the icon. Use g_object_unref() to release your reference + * to the icon. + * + * Since: 3.8 + **/ +GdkPixbuf * +gtk_icon_info_load_symbolic_finish (GtkIconInfo *icon_info, + GAsyncResult *result, + gboolean *was_symbolic, + GError **error) +{ + GTask *task = G_TASK (result); + AsyncSymbolicData *data = g_task_get_task_data (task); + SymbolicPixbufCache *symbolic_cache; + GdkPixbuf *pixbuf; + + if (was_symbolic) + *was_symbolic = data->is_symbolic; + + if (data->dup && !g_task_had_error (task)) + { + pixbuf = g_task_propagate_pointer (task, NULL); + + g_assert (pixbuf != NULL); /* we checked for !had_error above */ + + symbolic_cache = symbolic_pixbuf_cache_matches (icon_info->symbolic_pixbuf_cache, + data->fg_set ? &data->fg : NULL, + data->success_color_set ? &data->success_color : NULL, + data->warning_color_set ? &data->warning_color : NULL, + data->error_color_set ? &data->error_color : NULL); + + if (symbolic_cache == NULL) + { + symbolic_cache = icon_info->symbolic_pixbuf_cache = + symbolic_pixbuf_cache_new (pixbuf, + data->fg_set ? &data->fg : NULL, + data->success_color_set ? &data->success_color : NULL, + data->warning_color_set ? &data->warning_color : NULL, + data->error_color_set ? &data->error_color : NULL, + icon_info->symbolic_pixbuf_cache); + } + + g_object_unref (pixbuf); + + return symbolic_cache_get_proxy (symbolic_cache, icon_info); + } + + return g_task_propagate_pointer (task, error); +} + +/** + * gtk_icon_info_load_symbolic_async: + * @icon_info: a #GtkIconInfo structure from gtk_icon_theme_lookup_icon() + * @context: a #GtkStyleContext + * @cancellable: (allow-none): optional #GCancellable object, + * %NULL to ignore + * @callback: (scope async): a #GAsyncReadyCallback to call when the + * request is satisfied + * @user_data: (closure): the data to pass to callback function + * + * Asynchronously load, render and scale a symbolic icon previously looked up + * from the icon theme using gtk_icon_theme_lookup_icon(). + * + * For more details, see gtk_icon_info_load_symbolic_for_context() which is the synchronous + * version of this call. + * + * Since: 3.8 + **/ +void +gtk_icon_info_load_symbolic_for_context_async (GtkIconInfo *icon_info, + GtkStyleContext *context, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GdkRGBA *color = NULL; + GdkRGBA fg; + GdkRGBA *fgp; + GdkRGBA success_color; + GdkRGBA *success_colorp; + GdkRGBA warning_color; + GdkRGBA *warning_colorp; + GdkRGBA error_color; + GdkRGBA *error_colorp; + GtkStateFlags state; + + g_return_if_fail (icon_info != NULL); + g_return_if_fail (context != NULL); + + fgp = success_colorp = warning_colorp = error_colorp = NULL; + + state = gtk_style_context_get_state (context); + gtk_style_context_get (context, state, "color", &color, NULL); + if (color) + { + fg = *color; + fgp = &fg; + gdk_rgba_free (color); + } + + if (gtk_style_context_lookup_color (context, "success_color", &success_color)) + success_colorp = &success_color; + + if (gtk_style_context_lookup_color (context, "warning_color", &warning_color)) + warning_colorp = &warning_color; + + if (gtk_style_context_lookup_color (context, "error_color", &error_color)) + error_colorp = &error_color; + + gtk_icon_info_load_symbolic_async (icon_info, + fgp, success_colorp, + warning_colorp, error_colorp, + cancellable, callback, user_data); +} + +/** + * gtk_icon_info_load_symbolic_for_context_finish: + * @icon_info: a #GtkIconInfo structure from gtk_icon_theme_lookup_icon() + * @res: a #GAsyncResult + * @was_symbolic: (out) (allow-none): a #gboolean, returns whether the + * loaded icon was a symbolic one and whether the @fg color was + * applied to it. + * @error: (allow-none): location to store error information on failure, + * or %NULL. + * + * Finishes an async icon load, see gtk_icon_info_load_symbolic_for_context_async(). + * + * Return value: (transfer full): the rendered icon; this may be a newly + * created icon or a new reference to an internal icon, so you must + * not modify the icon. Use g_object_unref() to release your reference + * to the icon. + * + * Since: 3.8 + **/ +GdkPixbuf * +gtk_icon_info_load_symbolic_for_context_finish (GtkIconInfo *icon_info, + GAsyncResult *result, + gboolean *was_symbolic, + GError **error) +{ + return gtk_icon_info_load_symbolic_finish (icon_info, result, was_symbolic, error); +} + static GdkRGBA * color_to_rgba (GdkColor *color, GdkRGBA *rgba) { @@ -4134,6 +4467,7 @@ gtk_icon_info_load_symbolic_for_style (GtkIconInfo *icon_info, return _gtk_icon_info_load_symbolic_internal (icon_info, &fg, success_colorp, warning_colorp, error_colorp, + TRUE, error); } diff --git a/gtk/gtkicontheme.h b/gtk/gtkicontheme.h index 3888cdab7b..4b3ba79867 100644 --- a/gtk/gtkicontheme.h +++ b/gtk/gtkicontheme.h @@ -219,10 +219,35 @@ GdkPixbuf * gtk_icon_info_load_symbolic (GtkIconInfo *icon_info const GdkRGBA *error_color, gboolean *was_symbolic, GError **error); +GDK_AVAILABLE_IN_3_8 +void gtk_icon_info_load_symbolic_async (GtkIconInfo *icon_info, + const GdkRGBA *fg, + const GdkRGBA *success_color, + const GdkRGBA *warning_color, + const GdkRGBA *error_color, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GDK_AVAILABLE_IN_3_8 +GdkPixbuf * gtk_icon_info_load_symbolic_finish (GtkIconInfo *icon_info, + GAsyncResult *res, + gboolean *was_symbolic, + GError **error); GdkPixbuf * gtk_icon_info_load_symbolic_for_context (GtkIconInfo *icon_info, GtkStyleContext *context, gboolean *was_symbolic, GError **error); +GDK_AVAILABLE_IN_3_8 +void gtk_icon_info_load_symbolic_for_context_async (GtkIconInfo *icon_info, + GtkStyleContext *context, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GDK_AVAILABLE_IN_3_8 +GdkPixbuf * gtk_icon_info_load_symbolic_for_context_finish (GtkIconInfo *icon_info, + GAsyncResult *res, + gboolean *was_symbolic, + GError **error); GDK_DEPRECATED_IN_3_0_FOR(gtk_icon_info_load_symbol_for_context) GdkPixbuf * gtk_icon_info_load_symbolic_for_style (GtkIconInfo *icon_info, GtkStyle *style, From b8af079258944a483785223c3031d2889aaf6bb5 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 14 Feb 2013 22:52:49 +0100 Subject: [PATCH 009/208] Update README.in for the GtkIconInfo type change --- README.in | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.in b/README.in index b5d9f30fe4..120b265ea6 100644 --- a/README.in +++ b/README.in @@ -71,6 +71,14 @@ and attach the patch to that bug report. Patches should be in unified diff form. (The -up option to GNU diff.) +Release notes for 3.6 +===================== + +* GtkIconInfo has changed from being a boxed type to a GObject. This + is technically an ABI change, but basically all existing code + will keep working if its used as a boxed type, and its not + possible to instantiate GtkIconInfos outside Gtk, so this is not + expected to be a big problem. Release notes for 3.6 ===================== From cb68f52270943dd5ec351466208c1d4458ccec68 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 14 Feb 2013 22:54:39 +0100 Subject: [PATCH 010/208] Add new GtkIconInfo calls to the reference docs --- docs/reference/gtk/gtk3-sections.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt index 554f072ffd..fa8e22dbf8 100644 --- a/docs/reference/gtk/gtk3-sections.txt +++ b/docs/reference/gtk/gtk3-sections.txt @@ -6480,8 +6480,14 @@ gtk_icon_info_get_base_size gtk_icon_info_get_filename gtk_icon_info_get_builtin_pixbuf gtk_icon_info_load_icon +gtk_icon_info_load_icon_async +gtk_icon_info_load_icon_finish gtk_icon_info_load_symbolic +gtk_icon_info_load_symbolic_async +gtk_icon_info_load_symbolic_finish gtk_icon_info_load_symbolic_for_style +gtk_icon_info_load_symbolic_for_style_async +gtk_icon_info_load_symbolic_for_style_finish gtk_icon_info_load_symbolic_for_context gtk_icon_info_set_raw_coordinates gtk_icon_info_get_embedded_rect From e89a2f0bfddfcef3ab42110a3812916c407aac1e Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 14 Feb 2013 23:01:19 +0100 Subject: [PATCH 011/208] gtk3-demo: Fix up resource handling We're not loading css files via resouce uris, as we want to support editing, so we need to use absolute references to any included resources. --- demos/gtk-demo/css_accordion.css | 2 +- demos/gtk-demo/css_basics.css | 2 +- demos/gtk-demo/css_multiplebgs.css | 4 ++-- demos/gtk-demo/css_pixbufs.css | 22 +++++++++++----------- demos/gtk-demo/css_shadows.css | 4 ++-- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/demos/gtk-demo/css_accordion.css b/demos/gtk-demo/css_accordion.css index b1d27ad093..957999a110 100644 --- a/demos/gtk-demo/css_accordion.css +++ b/demos/gtk-demo/css_accordion.css @@ -1,4 +1,4 @@ -@import url("reset.css"); +@import url("resource://css_accordion/reset.css"); * { transition-property: color, background-color, border-color, background-image, padding, border-width; diff --git a/demos/gtk-demo/css_basics.css b/demos/gtk-demo/css_basics.css index bd6a6944b9..62dba7a30a 100644 --- a/demos/gtk-demo/css_basics.css +++ b/demos/gtk-demo/css_basics.css @@ -6,7 +6,7 @@ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ -@import url("reset.css"); +@import url("resource://css_basics/reset.css"); /* Set a very futuristic style by default */ * { diff --git a/demos/gtk-demo/css_multiplebgs.css b/demos/gtk-demo/css_multiplebgs.css index 41089c3ef7..b23415d12e 100644 --- a/demos/gtk-demo/css_multiplebgs.css +++ b/demos/gtk-demo/css_multiplebgs.css @@ -6,8 +6,8 @@ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ -@import url("reset.css"); -@import url("cssview.css"); +@import url("resource://css_multiplebgs/reset.css"); +@import url("resource://css_multiplebgs/cssview.css"); #canvas { transition-property: background-color, background-image; diff --git a/demos/gtk-demo/css_pixbufs.css b/demos/gtk-demo/css_pixbufs.css index 01762565a5..226525c7e0 100644 --- a/demos/gtk-demo/css_pixbufs.css +++ b/demos/gtk-demo/css_pixbufs.css @@ -6,8 +6,8 @@ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ -@import url("reset.css"); -@import url("cssview.css"); +@import url("resource://css_pixbufs/reset.css"); +@import url("resource://css_pixbufs/cssview.css"); @keyframes move-the-image { 0% { background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; } @@ -51,15 +51,15 @@ } GtkWindow { - background-image: url("apple-red.png"), - url("gnome-applets.png"), - url("gnome-calendar.png"), - url("gnome-foot.png"), - url("gnome-gmush.png"), - url("gnome-gimp.png"), - url("gnome-gsame.png"), - url("gnu-keys.png"), - url("background.jpg"); + background-image: url("resource://css_pixbufs/apple-red.png"), + url("resource://css_pixbufs/gnome-applets.png"), + url("resource://css_pixbufs/gnome-calendar.png"), + url("resource://css_pixbufs/gnome-foot.png"), + url("resource://css_pixbufs/gnome-gmush.png"), + url("resource://css_pixbufs/gnome-gimp.png"), + url("resource://css_pixbufs/gnome-gsame.png"), + url("resource://css_pixbufs/gnu-keys.png"), + url("resource://css_pixbufs/background.jpg"); background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, repeat; animation: move-the-image infinite linear 3s, size-the-image infinite alternate ease-in-out 0.75s; diff --git a/demos/gtk-demo/css_shadows.css b/demos/gtk-demo/css_shadows.css index b38e229c0c..6e6b21a456 100644 --- a/demos/gtk-demo/css_shadows.css +++ b/demos/gtk-demo/css_shadows.css @@ -6,8 +6,8 @@ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ -@import url("reset.css"); -@import url("cssview.css"); +@import url("resource://css_shadows/reset.css"); +@import url("resource://css_shadows/cssview.css"); /* Get a nice background for the window */ .background { From 001f960a433a68124ce1cf49207c81fde646b57a Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Tue, 18 Sep 2012 22:13:06 -0400 Subject: [PATCH 012/208] GdkDisplayX11: Don't use substructure events in internal accounting We may receive events because SubstructureNotifyMask has been selected for the root window. (Most likely, this would occur because GTK+ is being used inside a window manager like Metacity or Mutter.) This can confuse various types of internal accounting, so detect such events and comprehensively ignore them for GDK's internal purposes. We still need to generate GDK events for these cases because you can select for substructure events with GDK_SUBSTRUCTURE_MASK. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/x11/gdkdisplay-x11.c | 124 +++++++++++++++++++++++---------------- 1 file changed, 73 insertions(+), 51 deletions(-) diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 194df810ca..20bde58a80 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -382,15 +382,11 @@ gdk_check_wm_state_changed (GdkWindow *window) do_net_wm_state_changes (window); } -static GdkWindow * -get_event_window (GdkEventTranslator *translator, - XEvent *xevent) +static Window +get_event_xwindow (XEvent *xevent) { - GdkDisplay *display; Window xwindow; - display = (GdkDisplay *) translator; - switch (xevent->type) { case DestroyNotify: @@ -405,11 +401,20 @@ get_event_window (GdkEventTranslator *translator, case ConfigureNotify: xwindow = xevent->xconfigure.window; break; + case ReparentNotify: + xwindow = xevent->xreparent.window; + break; + case GravityNotify: + xwindow = xevent->xgravity.window; + break; + case CirculateNotify: + xwindow = xevent->xcirculate.window; + break; default: xwindow = xevent->xany.window; } - return gdk_x11_window_lookup_for_display (display, xwindow); + return xwindow; } static gboolean @@ -418,7 +423,9 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, GdkEvent *event, XEvent *xevent) { + Window xwindow; GdkWindow *window; + gboolean is_substructure; GdkWindowImplX11 *window_impl = NULL; GdkScreen *screen = NULL; GdkX11Screen *x11_screen = NULL; @@ -426,12 +433,20 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, GdkX11Display *display_x11 = GDK_X11_DISPLAY (display); gboolean return_val; - /* Find the GdkWindow that this event relates to. - * Basically this means substructure events - * are reported same as structure events + /* Find the GdkWindow that this event relates to. If that's + * not the same as the window that the event was sent to, + * we are getting an event from SubstructureNotifyMask. + * We ignore such events for internal operation, but we + * need to report them to the application because of + * GDK_SUBSTRUCTURE_MASK (which should be removed at next + * opportunity.) The most likely reason for getting these + * events is when we are used in the Metacity or Mutter + * window managers. */ - window = get_event_window (translator, xevent); + xwindow = get_event_xwindow (xevent); + is_substructure = xwindow != xevent->xany.window; + window = gdk_x11_window_lookup_for_display (display, xwindow); if (window) { /* We may receive events such as NoExpose/GraphicsExpose @@ -460,7 +475,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, } } - if (xevent->type == DestroyNotify) + if (xevent->type == DestroyNotify && !is_substructure) { int i, n; @@ -622,8 +637,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, g_message ("destroy notify:\twindow: %ld", xevent->xdestroywindow.window)); - /* Ignore DestroyNotify from SubstructureNotifyMask */ - if (xevent->xdestroywindow.window == xevent->xdestroywindow.event) + if (!is_substructure) { event->any.type = GDK_DESTROY; event->any.window = window; @@ -646,27 +660,29 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, event->any.type = GDK_UNMAP; event->any.window = window; - /* If the WM supports the _NET_WM_STATE_HIDDEN hint, we do not want to - * interpret UnmapNotify events as implying iconic state. - * http://bugzilla.gnome.org/show_bug.cgi?id=590726. - */ - if (screen && - !gdk_x11_screen_supports_net_wm_hint (screen, - gdk_atom_intern_static_string ("_NET_WM_STATE_HIDDEN"))) - { - /* If we are shown (not withdrawn) and get an unmap, it means we were - * iconified in the X sense. If we are withdrawn, and get an unmap, it - * means we hid the window ourselves, so we will have already flipped - * the iconified bit off. + if (window && !is_substructure) + { + /* If the WM supports the _NET_WM_STATE_HIDDEN hint, we do not want to + * interpret UnmapNotify events as implying iconic state. + * http://bugzilla.gnome.org/show_bug.cgi?id=590726. */ - if (window && GDK_WINDOW_IS_MAPPED (window)) - gdk_synthesize_window_state (window, - 0, - GDK_WINDOW_STATE_ICONIFIED); - } + if (screen && + !gdk_x11_screen_supports_net_wm_hint (screen, + gdk_atom_intern_static_string ("_NET_WM_STATE_HIDDEN"))) + { + /* If we are shown (not withdrawn) and get an unmap, it means we were + * iconified in the X sense. If we are withdrawn, and get an unmap, it + * means we hid the window ourselves, so we will have already flipped + * the iconified bit off. + */ + if (GDK_WINDOW_IS_MAPPED (window)) + gdk_synthesize_window_state (window, + 0, + GDK_WINDOW_STATE_ICONIFIED); + } - if (window) - _gdk_x11_window_grab_check_unmap (window, xevent->xany.serial); + _gdk_x11_window_grab_check_unmap (window, xevent->xany.serial); + } break; @@ -678,11 +694,14 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, event->any.type = GDK_MAP; event->any.window = window; - /* Unset iconified if it was set */ - if (window && (window->state & GDK_WINDOW_STATE_ICONIFIED)) - gdk_synthesize_window_state (window, - GDK_WINDOW_STATE_ICONIFIED, - 0); + if (window && !is_substructure) + { + /* Unset iconified if it was set */ + if (window->state & GDK_WINDOW_STATE_ICONIFIED) + gdk_synthesize_window_state (window, + GDK_WINDOW_STATE_ICONIFIED, + 0); + } break; @@ -728,7 +747,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, } #ifdef HAVE_XSYNC - if (toplevel && display_x11->use_sync && !XSyncValueIsZero (toplevel->pending_counter_value)) + if (!is_substructure && toplevel && display_x11->use_sync && !XSyncValueIsZero (toplevel->pending_counter_value)) { toplevel->current_counter_value = toplevel->pending_counter_value; XSyncIntToValue (&toplevel->pending_counter_value, 0); @@ -773,21 +792,24 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, event->configure.x = xevent->xconfigure.x; event->configure.y = xevent->xconfigure.y; } - window->x = event->configure.x; - window->y = event->configure.y; - window->width = xevent->xconfigure.width; - window->height = xevent->xconfigure.height; + if (!is_substructure) + { + window->x = event->configure.x; + window->y = event->configure.y; + window->width = xevent->xconfigure.width; + window->height = xevent->xconfigure.height; - _gdk_window_update_size (window); - _gdk_x11_window_update_size (GDK_WINDOW_IMPL_X11 (window->impl)); + _gdk_window_update_size (window); + _gdk_x11_window_update_size (GDK_WINDOW_IMPL_X11 (window->impl)); - if (window->resize_count >= 1) - { - window->resize_count -= 1; + if (window->resize_count >= 1) + { + window->resize_count -= 1; - if (window->resize_count == 0) - _gdk_x11_moveresize_configure_done (display, window); - } + if (window->resize_count == 0) + _gdk_x11_moveresize_configure_done (display, window); + } + } } break; From 77bac0d6ae2cbbe9a41ea36e705cc12f36df4cbc Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 3 Oct 2012 18:34:01 -0400 Subject: [PATCH 013/208] Add GdkFrameClock Add an object GdkFrameClock that we associate with a GdkWindow. This tracks when the window needs to be repainted, and will also be used for other operations in the future like relayout and updating animations. Based on a patch from Havoc Pennington: https://mail.gnome.org/archives/gtk-devel-list/2010-October/msg00004.html https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/Makefile.am | 4 + gdk/gdkframeclock.c | 287 ++++++++++++++++++++++++++++++++++++++++ gdk/gdkframeclock.h | 77 +++++++++++ gdk/gdkframeclockidle.c | 182 +++++++++++++++++++++++++ gdk/gdkframeclockidle.h | 68 ++++++++++ gdk/gdkinternals.h | 2 + gdk/gdkwindow.c | 278 ++++++++++++++++++++++++++++++-------- gdk/gdkwindow.h | 6 + gtk/gtkwidget.c | 48 +++++++ gtk/gtkwidget.h | 2 + 10 files changed, 902 insertions(+), 52 deletions(-) create mode 100644 gdk/gdkframeclock.c create mode 100644 gdk/gdkframeclock.h create mode 100644 gdk/gdkframeclockidle.c create mode 100644 gdk/gdkframeclockidle.h diff --git a/gdk/Makefile.am b/gdk/Makefile.am index a04f7a3833..a265bcaf17 100644 --- a/gdk/Makefile.am +++ b/gdk/Makefile.am @@ -80,6 +80,7 @@ gdk_public_h_sources = \ gdkkeysyms-compat.h \ gdkmain.h \ gdkpango.h \ + gdkframeclock.h \ gdkpixbuf.h \ gdkprivate.h \ gdkproperty.h \ @@ -101,6 +102,7 @@ gdk_private_headers = \ gdkdisplaymanagerprivate.h \ gdkdisplayprivate.h \ gdkdndprivate.h \ + gdkframeclockidle.h \ gdkscreenprivate.h \ gdkinternals.h \ gdkintl.h \ @@ -125,6 +127,8 @@ gdk_c_sources = \ gdkkeys.c \ gdkkeyuni.c \ gdkoffscreenwindow.c \ + gdkframeclock.c \ + gdkframeclockidle.c \ gdkpango.c \ gdkpixbuf-drawable.c \ gdkrectangle.c \ diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c new file mode 100644 index 0000000000..6b23ce6321 --- /dev/null +++ b/gdk/gdkframeclock.c @@ -0,0 +1,287 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GTK+ Team and others 1997-2010. 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/. + */ + +#include "config.h" + +#include "gdkframeclock.h" + +/** + * SECTION:frameclock + * @Short_description: Frame clock syncs painting to a window or display + * @Title: Frame clock + * + * A #GdkFrameClock tells the application when to repaint a window. + * This may be synced to the vertical refresh rate of the monitor, for + * example. Even when the frame clock uses a simple timer rather than + * a hardware-based vertical sync, the frame clock helps because it + * ensures everything paints at the same time (reducing the total + * number of frames). The frame clock can also automatically stop + * painting when it knows the frames will not be visible, or scale back + * animation framerates. + * + * #GdkFrameClock is designed to be compatible with an OpenGL-based + * implementation or with mozRequestAnimationFrame in Firefox, + * for example. + * + * A frame clock is idle until someone requests a frame with + * gdk_frame_clock_request_frame(). At that time, the frame clock + * emits its GdkFrameClock:frame-requested signal if no frame was + * already pending. + * + * At some later time after the frame is requested, the frame clock + * MAY indicate that a frame should be painted. To paint a frame the + * clock will: Emit GdkFrameClock:before-paint; update the frame time + * in the default handler for GdkFrameClock:before-paint; emit + * GdkFrameClock:paint; emit GdkFrameClock:after-paint. The app + * should paint in a handler for the paint signal. + * + * If a given frame is not painted (the clock is idle), the frame time + * should still update to a conceptual "last frame." i.e. the frame + * time will keep moving forward roughly with wall clock time. + * + * The frame time is in milliseconds. However, it should not be + * thought of as having any particular relationship to wall clock + * time. Unlike wall clock time, it "snaps" to conceptual frame times + * so is low-resolution; it is guaranteed to never move backward (so + * say you reset your computer clock, the frame clock will not reset); + * and the frame clock is allowed to drift. For example nicer + * results when painting with vertical refresh sync may be obtained by + * painting as rapidly as possible, but always incrementing the frame + * time by the frame length on each frame. This results in a frame + * time that doesn't have a lot to do with wall clock time. + */ + +G_DEFINE_INTERFACE (GdkFrameClock, gdk_frame_clock, G_TYPE_OBJECT) + +enum { + FRAME_REQUESTED, + BEFORE_PAINT, + PAINT, + AFTER_PAINT, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL]; + +static void +gdk_frame_clock_default_init (GdkFrameClockInterface *iface) +{ + /** + * GdkFrameClock::frame-requested: + * @clock: the frame clock emitting the signal + * + * This signal is emitted when a frame is not pending, and + * gdk_frame_clock_request_frame() is called to request a frame. + */ + signals[FRAME_REQUESTED] = + g_signal_new (g_intern_static_string ("frame-requested"), + GDK_TYPE_FRAME_CLOCK, + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + /** + * GdkFrameClock::before-paint: + * @clock: the frame clock emitting the signal + * + * This signal is emitted immediately before the paint signal and + * indicates that the frame time has been updated, and signal + * handlers should perform any preparatory work before painting. + */ + signals[BEFORE_PAINT] = + g_signal_new (g_intern_static_string ("before-paint"), + GDK_TYPE_FRAME_CLOCK, + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + /** + * GdkFrameClock::paint: + * @clock: the frame clock emitting the signal + * + * Signal handlers for this signal should paint the window, screen, + * or whatever they normally paint. + */ + signals[PAINT] = + g_signal_new (g_intern_static_string ("paint"), + GDK_TYPE_FRAME_CLOCK, + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + /** + * GdkFrameClock::after-paint: + * @clock: the frame clock emitting the signal + * + * This signal is emitted immediately after the paint signal and + * allows signal handlers to do anything they'd like to do after + * painting has been completed. This is a relatively good time to do + * "expensive" processing in order to get it done in between frames. + */ + signals[AFTER_PAINT] = + g_signal_new (g_intern_static_string ("after-paint"), + GDK_TYPE_FRAME_CLOCK, + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); +} + +/** + * gdk_frame_clock_get_frame_time: + * @clock: the clock + * + * Gets the time that should currently be used for animations. Inside + * a paint, it's the time used to compute the animation position of + * everything in a frame. Outside a paint, it's the time of the + * conceptual "previous frame," which may be either the actual + * previous frame time, or if that's too old, an updated time. + * + * The returned time has no relationship to wall clock time. It + * increases roughly at 1 millisecond per wall clock millisecond, and + * it never decreases, but its value is only meaningful relative to + * previous frame clock times. + * + * + * Since: 3.0 + * Return value: a timestamp in milliseconds + */ +guint64 +gdk_frame_clock_get_frame_time (GdkFrameClock *clock) +{ + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), 0); + + return GDK_FRAME_CLOCK_GET_IFACE (clock)->get_frame_time (clock); +} + +/** + * gdk_frame_clock_request_frame: + * @clock: the clock + * + * Asks the frame clock to paint a frame. The frame + * may or may not ever be painted (the frame clock may + * stop itself for whatever reason), but the goal in + * normal circumstances would be to paint the frame + * at the next expected frame time. For example + * if the clock is running at 60fps the frame would + * ideally be painted within 1000/60=16 milliseconds. + * + * Since: 3.0 + */ +void +gdk_frame_clock_request_frame (GdkFrameClock *clock) +{ + g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); + + GDK_FRAME_CLOCK_GET_IFACE (clock)->request_frame (clock); +} + +/** + * gdk_frame_clock_get_frame_requested: + * @clock: the clock + * + * Gets whether a frame paint has been requested but has not been + * performed. + * + * + * Since: 3.0 + * Return value: TRUE if a frame paint is pending + */ +gboolean +gdk_frame_clock_get_frame_requested (GdkFrameClock *clock) +{ + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), FALSE); + + return GDK_FRAME_CLOCK_GET_IFACE (clock)->get_frame_requested (clock); +} + +/** + * gdk_frame_clock_get_frame_time_val: + * @clock: the clock + * @timeval: #GTimeVal to fill in with frame time + * + * Like gdk_frame_clock_get_frame_time() but returns the time as a + * #GTimeVal which may be handy with some APIs (such as + * #GdkPixbufAnimation). + */ +void +gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock, + GTimeVal *timeval) +{ + guint64 time_ms; + + g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); + + time_ms = gdk_frame_clock_get_frame_time (clock); + + timeval->tv_sec = time_ms / 1000; + timeval->tv_usec = (time_ms % 1000) * 1000; +} + +/** + * gdk_frame_clock_frame_requested: + * @clock: the clock + * + * Emits the frame-requested signal. Used in implementations of the + * #GdkFrameClock interface. + */ +void +gdk_frame_clock_frame_requested (GdkFrameClock *clock) +{ + g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); + + g_signal_emit (G_OBJECT (clock), + signals[FRAME_REQUESTED], 0); +} + +/** + * gdk_frame_clock_paint: + * @clock: the clock + * + * Emits the before-paint, paint, and after-paint signals. Used in + * implementations of the #GdkFrameClock interface. + */ +void +gdk_frame_clock_paint (GdkFrameClock *clock) +{ + g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); + + g_signal_emit (G_OBJECT (clock), + signals[BEFORE_PAINT], 0); + + g_signal_emit (G_OBJECT (clock), + signals[PAINT], 0); + + g_signal_emit (G_OBJECT (clock), + signals[AFTER_PAINT], 0); +} diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h new file mode 100644 index 0000000000..62124e2e7d --- /dev/null +++ b/gdk/gdkframeclock.h @@ -0,0 +1,77 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GTK+ Team and others 1997-2010. 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/. + */ + +#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GDK_FRAME_CLOCK_H__ +#define __GDK_FRAME_CLOCK_H__ + +#include + +G_BEGIN_DECLS + +#define GDK_TYPE_FRAME_CLOCK (gdk_frame_clock_get_type ()) +#define GDK_FRAME_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_FRAME_CLOCK, GdkFrameClock)) +#define GDK_IS_FRAME_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_FRAME_CLOCK)) +#define GDK_FRAME_CLOCK_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GDK_TYPE_FRAME_CLOCK, GdkFrameClockInterface)) + +typedef struct _GdkFrameClock GdkFrameClock; +typedef struct _GdkFrameClockInterface GdkFrameClockInterface; + +struct _GdkFrameClockInterface +{ + GTypeInterface base_iface; + + guint64 (* get_frame_time) (GdkFrameClock *clock); + void (* request_frame) (GdkFrameClock *clock); + gboolean (* get_frame_requested) (GdkFrameClock *clock); + + /* signals */ + /* void (* frame_requested) (GdkFrameClock *clock); */ + /* void (* before_paint) (GdkFrameClock *clock); */ + /* void (* paint) (GdkFrameClock *clock); */ + /* void (* after_paint) (GdkFrameClock *clock); */ +}; + +GType gdk_frame_clock_get_type (void) G_GNUC_CONST; + +guint64 gdk_frame_clock_get_frame_time (GdkFrameClock *clock); +void gdk_frame_clock_request_frame (GdkFrameClock *clock); +gboolean gdk_frame_clock_get_frame_requested (GdkFrameClock *clock); + +/* Convenience API */ +void gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock, + GTimeVal *timeval); + +/* Signal emitters (used in frame clock implementations) */ +void gdk_frame_clock_frame_requested (GdkFrameClock *clock); +void gdk_frame_clock_paint (GdkFrameClock *clock); + +G_END_DECLS + +#endif /* __GDK_FRAME_CLOCK_H__ */ diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c new file mode 100644 index 0000000000..ff20632e70 --- /dev/null +++ b/gdk/gdkframeclockidle.c @@ -0,0 +1,182 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GTK+ Team and others 1997-2010. 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/. + */ + +#include "config.h" + +#include "gdkframeclockidle.h" +#include "gdk.h" + +struct _GdkFrameClockIdlePrivate +{ + GTimer *timer; + /* timer_base is used to avoid ever going backward */ + guint64 timer_base; + guint64 frame_time; + + guint idle_id; + + unsigned int in_paint : 1; +}; + +static void gdk_frame_clock_idle_finalize (GObject *object); +static void gdk_frame_clock_idle_interface_init (GdkFrameClockInterface *iface); + +G_DEFINE_TYPE_WITH_CODE (GdkFrameClockIdle, gdk_frame_clock_idle, G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE (GDK_TYPE_FRAME_CLOCK, + gdk_frame_clock_idle_interface_init)) + +static void +gdk_frame_clock_idle_class_init (GdkFrameClockIdleClass *klass) +{ + GObjectClass *gobject_class = (GObjectClass*) klass; + + gobject_class->finalize = gdk_frame_clock_idle_finalize; + + g_type_class_add_private (klass, sizeof (GdkFrameClockIdlePrivate)); +} + +static void +gdk_frame_clock_idle_init (GdkFrameClockIdle *frame_clock_idle) +{ + GdkFrameClockIdlePrivate *priv; + + frame_clock_idle->priv = G_TYPE_INSTANCE_GET_PRIVATE (frame_clock_idle, + GDK_TYPE_FRAME_CLOCK_IDLE, + GdkFrameClockIdlePrivate); + priv = frame_clock_idle->priv; + + priv->timer = g_timer_new (); +} + +static void +gdk_frame_clock_idle_finalize (GObject *object) +{ + GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (object)->priv; + + g_timer_destroy (priv->timer); + + G_OBJECT_CLASS (gdk_frame_clock_idle_parent_class)->finalize (object); +} + +static guint64 +compute_frame_time (GdkFrameClockIdle *idle) +{ + GdkFrameClockIdlePrivate *priv = idle->priv; + guint64 computed_frame_time; + guint64 elapsed; + + elapsed = ((guint64) (g_timer_elapsed (priv->timer, NULL) * 1000)) + priv->timer_base; + if (elapsed < priv->frame_time) + { + /* clock went backward. adapt to that by forevermore increasing + * timer_base. For now, assume we've gone forward in time 1ms. + */ + /* hmm. just fix GTimer? */ + computed_frame_time = priv->frame_time + 1; + priv->timer_base += (priv->frame_time - elapsed) + 1; + } + else + { + computed_frame_time = elapsed; + } + + return computed_frame_time; +} + +static guint64 +gdk_frame_clock_idle_get_frame_time (GdkFrameClock *clock) +{ + GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (clock)->priv; + guint64 computed_frame_time; + + /* can't change frame time during a paint */ + if (priv->in_paint) + return priv->frame_time; + + /* Outside a paint, pick something close to "now" */ + computed_frame_time = compute_frame_time (GDK_FRAME_CLOCK_IDLE (clock)); + + /* 16ms is 60fps. We only update frame time that often because we'd + * like to try to keep animations on the same start times. + * get_frame_time() would normally be used outside of a paint to + * record an animation start time for example. + */ + if ((computed_frame_time - priv->frame_time) > 16) + priv->frame_time = computed_frame_time; + + return priv->frame_time; +} + +static gboolean +gdk_frame_clock_paint_idle (void *data) +{ + GdkFrameClock *clock = GDK_FRAME_CLOCK (data); + GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); + GdkFrameClockIdlePrivate *priv = clock_idle->priv; + + priv->idle_id = 0; + + priv->in_paint = TRUE; + priv->frame_time = compute_frame_time (clock_idle); + + gdk_frame_clock_paint (clock); + + priv->in_paint = FALSE; + + return FALSE; +} + +static void +gdk_frame_clock_idle_request_frame (GdkFrameClock *clock) +{ + GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (clock)->priv; + + if (priv->idle_id == 0) + { + priv->idle_id = gdk_threads_add_idle_full (GDK_PRIORITY_REDRAW, + gdk_frame_clock_paint_idle, + g_object_ref (clock), + (GDestroyNotify) g_object_unref); + + gdk_frame_clock_frame_requested (clock); + } +} + +static gboolean +gdk_frame_clock_idle_get_frame_requested (GdkFrameClock *clock) +{ + GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (clock)->priv; + + return priv->idle_id != 0; +} + +static void +gdk_frame_clock_idle_interface_init (GdkFrameClockInterface *iface) +{ + iface->get_frame_time = gdk_frame_clock_idle_get_frame_time; + iface->request_frame = gdk_frame_clock_idle_request_frame; + iface->get_frame_requested = gdk_frame_clock_idle_get_frame_requested; +} diff --git a/gdk/gdkframeclockidle.h b/gdk/gdkframeclockidle.h new file mode 100644 index 0000000000..f4815a9498 --- /dev/null +++ b/gdk/gdkframeclockidle.h @@ -0,0 +1,68 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GTK+ Team and others 1997-2010. 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/. + */ + +/* Uninstalled header, internal to GDK */ + +#ifndef __GDK_FRAME_CLOCK_IDLE_H__ +#define __GDK_FRAME_CLOCK_IDLE_H__ + +#include + +G_BEGIN_DECLS + +#define GDK_TYPE_FRAME_CLOCK_IDLE (gdk_frame_clock_idle_get_type ()) +#define GDK_FRAME_CLOCK_IDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_FRAME_CLOCK_IDLE, GdkFrameClockIdle)) +#define GDK_FRAME_CLOCK_IDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_FRAME_CLOCK_IDLE, GdkFrameClockIdleClass)) +#define GDK_IS_FRAME_CLOCK_IDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_FRAME_CLOCK_IDLE)) +#define GDK_IS_FRAME_CLOCK_IDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_FRAME_CLOCK_IDLE)) +#define GDK_FRAME_CLOCK_IDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_FRAME_CLOCK_IDLE, GdkFrameClockIdleClass)) + + +typedef struct _GdkFrameClockIdle GdkFrameClockIdle; +typedef struct _GdkFrameClockIdlePrivate GdkFrameClockIdlePrivate; +typedef struct _GdkFrameClockIdleClass GdkFrameClockIdleClass; + +struct _GdkFrameClockIdle +{ + GObject parent_instance; + + /*< private >*/ + GdkFrameClockIdlePrivate *priv; +}; + +struct _GdkFrameClockIdleClass +{ + GObjectClass parent_class; +}; + +GType gdk_frame_clock_idle_get_type (void) G_GNUC_CONST; + +void _gdk_frame_clock_idle_freeze_updates (GdkFrameClockIdle *clock_idle); +void _gdk_frame_clock_idle_thaw_updates (GdkFrameClockIdle *clock_idle); + +G_END_DECLS + +#endif /* __GDK_FRAME_CLOCK_IDLE_H__ */ diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index d150414c55..fb561e6f74 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -265,6 +265,8 @@ struct _GdkWindow gulong device_changed_handler_id; guint num_offscreen_children; + + GdkFrameClock *frame_clock; /* NULL to use from parent or default */ }; #define GDK_WINDOW_TYPE(d) (((GDK_WINDOW (d)))->window_type) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 0bc984def3..f82ad162b4 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -37,6 +37,7 @@ #include "gdkdeviceprivate.h" #include "gdkvisualprivate.h" #include "gdkmarshalers.h" +#include "gdkframeclockidle.h" #include "gdkwindowimpl.h" #include @@ -169,7 +170,8 @@ enum { enum { PROP_0, - PROP_CURSOR + PROP_CURSOR, + PROP_FRAME_CLOCK }; typedef enum { @@ -238,6 +240,10 @@ static void gdk_window_invalidate_rect_full (GdkWindow *window, static void _gdk_window_propagate_has_alpha_background (GdkWindow *window); static cairo_surface_t *gdk_window_ref_impl_surface (GdkWindow *window); +static void gdk_window_process_all_updates_internal (gboolean default_clock_only); + +static void gdk_ensure_default_frame_clock (void); + static guint signals[LAST_SIGNAL] = { 0 }; static gpointer parent_class = NULL; @@ -388,6 +394,23 @@ gdk_window_class_init (GdkWindowClass *klass) GDK_TYPE_CURSOR, G_PARAM_READWRITE)); + /** + * GdkWindow:paint-clock: + * + * The frame clock for a #GdkWindow, see #GdkFrameClock + * + * The frame clock remains the same for the lifetime of the window. + * + * Since: 3.0 + */ + g_object_class_install_property (object_class, + PROP_FRAME_CLOCK, + g_param_spec_object ("paint-clock", + P_("Frame clock"), + P_("Frame clock"), + GDK_TYPE_FRAME_CLOCK, + G_PARAM_READWRITE)); + /** * GdkWindow::pick-embedded-child: * @window: the window on which the signal is emitted @@ -600,6 +623,10 @@ gdk_window_set_property (GObject *object, gdk_window_set_cursor (window, g_value_get_object (value)); break; + case PROP_FRAME_CLOCK: + gdk_window_set_frame_clock (window, g_value_get_object (value)); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -620,6 +647,10 @@ gdk_window_get_property (GObject *object, g_value_set_object (value, gdk_window_get_cursor (window)); break; + case PROP_FRAME_CLOCK: + g_value_set_object (value, gdk_window_get_frame_clock (window)); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -3778,7 +3809,7 @@ gdk_cairo_create (GdkWindow *window) /* Code for dirty-region queueing */ static GSList *update_windows = NULL; -static guint update_idle = 0; +static GdkFrameClock *_gdk_default_frame_clock = NULL; static gboolean debug_updates = FALSE; static inline gboolean @@ -3877,12 +3908,25 @@ gdk_window_remove_update_window (GdkWindow *window) update_windows = g_slist_remove (update_windows, window); } -static gboolean -gdk_window_update_idle (gpointer data) +static void +gdk_window_paint_default_clock_updates (gpointer data) { - gdk_window_process_all_updates (); + gdk_window_process_all_updates_internal (TRUE); +} - return FALSE; +static void +gdk_ensure_default_frame_clock (void) +{ + if (_gdk_default_frame_clock == NULL) + { + _gdk_default_frame_clock = g_object_new (GDK_TYPE_FRAME_CLOCK_IDLE, + NULL); + + g_signal_connect (G_OBJECT (_gdk_default_frame_clock), + "paint", + G_CALLBACK (gdk_window_paint_default_clock_updates), + NULL); + } } static gboolean @@ -3903,11 +3947,7 @@ gdk_window_schedule_update (GdkWindow *window) gdk_window_is_toplevel_frozen (window))) return; - if (!update_idle) - update_idle = - gdk_threads_add_idle_full (GDK_PRIORITY_REDRAW, - gdk_window_update_idle, - NULL, NULL); + gdk_frame_clock_request_frame (gdk_window_get_frame_clock (window)); } void @@ -4220,6 +4260,19 @@ after_process_all_updates (void) g_slist_free (displays); } +/** + * gdk_window_process_all_updates: + * + * Calls gdk_window_process_updates() for all windows (see #GdkWindow) + * in the application. + * + **/ +void +gdk_window_process_all_updates (void) +{ + gdk_window_process_all_updates_internal (FALSE); +} + /* Currently it is not possible to override * gdk_window_process_all_updates in the same manner as * gdk_window_process_updates and gdk_window_invalidate_maybe_recurse @@ -4230,15 +4283,8 @@ after_process_all_updates (void) * displays and call the mehod. */ -/** - * gdk_window_process_all_updates: - * - * Calls gdk_window_process_updates() for all windows (see #GdkWindow) - * in the application. - * - **/ -void -gdk_window_process_all_updates (void) +static void +gdk_window_process_all_updates_internal (gboolean default_clock_only) { GSList *old_update_windows = update_windows; GSList *tmp_list = update_windows; @@ -4250,18 +4296,13 @@ gdk_window_process_all_updates (void) /* We can't do this now since that would recurse, so delay it until after the recursion is done. */ got_recursive_update = TRUE; - update_idle = 0; return; } in_process_all_updates = TRUE; got_recursive_update = FALSE; - if (update_idle) - g_source_remove (update_idle); - update_windows = NULL; - update_idle = 0; before_process_all_updates (); @@ -4274,7 +4315,8 @@ gdk_window_process_all_updates (void) if (!GDK_WINDOW_DESTROYED (window)) { if (window->update_freeze_count || - gdk_window_is_toplevel_frozen (window)) + gdk_window_is_toplevel_frozen (window) || + (default_clock_only && window->frame_clock != NULL)) gdk_window_add_update_window (window); else gdk_window_process_updates_internal (window); @@ -4296,31 +4338,20 @@ gdk_window_process_all_updates (void) redraw now so that it eventually happens, otherwise we could miss an update if nothing else schedules an update. */ - if (got_recursive_update && !update_idle) - update_idle = - gdk_threads_add_idle_full (GDK_PRIORITY_REDRAW, - gdk_window_update_idle, - NULL, NULL); + if (got_recursive_update) + gdk_window_schedule_update (NULL); } -/** - * gdk_window_process_updates: - * @window: a #GdkWindow - * @update_children: whether to also process updates for child windows - * - * Sends one or more expose events to @window. The areas in each - * expose event will cover the entire update area for the window (see - * gdk_window_invalidate_region() for details). Normally GDK calls - * gdk_window_process_all_updates() on your behalf, so there's no - * need to call this function unless you want to force expose events - * to be delivered immediately and synchronously (vs. the usual - * case, where GDK delivers them in an idle handler). Occasionally - * this is useful to produce nicer scrolling behavior, for example. - * - **/ -void -gdk_window_process_updates (GdkWindow *window, - gboolean update_children) + +enum { + PROCESS_UPDATES_NO_RECURSE, + PROCESS_UPDATES_WITH_ALL_CHILDREN, + PROCESS_UPDATES_WITH_SAME_CLOCK_CHILDREN +}; + +static void +gdk_window_process_updates_with_mode (GdkWindow *window, + int recurse_mode) { GdkWindow *impl_window; @@ -4346,7 +4377,7 @@ gdk_window_process_updates (GdkWindow *window, gdk_window_remove_update_window ((GdkWindow *)impl_window); } - if (update_children) + if (recurse_mode != PROCESS_UPDATES_NO_RECURSE) { /* process updates in reverse stacking order so composition or * painting over achieves the desired effect for offscreen windows @@ -4358,8 +4389,14 @@ gdk_window_process_updates (GdkWindow *window, for (node = g_list_last (children); node; node = node->prev) { - gdk_window_process_updates (node->data, TRUE); - g_object_unref (node->data); + GdkWindow *child = node->data; + if (recurse_mode == PROCESS_UPDATES_WITH_ALL_CHILDREN || + (recurse_mode == PROCESS_UPDATES_WITH_SAME_CLOCK_CHILDREN && + child->frame_clock == NULL)) + { + gdk_window_process_updates (child, TRUE); + } + g_object_unref (child); } g_list_free (children); @@ -4368,6 +4405,33 @@ gdk_window_process_updates (GdkWindow *window, g_object_unref (window); } +/** + * gdk_window_process_updates: + * @window: a #GdkWindow + * @update_children: whether to also process updates for child windows + * + * Sends one or more expose events to @window. The areas in each + * expose event will cover the entire update area for the window (see + * gdk_window_invalidate_region() for details). Normally GDK calls + * gdk_window_process_all_updates() on your behalf, so there's no + * need to call this function unless you want to force expose events + * to be delivered immediately and synchronously (vs. the usual + * case, where GDK delivers them in an idle handler). Occasionally + * this is useful to produce nicer scrolling behavior, for example. + * + **/ +void +gdk_window_process_updates (GdkWindow *window, + gboolean update_children) +{ + g_return_if_fail (GDK_IS_WINDOW (window)); + + return gdk_window_process_updates_with_mode (window, + update_children ? + PROCESS_UPDATES_WITH_ALL_CHILDREN : + PROCESS_UPDATES_NO_RECURSE); +} + static void gdk_window_invalidate_rect_full (GdkWindow *window, const GdkRectangle *rect, @@ -11535,3 +11599,113 @@ gdk_property_delete (GdkWindow *window, { GDK_WINDOW_IMPL_GET_CLASS (window->impl)->delete_property (window, property); } + +static void +gdk_window_paint_on_clock (GdkFrameClock *clock, + void *data) +{ + GdkWindow *window; + + window = GDK_WINDOW (data); + + /* Update window and any children on the same clock. + */ + gdk_window_process_updates_with_mode (window, PROCESS_UPDATES_WITH_SAME_CLOCK_CHILDREN); +} + +/** + * gdk_window_set_frame_clock: + * @window: window to set frame clock on + * @clock: the clock + * + * Sets the frame clock for the window. The frame clock for a window + * cannot be changed while the window is mapped. Set the frame + * clock to #NULL to use the default frame clock. (By default the + * frame clock comes from the window's parent or is a global default + * frame clock.) + * + * Since: 3.0 + */ +void +gdk_window_set_frame_clock (GdkWindow *window, + GdkFrameClock *clock) +{ + g_return_if_fail (GDK_IS_WINDOW (window)); + g_return_if_fail (clock == NULL || GDK_IS_FRAME_CLOCK (clock)); + g_return_if_fail (!GDK_WINDOW_IS_MAPPED (window)); + + if (clock == window->frame_clock) + return; + + /* If we are using our parent's clock, then the parent will repaint + * us when that clock fires. If we are using the default clock, then + * it does a gdk_window_process_all_updates() which will repaint us + * when the clock fires. If we are using our own clock, then we have + * to connect to "paint" on it ourselves and paint ourselves and + * any child windows. + */ + + if (clock) + { + g_object_ref (clock); + g_signal_connect (G_OBJECT (clock), + "paint", + G_CALLBACK (gdk_window_paint_on_clock), + window); + } + + if (window->frame_clock) + { + g_signal_handlers_disconnect_by_func (G_OBJECT (window->frame_clock), + G_CALLBACK (gdk_window_paint_on_clock), + window); + g_object_unref (window->frame_clock); + } + + window->frame_clock = clock; + g_object_notify (G_OBJECT (window), "paint-clock"); + + /* We probably should recurse child windows and emit notify on their + * paint-clock properties also, and we should emit notify when a + * window is first parented. + */ +} + +/** + * gdk_window_get_frame_clock: + * @window: window to get frame clock for + * + * Gets the frame clock for the window. The frame clock for a window + * never changes while the window is mapped. It may be changed at + * other times. + * + * Since: 3.0 + * Return value: (transfer none): the frame clock + */ +GdkFrameClock* +gdk_window_get_frame_clock (GdkWindow *window) +{ + g_return_val_if_fail (GDK_IS_WINDOW (window), NULL); + + if (window->frame_clock != NULL) + { + /* Frame clock set explicitly on this window */ + return window->frame_clock; + } + else + { + GdkWindow *parent; + + /* parent's frame clock or default */ + parent = gdk_window_get_effective_parent (window); + if (parent != NULL) + { + return gdk_window_get_frame_clock (parent); + } + else + { + gdk_ensure_default_frame_clock (); + return _gdk_default_frame_clock; + } + } +} diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h index a4fbac022e..a93e5ced99 100644 --- a/gdk/gdkwindow.h +++ b/gdk/gdkwindow.h @@ -32,6 +32,7 @@ #include #include #include +#include G_BEGIN_DECLS @@ -901,6 +902,11 @@ void gdk_window_set_support_multidevice (GdkWindow *window, gboolean support_multidevice); gboolean gdk_window_get_support_multidevice (GdkWindow *window); +/* Frame clock */ +void gdk_window_set_frame_clock (GdkWindow *window, + GdkFrameClock *clock); +GdkFrameClock* gdk_window_get_frame_clock (GdkWindow *window); + G_END_DECLS #endif /* __GDK_WINDOW_H__ */ diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index d161ee9194..a3509c4cc7 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4777,6 +4777,54 @@ gtk_widget_queue_resize_no_redraw (GtkWidget *widget) _gtk_size_group_queue_resize (widget, 0); } +/** + * gtk_widget_get_frame_clock: + * @widget: a #GtkWidget + * + * Obtains the frame clock for a widget. The frame clock is a global + * "ticker" that can be used to drive animations and repaints. The + * most common reason to get the frame clock is to call + * gdk_frame_clock_get_frame_time(), in order to get a time to use for + * animating. For example you might record the start of the animation + * with an initial value from gdk_frame_clock_get_frame_time(), and + * then update the animation by calling + * gdk_frame_clock_get_frame_time() again during each repaint. + * + * gdk_frame_clock_request_frame() will result in a new frame on the + * clock, but won't necessarily repaint any widgets. To repaint a + * widget, you have to use gtk_widget_queue_draw() which invalidates + * the widget (thus scheduling it to receive a draw on the next + * frame). gtk_widget_queue_draw() will also end up requesting a frame + * on the appropriate frame clock. + * + * A widget's frame clock will not change while the widget is + * mapped. Reparenting a widget (which implies a temporary unmap) can + * change the widget's frame clock. + * + * Unrealized widgets do not have a frame clock. + * + * Since: 3.0 + * Return value: a #GdkFrameClock (or #NULL if widget is unrealized) + */ +GdkFrameClock* +gtk_widget_get_frame_clock (GtkWidget *widget) +{ + g_return_val_if_fail (GTK_IS_WIDGET (widget), 0); + + if (widget->priv->realized) + { + GdkWindow *window; + + window = gtk_widget_get_window (widget); + g_assert (window != NULL); + return gdk_window_get_frame_clock (window); + } + else + { + return NULL; + } +} + /** * gtk_widget_size_request: * @widget: a #GtkWidget diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index a4c20e86c2..a8572e69d1 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -473,6 +473,8 @@ void gtk_widget_queue_draw_region (GtkWidget *widget, const cairo_region_t*region); void gtk_widget_queue_resize (GtkWidget *widget); void gtk_widget_queue_resize_no_redraw (GtkWidget *widget); +GdkFrameClock* gtk_widget_get_frame_clock (GtkWidget *widget); + GDK_DEPRECATED_IN_3_0_FOR(gtk_widget_get_preferred_size) void gtk_widget_size_request (GtkWidget *widget, GtkRequisition *requisition); From 7753883add412a4bbc6b49b9bc7ef037c5a34c36 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Tue, 18 Sep 2012 09:00:57 -0400 Subject: [PATCH 014/208] Use GdkFrameClock for relayout Add a ::layout signal to GdkFrameClock and use it instead of an idle handler to drive the restyling and relayout of containers. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdkframeclock.c | 21 ++++++++++ gdk/gdkframeclock.h | 1 + gtk/gtkcontainer.c | 83 +++++++++++++++++++++------------------ gtk/gtkcontainerprivate.h | 1 + gtk/gtkwidget.c | 3 ++ 5 files changed, 71 insertions(+), 38 deletions(-) diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index 6b23ce6321..ca5484080d 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -79,6 +79,7 @@ G_DEFINE_INTERFACE (GdkFrameClock, gdk_frame_clock, G_TYPE_OBJECT) enum { FRAME_REQUESTED, BEFORE_PAINT, + LAYOUT, PAINT, AFTER_PAINT, LAST_SIGNAL @@ -122,6 +123,23 @@ gdk_frame_clock_default_init (GdkFrameClockInterface *iface) g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + /** + * GdkFrameClock::layout: + * @clock: the frame clock emitting the signal + * + * This signal is emitted immediately before the paint signal and + * indicates that the frame time has been updated, and signal + * handlers should perform any preparatory work before painting. + */ + signals[LAYOUT] = + g_signal_new (g_intern_static_string ("layout"), + GDK_TYPE_FRAME_CLOCK, + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + /** * GdkFrameClock::paint: * @clock: the frame clock emitting the signal @@ -279,6 +297,9 @@ gdk_frame_clock_paint (GdkFrameClock *clock) g_signal_emit (G_OBJECT (clock), signals[BEFORE_PAINT], 0); + g_signal_emit (G_OBJECT (clock), + signals[LAYOUT], 0); + g_signal_emit (G_OBJECT (clock), signals[PAINT], 0); diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 62124e2e7d..043a890514 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -54,6 +54,7 @@ struct _GdkFrameClockInterface /* signals */ /* void (* frame_requested) (GdkFrameClock *clock); */ /* void (* before_paint) (GdkFrameClock *clock); */ + /* void (* layout) 1(GdkFrameClock *clock); */ /* void (* paint) (GdkFrameClock *clock); */ /* void (* after_paint) (GdkFrameClock *clock); */ }; diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c index 4377a5f683..938887ea14 100644 --- a/gtk/gtkcontainer.c +++ b/gtk/gtkcontainer.c @@ -236,6 +236,9 @@ struct _GtkContainerPrivate { GtkWidget *focus_child; + guint resize_handler; + GdkFrameClock *resize_clock; + guint border_width : 16; guint has_focus_chain : 1; @@ -344,8 +347,6 @@ static const gchar vadjustment_key[] = "gtk-vadjustment"; static guint vadjustment_key_id = 0; static const gchar hadjustment_key[] = "gtk-hadjustment"; static guint hadjustment_key_id = 0; -static GSList *container_resize_queue = NULL; -static GSList *container_restyle_queue = NULL; static guint container_signals[LAST_SIGNAL] = { 0 }; static GtkWidgetClass *parent_class = NULL; extern GParamSpecPool *_gtk_widget_child_property_pool; @@ -1357,10 +1358,15 @@ gtk_container_destroy (GtkWidget *widget) if (priv->resize_pending) _gtk_container_dequeue_resize_handler (container); + if (priv->restyle_pending) + priv->restyle_pending = FALSE; + + if (priv->resize_handler) { - container_restyle_queue = g_slist_remove (container_restyle_queue, container); - priv->restyle_pending = FALSE; + g_signal_handler_disconnect (priv->resize_clock, priv->resize_handler); + priv->resize_handler = 0; + priv->resize_clock = NULL; } if (priv->focus_child) @@ -1553,7 +1559,6 @@ _gtk_container_dequeue_resize_handler (GtkContainer *container) g_return_if_fail (GTK_IS_CONTAINER (container)); g_return_if_fail (container->priv->resize_pending); - container_resize_queue = g_slist_remove (container_resize_queue, container); container->priv->resize_pending = FALSE; } @@ -1630,12 +1635,10 @@ gtk_container_set_reallocate_redraws (GtkContainer *container, container->priv->reallocate_redraws = needs_redraws ? TRUE : FALSE; } -static gboolean -gtk_container_idle_sizer (gpointer data) +static void +gtk_container_idle_sizer (GdkFrameClock *clock, + GtkContainer *container) { - GSList *slist; - gint64 current_time; - /* We validate the style contexts in a single loop before even trying * to handle resizes instead of doing validations inline. * This is mostly necessary for compatibility reasons with old code, @@ -1646,16 +1649,13 @@ gtk_container_idle_sizer (gpointer data) * sane values. So the result of an invalid style context will never be * a program crash, but only a wrong layout or rendering. */ - current_time = g_get_monotonic_time (); - slist = container_restyle_queue; - container_restyle_queue = NULL; - while (slist) + if (container->priv->restyle_pending) { - GSList *next = slist->next; - GtkContainer *container = slist->data; GtkBitmask *empty; + gint64 current_time; empty = _gtk_bitmask_new (); + current_time = g_get_monotonic_time (); container->priv->restyle_pending = FALSE; _gtk_style_context_validate (gtk_widget_get_style_context (GTK_WIDGET (container)), @@ -1663,8 +1663,6 @@ gtk_container_idle_sizer (gpointer data) 0, empty); - g_slist_free_1 (slist); - slist = next; _gtk_bitmask_free (empty); } @@ -1674,35 +1672,40 @@ gtk_container_idle_sizer (gpointer data) * than trying to explicitely work around them with some extra flags, * since it doesn't cause any actual harm. */ - while (container_resize_queue) + if (container->priv->resize_pending) { - GtkContainer *container; - - slist = container_resize_queue; - container_resize_queue = slist->next; - container = slist->data; - g_slist_free_1 (slist); - container->priv->resize_pending = FALSE; gtk_container_check_resize (container); } - gdk_window_process_all_updates (); - - return container_resize_queue != NULL || container_restyle_queue != NULL; + if (!container->priv->restyle_pending && !container->priv->resize_pending) + { + g_signal_handler_disconnect (clock, container->priv->resize_handler); + container->priv->resize_handler = 0; + container->priv->resize_clock = NULL; + } + else + { + gdk_frame_clock_request_frame (clock); + } } static void gtk_container_start_idle_sizer (GtkContainer *container) { - /* already started */ - if (container_resize_queue != NULL || - container_restyle_queue != NULL) + GdkFrameClock *clock; + + if (container->priv->resize_handler != 0) return; - gdk_threads_add_idle_full (GTK_PRIORITY_RESIZE, - gtk_container_idle_sizer, - NULL, NULL); + clock = gtk_widget_get_frame_clock (GTK_WIDGET (container)); + if (clock == NULL) + return; + + container->priv->resize_clock = clock; + container->priv->resize_handler = g_signal_connect (clock, "layout", + G_CALLBACK (gtk_container_idle_sizer), container); + gdk_frame_clock_request_frame (clock); } static void @@ -1725,7 +1728,6 @@ gtk_container_queue_resize_handler (GtkContainer *container) { container->priv->resize_pending = TRUE; gtk_container_start_idle_sizer (container); - container_resize_queue = g_slist_prepend (container_resize_queue, container); } break; @@ -1780,8 +1782,6 @@ _gtk_container_queue_restyle (GtkContainer *container) return; gtk_container_start_idle_sizer (container); - - container_restyle_queue = g_slist_prepend (container_restyle_queue, container); priv->restyle_pending = TRUE; } @@ -1815,6 +1815,13 @@ _gtk_container_resize_invalidate (GtkContainer *container) _gtk_container_queue_resize_internal (container, TRUE); } +void +_gtk_container_maybe_start_idle_sizer (GtkContainer *container) +{ + if (container->priv->restyle_pending || container->priv->resize_pending) + gtk_container_start_idle_sizer (container); +} + void gtk_container_check_resize (GtkContainer *container) { diff --git a/gtk/gtkcontainerprivate.h b/gtk/gtkcontainerprivate.h index f12148bb4f..cd4bc5b2e9 100644 --- a/gtk/gtkcontainerprivate.h +++ b/gtk/gtkcontainerprivate.h @@ -39,6 +39,7 @@ GList * _gtk_container_focus_sort (GtkContainer *container, GtkWidget *old_focus); gboolean _gtk_container_get_reallocate_redraws (GtkContainer *container); +void _gtk_container_maybe_start_idle_sizer (GtkContainer *container); G_END_DECLS diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index a3509c4cc7..e1cf124f68 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4585,6 +4585,9 @@ gtk_widget_realize (GtkWidget *widget) _gtk_widget_enable_device_events (widget); gtk_widget_update_devices_mask (widget, TRUE); + if (GTK_IS_CONTAINER (widget)) + _gtk_container_maybe_start_idle_sizer (GTK_CONTAINER (widget)); + gtk_widget_pop_verify_invariants (widget); } } From c4545cc5d47364b66b7ecd7bb482210fb8c8655a Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 3 Oct 2012 19:38:40 -0400 Subject: [PATCH 015/208] GdkFrameClock: Make the phase explicit when requesting the frame Instead of having gdk_frame_clock_request_frame() have gdk_frame_clock_request_phase() where we can say what phase we need. This allows us to know if we get a frame-request during layout whether it's just a request for drawing from the layout, or whether another layout phase is needed. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdkframeclock.c | 43 ++++++----------------- gdk/gdkframeclock.h | 23 ++++++++---- gdk/gdkframeclockidle.c | 77 ++++++++++++++++++++++++++++++----------- gdk/gdkwindow.c | 3 +- gtk/gtkcontainer.c | 6 ++-- gtk/gtkwidget.c | 2 +- 6 files changed, 90 insertions(+), 64 deletions(-) diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index ca5484080d..9fcf642c36 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -47,7 +47,7 @@ * for example. * * A frame clock is idle until someone requests a frame with - * gdk_frame_clock_request_frame(). At that time, the frame clock + * gdk_frame_clock_request_phase(). At that time, the frame clock * emits its GdkFrameClock:frame-requested signal if no frame was * already pending. * @@ -203,7 +203,7 @@ gdk_frame_clock_get_frame_time (GdkFrameClock *clock) } /** - * gdk_frame_clock_request_frame: + * gdk_frame_clock_request_phase: * @clock: the clock * * Asks the frame clock to paint a frame. The frame @@ -217,15 +217,17 @@ gdk_frame_clock_get_frame_time (GdkFrameClock *clock) * Since: 3.0 */ void -gdk_frame_clock_request_frame (GdkFrameClock *clock) +gdk_frame_clock_request_phase (GdkFrameClock *clock, + GdkFrameClockPhase phase) { g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); - GDK_FRAME_CLOCK_GET_IFACE (clock)->request_frame (clock); + GDK_FRAME_CLOCK_GET_IFACE (clock)->request_phase (clock, phase); } + /** - * gdk_frame_clock_get_frame_requested: + * gdk_frame_clock_get_requested: * @clock: the clock * * Gets whether a frame paint has been requested but has not been @@ -235,12 +237,12 @@ gdk_frame_clock_request_frame (GdkFrameClock *clock) * Since: 3.0 * Return value: TRUE if a frame paint is pending */ -gboolean -gdk_frame_clock_get_frame_requested (GdkFrameClock *clock) +GdkFrameClockPhase +gdk_frame_clock_get_requested (GdkFrameClock *clock) { g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), FALSE); - return GDK_FRAME_CLOCK_GET_IFACE (clock)->get_frame_requested (clock); + return GDK_FRAME_CLOCK_GET_IFACE (clock)->get_requested (clock); } /** @@ -281,28 +283,3 @@ gdk_frame_clock_frame_requested (GdkFrameClock *clock) g_signal_emit (G_OBJECT (clock), signals[FRAME_REQUESTED], 0); } - -/** - * gdk_frame_clock_paint: - * @clock: the clock - * - * Emits the before-paint, paint, and after-paint signals. Used in - * implementations of the #GdkFrameClock interface. - */ -void -gdk_frame_clock_paint (GdkFrameClock *clock) -{ - g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); - - g_signal_emit (G_OBJECT (clock), - signals[BEFORE_PAINT], 0); - - g_signal_emit (G_OBJECT (clock), - signals[LAYOUT], 0); - - g_signal_emit (G_OBJECT (clock), - signals[PAINT], 0); - - g_signal_emit (G_OBJECT (clock), - signals[AFTER_PAINT], 0); -} diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 043a890514..fe0ea58b60 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -43,18 +43,28 @@ G_BEGIN_DECLS typedef struct _GdkFrameClock GdkFrameClock; typedef struct _GdkFrameClockInterface GdkFrameClockInterface; +typedef enum { + GDK_FRAME_CLOCK_PHASE_NONE = 0, + GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT = 1 << 0, + GDK_FRAME_CLOCK_PHASE_LAYOUT = 1 << 1, + GDK_FRAME_CLOCK_PHASE_PAINT = 1 << 2, + GDK_FRAME_CLOCK_PHASE_AFTER_PAINT = 1 << 3 +} GdkFrameClockPhase; + struct _GdkFrameClockInterface { GTypeInterface base_iface; guint64 (* get_frame_time) (GdkFrameClock *clock); - void (* request_frame) (GdkFrameClock *clock); - gboolean (* get_frame_requested) (GdkFrameClock *clock); + + void (* request_phase) (GdkFrameClock *clock, + GdkFrameClockPhase phase); + GdkFrameClockPhase (* get_requested) (GdkFrameClock *clock); /* signals */ /* void (* frame_requested) (GdkFrameClock *clock); */ /* void (* before_paint) (GdkFrameClock *clock); */ - /* void (* layout) 1(GdkFrameClock *clock); */ + /* void (* layout) (GdkFrameClock *clock); */ /* void (* paint) (GdkFrameClock *clock); */ /* void (* after_paint) (GdkFrameClock *clock); */ }; @@ -62,8 +72,10 @@ struct _GdkFrameClockInterface GType gdk_frame_clock_get_type (void) G_GNUC_CONST; guint64 gdk_frame_clock_get_frame_time (GdkFrameClock *clock); -void gdk_frame_clock_request_frame (GdkFrameClock *clock); -gboolean gdk_frame_clock_get_frame_requested (GdkFrameClock *clock); + +void gdk_frame_clock_request_phase (GdkFrameClock *clock, + GdkFrameClockPhase phase); +GdkFrameClockPhase gdk_frame_clock_get_requested (GdkFrameClock *clock); /* Convenience API */ void gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock, @@ -71,7 +83,6 @@ void gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock, /* Signal emitters (used in frame clock implementations) */ void gdk_frame_clock_frame_requested (GdkFrameClock *clock); -void gdk_frame_clock_paint (GdkFrameClock *clock); G_END_DECLS diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index ff20632e70..bdcb16a08a 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -38,9 +38,12 @@ struct _GdkFrameClockIdlePrivate guint idle_id; - unsigned int in_paint : 1; + GdkFrameClockPhase requested; + GdkFrameClockPhase phase; }; +static gboolean gdk_frame_clock_paint_idle (void *data); + static void gdk_frame_clock_idle_finalize (GObject *object); static void gdk_frame_clock_idle_interface_init (GdkFrameClockInterface *iface); @@ -113,7 +116,7 @@ gdk_frame_clock_idle_get_frame_time (GdkFrameClock *clock) guint64 computed_frame_time; /* can't change frame time during a paint */ - if (priv->in_paint) + if (priv->phase != GDK_FRAME_CLOCK_PHASE_NONE) return priv->frame_time; /* Outside a paint, pick something close to "now" */ @@ -130,6 +133,22 @@ gdk_frame_clock_idle_get_frame_time (GdkFrameClock *clock) return priv->frame_time; } +static void +maybe_start_idle (GdkFrameClockIdle *clock_idle) +{ + GdkFrameClockIdlePrivate *priv = clock_idle->priv; + + if (priv->idle_id == 0 && priv->requested != 0) + { + priv->idle_id = gdk_threads_add_idle_full (GDK_PRIORITY_REDRAW, + gdk_frame_clock_paint_idle, + g_object_ref (clock_idle), + (GDestroyNotify) g_object_unref); + + gdk_frame_clock_frame_requested (GDK_FRAME_CLOCK (clock_idle)); + } +} + static gboolean gdk_frame_clock_paint_idle (void *data) { @@ -139,44 +158,60 @@ gdk_frame_clock_paint_idle (void *data) priv->idle_id = 0; - priv->in_paint = TRUE; priv->frame_time = compute_frame_time (clock_idle); - gdk_frame_clock_paint (clock); + priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; + g_signal_emit_by_name (G_OBJECT (clock), "before-paint"); + priv->phase = GDK_FRAME_CLOCK_PHASE_LAYOUT; + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_LAYOUT; + g_signal_emit_by_name (G_OBJECT (clock), "layout"); + priv->phase = GDK_FRAME_CLOCK_PHASE_PAINT; + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_PAINT; + g_signal_emit_by_name (G_OBJECT (clock), "paint"); + priv->phase = GDK_FRAME_CLOCK_PHASE_AFTER_PAINT; + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_AFTER_PAINT; + g_signal_emit_by_name (G_OBJECT (clock), "after-paint"); + priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; - priv->in_paint = FALSE; + maybe_start_idle (clock_idle); return FALSE; } static void -gdk_frame_clock_idle_request_frame (GdkFrameClock *clock) +gdk_frame_clock_idle_request_phase (GdkFrameClock *clock, + GdkFrameClockPhase phase) { - GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (clock)->priv; + GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); + GdkFrameClockIdlePrivate *priv = clock_idle->priv; - if (priv->idle_id == 0) - { - priv->idle_id = gdk_threads_add_idle_full (GDK_PRIORITY_REDRAW, - gdk_frame_clock_paint_idle, - g_object_ref (clock), - (GDestroyNotify) g_object_unref); - - gdk_frame_clock_frame_requested (clock); - } + priv->requested |= phase; + maybe_start_idle (clock_idle); } -static gboolean -gdk_frame_clock_idle_get_frame_requested (GdkFrameClock *clock) +static GdkFrameClockPhase +gdk_frame_clock_idle_get_requested (GdkFrameClock *clock) { GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (clock)->priv; - return priv->idle_id != 0; + return priv->requested; } static void gdk_frame_clock_idle_interface_init (GdkFrameClockInterface *iface) { iface->get_frame_time = gdk_frame_clock_idle_get_frame_time; - iface->request_frame = gdk_frame_clock_idle_request_frame; - iface->get_frame_requested = gdk_frame_clock_idle_get_frame_requested; + iface->request_phase = gdk_frame_clock_idle_request_phase; + iface->get_requested = gdk_frame_clock_idle_get_requested; +} + +GdkFrameClock * +_gdk_frame_clock_idle_new (void) +{ + GdkFrameClockIdle *clock; + + clock = g_object_new (GDK_TYPE_FRAME_CLOCK_IDLE, NULL); + + return GDK_FRAME_CLOCK (clock); } diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index f82ad162b4..e3b5026c83 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -3947,7 +3947,8 @@ gdk_window_schedule_update (GdkWindow *window) gdk_window_is_toplevel_frozen (window))) return; - gdk_frame_clock_request_frame (gdk_window_get_frame_clock (window)); + gdk_frame_clock_request_phase (gdk_window_get_frame_clock (window), + GDK_FRAME_CLOCK_PHASE_PAINT); } void diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c index 938887ea14..e73ef2a700 100644 --- a/gtk/gtkcontainer.c +++ b/gtk/gtkcontainer.c @@ -1686,7 +1686,8 @@ gtk_container_idle_sizer (GdkFrameClock *clock, } else { - gdk_frame_clock_request_frame (clock); + gdk_frame_clock_request_phase (clock, + GDK_FRAME_CLOCK_PHASE_LAYOUT); } } @@ -1705,7 +1706,8 @@ gtk_container_start_idle_sizer (GtkContainer *container) container->priv->resize_clock = clock; container->priv->resize_handler = g_signal_connect (clock, "layout", G_CALLBACK (gtk_container_idle_sizer), container); - gdk_frame_clock_request_frame (clock); + gdk_frame_clock_request_phase (clock, + GDK_FRAME_CLOCK_PHASE_LAYOUT); } static void diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index e1cf124f68..63fbcae40b 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4793,7 +4793,7 @@ gtk_widget_queue_resize_no_redraw (GtkWidget *widget) * then update the animation by calling * gdk_frame_clock_get_frame_time() again during each repaint. * - * gdk_frame_clock_request_frame() will result in a new frame on the + * gdk_frame_clock_request_phase() will result in a new frame on the * clock, but won't necessarily repaint any widgets. To repaint a * widget, you have to use gtk_widget_queue_draw() which invalidates * the widget (thus scheduling it to receive a draw on the next From 1824796bfb643378b72fdacffa9d923379266819 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 3 Oct 2012 19:42:13 -0400 Subject: [PATCH 016/208] GdkFrameClock: add freeze/thaw Add the ability to freeze a frame clock, which pauses its operation, then thaw it again later to resume. Initially this is used to implement freezing updates when we are waiting for ConfigureNotify in response to changing the size of a toplevel. We need a per-window clock for this to work properly, so add that for the X11 backend. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdkframeclock.c | 17 ++++++++ gdk/gdkframeclock.h | 6 +++ gdk/gdkframeclockidle.c | 94 +++++++++++++++++++++++++++++++++++------ gdk/gdkwindow.c | 2 + gdk/x11/gdkwindow-x11.c | 5 +++ 5 files changed, 110 insertions(+), 14 deletions(-) diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index 9fcf642c36..d385123842 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -226,6 +226,23 @@ gdk_frame_clock_request_phase (GdkFrameClock *clock, } +void +gdk_frame_clock_freeze (GdkFrameClock *clock) +{ + g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); + + GDK_FRAME_CLOCK_GET_IFACE (clock)->freeze (clock); +} + + +void +gdk_frame_clock_thaw (GdkFrameClock *clock) +{ + g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); + + GDK_FRAME_CLOCK_GET_IFACE (clock)->thaw (clock); +} + /** * gdk_frame_clock_get_requested: * @clock: the clock diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index fe0ea58b60..a733b558a9 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -61,6 +61,9 @@ struct _GdkFrameClockInterface GdkFrameClockPhase phase); GdkFrameClockPhase (* get_requested) (GdkFrameClock *clock); + void (* freeze) (GdkFrameClock *clock); + void (* thaw) (GdkFrameClock *clock); + /* signals */ /* void (* frame_requested) (GdkFrameClock *clock); */ /* void (* before_paint) (GdkFrameClock *clock); */ @@ -77,6 +80,9 @@ void gdk_frame_clock_request_phase (GdkFrameClock *clock, GdkFrameClockPhase phase); GdkFrameClockPhase gdk_frame_clock_get_requested (GdkFrameClock *clock); +void gdk_frame_clock_freeze (GdkFrameClock *clock); +void gdk_frame_clock_thaw (GdkFrameClock *clock); + /* Convenience API */ void gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock, GTimeVal *timeval); diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index bdcb16a08a..2911237687 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -37,6 +37,7 @@ struct _GdkFrameClockIdlePrivate guint64 frame_time; guint idle_id; + guint freeze_count; GdkFrameClockPhase requested; GdkFrameClockPhase phase; @@ -72,6 +73,7 @@ gdk_frame_clock_idle_init (GdkFrameClockIdle *frame_clock_idle) priv = frame_clock_idle->priv; priv->timer = g_timer_new (); + priv->freeze_count = 0; } static void @@ -138,7 +140,7 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) { GdkFrameClockIdlePrivate *priv = clock_idle->priv; - if (priv->idle_id == 0 && priv->requested != 0) + if (priv->idle_id == 0 && priv->freeze_count == 0 && priv->requested != 0) { priv->idle_id = gdk_threads_add_idle_full (GDK_PRIORITY_REDRAW, gdk_frame_clock_paint_idle, @@ -160,19 +162,51 @@ gdk_frame_clock_paint_idle (void *data) priv->frame_time = compute_frame_time (clock_idle); - priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; - priv->requested &= ~GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; - g_signal_emit_by_name (G_OBJECT (clock), "before-paint"); - priv->phase = GDK_FRAME_CLOCK_PHASE_LAYOUT; - priv->requested &= ~GDK_FRAME_CLOCK_PHASE_LAYOUT; - g_signal_emit_by_name (G_OBJECT (clock), "layout"); - priv->phase = GDK_FRAME_CLOCK_PHASE_PAINT; - priv->requested &= ~GDK_FRAME_CLOCK_PHASE_PAINT; - g_signal_emit_by_name (G_OBJECT (clock), "paint"); - priv->phase = GDK_FRAME_CLOCK_PHASE_AFTER_PAINT; - priv->requested &= ~GDK_FRAME_CLOCK_PHASE_AFTER_PAINT; - g_signal_emit_by_name (G_OBJECT (clock), "after-paint"); - priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; + switch (priv->phase) + { + case GDK_FRAME_CLOCK_PHASE_NONE: + case GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT: + if (priv->freeze_count == 0) + { + priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; + /* We always emit ::before-paint and ::after-paint even if + * not explicitly requested, and unlike other phases, + * they don't get repeated if you freeze/thaw while + * in them. */ + g_signal_emit_by_name (G_OBJECT (clock), "before-paint"); + priv->phase = GDK_FRAME_CLOCK_PHASE_LAYOUT; + } + case GDK_FRAME_CLOCK_PHASE_LAYOUT: + if (priv->freeze_count == 0) + { + priv->phase = GDK_FRAME_CLOCK_PHASE_LAYOUT; + if (priv->requested & GDK_FRAME_CLOCK_PHASE_LAYOUT) + { + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_LAYOUT; + g_signal_emit_by_name (G_OBJECT (clock), "layout"); + } + } + case GDK_FRAME_CLOCK_PHASE_PAINT: + if (priv->freeze_count == 0) + { + priv->phase = GDK_FRAME_CLOCK_PHASE_PAINT; + if (priv->requested & GDK_FRAME_CLOCK_PHASE_PAINT) + { + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_PAINT; + g_signal_emit_by_name (G_OBJECT (clock), "paint"); + } + } + case GDK_FRAME_CLOCK_PHASE_AFTER_PAINT: + if (priv->freeze_count == 0) + { + priv->phase = GDK_FRAME_CLOCK_PHASE_AFTER_PAINT; + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_AFTER_PAINT; + g_signal_emit_by_name (G_OBJECT (clock), "after-paint"); + /* the ::after-paint phase doesn't get repeated on freeze/thaw */ + priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; + } + } maybe_start_idle (clock_idle); @@ -198,12 +232,44 @@ gdk_frame_clock_idle_get_requested (GdkFrameClock *clock) return priv->requested; } +static void +gdk_frame_clock_idle_freeze (GdkFrameClock *clock) +{ + GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (clock)->priv; + + priv->freeze_count++; + + if (priv->freeze_count == 1) + { + if (priv->idle_id) + { + g_source_remove (priv->idle_id); + priv->idle_id = 0; + } + } +} + +static void +gdk_frame_clock_idle_thaw (GdkFrameClock *clock) +{ + GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); + GdkFrameClockIdlePrivate *priv = clock_idle->priv; + + g_return_if_fail (priv->freeze_count > 0); + + priv->freeze_count--; + if (priv->freeze_count == 0) + maybe_start_idle (clock_idle); +} + static void gdk_frame_clock_idle_interface_init (GdkFrameClockInterface *iface) { iface->get_frame_time = gdk_frame_clock_idle_get_frame_time; iface->request_phase = gdk_frame_clock_idle_request_phase; iface->get_requested = gdk_frame_clock_idle_get_requested; + iface->freeze = gdk_frame_clock_idle_freeze; + iface->thaw = gdk_frame_clock_idle_thaw; } GdkFrameClock * diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index e3b5026c83..0505d3fb6e 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -4919,6 +4919,7 @@ gdk_window_freeze_toplevel_updates_libgtk_only (GdkWindow *window) g_return_if_fail (window->window_type != GDK_WINDOW_CHILD); window->update_and_descendants_freeze_count++; + gdk_frame_clock_freeze (gdk_window_get_frame_clock (window)); } /** @@ -4939,6 +4940,7 @@ gdk_window_thaw_toplevel_updates_libgtk_only (GdkWindow *window) g_return_if_fail (window->update_and_descendants_freeze_count > 0); window->update_and_descendants_freeze_count--; + gdk_frame_clock_thaw (gdk_window_get_frame_clock (window)); gdk_window_schedule_update (window); } diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index e86cf7d2c8..e86a73322c 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -35,6 +35,7 @@ #include "gdkasync.h" #include "gdkeventsource.h" #include "gdkdisplay-x11.h" +#include "gdkframeclockidle.h" #include "gdkprivate-x11.h" #include @@ -712,6 +713,7 @@ _gdk_x11_display_create_window_impl (GdkDisplay *display, GdkWindowImplX11 *impl; GdkX11Screen *x11_screen; GdkX11Display *display_x11; + GdkFrameClock *clock; Window xparent; Visual *xvisual; @@ -856,6 +858,9 @@ _gdk_x11_display_create_window_impl (GdkDisplay *display, gdk_x11_event_source_select_events ((GdkEventSource *) display_x11->event_source, GDK_WINDOW_XID (window), event_mask, StructureNotifyMask | PropertyChangeMask); + + clock = g_object_new (GDK_TYPE_FRAME_CLOCK_IDLE, NULL); + gdk_window_set_frame_clock (window, clock); } static GdkEventMask From 69f457426ae2a7b1e2cb8e74034a636831aae079 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Tue, 18 Sep 2012 09:31:17 -0400 Subject: [PATCH 017/208] Switch to an extended form of _NET_WM_SYNC_REQUEST_COUNTER By exporting two XSync counters on a toplevel window, we subscribe to an extended form of the _NET_WM_SYNC_REQUEST_COUNTER protocol, where the window manager can initiate an atomic frame, as previously, but the application can also do so by incrementing the new counter to an odd value, and then to an even value to finish the frame. See: https://mail.gnome.org/archives/wm-spec-list/2011-October/msg00006.html The support for 64-bit integers that GLib requires is used to simplify the logic. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/x11/gdkdisplay-x11.c | 10 ++++----- gdk/x11/gdkwindow-x11.c | 45 +++++++++++++++++++++++++++++++--------- gdk/x11/gdkwindow-x11.h | 12 ++++++----- 3 files changed, 46 insertions(+), 21 deletions(-) diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 20bde58a80..5af36d278f 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -747,10 +747,10 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, } #ifdef HAVE_XSYNC - if (!is_substructure && toplevel && display_x11->use_sync && !XSyncValueIsZero (toplevel->pending_counter_value)) + if (!is_substructure && toplevel && display_x11->use_sync && toplevel->pending_counter_value != 0) { - toplevel->current_counter_value = toplevel->pending_counter_value; - XSyncIntToValue (&toplevel->pending_counter_value, 0); + toplevel->configure_counter_value = toplevel->pending_counter_value; + toplevel->pending_counter_value = 0; } #endif @@ -1126,9 +1126,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, if (toplevel) { #ifdef HAVE_XSYNC - XSyncIntsToValue (&toplevel->pending_counter_value, - xevent->xclient.data.l[2], - xevent->xclient.data.l[3]); + toplevel->pending_counter_value = xevent->xclient.data.l[2] + ((gint64)xevent->xclient.data.l[3] << 32); #endif } return GDK_FILTER_REMOVE; diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index e86a73322c..6b8a0e8fab 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -200,6 +200,19 @@ _gdk_x11_window_update_size (GdkWindowImplX11 *impl) } } +static void +set_sync_counter(Display *display, + XSyncCounter counter, + gint64 value) +{ + XSyncValue sync_value; + + XSyncIntsToValue(&sync_value, + value & G_GINT64_CONSTANT(0xFFFFFFFF), + value >> 32); + XSyncSetCounter(display, counter, sync_value); +} + /***************************************************** * X11 specific implementations of generic functions * *****************************************************/ @@ -612,20 +625,24 @@ ensure_sync_counter (GdkWindow *window) Display *xdisplay = GDK_DISPLAY_XDISPLAY (display); XSyncValue value; Atom atom; + XID counters[2]; XSyncIntToValue (&value, 0); toplevel->update_counter = XSyncCreateCounter (xdisplay, value); + toplevel->extended_update_counter = XSyncCreateCounter (xdisplay, value); atom = gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_SYNC_REQUEST_COUNTER"); - + + counters[0] = toplevel->update_counter; + counters[1] = toplevel->extended_update_counter; XChangeProperty (xdisplay, GDK_WINDOW_XID (window), atom, XA_CARDINAL, 32, PropModeReplace, - (guchar *)&toplevel->update_counter, 1); + (guchar *)counters, 2); - XSyncIntToValue (&toplevel->current_counter_value, 0); + toplevel->current_counter_value = 0; } } #endif @@ -1006,7 +1023,7 @@ gdk_toplevel_x11_free_contents (GdkDisplay *display, toplevel->update_counter); toplevel->update_counter = None; - XSyncIntToValue (&toplevel->current_counter_value, 0); + toplevel->current_counter_value = 0; } #endif } @@ -4863,13 +4880,21 @@ gdk_x11_window_configure_finished (GdkWindow *window) if (toplevel && toplevel->update_counter != None && GDK_X11_DISPLAY (display)->use_sync && - !XSyncValueIsZero (toplevel->current_counter_value)) + toplevel->configure_counter_value != 0) { - XSyncSetCounter (GDK_WINDOW_XDISPLAY (window), - toplevel->update_counter, - toplevel->current_counter_value); - - XSyncIntToValue (&toplevel->current_counter_value, 0); + set_sync_counter (GDK_WINDOW_XDISPLAY (window), + toplevel->update_counter, + toplevel->configure_counter_value); + + toplevel->current_counter_value = toplevel->configure_counter_value; + if ((toplevel->current_counter_value % 2) == 1) + toplevel->current_counter_value += 1; + + toplevel->configure_counter_value = 0; + + set_sync_counter (GDK_WINDOW_XDISPLAY (window), + toplevel->extended_update_counter, + toplevel->current_counter_value); } } #endif diff --git a/gdk/x11/gdkwindow-x11.h b/gdk/x11/gdkwindow-x11.h index 3dde77767d..b4b737604b 100644 --- a/gdk/x11/gdkwindow-x11.h +++ b/gdk/x11/gdkwindow-x11.h @@ -144,11 +144,13 @@ struct _GdkToplevelX11 #ifdef HAVE_XSYNC XID update_counter; - XSyncValue pending_counter_value; /* latest _NET_WM_SYNC_REQUEST value received */ - XSyncValue current_counter_value; /* Latest _NET_WM_SYNC_REQUEST value received - * where we have also seen the corresponding - * ConfigureNotify - */ + XID extended_update_counter; + gint64 pending_counter_value; /* latest _NET_WM_SYNC_REQUEST value received */ + gint64 configure_counter_value; /* Latest _NET_WM_SYNC_REQUEST value received + * where we have also seen the corresponding + * ConfigureNotify + */ + gint64 current_counter_value; #endif }; From 8a6895fe5262a881ff734b5bade8e3d5d46ed648 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Tue, 18 Sep 2012 09:37:03 -0400 Subject: [PATCH 018/208] Use _NET_WM_FRAME_DRAWN to synchronize frame drawing As part of the extended _NET_WM_SYNC_REQUEST_COUNTER protocol, we get a _NET_WM_FRAME_DRAWN message for each frame we draw. Use this to synchronize the updates we are doing with the compositing manager's drawing, and ultimately with with display refresh. We now set the sync request counters on all windows, including override-redirect windows, since it is also useful to do synchronized, atomic updates for such windows. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/x11/gdkdisplay-x11.c | 22 ++++++++++++++ gdk/x11/gdkwindow-x11.c | 66 ++++++++++++++++++++++++++++++++++++++-- gdk/x11/gdkwindow-x11.h | 3 ++ 3 files changed, 89 insertions(+), 2 deletions(-) diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 5af36d278f..5afb11c417 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -681,6 +681,13 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, GDK_WINDOW_STATE_ICONIFIED); } + if (window_impl->toplevel && + window_impl->toplevel->frame_pending) + { + window_impl->toplevel->frame_pending = FALSE; + gdk_frame_clock_thaw (gdk_window_get_frame_clock (event->any.window)); + } + _gdk_x11_window_grab_check_unmap (window, xevent->xany.serial); } @@ -1132,6 +1139,21 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, return GDK_FILTER_REMOVE; } + else if (atom == gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_FRAME_DRAWN")) + { + GdkWindowImplX11 *window_impl; + + window_impl = GDK_WINDOW_IMPL_X11 (event->any.window->impl); + if (window_impl->toplevel && + window_impl->toplevel->frame_pending) + { + window_impl->toplevel->frame_pending = FALSE; + gdk_frame_clock_thaw (gdk_window_get_frame_clock (event->any.window)); + } + + return GDK_FILTER_REMOVE; + } + return GDK_FILTER_CONTINUE; } diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 6b8a0e8fab..99d2f7f659 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -213,6 +213,51 @@ set_sync_counter(Display *display, XSyncSetCounter(display, counter, sync_value); } +static void +gdk_x11_window_begin_frame (GdkWindow *window) +{ + GdkWindowImplX11 *impl; + + g_return_if_fail (GDK_IS_WINDOW (window)); + + impl = GDK_WINDOW_IMPL_X11 (window->impl); + + if (!WINDOW_IS_TOPLEVEL (window) || + impl->toplevel->extended_update_counter == None) + return; + + impl->toplevel->current_counter_value += 1; + set_sync_counter(GDK_WINDOW_XDISPLAY (impl->wrapper), + impl->toplevel->extended_update_counter, + impl->toplevel->current_counter_value); +} + +static void +gdk_x11_window_end_frame (GdkWindow *window) +{ + GdkWindowImplX11 *impl; + + g_return_if_fail (GDK_IS_WINDOW (window)); + + impl = GDK_WINDOW_IMPL_X11 (window->impl); + + if (!WINDOW_IS_TOPLEVEL (window) || + impl->toplevel->extended_update_counter == None) + return; + + impl->toplevel->current_counter_value += 1; + set_sync_counter(GDK_WINDOW_XDISPLAY (impl->wrapper), + impl->toplevel->extended_update_counter, + impl->toplevel->current_counter_value); + + if (gdk_x11_screen_supports_net_wm_hint (gdk_window_get_screen (window), + gdk_atom_intern_static_string ("_NET_WM_FRAME_DRAWN"))) + { + impl->toplevel->frame_pending = TRUE; + gdk_frame_clock_freeze (gdk_window_get_frame_clock (window)); + } +} + /***************************************************** * X11 specific implementations of generic functions * *****************************************************/ @@ -616,9 +661,8 @@ ensure_sync_counter (GdkWindow *window) { GdkDisplay *display = GDK_WINDOW_DISPLAY (window); GdkToplevelX11 *toplevel = _gdk_x11_window_get_toplevel (window); - GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (window->impl); - if (toplevel && impl->use_synchronized_configure && + if (toplevel && toplevel->update_counter == None && GDK_X11_DISPLAY (display)->use_sync) { @@ -718,6 +762,20 @@ setup_toplevel_window (GdkWindow *window, ensure_sync_counter (window); } +static void +on_frame_clock_before_paint (GdkFrameClock *clock, + GdkWindow *window) +{ + gdk_x11_window_begin_frame (window); +} + +static void +on_frame_clock_after_paint (GdkFrameClock *clock, + GdkWindow *window) +{ + gdk_x11_window_end_frame (window); +} + void _gdk_x11_display_create_window_impl (GdkDisplay *display, GdkWindow *window, @@ -878,6 +936,10 @@ _gdk_x11_display_create_window_impl (GdkDisplay *display, clock = g_object_new (GDK_TYPE_FRAME_CLOCK_IDLE, NULL); gdk_window_set_frame_clock (window, clock); + g_signal_connect (clock, "before-paint", + G_CALLBACK (on_frame_clock_before_paint), window); + g_signal_connect (clock, "after-paint", + G_CALLBACK (on_frame_clock_after_paint), window); } static GdkEventMask diff --git a/gdk/x11/gdkwindow-x11.h b/gdk/x11/gdkwindow-x11.h index b4b737604b..c42365222c 100644 --- a/gdk/x11/gdkwindow-x11.h +++ b/gdk/x11/gdkwindow-x11.h @@ -126,6 +126,9 @@ struct _GdkToplevelX11 /* Set if the WM is presenting us as focused, i.e. with active decorations */ guint have_focused : 1; + + /* If we're expecting a response from the compositor after painting a frame */ + guint frame_pending : 1; gulong map_serial; /* Serial of last transition from unmapped */ From 355e305c1686968467269e8dafbda9b896315d12 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 3 Oct 2012 20:13:42 -0400 Subject: [PATCH 019/208] Freeze the update counter for unmapped windows When a window is unmapped, freeze its frame clock. This avoids doing unnecessary work, but also means that we won't block waiting for _NET_WM_FRAME_DRAWN messages that will never be received since the frame ended while the window was withdrawn. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/x11/gdkdisplay-x11.c | 6 ++++++ gdk/x11/gdkwindow-x11.c | 3 +++ 2 files changed, 9 insertions(+) diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 5afb11c417..4e28f74ec0 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -688,6 +688,9 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, gdk_frame_clock_thaw (gdk_window_get_frame_clock (event->any.window)); } + if (toplevel) + gdk_window_freeze_toplevel_updates_libgtk_only (window); + _gdk_x11_window_grab_check_unmap (window, xevent->xany.serial); } @@ -708,6 +711,9 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, gdk_synthesize_window_state (window, GDK_WINDOW_STATE_ICONIFIED, 0); + + if (toplevel) + gdk_window_thaw_toplevel_updates_libgtk_only (window); } break; diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 99d2f7f659..f6af492277 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -940,6 +940,9 @@ _gdk_x11_display_create_window_impl (GdkDisplay *display, G_CALLBACK (on_frame_clock_before_paint), window); g_signal_connect (clock, "after-paint", G_CALLBACK (on_frame_clock_after_paint), window); + + if (GDK_WINDOW_TYPE (window) != GDK_WINDOW_CHILD) + gdk_window_freeze_toplevel_updates_libgtk_only (window); } static GdkEventMask From 6557a775df9651536747867e5052be2b2eddb45d Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 3 Oct 2012 20:15:44 -0400 Subject: [PATCH 020/208] GdkWindowX11: start off with an odd frame-counter value By starting with an odd frame counter value, we make the mapping and initial paint of the window an atomic operation, avoiding any visual artifacts from an unpainted window. Possible improvement: start the frame when doing gdk_window_show(), so that the same improvement occurs for windows that were previously shown and are being mapped again. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/x11/gdkwindow-x11.c | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index f6af492277..fbc13b5654 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -226,10 +226,13 @@ gdk_x11_window_begin_frame (GdkWindow *window) impl->toplevel->extended_update_counter == None) return; - impl->toplevel->current_counter_value += 1; - set_sync_counter(GDK_WINDOW_XDISPLAY (impl->wrapper), - impl->toplevel->extended_update_counter, - impl->toplevel->current_counter_value); + if (impl->toplevel->current_counter_value % 2 == 0) + { + impl->toplevel->current_counter_value += 1; + set_sync_counter(GDK_WINDOW_XDISPLAY (impl->wrapper), + impl->toplevel->extended_update_counter, + impl->toplevel->current_counter_value); + } } static void @@ -245,16 +248,19 @@ gdk_x11_window_end_frame (GdkWindow *window) impl->toplevel->extended_update_counter == None) return; - impl->toplevel->current_counter_value += 1; - set_sync_counter(GDK_WINDOW_XDISPLAY (impl->wrapper), - impl->toplevel->extended_update_counter, - impl->toplevel->current_counter_value); - - if (gdk_x11_screen_supports_net_wm_hint (gdk_window_get_screen (window), - gdk_atom_intern_static_string ("_NET_WM_FRAME_DRAWN"))) + if (impl->toplevel->current_counter_value % 2 == 1) { - impl->toplevel->frame_pending = TRUE; - gdk_frame_clock_freeze (gdk_window_get_frame_clock (window)); + impl->toplevel->current_counter_value += 1; + set_sync_counter(GDK_WINDOW_XDISPLAY (impl->wrapper), + impl->toplevel->extended_update_counter, + impl->toplevel->current_counter_value); + + if (gdk_x11_screen_supports_net_wm_hint (gdk_window_get_screen (window), + gdk_atom_intern_static_string ("_NET_WM_FRAME_DRAWN"))) + { + impl->toplevel->frame_pending = TRUE; + gdk_frame_clock_freeze (gdk_window_get_frame_clock (window)); + } } } @@ -760,6 +766,9 @@ setup_toplevel_window (GdkWindow *window, gdk_x11_window_set_user_time (window, GDK_X11_DISPLAY (x11_screen->display)->user_time); ensure_sync_counter (window); + + /* Start off in a frozen state - we'll finish this when we first paint */ + gdk_x11_window_begin_frame (window); } static void From 7dfa41218823d197cf21f74f37036cc66480d455 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Thu, 27 Sep 2012 17:55:55 -0400 Subject: [PATCH 021/208] GdkFrameClockIdle: add throttling to 60fps If the backend is throttling paints, then the frame clock will be frozen at the end of the frame. If not, then we need to add throttling, so wait until 16ms after the start of the frame before beginning the next frame. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdkframeclockidle.c | 46 ++++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 2911237687..a0b82f08e6 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -29,12 +29,15 @@ #include "gdkframeclockidle.h" #include "gdk.h" +#define FRAME_INTERVAL 16667 // microseconds + struct _GdkFrameClockIdlePrivate { GTimer *timer; /* timer_base is used to avoid ever going backward */ guint64 timer_base; guint64 frame_time; + guint64 min_next_frame_time; guint idle_id; guint freeze_count; @@ -93,7 +96,7 @@ compute_frame_time (GdkFrameClockIdle *idle) guint64 computed_frame_time; guint64 elapsed; - elapsed = ((guint64) (g_timer_elapsed (priv->timer, NULL) * 1000)) + priv->timer_base; + elapsed = g_get_monotonic_time () + priv->timer_base; if (elapsed < priv->frame_time) { /* clock went backward. adapt to that by forevermore increasing @@ -118,7 +121,8 @@ gdk_frame_clock_idle_get_frame_time (GdkFrameClock *clock) guint64 computed_frame_time; /* can't change frame time during a paint */ - if (priv->phase != GDK_FRAME_CLOCK_PHASE_NONE) + if (priv->phase != GDK_FRAME_CLOCK_PHASE_NONE && + priv->phase != GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS) return priv->frame_time; /* Outside a paint, pick something close to "now" */ @@ -129,7 +133,7 @@ gdk_frame_clock_idle_get_frame_time (GdkFrameClock *clock) * get_frame_time() would normally be used outside of a paint to * record an animation start time for example. */ - if ((computed_frame_time - priv->frame_time) > 16) + if ((computed_frame_time - priv->frame_time) > FRAME_INTERVAL) priv->frame_time = computed_frame_time; return priv->frame_time; @@ -142,10 +146,20 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) if (priv->idle_id == 0 && priv->freeze_count == 0 && priv->requested != 0) { - priv->idle_id = gdk_threads_add_idle_full (GDK_PRIORITY_REDRAW, - gdk_frame_clock_paint_idle, - g_object_ref (clock_idle), - (GDestroyNotify) g_object_unref); + guint min_interval = 0; + + if (priv->min_next_frame_time != 0) + { + guint64 now = compute_frame_time (clock_idle); + guint64 min_interval_us = MAX (priv->min_next_frame_time, now) - now; + min_interval = (min_interval_us + 500) / 1000; + } + + priv->idle_id = gdk_threads_add_timeout_full (GDK_PRIORITY_REDRAW, + min_interval, + gdk_frame_clock_paint_idle, + g_object_ref (clock_idle), + (GDestroyNotify) g_object_unref); gdk_frame_clock_frame_requested (GDK_FRAME_CLOCK (clock_idle)); } @@ -160,14 +174,14 @@ gdk_frame_clock_paint_idle (void *data) priv->idle_id = 0; - priv->frame_time = compute_frame_time (clock_idle); - switch (priv->phase) { case GDK_FRAME_CLOCK_PHASE_NONE: case GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT: if (priv->freeze_count == 0) { + priv->frame_time = compute_frame_time (clock_idle); + priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; priv->requested &= ~GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; /* We always emit ::before-paint and ::after-paint even if @@ -208,7 +222,19 @@ gdk_frame_clock_paint_idle (void *data) } } - maybe_start_idle (clock_idle); + if (priv->freeze_count == 0 && priv->requested != 0) + { + /* We need to start over again immediately - this implies that there is no + * throttling at the backend layer, so we need to back-off ourselves. + */ + gdk_flush (); + priv->min_next_frame_time = priv->frame_time + FRAME_INTERVAL; + maybe_start_idle (clock_idle); + } + else + { + priv->min_next_frame_time = 0; + } return FALSE; } From 344a69880a73971b9d8839e5e19f693c0cb10d90 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 26 Sep 2012 15:44:30 -0400 Subject: [PATCH 022/208] Add an UPDATE phase and GdkFrameClockTarget, use for GtkStyleContext Switch GtkStyleContext to using GdkFrameClock. To do this, add a new UPDATE phase to GdkFrameClock. Add a GdkFrameClockTarget interface with a single set_clock() method, and use this to deal with the fact that GtkWidget only has a frame clock when realized. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdkframeclock.c | 29 +++++++++ gdk/gdkframeclock.h | 34 +++++++++-- gdk/gdkframeclockidle.c | 11 +++- gtk/gtkstylecontext.c | 126 +++++++++++++++++++++++++--------------- gtk/gtkwidget.c | 76 ++++++++++++++++++++++++ gtk/gtkwidget.h | 7 +++ 6 files changed, 228 insertions(+), 55 deletions(-) diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index d385123842..569ab6b52e 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -28,6 +28,19 @@ #include "gdkframeclock.h" +G_DEFINE_INTERFACE (GdkFrameClockTarget, gdk_frame_clock_target, G_TYPE_OBJECT) + +static void +gdk_frame_clock_target_default_init (GdkFrameClockTargetInterface *iface) +{ +} + +void gdk_frame_clock_target_set_clock (GdkFrameClockTarget *target, + GdkFrameClock *clock) +{ + GDK_FRAME_CLOCK_TARGET_GET_IFACE (target)->set_clock (target, clock); +} + /** * SECTION:frameclock * @Short_description: Frame clock syncs painting to a window or display @@ -79,6 +92,7 @@ G_DEFINE_INTERFACE (GdkFrameClock, gdk_frame_clock, G_TYPE_OBJECT) enum { FRAME_REQUESTED, BEFORE_PAINT, + UPDATE, LAYOUT, PAINT, AFTER_PAINT, @@ -123,6 +137,21 @@ gdk_frame_clock_default_init (GdkFrameClockInterface *iface) g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + /** + * GdkFrameClock::update: + * @clock: the frame clock emitting the signal + * + * FIXME. + */ + signals[UPDATE] = + g_signal_new (g_intern_static_string ("update"), + GDK_TYPE_FRAME_CLOCK, + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + /** * GdkFrameClock::layout: * @clock: the frame clock emitting the signal diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index a733b558a9..ae445737df 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -35,20 +35,41 @@ G_BEGIN_DECLS +typedef struct _GdkFrameClock GdkFrameClock; +typedef struct _GdkFrameClockInterface GdkFrameClockInterface; +typedef struct _GdkFrameClockTarget GdkFrameClockTarget; +typedef struct _GdkFrameClockTargetInterface GdkFrameClockTargetInterface; + +#define GDK_TYPE_FRAME_CLOCK_TARGET (gdk_frame_clock_target_get_type ()) +#define GDK_FRAME_CLOCK_TARGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_FRAME_CLOCK_TARGET, GdkFrameClockTarget)) +#define GDK_IS_FRAME_CLOCK_TARGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_FRAME_CLOCK_TARGET)) +#define GDK_FRAME_CLOCK_TARGET_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GDK_TYPE_FRAME_CLOCK_TARGET, GdkFrameClockTargetInterface)) + +struct _GdkFrameClockTargetInterface +{ + GTypeInterface base_iface; + + void (*set_clock) (GdkFrameClockTarget *target, + GdkFrameClock *clock); +}; + +GType gdk_frame_clock_target_get_type (void) G_GNUC_CONST; + +void gdk_frame_clock_target_set_clock (GdkFrameClockTarget *target, + GdkFrameClock *clock); + #define GDK_TYPE_FRAME_CLOCK (gdk_frame_clock_get_type ()) #define GDK_FRAME_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_FRAME_CLOCK, GdkFrameClock)) #define GDK_IS_FRAME_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_FRAME_CLOCK)) #define GDK_FRAME_CLOCK_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GDK_TYPE_FRAME_CLOCK, GdkFrameClockInterface)) -typedef struct _GdkFrameClock GdkFrameClock; -typedef struct _GdkFrameClockInterface GdkFrameClockInterface; - typedef enum { GDK_FRAME_CLOCK_PHASE_NONE = 0, GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT = 1 << 0, - GDK_FRAME_CLOCK_PHASE_LAYOUT = 1 << 1, - GDK_FRAME_CLOCK_PHASE_PAINT = 1 << 2, - GDK_FRAME_CLOCK_PHASE_AFTER_PAINT = 1 << 3 + GDK_FRAME_CLOCK_PHASE_UPDATE = 1 << 1, + GDK_FRAME_CLOCK_PHASE_LAYOUT = 1 << 2, + GDK_FRAME_CLOCK_PHASE_PAINT = 1 << 3, + GDK_FRAME_CLOCK_PHASE_AFTER_PAINT = 1 << 4 } GdkFrameClockPhase; struct _GdkFrameClockInterface @@ -67,6 +88,7 @@ struct _GdkFrameClockInterface /* signals */ /* void (* frame_requested) (GdkFrameClock *clock); */ /* void (* before_paint) (GdkFrameClock *clock); */ + /* void (* update) (GdkFrameClock *clock); */ /* void (* layout) (GdkFrameClock *clock); */ /* void (* paint) (GdkFrameClock *clock); */ /* void (* after_paint) (GdkFrameClock *clock); */ diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index a0b82f08e6..bf68fd1b64 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -189,7 +189,16 @@ gdk_frame_clock_paint_idle (void *data) * they don't get repeated if you freeze/thaw while * in them. */ g_signal_emit_by_name (G_OBJECT (clock), "before-paint"); - priv->phase = GDK_FRAME_CLOCK_PHASE_LAYOUT; + priv->phase = GDK_FRAME_CLOCK_PHASE_UPDATE; + } + case GDK_FRAME_CLOCK_PHASE_UPDATE: + if (priv->freeze_count == 0) + { + if (priv->requested & GDK_FRAME_CLOCK_PHASE_UPDATE) + { + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_UPDATE; + g_signal_emit_by_name (G_OBJECT (clock), "update"); + } } case GDK_FRAME_CLOCK_PHASE_LAYOUT: if (priv->freeze_count == 0) diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index 876105cf54..343cf1f1bc 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -358,20 +358,21 @@ struct _GtkStyleContextPrivate GtkStyleCascade *cascade; - GtkStyleContext *animation_list_prev; - GtkStyleContext *animation_list_next; - GtkStyleContext *parent; GSList *children; - GtkWidget *widget; + GtkWidget *widget; GtkWidgetPath *widget_path; GHashTable *style_data; GtkStyleInfo *info; + GdkFrameClock *frame_clock; + guint frame_clock_update_id; + GtkCssChange relevant_changes; GtkCssChange pending_changes; const GtkBitmask *invalidating_context; + guint animating : 1; guint invalid : 1; }; @@ -388,11 +389,11 @@ enum { }; static guint signals[LAST_SIGNAL] = { 0 }; -static GtkStyleContext *_running_animations = NULL; -guint _running_animations_timer_id = 0; static void gtk_style_context_finalize (GObject *object); +static void frame_clock_target_iface_init (GdkFrameClockTargetInterface *target); + static void gtk_style_context_impl_set_property (GObject *object, guint prop_id, const GValue *value, @@ -404,7 +405,11 @@ static void gtk_style_context_impl_get_property (GObject *object, static StyleData *style_data_lookup (GtkStyleContext *context); -G_DEFINE_TYPE (GtkStyleContext, gtk_style_context, G_TYPE_OBJECT) +static void gtk_style_context_disconnect_update (GtkStyleContext *context); +static void gtk_style_context_connect_update (GtkStyleContext *context); + +G_DEFINE_TYPE_WITH_CODE (GtkStyleContext, gtk_style_context, G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE (GDK_TYPE_FRAME_CLOCK_TARGET, frame_clock_target_iface_init)) static void gtk_style_context_real_changed (GtkStyleContext *context) @@ -469,6 +474,25 @@ gtk_style_context_class_init (GtkStyleContextClass *klass) g_type_class_add_private (object_class, sizeof (GtkStyleContextPrivate)); } +static void +gtk_style_context_set_clock (GdkFrameClockTarget *target, + GdkFrameClock *clock) +{ + GtkStyleContext *context = GTK_STYLE_CONTEXT (target); + GtkStyleContextPrivate *priv = context->priv; + + gtk_style_context_disconnect_update (context); + priv->frame_clock = clock; + if (priv->animating) + gtk_style_context_connect_update (context); +} + +static void +frame_clock_target_iface_init (GdkFrameClockTargetInterface *iface) +{ + iface->set_clock = gtk_style_context_set_clock; +} + static StyleData * style_data_new (void) { @@ -724,19 +748,14 @@ gtk_style_context_init (GtkStyleContext *style_context) _gtk_style_cascade_get_for_screen (priv->screen)); } -static gboolean -gtk_style_context_do_animations (gpointer unused) +static void +gtk_style_context_update (GdkFrameClock *clock, + GtkStyleContext *context) { - GtkStyleContext *context; + _gtk_style_context_queue_invalidate (context, GTK_CSS_CHANGE_ANIMATE); - for (context = _running_animations; - context != NULL; - context = context->priv->animation_list_next) - { - _gtk_style_context_queue_invalidate (context, GTK_CSS_CHANGE_ANIMATE); - } - - return TRUE; + /* A little blech to request one more than we need */ + gdk_frame_clock_request_phase (clock, GDK_FRAME_CLOCK_PHASE_UPDATE); } static gboolean @@ -744,8 +763,35 @@ gtk_style_context_is_animating (GtkStyleContext *context) { GtkStyleContextPrivate *priv = context->priv; - return priv->animation_list_prev != NULL - || _running_animations == context; + return priv->animating; +} + +static void +gtk_style_context_disconnect_update (GtkStyleContext *context) +{ + GtkStyleContextPrivate *priv = context->priv; + + if (priv->frame_clock && priv->frame_clock_update_id) + { + g_signal_handler_disconnect (priv->frame_clock, + priv->frame_clock_update_id); + priv->frame_clock_update_id = 0; + } +} + +static void +gtk_style_context_connect_update (GtkStyleContext *context) +{ + GtkStyleContextPrivate *priv = context->priv; + + if (priv->frame_clock && priv->frame_clock_update_id == 0) + { + priv->frame_clock_update_id = g_signal_connect (priv->frame_clock, + "update", + G_CALLBACK (gtk_style_context_update), + context); + gdk_frame_clock_request_phase (priv->frame_clock, GDK_FRAME_CLOCK_PHASE_UPDATE); + } } static void @@ -756,25 +802,14 @@ gtk_style_context_stop_animating (GtkStyleContext *context) if (!gtk_style_context_is_animating (context)) return; - if (priv->animation_list_prev == NULL) + priv->animating = FALSE; + + gtk_style_context_disconnect_update (context); + if (priv->widget) { - _running_animations = priv->animation_list_next; - - if (_running_animations == NULL) - { - /* we were the last animation */ - g_source_remove (_running_animations_timer_id); - _running_animations_timer_id = 0; - } + gtk_widget_remove_frame_clock_target (priv->widget, + GDK_FRAME_CLOCK_TARGET (context)); } - else - priv->animation_list_prev->priv->animation_list_next = priv->animation_list_next; - - if (priv->animation_list_next) - priv->animation_list_next->priv->animation_list_prev = priv->animation_list_prev; - - priv->animation_list_next = NULL; - priv->animation_list_prev = NULL; } static void @@ -785,18 +820,13 @@ gtk_style_context_start_animating (GtkStyleContext *context) if (gtk_style_context_is_animating (context)) return; - if (_running_animations == NULL) + priv->animating = TRUE; + + gtk_style_context_connect_update (context); + if (priv->widget) { - _running_animations_timer_id = gdk_threads_add_timeout (25, - gtk_style_context_do_animations, - NULL); - _running_animations = context; - } - else - { - priv->animation_list_next = _running_animations; - _running_animations->priv->animation_list_prev = context; - _running_animations = context; + gtk_widget_add_frame_clock_target (priv->widget, + GDK_FRAME_CLOCK_TARGET (context)); } } diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 63fbcae40b..1c7e538245 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -409,6 +409,9 @@ struct _GtkWidgetPrivate /* The widget's parent */ GtkWidget *parent; + /* Animations and other things to update on clock ticks */ + GList *frame_clock_targets; + #ifdef G_ENABLE_DEBUG /* Number of gtk_widget_push_verify_invariants () */ guint verifying_invariants_count; @@ -4533,6 +4536,7 @@ gtk_widget_realize (GtkWidget *widget) { GtkWidgetPrivate *priv; cairo_region_t *region; + GList *tmp_list; g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (widget->priv->anchored || @@ -4588,6 +4592,12 @@ gtk_widget_realize (GtkWidget *widget) if (GTK_IS_CONTAINER (widget)) _gtk_container_maybe_start_idle_sizer (GTK_CONTAINER (widget)); + for (tmp_list = priv->frame_clock_targets; tmp_list; tmp_list = tmp_list->next) + { + GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (widget); + gdk_frame_clock_target_set_clock (tmp_list->data, frame_clock); + } + gtk_widget_pop_verify_invariants (widget); } } @@ -10533,6 +10543,10 @@ gtk_widget_real_destroy (GtkWidget *object) gtk_grab_remove (widget); + g_list_foreach (priv->frame_clock_targets, (GFunc)g_object_unref, NULL); + g_list_free (priv->frame_clock_targets); + priv->frame_clock_targets = NULL; + if (priv->style) g_object_unref (priv->style); priv->style = gtk_widget_get_default_style (); @@ -14582,3 +14596,65 @@ gtk_widget_insert_action_group (GtkWidget *widget, else g_action_muxer_remove (muxer, name); } + +/** + * gtk_widget_add_frame_clock_target: + * @widget: a #GtkWidget + * @target: the #GdkClockTarget + * + * Associates a #GdkClockTarget with the widget. When the widget + * is realized and gets a #GdkFrameClock the clock target will be + * added to that frame clock. + */ +void +gtk_widget_add_frame_clock_target (GtkWidget *widget, + GdkFrameClockTarget *target) +{ + GtkWidgetPrivate *priv; + priv = widget->priv; + + g_return_if_fail (GTK_IS_WIDGET (widget)); + g_return_if_fail (GDK_IS_FRAME_CLOCK_TARGET (target)); + + priv->frame_clock_targets = g_list_prepend (priv->frame_clock_targets, target); + g_object_ref (target); + + if (gtk_widget_get_realized (widget)) + { + GdkFrameClock *clock; + clock = gtk_widget_get_frame_clock (widget); + gdk_frame_clock_target_set_clock (target, clock); + } +} + +/** + * gtk_widget_remove_frame_clock_target: + * @widget: a #GtkWidget + * @target: the #GdkClockTarget + * + * Removes a #GdkClockTarget previously added with + * gtk_widget_add_frame_clock_target. + */ +void +gtk_widget_remove_frame_clock_target (GtkWidget *widget, + GdkFrameClockTarget *target) +{ + GtkWidgetPrivate *priv; + GList *tmp_list; + + g_return_if_fail (GTK_IS_WIDGET (widget)); + g_return_if_fail (GDK_IS_FRAME_CLOCK_TARGET (target)); + + priv = widget->priv; + + tmp_list = g_list_find (priv->frame_clock_targets, target); + if (tmp_list == NULL) + return; + + priv->frame_clock_targets = g_list_delete_link (priv->frame_clock_targets, tmp_list); + + if (gtk_widget_get_realized (widget)) + gdk_frame_clock_target_set_clock (target, NULL); + + g_object_unref (target); +} diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index a8572e69d1..9f12bf94cb 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -905,6 +905,13 @@ void gtk_widget_insert_action_group (GtkWidg const gchar *name, GActionGroup *group); +GDK_AVAILABLE_IN_3_2 +void gtk_widget_add_frame_clock_target (GtkWidget *widget, + GdkFrameClockTarget *target); +GDK_AVAILABLE_IN_3_2 +void gtk_widget_remove_frame_clock_target (GtkWidget *widget, + GdkFrameClockTarget *target); + G_END_DECLS #endif /* __GTK_WIDGET_H__ */ From db89b600e0a4256fe3d30164b30c03fb5ae13474 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Fri, 27 Jul 2012 04:56:51 -0400 Subject: [PATCH 023/208] Add back GtkTimeline Add back the GtkTimeline code that previously made private and then removed. It will be hooked up to GdkFrameClock. This commit purely adds the old code back. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gtk/Makefile.am | 2 + gtk/gtktimeline.c | 760 ++++++++++++++++++++++++++++++++++++++++++++++ gtk/gtktimeline.h | 116 +++++++ 3 files changed, 878 insertions(+) create mode 100644 gtk/gtktimeline.c create mode 100644 gtk/gtktimeline.h diff --git a/gtk/Makefile.am b/gtk/Makefile.am index 973f3c8994..70ef2049ef 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -544,6 +544,7 @@ gtk_private_h_sources = \ gtktextutil.h \ gtkthemingbackgroundprivate.h \ gtkthemingengineprivate.h \ + gtktimeline.h \ gtktoolpaletteprivate.h \ gtktreedatalist.h \ gtktreeprivate.h \ @@ -850,6 +851,7 @@ gtk_base_c_sources = \ gtktextview.c \ gtkthemingbackground.c \ gtkthemingengine.c \ + gtktimeline.c \ gtktoggleaction.c \ gtktogglebutton.c \ gtktoggletoolbutton.c \ diff --git a/gtk/gtktimeline.c b/gtk/gtktimeline.c new file mode 100644 index 0000000000..2202e7907f --- /dev/null +++ b/gtk/gtktimeline.c @@ -0,0 +1,760 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 2007 Carlos Garnacho + * + * 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 . + */ + +#include +#include +#include +#include + +#define MSECS_PER_SEC 1000 +#define FRAME_INTERVAL(nframes) (MSECS_PER_SEC / nframes) +#define DEFAULT_FPS 30 + +typedef struct GtkTimelinePriv GtkTimelinePriv; + +struct GtkTimelinePriv +{ + guint duration; + guint fps; + guint source_id; + + GTimer *timer; + gdouble elapsed_time; + + gdouble progress; + gdouble last_progress; + + GdkScreen *screen; + + GtkTimelineProgressType progress_type; + + guint animations_enabled : 1; + guint loop : 1; + guint direction : 1; +}; + +enum { + PROP_0, + PROP_FPS, + PROP_DURATION, + PROP_LOOP, + PROP_DIRECTION, + PROP_SCREEN +}; + +enum { + STARTED, + PAUSED, + FINISHED, + FRAME, + LAST_SIGNAL +}; + +static guint signals [LAST_SIGNAL] = { 0, }; + + +static void gtk_timeline_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static void gtk_timeline_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); +static void gtk_timeline_finalize (GObject *object); + + +G_DEFINE_TYPE (GtkTimeline, gtk_timeline, G_TYPE_OBJECT) + + +static void +gtk_timeline_class_init (GtkTimelineClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->set_property = gtk_timeline_set_property; + object_class->get_property = gtk_timeline_get_property; + object_class->finalize = gtk_timeline_finalize; + + g_object_class_install_property (object_class, + PROP_FPS, + g_param_spec_uint ("fps", + "FPS", + "Frames per second for the timeline", + 1, G_MAXUINT, + DEFAULT_FPS, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_DURATION, + g_param_spec_uint ("duration", + "Animation Duration", + "Animation Duration", + 0, G_MAXUINT, + 0, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_LOOP, + g_param_spec_boolean ("loop", + "Loop", + "Whether the timeline loops or not", + FALSE, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_SCREEN, + g_param_spec_object ("screen", + "Screen", + "Screen to get the settings from", + GDK_TYPE_SCREEN, + G_PARAM_READWRITE)); + + signals[STARTED] = + g_signal_new ("started", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GtkTimelineClass, started), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + signals[PAUSED] = + g_signal_new ("paused", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GtkTimelineClass, paused), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + signals[FINISHED] = + g_signal_new ("finished", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GtkTimelineClass, finished), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + signals[FRAME] = + g_signal_new ("frame", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GtkTimelineClass, frame), + NULL, NULL, + g_cclosure_marshal_VOID__DOUBLE, + G_TYPE_NONE, 1, + G_TYPE_DOUBLE); + + g_type_class_add_private (klass, sizeof (GtkTimelinePriv)); +} + +static void +gtk_timeline_init (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + priv = timeline->priv = G_TYPE_INSTANCE_GET_PRIVATE (timeline, + GTK_TYPE_TIMELINE, + GtkTimelinePriv); + + priv->fps = DEFAULT_FPS; + priv->duration = 0.0; + priv->direction = GTK_TIMELINE_DIRECTION_FORWARD; + priv->screen = gdk_screen_get_default (); + + priv->last_progress = 0; +} + +static void +gtk_timeline_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GtkTimeline *timeline; + + timeline = GTK_TIMELINE (object); + + switch (prop_id) + { + case PROP_FPS: + _gtk_timeline_set_fps (timeline, g_value_get_uint (value)); + break; + case PROP_DURATION: + gtk_timeline_set_duration (timeline, g_value_get_uint (value)); + break; + case PROP_LOOP: + gtk_timeline_set_loop (timeline, g_value_get_boolean (value)); + break; + case PROP_DIRECTION: + gtk_timeline_set_direction (timeline, g_value_get_enum (value)); + break; + case PROP_SCREEN: + gtk_timeline_set_screen (timeline, + GDK_SCREEN (g_value_get_object (value))); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +gtk_timeline_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GtkTimeline *timeline; + GtkTimelinePriv *priv; + + timeline = GTK_TIMELINE (object); + priv = timeline->priv; + + switch (prop_id) + { + case PROP_FPS: + g_value_set_uint (value, priv->fps); + break; + case PROP_DURATION: + g_value_set_uint (value, priv->duration); + break; + case PROP_LOOP: + g_value_set_boolean (value, priv->loop); + break; + case PROP_DIRECTION: + g_value_set_enum (value, priv->direction); + break; + case PROP_SCREEN: + g_value_set_object (value, priv->screen); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +gtk_timeline_finalize (GObject *object) +{ + GtkTimelinePriv *priv; + GtkTimeline *timeline; + + timeline = (GtkTimeline *) object; + priv = timeline->priv; + + if (priv->source_id) + { + g_source_remove (priv->source_id); + priv->source_id = 0; + } + + if (priv->timer) + g_timer_destroy (priv->timer); + + G_OBJECT_CLASS (gtk_timeline_parent_class)->finalize (object); +} + +static gdouble +calculate_progress (gdouble linear_progress, + GtkTimelineProgressType progress_type) +{ + gdouble progress; + + progress = linear_progress; + + switch (progress_type) + { + case GTK_TIMELINE_PROGRESS_LINEAR: + break; + case GTK_TIMELINE_PROGRESS_EASE_IN_OUT: + progress *= 2; + + if (progress < 1) + progress = pow (progress, 3) / 2; + else + progress = (pow (progress - 2, 3) + 2) / 2; + + break; + case GTK_TIMELINE_PROGRESS_EASE: + progress = (sin ((progress - 0.5) * G_PI) + 1) / 2; + break; + case GTK_TIMELINE_PROGRESS_EASE_IN: + progress = pow (progress, 3); + break; + case GTK_TIMELINE_PROGRESS_EASE_OUT: + progress = pow (progress - 1, 3) + 1; + break; + default: + g_warning ("Timeline progress type not implemented"); + } + + return progress; +} + +static gboolean +gtk_timeline_run_frame (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + gdouble delta_progress, progress; + + /* the user may unref us during the signals, so save ourselves */ + g_object_ref (timeline); + + priv = timeline->priv; + + priv->elapsed_time = (guint) (g_timer_elapsed (priv->timer, NULL) * 1000); + g_timer_start (priv->timer); + + if (priv->animations_enabled) + { + delta_progress = (gdouble) priv->elapsed_time / priv->duration; + progress = priv->last_progress; + + if (priv->direction == GTK_TIMELINE_DIRECTION_BACKWARD) + progress -= delta_progress; + else + progress += delta_progress; + + priv->last_progress = progress; + + progress = CLAMP (progress, 0., 1.); + } + else + progress = (priv->direction == GTK_TIMELINE_DIRECTION_FORWARD) ? 1.0 : 0.0; + + priv->progress = progress; + g_signal_emit (timeline, signals [FRAME], 0, + calculate_progress (progress, priv->progress_type)); + + if ((priv->direction == GTK_TIMELINE_DIRECTION_FORWARD && progress == 1.0) || + (priv->direction == GTK_TIMELINE_DIRECTION_BACKWARD && progress == 0.0)) + { + gboolean loop; + + loop = priv->loop && priv->animations_enabled; + + if (loop) + gtk_timeline_rewind (timeline); + else + { + if (priv->source_id) + { + g_source_remove (priv->source_id); + priv->source_id = 0; + } + g_timer_stop (priv->timer); + g_signal_emit (timeline, signals [FINISHED], 0); + g_object_unref (timeline); + return FALSE; + } + } + + g_object_unref (timeline); + + return TRUE; +} + +/* + * gtk_timeline_new: + * @duration: duration in milliseconds for the timeline + * + * Creates a new #GtkTimeline with the specified number of frames. + * + * Return Value: the newly created #GtkTimeline + */ +GtkTimeline * +gtk_timeline_new (guint duration) +{ + return g_object_new (GTK_TYPE_TIMELINE, + "duration", duration, + NULL); +} + +GtkTimeline * +gtk_timeline_new_for_screen (guint duration, + GdkScreen *screen) +{ + return g_object_new (GTK_TYPE_TIMELINE, + "duration", duration, + "screen", screen, + NULL); +} + +/* + * gtk_timeline_start: + * @timeline: A #GtkTimeline + * + * Runs the timeline from the current frame. + */ +void +gtk_timeline_start (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + GtkSettings *settings; + gboolean enable_animations = FALSE; + + g_return_if_fail (GTK_IS_TIMELINE (timeline)); + + priv = timeline->priv; + + if (!priv->source_id) + { + if (priv->timer) + g_timer_continue (priv->timer); + else + priv->timer = g_timer_new (); + + /* sanity check */ + g_assert (priv->fps > 0); + + if (priv->screen) + { + settings = gtk_settings_get_for_screen (priv->screen); + g_object_get (settings, "gtk-enable-animations", &enable_animations, NULL); + } + + priv->animations_enabled = enable_animations; + + g_signal_emit (timeline, signals [STARTED], 0); + + if (enable_animations) + priv->source_id = gdk_threads_add_timeout (FRAME_INTERVAL (priv->fps), + (GSourceFunc) gtk_timeline_run_frame, + timeline); + else + priv->source_id = gdk_threads_add_idle ((GSourceFunc) gtk_timeline_run_frame, + timeline); + } +} + +/* + * gtk_timeline_pause: + * @timeline: A #GtkTimeline + * + * Pauses the timeline. + */ +void +gtk_timeline_pause (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_if_fail (GTK_IS_TIMELINE (timeline)); + + priv = timeline->priv; + + if (priv->source_id) + { + g_timer_stop (priv->timer); + g_source_remove (priv->source_id); + priv->source_id = 0; + g_signal_emit (timeline, signals [PAUSED], 0); + } +} + +/* + * gtk_timeline_rewind: + * @timeline: A #GtkTimeline + * + * Rewinds the timeline. + */ +void +gtk_timeline_rewind (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_if_fail (GTK_IS_TIMELINE (timeline)); + + priv = timeline->priv; + + if (gtk_timeline_get_direction (timeline) != GTK_TIMELINE_DIRECTION_FORWARD) + priv->progress = priv->last_progress = 1.; + else + priv->progress = priv->last_progress = 0.; + + /* reset timer */ + if (priv->timer) + { + g_timer_start (priv->timer); + + if (!priv->source_id) + g_timer_stop (priv->timer); + } +} + +/* + * gtk_timeline_is_running: + * @timeline: A #GtkTimeline + * + * Returns whether the timeline is running or not. + * + * Return Value: %TRUE if the timeline is running + */ +gboolean +gtk_timeline_is_running (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_val_if_fail (GTK_IS_TIMELINE (timeline), FALSE); + + priv = timeline->priv; + + return (priv->source_id != 0); +} + +/* + * gtk_timeline_get_elapsed_time: + * @timeline: A #GtkTimeline + * + * Returns the elapsed time since the last GtkTimeline::frame signal + * + * Return Value: elapsed time in milliseconds since the last frame + */ +guint +gtk_timeline_get_elapsed_time (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 0); + + priv = timeline->priv; + return priv->elapsed_time; +} + +/* + * gtk_timeline_get_fps: + * @timeline: A #GtkTimeline + * + * Returns the number of frames per second. + * + * Return Value: frames per second + */ +guint +gtk_timeline_get_fps (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 1); + + priv = timeline->priv; + return priv->fps; +} + +/* + * gtk_timeline_set_fps: + * @timeline: A #GtkTimeline + * @fps: frames per second + * + * Sets the number of frames per second that + * the timeline will play. + */ +void +gtk_timeline_set_fps (GtkTimeline *timeline, + guint fps) +{ + GtkTimelinePriv *priv; + + g_return_if_fail (GTK_IS_TIMELINE (timeline)); + g_return_if_fail (fps > 0); + + priv = timeline->priv; + + priv->fps = fps; + + if (gtk_timeline_is_running (timeline)) + { + g_source_remove (priv->source_id); + priv->source_id = gdk_threads_add_timeout (FRAME_INTERVAL (priv->fps), + (GSourceFunc) gtk_timeline_run_frame, + timeline); + } + + g_object_notify (G_OBJECT (timeline), "fps"); +} + +/** + * gtk_timeline_get_loop: + * @timeline: A #GtkTimeline + * + * Returns whether the timeline loops to the + * beginning when it has reached the end. + * + * Return Value: %TRUE if the timeline loops + */ +gboolean +gtk_timeline_get_loop (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_val_if_fail (GTK_IS_TIMELINE (timeline), FALSE); + + priv = timeline->priv; + return priv->loop; +} + +/* + * gtk_timeline_set_loop: + * @timeline: A #GtkTimeline + * @loop: %TRUE to make the timeline loop + * + * Sets whether the timeline loops to the beginning + * when it has reached the end. + */ +void +gtk_timeline_set_loop (GtkTimeline *timeline, + gboolean loop) +{ + GtkTimelinePriv *priv; + + g_return_if_fail (GTK_IS_TIMELINE (timeline)); + + priv = timeline->priv; + + if (loop != priv->loop) + { + priv->loop = loop; + g_object_notify (G_OBJECT (timeline), "loop"); + } +} + +void +gtk_timeline_set_duration (GtkTimeline *timeline, + guint duration) +{ + GtkTimelinePriv *priv; + + g_return_if_fail (GTK_IS_TIMELINE (timeline)); + + priv = timeline->priv; + + if (duration != priv->duration) + { + priv->duration = duration; + g_object_notify (G_OBJECT (timeline), "duration"); + } +} + +guint +gtk_timeline_get_duration (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 0); + + priv = timeline->priv; + + return priv->duration; +} + +/* + * gtk_timeline_set_direction: + * @timeline: A #GtkTimeline + * @direction: direction + * + * Sets the direction of the timeline. + */ +void +gtk_timeline_set_direction (GtkTimeline *timeline, + GtkTimelineDirection direction) +{ + GtkTimelinePriv *priv; + + g_return_if_fail (GTK_IS_TIMELINE (timeline)); + + priv = timeline->priv; + priv->direction = direction; +} + +/* + * gtk_timeline_get_direction: + * @timeline: A #GtkTimeline + * + * Returns the direction of the timeline. + * + * Return Value: direction + */ +GtkTimelineDirection +gtk_timeline_get_direction (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_val_if_fail (GTK_IS_TIMELINE (timeline), GTK_TIMELINE_DIRECTION_FORWARD); + + priv = timeline->priv; + return priv->direction; +} + +void +gtk_timeline_set_screen (GtkTimeline *timeline, + GdkScreen *screen) +{ + GtkTimelinePriv *priv; + + g_return_if_fail (GTK_IS_TIMELINE (timeline)); + g_return_if_fail (GDK_IS_SCREEN (screen)); + + priv = timeline->priv; + + if (priv->screen) + g_object_unref (priv->screen); + + priv->screen = g_object_ref (screen); + + g_object_notify (G_OBJECT (timeline), "screen"); +} + +GdkScreen * +gtk_timeline_get_screen (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_val_if_fail (GTK_IS_TIMELINE (timeline), NULL); + + priv = timeline->priv; + return priv->screen; +} + +gdouble +gtk_timeline_get_progress (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 0.); + + priv = timeline->priv; + return calculate_progress (priv->progress, priv->progress_type); +} + +GtkTimelineProgressType +gtk_timeline_get_progress_type (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_val_if_fail (GTK_IS_TIMELINE (timeline), GTK_TIMELINE_PROGRESS_LINEAR); + + priv = timeline->priv; + return priv->progress_type; +} + +void +gtk_timeline_set_progress_type (GtkTimeline *timeline, + GtkTimelineProgressType progress_type) +{ + GtkTimelinePriv *priv; + + g_return_if_fail (GTK_IS_TIMELINE (timeline)); + + priv = timeline->priv; + priv->progress_type = progress_type; +} diff --git a/gtk/gtktimeline.h b/gtk/gtktimeline.h new file mode 100644 index 0000000000..3960cb72ae --- /dev/null +++ b/gtk/gtktimeline.h @@ -0,0 +1,116 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 2007 Carlos Garnacho + * + * 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 . + */ + +#ifndef __GTK_TIMELINE_H__ +#define __GTK_TIMELINE_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +#define GTK_TYPE_TIMELINE (gtk_timeline_get_type ()) +#define GTK_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TIMELINE, GtkTimeline)) +#define GTK_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TIMELINE, GtkTimelineClass)) +#define GTK_IS_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TIMELINE)) +#define GTK_IS_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TIMELINE)) +#define GTK_TIMELINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TIMELINE, GtkTimelineClass)) + +typedef struct GtkTimeline GtkTimeline; +typedef struct GtkTimelineClass GtkTimelineClass; + +typedef enum { + GTK_TIMELINE_DIRECTION_FORWARD, + GTK_TIMELINE_DIRECTION_BACKWARD +} GtkTimelineDirection; + +typedef enum { + GTK_TIMELINE_PROGRESS_LINEAR, + GTK_TIMELINE_PROGRESS_EASE, + GTK_TIMELINE_PROGRESS_EASE_IN, + GTK_TIMELINE_PROGRESS_EASE_OUT, + GTK_TIMELINE_PROGRESS_EASE_IN_OUT +} GtkTimelineProgressType; + +struct GtkTimeline +{ + GObject parent_instance; + gpointer priv; +}; + +struct GtkTimelineClass +{ + GObjectClass parent_class; + + void (* started) (GtkTimeline *timeline); + void (* finished) (GtkTimeline *timeline); + void (* paused) (GtkTimeline *timeline); + + void (* frame) (GtkTimeline *timeline, + gdouble progress); + + void (* __gtk_reserved1) (void); + void (* __gtk_reserved2) (void); + void (* __gtk_reserved3) (void); + void (* __gtk_reserved4) (void); +}; + + +GType gtk_timeline_get_type (void) G_GNUC_CONST; + +GtkTimeline * gtk_timeline_new (guint duration); +GtkTimeline * gtk_timeline_new_for_screen (guint duration, + GdkScreen *screen); + +void gtk_timeline_start (GtkTimeline *timeline); +void gtk_timeline_pause (GtkTimeline *timeline); +void gtk_timeline_rewind (GtkTimeline *timeline); + +gboolean gtk_timeline_is_running (GtkTimeline *timeline); +guint gtk_timeline_get_elapsed_time (GtkTimeline *timeline); + +guint gtk_timeline_get_fps (GtkTimeline *timeline); +void gtk_timeline_set_fps (GtkTimeline *timeline, + guint fps); + +gboolean gtk_timeline_get_loop (GtkTimeline *timeline); +void gtk_timeline_set_loop (GtkTimeline *timeline, + gboolean loop); + +guint gtk_timeline_get_duration (GtkTimeline *timeline); +void gtk_timeline_set_duration (GtkTimeline *timeline, + guint duration); + +GdkScreen * gtk_timeline_get_screen (GtkTimeline *timeline); +void gtk_timeline_set_screen (GtkTimeline *timeline, + GdkScreen *screen); + +GtkTimelineDirection gtk_timeline_get_direction (GtkTimeline *timeline); +void gtk_timeline_set_direction (GtkTimeline *timeline, + GtkTimelineDirection direction); + +gdouble gtk_timeline_get_progress (GtkTimeline *timeline); + +GtkTimelineProgressType gtk_timeline_get_progress_type (GtkTimeline *timeline); +void gtk_timeline_set_progress_type (GtkTimeline *timeline, + GtkTimelineProgressType progress_type); + + +G_END_DECLS + +#endif /* _GTK_TIMELINE_H__ */ From cbce5bcd0b09195b79d0c29b44768fd037296df0 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Thu, 10 Nov 2011 18:01:44 -0500 Subject: [PATCH 024/208] GtkTimeline: remove settable FPS The frames-per-second for an animation should be controlled by how fast we can process frames and the the frame-rate of the display; it's not a meaningful app-settable property. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gtk/gtktimeline.c | 73 +---------------------------------------------- gtk/gtktimeline.h | 4 --- 2 files changed, 1 insertion(+), 76 deletions(-) diff --git a/gtk/gtktimeline.c b/gtk/gtktimeline.c index 2202e7907f..b56b699e57 100644 --- a/gtk/gtktimeline.c +++ b/gtk/gtktimeline.c @@ -29,7 +29,6 @@ typedef struct GtkTimelinePriv GtkTimelinePriv; struct GtkTimelinePriv { guint duration; - guint fps; guint source_id; GTimer *timer; @@ -49,7 +48,6 @@ struct GtkTimelinePriv enum { PROP_0, - PROP_FPS, PROP_DURATION, PROP_LOOP, PROP_DIRECTION, @@ -90,14 +88,6 @@ gtk_timeline_class_init (GtkTimelineClass *klass) object_class->get_property = gtk_timeline_get_property; object_class->finalize = gtk_timeline_finalize; - g_object_class_install_property (object_class, - PROP_FPS, - g_param_spec_uint ("fps", - "FPS", - "Frames per second for the timeline", - 1, G_MAXUINT, - DEFAULT_FPS, - G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_DURATION, g_param_spec_uint ("duration", @@ -170,7 +160,6 @@ gtk_timeline_init (GtkTimeline *timeline) GTK_TYPE_TIMELINE, GtkTimelinePriv); - priv->fps = DEFAULT_FPS; priv->duration = 0.0; priv->direction = GTK_TIMELINE_DIRECTION_FORWARD; priv->screen = gdk_screen_get_default (); @@ -190,9 +179,6 @@ gtk_timeline_set_property (GObject *object, switch (prop_id) { - case PROP_FPS: - _gtk_timeline_set_fps (timeline, g_value_get_uint (value)); - break; case PROP_DURATION: gtk_timeline_set_duration (timeline, g_value_get_uint (value)); break; @@ -225,9 +211,6 @@ gtk_timeline_get_property (GObject *object, switch (prop_id) { - case PROP_FPS: - g_value_set_uint (value, priv->fps); - break; case PROP_DURATION: g_value_set_uint (value, priv->duration); break; @@ -416,9 +399,6 @@ gtk_timeline_start (GtkTimeline *timeline) else priv->timer = g_timer_new (); - /* sanity check */ - g_assert (priv->fps > 0); - if (priv->screen) { settings = gtk_settings_get_for_screen (priv->screen); @@ -430,7 +410,7 @@ gtk_timeline_start (GtkTimeline *timeline) g_signal_emit (timeline, signals [STARTED], 0); if (enable_animations) - priv->source_id = gdk_threads_add_timeout (FRAME_INTERVAL (priv->fps), + priv->source_id = gdk_threads_add_timeout (FRAME_INTERVAL (DEFAULT_FPS), (GSourceFunc) gtk_timeline_run_frame, timeline); else @@ -532,57 +512,6 @@ gtk_timeline_get_elapsed_time (GtkTimeline *timeline) return priv->elapsed_time; } -/* - * gtk_timeline_get_fps: - * @timeline: A #GtkTimeline - * - * Returns the number of frames per second. - * - * Return Value: frames per second - */ -guint -gtk_timeline_get_fps (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 1); - - priv = timeline->priv; - return priv->fps; -} - -/* - * gtk_timeline_set_fps: - * @timeline: A #GtkTimeline - * @fps: frames per second - * - * Sets the number of frames per second that - * the timeline will play. - */ -void -gtk_timeline_set_fps (GtkTimeline *timeline, - guint fps) -{ - GtkTimelinePriv *priv; - - g_return_if_fail (GTK_IS_TIMELINE (timeline)); - g_return_if_fail (fps > 0); - - priv = timeline->priv; - - priv->fps = fps; - - if (gtk_timeline_is_running (timeline)) - { - g_source_remove (priv->source_id); - priv->source_id = gdk_threads_add_timeout (FRAME_INTERVAL (priv->fps), - (GSourceFunc) gtk_timeline_run_frame, - timeline); - } - - g_object_notify (G_OBJECT (timeline), "fps"); -} - /** * gtk_timeline_get_loop: * @timeline: A #GtkTimeline diff --git a/gtk/gtktimeline.h b/gtk/gtktimeline.h index 3960cb72ae..9841a2ebf8 100644 --- a/gtk/gtktimeline.h +++ b/gtk/gtktimeline.h @@ -84,10 +84,6 @@ void gtk_timeline_rewind (GtkTimeline gboolean gtk_timeline_is_running (GtkTimeline *timeline); guint gtk_timeline_get_elapsed_time (GtkTimeline *timeline); -guint gtk_timeline_get_fps (GtkTimeline *timeline); -void gtk_timeline_set_fps (GtkTimeline *timeline, - guint fps); - gboolean gtk_timeline_get_loop (GtkTimeline *timeline); void gtk_timeline_set_loop (GtkTimeline *timeline, gboolean loop); From 314dadca8250d84e966f2a365ba9c60eaab5d3cb Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Thu, 27 Sep 2012 16:27:36 -0400 Subject: [PATCH 025/208] Hook GtkTimeline up to GdkFrameClock Use GdkFrameClock for the timing of GtkTimeline. This require the user to provide either a GtkWidget or a GdkFrameClock when creating the timeline. The default constructor now takes a GtkWidget. If you want to create a GdkFrameClock without a widget, you need to use g_object_new() and pass in a GdkFrameClock and GdkScreen. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gtk/gtk.h | 1 + gtk/gtktimeline.c | 309 +++++++++++++++++++++++++++++++++++----------- gtk/gtktimeline.h | 19 ++- 3 files changed, 254 insertions(+), 75 deletions(-) diff --git a/gtk/gtk.h b/gtk/gtk.h index e95494f0fe..7642dd8b1f 100644 --- a/gtk/gtk.h +++ b/gtk/gtk.h @@ -194,6 +194,7 @@ #include #include #include +#include #include #include #include diff --git a/gtk/gtktimeline.c b/gtk/gtktimeline.c index b56b699e57..5acbf7c243 100644 --- a/gtk/gtktimeline.c +++ b/gtk/gtktimeline.c @@ -20,30 +20,30 @@ #include #include -#define MSECS_PER_SEC 1000 -#define FRAME_INTERVAL(nframes) (MSECS_PER_SEC / nframes) -#define DEFAULT_FPS 30 - typedef struct GtkTimelinePriv GtkTimelinePriv; struct GtkTimelinePriv { guint duration; - guint source_id; - GTimer *timer; + guint64 last_time; gdouble elapsed_time; gdouble progress; gdouble last_progress; + GtkWidget *widget; + GdkFrameClock *frame_clock; GdkScreen *screen; + guint update_id; + GtkTimelineProgressType progress_type; guint animations_enabled : 1; guint loop : 1; guint direction : 1; + guint running : 1; }; enum { @@ -51,7 +51,9 @@ enum { PROP_DURATION, PROP_LOOP, PROP_DIRECTION, - PROP_SCREEN + PROP_FRAME_CLOCK, + PROP_SCREEN, + PROP_WIDGET }; enum { @@ -65,6 +67,11 @@ enum { static guint signals [LAST_SIGNAL] = { 0, }; +static void gtk_timeline_start_running (GtkTimeline *timeline); +static void gtk_timeline_stop_running (GtkTimeline *timeline); + +static void frame_clock_target_iface_init (GdkFrameClockTargetInterface *target); + static void gtk_timeline_set_property (GObject *object, guint prop_id, const GValue *value, @@ -75,9 +82,11 @@ static void gtk_timeline_get_property (GObject *object, GParamSpec *pspec); static void gtk_timeline_finalize (GObject *object); +static void gtk_timeline_set_clock (GdkFrameClockTarget *target, + GdkFrameClock *frame_clock); -G_DEFINE_TYPE (GtkTimeline, gtk_timeline, G_TYPE_OBJECT) - +G_DEFINE_TYPE_WITH_CODE (GtkTimeline, gtk_timeline, G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE (GDK_TYPE_FRAME_CLOCK_TARGET, frame_clock_target_iface_init)) static void gtk_timeline_class_init (GtkTimelineClass *klass) @@ -103,13 +112,27 @@ gtk_timeline_class_init (GtkTimelineClass *klass) "Whether the timeline loops or not", FALSE, G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_FRAME_CLOCK, + g_param_spec_object ("paint-clock", + "Frame Clock", + "clock used for timing the animation (not needed if :widget is set)", + GDK_TYPE_FRAME_CLOCK, + G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_SCREEN, g_param_spec_object ("screen", "Screen", - "Screen to get the settings from", + "Screen to get the settings from (not needed if :widget is set)", GDK_TYPE_SCREEN, G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_WIDGET, + g_param_spec_object ("widget", + "Widget", + "Widget the timeline will be used with", + GTK_TYPE_WIDGET, + G_PARAM_READWRITE)); signals[STARTED] = g_signal_new ("started", @@ -151,6 +174,12 @@ gtk_timeline_class_init (GtkTimelineClass *klass) g_type_class_add_private (klass, sizeof (GtkTimelinePriv)); } +static void +frame_clock_target_iface_init (GdkFrameClockTargetInterface *iface) +{ + iface->set_clock = gtk_timeline_set_clock; +} + static void gtk_timeline_init (GtkTimeline *timeline) { @@ -162,6 +191,7 @@ gtk_timeline_init (GtkTimeline *timeline) priv->duration = 0.0; priv->direction = GTK_TIMELINE_DIRECTION_FORWARD; + priv->progress_type = GTK_TIMELINE_PROGRESS_EASE_OUT; priv->screen = gdk_screen_get_default (); priv->last_progress = 0; @@ -188,10 +218,18 @@ gtk_timeline_set_property (GObject *object, case PROP_DIRECTION: gtk_timeline_set_direction (timeline, g_value_get_enum (value)); break; + case PROP_FRAME_CLOCK: + gtk_timeline_set_frame_clock (timeline, + GDK_FRAME_CLOCK (g_value_get_object (value))); + break; case PROP_SCREEN: gtk_timeline_set_screen (timeline, GDK_SCREEN (g_value_get_object (value))); break; + case PROP_WIDGET: + gtk_timeline_set_widget (timeline, + GTK_WIDGET (g_value_get_object (value))); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } @@ -220,9 +258,15 @@ gtk_timeline_get_property (GObject *object, case PROP_DIRECTION: g_value_set_enum (value, priv->direction); break; + case PROP_FRAME_CLOCK: + g_value_set_object (value, priv->frame_clock); + break; case PROP_SCREEN: g_value_set_object (value, priv->screen); break; + case PROP_WIDGET: + g_value_set_object (value, priv->widget); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } @@ -237,18 +281,24 @@ gtk_timeline_finalize (GObject *object) timeline = (GtkTimeline *) object; priv = timeline->priv; - if (priv->source_id) + if (priv->running) { - g_source_remove (priv->source_id); - priv->source_id = 0; + gtk_timeline_stop_running (timeline); + priv->running = FALSE; } - if (priv->timer) - g_timer_destroy (priv->timer); - G_OBJECT_CLASS (gtk_timeline_parent_class)->finalize (object); } +/* Implementation of GdkFrameClockTarget method */ +static void +gtk_timeline_set_clock (GdkFrameClockTarget *target, + GdkFrameClock *frame_clock) +{ + gtk_timeline_set_frame_clock (GTK_TIMELINE (target), + frame_clock); +} + static gdouble calculate_progress (gdouble linear_progress, GtkTimelineProgressType progress_type) @@ -286,19 +336,22 @@ calculate_progress (gdouble linear_progress, return progress; } -static gboolean -gtk_timeline_run_frame (GtkTimeline *timeline) +static void +gtk_timeline_on_update (GdkFrameClock *clock, + GtkTimeline *timeline) { GtkTimelinePriv *priv; gdouble delta_progress, progress; + guint64 now; /* the user may unref us during the signals, so save ourselves */ g_object_ref (timeline); priv = timeline->priv; - priv->elapsed_time = (guint) (g_timer_elapsed (priv->timer, NULL) * 1000); - g_timer_start (priv->timer); + now = gdk_frame_clock_get_frame_time (clock); + priv->elapsed_time = (now - priv->last_time) / 1000; + priv->last_time = now; if (priv->animations_enabled) { @@ -332,49 +385,94 @@ gtk_timeline_run_frame (GtkTimeline *timeline) gtk_timeline_rewind (timeline); else { - if (priv->source_id) - { - g_source_remove (priv->source_id); - priv->source_id = 0; - } - g_timer_stop (priv->timer); + gtk_timeline_stop_running (timeline); + priv->running = FALSE; + g_signal_emit (timeline, signals [FINISHED], 0); g_object_unref (timeline); - return FALSE; + return; } } g_object_unref (timeline); + gdk_frame_clock_request_phase (clock, GDK_FRAME_CLOCK_PHASE_UPDATE); +} - return TRUE; +static void +gtk_timeline_start_updating (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv = timeline->priv; + + g_assert (priv->running && priv->frame_clock && priv->update_id == 0); + + priv->update_id = g_signal_connect (priv->frame_clock, + "update", + G_CALLBACK (gtk_timeline_on_update), + timeline); + + gdk_frame_clock_request_phase (priv->frame_clock, GDK_FRAME_CLOCK_PHASE_UPDATE); + priv->last_time = gdk_frame_clock_get_frame_time (priv->frame_clock); +} + +static void +gtk_timeline_stop_updating (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv = timeline->priv; + + g_assert (priv->running && priv->frame_clock && priv->update_id != 0); + + g_signal_handler_disconnect (priv->frame_clock, + priv->update_id); + priv->update_id = 0; +} + +static void +gtk_timeline_start_running (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv = timeline->priv; + + g_assert (priv->running); + + if (priv->widget) + gtk_widget_add_frame_clock_target (priv->widget, + GDK_FRAME_CLOCK_TARGET (timeline)); + else if (priv->frame_clock) + gtk_timeline_start_updating (timeline); +} + +static void +gtk_timeline_stop_running (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv = timeline->priv; + + g_assert (priv->running); + + if (priv->widget) + gtk_widget_remove_frame_clock_target (priv->widget, + GDK_FRAME_CLOCK_TARGET (timeline)); + else if (priv->frame_clock) + gtk_timeline_stop_updating (timeline); } /* * gtk_timeline_new: + * @widget: a widget the timeline will be used with * @duration: duration in milliseconds for the timeline * - * Creates a new #GtkTimeline with the specified number of frames. + * Creates a new #GtkTimeline with the specified duration * * Return Value: the newly created #GtkTimeline */ GtkTimeline * -gtk_timeline_new (guint duration) +gtk_timeline_new (GtkWidget *widget, + guint duration) { return g_object_new (GTK_TYPE_TIMELINE, + "widget", widget, "duration", duration, NULL); } -GtkTimeline * -gtk_timeline_new_for_screen (guint duration, - GdkScreen *screen) -{ - return g_object_new (GTK_TYPE_TIMELINE, - "duration", duration, - "screen", screen, - NULL); -} - /* * gtk_timeline_start: * @timeline: A #GtkTimeline @@ -392,13 +490,8 @@ gtk_timeline_start (GtkTimeline *timeline) priv = timeline->priv; - if (!priv->source_id) + if (!priv->running) { - if (priv->timer) - g_timer_continue (priv->timer); - else - priv->timer = g_timer_new (); - if (priv->screen) { settings = gtk_settings_get_for_screen (priv->screen); @@ -407,15 +500,10 @@ gtk_timeline_start (GtkTimeline *timeline) priv->animations_enabled = enable_animations; - g_signal_emit (timeline, signals [STARTED], 0); + priv->running = TRUE; + gtk_timeline_start_running (timeline); - if (enable_animations) - priv->source_id = gdk_threads_add_timeout (FRAME_INTERVAL (DEFAULT_FPS), - (GSourceFunc) gtk_timeline_run_frame, - timeline); - else - priv->source_id = gdk_threads_add_idle ((GSourceFunc) gtk_timeline_run_frame, - timeline); + g_signal_emit (timeline, signals [STARTED], 0); } } @@ -434,11 +522,11 @@ gtk_timeline_pause (GtkTimeline *timeline) priv = timeline->priv; - if (priv->source_id) + if (priv->running) { - g_timer_stop (priv->timer); - g_source_remove (priv->source_id); - priv->source_id = 0; + gtk_timeline_stop_running (timeline); + priv->running = FALSE; + g_signal_emit (timeline, signals [PAUSED], 0); } } @@ -463,14 +551,8 @@ gtk_timeline_rewind (GtkTimeline *timeline) else priv->progress = priv->last_progress = 0.; - /* reset timer */ - if (priv->timer) - { - g_timer_start (priv->timer); - - if (!priv->source_id) - g_timer_stop (priv->timer); - } + if (priv->running && priv->frame_clock) + priv->last_time = gdk_frame_clock_get_frame_time (priv->frame_clock); } /* @@ -490,7 +572,7 @@ gtk_timeline_is_running (GtkTimeline *timeline) priv = timeline->priv; - return (priv->source_id != 0); + return priv->running; } /* @@ -624,6 +706,48 @@ gtk_timeline_get_direction (GtkTimeline *timeline) return priv->direction; } +void +gtk_timeline_set_frame_clock (GtkTimeline *timeline, + GdkFrameClock *frame_clock) +{ + GtkTimelinePriv *priv; + + g_return_if_fail (GTK_IS_TIMELINE (timeline)); + g_return_if_fail (frame_clock == NULL || GDK_IS_FRAME_CLOCK (frame_clock)); + + priv = timeline->priv; + + if (frame_clock == priv->frame_clock) + return; + + if (priv->running && priv->frame_clock) + gtk_timeline_stop_updating (timeline); + + if (priv->frame_clock) + g_object_unref (priv->frame_clock); + + priv->frame_clock = frame_clock; + + if (priv->frame_clock) + g_object_ref (priv->frame_clock); + + if (priv->running && priv->frame_clock) + gtk_timeline_start_updating (timeline); + + g_object_notify (G_OBJECT (timeline), "paint-clock"); +} + +GdkFrameClock * +gtk_timeline_get_frame_clock (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_val_if_fail (GTK_IS_TIMELINE (timeline), NULL); + + priv = timeline->priv; + return priv->frame_clock; +} + void gtk_timeline_set_screen (GtkTimeline *timeline, GdkScreen *screen) @@ -631,14 +755,20 @@ gtk_timeline_set_screen (GtkTimeline *timeline, GtkTimelinePriv *priv; g_return_if_fail (GTK_IS_TIMELINE (timeline)); - g_return_if_fail (GDK_IS_SCREEN (screen)); + g_return_if_fail (screen == NULL || GDK_IS_SCREEN (screen)); priv = timeline->priv; + if (screen == priv->screen) + return; + if (priv->screen) g_object_unref (priv->screen); - priv->screen = g_object_ref (screen); + priv->screen = screen; + + if (priv->screen) + g_object_ref (priv->screen); g_object_notify (G_OBJECT (timeline), "screen"); } @@ -653,6 +783,47 @@ gtk_timeline_get_screen (GtkTimeline *timeline) priv = timeline->priv; return priv->screen; } +void +gtk_timeline_set_widget (GtkTimeline *timeline, + GtkWidget *widget) +{ + GtkTimelinePriv *priv; + + g_return_if_fail (GTK_IS_TIMELINE (timeline)); + g_return_if_fail (widget == NULL || GTK_IS_WIDGET (widget)); + + priv = timeline->priv; + + if (widget == priv->widget) + return; + + if (priv->running) + gtk_timeline_stop_running (timeline); + + if (priv->widget) + g_object_unref (priv->widget); + + priv->widget = widget; + + if (priv->widget) + g_object_ref (widget); + + if (priv->running) + gtk_timeline_start_running (timeline); + + g_object_notify (G_OBJECT (timeline), "widget"); +} + +GtkWidget * +gtk_timeline_get_widget (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_val_if_fail (GTK_IS_TIMELINE (timeline), NULL); + + priv = timeline->priv; + return priv->widget; +} gdouble gtk_timeline_get_progress (GtkTimeline *timeline) diff --git a/gtk/gtktimeline.h b/gtk/gtktimeline.h index 9841a2ebf8..5a69e43e5f 100644 --- a/gtk/gtktimeline.h +++ b/gtk/gtktimeline.h @@ -20,6 +20,7 @@ #include #include +#include #include G_BEGIN_DECLS @@ -62,7 +63,7 @@ struct GtkTimelineClass void (* paused) (GtkTimeline *timeline); void (* frame) (GtkTimeline *timeline, - gdouble progress); + gdouble progress); void (* __gtk_reserved1) (void); void (* __gtk_reserved2) (void); @@ -73,9 +74,8 @@ struct GtkTimelineClass GType gtk_timeline_get_type (void) G_GNUC_CONST; -GtkTimeline * gtk_timeline_new (guint duration); -GtkTimeline * gtk_timeline_new_for_screen (guint duration, - GdkScreen *screen); +GtkTimeline * gtk_timeline_new (GtkWidget *widget, + guint duration); void gtk_timeline_start (GtkTimeline *timeline); void gtk_timeline_pause (GtkTimeline *timeline); @@ -90,12 +90,20 @@ void gtk_timeline_set_loop (GtkTimeline guint gtk_timeline_get_duration (GtkTimeline *timeline); void gtk_timeline_set_duration (GtkTimeline *timeline, - guint duration); + guint duration); + +GdkFrameClock * gtk_timeline_get_frame_clock (GtkTimeline *timeline); +void gtk_timeline_set_frame_clock (GtkTimeline *timeline, + GdkFrameClock *frame_clock); GdkScreen * gtk_timeline_get_screen (GtkTimeline *timeline); void gtk_timeline_set_screen (GtkTimeline *timeline, GdkScreen *screen); +GtkWidget * gtk_timeline_get_widget (GtkTimeline *timeline); +void gtk_timeline_set_widget (GtkTimeline *timeline, + GtkWidget *widget); + GtkTimelineDirection gtk_timeline_get_direction (GtkTimeline *timeline); void gtk_timeline_set_direction (GtkTimeline *timeline, GtkTimelineDirection direction); @@ -106,7 +114,6 @@ GtkTimelineProgressType gtk_timeline_get_progress_type (GtkTimeline void gtk_timeline_set_progress_type (GtkTimeline *timeline, GtkTimelineProgressType progress_type); - G_END_DECLS #endif /* _GTK_TIMELINE_H__ */ From 215d029c839bbbf162c9461387fa4bc4c3b1afb8 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Thu, 27 Sep 2012 17:05:22 -0400 Subject: [PATCH 026/208] GtkTimeline: introspection fixes, add :progress-type property Fix up introspection information for GtkTimeline, install the header has a public heaer, and add the property for :progress-type. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gtk/Makefile.am | 2 +- gtk/gtktimeline.c | 47 +++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 40 insertions(+), 9 deletions(-) diff --git a/gtk/Makefile.am b/gtk/Makefile.am index 70ef2049ef..bc1dc7ccba 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -348,6 +348,7 @@ gtk_public_h_sources = \ gtktexttagtable.h \ gtktextview.h \ gtkthemingengine.h \ + gtktimeline.h \ gtktoggleaction.h \ gtktogglebutton.h \ gtktoggletoolbutton.h \ @@ -544,7 +545,6 @@ gtk_private_h_sources = \ gtktextutil.h \ gtkthemingbackgroundprivate.h \ gtkthemingengineprivate.h \ - gtktimeline.h \ gtktoolpaletteprivate.h \ gtktreedatalist.h \ gtktreeprivate.h \ diff --git a/gtk/gtktimeline.c b/gtk/gtktimeline.c index 5acbf7c243..55df628be0 100644 --- a/gtk/gtktimeline.c +++ b/gtk/gtktimeline.c @@ -52,6 +52,7 @@ enum { PROP_LOOP, PROP_DIRECTION, PROP_FRAME_CLOCK, + PROP_PROGRESS_TYPE, PROP_SCREEN, PROP_WIDGET }; @@ -119,6 +120,14 @@ gtk_timeline_class_init (GtkTimelineClass *klass) "clock used for timing the animation (not needed if :widget is set)", GDK_TYPE_FRAME_CLOCK, G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_PROGRESS_TYPE, + g_param_spec_enum ("progress-type", + "Progress Type", + "Easing function for animation progress", + GTK_TYPE_TIMELINE_PROGRESS_TYPE, + GTK_TIMELINE_PROGRESS_EASE_OUT, + G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_SCREEN, g_param_spec_object ("screen", @@ -222,6 +231,10 @@ gtk_timeline_set_property (GObject *object, gtk_timeline_set_frame_clock (timeline, GDK_FRAME_CLOCK (g_value_get_object (value))); break; + case PROP_PROGRESS_TYPE: + gtk_timeline_set_progress_type (timeline, + g_value_get_enum (value)); + break; case PROP_SCREEN: gtk_timeline_set_screen (timeline, GDK_SCREEN (g_value_get_object (value))); @@ -261,6 +274,9 @@ gtk_timeline_get_property (GObject *object, case PROP_FRAME_CLOCK: g_value_set_object (value, priv->frame_clock); break; + case PROP_PROGRESS_TYPE: + g_value_set_enum (value, priv->progress_type); + break; case PROP_SCREEN: g_value_set_object (value, priv->screen); break; @@ -454,7 +470,7 @@ gtk_timeline_stop_running (GtkTimeline *timeline) gtk_timeline_stop_updating (timeline); } -/* +/** * gtk_timeline_new: * @widget: a widget the timeline will be used with * @duration: duration in milliseconds for the timeline @@ -473,7 +489,7 @@ gtk_timeline_new (GtkWidget *widget, NULL); } -/* +/** * gtk_timeline_start: * @timeline: A #GtkTimeline * @@ -507,7 +523,7 @@ gtk_timeline_start (GtkTimeline *timeline) } } -/* +/** * gtk_timeline_pause: * @timeline: A #GtkTimeline * @@ -531,7 +547,7 @@ gtk_timeline_pause (GtkTimeline *timeline) } } -/* +/** * gtk_timeline_rewind: * @timeline: A #GtkTimeline * @@ -555,7 +571,7 @@ gtk_timeline_rewind (GtkTimeline *timeline) priv->last_time = gdk_frame_clock_get_frame_time (priv->frame_clock); } -/* +/** * gtk_timeline_is_running: * @timeline: A #GtkTimeline * @@ -575,7 +591,7 @@ gtk_timeline_is_running (GtkTimeline *timeline) return priv->running; } -/* +/** * gtk_timeline_get_elapsed_time: * @timeline: A #GtkTimeline * @@ -614,7 +630,7 @@ gtk_timeline_get_loop (GtkTimeline *timeline) return priv->loop; } -/* +/** * gtk_timeline_set_loop: * @timeline: A #GtkTimeline * @loop: %TRUE to make the timeline loop @@ -668,7 +684,7 @@ gtk_timeline_get_duration (GtkTimeline *timeline) return priv->duration; } -/* +/** * gtk_timeline_set_direction: * @timeline: A #GtkTimeline * @direction: direction @@ -737,6 +753,11 @@ gtk_timeline_set_frame_clock (GtkTimeline *timeline, g_object_notify (G_OBJECT (timeline), "paint-clock"); } +/** + * gtk_timeline_get_frame_clock: + * + * Returns: (transfer none): + */ GdkFrameClock * gtk_timeline_get_frame_clock (GtkTimeline *timeline) { @@ -773,6 +794,11 @@ gtk_timeline_set_screen (GtkTimeline *timeline, g_object_notify (G_OBJECT (timeline), "screen"); } +/** + * gtk_timeline_get_screen: + * + * Returns: (transfer none): + */ GdkScreen * gtk_timeline_get_screen (GtkTimeline *timeline) { @@ -814,6 +840,11 @@ gtk_timeline_set_widget (GtkTimeline *timeline, g_object_notify (G_OBJECT (timeline), "widget"); } +/** + * gtk_timeline_get_widget: + * + * Returns: (transfer none): + */ GtkWidget * gtk_timeline_get_widget (GtkTimeline *timeline) { From 672100b82263d47e5b4a91143202bb67fcc2407f Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Fri, 28 Sep 2012 12:38:14 -0400 Subject: [PATCH 027/208] GtkTimeline: Wrap around the progress correctly when looping When we have a looping animation for something like an angle, we need to make sure that the distance we go past 1.0 becomes the starting distance for the next frame. This prevents a stutter at the loop position. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gtk/gtktimeline.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/gtk/gtktimeline.c b/gtk/gtktimeline.c index 55df628be0..ad2e7dfcd4 100644 --- a/gtk/gtktimeline.c +++ b/gtk/gtktimeline.c @@ -357,7 +357,7 @@ gtk_timeline_on_update (GdkFrameClock *clock, GtkTimeline *timeline) { GtkTimelinePriv *priv; - gdouble delta_progress, progress; + gdouble delta_progress, progress, adjust; guint64 now; /* the user may unref us during the signals, so save ourselves */ @@ -381,6 +381,21 @@ gtk_timeline_on_update (GdkFrameClock *clock, priv->last_progress = progress; + /* When looping, if we go past the end, start that much into the + * next cycle */ + if (progress < 0.0) + { + adjust = progress - ceil(progress); + progress = 0.0; + } + else if (progress > 1.0) + { + adjust = progress - floor(progress); + progress = 1.0; + } + else + adjust = 0.0; + progress = CLAMP (progress, 0., 1.); } else @@ -398,7 +413,10 @@ gtk_timeline_on_update (GdkFrameClock *clock, loop = priv->loop && priv->animations_enabled; if (loop) - gtk_timeline_rewind (timeline); + { + gtk_timeline_rewind (timeline); + priv->progress += adjust; + } else { gtk_timeline_stop_running (timeline); From 623803c1fe8692ae2809ab7a502a1bce38ddf2f3 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Tue, 18 Sep 2012 18:21:08 -0400 Subject: [PATCH 028/208] Add a test of an animated resizing window Add a test of a window with an animated size and contents. The test accepts load factor command line argument to see how things work as the drawing of the content requires more GPU resources. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- tests/Makefile.am | 2 + tests/animated-resizing.c | 197 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 199 insertions(+) create mode 100644 tests/animated-resizing.c diff --git a/tests/Makefile.am b/tests/Makefile.am index 1993991869..7917905090 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -25,6 +25,7 @@ testsocket_programs = testsocket testsocket_child endif noinst_PROGRAMS = $(TEST_PROGS) \ + animated-resizing \ simple \ flicker \ print-editor \ @@ -149,6 +150,7 @@ endif endif +animated_resizing_DEPENDENCIES = $(TEST_DEPS) flicker_DEPENDENCIES = $(TEST_DEPS) simple_DEPENDENCIES = $(TEST_DEPS) print_editor_DEPENDENCIES = $(TEST_DEPS) diff --git a/tests/animated-resizing.c b/tests/animated-resizing.c new file mode 100644 index 0000000000..bf36551c58 --- /dev/null +++ b/tests/animated-resizing.c @@ -0,0 +1,197 @@ +/* -*- mode: C; c-basic-offset: 2; indent-tabs-mode: nil; -*- */ + +#include +#include + +#define WIDTH 600 +#define HEIGHT 600 +#define WINDOW_SIZE_JITTER 200 +#define CYCLE_TIME 5. + +static GtkWidget *window; +static int window_width = WIDTH, window_height = HEIGHT; + +static double angle; +static int frames_since_last_print = 0; + +static double load_factor = 1.0; +static double cb_no_resize = FALSE; + +static cairo_surface_t *source_surface; + +static void +ensure_resources(cairo_surface_t *target) +{ + cairo_t *cr; + int i, j; + + if (source_surface != NULL) + return; + + source_surface = cairo_surface_create_similar (target, CAIRO_CONTENT_COLOR_ALPHA, 2048, 2048); + cr = cairo_create(source_surface); + + cairo_save(cr); + cairo_set_source_rgba(cr, 0, 0, 0, 0); + cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE); + cairo_paint(cr); + cairo_restore(cr); + + cairo_set_line_width(cr, 1.0); + + for (j = 0; j < 16; j++) + for (i = 0; i < 16; i++) + { + cairo_set_source_rgba(cr, + ((i * 41) % 16) / 15., + ((i * 31) % 16) / 15., + ((i * 23) % 16) / 15., + 0.25); + cairo_arc(cr, + i * 128 + 64, j * 128 + 64, + 64 - 0.5, 0, 2 * M_PI); + cairo_fill_preserve(cr); + cairo_set_source_rgba(cr, + ((i * 41) % 16) / 15., + ((i * 31) % 16) / 15., + ((i * 23) % 16) / 15., + 1.0); + cairo_stroke(cr); + } +} + +static void +on_window_draw (GtkWidget *widget, + cairo_t *cr) + +{ + GRand *rand = g_rand_new_with_seed(0); + int i; + int width, height; + + width = gtk_widget_get_allocated_width (widget); + height = gtk_widget_get_allocated_height (widget); + + ensure_resources (cairo_get_target (cr)); + + cairo_set_source_rgb(cr, 1, 1, 1); + cairo_paint(cr); + + cairo_set_source_rgb(cr, 0, 0, 0); + cairo_set_line_width(cr, 1.0); + cairo_rectangle (cr, 0.5, 0.5, width - 1, height - 1); + cairo_stroke (cr); + + for(i = 0; i < load_factor * 150; i++) + { + int source = g_rand_int_range(rand, 0, 255); + double phi = g_rand_double_range(rand, 0, 2 * M_PI) + angle; + double r = g_rand_double_range(rand, 0, width / 2 - 64); + int x, y; + + int source_x = (source % 16) * 128; + int source_y = (source / 16) * 128; + + x = round(width / 2 + r * cos(phi) - 64); + y = round(height / 2 - r * sin(phi) - 64); + + cairo_set_source_surface(cr, source_surface, + x - source_x, y - source_y); + cairo_rectangle(cr, x, y, 128, 128); + cairo_fill(cr); + } + + g_rand_free(rand); +} + +static void +on_frame (GtkTimeline *timeline, + double progress) +{ + int jitter; + double current_time; + static double last_print_time = 0; + + current_time = g_get_monotonic_time () / 1000000.; + if (current_time >= last_print_time + 5) + { + if (frames_since_last_print != 0) + { + g_print ("%g\n", frames_since_last_print / (current_time - last_print_time)); + frames_since_last_print = 0; + } + + last_print_time = current_time; + } + frames_since_last_print++; + + angle = 2 * M_PI * progress; + jitter = WINDOW_SIZE_JITTER * sin(angle); + + if (!cb_no_resize) + { + window_width = WIDTH + jitter; + window_height = HEIGHT + jitter; + } + + gtk_window_resize (GTK_WINDOW (window), + window_width, window_height); + + gtk_widget_queue_draw (window); +} + +static GOptionEntry options[] = { + { "factor", 'f', 0, G_OPTION_ARG_DOUBLE, &load_factor, "Load factor", "FACTOR" }, + { "no-resize", 'n', 0, G_OPTION_ARG_NONE, &cb_no_resize, "No Resize", NULL }, + { NULL } +}; + +int +main(int argc, char **argv) +{ + GError *error = NULL; + GdkScreen *screen; + GdkRectangle monitor_bounds; + GtkTimeline *timeline; + + if (!gtk_init_with_args (&argc, &argv, "", + options, NULL, NULL)) + { + g_printerr ("Option parsing failed: %s", error->message); + return 1; + } + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_keep_above (GTK_WINDOW (window), TRUE); + gtk_window_set_gravity (GTK_WINDOW (window), GDK_GRAVITY_CENTER); + gtk_widget_set_app_paintable (window, TRUE); + + g_signal_connect (window, "draw", + G_CALLBACK (on_window_draw), NULL); + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_main_quit), NULL); + + timeline = gtk_timeline_new (window, CYCLE_TIME * 1000); + gtk_timeline_set_loop (timeline, TRUE); + gtk_timeline_set_progress_type (timeline, GTK_TIMELINE_PROGRESS_LINEAR); + + g_signal_connect (timeline, "frame", + G_CALLBACK (on_frame), NULL); + on_frame (timeline, 0.); + gtk_timeline_start (timeline); + + screen = gtk_widget_get_screen (window); + gdk_screen_get_monitor_geometry (screen, + gdk_screen_get_primary_monitor (screen), + &monitor_bounds); + + gtk_window_move (GTK_WINDOW (window), + monitor_bounds.x + (monitor_bounds.width - window_width) / 2, + monitor_bounds.y + (monitor_bounds.height - window_height) / 2); + + gtk_widget_show (window); + + gtk_main (); + + return 0; +} From 05386b44e04bc23e6cd68b74dd9047b874a2020b Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Tue, 2 Oct 2012 19:54:15 -0400 Subject: [PATCH 029/208] GtkScrolledWindow: use GdkFrameClock for kinetic scrolling Use GdkFrameClock when animating scrolling via touch, rather than a timeout. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gtk/gtkscrolledwindow.c | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index 0095072ea6..588e9d9ce0 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -126,7 +126,6 @@ #define TOUCH_BYPASS_CAPTURED_THRESHOLD 30 /* Kinetic scrolling */ -#define FRAME_INTERVAL (1000 / 60) #define MAX_OVERSHOOT_DISTANCE 50 #define FRICTION_DECELERATION 0.003 #define OVERSHOOT_INVERSE_ACCELERATION 0.003 @@ -284,6 +283,8 @@ static gboolean _gtk_scrolled_window_set_adjustment_value (GtkScrolledWindo gboolean allow_overshooting, gboolean snap_to_border); +static void gtk_scrolled_window_cancel_deceleration (GtkScrolledWindow *scrolled_window); + static guint signals[LAST_SIGNAL] = {0}; G_DEFINE_TYPE (GtkScrolledWindow, gtk_scrolled_window, GTK_TYPE_BIN) @@ -2383,10 +2384,10 @@ _gtk_scrolled_window_set_adjustment_value (GtkScrolledWindow *scrolled_window, return (*prev_value != value); } -static gboolean -scrolled_window_deceleration_cb (gpointer user_data) +static void +scrolled_window_deceleration_cb (GdkFrameClock *frame_clock, + KineticScrollData *data) { - KineticScrollData *data = user_data; GtkScrolledWindow *scrolled_window = data->scrolled_window; GtkScrolledWindowPrivate *priv = scrolled_window->priv; GtkAdjustment *hadjustment, *vadjustment; @@ -2401,7 +2402,7 @@ scrolled_window_deceleration_cb (gpointer user_data) _gtk_scrolled_window_get_overshoot (scrolled_window, &old_overshoot_x, &old_overshoot_y); - current_time = g_get_monotonic_time (); + current_time = gdk_frame_clock_get_frame_time (frame_clock); elapsed = (current_time - data->last_deceleration_time) / 1000; data->last_deceleration_time = current_time; @@ -2495,12 +2496,9 @@ scrolled_window_deceleration_cb (gpointer user_data) if (overshoot_x != 0 || overshoot_y != 0 || data->x_velocity != 0 || data->y_velocity != 0) - return TRUE; + gdk_frame_clock_request_phase (frame_clock, GDK_FRAME_CLOCK_PHASE_UPDATE); else - { - priv->deceleration_id = 0; - return FALSE; - } + gtk_scrolled_window_cancel_deceleration (scrolled_window); } static void @@ -2510,7 +2508,11 @@ gtk_scrolled_window_cancel_deceleration (GtkScrolledWindow *scrolled_window) if (priv->deceleration_id) { - g_source_remove (priv->deceleration_id); + GdkFrameClock *frame_clock; + + frame_clock = gtk_widget_get_frame_clock (GTK_WIDGET (scrolled_window)); + g_signal_handler_disconnect (frame_clock, + priv->deceleration_id); priv->deceleration_id = 0; } } @@ -2519,12 +2521,15 @@ static void gtk_scrolled_window_start_deceleration (GtkScrolledWindow *scrolled_window) { GtkScrolledWindowPrivate *priv = scrolled_window->priv; + GdkFrameClock *frame_clock; KineticScrollData *data; gdouble angle; + frame_clock = gtk_widget_get_frame_clock (GTK_WIDGET (scrolled_window)); + data = g_new0 (KineticScrollData, 1); data->scrolled_window = scrolled_window; - data->last_deceleration_time = g_get_monotonic_time (); + data->last_deceleration_time = gdk_frame_clock_get_frame_time (frame_clock); data->x_velocity = priv->x_velocity; data->y_velocity = priv->y_velocity; @@ -2536,10 +2541,12 @@ gtk_scrolled_window_start_deceleration (GtkScrolledWindow *scrolled_window) data->vel_sine = sin (angle); scrolled_window->priv->deceleration_id = - gdk_threads_add_timeout_full (G_PRIORITY_DEFAULT, - FRAME_INTERVAL, - scrolled_window_deceleration_cb, - data, (GDestroyNotify) g_free); + g_signal_connect_data (frame_clock, "update", + G_CALLBACK (scrolled_window_deceleration_cb), + data, + (GClosureNotify) g_free, + 0); + gdk_frame_clock_request_phase (frame_clock, GDK_FRAME_CLOCK_PHASE_UPDATE); } static gboolean From a69285da08a2a61d5fd817ee8ccb88a6b6deaef6 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 26 Sep 2012 10:28:06 -0400 Subject: [PATCH 030/208] Compress motion synchronized with the paint cycle When we have pending motion events, instead of delivering them directly, request the new FLUSH_EVENTS phase of the frame clock. This allows us to compress repeated motion events sent to the same window. In the FLUSH_EVENTS phase, which occur at priority GDK_PRIORITY_EVENTS + 1, we deliver any pending motion events then turn off event delivery until the end of the next frame. Turning off event delivery means that we'll reliably paint the compressed motion events even if more have arrived. Add a motion-compression test case which demonstrates behavior when an application takes too long handle motion events. It is unusable without this patch but behaves fine with the patch. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdkdisplay.c | 31 +++++++++- gdk/gdkdisplayprivate.h | 5 ++ gdk/gdkevents.c | 69 ++++++++++++++++++++- gdk/gdkframeclock.c | 32 ++++++++++ gdk/gdkframeclock.h | 16 +++-- gdk/gdkframeclockidle.c | 121 ++++++++++++++++++++++++++++++------- gdk/gdkinternals.h | 3 + gdk/gdkwindow.c | 59 ++++++++++++++++-- tests/Makefile.am | 2 + tests/motion-compression.c | 72 ++++++++++++++++++++++ 10 files changed, 373 insertions(+), 37 deletions(-) create mode 100644 tests/motion-compression.c diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index b02ab8a541..8e5092c4d9 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -308,7 +308,11 @@ gdk_display_get_event (GdkDisplay *display) g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); GDK_DISPLAY_GET_CLASS (display)->queue_events (display); - return _gdk_event_unqueue (display); + + if (display->events_paused) + return NULL; + else + return _gdk_event_unqueue (display); } /** @@ -2003,6 +2007,31 @@ gdk_display_notify_startup_complete (GdkDisplay *display, GDK_DISPLAY_GET_CLASS (display)->notify_startup_complete (display, startup_id); } +void +_gdk_display_set_events_paused (GdkDisplay *display, + gboolean events_paused) +{ + display->events_paused = !!events_paused; +} + +void +_gdk_display_flush_events (GdkDisplay *display) +{ + display->flushing_events = TRUE; + + while (TRUE) + { + GdkEvent *event = _gdk_event_unqueue (display); + if (event == NULL) + break; + + _gdk_event_emit (event); + gdk_event_free (event); + } + + display->flushing_events = FALSE; +} + void _gdk_display_event_data_copy (GdkDisplay *display, const GdkEvent *event, diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h index 6549f213a5..8f448eba77 100644 --- a/gdk/gdkdisplayprivate.h +++ b/gdk/gdkdisplayprivate.h @@ -114,6 +114,8 @@ struct _GdkDisplay GdkDevice *core_pointer; /* Core pointer device */ guint closed : 1; /* Whether this display has been closed */ + guint events_paused : 1; /* Whether events are blocked */ + guint flushing_events : 1; /* Inside gdk_display_flush_events */ GArray *touch_implicit_grabs; GHashTable *device_grabs; @@ -296,6 +298,9 @@ void _gdk_display_pointer_info_foreach (GdkDisplay *display GdkDisplayPointerInfoForeach func, gpointer user_data); gulong _gdk_display_get_next_serial (GdkDisplay *display); +void _gdk_display_set_events_paused (GdkDisplay *display, + gboolean events_paused); +void _gdk_display_flush_events (GdkDisplay *display); void _gdk_display_event_data_copy (GdkDisplay *display, const GdkEvent *event, GdkEvent *new_event); diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c index 204863c4bf..d068e13c2b 100644 --- a/gdk/gdkevents.c +++ b/gdk/gdkevents.c @@ -85,13 +85,27 @@ _gdk_event_emit (GdkEvent *event) GList* _gdk_event_queue_find_first (GdkDisplay *display) { - GList *tmp_list = display->queued_events; + GList *tmp_list; + GList *pending_motion = NULL; + if (display->events_paused) + return NULL; + + tmp_list = display->queued_events; while (tmp_list) { GdkEventPrivate *event = tmp_list->data; - if (!(event->flags & GDK_EVENT_PENDING)) - return tmp_list; + + if (event->flags & GDK_EVENT_PENDING) + continue; + + if (pending_motion) + return pending_motion; + + if (event->event.type == GDK_MOTION_NOTIFY && !display->flushing_events) + pending_motion = tmp_list; + else + return tmp_list; tmp_list = g_list_next (tmp_list); } @@ -248,6 +262,55 @@ _gdk_event_unqueue (GdkDisplay *display) return event; } +void +_gdk_event_queue_handle_motion_compression (GdkDisplay *display) +{ + GList *tmp_list; + GList *pending_motions = NULL; + GdkWindow *pending_motion_window = NULL; + + /* If the last N events in the event queue are motion notify + * events for the same window, drop all but the last */ + + tmp_list = display->queued_tail; + + while (tmp_list) + { + GdkEventPrivate *event = tmp_list->data; + + if (event->flags & GDK_EVENT_PENDING) + break; + + if (event->event.type != GDK_MOTION_NOTIFY) + break; + + if (pending_motion_window != NULL && + pending_motion_window != event->event.motion.window) + break; + + pending_motion_window = event->event.motion.window; + pending_motions = tmp_list; + + tmp_list = tmp_list->prev; + } + + while (pending_motions && pending_motions->next != NULL) + { + GList *next = pending_motions->next; + display->queued_events = g_list_delete_link (display->queued_events, + pending_motions); + pending_motions = next; + } + + if (pending_motions && + pending_motions == display->queued_events && + pending_motions == display->queued_tail) + { + GdkFrameClock *clock = gdk_window_get_frame_clock (pending_motion_window); + gdk_frame_clock_request_phase (clock, GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS); + } +} + /** * gdk_event_handler_set: * @func: the function to call to handle events from GDK. diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index 569ab6b52e..8c6d202102 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -91,11 +91,13 @@ G_DEFINE_INTERFACE (GdkFrameClock, gdk_frame_clock, G_TYPE_OBJECT) enum { FRAME_REQUESTED, + FLUSH_EVENTS, BEFORE_PAINT, UPDATE, LAYOUT, PAINT, AFTER_PAINT, + RESUME_EVENTS, LAST_SIGNAL }; @@ -120,6 +122,21 @@ gdk_frame_clock_default_init (GdkFrameClockInterface *iface) g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + /** + * GdkFrameClock::flush-events: + * @clock: the frame clock emitting the signal + * + * FIXME. + */ + signals[FLUSH_EVENTS] = + g_signal_new (g_intern_static_string ("flush-events"), + GDK_TYPE_FRAME_CLOCK, + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + /** * GdkFrameClock::before-paint: * @clock: the frame clock emitting the signal @@ -202,6 +219,21 @@ gdk_frame_clock_default_init (GdkFrameClockInterface *iface) NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + + /** + * GdkFrameClock::resume-events: + * @clock: the frame clock emitting the signal + * + * FIXME. + */ + signals[RESUME_EVENTS] = + g_signal_new (g_intern_static_string ("resume-events"), + GDK_TYPE_FRAME_CLOCK, + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); } /** diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index ae445737df..624f6fef4c 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -64,12 +64,14 @@ void gdk_frame_clock_target_set_clock (GdkFrameClockTarget *target, #define GDK_FRAME_CLOCK_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GDK_TYPE_FRAME_CLOCK, GdkFrameClockInterface)) typedef enum { - GDK_FRAME_CLOCK_PHASE_NONE = 0, - GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT = 1 << 0, - GDK_FRAME_CLOCK_PHASE_UPDATE = 1 << 1, - GDK_FRAME_CLOCK_PHASE_LAYOUT = 1 << 2, - GDK_FRAME_CLOCK_PHASE_PAINT = 1 << 3, - GDK_FRAME_CLOCK_PHASE_AFTER_PAINT = 1 << 4 + GDK_FRAME_CLOCK_PHASE_NONE = 0, + GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS = 1 << 0, + GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT = 1 << 1, + GDK_FRAME_CLOCK_PHASE_UPDATE = 1 << 2, + GDK_FRAME_CLOCK_PHASE_LAYOUT = 1 << 3, + GDK_FRAME_CLOCK_PHASE_PAINT = 1 << 4, + GDK_FRAME_CLOCK_PHASE_AFTER_PAINT = 1 << 5, + GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS = 1 << 6 } GdkFrameClockPhase; struct _GdkFrameClockInterface @@ -87,11 +89,13 @@ struct _GdkFrameClockInterface /* signals */ /* void (* frame_requested) (GdkFrameClock *clock); */ + /* void (* flush_events) (GdkFrameClock *clock); */ /* void (* before_paint) (GdkFrameClock *clock); */ /* void (* update) (GdkFrameClock *clock); */ /* void (* layout) (GdkFrameClock *clock); */ /* void (* paint) (GdkFrameClock *clock); */ /* void (* after_paint) (GdkFrameClock *clock); */ + /* void (* resume_events) (GdkFrameClock *clock); */ }; GType gdk_frame_clock_get_type (void) G_GNUC_CONST; diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index bf68fd1b64..ff4b479ae4 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -39,13 +39,15 @@ struct _GdkFrameClockIdlePrivate guint64 frame_time; guint64 min_next_frame_time; - guint idle_id; + guint flush_idle_id; + guint paint_idle_id; guint freeze_count; GdkFrameClockPhase requested; GdkFrameClockPhase phase; }; +static gboolean gdk_frame_clock_flush_idle (void *data); static gboolean gdk_frame_clock_paint_idle (void *data); static void gdk_frame_clock_idle_finalize (GObject *object); @@ -144,7 +146,7 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) { GdkFrameClockIdlePrivate *priv = clock_idle->priv; - if (priv->idle_id == 0 && priv->freeze_count == 0 && priv->requested != 0) + if (priv->freeze_count == 0) { guint min_interval = 0; @@ -155,41 +157,89 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) min_interval = (min_interval_us + 500) / 1000; } - priv->idle_id = gdk_threads_add_timeout_full (GDK_PRIORITY_REDRAW, - min_interval, - gdk_frame_clock_paint_idle, - g_object_ref (clock_idle), - (GDestroyNotify) g_object_unref); + if (priv->flush_idle_id == 0 && + (priv->requested & GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS) != 0) + { + priv->flush_idle_id = gdk_threads_add_timeout_full (GDK_PRIORITY_EVENTS + 1, + min_interval, + gdk_frame_clock_flush_idle, + g_object_ref (clock_idle), + (GDestroyNotify) g_object_unref); + } - gdk_frame_clock_frame_requested (GDK_FRAME_CLOCK (clock_idle)); + if (priv->paint_idle_id == 0 && + (priv->requested & ~GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS) != 0) + { + priv->paint_idle_id = gdk_threads_add_timeout_full (GDK_PRIORITY_REDRAW, + min_interval, + gdk_frame_clock_paint_idle, + g_object_ref (clock_idle), + (GDestroyNotify) g_object_unref); + + gdk_frame_clock_frame_requested (GDK_FRAME_CLOCK (clock_idle)); + } } } +static gboolean +gdk_frame_clock_flush_idle (void *data) +{ + GdkFrameClock *clock = GDK_FRAME_CLOCK (data); + GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); + GdkFrameClockIdlePrivate *priv = clock_idle->priv; + + priv->flush_idle_id = 0; + + if (priv->phase != GDK_FRAME_CLOCK_PHASE_NONE) + return FALSE; + + priv->phase = GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS; + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS; + + g_signal_emit_by_name (G_OBJECT (clock), "flush-events"); + + if ((priv->requested & ~GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS) != 0) + priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; + else + priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; + + return FALSE; +} + static gboolean gdk_frame_clock_paint_idle (void *data) { GdkFrameClock *clock = GDK_FRAME_CLOCK (data); GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); GdkFrameClockIdlePrivate *priv = clock_idle->priv; + gboolean skip_to_resume_events; - priv->idle_id = 0; + priv->paint_idle_id = 0; + + skip_to_resume_events = + (priv->requested & ~(GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS | GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS)) == 0; switch (priv->phase) { + case GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS: + break; case GDK_FRAME_CLOCK_PHASE_NONE: case GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT: if (priv->freeze_count == 0) { priv->frame_time = compute_frame_time (clock_idle); - priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; - priv->requested &= ~GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; - /* We always emit ::before-paint and ::after-paint even if - * not explicitly requested, and unlike other phases, + priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; + /* We always emit ::before-paint and ::after-paint if + * any of the intermediate phases are requested and * they don't get repeated if you freeze/thaw while * in them. */ - g_signal_emit_by_name (G_OBJECT (clock), "before-paint"); - priv->phase = GDK_FRAME_CLOCK_PHASE_UPDATE; + if (!skip_to_resume_events) + { + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; + g_signal_emit_by_name (G_OBJECT (clock), "before-paint"); + } + priv->phase = GDK_FRAME_CLOCK_PHASE_UPDATE; } case GDK_FRAME_CLOCK_PHASE_UPDATE: if (priv->freeze_count == 0) @@ -224,9 +274,24 @@ gdk_frame_clock_paint_idle (void *data) if (priv->freeze_count == 0) { priv->phase = GDK_FRAME_CLOCK_PHASE_AFTER_PAINT; - priv->requested &= ~GDK_FRAME_CLOCK_PHASE_AFTER_PAINT; - g_signal_emit_by_name (G_OBJECT (clock), "after-paint"); - /* the ::after-paint phase doesn't get repeated on freeze/thaw */ + if (!skip_to_resume_events) + { + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_AFTER_PAINT; + g_signal_emit_by_name (G_OBJECT (clock), "after-paint"); + } + /* the ::after-paint phase doesn't get repeated on freeze/thaw, + */ + priv->phase = GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS; + } + case GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS: + if (priv->freeze_count == 0) + { + if (priv->requested & GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS) + { + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS; + g_signal_emit_by_name (G_OBJECT (clock), "resume-events"); + } + /* the ::resume-event phase doesn't get repeated on freeze/thaw */ priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; } } @@ -276,10 +341,15 @@ gdk_frame_clock_idle_freeze (GdkFrameClock *clock) if (priv->freeze_count == 1) { - if (priv->idle_id) + if (priv->flush_idle_id) { - g_source_remove (priv->idle_id); - priv->idle_id = 0; + g_source_remove (priv->flush_idle_id); + priv->flush_idle_id = 0; + } + if (priv->paint_idle_id) + { + g_source_remove (priv->paint_idle_id); + priv->paint_idle_id = 0; } } } @@ -294,7 +364,14 @@ gdk_frame_clock_idle_thaw (GdkFrameClock *clock) priv->freeze_count--; if (priv->freeze_count == 0) - maybe_start_idle (clock_idle); + { + maybe_start_idle (clock_idle); + /* If nothing is requested so we didn't start an idle, we need + * to skip to the end of the state chain, since the idle won't + * run and do it for us. */ + if (priv->paint_idle_id == 0) + priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; + } } static void diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index fb561e6f74..babef6e7f6 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -300,6 +300,9 @@ GList* _gdk_event_queue_insert_after (GdkDisplay *display, GList* _gdk_event_queue_insert_before(GdkDisplay *display, GdkEvent *after_event, GdkEvent *event); + +void _gdk_event_queue_handle_motion_compression (GdkDisplay *display); + void _gdk_event_button_generate (GdkDisplay *display, GdkEvent *event); diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 0505d3fb6e..0ac0cfeda0 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -10038,7 +10038,7 @@ _gdk_windowing_got_event (GdkDisplay *display, { GdkWindow *event_window; gdouble x, y; - gboolean unlink_event; + gboolean unlink_event = FALSE; GdkDeviceGrabInfo *button_release_grab; GdkPointerWindowInfo *pointer_info = NULL; GdkDevice *device, *source_device; @@ -10081,7 +10081,7 @@ _gdk_windowing_got_event (GdkDisplay *display, event_window = event->any.window; if (!event_window) - return; + goto out; #ifdef DEBUG_WINDOW_PRINTING if (event->type == GDK_KEY_PRESS && @@ -10096,13 +10096,13 @@ _gdk_windowing_got_event (GdkDisplay *display, { event_window->native_visibility = event->visibility.state; gdk_window_update_visibility_recursively (event_window, event_window); - return; + goto out; } if (!(is_button_type (event->type) || is_motion_type (event->type)) || event_window->window_type == GDK_WINDOW_ROOT) - return; + goto out; is_toplevel = gdk_window_is_toplevel (event_window); @@ -10195,7 +10195,6 @@ _gdk_windowing_got_event (GdkDisplay *display, _gdk_display_enable_motion_hints (display, device); } - unlink_event = FALSE; if (is_motion_type (event->type)) unlink_event = proxy_pointer_event (display, event, serial); else if (is_button_type (event->type)) @@ -10237,6 +10236,13 @@ _gdk_windowing_got_event (GdkDisplay *display, g_list_free_1 (event_link); gdk_event_free (event); } + + /* This does two things - first it sees if there are motions at the + * end of the queue that can be compressed. Second, if there is just + * a single motion that won't be dispatched because it is a compression + * candidate it queues up flushing the event queue. + */ + _gdk_event_queue_handle_motion_compression (display); } /** @@ -11603,6 +11609,22 @@ gdk_property_delete (GdkWindow *window, GDK_WINDOW_IMPL_GET_CLASS (window->impl)->delete_property (window, property); } +static void +gdk_window_flush_events (GdkFrameClock *clock, + void *data) +{ + GdkWindow *window; + GdkDisplay *display; + + window = GDK_WINDOW (data); + + display = gdk_window_get_display (window); + _gdk_display_flush_events (display); + _gdk_display_set_events_paused (display, TRUE); + + gdk_frame_clock_request_phase (clock, GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS); +} + static void gdk_window_paint_on_clock (GdkFrameClock *clock, void *data) @@ -11616,6 +11638,19 @@ gdk_window_paint_on_clock (GdkFrameClock *clock, gdk_window_process_updates_with_mode (window, PROCESS_UPDATES_WITH_SAME_CLOCK_CHILDREN); } +static void +gdk_window_resume_events (GdkFrameClock *clock, + void *data) +{ + GdkWindow *window; + GdkDisplay *display; + + window = GDK_WINDOW (data); + + display = gdk_window_get_display (window); + _gdk_display_set_events_paused (display, FALSE); +} + /** * gdk_window_set_frame_clock: * @window: window to set frame clock on @@ -11651,17 +11686,31 @@ gdk_window_set_frame_clock (GdkWindow *window, if (clock) { g_object_ref (clock); + g_signal_connect (G_OBJECT (clock), + "flush-events", + G_CALLBACK (gdk_window_flush_events), + window); g_signal_connect (G_OBJECT (clock), "paint", G_CALLBACK (gdk_window_paint_on_clock), window); + g_signal_connect (G_OBJECT (clock), + "resume-events", + G_CALLBACK (gdk_window_resume_events), + window); } if (window->frame_clock) { + g_signal_handlers_disconnect_by_func (G_OBJECT (window->frame_clock), + G_CALLBACK (gdk_window_flush_events), + window); g_signal_handlers_disconnect_by_func (G_OBJECT (window->frame_clock), G_CALLBACK (gdk_window_paint_on_clock), window); + g_signal_handlers_disconnect_by_func (G_OBJECT (window->frame_clock), + G_CALLBACK (gdk_window_resume_events), + window); g_object_unref (window->frame_clock); } diff --git a/tests/Makefile.am b/tests/Makefile.am index 7917905090..59f1678fcd 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -26,6 +26,7 @@ endif noinst_PROGRAMS = $(TEST_PROGS) \ animated-resizing \ + motion-compression \ simple \ flicker \ print-editor \ @@ -152,6 +153,7 @@ endif animated_resizing_DEPENDENCIES = $(TEST_DEPS) flicker_DEPENDENCIES = $(TEST_DEPS) +motion_compression_DEPENDENCIES = $(TEST_DEPS) simple_DEPENDENCIES = $(TEST_DEPS) print_editor_DEPENDENCIES = $(TEST_DEPS) testheightforwidth_DEPENDENCIES = $(TEST_DEPS) diff --git a/tests/motion-compression.c b/tests/motion-compression.c new file mode 100644 index 0000000000..c7effad9a4 --- /dev/null +++ b/tests/motion-compression.c @@ -0,0 +1,72 @@ +#include +#include + +GtkAdjustment *adjustment; +int cursor_x, cursor_y; + +static void +on_motion_notify (GtkWidget *window, + GdkEventMotion *event) +{ + if (event->window == gtk_widget_get_window (window)) + { + float processing_ms = gtk_adjustment_get_value (adjustment); + g_usleep (processing_ms * 1000); + cursor_x = event->x; + cursor_y = event->y; + gtk_widget_queue_draw (window); + } +} + +static void +on_draw (GtkWidget *window, + cairo_t *cr) +{ + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + cairo_set_source_rgb (cr, 0, 0.5, 0.5); + + cairo_arc (cr, cursor_x, cursor_y, 10, 0, 2 * M_PI); + cairo_stroke (cr); +} + +int +main (int argc, char **argv) +{ + GtkWidget *window; + GtkWidget *vbox; + GtkWidget *label; + GtkWidget *scale; + + gtk_init (&argc, &argv); + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_default_size (GTK_WINDOW (window), 300, 300); + gtk_widget_set_app_paintable (window, TRUE); + gtk_widget_add_events (window, GDK_POINTER_MOTION_MASK); + gtk_widget_set_app_paintable (window, TRUE); + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + gtk_container_add (GTK_CONTAINER (window), vbox); + + adjustment = gtk_adjustment_new (20, 0, 200, 1, 10, 0); + scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, adjustment); + gtk_box_pack_end (GTK_BOX (vbox), scale, FALSE, FALSE, 0); + + label = gtk_label_new ("Event processing time (ms):"); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_box_pack_end (GTK_BOX (vbox), label, FALSE, FALSE, 0); + + g_signal_connect (window, "motion-notify-event", + G_CALLBACK (on_motion_notify), NULL); + g_signal_connect (window, "draw", + G_CALLBACK (on_draw), NULL); + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_main_quit), NULL); + + gtk_widget_show_all (window); + gtk_main (); + + return 0; +} From 3cef97f10d3125888ec7707944ecda02cd8abc20 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Sun, 7 Oct 2012 11:42:45 -0400 Subject: [PATCH 031/208] GdkFrameClock: Reverse order of resume-events and afterpaint Keeping events paused after the end of a frame put us in a weird state where we had to process and queue events - so that we would get the message from the compositor - but not deliver them. Instead resume events before ending the frame. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdkframeclock.h | 4 +- gdk/gdkframeclockidle.c | 116 +++++++++++++++++++--------------------- 2 files changed, 58 insertions(+), 62 deletions(-) diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 624f6fef4c..d75fce984a 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -70,8 +70,8 @@ typedef enum { GDK_FRAME_CLOCK_PHASE_UPDATE = 1 << 2, GDK_FRAME_CLOCK_PHASE_LAYOUT = 1 << 3, GDK_FRAME_CLOCK_PHASE_PAINT = 1 << 4, - GDK_FRAME_CLOCK_PHASE_AFTER_PAINT = 1 << 5, - GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS = 1 << 6 + GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS = 1 << 5, + GDK_FRAME_CLOCK_PHASE_AFTER_PAINT = 1 << 6 } GdkFrameClockPhase; struct _GdkFrameClockInterface diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index ff4b479ae4..c8a90368ac 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -219,83 +219,79 @@ gdk_frame_clock_paint_idle (void *data) skip_to_resume_events = (priv->requested & ~(GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS | GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS)) == 0; - switch (priv->phase) + if (!skip_to_resume_events) { - case GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS: - break; - case GDK_FRAME_CLOCK_PHASE_NONE: - case GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT: - if (priv->freeze_count == 0) - { - priv->frame_time = compute_frame_time (clock_idle); - - priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; - /* We always emit ::before-paint and ::after-paint if - * any of the intermediate phases are requested and - * they don't get repeated if you freeze/thaw while - * in them. */ - if (!skip_to_resume_events) + switch (priv->phase) + { + case GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS: + break; + case GDK_FRAME_CLOCK_PHASE_NONE: + case GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT: + if (priv->freeze_count == 0) { + priv->frame_time = compute_frame_time (clock_idle); + + priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; + + /* We always emit ::before-paint and ::after-paint if + * any of the intermediate phases are requested and + * they don't get repeated if you freeze/thaw while + * in them. */ priv->requested &= ~GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; g_signal_emit_by_name (G_OBJECT (clock), "before-paint"); + priv->phase = GDK_FRAME_CLOCK_PHASE_UPDATE; } - priv->phase = GDK_FRAME_CLOCK_PHASE_UPDATE; - } - case GDK_FRAME_CLOCK_PHASE_UPDATE: - if (priv->freeze_count == 0) - { - if (priv->requested & GDK_FRAME_CLOCK_PHASE_UPDATE) + case GDK_FRAME_CLOCK_PHASE_UPDATE: + if (priv->freeze_count == 0) { - priv->requested &= ~GDK_FRAME_CLOCK_PHASE_UPDATE; - g_signal_emit_by_name (G_OBJECT (clock), "update"); + if (priv->requested & GDK_FRAME_CLOCK_PHASE_UPDATE) + { + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_UPDATE; + g_signal_emit_by_name (G_OBJECT (clock), "update"); + } } - } - case GDK_FRAME_CLOCK_PHASE_LAYOUT: - if (priv->freeze_count == 0) - { - priv->phase = GDK_FRAME_CLOCK_PHASE_LAYOUT; - if (priv->requested & GDK_FRAME_CLOCK_PHASE_LAYOUT) + case GDK_FRAME_CLOCK_PHASE_LAYOUT: + if (priv->freeze_count == 0) { - priv->requested &= ~GDK_FRAME_CLOCK_PHASE_LAYOUT; - g_signal_emit_by_name (G_OBJECT (clock), "layout"); + priv->phase = GDK_FRAME_CLOCK_PHASE_LAYOUT; + if (priv->requested & GDK_FRAME_CLOCK_PHASE_LAYOUT) + { + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_LAYOUT; + g_signal_emit_by_name (G_OBJECT (clock), "layout"); + } } - } - case GDK_FRAME_CLOCK_PHASE_PAINT: - if (priv->freeze_count == 0) - { - priv->phase = GDK_FRAME_CLOCK_PHASE_PAINT; - if (priv->requested & GDK_FRAME_CLOCK_PHASE_PAINT) + case GDK_FRAME_CLOCK_PHASE_PAINT: + if (priv->freeze_count == 0) { - priv->requested &= ~GDK_FRAME_CLOCK_PHASE_PAINT; - g_signal_emit_by_name (G_OBJECT (clock), "paint"); + priv->phase = GDK_FRAME_CLOCK_PHASE_PAINT; + if (priv->requested & GDK_FRAME_CLOCK_PHASE_PAINT) + { + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_PAINT; + g_signal_emit_by_name (G_OBJECT (clock), "paint"); + } } - } - case GDK_FRAME_CLOCK_PHASE_AFTER_PAINT: - if (priv->freeze_count == 0) - { - priv->phase = GDK_FRAME_CLOCK_PHASE_AFTER_PAINT; - if (!skip_to_resume_events) + case GDK_FRAME_CLOCK_PHASE_AFTER_PAINT: + if (priv->freeze_count == 0) { priv->requested &= ~GDK_FRAME_CLOCK_PHASE_AFTER_PAINT; g_signal_emit_by_name (G_OBJECT (clock), "after-paint"); + /* the ::after-paint phase doesn't get repeated on freeze/thaw, + */ + priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; } - /* the ::after-paint phase doesn't get repeated on freeze/thaw, - */ - priv->phase = GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS; - } - case GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS: - if (priv->freeze_count == 0) - { - if (priv->requested & GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS) - { - priv->requested &= ~GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS; - g_signal_emit_by_name (G_OBJECT (clock), "resume-events"); - } - /* the ::resume-event phase doesn't get repeated on freeze/thaw */ - priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; - } + case GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS: + ; + } } + if (priv->requested & GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS) + { + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS; + g_signal_emit_by_name (G_OBJECT (clock), "resume-events"); + } + + priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; + if (priv->freeze_count == 0 && priv->requested != 0) { /* We need to start over again immediately - this implies that there is no From d446dda9205f09b7a6ad88ac3acfa4fff85d9c66 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Sun, 7 Oct 2012 11:47:49 -0400 Subject: [PATCH 032/208] gdk_display_get_event: don't unqueue events from the windowing system when paused Unqueuing events from the windowing system when paused could result in weird reordering if event filters resulted in application-visible behavior. Since we now resume events when the frame clock is frozen, we now no longer count on low-level event handling running while event handling is paused. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdkdisplay.c | 8 ++++---- gdk/x11/gdkeventsource.c | 12 +++++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index 8e5092c4d9..bded54aecb 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -307,12 +307,12 @@ gdk_display_get_event (GdkDisplay *display) { g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); - GDK_DISPLAY_GET_CLASS (display)->queue_events (display); - if (display->events_paused) return NULL; - else - return _gdk_event_unqueue (display); + + GDK_DISPLAY_GET_CLASS (display)->queue_events (display); + + return _gdk_event_unqueue (display); } /** diff --git a/gdk/x11/gdkeventsource.c b/gdk/x11/gdkeventsource.c index 6b82611bfc..4b1a546945 100644 --- a/gdk/x11/gdkeventsource.c +++ b/gdk/x11/gdkeventsource.c @@ -276,8 +276,12 @@ gdk_event_source_prepare (GSource *source, gdk_threads_enter (); *timeout = -1; - retval = (_gdk_event_queue_find_first (display) != NULL || - gdk_check_xpending (display)); + + if (display->event_pause_count > 0) + retval = FALSE; + else + retval = (_gdk_event_queue_find_first (display) != NULL || + gdk_check_xpending (display)); gdk_threads_leave (); @@ -292,7 +296,9 @@ gdk_event_source_check (GSource *source) gdk_threads_enter (); - if (event_source->event_poll_fd.revents & G_IO_IN) + if (event_source->display->event_pause_count > 0) + retval = FALSE; + else if (event_source->event_poll_fd.revents & G_IO_IN) retval = (_gdk_event_queue_find_first (event_source->display) != NULL || gdk_check_xpending (event_source->display)); else From e4aa9f05ae6e9b55d696f43c64ea61d91f8a1671 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Sun, 7 Oct 2012 14:13:56 -0400 Subject: [PATCH 033/208] GdkDisplay: handle multiple calls to _gdk_display_pause_events() Since events can be paused independently for each window during processing, make _gdk_display_pause_events() count how many times it is called and only unpause when unpause_events() is called the same number of times. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdkdisplay.c | 15 +++++++++++---- gdk/gdkdisplayprivate.h | 7 ++++--- gdk/gdkevents.c | 2 +- gdk/gdkwindow.c | 4 ++-- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index bded54aecb..79d162b2a9 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -307,7 +307,7 @@ gdk_display_get_event (GdkDisplay *display) { g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); - if (display->events_paused) + if (display->event_pause_count > 0) return NULL; GDK_DISPLAY_GET_CLASS (display)->queue_events (display); @@ -2008,10 +2008,17 @@ gdk_display_notify_startup_complete (GdkDisplay *display, } void -_gdk_display_set_events_paused (GdkDisplay *display, - gboolean events_paused) +_gdk_display_pause_events (GdkDisplay *display) { - display->events_paused = !!events_paused; + display->event_pause_count++; +} + +void +_gdk_display_unpause_events (GdkDisplay *display) +{ + g_return_if_fail (display->event_pause_count > 0); + + display->event_pause_count--; } void diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h index 8f448eba77..b4559eb4cb 100644 --- a/gdk/gdkdisplayprivate.h +++ b/gdk/gdkdisplayprivate.h @@ -113,8 +113,9 @@ struct _GdkDisplay guint double_click_time; /* Maximum time between clicks in msecs */ GdkDevice *core_pointer; /* Core pointer device */ + guint event_pause_count; /* How many times events are blocked */ + guint closed : 1; /* Whether this display has been closed */ - guint events_paused : 1; /* Whether events are blocked */ guint flushing_events : 1; /* Inside gdk_display_flush_events */ GArray *touch_implicit_grabs; @@ -298,8 +299,8 @@ void _gdk_display_pointer_info_foreach (GdkDisplay *display GdkDisplayPointerInfoForeach func, gpointer user_data); gulong _gdk_display_get_next_serial (GdkDisplay *display); -void _gdk_display_set_events_paused (GdkDisplay *display, - gboolean events_paused); +void _gdk_display_pause_events (GdkDisplay *display); +void _gdk_display_unpause_events (GdkDisplay *display); void _gdk_display_flush_events (GdkDisplay *display); void _gdk_display_event_data_copy (GdkDisplay *display, const GdkEvent *event, diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c index d068e13c2b..8e05a8edcd 100644 --- a/gdk/gdkevents.c +++ b/gdk/gdkevents.c @@ -88,7 +88,7 @@ _gdk_event_queue_find_first (GdkDisplay *display) GList *tmp_list; GList *pending_motion = NULL; - if (display->events_paused) + if (display->event_pause_count > 0) return NULL; tmp_list = display->queued_events; diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 0ac0cfeda0..211f8fd9ee 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -11620,7 +11620,7 @@ gdk_window_flush_events (GdkFrameClock *clock, display = gdk_window_get_display (window); _gdk_display_flush_events (display); - _gdk_display_set_events_paused (display, TRUE); + _gdk_display_pause_events (display); gdk_frame_clock_request_phase (clock, GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS); } @@ -11648,7 +11648,7 @@ gdk_window_resume_events (GdkFrameClock *clock, window = GDK_WINDOW (data); display = gdk_window_get_display (window); - _gdk_display_set_events_paused (display, FALSE); + _gdk_display_unpause_events (display); } /** From d761df7e0c73341a191b45ac5c30c44eaf31e305 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 14 Nov 2012 12:23:41 -0500 Subject: [PATCH 034/208] GdkWindowX11: Only start a frame when we emit damage Instead of communicating the start of a frame to the window manager as soon as we begin a frame, start a frame only when we know we've actually created damage to the contents of a window. (This uses cairo_set_mime_data() as a notification mechanism - a clever suggestion from Uli Schlachter.) The advantage of this is that we aren't forcing the compositor to do a frame cycle and send _NET_WM_FRAME_DRAWN - depending on how the compositor is structured that might either cause it to do extra work or it might send _NET_WM_FRAME_DRAWN early and upset frame timing. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/x11/gdkwindow-x11.c | 93 +++++++++++++++++++++++++++++++++++++---- gdk/x11/gdkwindow-x11.h | 2 + 2 files changed, 87 insertions(+), 8 deletions(-) diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index fbc13b5654..f2c5735e79 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -213,6 +213,70 @@ set_sync_counter(Display *display, XSyncSetCounter(display, counter, sync_value); } +static void +window_pre_damage (GdkWindow *window) +{ + GdkWindow *toplevel_window = gdk_window_get_toplevel (window); + GdkWindowImplX11 *impl; + + if (!toplevel_window || !WINDOW_IS_TOPLEVEL (toplevel_window)) + return; + + impl = GDK_WINDOW_IMPL_X11 (toplevel_window->impl); + + if (impl->toplevel->in_frame && + impl->toplevel->current_counter_value % 2 == 0) + { + impl->toplevel->current_counter_value += 1; + set_sync_counter(GDK_WINDOW_XDISPLAY (impl->wrapper), + impl->toplevel->extended_update_counter, + impl->toplevel->current_counter_value); + } +} + +static void +on_surface_changed (void *data) +{ + GdkWindow *window = data; + + window_pre_damage (window); +} + +/* We want to know when cairo drawing causes damage to the window, + * so we engage in the _NET_WM_FRAME_DRAWN protocol with the + * window only when there actually is drawing. To do that we use + * a technique (hack) suggested by Uli Schlachter - if we set + * a dummy "mime data" on the cairo surface (this facility is + * used to attach JPEG data to an imager), then cairo wil flush + * and remove the mime data before making any changes to the window. + */ + +static void +hook_surface_changed (GdkWindow *window) +{ + GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (window->impl); + + if (impl->cairo_surface) + cairo_surface_set_mime_data (impl->cairo_surface, + "x-gdk/change-notify", + (unsigned char *)"X", + 1, + on_surface_changed, + window); +} + +static void +unhook_surface_changed (GdkWindow *window) +{ + GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (window->impl); + + if (impl->cairo_surface) + cairo_surface_set_mime_data (impl->cairo_surface, + "x-gdk/change-notify", + NULL, 0, + NULL, NULL); +} + static void gdk_x11_window_begin_frame (GdkWindow *window) { @@ -226,13 +290,9 @@ gdk_x11_window_begin_frame (GdkWindow *window) impl->toplevel->extended_update_counter == None) return; - if (impl->toplevel->current_counter_value % 2 == 0) - { - impl->toplevel->current_counter_value += 1; - set_sync_counter(GDK_WINDOW_XDISPLAY (impl->wrapper), - impl->toplevel->extended_update_counter, - impl->toplevel->current_counter_value); - } + impl->toplevel->in_frame = TRUE; + + hook_surface_changed (window); } static void @@ -245,9 +305,12 @@ gdk_x11_window_end_frame (GdkWindow *window) impl = GDK_WINDOW_IMPL_X11 (window->impl); if (!WINDOW_IS_TOPLEVEL (window) || - impl->toplevel->extended_update_counter == None) + impl->toplevel->extended_update_counter == None || + !impl->toplevel->in_frame) return; + impl->toplevel->in_frame = FALSE; + if (impl->toplevel->current_counter_value % 2 == 1) { impl->toplevel->current_counter_value += 1; @@ -262,6 +325,8 @@ gdk_x11_window_end_frame (GdkWindow *window) gdk_frame_clock_freeze (gdk_window_get_frame_clock (window)); } } + + unhook_surface_changed (window); } /***************************************************** @@ -307,6 +372,9 @@ gdk_x11_ref_cairo_surface (GdkWindow *window) if (impl->cairo_surface) cairo_surface_set_user_data (impl->cairo_surface, &gdk_x11_cairo_key, impl, gdk_x11_cairo_surface_destroy); + + if (WINDOW_IS_TOPLEVEL (window) && impl->toplevel->in_frame) + hook_surface_changed (window); } else cairo_surface_reference (impl->cairo_surface); @@ -326,6 +394,9 @@ gdk_window_impl_x11_finalize (GObject *object) wrapper = impl->wrapper; + if (WINDOW_IS_TOPLEVEL (wrapper) && impl->toplevel->in_frame) + unhook_surface_changed (wrapper); + _gdk_x11_window_grab_check_destroy (wrapper); if (!GDK_WINDOW_DESTROYED (wrapper)) @@ -1569,6 +1640,8 @@ window_x11_move (GdkWindow *window, if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_CHILD) { + /* The window isn't actually damaged, but it's parent is */ + window_pre_damage (window); _gdk_x11_window_move_resize_child (window, x, y, window->width, window->height); @@ -1598,6 +1671,8 @@ window_x11_resize (GdkWindow *window, if (height < 1) height = 1; + window_pre_damage (window); + if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_CHILD) { _gdk_x11_window_move_resize_child (window, @@ -1641,6 +1716,8 @@ window_x11_move_resize (GdkWindow *window, if (height < 1) height = 1; + window_pre_damage (window); + if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_CHILD) { _gdk_x11_window_move_resize_child (window, x, y, width, height); diff --git a/gdk/x11/gdkwindow-x11.h b/gdk/x11/gdkwindow-x11.h index c42365222c..8dde335011 100644 --- a/gdk/x11/gdkwindow-x11.h +++ b/gdk/x11/gdkwindow-x11.h @@ -127,6 +127,8 @@ struct _GdkToplevelX11 */ guint have_focused : 1; + guint in_frame : 1; + /* If we're expecting a response from the compositor after painting a frame */ guint frame_pending : 1; From 15ee04c66f0e0d34106eb12e815b5f8f2a2b3c5f Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 14 Nov 2012 12:49:06 -0500 Subject: [PATCH 035/208] Add GdkFrameHistory and GdkFrameTimings, handle _NET_WM_FRAME_TIMINGS In order to be able to track statistics about how well we are drawing, and in order to be able to do sophisticated things with frame timing like predicting per-frame latencies and synchronizing audio with video, we need to be able to track exactly when previous frames were drawn to the screen. Information about each frame is stored in a new GdkFrameTimings object. A new GdkFrameHistory object is added which keeps a queue of recent GdkFrameTimings (this is added to avoid further complicating the implementation of GdkFrameClock.) https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/Makefile.am | 4 + gdk/gdkframeclock.c | 17 ++++ gdk/gdkframeclock.h | 6 +- gdk/gdkframeclockidle.c | 19 +++++ gdk/gdkframehistory.c | 143 +++++++++++++++++++++++++++++++ gdk/gdkframehistory.h | 49 +++++++++++ gdk/gdkframetimings.c | 180 +++++++++++++++++++++++++++++++++++++++ gdk/gdkframetimings.h | 63 ++++++++++++++ gdk/x11/gdkdisplay-x11.c | 100 ++++++++++++++++++---- gdk/x11/gdkwindow-x11.c | 10 +++ 10 files changed, 575 insertions(+), 16 deletions(-) create mode 100644 gdk/gdkframehistory.c create mode 100644 gdk/gdkframehistory.h create mode 100644 gdk/gdkframetimings.c create mode 100644 gdk/gdkframetimings.h diff --git a/gdk/Makefile.am b/gdk/Makefile.am index a265bcaf17..61aeb4bc7f 100644 --- a/gdk/Makefile.am +++ b/gdk/Makefile.am @@ -75,6 +75,8 @@ gdk_public_h_sources = \ gdkdisplaymanager.h \ gdkdnd.h \ gdkevents.h \ + gdkframehistory.h \ + gdkframetimings.h \ gdkkeys.h \ gdkkeysyms.h \ gdkkeysyms-compat.h \ @@ -123,6 +125,8 @@ gdk_c_sources = \ gdkdisplaymanager.c \ gdkdnd.c \ gdkevents.c \ + gdkframehistory.c \ + gdkframetimings.c \ gdkglobals.c \ gdkkeys.c \ gdkkeyuni.c \ diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index 8c6d202102..ecb84bd8aa 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -304,6 +304,23 @@ gdk_frame_clock_thaw (GdkFrameClock *clock) GDK_FRAME_CLOCK_GET_IFACE (clock)->thaw (clock); } +/** + * gdk_frame_clock_get_history: + * @clock: the clock + * + * Gets the #GdkFrameHistory for the frame clock. + * + * Since: 3.8 + * Return value: (transfer none): the frame history object + */ +GdkFrameHistory * +gdk_frame_clock_get_history (GdkFrameClock *clock) +{ + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), NULL); + + return GDK_FRAME_CLOCK_GET_IFACE (clock)->get_history (clock); +} + /** * gdk_frame_clock_get_requested: * @clock: the clock diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index d75fce984a..03b04304cd 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -31,7 +31,7 @@ #ifndef __GDK_FRAME_CLOCK_H__ #define __GDK_FRAME_CLOCK_H__ -#include +#include G_BEGIN_DECLS @@ -87,6 +87,8 @@ struct _GdkFrameClockInterface void (* freeze) (GdkFrameClock *clock); void (* thaw) (GdkFrameClock *clock); + GdkFrameHistory * (* get_history) (GdkFrameClock *clock); + /* signals */ /* void (* frame_requested) (GdkFrameClock *clock); */ /* void (* flush_events) (GdkFrameClock *clock); */ @@ -109,6 +111,8 @@ GdkFrameClockPhase gdk_frame_clock_get_requested (GdkFrameClock *clock); void gdk_frame_clock_freeze (GdkFrameClock *clock); void gdk_frame_clock_thaw (GdkFrameClock *clock); +GdkFrameHistory *gdk_frame_clock_get_history (GdkFrameClock *clock); + /* Convenience API */ void gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock, GTimeVal *timeval); diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index c8a90368ac..00d284c039 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -33,6 +33,7 @@ struct _GdkFrameClockIdlePrivate { + GdkFrameHistory *history; GTimer *timer; /* timer_base is used to avoid ever going backward */ guint64 timer_base; @@ -77,6 +78,7 @@ gdk_frame_clock_idle_init (GdkFrameClockIdle *frame_clock_idle) GdkFrameClockIdlePrivate); priv = frame_clock_idle->priv; + priv->history = gdk_frame_history_new (); priv->timer = g_timer_new (); priv->freeze_count = 0; } @@ -229,7 +231,14 @@ gdk_frame_clock_paint_idle (void *data) case GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT: if (priv->freeze_count == 0) { + GdkFrameTimings *timings; + gint64 frame_counter; + priv->frame_time = compute_frame_time (clock_idle); + gdk_frame_history_begin_frame (priv->history); + frame_counter = gdk_frame_history_get_frame_counter (priv->history); + timings = gdk_frame_history_get_timings (priv->history, frame_counter); + gdk_frame_timings_set_frame_time (timings, priv->frame_time); priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; @@ -370,6 +379,15 @@ gdk_frame_clock_idle_thaw (GdkFrameClock *clock) } } +static GdkFrameHistory * +gdk_frame_clock_idle_get_history (GdkFrameClock *clock) +{ + GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); + GdkFrameClockIdlePrivate *priv = clock_idle->priv; + + return priv->history; +} + static void gdk_frame_clock_idle_interface_init (GdkFrameClockInterface *iface) { @@ -378,6 +396,7 @@ gdk_frame_clock_idle_interface_init (GdkFrameClockInterface *iface) iface->get_requested = gdk_frame_clock_idle_get_requested; iface->freeze = gdk_frame_clock_idle_freeze; iface->thaw = gdk_frame_clock_idle_thaw; + iface->get_history = gdk_frame_clock_idle_get_history; } GdkFrameClock * diff --git a/gdk/gdkframehistory.c b/gdk/gdkframehistory.c new file mode 100644 index 0000000000..e993e5e3f6 --- /dev/null +++ b/gdk/gdkframehistory.c @@ -0,0 +1,143 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 2012 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 . + */ + +#include "config.h" + +#include "gdkframehistory.h" + +#define FRAME_HISTORY_MAX_LENGTH 16 + +struct _GdkFrameHistory +{ + GObject parent_instance; + + gint64 frame_counter; + gint n_timings; + gint current; + GdkFrameTimings *timings[FRAME_HISTORY_MAX_LENGTH]; +}; + +struct _GdkFrameHistoryClass +{ + GObjectClass parent_class; +}; + +G_DEFINE_TYPE (GdkFrameHistory, gdk_frame_history, G_TYPE_OBJECT) + +static void +gdk_frame_history_finalize (GObject *object) +{ + GdkFrameHistory *history = GDK_FRAME_HISTORY (object); + int i; + + for (i = 0; i < FRAME_HISTORY_MAX_LENGTH; i++) + if (history->timings[i] != 0) + gdk_frame_timings_unref (history->timings[i]); + + G_OBJECT_CLASS (gdk_frame_history_parent_class)->finalize (object); +} + +static void +gdk_frame_history_class_init (GdkFrameHistoryClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = gdk_frame_history_finalize; +} + +static void +gdk_frame_history_init (GdkFrameHistory *history) +{ + history->frame_counter = -1; + history->current = FRAME_HISTORY_MAX_LENGTH - 1; +} + +GdkFrameHistory * +gdk_frame_history_new (void) +{ + return g_object_new (GDK_TYPE_FRAME_HISTORY, NULL); +} + +gint64 +gdk_frame_history_get_frame_counter (GdkFrameHistory *history) +{ + g_return_val_if_fail (GDK_IS_FRAME_HISTORY (history), 0); + + return history->frame_counter; +} + +gint64 +gdk_frame_history_get_start (GdkFrameHistory *history) +{ + g_return_val_if_fail (GDK_IS_FRAME_HISTORY (history), 0); + + return history->frame_counter + 1 - history->n_timings; +} + +void +gdk_frame_history_begin_frame (GdkFrameHistory *history) +{ + g_return_if_fail (GDK_IS_FRAME_HISTORY (history)); + + history->frame_counter++; + history->current = (history->current + 1) % FRAME_HISTORY_MAX_LENGTH; + + if (history->n_timings < FRAME_HISTORY_MAX_LENGTH) + history->n_timings++; + else + { + gdk_frame_timings_unref(history->timings[history->current]); + } + + history->timings[history->current] = gdk_frame_timings_new (history->frame_counter); +} + +GdkFrameTimings * +gdk_frame_history_get_timings (GdkFrameHistory *history, + gint64 frame_counter) +{ + gint pos; + + g_return_val_if_fail (GDK_IS_FRAME_HISTORY (history), NULL); + + if (frame_counter > history->frame_counter) + return NULL; + + if (frame_counter <= history->frame_counter - history->n_timings) + return NULL; + + pos = (history->current - (history->frame_counter - frame_counter) + FRAME_HISTORY_MAX_LENGTH) % FRAME_HISTORY_MAX_LENGTH; + + return history->timings[pos]; +} + +GdkFrameTimings * +gdk_frame_history_get_last_complete (GdkFrameHistory *history) +{ + gint i; + + g_return_val_if_fail (GDK_IS_FRAME_HISTORY (history), NULL); + + for (i = 0; i < history->n_timings; i++) + { + gint pos = ((history->current - i) + FRAME_HISTORY_MAX_LENGTH) % FRAME_HISTORY_MAX_LENGTH; + if (gdk_frame_timings_get_complete (history->timings[pos])) + return history->timings[pos]; + } + + return NULL; +} diff --git a/gdk/gdkframehistory.h b/gdk/gdkframehistory.h new file mode 100644 index 0000000000..56e9db9c0c --- /dev/null +++ b/gdk/gdkframehistory.h @@ -0,0 +1,49 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 2012 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 . + */ + +#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GDK_FRAME_HISTORY_H__ +#define __GDK_FRAME_HISTORY_H__ + +#include + +G_BEGIN_DECLS + +typedef struct _GdkFrameHistory GdkFrameHistory; +typedef struct _GdkFrameHistoryClass GdkFrameHistoryClass; + +#define GDK_TYPE_FRAME_HISTORY (gdk_frame_history_get_type ()) +#define GDK_FRAME_HISTORY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDK_TYPE_FRAME_HISTORY, GdkFrameHistory)) +#define GDK_IS_FRAME_HISTORY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDK_TYPE_FRAME_HISTORY)) + +GType gdk_frame_history_get_type (void) G_GNUC_CONST; + +GdkFrameHistory *gdk_frame_history_new (void); + +gint64 gdk_frame_history_get_frame_counter (GdkFrameHistory *history); +gint64 gdk_frame_history_get_start (GdkFrameHistory *history); +void gdk_frame_history_begin_frame (GdkFrameHistory *history); +GdkFrameTimings *gdk_frame_history_get_timings (GdkFrameHistory *history, + gint64 frame_counter); +GdkFrameTimings *gdk_frame_history_get_last_complete (GdkFrameHistory *history); + +G_END_DECLS + +#endif /* __GDK_FRAME_HISTORY_H__ */ diff --git a/gdk/gdkframetimings.c b/gdk/gdkframetimings.c new file mode 100644 index 0000000000..d9354ede4f --- /dev/null +++ b/gdk/gdkframetimings.c @@ -0,0 +1,180 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 2012 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 . + */ + +#include "config.h" + +#include "gdkframetimings.h" + +struct _GdkFrameTimings +{ + guint ref_count; + + gboolean complete; + gint64 frame_counter; + guint64 cookie; + gint64 frame_time; + gint64 drawn_time; + gint64 presentation_time; + gint64 refresh_interval; +}; + +G_DEFINE_BOXED_TYPE (GdkFrameTimings, gdk_frame_timings, + gdk_frame_timings_ref, + gdk_frame_timings_unref) + +GdkFrameTimings * +gdk_frame_timings_new (gint64 frame_counter) +{ + GdkFrameTimings *timings; + + timings = g_slice_new0 (GdkFrameTimings); + timings->ref_count = 1; + timings->frame_counter = frame_counter; + + return timings; +} + +GdkFrameTimings * +gdk_frame_timings_ref (GdkFrameTimings *timings) +{ + g_return_val_if_fail (timings != NULL, NULL); + + timings->ref_count++; + + return timings; +} + +void +gdk_frame_timings_unref (GdkFrameTimings *timings) +{ + g_return_if_fail (timings != NULL); + g_return_if_fail (timings->ref_count > 0); + + timings->ref_count--; + if (timings->ref_count == 0) + { + g_slice_free (GdkFrameTimings, timings); + } +} + +gint64 +gdk_frame_timings_get_frame_counter (GdkFrameTimings *timings) +{ + return timings->frame_counter; +} + +guint64 +gdk_frame_timings_get_cookie (GdkFrameTimings *timings) +{ + g_return_val_if_fail (timings != NULL, 0); + + return timings->cookie; +} + +void +gdk_frame_timings_set_cookie (GdkFrameTimings *timings, + guint64 cookie) +{ + g_return_if_fail (timings != NULL); + + timings->cookie = cookie; +} + +gboolean +gdk_frame_timings_get_complete (GdkFrameTimings *timings) +{ + g_return_val_if_fail (timings != NULL, FALSE); + + return timings->complete; +} + +void +gdk_frame_timings_set_complete (GdkFrameTimings *timings, + gboolean complete) +{ + g_return_if_fail (timings != NULL); + + timings->complete = complete; +} + +gint64 +gdk_frame_timings_get_frame_time (GdkFrameTimings *timings) +{ + g_return_val_if_fail (timings != NULL, 0); + + return timings->frame_time; +} + +void +gdk_frame_timings_set_frame_time (GdkFrameTimings *timings, + gint64 frame_time) +{ + g_return_if_fail (timings != NULL); + + timings->frame_time = frame_time; +} + +gint64 +gdk_frame_timings_get_drawn_time (GdkFrameTimings *timings) +{ + g_return_val_if_fail (timings != NULL, 0); + + return timings->drawn_time; +} + +void +gdk_frame_timings_set_drawn_time (GdkFrameTimings *timings, + gint64 drawn_time) +{ + g_return_if_fail (timings != NULL); + + timings->drawn_time = drawn_time; +} + +gint64 +gdk_frame_timings_get_presentation_time (GdkFrameTimings *timings) +{ + g_return_val_if_fail (timings != NULL, 0); + + return timings->presentation_time; +} + +void +gdk_frame_timings_set_presentation_time (GdkFrameTimings *timings, + gint64 presentation_time) +{ + g_return_if_fail (timings != NULL); + + timings->presentation_time = presentation_time; +} + +gint64 +gdk_frame_timings_get_refresh_interval (GdkFrameTimings *timings) +{ + g_return_val_if_fail (timings != NULL, 0); + + return timings->refresh_interval; +} + +void +gdk_frame_timings_set_refresh_interval (GdkFrameTimings *timings, + gint64 refresh_interval) +{ + g_return_if_fail (timings != NULL); + + timings->refresh_interval = refresh_interval; +} diff --git a/gdk/gdkframetimings.h b/gdk/gdkframetimings.h new file mode 100644 index 0000000000..7fddbd4a6d --- /dev/null +++ b/gdk/gdkframetimings.h @@ -0,0 +1,63 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 2012 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 . + */ + +#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GDK_FRAME_TIMINGS_H__ +#define __GDK_FRAME_TIMINGS_H__ + +#include + +G_BEGIN_DECLS + +typedef struct _GdkFrameTimings GdkFrameTimings; + +GType gdk_frame_timings_get_type (void) G_GNUC_CONST; + +GdkFrameTimings *gdk_frame_timings_new (gint64 frame_counter); + +GdkFrameTimings *gdk_frame_timings_ref (GdkFrameTimings *timings); +void gdk_frame_timings_unref (GdkFrameTimings *timings); + +gint64 gdk_frame_timings_get_frame_counter (GdkFrameTimings *timings); + +guint64 gdk_frame_timings_get_cookie (GdkFrameTimings *timings); +void gdk_frame_timings_set_cookie (GdkFrameTimings *timings, + guint64 cookie); + +gboolean gdk_frame_timings_get_complete (GdkFrameTimings *timings); +void gdk_frame_timings_set_complete (GdkFrameTimings *timings, + gboolean complete); + +gint64 gdk_frame_timings_get_frame_time (GdkFrameTimings *timings); +void gdk_frame_timings_set_frame_time (GdkFrameTimings *timings, + gint64 frame_time); +gint64 gdk_frame_timings_get_drawn_time (GdkFrameTimings *timings); +void gdk_frame_timings_set_drawn_time (GdkFrameTimings *timings, + gint64 frame_time); +gint64 gdk_frame_timings_get_presentation_time (GdkFrameTimings *timings); +void gdk_frame_timings_set_presentation_time (GdkFrameTimings *timings, + gint64 presentation_time); +gint64 gdk_frame_timings_get_refresh_interval (GdkFrameTimings *timings); +void gdk_frame_timings_set_refresh_interval (GdkFrameTimings *timings, + gint64 refresh_interval); + +G_END_DECLS + +#endif /* __GDK_FRAME_TIMINGS_H__ */ diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 4e28f74ec0..ae4aaafb0f 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -1056,6 +1056,26 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, return return_val; } +static GdkFrameTimings * +find_frame_timings (GdkFrameClock *clock, + guint64 serial) +{ + GdkFrameHistory *history = gdk_frame_clock_get_history (clock); + gint64 start_frame, end_frame, i; + + start_frame = gdk_frame_history_get_start (history); + end_frame = gdk_frame_history_get_frame_counter (history); + for (i = end_frame; i >= start_frame; i--) + { + GdkFrameTimings *timings = gdk_frame_history_get_timings (history, i); + + if (gdk_frame_timings_get_cookie (timings) == serial) + return timings; + } + + return NULL; +} + GdkFilterReturn _gdk_wm_protocols_filter (GdkXEvent *xev, GdkEvent *event, @@ -1074,6 +1094,71 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, display = GDK_WINDOW_DISPLAY (win); + /* This isn't actually WM_PROTOCOLS because that wouldn't leave enough space + * in the message for everything that gets stuffed in */ + if (xevent->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_FRAME_DRAWN")) + { + GdkWindowImplX11 *window_impl; + window_impl = GDK_WINDOW_IMPL_X11 (event->any.window->impl); + if (window_impl->toplevel) + { + guint32 d0 = xevent->xclient.data.l[0]; + guint32 d1 = xevent->xclient.data.l[1]; + guint32 d2 = xevent->xclient.data.l[2]; + guint32 d3 = xevent->xclient.data.l[3]; + + guint64 serial = ((guint64)d0 << 32) | d1; + + GdkFrameClock *clock = gdk_window_get_frame_clock (event->any.window); + GdkFrameTimings *timings = find_frame_timings (clock, serial); + + if (timings) + gdk_frame_timings_set_drawn_time (timings, ((guint64)d2 << 32) | d3); + + if (window_impl->toplevel->frame_pending) + { + window_impl->toplevel->frame_pending = FALSE; + gdk_frame_clock_thaw (clock); + } + } + + return GDK_FILTER_REMOVE; + } + + if (xevent->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_FRAME_TIMINGS")) + { + GdkWindowImplX11 *window_impl; + window_impl = GDK_WINDOW_IMPL_X11 (event->any.window->impl); + if (window_impl->toplevel) + { + guint32 d0 = xevent->xclient.data.l[0]; + guint32 d1 = xevent->xclient.data.l[1]; + guint32 d2 = xevent->xclient.data.l[2]; + guint32 d3 = xevent->xclient.data.l[3]; + + guint64 serial = ((guint64)d0 << 32) | d1; + + GdkFrameClock *clock = gdk_window_get_frame_clock (event->any.window); + GdkFrameTimings *timings = find_frame_timings (clock, serial); + + if (timings) + { + gint64 drawn_time = gdk_frame_timings_get_drawn_time (timings); + gint32 presentation_time_offset = (gint32)d2; + gint32 refresh_interval = d3; + + if (drawn_time && presentation_time_offset) + gdk_frame_timings_set_presentation_time (timings, + drawn_time + presentation_time_offset); + + if (refresh_interval) + gdk_frame_timings_set_refresh_interval (timings, refresh_interval); + + gdk_frame_timings_set_complete (timings, TRUE); + } + } + } + if (xevent->xclient.message_type != gdk_x11_get_xatom_by_name_for_display (display, "WM_PROTOCOLS")) return GDK_FILTER_CONTINUE; @@ -1145,21 +1230,6 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, return GDK_FILTER_REMOVE; } - else if (atom == gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_FRAME_DRAWN")) - { - GdkWindowImplX11 *window_impl; - - window_impl = GDK_WINDOW_IMPL_X11 (event->any.window->impl); - if (window_impl->toplevel && - window_impl->toplevel->frame_pending) - { - window_impl->toplevel->frame_pending = FALSE; - gdk_frame_clock_thaw (gdk_window_get_frame_clock (event->any.window)); - } - - return GDK_FILTER_REMOVE; - } - return GDK_FILTER_CONTINUE; } diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index f2c5735e79..874db0a807 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -853,7 +853,17 @@ static void on_frame_clock_after_paint (GdkFrameClock *clock, GdkWindow *window) { + GdkToplevelX11 *toplevel = _gdk_x11_window_get_toplevel (window); + GdkFrameHistory *history = gdk_frame_clock_get_history (clock); + gint64 frame_counter = gdk_frame_history_get_frame_counter (history); + GdkFrameTimings *timings = gdk_frame_history_get_timings (history, frame_counter); + gdk_x11_window_end_frame (window); + + if (toplevel->frame_pending) + gdk_frame_timings_set_cookie (timings, toplevel->current_counter_value); + else + gdk_frame_timings_set_complete (timings, TRUE); } void From dc6dedab4dfdff5d067ba9f8c88d6a48cf0af143 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 14 Nov 2012 13:26:13 -0500 Subject: [PATCH 036/208] GdkFrameClockIdle: don't start the tiemout/idle when in a frame Don't start the idle if we're in the middle of painting a frame - this will prevent us from getting the timing right when starting the idle after the frame. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdkframeclockidle.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 00d284c039..37a6733620 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -46,6 +46,8 @@ struct _GdkFrameClockIdlePrivate GdkFrameClockPhase requested; GdkFrameClockPhase phase; + + guint in_paint_idle : 1; }; static gboolean gdk_frame_clock_flush_idle (void *data); @@ -170,6 +172,7 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) } if (priv->paint_idle_id == 0 && + !priv->in_paint_idle && (priv->requested & ~GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS) != 0) { priv->paint_idle_id = gdk_threads_add_timeout_full (GDK_PRIORITY_REDRAW, @@ -217,6 +220,7 @@ gdk_frame_clock_paint_idle (void *data) gboolean skip_to_resume_events; priv->paint_idle_id = 0; + priv->in_paint_idle = TRUE; skip_to_resume_events = (priv->requested & ~(GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS | GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS)) == 0; @@ -299,7 +303,10 @@ gdk_frame_clock_paint_idle (void *data) g_signal_emit_by_name (G_OBJECT (clock), "resume-events"); } - priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; + if (priv->freeze_count == 0) + priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; + + priv->in_paint_idle = FALSE; if (priv->freeze_count == 0 && priv->requested != 0) { From 58b5811d03ded179b285727407b6a6be3d4d0734 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 14 Nov 2012 16:08:08 -0500 Subject: [PATCH 037/208] Add gdk_frame_timings_get/set_slept_before() Add functions that tell us whether the main loop slept before we drew a frame. Blocking with the frame clock frozen doesn't count as sleeping. We'll use this to advertise to the compositor whether we are drawing as fast as possible (and it should do the same) or timing frames carefully (and it should do the same.) https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdkframeclockidle.c | 61 +++++++++++++++++++++++++++++++++++++++++ gdk/gdkframetimings.c | 21 +++++++++++++- gdk/gdkframetimings.h | 4 +++ 3 files changed, 85 insertions(+), 1 deletion(-) diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 37a6733620..f6e2d339b9 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -39,6 +39,7 @@ struct _GdkFrameClockIdlePrivate guint64 timer_base; guint64 frame_time; guint64 min_next_frame_time; + gint64 sleep_serial; guint flush_idle_id; guint paint_idle_id; @@ -60,6 +61,58 @@ G_DEFINE_TYPE_WITH_CODE (GdkFrameClockIdle, gdk_frame_clock_idle, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (GDK_TYPE_FRAME_CLOCK, gdk_frame_clock_idle_interface_init)) +static gint64 sleep_serial; +static gint64 sleep_source_prepare_time; +static GSource *sleep_source; + +gboolean +sleep_source_prepare (GSource *source, + gint *timeout) +{ + sleep_source_prepare_time = g_source_get_time (source); + *timeout = -1; + return FALSE; +} + +gboolean +sleep_source_check (GSource *source) +{ + if (g_source_get_time (source) != sleep_source_prepare_time) + sleep_serial++; + + return FALSE; +} + +gboolean +sleep_source_dispatch (GSource *source, + GSourceFunc callback, + gpointer user_data) +{ + return TRUE; +} + +static GSourceFuncs sleep_source_funcs = { + sleep_source_prepare, + sleep_source_check, + sleep_source_dispatch, + NULL /* finalize */ +}; + +static gint64 +get_sleep_serial (void) +{ + if (sleep_source == NULL) + { + sleep_source = g_source_new (&sleep_source_funcs, sizeof (GSource)); + + g_source_set_priority (sleep_source, G_PRIORITY_HIGH); + g_source_attach (sleep_source, NULL); + g_source_unref (sleep_source); + } + + return sleep_serial; +} + static void gdk_frame_clock_idle_class_init (GdkFrameClockIdleClass *klass) { @@ -244,6 +297,9 @@ gdk_frame_clock_paint_idle (void *data) timings = gdk_frame_history_get_timings (priv->history, frame_counter); gdk_frame_timings_set_frame_time (timings, priv->frame_time); + gdk_frame_timings_set_slept_before (timings, + priv->sleep_serial != get_sleep_serial ()); + priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; /* We always emit ::before-paint and ::after-paint if @@ -322,6 +378,9 @@ gdk_frame_clock_paint_idle (void *data) priv->min_next_frame_time = 0; } + if (priv->freeze_count == 0) + priv->sleep_serial = get_sleep_serial (); + return FALSE; } @@ -383,6 +442,8 @@ gdk_frame_clock_idle_thaw (GdkFrameClock *clock) * run and do it for us. */ if (priv->paint_idle_id == 0) priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; + + priv->sleep_serial = get_sleep_serial (); } } diff --git a/gdk/gdkframetimings.c b/gdk/gdkframetimings.c index d9354ede4f..a51912baa6 100644 --- a/gdk/gdkframetimings.c +++ b/gdk/gdkframetimings.c @@ -23,13 +23,15 @@ struct _GdkFrameTimings { guint ref_count; - gboolean complete; gint64 frame_counter; guint64 cookie; gint64 frame_time; gint64 drawn_time; gint64 presentation_time; gint64 refresh_interval; + + guint complete : 1; + guint slept_before : 1; }; G_DEFINE_BOXED_TYPE (GdkFrameTimings, gdk_frame_timings, @@ -111,6 +113,23 @@ gdk_frame_timings_set_complete (GdkFrameTimings *timings, timings->complete = complete; } +gboolean +gdk_frame_timings_get_slept_before (GdkFrameTimings *timings) +{ + g_return_val_if_fail (timings != NULL, FALSE); + + return timings->slept_before; +} + +void +gdk_frame_timings_set_slept_before (GdkFrameTimings *timings, + gboolean slept_before) +{ + g_return_if_fail (timings != NULL); + + timings->slept_before = slept_before; +} + gint64 gdk_frame_timings_get_frame_time (GdkFrameTimings *timings) { diff --git a/gdk/gdkframetimings.h b/gdk/gdkframetimings.h index 7fddbd4a6d..53dbffbd06 100644 --- a/gdk/gdkframetimings.h +++ b/gdk/gdkframetimings.h @@ -45,6 +45,10 @@ gboolean gdk_frame_timings_get_complete (GdkFrameTimings *timin void gdk_frame_timings_set_complete (GdkFrameTimings *timings, gboolean complete); +gboolean gdk_frame_timings_get_slept_before (GdkFrameTimings *timings); +void gdk_frame_timings_set_slept_before (GdkFrameTimings *timings, + gboolean slept_before); + gint64 gdk_frame_timings_get_frame_time (GdkFrameTimings *timings); void gdk_frame_timings_set_frame_time (GdkFrameTimings *timings, gint64 frame_time); From 0def26ecf1834c1ca916328460263dede160611a Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 14 Nov 2012 16:50:05 -0500 Subject: [PATCH 038/208] GdkWindowX11: Communicate gdk_frame_timings_get_slept_before() to the compositor We want the compositor to do different things for frames where "slept before" is TRUE. Communicate to the compositor that frame is a no-delay frame (slept_before=FALSE) by ending the frame by increasing the counter value by 1, and that the frame is a normal frame (slept_before=TRUE) by increasing the counter value by 3. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/x11/gdkwindow-x11.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 874db0a807..e70d3fda66 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -298,6 +298,10 @@ gdk_x11_window_begin_frame (GdkWindow *window) static void gdk_x11_window_end_frame (GdkWindow *window) { + GdkFrameClock *clock; + GdkFrameHistory *history; + gint64 frame_counter; + GdkFrameTimings *timings; GdkWindowImplX11 *impl; g_return_if_fail (GDK_IS_WINDOW (window)); @@ -309,11 +313,24 @@ gdk_x11_window_end_frame (GdkWindow *window) !impl->toplevel->in_frame) return; + clock = gdk_window_get_frame_clock (window); + history = gdk_frame_clock_get_history (clock); + frame_counter = gdk_frame_history_get_frame_counter (history); + timings = gdk_frame_history_get_timings (history, frame_counter); + impl->toplevel->in_frame = FALSE; if (impl->toplevel->current_counter_value % 2 == 1) { - impl->toplevel->current_counter_value += 1; + /* An increment of 3 means that the frame was not drawn as fast as possible, + * but rather at a particular time. This can trigger different handling from + * the compositor. + */ + if (gdk_frame_timings_get_slept_before (timings)) + impl->toplevel->current_counter_value += 3; + else + impl->toplevel->current_counter_value += 1; + set_sync_counter(GDK_WINDOW_XDISPLAY (impl->wrapper), impl->toplevel->extended_update_counter, impl->toplevel->current_counter_value); @@ -323,10 +340,15 @@ gdk_x11_window_end_frame (GdkWindow *window) { impl->toplevel->frame_pending = TRUE; gdk_frame_clock_freeze (gdk_window_get_frame_clock (window)); + gdk_frame_timings_set_cookie (timings, + impl->toplevel->current_counter_value); } } unhook_surface_changed (window); + + if (!impl->toplevel->frame_pending) + gdk_frame_timings_set_complete (timings, TRUE); } /***************************************************** @@ -853,17 +875,8 @@ static void on_frame_clock_after_paint (GdkFrameClock *clock, GdkWindow *window) { - GdkToplevelX11 *toplevel = _gdk_x11_window_get_toplevel (window); - GdkFrameHistory *history = gdk_frame_clock_get_history (clock); - gint64 frame_counter = gdk_frame_history_get_frame_counter (history); - GdkFrameTimings *timings = gdk_frame_history_get_timings (history, frame_counter); - gdk_x11_window_end_frame (window); - if (toplevel->frame_pending) - gdk_frame_timings_set_cookie (timings, toplevel->current_counter_value); - else - gdk_frame_timings_set_complete (timings, TRUE); } void From 574301d34d6e2f08f05942e0d4ec20b40b686ee1 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 14 Nov 2012 17:24:02 -0500 Subject: [PATCH 039/208] animated-resizing: make circle size a #define Clean up the code with a #define for circle size. This also allows determining we're throttled by number-of-requests or number-of-pixels. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- tests/animated-resizing.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/tests/animated-resizing.c b/tests/animated-resizing.c index bf36551c58..a6198cc9fe 100644 --- a/tests/animated-resizing.c +++ b/tests/animated-resizing.c @@ -3,6 +3,8 @@ #include #include +#define RADIUS 64 +#define DIAMETER (2*RADIUS) #define WIDTH 600 #define HEIGHT 600 #define WINDOW_SIZE_JITTER 200 @@ -28,7 +30,8 @@ ensure_resources(cairo_surface_t *target) if (source_surface != NULL) return; - source_surface = cairo_surface_create_similar (target, CAIRO_CONTENT_COLOR_ALPHA, 2048, 2048); + source_surface = cairo_surface_create_similar (target, CAIRO_CONTENT_COLOR_ALPHA, + 16 * DIAMETER, 16 * DIAMETER); cr = cairo_create(source_surface); cairo_save(cr); @@ -48,8 +51,8 @@ ensure_resources(cairo_surface_t *target) ((i * 23) % 16) / 15., 0.25); cairo_arc(cr, - i * 128 + 64, j * 128 + 64, - 64 - 0.5, 0, 2 * M_PI); + i * DIAMETER + RADIUS, j * DIAMETER + RADIUS, + RADIUS - 0.5, 0, 2 * M_PI); cairo_fill_preserve(cr); cairo_set_source_rgba(cr, ((i * 41) % 16) / 15., @@ -86,18 +89,18 @@ on_window_draw (GtkWidget *widget, { int source = g_rand_int_range(rand, 0, 255); double phi = g_rand_double_range(rand, 0, 2 * M_PI) + angle; - double r = g_rand_double_range(rand, 0, width / 2 - 64); + double r = g_rand_double_range(rand, 0, width / 2 - RADIUS); int x, y; - int source_x = (source % 16) * 128; - int source_y = (source / 16) * 128; + int source_x = (source % 16) * DIAMETER; + int source_y = (source / 16) * DIAMETER; - x = round(width / 2 + r * cos(phi) - 64); - y = round(height / 2 - r * sin(phi) - 64); + x = round(width / 2 + r * cos(phi) - RADIUS); + y = round(height / 2 - r * sin(phi) - RADIUS); cairo_set_source_surface(cr, source_surface, x - source_x, y - source_y); - cairo_rectangle(cr, x, y, 128, 128); + cairo_rectangle(cr, x, y, DIAMETER, DIAMETER); cairo_fill(cr); } From 9690567d5059e5667803e5b8fb438c3b97e9d7e7 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 14 Nov 2012 17:54:03 -0500 Subject: [PATCH 040/208] animated-resizing: enhance output Show the average and standard deviation of the latency in addition to the frame rate. Add options to print the output in machine-readable form, and to control the frequency and total number of statistics that will be output. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- tests/Makefile.am | 5 ++ tests/animated-resizing.c | 146 ++++++++++++++++++++++++++++++++++---- tests/variable.c | 43 +++++++++++ tests/variable.h | 23 ++++++ 4 files changed, 203 insertions(+), 14 deletions(-) create mode 100644 tests/variable.c create mode 100644 tests/variable.h diff --git a/tests/Makefile.am b/tests/Makefile.am index 59f1678fcd..cf7499f3f5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -253,6 +253,11 @@ testpixbuf_scale_DEPENDENCIES = $(TEST_DEPS) testgmenu_DEPENDENCIES = $(TEST_DEPS) testlogout_DEPENDENCIES = $(TEST_DEPS) +animated_resizing_SOURCES = \ + animated-resizing.c \ + variable.c \ + variable.h + testboxcss_SOURCES = \ testboxcss.c \ prop-editor.c diff --git a/tests/animated-resizing.c b/tests/animated-resizing.c index a6198cc9fe..f2bbc1013c 100644 --- a/tests/animated-resizing.c +++ b/tests/animated-resizing.c @@ -2,6 +2,9 @@ #include #include +#include + +#include "variable.h" #define RADIUS 64 #define DIAMETER (2*RADIUS) @@ -14,10 +17,12 @@ static GtkWidget *window; static int window_width = WIDTH, window_height = HEIGHT; static double angle; -static int frames_since_last_print = 0; +static int max_stats = -1; +static double statistics_time = 5.; static double load_factor = 1.0; static double cb_no_resize = FALSE; +static gboolean machine_readable = FALSE; static cairo_surface_t *source_surface; @@ -108,26 +113,118 @@ on_window_draw (GtkWidget *widget, } static void -on_frame (GtkTimeline *timeline, - double progress) +print_double (const char *description, + double value) { - int jitter; - double current_time; - static double last_print_time = 0; + if (machine_readable) + g_print ("%g\t", value); + else + g_print ("%s: %g\n", description, value); +} - current_time = g_get_monotonic_time () / 1000000.; - if (current_time >= last_print_time + 5) +static void +print_variable (const char *description, + Variable *variable) +{ + if (variable->weight != 0) { - if (frames_since_last_print != 0) + if (machine_readable) + g_print ("%g\t%g\t", + variable_mean (variable), + variable_standard_deviation (variable)); + else + g_print ("%s: %g +/- %g\n", description, + variable_mean (variable), + variable_standard_deviation (variable)); + } + else + { + if (machine_readable) + g_print ("-\t-\t"); + else + g_print ("%s: \n", description); + } +} + +static void +handle_frame_stats (GdkFrameHistory *frame_history) +{ + static int num_stats = 0; + static double last_print_time = 0; + static int frames_since_last_print = 0; + static gint64 frame_counter; + static gint64 last_handled_frame = -1; + + static Variable latency = VARIABLE_INIT; + + double current_time; + + current_time = g_get_monotonic_time (); + if (current_time >= last_print_time + 1000000 * statistics_time) + { + if (frames_since_last_print) { - g_print ("%g\n", frames_since_last_print / (current_time - last_print_time)); - frames_since_last_print = 0; + if (num_stats == 0 && machine_readable) + { + g_print ("# load_factor frame_rate latency\n"); + } + + num_stats++; + if (machine_readable) + g_print ("%g ", load_factor); + print_double ("Frame rate ", + frames_since_last_print / ((current_time - last_print_time) / 1000000.)); + + print_variable ("Latency", &latency); + + g_print ("\n"); } last_print_time = current_time; + frames_since_last_print = 0; + variable_reset (&latency); + + if (num_stats == max_stats) + gtk_main_quit (); } + frames_since_last_print++; + for (frame_counter = last_handled_frame; + frame_counter < gdk_frame_history_get_frame_counter (frame_history); + frame_counter++) + { + GdkFrameTimings *timings = gdk_frame_history_get_timings (frame_history, frame_counter); + GdkFrameTimings *previous_timings = gdk_frame_history_get_timings (frame_history, frame_counter - 1); + + if (!timings || gdk_frame_timings_get_complete (timings)) + last_handled_frame = frame_counter; + + if (timings && gdk_frame_timings_get_complete (timings) && previous_timings && + gdk_frame_timings_get_presentation_time (timings) != 0 && + gdk_frame_timings_get_presentation_time (previous_timings) != 0) + { + double display_time = (gdk_frame_timings_get_presentation_time (timings) - gdk_frame_timings_get_presentation_time (previous_timings)) / 1000.; + double frame_latency = (gdk_frame_timings_get_presentation_time (previous_timings) - gdk_frame_timings_get_frame_time (previous_timings)) / 1000. + display_time / 2; + + variable_add_weighted (&latency, frame_latency, display_time); + } + } +} + +static void +on_frame (GtkTimeline *timeline, + double progress) +{ + GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (window); + int jitter; + + if (frame_clock) + { + GdkFrameHistory *history = gdk_frame_clock_get_history (frame_clock); + handle_frame_stats (history); + } + angle = 2 * M_PI * progress; jitter = WINDOW_SIZE_JITTER * sin(angle); @@ -143,9 +240,22 @@ on_frame (GtkTimeline *timeline, gtk_widget_queue_draw (window); } +static gboolean +on_map_event (GtkWidget *widget, + GdkEventAny *event, + GtkTimeline *timeline) +{ + gtk_timeline_start (timeline); + + return FALSE; +} + static GOptionEntry options[] = { { "factor", 'f', 0, G_OPTION_ARG_DOUBLE, &load_factor, "Load factor", "FACTOR" }, + { "max-statistics", 'm', 0, G_OPTION_ARG_INT, &max_stats, "Maximum statistics printed", NULL }, + { "machine-readable", 0, 0, G_OPTION_ARG_NONE, &machine_readable, "Print statistics in columns", NULL }, { "no-resize", 'n', 0, G_OPTION_ARG_NONE, &cb_no_resize, "No Resize", NULL }, + { "statistics-time", 's', 0, G_OPTION_ARG_DOUBLE, &statistics_time, "Statistics accumulation time", "TIME" }, { NULL } }; @@ -158,12 +268,19 @@ main(int argc, char **argv) GtkTimeline *timeline; if (!gtk_init_with_args (&argc, &argv, "", - options, NULL, NULL)) + options, NULL, &error)) { - g_printerr ("Option parsing failed: %s", error->message); + g_printerr ("Option parsing failed: %s\n", error->message); return 1; } + g_print ("%sLoad factor: %g\n", + machine_readable ? "# " : "", + load_factor); + g_print ("%sResizing?: %s\n", + machine_readable ? "# " : "", + cb_no_resize ? "no" : "yes"); + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_keep_above (GTK_WINDOW (window), TRUE); gtk_window_set_gravity (GTK_WINDOW (window), GDK_GRAVITY_CENTER); @@ -180,8 +297,9 @@ main(int argc, char **argv) g_signal_connect (timeline, "frame", G_CALLBACK (on_frame), NULL); + g_signal_connect (window, "map-event", + G_CALLBACK (on_map_event), timeline); on_frame (timeline, 0.); - gtk_timeline_start (timeline); screen = gtk_widget_get_screen (window); gdk_screen_get_monitor_geometry (screen, diff --git a/tests/variable.c b/tests/variable.c new file mode 100644 index 0000000000..9ce5d5d6ab --- /dev/null +++ b/tests/variable.c @@ -0,0 +1,43 @@ +/* -*- mode: C; c-basic-offset: 2; indent-tabs-mode: nil; -*- */ + +#include +#include "variable.h" + +void +variable_add_weighted (Variable *variable, + double value, + double weight) +{ + variable->weight += weight; + variable->sum += weight * value; + variable->sum2 += weight * value * value; +} + +void +variable_add (Variable *variable, + double value) +{ + variable_add_weighted (variable, value, 1.); +} + +double +variable_mean (Variable *variable) +{ + return variable->sum / variable->weight; +} + +double +variable_standard_deviation (Variable *variable) +{ + double mean = variable_mean (variable); + return sqrt (variable->sum2 / variable->weight - mean * mean); +} + +void +variable_reset (Variable *variable) +{ + variable->weight = 0; + variable->sum = 0; + variable->sum2 = 0; +} + diff --git a/tests/variable.h b/tests/variable.h new file mode 100644 index 0000000000..d53dd58e97 --- /dev/null +++ b/tests/variable.h @@ -0,0 +1,23 @@ +#ifndef __VARIABLE_H__ +#define __VARAIBLE_H__ + +typedef struct +{ + double weight; + double sum; + double sum2; +} Variable; + +#define VARIABLE_INIT { 0, 0.0, 0.0 } + +void variable_add_weighted (Variable *variable, + double value, + double weight); +void variable_add (Variable *variable, + double value); +double variable_mean (Variable *variable); +double variable_standard_deviation (Variable *variable); +void variable_reset (Variable *variable); + +#endif /* __VARAIBLE_H__ */ + From 8855bf052d8bbbd8fdfce1cd5f4a3540661a9c8e Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 14 Nov 2012 19:21:33 -0500 Subject: [PATCH 041/208] Add GDK_DEBUG=frames Add a debug option to print out detailed statistics about each frame drawn. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdk.c | 3 +- gdk/gdkframeclockidle.c | 45 ++++++++++++++++++++++++++++-- gdk/gdkframehistory.c | 41 +++++++++++++++++++++++++++ gdk/gdkframetimings.c | 60 ++++++++++++++++++++++++++++++++++++++++ gdk/gdkinternals.h | 23 ++++++++++++++- gdk/x11/gdkdisplay-x11.c | 5 ++++ gdk/x11/gdkwindow-x11.c | 12 ++++++++ 7 files changed, 184 insertions(+), 5 deletions(-) diff --git a/gdk/gdk.c b/gdk/gdk.c index bc668d4cdb..babe08028d 100644 --- a/gdk/gdk.c +++ b/gdk/gdk.c @@ -138,7 +138,8 @@ static const GDebugKey gdk_debug_keys[] = { {"multihead", GDK_DEBUG_MULTIHEAD}, {"xinerama", GDK_DEBUG_XINERAMA}, {"draw", GDK_DEBUG_DRAW}, - {"eventloop", GDK_DEBUG_EVENTLOOP} + {"eventloop", GDK_DEBUG_EVENTLOOP}, + {"frames", GDK_DEBUG_FRAMES} }; static gboolean diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index f6e2d339b9..09624c45b0 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -26,6 +26,7 @@ #include "config.h" +#include "gdkinternals.h" #include "gdkframeclockidle.h" #include "gdk.h" @@ -271,6 +272,8 @@ gdk_frame_clock_paint_idle (void *data) GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); GdkFrameClockIdlePrivate *priv = clock_idle->priv; gboolean skip_to_resume_events; + GdkFrameTimings *timings = NULL; + gint64 frame_counter = 0; priv->paint_idle_id = 0; priv->in_paint_idle = TRUE; @@ -278,6 +281,12 @@ gdk_frame_clock_paint_idle (void *data) skip_to_resume_events = (priv->requested & ~(GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS | GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS)) == 0; + if (priv->phase > GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT) + { + frame_counter = gdk_frame_history_get_frame_counter (priv->history); + timings = gdk_frame_history_get_timings (priv->history, frame_counter); + } + if (!skip_to_resume_events) { switch (priv->phase) @@ -288,13 +297,12 @@ gdk_frame_clock_paint_idle (void *data) case GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT: if (priv->freeze_count == 0) { - GdkFrameTimings *timings; - gint64 frame_counter; - priv->frame_time = compute_frame_time (clock_idle); + gdk_frame_history_begin_frame (priv->history); frame_counter = gdk_frame_history_get_frame_counter (priv->history); timings = gdk_frame_history_get_timings (priv->history, frame_counter); + gdk_frame_timings_set_frame_time (timings, priv->frame_time); gdk_frame_timings_set_slept_before (timings, @@ -322,6 +330,15 @@ gdk_frame_clock_paint_idle (void *data) case GDK_FRAME_CLOCK_PHASE_LAYOUT: if (priv->freeze_count == 0) { +#ifdef G_ENABLE_DEBUG + if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) + { + if (priv->phase != GDK_FRAME_CLOCK_PHASE_LAYOUT && + (priv->requested & GDK_FRAME_CLOCK_PHASE_LAYOUT)) + _gdk_frame_timings_set_layout_start_time (timings, g_get_monotonic_time ()); + } +#endif /* G_ENABLE_DEBUG */ + priv->phase = GDK_FRAME_CLOCK_PHASE_LAYOUT; if (priv->requested & GDK_FRAME_CLOCK_PHASE_LAYOUT) { @@ -332,6 +349,15 @@ gdk_frame_clock_paint_idle (void *data) case GDK_FRAME_CLOCK_PHASE_PAINT: if (priv->freeze_count == 0) { +#ifdef G_ENABLE_DEBUG + if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) + { + if (priv->phase != GDK_FRAME_CLOCK_PHASE_PAINT && + (priv->requested & GDK_FRAME_CLOCK_PHASE_PAINT)) + _gdk_frame_timings_set_paint_start_time (timings, g_get_monotonic_time ()); + } +#endif /* G_ENABLE_DEBUG */ + priv->phase = GDK_FRAME_CLOCK_PHASE_PAINT; if (priv->requested & GDK_FRAME_CLOCK_PHASE_PAINT) { @@ -347,12 +373,25 @@ gdk_frame_clock_paint_idle (void *data) /* the ::after-paint phase doesn't get repeated on freeze/thaw, */ priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; + +#ifdef G_ENABLE_DEBUG + if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) + _gdk_frame_timings_set_frame_end_time (timings, g_get_monotonic_time ()); +#endif /* G_ENABLE_DEBUG */ } case GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS: ; } } +#ifdef G_ENABLE_DEBUG + if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) + { + if (gdk_frame_timings_get_complete (timings)) + _gdk_frame_history_debug_print (priv->history, timings); + } +#endif /* G_ENABLE_DEBUG */ + if (priv->requested & GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS) { priv->requested &= ~GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS; diff --git a/gdk/gdkframehistory.c b/gdk/gdkframehistory.c index e993e5e3f6..322467bc86 100644 --- a/gdk/gdkframehistory.c +++ b/gdk/gdkframehistory.c @@ -18,6 +18,7 @@ #include "config.h" #include "gdkframehistory.h" +#include "gdkinternals.h" #define FRAME_HISTORY_MAX_LENGTH 16 @@ -141,3 +142,43 @@ gdk_frame_history_get_last_complete (GdkFrameHistory *history) return NULL; } + +#ifdef G_ENABLE_DEBUG +void +_gdk_frame_history_debug_print (GdkFrameHistory *history, + GdkFrameTimings *timings) +{ + gint64 frame_counter = gdk_frame_timings_get_frame_counter (timings); + gint64 layout_start_time = _gdk_frame_timings_get_layout_start_time (timings); + gint64 paint_start_time = _gdk_frame_timings_get_paint_start_time (timings); + gint64 frame_end_time = _gdk_frame_timings_get_frame_end_time (timings); + gint64 frame_time = gdk_frame_timings_get_frame_time (timings); + gint64 presentation_time = gdk_frame_timings_get_presentation_time (timings); + gint64 refresh_interval = gdk_frame_timings_get_refresh_interval (timings); + gint64 previous_frame_time = 0; + gboolean slept_before = gdk_frame_timings_get_slept_before (timings); + GdkFrameTimings *previous_timings = gdk_frame_history_get_timings (history, + frame_counter - 1); + + if (previous_timings != NULL) + previous_frame_time = gdk_frame_timings_get_frame_time (previous_timings); + + g_print ("%5" G_GINT64_FORMAT ":", frame_counter); + if (previous_frame_time != 0) + { + g_print (" interval=%-4.1f", (frame_time - previous_frame_time) / 1000.); + g_print (slept_before ? " (sleep)" : " "); + } + if (layout_start_time != 0) + g_print (" layout_start=%-4.1f", (layout_start_time - frame_time) / 1000.); + if (paint_start_time != 0) + g_print (" paint_start=%-4.1f", (paint_start_time - frame_time) / 1000.); + if (frame_end_time != 0) + g_print (" frame_end=%-4.1f", (frame_end_time - frame_time) / 1000.); + if (presentation_time != 0) + g_print (" present=%-4.1f", (presentation_time - frame_time) / 1000.); + if (refresh_interval != 0) + g_print (" refresh_interval=%-4.1f", refresh_interval / 1000.); + g_print ("\n"); +} +#endif /* G_ENABLE_DEBUG */ diff --git a/gdk/gdkframetimings.c b/gdk/gdkframetimings.c index a51912baa6..08130015fd 100644 --- a/gdk/gdkframetimings.c +++ b/gdk/gdkframetimings.c @@ -30,6 +30,12 @@ struct _GdkFrameTimings gint64 presentation_time; gint64 refresh_interval; +#ifdef G_ENABLE_DEBUG + gint64 layout_start_time; + gint64 paint_start_time; + gint64 frame_end_time; +#endif /* G_ENABLE_DEBUG */ + guint complete : 1; guint slept_before : 1; }; @@ -197,3 +203,57 @@ gdk_frame_timings_set_refresh_interval (GdkFrameTimings *timings, timings->refresh_interval = refresh_interval; } + +#ifdef G_ENABLE_DEBUG +gint64 +_gdk_frame_timings_get_layout_start_time (GdkFrameTimings *timings) +{ + g_return_val_if_fail (timings != NULL, 0); + + return timings->layout_start_time; +} + +void +_gdk_frame_timings_set_layout_start_time (GdkFrameTimings *timings, + gint64 layout_start_time) +{ + g_return_if_fail (timings != NULL); + + timings->layout_start_time = layout_start_time; +} + +gint64 +_gdk_frame_timings_get_paint_start_time (GdkFrameTimings *timings) +{ + g_return_val_if_fail (timings != NULL, 0); + + return timings->paint_start_time; +} + +void +_gdk_frame_timings_set_paint_start_time (GdkFrameTimings *timings, + gint64 paint_start_time) +{ + g_return_if_fail (timings != NULL); + + timings->paint_start_time = paint_start_time; +} + +gint64 +_gdk_frame_timings_get_frame_end_time (GdkFrameTimings *timings) +{ + g_return_val_if_fail (timings != NULL, 0); + + return timings->frame_end_time; +} + +void +_gdk_frame_timings_set_frame_end_time (GdkFrameTimings *timings, + gint64 frame_end_time) +{ + g_return_if_fail (timings != NULL); + + timings->frame_end_time = frame_end_time; +} + +#endif /* G_ENABLE_DEBUG */ diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index babef6e7f6..4239188426 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -82,7 +82,8 @@ typedef enum { GDK_DEBUG_MULTIHEAD = 1 << 7, GDK_DEBUG_XINERAMA = 1 << 8, GDK_DEBUG_DRAW = 1 << 9, - GDK_DEBUG_EVENTLOOP = 1 << 10 + GDK_DEBUG_EVENTLOOP = 1 << 10, + GDK_DEBUG_FRAMES = 1 << 11 } GdkDebugFlag; typedef enum { @@ -428,6 +429,26 @@ cairo_surface_t * _gdk_offscreen_window_create_surface (GdkWindow *window, gint width, gint height); +/******************************** + * Debug-only frame statistics * + ********************************/ + +#ifdef G_ENABLE_DEBUG + +gint64 _gdk_frame_timings_get_layout_start_time (GdkFrameTimings *timings); +void _gdk_frame_timings_set_layout_start_time (GdkFrameTimings *timings, + gint64 layout_start_time); +gint64 _gdk_frame_timings_get_paint_start_time (GdkFrameTimings *timings); +void _gdk_frame_timings_set_paint_start_time (GdkFrameTimings *timings, + gint64 paint_time); +gint64 _gdk_frame_timings_get_frame_end_time (GdkFrameTimings *timings); +void _gdk_frame_timings_set_frame_end_time (GdkFrameTimings *timings, + gint64 frame_end_time); + +void _gdk_frame_history_debug_print (GdkFrameHistory *history, + GdkFrameTimings *timings); + +#endif /* G_ENABLE_DEBUG */ G_END_DECLS diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index ae4aaafb0f..888d87dd70 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -1155,6 +1155,11 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, gdk_frame_timings_set_refresh_interval (timings, refresh_interval); gdk_frame_timings_set_complete (timings, TRUE); +#ifdef G_ENABLE_DEBUG + if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) + _gdk_frame_history_debug_print (gdk_frame_clock_get_history (clock), + timings); +#endif /* G_ENABLE_DEBUG */ } } } diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index e70d3fda66..ea74baa3f4 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -322,6 +322,18 @@ gdk_x11_window_end_frame (GdkWindow *window) if (impl->toplevel->current_counter_value % 2 == 1) { +#ifdef G_ENABLE_DEBUG + if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) + { + XImage *image = XGetImage (GDK_WINDOW_XDISPLAY (window), + GDK_WINDOW_XID (window), + 0, 0, 1, 1, + (1 << 24) - 1, + ZPixmap); + XDestroyImage (image); + } +#endif /* G_ENABLE_DEBUG */ + /* An increment of 3 means that the frame was not drawn as fast as possible, * but rather at a particular time. This can trigger different handling from * the compositor. From fb44ea8a85db3e41f10304f559772f2c10d28c29 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Thu, 15 Nov 2012 14:11:41 -0500 Subject: [PATCH 042/208] Add gdk_frame_timings_get_predicted_presentation_time() For an operation like synchronizing audio to video playback, we need to be able to predict the time that a frame will be presented. The details of this depend on the windowing system, so make the backend predict a presentation time for ::begin-frame and set it on the GdkFrameTimings. The timing algorithm of GdkFrameClockIdle is adjusted to give predictable presentation times for frames that are not throttled by the windowing system. Helper functions: gdk_frame_clock_get_current_frame_timings() gdk_frame_clock_get_refresh_info() are added for operations that would otherwise be needed multiple times in different locations. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- gdk/gdkframeclock.c | 73 ++++++++++++++++++++++++++++++++++++++++ gdk/gdkframeclock.h | 11 ++++-- gdk/gdkframeclockidle.c | 37 ++++++++++++++------ gdk/gdkframehistory.c | 3 ++ gdk/gdkframetimings.c | 18 ++++++++++ gdk/gdkframetimings.h | 4 +++ gdk/x11/gdkdisplay-x11.c | 11 +++++- gdk/x11/gdkwindow-x11.c | 59 +++++++++++++++++++++++++++++--- gdk/x11/gdkwindow-x11.h | 4 +++ 9 files changed, 201 insertions(+), 19 deletions(-) diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index ecb84bd8aa..fd41d94533 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -378,3 +378,76 @@ gdk_frame_clock_frame_requested (GdkFrameClock *clock) g_signal_emit (G_OBJECT (clock), signals[FRAME_REQUESTED], 0); } + +GdkFrameTimings * +gdk_frame_clock_get_current_frame_timings (GdkFrameClock *clock) +{ + GdkFrameHistory *history; + gint64 frame_counter; + + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), 0); + + history = gdk_frame_clock_get_history (clock); + frame_counter = gdk_frame_history_get_frame_counter (history); + return gdk_frame_history_get_timings (history, frame_counter); +} + + +#define DEFAULT_REFRESH_INTERVAL 16667 /* 16.7ms (1/60th second) */ +#define MAX_HISTORY_AGE 150000 /* 150ms */ + +void +gdk_frame_clock_get_refresh_info (GdkFrameClock *clock, + gint64 base_time, + gint64 *refresh_interval_return, + gint64 *presentation_time_return) +{ + GdkFrameHistory *history; + gint64 frame_counter; + + g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); + + history = gdk_frame_clock_get_history (clock); + frame_counter = gdk_frame_history_get_frame_counter (history); + + if (presentation_time_return) + *presentation_time_return = 0; + if (refresh_interval_return) + *refresh_interval_return = DEFAULT_REFRESH_INTERVAL; + + while (TRUE) + { + GdkFrameTimings *timings = gdk_frame_history_get_timings (history, frame_counter); + gint64 presentation_time; + gint64 refresh_interval; + + if (timings == NULL) + return; + + refresh_interval = gdk_frame_timings_get_refresh_interval (timings); + presentation_time = gdk_frame_timings_get_presentation_time (timings); + + if (presentation_time != 0) + { + if (presentation_time > base_time - MAX_HISTORY_AGE && + presentation_time_return) + { + if (refresh_interval == 0) + refresh_interval = DEFAULT_REFRESH_INTERVAL; + + if (refresh_interval_return) + *refresh_interval_return = refresh_interval; + + while (presentation_time < base_time) + presentation_time += refresh_interval; + + if (presentation_time_return) + *presentation_time_return = presentation_time; + } + + return; + } + + frame_counter--; + } +} diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 03b04304cd..8d79f90a96 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -78,7 +78,7 @@ struct _GdkFrameClockInterface { GTypeInterface base_iface; - guint64 (* get_frame_time) (GdkFrameClock *clock); + guint64 (* get_frame_time) (GdkFrameClock *clock); void (* request_phase) (GdkFrameClock *clock, GdkFrameClockPhase phase); @@ -102,7 +102,7 @@ struct _GdkFrameClockInterface GType gdk_frame_clock_get_type (void) G_GNUC_CONST; -guint64 gdk_frame_clock_get_frame_time (GdkFrameClock *clock); +guint64 gdk_frame_clock_get_frame_time (GdkFrameClock *clock); void gdk_frame_clock_request_phase (GdkFrameClock *clock, GdkFrameClockPhase phase); @@ -117,6 +117,13 @@ GdkFrameHistory *gdk_frame_clock_get_history (GdkFrameClock *clock); void gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock, GTimeVal *timeval); +void gdk_frame_clock_get_refresh_info (GdkFrameClock *clock, + gint64 base_time, + gint64 *refresh_interval_return, + gint64 *presentation_time_return); + +GdkFrameTimings *gdk_frame_clock_get_current_frame_timings (GdkFrameClock *clock); + /* Signal emitters (used in frame clock implementations) */ void gdk_frame_clock_frame_requested (GdkFrameClock *clock); diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 09624c45b0..47103703cd 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -204,7 +204,7 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) { GdkFrameClockIdlePrivate *priv = clock_idle->priv; - if (priv->freeze_count == 0) + if (priv->freeze_count == 0 && priv->requested != 0) { guint min_interval = 0; @@ -240,6 +240,23 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) } } +static gint64 +compute_min_next_frame_time (GdkFrameClockIdle *clock_idle, + gint64 last_frame_time) +{ + gint64 presentation_time; + gint64 refresh_interval; + + gdk_frame_clock_get_refresh_info (GDK_FRAME_CLOCK (clock_idle), + last_frame_time, + &refresh_interval, &presentation_time); + + if (presentation_time == 0) + return last_frame_time + refresh_interval; + else + return presentation_time + refresh_interval / 2; +} + static gboolean gdk_frame_clock_flush_idle (void *data) { @@ -277,6 +294,7 @@ gdk_frame_clock_paint_idle (void *data) priv->paint_idle_id = 0; priv->in_paint_idle = TRUE; + priv->min_next_frame_time = 0; skip_to_resume_events = (priv->requested & ~(GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS | GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS)) == 0; @@ -403,19 +421,16 @@ gdk_frame_clock_paint_idle (void *data) priv->in_paint_idle = FALSE; - if (priv->freeze_count == 0 && priv->requested != 0) + /* If there is throttling in the backend layer, then we'll do another + * update as soon as the backend unthrottles (if there is work to do), + * otherwise we need to figure when the next frame should be. + */ + if (priv->freeze_count == 0) { - /* We need to start over again immediately - this implies that there is no - * throttling at the backend layer, so we need to back-off ourselves. - */ - gdk_flush (); - priv->min_next_frame_time = priv->frame_time + FRAME_INTERVAL; + priv->min_next_frame_time = compute_min_next_frame_time (clock_idle, + priv->frame_time); maybe_start_idle (clock_idle); } - else - { - priv->min_next_frame_time = 0; - } if (priv->freeze_count == 0) priv->sleep_serial = get_sleep_serial (); diff --git a/gdk/gdkframehistory.c b/gdk/gdkframehistory.c index 322467bc86..2f7147ef73 100644 --- a/gdk/gdkframehistory.c +++ b/gdk/gdkframehistory.c @@ -154,6 +154,7 @@ _gdk_frame_history_debug_print (GdkFrameHistory *history, gint64 frame_end_time = _gdk_frame_timings_get_frame_end_time (timings); gint64 frame_time = gdk_frame_timings_get_frame_time (timings); gint64 presentation_time = gdk_frame_timings_get_presentation_time (timings); + gint64 predicted_presentation_time = gdk_frame_timings_get_predicted_presentation_time (timings); gint64 refresh_interval = gdk_frame_timings_get_refresh_interval (timings); gint64 previous_frame_time = 0; gboolean slept_before = gdk_frame_timings_get_slept_before (timings); @@ -177,6 +178,8 @@ _gdk_frame_history_debug_print (GdkFrameHistory *history, g_print (" frame_end=%-4.1f", (frame_end_time - frame_time) / 1000.); if (presentation_time != 0) g_print (" present=%-4.1f", (presentation_time - frame_time) / 1000.); + if (predicted_presentation_time != 0) + g_print (" predicted=%-4.1f", (predicted_presentation_time - frame_time) / 1000.); if (refresh_interval != 0) g_print (" refresh_interval=%-4.1f", refresh_interval / 1000.); g_print ("\n"); diff --git a/gdk/gdkframetimings.c b/gdk/gdkframetimings.c index 08130015fd..ad9ec2e527 100644 --- a/gdk/gdkframetimings.c +++ b/gdk/gdkframetimings.c @@ -29,6 +29,7 @@ struct _GdkFrameTimings gint64 drawn_time; gint64 presentation_time; gint64 refresh_interval; + gint64 predicted_presentation_time; #ifdef G_ENABLE_DEBUG gint64 layout_start_time; @@ -187,6 +188,23 @@ gdk_frame_timings_set_presentation_time (GdkFrameTimings *timings, timings->presentation_time = presentation_time; } +gint64 +gdk_frame_timings_get_predicted_presentation_time (GdkFrameTimings *timings) +{ + g_return_val_if_fail (timings != NULL, 0); + + return timings->predicted_presentation_time; +} + +void +gdk_frame_timings_set_predicted_presentation_time (GdkFrameTimings *timings, + gint64 predicted_presentation_time) +{ + g_return_if_fail (timings != NULL); + + timings->predicted_presentation_time = predicted_presentation_time; +} + gint64 gdk_frame_timings_get_refresh_interval (GdkFrameTimings *timings) { diff --git a/gdk/gdkframetimings.h b/gdk/gdkframetimings.h index 53dbffbd06..8e86c6e69f 100644 --- a/gdk/gdkframetimings.h +++ b/gdk/gdkframetimings.h @@ -62,6 +62,10 @@ gint64 gdk_frame_timings_get_refresh_interval (GdkFrameTimings *timin void gdk_frame_timings_set_refresh_interval (GdkFrameTimings *timings, gint64 refresh_interval); +gint64 gdk_frame_timings_get_predicted_presentation_time (GdkFrameTimings *timings); +void gdk_frame_timings_set_predicted_presentation_time (GdkFrameTimings *timings, + gint64 predicted_presentation_time); + G_END_DECLS #endif /* __GDK_FRAME_TIMINGS_H__ */ diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 888d87dd70..cf26b3016d 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -1108,18 +1108,27 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, guint32 d3 = xevent->xclient.data.l[3]; guint64 serial = ((guint64)d0 << 32) | d1; + gint64 frame_drawn_time = ((guint64)d2 << 32) | d3; + gint64 refresh_interval, presentation_time; GdkFrameClock *clock = gdk_window_get_frame_clock (event->any.window); GdkFrameTimings *timings = find_frame_timings (clock, serial); if (timings) - gdk_frame_timings_set_drawn_time (timings, ((guint64)d2 << 32) | d3); + gdk_frame_timings_set_drawn_time (timings, frame_drawn_time); if (window_impl->toplevel->frame_pending) { window_impl->toplevel->frame_pending = FALSE; gdk_frame_clock_thaw (clock); } + + gdk_frame_clock_get_refresh_info (clock, + frame_drawn_time, + &refresh_interval, + &presentation_time); + if (presentation_time != 0) + window_impl->toplevel->throttled_presentation_time = presentation_time + refresh_interval; } return GDK_FILTER_REMOVE; diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index ea74baa3f4..d3fac4df5f 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -277,6 +277,58 @@ unhook_surface_changed (GdkWindow *window) NULL, NULL); } +static void +gdk_x11_window_predict_presentation_time (GdkWindow *window) +{ + GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (window->impl); + GdkFrameClock *clock; + GdkFrameTimings *timings; + gint64 frame_time; + gint64 presentation_time; + gint64 refresh_interval; + gboolean slept_before; + + if (!WINDOW_IS_TOPLEVEL (window)) + return; + + clock = gdk_window_get_frame_clock (window); + + timings = gdk_frame_clock_get_current_frame_timings (clock); + frame_time = gdk_frame_timings_get_frame_time (timings); + slept_before = gdk_frame_timings_get_slept_before (timings); + + gdk_frame_clock_get_refresh_info (clock, + frame_time, + &refresh_interval, &presentation_time); + + if (presentation_time != 0) + { + if (slept_before) + { + presentation_time += refresh_interval; + } + else + { + if (presentation_time < frame_time + refresh_interval / 2) + presentation_time += refresh_interval; + } + } + else + { + if (slept_before) + presentation_time = frame_time + refresh_interval + refresh_interval / 2; + else + presentation_time = frame_time + refresh_interval; + } + + if (presentation_time < impl->toplevel->throttled_presentation_time) + presentation_time = impl->toplevel->throttled_presentation_time; + + gdk_frame_timings_set_predicted_presentation_time (timings, + presentation_time); + +} + static void gdk_x11_window_begin_frame (GdkWindow *window) { @@ -299,8 +351,6 @@ static void gdk_x11_window_end_frame (GdkWindow *window) { GdkFrameClock *clock; - GdkFrameHistory *history; - gint64 frame_counter; GdkFrameTimings *timings; GdkWindowImplX11 *impl; @@ -314,9 +364,7 @@ gdk_x11_window_end_frame (GdkWindow *window) return; clock = gdk_window_get_frame_clock (window); - history = gdk_frame_clock_get_history (clock); - frame_counter = gdk_frame_history_get_frame_counter (history); - timings = gdk_frame_history_get_timings (history, frame_counter); + timings = gdk_frame_clock_get_current_frame_timings (clock); impl->toplevel->in_frame = FALSE; @@ -880,6 +928,7 @@ static void on_frame_clock_before_paint (GdkFrameClock *clock, GdkWindow *window) { + gdk_x11_window_predict_presentation_time (window); gdk_x11_window_begin_frame (window); } diff --git a/gdk/x11/gdkwindow-x11.h b/gdk/x11/gdkwindow-x11.h index 8dde335011..7eb95a07f2 100644 --- a/gdk/x11/gdkwindow-x11.h +++ b/gdk/x11/gdkwindow-x11.h @@ -156,6 +156,10 @@ struct _GdkToplevelX11 * ConfigureNotify */ gint64 current_counter_value; + + /* After a _NET_WM_FRAME_DRAWN message, this is the soonest that we think + * frame after will be presented */ + gint64 throttled_presentation_time; #endif }; From e77a96a0ea3365d6e899b2058520f96cfddd0143 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Thu, 15 Nov 2012 17:39:30 -0500 Subject: [PATCH 043/208] video-timer: add a test case for display at a constant frame rate Add a test case that simulates the timing operaton that goes on when showing a constant frame rate stream like a video - each frame is shown at the VBlank interval that is closest to when it would ideally be timed. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- tests/Makefile.am | 7 + tests/video-timer.c | 328 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 335 insertions(+) create mode 100644 tests/video-timer.c diff --git a/tests/Makefile.am b/tests/Makefile.am index cf7499f3f5..143f8e481f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -30,6 +30,7 @@ noinst_PROGRAMS = $(TEST_PROGS) \ simple \ flicker \ print-editor \ + video-timer \ testaccel \ testadjustsize \ testappchooser \ @@ -156,6 +157,7 @@ flicker_DEPENDENCIES = $(TEST_DEPS) motion_compression_DEPENDENCIES = $(TEST_DEPS) simple_DEPENDENCIES = $(TEST_DEPS) print_editor_DEPENDENCIES = $(TEST_DEPS) +video_timer_DEPENDENCIES = $(TEST_DEPS) testheightforwidth_DEPENDENCIES = $(TEST_DEPS) testicontheme_DEPENDENCIES = $(TEST_DEPS) testiconview_DEPENDENCIES = $(TEST_DEPS) @@ -258,6 +260,11 @@ animated_resizing_SOURCES = \ variable.c \ variable.h +video_timer_SOURCES = \ + video-timer.c \ + variable.c \ + variable.h + testboxcss_SOURCES = \ testboxcss.c \ prop-editor.c diff --git a/tests/video-timer.c b/tests/video-timer.c new file mode 100644 index 0000000000..ad73612899 --- /dev/null +++ b/tests/video-timer.c @@ -0,0 +1,328 @@ +#include +#include + +#include "variable.h" + +typedef struct { + gdouble angle; + gint64 stream_time; + gint64 clock_time; + gint64 frame_counter; +} FrameData; + +static FrameData *displayed_frame; +static GtkWidget *window; +static GList *past_frames; +static Variable latency_error = VARIABLE_INIT; +static int dropped_frames = 0; +static int n_frames = 0; + +static int fps = 24; + +/* Thread-safe frame queue */ + +#define MAX_QUEUE_LENGTH 5 + +static GQueue *frame_queue; +static GMutex frame_mutex; +static GCond frame_cond; + +static void +queue_frame (FrameData *frame_data) +{ + g_mutex_lock (&frame_mutex); + + while (frame_queue->length == MAX_QUEUE_LENGTH) + g_cond_wait (&frame_cond, &frame_mutex); + + g_queue_push_tail (frame_queue, frame_data); + + g_mutex_unlock (&frame_mutex); +} + +static FrameData * +unqueue_frame (void) +{ + FrameData *frame_data; + + g_mutex_lock (&frame_mutex); + + if (frame_queue->length > 0) + { + frame_data = g_queue_pop_head (frame_queue); + g_cond_signal (&frame_cond); + } + else + { + frame_data = NULL; + } + + g_mutex_unlock (&frame_mutex); + + return frame_data; +} + +static FrameData * +peek_pending_frame (void) +{ + FrameData *frame_data; + + g_mutex_lock (&frame_mutex); + + if (frame_queue->head) + frame_data = frame_queue->head->data; + else + frame_data = NULL; + + g_mutex_unlock (&frame_mutex); + + return frame_data; +} + +static FrameData * +peek_next_frame (void) +{ + FrameData *frame_data; + + g_mutex_lock (&frame_mutex); + + if (frame_queue->head && frame_queue->head->next) + frame_data = frame_queue->head->next->data; + else + frame_data = NULL; + + g_mutex_unlock (&frame_mutex); + + return frame_data; +} + +/* Frame producer thread */ + +static gpointer +create_frames_thread (gpointer data) +{ + int frame_count = 0; + + while (TRUE) + { + FrameData *frame_data = g_slice_new0 (FrameData); + frame_data->angle = 2 * M_PI * (frame_count % fps) / (double)fps; + frame_data->stream_time = (G_GINT64_CONSTANT (1000000) * frame_count) / fps; + + queue_frame (frame_data); + frame_count++; + } + + return NULL; +} + +/* Clock management */ + +#define PRE_BUFFER_TIME 500000 + +static gint64 start_time; + +static gint64 +stream_time_to_clock_time (gint64 stream_time) +{ + return start_time + stream_time + PRE_BUFFER_TIME; +} + +/* Drawing */ + +static void +on_window_draw (GtkWidget *widget, + cairo_t *cr) +{ + GdkRectangle allocation; + double cx, cy, r; + + cairo_set_source_rgb (cr, 1., 1., 1.); + cairo_paint (cr); + + cairo_set_source_rgb (cr, 0., 0., 0.); + gtk_widget_get_allocation (widget, &allocation); + + cx = allocation.width / 2.; + cy = allocation.height / 2.; + r = MIN (allocation.width, allocation.height) / 2.; + + cairo_arc (cr, cx, cy, r, + 0, 2 * M_PI); + cairo_stroke (cr); + if (displayed_frame) + { + cairo_move_to (cr, cx, cy); + cairo_line_to (cr, + cx + r * cos(displayed_frame->angle - M_PI / 2), + cy + r * sin(displayed_frame->angle - M_PI / 2)); + cairo_stroke (cr); + + if (displayed_frame->frame_counter == 0) + { + GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (window); + GdkFrameHistory *history = gdk_frame_clock_get_history (frame_clock); + + displayed_frame->frame_counter = gdk_frame_history_get_frame_counter (history); + } + } +} + +static void +collect_old_frames (void) +{ + GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (window); + GdkFrameHistory *history = gdk_frame_clock_get_history (frame_clock); + GList *l, *l_next; + + for (l = past_frames; l; l = l_next) + { + FrameData *frame_data = l->data; + gboolean remove = FALSE; + l_next = l->next; + + GdkFrameTimings *timings = gdk_frame_history_get_timings (history, + frame_data->frame_counter); + if (timings == NULL) + { + remove = TRUE; + } + else if (gdk_frame_timings_get_complete (timings)) + { + gint64 presentation_time = gdk_frame_timings_get_presentation_time (timings); + if (presentation_time) + variable_add (&latency_error, + presentation_time - frame_data->clock_time); + + remove = TRUE; + } + + if (remove) + { + past_frames = g_list_delete_link (past_frames, l); + g_slice_free (FrameData, frame_data); + } + } +} + +static void +print_statistics (void) +{ + gint64 now = g_get_monotonic_time (); + static gint64 last_print_time = 0; + + if (last_print_time == 0) + last_print_time = now; + else if (now -last_print_time > 5000000) + { + g_print ("dropped_frames: %d/%d\n", + dropped_frames, n_frames); + g_print ("collected_frames: %g/%d\n", + latency_error.weight, n_frames); + g_print ("latency_error: %g +/- %g\n", + variable_mean (&latency_error), + variable_standard_deviation (&latency_error)); + variable_reset (&latency_error); + dropped_frames = 0; + n_frames = 0; + last_print_time = now; + } +} + +static void +on_update (GdkFrameClock *frame_clock, + gpointer data) +{ + GdkFrameTimings *timings = gdk_frame_clock_get_current_frame_timings (frame_clock); + gint64 frame_time = gdk_frame_timings_get_frame_time (timings); + gint64 predicted_presentation_time = gdk_frame_timings_get_predicted_presentation_time (timings); + gint64 refresh_interval; + FrameData *pending_frame; + + if (start_time == 0) + start_time = frame_time; + + gdk_frame_clock_get_refresh_info (frame_clock, frame_time, + &refresh_interval, NULL); + + pending_frame = peek_pending_frame (); + if (stream_time_to_clock_time (pending_frame->stream_time) + < predicted_presentation_time + refresh_interval / 2) + { + while (TRUE) + { + FrameData *next_frame = peek_next_frame (); + if (next_frame && + stream_time_to_clock_time (next_frame->stream_time) + < predicted_presentation_time + refresh_interval / 2) + { + g_slice_free (FrameData, unqueue_frame ()); + n_frames++; + dropped_frames++; + pending_frame = next_frame; + } + else + break; + } + + if (displayed_frame) + past_frames = g_list_prepend (past_frames, displayed_frame); + + n_frames++; + displayed_frame = unqueue_frame (); + displayed_frame->clock_time = stream_time_to_clock_time (displayed_frame->stream_time); + displayed_frame->frame_counter = gdk_frame_timings_get_frame_counter (timings); + + collect_old_frames (); + print_statistics (); + + gtk_widget_queue_draw (window); + } + + gdk_frame_clock_request_phase (frame_clock, GDK_FRAME_CLOCK_PHASE_UPDATE); +} + +static GOptionEntry options[] = { + { "fps", 'f', 0, G_OPTION_ARG_INT, &fps, "Frame rate", "FPS" }, + { NULL } +}; + +int +main(int argc, char **argv) +{ + GError *error = NULL; + GdkFrameClock *frame_clock; + + if (!gtk_init_with_args (&argc, &argv, "", + options, NULL, &error)) + { + g_printerr ("Option parsing failed: %s\n", error->message); + return 1; + } + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_widget_set_app_paintable (window, TRUE); + gtk_window_set_default_size (GTK_WINDOW (window), 300, 300); + + g_signal_connect (window, "draw", + G_CALLBACK (on_window_draw), NULL); + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_main_quit), NULL); + + gtk_widget_show (window); + + frame_queue = g_queue_new (); + g_mutex_init (&frame_mutex); + g_cond_init (&frame_cond); + + g_thread_new ("Create Frames", create_frames_thread, NULL); + + frame_clock = gtk_widget_get_frame_clock (window); + g_signal_connect (frame_clock, "update", + G_CALLBACK (on_update), NULL); + gdk_frame_clock_request_phase (frame_clock, GDK_FRAME_CLOCK_PHASE_UPDATE); + + gtk_main (); + + return 0; +} From 40fa28de3d4ab1d5759fc34e6245b9c396db48d0 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Fri, 16 Nov 2012 10:47:17 -0500 Subject: [PATCH 044/208] video-timer: add simple example of PLL-style clock adjustment The first version of the video-timer simply played back the video according to the wall clock, and showed each frame at the neareste presentatin time. But an alternative strategy for playing back video is that if the frame-rate is an integer-divisor of the display refresh rate, or very close to that, is to change the playback speed to complete avoid frame drops and changes in latency. (This would require resampling audio if present.) Demonstrate this technique by adding a --pll option to the video-timer demo. https://bugzilla.gnome.org/show_bug.cgi?id=685460 --- tests/video-timer.c | 90 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 83 insertions(+), 7 deletions(-) diff --git a/tests/video-timer.c b/tests/video-timer.c index ad73612899..32d8880b78 100644 --- a/tests/video-timer.c +++ b/tests/video-timer.c @@ -14,9 +14,11 @@ static FrameData *displayed_frame; static GtkWidget *window; static GList *past_frames; static Variable latency_error = VARIABLE_INIT; +static Variable time_factor_stats = VARIABLE_INIT; static int dropped_frames = 0; static int n_frames = 0; +static gboolean pll; static int fps = 24; /* Thread-safe frame queue */ @@ -116,16 +118,74 @@ create_frames_thread (gpointer data) return NULL; } -/* Clock management */ - +/* Clock management: + * + * The logic here, which is activated by the --pll argument + * demonstrates adjusting the playback rate so that the frames exactly match + * when they are displayed both frequency and phase. If there was an + * accompanying audio track, you would need to resample the audio to match + * the clock. + * + * The algorithm isn't exactly a PLL - I wrote it first that way, but + * it oscillicated before coming into sync and this approach was easier than + * fine-tuning the PLL filter. + * + * A more complicated algorithm could also establish sync when the playback + * rate isn't exactly an integral divisor of the VBlank rate, such as 24fps + * video on a 60fps display. + */ #define PRE_BUFFER_TIME 500000 -static gint64 start_time; +static gint64 stream_time_base; +static gint64 clock_time_base; +static double time_factor = 1.0; +static double frequency_time_factor = 1.0; +static double phase_time_factor = 1.0; static gint64 stream_time_to_clock_time (gint64 stream_time) { - return start_time + stream_time + PRE_BUFFER_TIME; + return clock_time_base + (stream_time - stream_time_base) * time_factor; +} + +static void +adjust_clock_for_phase (gint64 frame_clock_time, + gint64 presentation_time) +{ + static gint count = 0; + static gint64 previous_frame_clock_time; + static gint64 previous_presentation_time; + gint64 phase = presentation_time - frame_clock_time; + + count++; + if (count >= fps) /* Give a second of warmup */ + { + gint64 time_delta = frame_clock_time - previous_frame_clock_time; + gint64 previous_phase = previous_presentation_time - previous_frame_clock_time; + + double expected_phase_delta; + + stream_time_base += (frame_clock_time - clock_time_base) / time_factor; + clock_time_base = frame_clock_time; + + expected_phase_delta = time_delta * (1 - phase_time_factor); + + /* If the phase is increasing that means the computed clock times are + * increasing too slowly. We increase the frequency time factor to compensate, + * but decrease the compensation so that it takes effect over 1 second to + * avoid jitter */ + frequency_time_factor += (phase - previous_phase - expected_phase_delta) / (double)time_delta / fps; + + /* We also want to increase or decrease the frequency to bring the phase + * into sync. We do that again so that the phase should sync up over 1 seconds + */ + phase_time_factor = 1 + phase / 2000000.; + + time_factor = frequency_time_factor * phase_time_factor; + } + + previous_frame_clock_time = frame_clock_time; + previous_presentation_time = presentation_time; } /* Drawing */ @@ -189,7 +249,15 @@ collect_old_frames (void) } else if (gdk_frame_timings_get_complete (timings)) { - gint64 presentation_time = gdk_frame_timings_get_presentation_time (timings); + gint64 presentation_time = gdk_frame_timings_get_predicted_presentation_time (timings); + gint64 refresh_interval = gdk_frame_timings_get_refresh_interval (timings); + + if (pll && + presentation_time && refresh_interval && + presentation_time > frame_data->clock_time - refresh_interval / 2 && + presentation_time < frame_data->clock_time + refresh_interval / 2) + adjust_clock_for_phase (frame_data->clock_time, presentation_time); + if (presentation_time) variable_add (&latency_error, presentation_time - frame_data->clock_time); @@ -222,7 +290,12 @@ print_statistics (void) g_print ("latency_error: %g +/- %g\n", variable_mean (&latency_error), variable_standard_deviation (&latency_error)); + if (pll) + g_print ("playback rate adjustment: %g +/- %g %%\n", + (variable_mean (&time_factor_stats) - 1) * 100, + variable_standard_deviation (&time_factor_stats) * 100); variable_reset (&latency_error); + variable_reset (&time_factor_stats); dropped_frames = 0; n_frames = 0; last_print_time = now; @@ -239,8 +312,8 @@ on_update (GdkFrameClock *frame_clock, gint64 refresh_interval; FrameData *pending_frame; - if (start_time == 0) - start_time = frame_time; + if (clock_time_base == 0) + clock_time_base = frame_time + PRE_BUFFER_TIME; gdk_frame_clock_get_refresh_info (frame_clock, frame_time, &refresh_interval, NULL); @@ -271,7 +344,9 @@ on_update (GdkFrameClock *frame_clock, n_frames++; displayed_frame = unqueue_frame (); displayed_frame->clock_time = stream_time_to_clock_time (displayed_frame->stream_time); + displayed_frame->frame_counter = gdk_frame_timings_get_frame_counter (timings); + variable_add (&time_factor_stats, time_factor); collect_old_frames (); print_statistics (); @@ -283,6 +358,7 @@ on_update (GdkFrameClock *frame_clock, } static GOptionEntry options[] = { + { "pll", 'p', 0, G_OPTION_ARG_NONE, &pll, "Sync frame rate to refresh", NULL }, { "fps", 'f', 0, G_OPTION_ARG_INT, &fps, "Frame rate", "FPS" }, { NULL } }; From 8865ebcc80038de7a2290fccc9594709e8e72b2a Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 19 Dec 2012 12:01:52 -0500 Subject: [PATCH 045/208] Fix up for newer draft of wm-spec * 64-bit quantities are consistently ordered low-32-bits / high-32-bits * data.l[4] in _NET_WM_SYNC_REQUEST indicates which counter to update --- gdk/x11/gdkdisplay-x11.c | 8 +++++--- gdk/x11/gdkwindow-x11.c | 29 +++++++++++++++++------------ gdk/x11/gdkwindow-x11.h | 7 ++++++- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index cf26b3016d..466f7e56bf 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -763,6 +763,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, if (!is_substructure && toplevel && display_x11->use_sync && toplevel->pending_counter_value != 0) { toplevel->configure_counter_value = toplevel->pending_counter_value; + toplevel->configure_counter_value_is_extended = toplevel->pending_counter_value_is_extended; toplevel->pending_counter_value = 0; } #endif @@ -1107,8 +1108,8 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, guint32 d2 = xevent->xclient.data.l[2]; guint32 d3 = xevent->xclient.data.l[3]; - guint64 serial = ((guint64)d0 << 32) | d1; - gint64 frame_drawn_time = ((guint64)d2 << 32) | d3; + guint64 serial = ((guint64)d1 << 32) | d0; + gint64 frame_drawn_time = ((guint64)d3 << 32) | d2; gint64 refresh_interval, presentation_time; GdkFrameClock *clock = gdk_window_get_frame_clock (event->any.window); @@ -1145,7 +1146,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, guint32 d2 = xevent->xclient.data.l[2]; guint32 d3 = xevent->xclient.data.l[3]; - guint64 serial = ((guint64)d0 << 32) | d1; + guint64 serial = ((guint64)d1 << 32) | d0; GdkFrameClock *clock = gdk_window_get_frame_clock (event->any.window); GdkFrameTimings *timings = find_frame_timings (clock, serial); @@ -1239,6 +1240,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, { #ifdef HAVE_XSYNC toplevel->pending_counter_value = xevent->xclient.data.l[2] + ((gint64)xevent->xclient.data.l[3] << 32); + toplevel->pending_counter_value_is_extended = xevent->xclient.data.l[4] != 0; #endif } return GDK_FILTER_REMOVE; diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index d3fac4df5f..3d625f5fa7 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -5117,20 +5117,25 @@ gdk_x11_window_configure_finished (GdkWindow *window) GDK_X11_DISPLAY (display)->use_sync && toplevel->configure_counter_value != 0) { - set_sync_counter (GDK_WINDOW_XDISPLAY (window), - toplevel->update_counter, - toplevel->configure_counter_value); + if (toplevel->configure_counter_value_is_extended) + { + toplevel->current_counter_value = toplevel->configure_counter_value; + if ((toplevel->current_counter_value % 2) == 1) + toplevel->current_counter_value += 1; - toplevel->current_counter_value = toplevel->configure_counter_value; - if ((toplevel->current_counter_value % 2) == 1) - toplevel->current_counter_value += 1; + toplevel->configure_counter_value = 0; - toplevel->configure_counter_value = 0; - - set_sync_counter (GDK_WINDOW_XDISPLAY (window), - toplevel->extended_update_counter, - toplevel->current_counter_value); - } + set_sync_counter (GDK_WINDOW_XDISPLAY (window), + toplevel->extended_update_counter, + toplevel->current_counter_value); + } + else + { + set_sync_counter (GDK_WINDOW_XDISPLAY (window), + toplevel->update_counter, + toplevel->configure_counter_value); + } + } } #endif } diff --git a/gdk/x11/gdkwindow-x11.h b/gdk/x11/gdkwindow-x11.h index 7eb95a07f2..d58d7e34a4 100644 --- a/gdk/x11/gdkwindow-x11.h +++ b/gdk/x11/gdkwindow-x11.h @@ -131,7 +131,12 @@ struct _GdkToplevelX11 /* If we're expecting a response from the compositor after painting a frame */ guint frame_pending : 1; - + + /* Whether pending_counter_value/configure_counter_value are updates + * to the extended update counter */ + guint pending_counter_value_is_extended : 1; + guint configure_counter_value_is_extended : 1; + gulong map_serial; /* Serial of last transition from unmapped */ cairo_surface_t *icon_pixmap; From 645b5f398d2d50c361600f4f8a089488a66eed99 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 19 Dec 2012 12:49:32 -0500 Subject: [PATCH 046/208] Reimplement _NET_WM_SYNC_REQUEST inside X11 backend Deprecate gdk_window_enable_synchronized_configure() and gdk_window_configure_done() and make them no-ops. Implement the handling of _NET_WM_SYNC_REQUEST in terms of the frame cycle - we know that all processing will be finished in the next frame cycle after the ConfigureNotify is received. --- gdk/broadway/gdkwindow-broadway.c | 16 ------ gdk/gdkwindow.c | 24 ++------ gdk/gdkwindow.h | 2 + gdk/quartz/gdkwindow-quartz.c | 12 ---- gdk/wayland/gdkwindow-wayland.c | 17 ------ gdk/win32/gdkwindow-win32.c | 14 ----- gdk/x11/gdkwindow-x11.c | 94 ++++++++----------------------- gdk/x11/gdkwindow-x11.h | 1 - gtk/gtkwindow.c | 9 --- 9 files changed, 31 insertions(+), 158 deletions(-) diff --git a/gdk/broadway/gdkwindow-broadway.c b/gdk/broadway/gdkwindow-broadway.c index 7a1245cca0..c4931976b8 100644 --- a/gdk/broadway/gdkwindow-broadway.c +++ b/gdk/broadway/gdkwindow-broadway.c @@ -1294,20 +1294,6 @@ gdk_broadway_window_begin_move_drag (GdkWindow *window, } -static void -gdk_broadway_window_enable_synchronized_configure (GdkWindow *window) -{ - if (!GDK_IS_WINDOW_IMPL_BROADWAY (window->impl)) - return; -} - -static void -gdk_broadway_window_configure_finished (GdkWindow *window) -{ - if (!WINDOW_IS_TOPLEVEL (window)) - return; -} - static gboolean gdk_broadway_window_beep (GdkWindow *window) { @@ -1499,8 +1485,6 @@ gdk_window_impl_broadway_class_init (GdkWindowImplBroadwayClass *klass) impl_class->set_functions = gdk_broadway_window_set_functions; impl_class->begin_resize_drag = gdk_broadway_window_begin_resize_drag; impl_class->begin_move_drag = gdk_broadway_window_begin_move_drag; - impl_class->enable_synchronized_configure = gdk_broadway_window_enable_synchronized_configure; - impl_class->configure_finished = gdk_broadway_window_configure_finished; impl_class->set_opacity = gdk_broadway_window_set_opacity; impl_class->set_composited = gdk_broadway_window_set_composited; impl_class->destroy_notify = gdk_broadway_window_destroy_notify; diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 211f8fd9ee..38543ce123 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -11215,44 +11215,28 @@ gdk_window_begin_move_drag (GdkWindow *window, * gdk_window_enable_synchronized_configure: * @window: a toplevel #GdkWindow * - * Indicates that the application will cooperate with the window - * system in synchronizing the window repaint with the window - * manager during resizing operations. After an application calls - * this function, it must call gdk_window_configure_finished() every - * time it has finished all processing associated with a set of - * Configure events. Toplevel GTK+ windows automatically use this - * protocol. - * - * On X, calling this function makes @window participate in the - * _NET_WM_SYNC_REQUEST window manager protocol. + * Does nothing, present only for compatiblity. * * Since: 2.6 + * Deprecated: 3.8: this function is no longer needed **/ void gdk_window_enable_synchronized_configure (GdkWindow *window) { - GDK_WINDOW_IMPL_GET_CLASS (window->impl)->enable_synchronized_configure (window); } /** * gdk_window_configure_finished: * @window: a toplevel #GdkWindow - * - * Signal to the window system that the application has finished - * handling Configure events it has received. Window Managers can - * use this to better synchronize the frame repaint with the - * application. GTK+ applications will automatically call this - * function when appropriate. * - * This function can only be called if gdk_window_enable_synchronized_configure() - * was called previously. + * Does nothing, present only for compatiblity. * * Since: 2.6 + * Deprecated: 3.8: this function is no longer needed **/ void gdk_window_configure_finished (GdkWindow *window) { - GDK_WINDOW_IMPL_GET_CLASS (window->impl)->configure_finished (window); } /** diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h index a93e5ced99..ef8bb5eb82 100644 --- a/gdk/gdkwindow.h +++ b/gdk/gdkwindow.h @@ -884,7 +884,9 @@ void gdk_window_constrain_size (GdkGeometry *geometry, gint *new_width, gint *new_height); +GDK_DEPRECATED_IN_3_8 void gdk_window_enable_synchronized_configure (GdkWindow *window); +GDK_DEPRECATED_IN_3_8 void gdk_window_configure_finished (GdkWindow *window); GdkWindow *gdk_get_default_root_window (void); diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c index b83adfc063..a096064ae3 100644 --- a/gdk/quartz/gdkwindow-quartz.c +++ b/gdk/quartz/gdkwindow-quartz.c @@ -3002,16 +3002,6 @@ gdk_quartz_window_set_group (GdkWindow *window, /* FIXME: Implement */ } -static void -gdk_quartz_window_enable_synchronized_configure (GdkWindow *window) -{ -} - -static void -gdk_quartz_window_configure_finished (GdkWindow *window) -{ -} - static void gdk_quartz_window_destroy_notify (GdkWindow *window) { @@ -3129,8 +3119,6 @@ gdk_window_impl_quartz_class_init (GdkWindowImplQuartzClass *klass) impl_class->set_functions = gdk_quartz_window_set_functions; impl_class->begin_resize_drag = gdk_quartz_window_begin_resize_drag; impl_class->begin_move_drag = gdk_quartz_window_begin_move_drag; - impl_class->enable_synchronized_configure = gdk_quartz_window_enable_synchronized_configure; - impl_class->configure_finished = gdk_quartz_window_configure_finished; impl_class->set_opacity = gdk_quartz_window_set_opacity; impl_class->destroy_notify = gdk_quartz_window_destroy_notify; impl_class->register_dnd = _gdk_quartz_window_register_dnd; diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c index 5c8d6b6dc1..15cef9f4a5 100644 --- a/gdk/wayland/gdkwindow-wayland.c +++ b/gdk/wayland/gdkwindow-wayland.c @@ -1468,21 +1468,6 @@ gdk_wayland_window_begin_move_drag (GdkWindow *window, gdk_device_ungrab (device, timestamp); } -static void -gdk_wayland_window_enable_synchronized_configure (GdkWindow *window) -{ -} - -static void -gdk_wayland_window_configure_finished (GdkWindow *window) -{ - if (!WINDOW_IS_TOPLEVEL (window)) - return; - - if (!GDK_IS_WINDOW_IMPL_WAYLAND (window->impl)) - return; -} - static void gdk_wayland_window_set_opacity (GdkWindow *window, gdouble opacity) @@ -1666,8 +1651,6 @@ _gdk_window_impl_wayland_class_init (GdkWindowImplWaylandClass *klass) impl_class->set_functions = gdk_wayland_window_set_functions; impl_class->begin_resize_drag = gdk_wayland_window_begin_resize_drag; impl_class->begin_move_drag = gdk_wayland_window_begin_move_drag; - impl_class->enable_synchronized_configure = gdk_wayland_window_enable_synchronized_configure; - impl_class->configure_finished = gdk_wayland_window_configure_finished; impl_class->set_opacity = gdk_wayland_window_set_opacity; impl_class->set_composited = gdk_wayland_window_set_composited; impl_class->destroy_notify = gdk_wayland_window_destroy_notify; diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index 5d1b1535e9..039284963c 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -3248,18 +3248,6 @@ gdk_win32_window_lookup_for_display (GdkDisplay *display, return (GdkWindow*) gdk_win32_handle_table_lookup (anid); } -static void -gdk_win32_window_enable_synchronized_configure (GdkWindow *window) -{ - /* nothing - no window manager to cooperate with */ -} - -static void -gdk_win32_window_configure_finished (GdkWindow *window) -{ - /* nothing - no window manager to cooperate with */ -} - static void gdk_win32_window_set_opacity (GdkWindow *window, gdouble opacity) @@ -3618,8 +3606,6 @@ gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass) impl_class->begin_resize_drag = gdk_win32_window_begin_resize_drag; impl_class->begin_move_drag = gdk_win32_window_begin_move_drag; - impl_class->enable_synchronized_configure = gdk_win32_window_enable_synchronized_configure; - impl_class->configure_finished = gdk_win32_window_configure_finished; impl_class->set_opacity = gdk_win32_window_set_opacity; //impl_class->set_composited = gdk_win32_window_set_composited; impl_class->destroy_notify = gdk_win32_window_destroy_notify; diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 3d625f5fa7..7541e59531 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -344,7 +344,21 @@ gdk_x11_window_begin_frame (GdkWindow *window) impl->toplevel->in_frame = TRUE; - hook_surface_changed (window); + if (impl->toplevel->configure_counter_value != 0 && + impl->toplevel->configure_counter_value_is_extended) + { + impl->toplevel->current_counter_value = impl->toplevel->configure_counter_value; + if ((impl->toplevel->current_counter_value % 2) == 1) + impl->toplevel->current_counter_value += 1; + + impl->toplevel->configure_counter_value = 0; + + window_pre_damage (window); + } + else + { + hook_surface_changed (window); + } } static void @@ -407,6 +421,16 @@ gdk_x11_window_end_frame (GdkWindow *window) unhook_surface_changed (window); + if (impl->toplevel->configure_counter_value != 0 && + !impl->toplevel->configure_counter_value_is_extended) + { + set_sync_counter (GDK_WINDOW_XDISPLAY (window), + impl->toplevel->update_counter, + impl->toplevel->configure_counter_value); + + impl->toplevel->configure_counter_value = 0; + } + if (!impl->toplevel->frame_pending) gdk_frame_timings_set_complete (timings, TRUE); } @@ -5074,72 +5098,6 @@ gdk_x11_window_begin_move_drag (GdkWindow *window, emulate_move_drag (window, device, button, root_x, root_y, timestamp); } -static void -gdk_x11_window_enable_synchronized_configure (GdkWindow *window) -{ - GdkWindowImplX11 *impl; - - if (!GDK_IS_WINDOW_IMPL_X11 (window->impl)) - return; - - impl = GDK_WINDOW_IMPL_X11 (window->impl); - - if (!impl->use_synchronized_configure) - { - /* This basically means you want to do fancy X specific stuff, so - ensure we have a native window */ - gdk_window_ensure_native (window); - - impl->use_synchronized_configure = TRUE; - ensure_sync_counter (window); - } -} - -static void -gdk_x11_window_configure_finished (GdkWindow *window) -{ - GdkWindowImplX11 *impl; - - if (!WINDOW_IS_TOPLEVEL (window)) - return; - - impl = GDK_WINDOW_IMPL_X11 (window->impl); - if (!impl->use_synchronized_configure) - return; - -#ifdef HAVE_XSYNC - if (!GDK_WINDOW_DESTROYED (window)) - { - GdkDisplay *display = GDK_WINDOW_DISPLAY (window); - GdkToplevelX11 *toplevel = _gdk_x11_window_get_toplevel (window); - - if (toplevel && toplevel->update_counter != None && - GDK_X11_DISPLAY (display)->use_sync && - toplevel->configure_counter_value != 0) - { - if (toplevel->configure_counter_value_is_extended) - { - toplevel->current_counter_value = toplevel->configure_counter_value; - if ((toplevel->current_counter_value % 2) == 1) - toplevel->current_counter_value += 1; - - toplevel->configure_counter_value = 0; - - set_sync_counter (GDK_WINDOW_XDISPLAY (window), - toplevel->extended_update_counter, - toplevel->current_counter_value); - } - else - { - set_sync_counter (GDK_WINDOW_XDISPLAY (window), - toplevel->update_counter, - toplevel->configure_counter_value); - } - } - } -#endif -} - static gboolean gdk_x11_window_beep (GdkWindow *window) { @@ -5411,8 +5369,6 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass) impl_class->set_functions = gdk_x11_window_set_functions; impl_class->begin_resize_drag = gdk_x11_window_begin_resize_drag; impl_class->begin_move_drag = gdk_x11_window_begin_move_drag; - impl_class->enable_synchronized_configure = gdk_x11_window_enable_synchronized_configure; - impl_class->configure_finished = gdk_x11_window_configure_finished; impl_class->set_opacity = gdk_x11_window_set_opacity; impl_class->set_composited = gdk_x11_window_set_composited; impl_class->destroy_notify = gdk_x11_window_destroy_notify; diff --git a/gdk/x11/gdkwindow-x11.h b/gdk/x11/gdkwindow-x11.h index d58d7e34a4..aefc88262c 100644 --- a/gdk/x11/gdkwindow-x11.h +++ b/gdk/x11/gdkwindow-x11.h @@ -72,7 +72,6 @@ struct _GdkWindowImplX11 guint no_bg : 1; /* Set when the window background is temporarily * unset during resizing and scaling */ guint override_redirect : 1; - guint use_synchronized_configure : 1; cairo_surface_t *cairo_surface; diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index a2f9b18e0d..a6ff07d4e4 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -5164,7 +5164,6 @@ gtk_window_realize (GtkWidget *widget) gtk_style_context_set_background (gtk_widget_get_style_context (widget), gdk_window); - gdk_window_enable_synchronized_configure (gdk_window); return; } @@ -5238,8 +5237,6 @@ gtk_window_realize (GtkWidget *widget) gdk_window = gdk_window_new (parent_window, &attributes, attributes_mask); gtk_widget_set_window (widget, gdk_window); - gdk_window_enable_synchronized_configure (gdk_window); - gtk_widget_register_window (widget, gdk_window); context = gtk_widget_get_style_context (widget); @@ -5580,7 +5577,6 @@ gtk_window_configure_event (GtkWidget *widget, if (GTK_WIDGET_CLASS (gtk_window_parent_class)->configure_event) return GTK_WIDGET_CLASS (gtk_window_parent_class)->configure_event (widget, event); - gdk_window_configure_finished (gtk_widget_get_window (widget)); return FALSE; } @@ -5614,7 +5610,6 @@ gtk_window_configure_event (GtkWidget *widget, (allocation.width == event->width && allocation.height == event->height)) { - gdk_window_configure_finished (gtk_widget_get_window (widget)); return TRUE; } @@ -7153,10 +7148,6 @@ gtk_window_move_resize (GtkWindow *window) set_grip_position (window); update_grip_visibility (window); - gdk_window_process_updates (gdk_window, TRUE); - - gdk_window_configure_finished (gdk_window); - /* If the configure request changed, it means that * we either: * 1) coincidentally changed hints or widget properties From 06c4598fc52cf21c7c0355761f3fa2e7e5923e9c Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 30 Jan 2013 15:11:59 -0500 Subject: [PATCH 047/208] GdkX11DeviceManagerXI2: handle focus events not on a known window If we get a focus event for a X window we don't recognize, just ignore it and avoid a g-critical when _gdk_device_manager_core_handle_focus() is called with a NULL window. --- gdk/x11/gdkdevicemanager-xi2.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c index a0fba5f64e..62c108ea28 100644 --- a/gdk/x11/gdkdevicemanager-xi2.c +++ b/gdk/x11/gdkdevicemanager-xi2.c @@ -1569,22 +1569,25 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator, case XI_FocusIn: case XI_FocusOut: { - XIEnterEvent *xev = (XIEnterEvent *) ev; - GdkDevice *device, *source_device; + if (window) + { + XIEnterEvent *xev = (XIEnterEvent *) ev; + GdkDevice *device, *source_device; - device = g_hash_table_lookup (device_manager->id_table, - GINT_TO_POINTER (xev->deviceid)); + device = g_hash_table_lookup (device_manager->id_table, + GINT_TO_POINTER (xev->deviceid)); - source_device = g_hash_table_lookup (device_manager->id_table, - GUINT_TO_POINTER (xev->sourceid)); + source_device = g_hash_table_lookup (device_manager->id_table, + GUINT_TO_POINTER (xev->sourceid)); - _gdk_device_manager_core_handle_focus (window, - xev->event, - device, - source_device, - (ev->evtype == XI_FocusIn) ? TRUE : FALSE, - xev->detail, - xev->mode); + _gdk_device_manager_core_handle_focus (window, + xev->event, + device, + source_device, + (ev->evtype == XI_FocusIn) ? TRUE : FALSE, + xev->detail, + xev->mode); + } return_val = FALSE; } From 449e8c88565b444d1399a9080bde5141d054bde6 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 19 Dec 2012 12:03:16 -0500 Subject: [PATCH 048/208] Add gtk_widget_add_tick_callback(), remove GtkTimeline, etc. Add a very simple GtkWidget function for an "tick" callback, which is connected to the ::update signal of GdkFrameClock. Remove: - GtkTimeline. The consensus is that it is too complex. - GdkPaintClockTarget. In the rare cases where tick callbacks aren't sufficient, it's possible to track the paint clock with ::realize/::unrealize/::hierarchy-changed. GtkTimeline is kept using ::update directly to allow using a GtkTimeline with a paint clock but no widget. --- gdk/gdkframeclock.c | 13 - gdk/gdkframeclock.h | 20 - gtk/Makefile.am | 2 - gtk/gtk.h | 1 - gtk/gtkstylecontext.c | 112 +++-- gtk/gtkstylecontext.h | 7 + gtk/gtktimeline.c | 909 -------------------------------------- gtk/gtktimeline.h | 119 ----- gtk/gtkwidget.c | 329 ++++++++++---- gtk/gtkwidget.h | 32 +- tests/animated-resizing.c | 39 +- 11 files changed, 389 insertions(+), 1194 deletions(-) delete mode 100644 gtk/gtktimeline.c delete mode 100644 gtk/gtktimeline.h diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index fd41d94533..08789ebb04 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -28,19 +28,6 @@ #include "gdkframeclock.h" -G_DEFINE_INTERFACE (GdkFrameClockTarget, gdk_frame_clock_target, G_TYPE_OBJECT) - -static void -gdk_frame_clock_target_default_init (GdkFrameClockTargetInterface *iface) -{ -} - -void gdk_frame_clock_target_set_clock (GdkFrameClockTarget *target, - GdkFrameClock *clock) -{ - GDK_FRAME_CLOCK_TARGET_GET_IFACE (target)->set_clock (target, clock); -} - /** * SECTION:frameclock * @Short_description: Frame clock syncs painting to a window or display diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 8d79f90a96..ba6a59f40a 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -37,26 +37,6 @@ G_BEGIN_DECLS typedef struct _GdkFrameClock GdkFrameClock; typedef struct _GdkFrameClockInterface GdkFrameClockInterface; -typedef struct _GdkFrameClockTarget GdkFrameClockTarget; -typedef struct _GdkFrameClockTargetInterface GdkFrameClockTargetInterface; - -#define GDK_TYPE_FRAME_CLOCK_TARGET (gdk_frame_clock_target_get_type ()) -#define GDK_FRAME_CLOCK_TARGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_FRAME_CLOCK_TARGET, GdkFrameClockTarget)) -#define GDK_IS_FRAME_CLOCK_TARGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_FRAME_CLOCK_TARGET)) -#define GDK_FRAME_CLOCK_TARGET_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GDK_TYPE_FRAME_CLOCK_TARGET, GdkFrameClockTargetInterface)) - -struct _GdkFrameClockTargetInterface -{ - GTypeInterface base_iface; - - void (*set_clock) (GdkFrameClockTarget *target, - GdkFrameClock *clock); -}; - -GType gdk_frame_clock_target_get_type (void) G_GNUC_CONST; - -void gdk_frame_clock_target_set_clock (GdkFrameClockTarget *target, - GdkFrameClock *clock); #define GDK_TYPE_FRAME_CLOCK (gdk_frame_clock_get_type ()) #define GDK_FRAME_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_FRAME_CLOCK, GdkFrameClock)) diff --git a/gtk/Makefile.am b/gtk/Makefile.am index bc1dc7ccba..973f3c8994 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -348,7 +348,6 @@ gtk_public_h_sources = \ gtktexttagtable.h \ gtktextview.h \ gtkthemingengine.h \ - gtktimeline.h \ gtktoggleaction.h \ gtktogglebutton.h \ gtktoggletoolbutton.h \ @@ -851,7 +850,6 @@ gtk_base_c_sources = \ gtktextview.c \ gtkthemingbackground.c \ gtkthemingengine.c \ - gtktimeline.c \ gtktoggleaction.c \ gtktogglebutton.c \ gtktoggletoolbutton.c \ diff --git a/gtk/gtk.h b/gtk/gtk.h index 7642dd8b1f..e95494f0fe 100644 --- a/gtk/gtk.h +++ b/gtk/gtk.h @@ -194,7 +194,6 @@ #include #include #include -#include #include #include #include diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index 343cf1f1bc..a57873cae7 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -380,6 +380,7 @@ enum { PROP_0, PROP_SCREEN, PROP_DIRECTION, + PROP_FRAME_CLOCK, PROP_PARENT }; @@ -392,8 +393,6 @@ static guint signals[LAST_SIGNAL] = { 0 }; static void gtk_style_context_finalize (GObject *object); -static void frame_clock_target_iface_init (GdkFrameClockTargetInterface *target); - static void gtk_style_context_impl_set_property (GObject *object, guint prop_id, const GValue *value, @@ -408,8 +407,7 @@ static StyleData *style_data_lookup (GtkStyleContext *context); static void gtk_style_context_disconnect_update (GtkStyleContext *context); static void gtk_style_context_connect_update (GtkStyleContext *context); -G_DEFINE_TYPE_WITH_CODE (GtkStyleContext, gtk_style_context, G_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE (GDK_TYPE_FRAME_CLOCK_TARGET, frame_clock_target_iface_init)) +G_DEFINE_TYPE (GtkStyleContext, gtk_style_context, G_TYPE_OBJECT) static void gtk_style_context_real_changed (GtkStyleContext *context) @@ -447,6 +445,13 @@ gtk_style_context_class_init (GtkStyleContextClass *klass) P_("The associated GdkScreen"), GDK_TYPE_SCREEN, GTK_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_FRAME_CLOCK, + g_param_spec_object ("paint-clock", + P_("FrameClock"), + P_("The associated GdkFrameClock"), + GDK_TYPE_FRAME_CLOCK, + GTK_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_DIRECTION, g_param_spec_enum ("direction", @@ -474,25 +479,6 @@ gtk_style_context_class_init (GtkStyleContextClass *klass) g_type_class_add_private (object_class, sizeof (GtkStyleContextPrivate)); } -static void -gtk_style_context_set_clock (GdkFrameClockTarget *target, - GdkFrameClock *clock) -{ - GtkStyleContext *context = GTK_STYLE_CONTEXT (target); - GtkStyleContextPrivate *priv = context->priv; - - gtk_style_context_disconnect_update (context); - priv->frame_clock = clock; - if (priv->animating) - gtk_style_context_connect_update (context); -} - -static void -frame_clock_target_iface_init (GdkFrameClockTargetInterface *iface) -{ - iface->set_clock = gtk_style_context_set_clock; -} - static StyleData * style_data_new (void) { @@ -805,11 +791,6 @@ gtk_style_context_stop_animating (GtkStyleContext *context) priv->animating = FALSE; gtk_style_context_disconnect_update (context); - if (priv->widget) - { - gtk_widget_remove_frame_clock_target (priv->widget, - GDK_FRAME_CLOCK_TARGET (context)); - } } static void @@ -823,11 +804,6 @@ gtk_style_context_start_animating (GtkStyleContext *context) priv->animating = TRUE; gtk_style_context_connect_update (context); - if (priv->widget) - { - gtk_widget_add_frame_clock_target (priv->widget, - GDK_FRAME_CLOCK_TARGET (context)); - } } static gboolean @@ -916,6 +892,10 @@ gtk_style_context_impl_set_property (GObject *object, g_value_get_enum (value)); G_GNUC_END_IGNORE_DEPRECATIONS; break; + case PROP_FRAME_CLOCK: + gtk_style_context_set_frame_clock (style_context, + g_value_get_object (value)); + break; case PROP_PARENT: gtk_style_context_set_parent (style_context, g_value_get_object (value)); @@ -948,6 +928,9 @@ gtk_style_context_impl_get_property (GObject *object, g_value_set_enum (value, gtk_style_context_get_direction (style_context)); G_GNUC_END_IGNORE_DEPRECATIONS; break; + case PROP_FRAME_CLOCK: + g_value_set_object (value, priv->frame_clock); + break; case PROP_PARENT: g_value_set_object (value, priv->parent); break; @@ -2644,6 +2627,69 @@ gtk_style_context_get_screen (GtkStyleContext *context) return priv->screen; } +/** + * gtk_style_context_set_frame_clock: + * @context: a #GdkFrameClock + * @frame_clock: a #GdkFrameClock + * + * Attaches @context to the given frame clock. + * + * The frame clock is used for the timing of animations. + * + * If you are using a #GtkStyleContext returned from + * gtk_widget_get_style_context(), you do not need to + * call this yourself. + * + * Since: 3.8 + **/ +void +gtk_style_context_set_frame_clock (GtkStyleContext *context, + GdkFrameClock *frame_clock) +{ + GtkStyleContextPrivate *priv; + + g_return_if_fail (GTK_IS_STYLE_CONTEXT (context)); + g_return_if_fail (frame_clock == NULL || GDK_IS_FRAME_CLOCK (frame_clock)); + + priv = context->priv; + if (priv->frame_clock == frame_clock) + return; + + if (priv->animating) + gtk_style_context_disconnect_update (context); + + if (priv->frame_clock) + g_object_unref (priv->frame_clock); + priv->frame_clock = frame_clock; + if (priv->frame_clock) + g_object_ref (priv->frame_clock); + + if (priv->animating) + gtk_style_context_connect_update (context); + + g_object_notify (G_OBJECT (context), "paint-clock"); +} + +/** + * gtk_style_context_get_frame_clock: + * @context: a #GtkStyleContext + * + * Returns the #GdkFrameClock to which @context is attached. + * + * Returns: (transfer none): a #GdkFrameClock. + * Since: 3.8 + **/ +GdkFrameClock * +gtk_style_context_get_frame_clock (GtkStyleContext *context) +{ + GtkStyleContextPrivate *priv; + + g_return_val_if_fail (GTK_IS_STYLE_CONTEXT (context), NULL); + + priv = context->priv; + return priv->frame_clock; +} + /** * gtk_style_context_set_direction: * @context: a #GtkStyleContext diff --git a/gtk/gtkstylecontext.h b/gtk/gtkstylecontext.h index dab758a5fb..35655f28d6 100644 --- a/gtk/gtkstylecontext.h +++ b/gtk/gtkstylecontext.h @@ -836,6 +836,13 @@ void gtk_style_context_set_screen (GtkStyleContext *context, GdkScreen *screen); GdkScreen * gtk_style_context_get_screen (GtkStyleContext *context); +GDK_AVAILABLE_IN_3_8 +void gtk_style_context_set_frame_clock (GtkStyleContext *context, + GdkFrameClock *frame_clock); +GDK_AVAILABLE_IN_3_8 +GdkFrameClock *gtk_style_context_get_frame_clock (GtkStyleContext *context); + + GDK_DEPRECATED_IN_3_8_FOR(gtk_style_context_set_state) void gtk_style_context_set_direction (GtkStyleContext *context, GtkTextDirection direction); diff --git a/gtk/gtktimeline.c b/gtk/gtktimeline.c deleted file mode 100644 index ad2e7dfcd4..0000000000 --- a/gtk/gtktimeline.c +++ /dev/null @@ -1,909 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 2007 Carlos Garnacho - * - * 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 . - */ - -#include -#include -#include -#include - -typedef struct GtkTimelinePriv GtkTimelinePriv; - -struct GtkTimelinePriv -{ - guint duration; - - guint64 last_time; - gdouble elapsed_time; - - gdouble progress; - gdouble last_progress; - - GtkWidget *widget; - GdkFrameClock *frame_clock; - GdkScreen *screen; - - guint update_id; - - GtkTimelineProgressType progress_type; - - guint animations_enabled : 1; - guint loop : 1; - guint direction : 1; - guint running : 1; -}; - -enum { - PROP_0, - PROP_DURATION, - PROP_LOOP, - PROP_DIRECTION, - PROP_FRAME_CLOCK, - PROP_PROGRESS_TYPE, - PROP_SCREEN, - PROP_WIDGET -}; - -enum { - STARTED, - PAUSED, - FINISHED, - FRAME, - LAST_SIGNAL -}; - -static guint signals [LAST_SIGNAL] = { 0, }; - - -static void gtk_timeline_start_running (GtkTimeline *timeline); -static void gtk_timeline_stop_running (GtkTimeline *timeline); - -static void frame_clock_target_iface_init (GdkFrameClockTargetInterface *target); - -static void gtk_timeline_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gtk_timeline_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void gtk_timeline_finalize (GObject *object); - -static void gtk_timeline_set_clock (GdkFrameClockTarget *target, - GdkFrameClock *frame_clock); - -G_DEFINE_TYPE_WITH_CODE (GtkTimeline, gtk_timeline, G_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE (GDK_TYPE_FRAME_CLOCK_TARGET, frame_clock_target_iface_init)) - -static void -gtk_timeline_class_init (GtkTimelineClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->set_property = gtk_timeline_set_property; - object_class->get_property = gtk_timeline_get_property; - object_class->finalize = gtk_timeline_finalize; - - g_object_class_install_property (object_class, - PROP_DURATION, - g_param_spec_uint ("duration", - "Animation Duration", - "Animation Duration", - 0, G_MAXUINT, - 0, - G_PARAM_READWRITE)); - g_object_class_install_property (object_class, - PROP_LOOP, - g_param_spec_boolean ("loop", - "Loop", - "Whether the timeline loops or not", - FALSE, - G_PARAM_READWRITE)); - g_object_class_install_property (object_class, - PROP_FRAME_CLOCK, - g_param_spec_object ("paint-clock", - "Frame Clock", - "clock used for timing the animation (not needed if :widget is set)", - GDK_TYPE_FRAME_CLOCK, - G_PARAM_READWRITE)); - g_object_class_install_property (object_class, - PROP_PROGRESS_TYPE, - g_param_spec_enum ("progress-type", - "Progress Type", - "Easing function for animation progress", - GTK_TYPE_TIMELINE_PROGRESS_TYPE, - GTK_TIMELINE_PROGRESS_EASE_OUT, - G_PARAM_READWRITE)); - g_object_class_install_property (object_class, - PROP_SCREEN, - g_param_spec_object ("screen", - "Screen", - "Screen to get the settings from (not needed if :widget is set)", - GDK_TYPE_SCREEN, - G_PARAM_READWRITE)); - g_object_class_install_property (object_class, - PROP_WIDGET, - g_param_spec_object ("widget", - "Widget", - "Widget the timeline will be used with", - GTK_TYPE_WIDGET, - G_PARAM_READWRITE)); - - signals[STARTED] = - g_signal_new ("started", - G_TYPE_FROM_CLASS (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GtkTimelineClass, started), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - signals[PAUSED] = - g_signal_new ("paused", - G_TYPE_FROM_CLASS (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GtkTimelineClass, paused), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - signals[FINISHED] = - g_signal_new ("finished", - G_TYPE_FROM_CLASS (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GtkTimelineClass, finished), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - signals[FRAME] = - g_signal_new ("frame", - G_TYPE_FROM_CLASS (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GtkTimelineClass, frame), - NULL, NULL, - g_cclosure_marshal_VOID__DOUBLE, - G_TYPE_NONE, 1, - G_TYPE_DOUBLE); - - g_type_class_add_private (klass, sizeof (GtkTimelinePriv)); -} - -static void -frame_clock_target_iface_init (GdkFrameClockTargetInterface *iface) -{ - iface->set_clock = gtk_timeline_set_clock; -} - -static void -gtk_timeline_init (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - priv = timeline->priv = G_TYPE_INSTANCE_GET_PRIVATE (timeline, - GTK_TYPE_TIMELINE, - GtkTimelinePriv); - - priv->duration = 0.0; - priv->direction = GTK_TIMELINE_DIRECTION_FORWARD; - priv->progress_type = GTK_TIMELINE_PROGRESS_EASE_OUT; - priv->screen = gdk_screen_get_default (); - - priv->last_progress = 0; -} - -static void -gtk_timeline_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GtkTimeline *timeline; - - timeline = GTK_TIMELINE (object); - - switch (prop_id) - { - case PROP_DURATION: - gtk_timeline_set_duration (timeline, g_value_get_uint (value)); - break; - case PROP_LOOP: - gtk_timeline_set_loop (timeline, g_value_get_boolean (value)); - break; - case PROP_DIRECTION: - gtk_timeline_set_direction (timeline, g_value_get_enum (value)); - break; - case PROP_FRAME_CLOCK: - gtk_timeline_set_frame_clock (timeline, - GDK_FRAME_CLOCK (g_value_get_object (value))); - break; - case PROP_PROGRESS_TYPE: - gtk_timeline_set_progress_type (timeline, - g_value_get_enum (value)); - break; - case PROP_SCREEN: - gtk_timeline_set_screen (timeline, - GDK_SCREEN (g_value_get_object (value))); - break; - case PROP_WIDGET: - gtk_timeline_set_widget (timeline, - GTK_WIDGET (g_value_get_object (value))); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - -static void -gtk_timeline_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GtkTimeline *timeline; - GtkTimelinePriv *priv; - - timeline = GTK_TIMELINE (object); - priv = timeline->priv; - - switch (prop_id) - { - case PROP_DURATION: - g_value_set_uint (value, priv->duration); - break; - case PROP_LOOP: - g_value_set_boolean (value, priv->loop); - break; - case PROP_DIRECTION: - g_value_set_enum (value, priv->direction); - break; - case PROP_FRAME_CLOCK: - g_value_set_object (value, priv->frame_clock); - break; - case PROP_PROGRESS_TYPE: - g_value_set_enum (value, priv->progress_type); - break; - case PROP_SCREEN: - g_value_set_object (value, priv->screen); - break; - case PROP_WIDGET: - g_value_set_object (value, priv->widget); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - -static void -gtk_timeline_finalize (GObject *object) -{ - GtkTimelinePriv *priv; - GtkTimeline *timeline; - - timeline = (GtkTimeline *) object; - priv = timeline->priv; - - if (priv->running) - { - gtk_timeline_stop_running (timeline); - priv->running = FALSE; - } - - G_OBJECT_CLASS (gtk_timeline_parent_class)->finalize (object); -} - -/* Implementation of GdkFrameClockTarget method */ -static void -gtk_timeline_set_clock (GdkFrameClockTarget *target, - GdkFrameClock *frame_clock) -{ - gtk_timeline_set_frame_clock (GTK_TIMELINE (target), - frame_clock); -} - -static gdouble -calculate_progress (gdouble linear_progress, - GtkTimelineProgressType progress_type) -{ - gdouble progress; - - progress = linear_progress; - - switch (progress_type) - { - case GTK_TIMELINE_PROGRESS_LINEAR: - break; - case GTK_TIMELINE_PROGRESS_EASE_IN_OUT: - progress *= 2; - - if (progress < 1) - progress = pow (progress, 3) / 2; - else - progress = (pow (progress - 2, 3) + 2) / 2; - - break; - case GTK_TIMELINE_PROGRESS_EASE: - progress = (sin ((progress - 0.5) * G_PI) + 1) / 2; - break; - case GTK_TIMELINE_PROGRESS_EASE_IN: - progress = pow (progress, 3); - break; - case GTK_TIMELINE_PROGRESS_EASE_OUT: - progress = pow (progress - 1, 3) + 1; - break; - default: - g_warning ("Timeline progress type not implemented"); - } - - return progress; -} - -static void -gtk_timeline_on_update (GdkFrameClock *clock, - GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - gdouble delta_progress, progress, adjust; - guint64 now; - - /* the user may unref us during the signals, so save ourselves */ - g_object_ref (timeline); - - priv = timeline->priv; - - now = gdk_frame_clock_get_frame_time (clock); - priv->elapsed_time = (now - priv->last_time) / 1000; - priv->last_time = now; - - if (priv->animations_enabled) - { - delta_progress = (gdouble) priv->elapsed_time / priv->duration; - progress = priv->last_progress; - - if (priv->direction == GTK_TIMELINE_DIRECTION_BACKWARD) - progress -= delta_progress; - else - progress += delta_progress; - - priv->last_progress = progress; - - /* When looping, if we go past the end, start that much into the - * next cycle */ - if (progress < 0.0) - { - adjust = progress - ceil(progress); - progress = 0.0; - } - else if (progress > 1.0) - { - adjust = progress - floor(progress); - progress = 1.0; - } - else - adjust = 0.0; - - progress = CLAMP (progress, 0., 1.); - } - else - progress = (priv->direction == GTK_TIMELINE_DIRECTION_FORWARD) ? 1.0 : 0.0; - - priv->progress = progress; - g_signal_emit (timeline, signals [FRAME], 0, - calculate_progress (progress, priv->progress_type)); - - if ((priv->direction == GTK_TIMELINE_DIRECTION_FORWARD && progress == 1.0) || - (priv->direction == GTK_TIMELINE_DIRECTION_BACKWARD && progress == 0.0)) - { - gboolean loop; - - loop = priv->loop && priv->animations_enabled; - - if (loop) - { - gtk_timeline_rewind (timeline); - priv->progress += adjust; - } - else - { - gtk_timeline_stop_running (timeline); - priv->running = FALSE; - - g_signal_emit (timeline, signals [FINISHED], 0); - g_object_unref (timeline); - return; - } - } - - g_object_unref (timeline); - gdk_frame_clock_request_phase (clock, GDK_FRAME_CLOCK_PHASE_UPDATE); -} - -static void -gtk_timeline_start_updating (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv = timeline->priv; - - g_assert (priv->running && priv->frame_clock && priv->update_id == 0); - - priv->update_id = g_signal_connect (priv->frame_clock, - "update", - G_CALLBACK (gtk_timeline_on_update), - timeline); - - gdk_frame_clock_request_phase (priv->frame_clock, GDK_FRAME_CLOCK_PHASE_UPDATE); - priv->last_time = gdk_frame_clock_get_frame_time (priv->frame_clock); -} - -static void -gtk_timeline_stop_updating (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv = timeline->priv; - - g_assert (priv->running && priv->frame_clock && priv->update_id != 0); - - g_signal_handler_disconnect (priv->frame_clock, - priv->update_id); - priv->update_id = 0; -} - -static void -gtk_timeline_start_running (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv = timeline->priv; - - g_assert (priv->running); - - if (priv->widget) - gtk_widget_add_frame_clock_target (priv->widget, - GDK_FRAME_CLOCK_TARGET (timeline)); - else if (priv->frame_clock) - gtk_timeline_start_updating (timeline); -} - -static void -gtk_timeline_stop_running (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv = timeline->priv; - - g_assert (priv->running); - - if (priv->widget) - gtk_widget_remove_frame_clock_target (priv->widget, - GDK_FRAME_CLOCK_TARGET (timeline)); - else if (priv->frame_clock) - gtk_timeline_stop_updating (timeline); -} - -/** - * gtk_timeline_new: - * @widget: a widget the timeline will be used with - * @duration: duration in milliseconds for the timeline - * - * Creates a new #GtkTimeline with the specified duration - * - * Return Value: the newly created #GtkTimeline - */ -GtkTimeline * -gtk_timeline_new (GtkWidget *widget, - guint duration) -{ - return g_object_new (GTK_TYPE_TIMELINE, - "widget", widget, - "duration", duration, - NULL); -} - -/** - * gtk_timeline_start: - * @timeline: A #GtkTimeline - * - * Runs the timeline from the current frame. - */ -void -gtk_timeline_start (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - GtkSettings *settings; - gboolean enable_animations = FALSE; - - g_return_if_fail (GTK_IS_TIMELINE (timeline)); - - priv = timeline->priv; - - if (!priv->running) - { - if (priv->screen) - { - settings = gtk_settings_get_for_screen (priv->screen); - g_object_get (settings, "gtk-enable-animations", &enable_animations, NULL); - } - - priv->animations_enabled = enable_animations; - - priv->running = TRUE; - gtk_timeline_start_running (timeline); - - g_signal_emit (timeline, signals [STARTED], 0); - } -} - -/** - * gtk_timeline_pause: - * @timeline: A #GtkTimeline - * - * Pauses the timeline. - */ -void -gtk_timeline_pause (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_if_fail (GTK_IS_TIMELINE (timeline)); - - priv = timeline->priv; - - if (priv->running) - { - gtk_timeline_stop_running (timeline); - priv->running = FALSE; - - g_signal_emit (timeline, signals [PAUSED], 0); - } -} - -/** - * gtk_timeline_rewind: - * @timeline: A #GtkTimeline - * - * Rewinds the timeline. - */ -void -gtk_timeline_rewind (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_if_fail (GTK_IS_TIMELINE (timeline)); - - priv = timeline->priv; - - if (gtk_timeline_get_direction (timeline) != GTK_TIMELINE_DIRECTION_FORWARD) - priv->progress = priv->last_progress = 1.; - else - priv->progress = priv->last_progress = 0.; - - if (priv->running && priv->frame_clock) - priv->last_time = gdk_frame_clock_get_frame_time (priv->frame_clock); -} - -/** - * gtk_timeline_is_running: - * @timeline: A #GtkTimeline - * - * Returns whether the timeline is running or not. - * - * Return Value: %TRUE if the timeline is running - */ -gboolean -gtk_timeline_is_running (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_val_if_fail (GTK_IS_TIMELINE (timeline), FALSE); - - priv = timeline->priv; - - return priv->running; -} - -/** - * gtk_timeline_get_elapsed_time: - * @timeline: A #GtkTimeline - * - * Returns the elapsed time since the last GtkTimeline::frame signal - * - * Return Value: elapsed time in milliseconds since the last frame - */ -guint -gtk_timeline_get_elapsed_time (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 0); - - priv = timeline->priv; - return priv->elapsed_time; -} - -/** - * gtk_timeline_get_loop: - * @timeline: A #GtkTimeline - * - * Returns whether the timeline loops to the - * beginning when it has reached the end. - * - * Return Value: %TRUE if the timeline loops - */ -gboolean -gtk_timeline_get_loop (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_val_if_fail (GTK_IS_TIMELINE (timeline), FALSE); - - priv = timeline->priv; - return priv->loop; -} - -/** - * gtk_timeline_set_loop: - * @timeline: A #GtkTimeline - * @loop: %TRUE to make the timeline loop - * - * Sets whether the timeline loops to the beginning - * when it has reached the end. - */ -void -gtk_timeline_set_loop (GtkTimeline *timeline, - gboolean loop) -{ - GtkTimelinePriv *priv; - - g_return_if_fail (GTK_IS_TIMELINE (timeline)); - - priv = timeline->priv; - - if (loop != priv->loop) - { - priv->loop = loop; - g_object_notify (G_OBJECT (timeline), "loop"); - } -} - -void -gtk_timeline_set_duration (GtkTimeline *timeline, - guint duration) -{ - GtkTimelinePriv *priv; - - g_return_if_fail (GTK_IS_TIMELINE (timeline)); - - priv = timeline->priv; - - if (duration != priv->duration) - { - priv->duration = duration; - g_object_notify (G_OBJECT (timeline), "duration"); - } -} - -guint -gtk_timeline_get_duration (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 0); - - priv = timeline->priv; - - return priv->duration; -} - -/** - * gtk_timeline_set_direction: - * @timeline: A #GtkTimeline - * @direction: direction - * - * Sets the direction of the timeline. - */ -void -gtk_timeline_set_direction (GtkTimeline *timeline, - GtkTimelineDirection direction) -{ - GtkTimelinePriv *priv; - - g_return_if_fail (GTK_IS_TIMELINE (timeline)); - - priv = timeline->priv; - priv->direction = direction; -} - -/* - * gtk_timeline_get_direction: - * @timeline: A #GtkTimeline - * - * Returns the direction of the timeline. - * - * Return Value: direction - */ -GtkTimelineDirection -gtk_timeline_get_direction (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_val_if_fail (GTK_IS_TIMELINE (timeline), GTK_TIMELINE_DIRECTION_FORWARD); - - priv = timeline->priv; - return priv->direction; -} - -void -gtk_timeline_set_frame_clock (GtkTimeline *timeline, - GdkFrameClock *frame_clock) -{ - GtkTimelinePriv *priv; - - g_return_if_fail (GTK_IS_TIMELINE (timeline)); - g_return_if_fail (frame_clock == NULL || GDK_IS_FRAME_CLOCK (frame_clock)); - - priv = timeline->priv; - - if (frame_clock == priv->frame_clock) - return; - - if (priv->running && priv->frame_clock) - gtk_timeline_stop_updating (timeline); - - if (priv->frame_clock) - g_object_unref (priv->frame_clock); - - priv->frame_clock = frame_clock; - - if (priv->frame_clock) - g_object_ref (priv->frame_clock); - - if (priv->running && priv->frame_clock) - gtk_timeline_start_updating (timeline); - - g_object_notify (G_OBJECT (timeline), "paint-clock"); -} - -/** - * gtk_timeline_get_frame_clock: - * - * Returns: (transfer none): - */ -GdkFrameClock * -gtk_timeline_get_frame_clock (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_val_if_fail (GTK_IS_TIMELINE (timeline), NULL); - - priv = timeline->priv; - return priv->frame_clock; -} - -void -gtk_timeline_set_screen (GtkTimeline *timeline, - GdkScreen *screen) -{ - GtkTimelinePriv *priv; - - g_return_if_fail (GTK_IS_TIMELINE (timeline)); - g_return_if_fail (screen == NULL || GDK_IS_SCREEN (screen)); - - priv = timeline->priv; - - if (screen == priv->screen) - return; - - if (priv->screen) - g_object_unref (priv->screen); - - priv->screen = screen; - - if (priv->screen) - g_object_ref (priv->screen); - - g_object_notify (G_OBJECT (timeline), "screen"); -} - -/** - * gtk_timeline_get_screen: - * - * Returns: (transfer none): - */ -GdkScreen * -gtk_timeline_get_screen (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_val_if_fail (GTK_IS_TIMELINE (timeline), NULL); - - priv = timeline->priv; - return priv->screen; -} -void -gtk_timeline_set_widget (GtkTimeline *timeline, - GtkWidget *widget) -{ - GtkTimelinePriv *priv; - - g_return_if_fail (GTK_IS_TIMELINE (timeline)); - g_return_if_fail (widget == NULL || GTK_IS_WIDGET (widget)); - - priv = timeline->priv; - - if (widget == priv->widget) - return; - - if (priv->running) - gtk_timeline_stop_running (timeline); - - if (priv->widget) - g_object_unref (priv->widget); - - priv->widget = widget; - - if (priv->widget) - g_object_ref (widget); - - if (priv->running) - gtk_timeline_start_running (timeline); - - g_object_notify (G_OBJECT (timeline), "widget"); -} - -/** - * gtk_timeline_get_widget: - * - * Returns: (transfer none): - */ -GtkWidget * -gtk_timeline_get_widget (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_val_if_fail (GTK_IS_TIMELINE (timeline), NULL); - - priv = timeline->priv; - return priv->widget; -} - -gdouble -gtk_timeline_get_progress (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 0.); - - priv = timeline->priv; - return calculate_progress (priv->progress, priv->progress_type); -} - -GtkTimelineProgressType -gtk_timeline_get_progress_type (GtkTimeline *timeline) -{ - GtkTimelinePriv *priv; - - g_return_val_if_fail (GTK_IS_TIMELINE (timeline), GTK_TIMELINE_PROGRESS_LINEAR); - - priv = timeline->priv; - return priv->progress_type; -} - -void -gtk_timeline_set_progress_type (GtkTimeline *timeline, - GtkTimelineProgressType progress_type) -{ - GtkTimelinePriv *priv; - - g_return_if_fail (GTK_IS_TIMELINE (timeline)); - - priv = timeline->priv; - priv->progress_type = progress_type; -} diff --git a/gtk/gtktimeline.h b/gtk/gtktimeline.h deleted file mode 100644 index 5a69e43e5f..0000000000 --- a/gtk/gtktimeline.h +++ /dev/null @@ -1,119 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 2007 Carlos Garnacho - * - * 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 . - */ - -#ifndef __GTK_TIMELINE_H__ -#define __GTK_TIMELINE_H__ - -#include -#include -#include -#include - -G_BEGIN_DECLS - -#define GTK_TYPE_TIMELINE (gtk_timeline_get_type ()) -#define GTK_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TIMELINE, GtkTimeline)) -#define GTK_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TIMELINE, GtkTimelineClass)) -#define GTK_IS_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TIMELINE)) -#define GTK_IS_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TIMELINE)) -#define GTK_TIMELINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TIMELINE, GtkTimelineClass)) - -typedef struct GtkTimeline GtkTimeline; -typedef struct GtkTimelineClass GtkTimelineClass; - -typedef enum { - GTK_TIMELINE_DIRECTION_FORWARD, - GTK_TIMELINE_DIRECTION_BACKWARD -} GtkTimelineDirection; - -typedef enum { - GTK_TIMELINE_PROGRESS_LINEAR, - GTK_TIMELINE_PROGRESS_EASE, - GTK_TIMELINE_PROGRESS_EASE_IN, - GTK_TIMELINE_PROGRESS_EASE_OUT, - GTK_TIMELINE_PROGRESS_EASE_IN_OUT -} GtkTimelineProgressType; - -struct GtkTimeline -{ - GObject parent_instance; - gpointer priv; -}; - -struct GtkTimelineClass -{ - GObjectClass parent_class; - - void (* started) (GtkTimeline *timeline); - void (* finished) (GtkTimeline *timeline); - void (* paused) (GtkTimeline *timeline); - - void (* frame) (GtkTimeline *timeline, - gdouble progress); - - void (* __gtk_reserved1) (void); - void (* __gtk_reserved2) (void); - void (* __gtk_reserved3) (void); - void (* __gtk_reserved4) (void); -}; - - -GType gtk_timeline_get_type (void) G_GNUC_CONST; - -GtkTimeline * gtk_timeline_new (GtkWidget *widget, - guint duration); - -void gtk_timeline_start (GtkTimeline *timeline); -void gtk_timeline_pause (GtkTimeline *timeline); -void gtk_timeline_rewind (GtkTimeline *timeline); - -gboolean gtk_timeline_is_running (GtkTimeline *timeline); -guint gtk_timeline_get_elapsed_time (GtkTimeline *timeline); - -gboolean gtk_timeline_get_loop (GtkTimeline *timeline); -void gtk_timeline_set_loop (GtkTimeline *timeline, - gboolean loop); - -guint gtk_timeline_get_duration (GtkTimeline *timeline); -void gtk_timeline_set_duration (GtkTimeline *timeline, - guint duration); - -GdkFrameClock * gtk_timeline_get_frame_clock (GtkTimeline *timeline); -void gtk_timeline_set_frame_clock (GtkTimeline *timeline, - GdkFrameClock *frame_clock); - -GdkScreen * gtk_timeline_get_screen (GtkTimeline *timeline); -void gtk_timeline_set_screen (GtkTimeline *timeline, - GdkScreen *screen); - -GtkWidget * gtk_timeline_get_widget (GtkTimeline *timeline); -void gtk_timeline_set_widget (GtkTimeline *timeline, - GtkWidget *widget); - -GtkTimelineDirection gtk_timeline_get_direction (GtkTimeline *timeline); -void gtk_timeline_set_direction (GtkTimeline *timeline, - GtkTimelineDirection direction); - -gdouble gtk_timeline_get_progress (GtkTimeline *timeline); - -GtkTimelineProgressType gtk_timeline_get_progress_type (GtkTimeline *timeline); -void gtk_timeline_set_progress_type (GtkTimeline *timeline, - GtkTimelineProgressType progress_type); - -G_END_DECLS - -#endif /* _GTK_TIMELINE_H__ */ diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 1c7e538245..4b460661ec 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -410,7 +410,7 @@ struct _GtkWidgetPrivate GtkWidget *parent; /* Animations and other things to update on clock ticks */ - GList *frame_clock_targets; + GList *tick_callbacks; #ifdef G_ENABLE_DEBUG /* Number of gtk_widget_push_verify_invariants () */ @@ -713,6 +713,10 @@ static void gtk_widget_set_device_enabled_internal (GtkWidget *widget, GdkDevice *device, gboolean recurse, gboolean enabled); + +static void gtk_widget_on_frame_clock_update (GdkFrameClock *frame_clock, + GtkWidget *widget); + static gboolean event_window_is_still_viewable (GdkEvent *event); static void gtk_cairo_set_event (cairo_t *cr, GdkEventExpose *event); @@ -4508,6 +4512,216 @@ gtk_widget_update_devices_mask (GtkWidget *widget, gtk_widget_set_device_enabled_internal (widget, GDK_DEVICE (l->data), recurse, TRUE); } +typedef struct _GtkTickCallbackInfo GtkTickCallbackInfo; + +struct _GtkTickCallbackInfo +{ + guint refcount; + + guint id; + GtkTickCallback callback; + gpointer user_data; + GDestroyNotify notify; + + guint destroyed : 1; +}; + +static void +ref_tick_callback_info (GtkTickCallbackInfo *info) +{ + info->refcount++; +} + +static void +unref_tick_callback_info (GtkWidget *widget, + GtkTickCallbackInfo *info, + GList *link) +{ + GtkWidgetPrivate *priv = widget->priv; + + info->refcount--; + if (info->refcount == 0) + { + priv->tick_callbacks = g_list_delete_link (priv->tick_callbacks, link); + if (info->notify) + info->notify (info->user_data); + g_slice_free (GtkTickCallbackInfo, info); + } + + if (priv->tick_callbacks == NULL && priv->realized) + { + GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (widget); + g_signal_handlers_disconnect_by_func (frame_clock, + (gpointer) gtk_widget_on_frame_clock_update, + widget); + } +} + +static void +destroy_tick_callback_info (GtkWidget *widget, + GtkTickCallbackInfo *info, + GList *link) +{ + if (!info->destroyed) + { + info->destroyed = TRUE; + unref_tick_callback_info (widget, info, link); + } +} + +static void +gtk_widget_on_frame_clock_update (GdkFrameClock *frame_clock, + GtkWidget *widget) +{ + GtkWidgetPrivate *priv = widget->priv; + GList *l; + + for (l = priv->tick_callbacks; l;) + { + GtkTickCallbackInfo *info = l->data; + GList *next; + + ref_tick_callback_info (info); + if (!info->destroyed) + { + if (!info->callback (widget, + frame_clock, + info->user_data)) + { + destroy_tick_callback_info (widget, info, l); + } + } + + next = l->next; + unref_tick_callback_info (widget, info, l); + l = next; + } + + if (priv->tick_callbacks != NULL) + gdk_frame_clock_request_phase (frame_clock, + GDK_FRAME_CLOCK_PHASE_UPDATE); +} + +static guint tick_callback_id; + +/** + * gtk_widget_add_tick_callback: + * @widget: a #GtkWidget + * @callback: function to call for updating animations + * @user_data: data to pass to @callback + * @notify: function to call to free @user_data when the callback is removed. + * + * Queues a animation frame update and adds a callback to be called + * before each frame. Until the tick callback is removed, it will be + * called frequently (usually at the frame rate of the output device + * or as quickly as the application an be repainted, whichever is + * slower). For this reason, is most suitable for handling graphics + * that change every frame or every few frames. The tick callback does + * not automatically imply a relayout or repaint. If you want a + * repaint or relayout, and aren't changing widget properties that + * would trigger that (for example, changing the text of a #GtkLabel), + * then you will have to call gtk_widget_queue_resize() or + * gtk_widget_queue_draw_area() yourself. + * + * gtk_frame_clock_get_frame_time() should generally be used for timing + * continuous animations and + * gtk_frame_timings_get_predicted_presentation_time() if you are + * trying to display isolated frames particular times. + * + * This is a more convenient alternative to connecting directly to the + * ::update signal of GdkFrameClock, since you don't have to worry about + * when a #GdkFrameClock is assigned to a widget. + */ +guint +gtk_widget_add_tick_callback (GtkWidget *widget, + GtkTickCallback callback, + gpointer user_data, + GDestroyNotify notify) +{ + GtkWidgetPrivate *priv; + GtkTickCallbackInfo *info; + + g_return_val_if_fail (GTK_IS_WIDGET (widget), 0); + + priv = widget->priv; + + if (priv->tick_callbacks == NULL && priv->realized) + { + GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (widget); + g_signal_connect (frame_clock, "update", + G_CALLBACK (gtk_widget_on_frame_clock_update), + widget); + gdk_frame_clock_request_phase (frame_clock, + GDK_FRAME_CLOCK_PHASE_UPDATE); + } + + info = g_slice_new (GtkTickCallbackInfo); + + info->refcount = 1; + info->id = ++tick_callback_id; + info->callback = callback; + info->user_data = user_data; + info->notify = notify; + + priv->tick_callbacks = g_list_prepend (priv->tick_callbacks, + info); + + return info->id; +} + +void +gtk_widget_remove_tick_callback (GtkWidget *widget, + guint id) +{ + GtkWidgetPrivate *priv; + GList *l; + + g_return_if_fail (GTK_IS_WIDGET (widget)); + + priv = widget->priv; + + for (l = priv->tick_callbacks; l; l = l->next) + { + GtkTickCallbackInfo *info = l->data; + if (info->id == id) + destroy_tick_callback_info (widget, info, l); + } +} + +static void +gtk_widget_connect_frame_clock (GtkWidget *widget, + GdkFrameClock *frame_clock) +{ + GtkWidgetPrivate *priv = widget->priv; + + if (priv->tick_callbacks != NULL) + { + g_signal_connect (frame_clock, "update", + G_CALLBACK (gtk_widget_on_frame_clock_update), + widget); + gdk_frame_clock_request_phase (frame_clock, + GDK_FRAME_CLOCK_PHASE_UPDATE); + } + + if (priv->context) + gtk_style_context_set_frame_clock (priv->context, frame_clock); +} + +static void +gtk_widget_disconnect_frame_clock (GtkWidget *widget, + GdkFrameClock *frame_clock) +{ + GtkWidgetPrivate *priv = widget->priv; + + if (priv->tick_callbacks) + g_signal_handlers_disconnect_by_func (frame_clock, + (gpointer) gtk_widget_on_frame_clock_update, + widget); + + if (priv->context) + gtk_style_context_set_frame_clock (priv->context, NULL); +} + /** * gtk_widget_realize: * @widget: a #GtkWidget @@ -4536,7 +4750,6 @@ gtk_widget_realize (GtkWidget *widget) { GtkWidgetPrivate *priv; cairo_region_t *region; - GList *tmp_list; g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (widget->priv->anchored || @@ -4592,11 +4805,8 @@ gtk_widget_realize (GtkWidget *widget) if (GTK_IS_CONTAINER (widget)) _gtk_container_maybe_start_idle_sizer (GTK_CONTAINER (widget)); - for (tmp_list = priv->frame_clock_targets; tmp_list; tmp_list = tmp_list->next) - { - GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (widget); - gdk_frame_clock_target_set_clock (tmp_list->data, frame_clock); - } + gtk_widget_connect_frame_clock (widget, + gtk_widget_get_frame_clock (widget)); gtk_widget_pop_verify_invariants (widget); } @@ -4630,6 +4840,9 @@ gtk_widget_unrealize (GtkWidget *widget) if (widget->priv->mapped) gtk_widget_unmap (widget); + gtk_widget_disconnect_frame_clock (widget, + gtk_widget_get_frame_clock (widget)); + g_signal_emit (widget, widget_signals[UNREALIZE], 0); g_assert (!widget->priv->mapped); gtk_widget_set_realized (widget, FALSE); @@ -4817,7 +5030,7 @@ gtk_widget_queue_resize_no_redraw (GtkWidget *widget) * Unrealized widgets do not have a frame clock. * * Since: 3.0 - * Return value: a #GdkFrameClock (or #NULL if widget is unrealized) + * Return value: (transfer none): a #GdkFrameClock (or #NULL if widget is unrealized) */ GdkFrameClock* gtk_widget_get_frame_clock (GtkWidget *widget) @@ -4826,10 +5039,16 @@ gtk_widget_get_frame_clock (GtkWidget *widget) if (widget->priv->realized) { - GdkWindow *window; - - window = gtk_widget_get_window (widget); + /* We use gtk_widget_get_toplevel() here to make it explicit that + * the frame clock is a property of the toplevel that a widget + * is anchored to; gdk_window_get_toplevel() will go up the + * hierarchy anyways, but should squash any funny business with + * reparenting windows and widgets. + */ + GtkWidget *toplevel = gtk_widget_get_toplevel (widget); + GdkWindow *window = gtk_widget_get_window (toplevel); g_assert (window != NULL); + return gdk_window_get_frame_clock (window); } else @@ -8514,6 +8733,17 @@ gtk_widget_propagate_hierarchy_changed_recurse (GtkWidget *widget, priv->anchored = new_anchored; + /* This can only happen with gtk_widget_reparent() */ + if (priv->realized) + { + if (new_anchored) + gtk_widget_connect_frame_clock (widget, + gtk_widget_get_frame_clock (widget)); + else + gtk_widget_disconnect_frame_clock (widget, + gtk_widget_get_frame_clock (info->previous_toplevel)); + } + g_signal_emit (widget, widget_signals[HIERARCHY_CHANGED], 0, info->previous_toplevel); do_screen_change (widget, info->previous_screen, info->new_screen); @@ -10522,6 +10752,7 @@ gtk_widget_real_destroy (GtkWidget *object) /* gtk_object_destroy() will already hold a refcount on object */ GtkWidget *widget = GTK_WIDGET (object); GtkWidgetPrivate *priv = widget->priv; + GList *l; if (GTK_WIDGET_GET_CLASS (widget)->priv->accessible_type != GTK_TYPE_ACCESSIBLE) { @@ -10543,9 +10774,12 @@ gtk_widget_real_destroy (GtkWidget *object) gtk_grab_remove (widget); - g_list_foreach (priv->frame_clock_targets, (GFunc)g_object_unref, NULL); - g_list_free (priv->frame_clock_targets); - priv->frame_clock_targets = NULL; + for (l = priv->tick_callbacks; l;) + { + GList *next = l->next; + destroy_tick_callback_info (widget, l->data, l); + l = next; + } if (priv->style) g_object_unref (priv->style); @@ -14461,6 +14695,7 @@ gtk_widget_get_style_context (GtkWidget *widget) if (G_UNLIKELY (priv->context == NULL)) { GdkScreen *screen; + GdkFrameClock *frame_clock; priv->context = gtk_style_context_new (); @@ -14470,6 +14705,10 @@ gtk_widget_get_style_context (GtkWidget *widget) if (screen) gtk_style_context_set_screen (priv->context, screen); + frame_clock = gtk_widget_get_frame_clock (widget); + if (frame_clock) + gtk_style_context_set_frame_clock (priv->context, frame_clock); + if (priv->parent) gtk_style_context_set_parent (priv->context, gtk_widget_get_style_context (priv->parent)); @@ -14596,65 +14835,3 @@ gtk_widget_insert_action_group (GtkWidget *widget, else g_action_muxer_remove (muxer, name); } - -/** - * gtk_widget_add_frame_clock_target: - * @widget: a #GtkWidget - * @target: the #GdkClockTarget - * - * Associates a #GdkClockTarget with the widget. When the widget - * is realized and gets a #GdkFrameClock the clock target will be - * added to that frame clock. - */ -void -gtk_widget_add_frame_clock_target (GtkWidget *widget, - GdkFrameClockTarget *target) -{ - GtkWidgetPrivate *priv; - priv = widget->priv; - - g_return_if_fail (GTK_IS_WIDGET (widget)); - g_return_if_fail (GDK_IS_FRAME_CLOCK_TARGET (target)); - - priv->frame_clock_targets = g_list_prepend (priv->frame_clock_targets, target); - g_object_ref (target); - - if (gtk_widget_get_realized (widget)) - { - GdkFrameClock *clock; - clock = gtk_widget_get_frame_clock (widget); - gdk_frame_clock_target_set_clock (target, clock); - } -} - -/** - * gtk_widget_remove_frame_clock_target: - * @widget: a #GtkWidget - * @target: the #GdkClockTarget - * - * Removes a #GdkClockTarget previously added with - * gtk_widget_add_frame_clock_target. - */ -void -gtk_widget_remove_frame_clock_target (GtkWidget *widget, - GdkFrameClockTarget *target) -{ - GtkWidgetPrivate *priv; - GList *tmp_list; - - g_return_if_fail (GTK_IS_WIDGET (widget)); - g_return_if_fail (GDK_IS_FRAME_CLOCK_TARGET (target)); - - priv = widget->priv; - - tmp_list = g_list_find (priv->frame_clock_targets, target); - if (tmp_list == NULL) - return; - - priv->frame_clock_targets = g_list_delete_link (priv->frame_clock_targets, tmp_list); - - if (gtk_widget_get_realized (widget)) - gdk_frame_clock_target_set_clock (target, NULL); - - g_object_unref (target); -} diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index 9f12bf94cb..c082c13510 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -86,6 +86,21 @@ typedef GdkRectangle GtkAllocation; typedef void (*GtkCallback) (GtkWidget *widget, gpointer data); +/** + * GtkTickCallback: + * @widget: the widget + * @frame_clock: the frame clock for the widget (same as calling gtk_widget_get_frame_clock()) + * @user_data: user data passed to gtk_widget_add_tick_callback(). + * + * Callback type for adding a function to update animations. See gtk_widget_add_tick_callback(). + * + * Returns: %TRUE if the tick callback should continue to be called, + * %FALSE if the tick callback should be removed. + */ +typedef gboolean (*GtkTickCallback) (GtkWidget *widget, + GdkFrameClock *frame_clock, + gpointer user_data); + /** * GtkRequisition: * @width: the widget's desired width @@ -905,12 +920,17 @@ void gtk_widget_insert_action_group (GtkWidg const gchar *name, GActionGroup *group); -GDK_AVAILABLE_IN_3_2 -void gtk_widget_add_frame_clock_target (GtkWidget *widget, - GdkFrameClockTarget *target); -GDK_AVAILABLE_IN_3_2 -void gtk_widget_remove_frame_clock_target (GtkWidget *widget, - GdkFrameClockTarget *target); + + +GDK_AVAILABLE_IN_3_8 +guint gtk_widget_add_tick_callback (GtkWidget *widget, + GtkTickCallback callback, + gpointer user_data, + GDestroyNotify notify); + +GDK_AVAILABLE_IN_3_8 +void gtk_widget_remove_tick_callback (GtkWidget *widget, + guint id); G_END_DECLS diff --git a/tests/animated-resizing.c b/tests/animated-resizing.c index f2bbc1013c..9aaa3662cf 100644 --- a/tests/animated-resizing.c +++ b/tests/animated-resizing.c @@ -16,6 +16,7 @@ static GtkWidget *window; static int window_width = WIDTH, window_height = HEIGHT; +gint64 start_frame_time; static double angle; static int max_stats = -1; @@ -213,8 +214,7 @@ handle_frame_stats (GdkFrameHistory *frame_history) } static void -on_frame (GtkTimeline *timeline, - double progress) +on_frame (double progress) { GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (window); int jitter; @@ -241,11 +241,27 @@ on_frame (GtkTimeline *timeline, } static gboolean -on_map_event (GtkWidget *widget, - GdkEventAny *event, - GtkTimeline *timeline) +tick_callback (GtkWidget *widget, + GdkFrameClock *frame_clock, + gpointer user_data) { - gtk_timeline_start (timeline); + gint64 frame_time = gdk_frame_clock_get_frame_time (frame_clock); + double scaled_time; + + if (start_frame_time == 0) + start_frame_time = frame_time; + + scaled_time = (frame_time - start_frame_time) / (CYCLE_TIME * 1000000); + on_frame (scaled_time - floor (scaled_time)); + + return TRUE; +} + +static gboolean +on_map_event (GtkWidget *widget, + GdkEventAny *event) +{ + gtk_widget_add_tick_callback (window, tick_callback, NULL, NULL); return FALSE; } @@ -265,7 +281,6 @@ main(int argc, char **argv) GError *error = NULL; GdkScreen *screen; GdkRectangle monitor_bounds; - GtkTimeline *timeline; if (!gtk_init_with_args (&argc, &argv, "", options, NULL, &error)) @@ -291,15 +306,9 @@ main(int argc, char **argv) g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); - timeline = gtk_timeline_new (window, CYCLE_TIME * 1000); - gtk_timeline_set_loop (timeline, TRUE); - gtk_timeline_set_progress_type (timeline, GTK_TIMELINE_PROGRESS_LINEAR); - - g_signal_connect (timeline, "frame", - G_CALLBACK (on_frame), NULL); g_signal_connect (window, "map-event", - G_CALLBACK (on_map_event), timeline); - on_frame (timeline, 0.); + G_CALLBACK (on_map_event), NULL); + on_frame (0.); screen = gtk_widget_get_screen (window); gdk_screen_get_monitor_geometry (screen, From be22b9fbb9ecd683b9b41d64144460f41d07f248 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 30 Jan 2013 15:09:44 -0500 Subject: [PATCH 049/208] GdkWindow: make the frame clock an inherent property of the window Instead of making the frame clock a settable property of a window, make toplevel windows inherently have a frame clock when created (getting rid of the default frame clock.) We need to create or destroy frame clocks when reparenting a window to be a toplevel, or to not be a toplevel, but otherwise the frame clock for a window is immutable. --- gdk/gdkwindow.c | 187 ++++++++++++++-------------------------- gdk/gdkwindow.h | 3 +- gdk/x11/gdkwindow-x11.c | 34 ++++++-- gdk/x11/gdkwindow-x11.h | 1 + 4 files changed, 92 insertions(+), 133 deletions(-) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 38543ce123..c626b2c6b5 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -170,8 +170,7 @@ enum { enum { PROP_0, - PROP_CURSOR, - PROP_FRAME_CLOCK + PROP_CURSOR }; typedef enum { @@ -240,9 +239,8 @@ static void gdk_window_invalidate_rect_full (GdkWindow *window, static void _gdk_window_propagate_has_alpha_background (GdkWindow *window); static cairo_surface_t *gdk_window_ref_impl_surface (GdkWindow *window); -static void gdk_window_process_all_updates_internal (gboolean default_clock_only); - -static void gdk_ensure_default_frame_clock (void); +static void gdk_window_set_frame_clock (GdkWindow *window, + GdkFrameClock *clock); static guint signals[LAST_SIGNAL] = { 0 }; @@ -394,23 +392,6 @@ gdk_window_class_init (GdkWindowClass *klass) GDK_TYPE_CURSOR, G_PARAM_READWRITE)); - /** - * GdkWindow:paint-clock: - * - * The frame clock for a #GdkWindow, see #GdkFrameClock - * - * The frame clock remains the same for the lifetime of the window. - * - * Since: 3.0 - */ - g_object_class_install_property (object_class, - PROP_FRAME_CLOCK, - g_param_spec_object ("paint-clock", - P_("Frame clock"), - P_("Frame clock"), - GDK_TYPE_FRAME_CLOCK, - G_PARAM_READWRITE)); - /** * GdkWindow::pick-embedded-child: * @window: the window on which the signal is emitted @@ -623,10 +604,6 @@ gdk_window_set_property (GObject *object, gdk_window_set_cursor (window, g_value_get_object (value)); break; - case PROP_FRAME_CLOCK: - gdk_window_set_frame_clock (window, g_value_get_object (value)); - break; - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -647,10 +624,6 @@ gdk_window_get_property (GObject *object, g_value_set_object (value, gdk_window_get_cursor (window)); break; - case PROP_FRAME_CLOCK: - g_value_set_object (value, gdk_window_get_frame_clock (window)); - break; - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1496,6 +1469,12 @@ gdk_window_new (GdkWindow *parent, if (window->parent) window->parent->children = g_list_prepend (window->parent->children, window); + if (window->parent->window_type == GDK_WINDOW_ROOT) + { + GdkFrameClock *frame_clock = g_object_new (GDK_TYPE_FRAME_CLOCK_IDLE, NULL); + gdk_window_set_frame_clock (window, frame_clock); + } + native = FALSE; if (window->parent->window_type == GDK_WINDOW_ROOT) native = TRUE; /* Always use native windows for toplevels */ @@ -1746,6 +1725,27 @@ gdk_window_reparent (GdkWindow *window, } } + /* If we changed the window type, we might have to set or + * unset the frame clock on the window + */ + if (GDK_WINDOW_TYPE (new_parent) == GDK_WINDOW_ROOT && + GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN) + { + if (window->frame_clock == NULL) + { + GdkFrameClock *frame_clock = g_object_new (GDK_TYPE_FRAME_CLOCK_IDLE, NULL); + gdk_window_set_frame_clock (window, frame_clock); + } + } + else + { + if (window->frame_clock != NULL) + { + g_object_run_dispose (G_OBJECT (window->frame_clock)); + gdk_window_set_frame_clock (window, NULL); + } + } + /* We might have changed window type for a native windows, so we need to change the event mask too. */ if (gdk_window_has_impl (window)) @@ -2065,6 +2065,12 @@ _gdk_window_destroy_hierarchy (GdkWindow *window, } } + if (window->frame_clock) + { + g_object_run_dispose (G_OBJECT (window->frame_clock)); + gdk_window_set_frame_clock (window, NULL); + } + gdk_window_free_paint_stack (window); if (window->background) @@ -3809,7 +3815,6 @@ gdk_cairo_create (GdkWindow *window) /* Code for dirty-region queueing */ static GSList *update_windows = NULL; -static GdkFrameClock *_gdk_default_frame_clock = NULL; static gboolean debug_updates = FALSE; static inline gboolean @@ -3908,27 +3913,6 @@ gdk_window_remove_update_window (GdkWindow *window) update_windows = g_slist_remove (update_windows, window); } -static void -gdk_window_paint_default_clock_updates (gpointer data) -{ - gdk_window_process_all_updates_internal (TRUE); -} - -static void -gdk_ensure_default_frame_clock (void) -{ - if (_gdk_default_frame_clock == NULL) - { - _gdk_default_frame_clock = g_object_new (GDK_TYPE_FRAME_CLOCK_IDLE, - NULL); - - g_signal_connect (G_OBJECT (_gdk_default_frame_clock), - "paint", - G_CALLBACK (gdk_window_paint_default_clock_updates), - NULL); - } -} - static gboolean gdk_window_is_toplevel_frozen (GdkWindow *window) { @@ -3942,13 +3926,20 @@ gdk_window_is_toplevel_frozen (GdkWindow *window) static void gdk_window_schedule_update (GdkWindow *window) { + GdkFrameClock *frame_clock; + if (window && (window->update_freeze_count || gdk_window_is_toplevel_frozen (window))) return; - gdk_frame_clock_request_phase (gdk_window_get_frame_clock (window), - GDK_FRAME_CLOCK_PHASE_PAINT); + /* If there's no frame clock (a foreign window), then the invalid + * region will just stick around unless gdk_window_process_updates() + * is called. */ + frame_clock = gdk_window_get_frame_clock (window); + if (frame_clock) + gdk_frame_clock_request_phase (gdk_window_get_frame_clock (window), + GDK_FRAME_CLOCK_PHASE_PAINT); } void @@ -4261,19 +4252,6 @@ after_process_all_updates (void) g_slist_free (displays); } -/** - * gdk_window_process_all_updates: - * - * Calls gdk_window_process_updates() for all windows (see #GdkWindow) - * in the application. - * - **/ -void -gdk_window_process_all_updates (void) -{ - gdk_window_process_all_updates_internal (FALSE); -} - /* Currently it is not possible to override * gdk_window_process_all_updates in the same manner as * gdk_window_process_updates and gdk_window_invalidate_maybe_recurse @@ -4284,8 +4262,15 @@ gdk_window_process_all_updates (void) * displays and call the mehod. */ -static void -gdk_window_process_all_updates_internal (gboolean default_clock_only) +/** + * gdk_window_process_all_updates: + * + * Calls gdk_window_process_updates() for all windows (see #GdkWindow) + * in the application. + * + **/ +void +gdk_window_process_all_updates (void) { GSList *old_update_windows = update_windows; GSList *tmp_list = update_windows; @@ -4316,8 +4301,7 @@ gdk_window_process_all_updates_internal (gboolean default_clock_only) if (!GDK_WINDOW_DESTROYED (window)) { if (window->update_freeze_count || - gdk_window_is_toplevel_frozen (window) || - (default_clock_only && window->frame_clock != NULL)) + gdk_window_is_toplevel_frozen (window)) gdk_window_add_update_window (window); else gdk_window_process_updates_internal (window); @@ -11635,38 +11619,17 @@ gdk_window_resume_events (GdkFrameClock *clock, _gdk_display_unpause_events (display); } -/** - * gdk_window_set_frame_clock: - * @window: window to set frame clock on - * @clock: the clock - * - * Sets the frame clock for the window. The frame clock for a window - * cannot be changed while the window is mapped. Set the frame - * clock to #NULL to use the default frame clock. (By default the - * frame clock comes from the window's parent or is a global default - * frame clock.) - * - * Since: 3.0 - */ -void +static void gdk_window_set_frame_clock (GdkWindow *window, GdkFrameClock *clock) { g_return_if_fail (GDK_IS_WINDOW (window)); g_return_if_fail (clock == NULL || GDK_IS_FRAME_CLOCK (clock)); - g_return_if_fail (!GDK_WINDOW_IS_MAPPED (window)); + g_return_if_fail (clock == NULL || gdk_window_is_toplevel (window)); if (clock == window->frame_clock) return; - /* If we are using our parent's clock, then the parent will repaint - * us when that clock fires. If we are using the default clock, then - * it does a gdk_window_process_all_updates() which will repaint us - * when the clock fires. If we are using our own clock, then we have - * to connect to "paint" on it ourselves and paint ourselves and - * any child windows. - */ - if (clock) { g_object_ref (clock); @@ -11699,12 +11662,6 @@ gdk_window_set_frame_clock (GdkWindow *window, } window->frame_clock = clock; - g_object_notify (G_OBJECT (window), "paint-clock"); - - /* We probably should recurse child windows and emit notify on their - * paint-clock properties also, and we should emit notify when a - * window is first parented. - */ } /** @@ -11712,36 +11669,20 @@ gdk_window_set_frame_clock (GdkWindow *window, * @window: window to get frame clock for * * Gets the frame clock for the window. The frame clock for a window - * never changes while the window is mapped. It may be changed at - * other times. + * never changes unless the window is reparented to a new toplevel + * window. * - * Since: 3.0 + * Since: 3.8 * Return value: (transfer none): the frame clock */ GdkFrameClock* gdk_window_get_frame_clock (GdkWindow *window) { + GdkWindow *toplevel; + g_return_val_if_fail (GDK_IS_WINDOW (window), NULL); - if (window->frame_clock != NULL) - { - /* Frame clock set explicitly on this window */ - return window->frame_clock; - } - else - { - GdkWindow *parent; + toplevel = gdk_window_get_toplevel (window); - /* parent's frame clock or default */ - parent = gdk_window_get_effective_parent (window); - if (parent != NULL) - { - return gdk_window_get_frame_clock (parent); - } - else - { - gdk_ensure_default_frame_clock (); - return _gdk_default_frame_clock; - } - } + return toplevel->frame_clock; } diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h index ef8bb5eb82..d2ee972cbb 100644 --- a/gdk/gdkwindow.h +++ b/gdk/gdkwindow.h @@ -905,8 +905,7 @@ void gdk_window_set_support_multidevice (GdkWindow *window, gboolean gdk_window_get_support_multidevice (GdkWindow *window); /* Frame clock */ -void gdk_window_set_frame_clock (GdkWindow *window, - GdkFrameClock *clock); +GDK_AVAILABLE_IN_3_8 GdkFrameClock* gdk_window_get_frame_clock (GdkWindow *window); G_END_DECLS diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 7541e59531..6bb1ee2caa 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -35,7 +35,6 @@ #include "gdkasync.h" #include "gdkeventsource.h" #include "gdkdisplay-x11.h" -#include "gdkframeclockidle.h" #include "gdkprivate-x11.h" #include @@ -964,6 +963,25 @@ on_frame_clock_after_paint (GdkFrameClock *clock, } +static void +connect_frame_clock (GdkWindow *window) +{ + GdkWindowImplX11 *impl; + + impl = GDK_WINDOW_IMPL_X11 (window->impl); + if (WINDOW_IS_TOPLEVEL (window) && !impl->frame_clock_connected) + { + GdkFrameClock *frame_clock = gdk_window_get_frame_clock (window); + + g_signal_connect (frame_clock, "before-paint", + G_CALLBACK (on_frame_clock_before_paint), window); + g_signal_connect (frame_clock, "after-paint", + G_CALLBACK (on_frame_clock_after_paint), window); + + impl->frame_clock_connected = TRUE; + } +} + void _gdk_x11_display_create_window_impl (GdkDisplay *display, GdkWindow *window, @@ -976,7 +994,6 @@ _gdk_x11_display_create_window_impl (GdkDisplay *display, GdkWindowImplX11 *impl; GdkX11Screen *x11_screen; GdkX11Display *display_x11; - GdkFrameClock *clock; Window xparent; Visual *xvisual; @@ -1122,12 +1139,7 @@ _gdk_x11_display_create_window_impl (GdkDisplay *display, GDK_WINDOW_XID (window), event_mask, StructureNotifyMask | PropertyChangeMask); - clock = g_object_new (GDK_TYPE_FRAME_CLOCK_IDLE, NULL); - gdk_window_set_frame_clock (window, clock); - g_signal_connect (clock, "before-paint", - G_CALLBACK (on_frame_clock_before_paint), window); - g_signal_connect (clock, "after-paint", - G_CALLBACK (on_frame_clock_after_paint), window); + connect_frame_clock (window); if (GDK_WINDOW_TYPE (window) != GDK_WINDOW_CHILD) gdk_window_freeze_toplevel_updates_libgtk_only (window); @@ -1895,6 +1907,12 @@ gdk_window_x11_reparent (GdkWindow *window, _gdk_x11_window_tmp_reset_parent_bg (window); _gdk_x11_window_tmp_reset_bg (window, TRUE); + if (WINDOW_IS_TOPLEVEL (window)) + connect_frame_clock (window); + else + /* old frame clock was disposed, our signal handlers removed */ + impl->frame_clock_connected = FALSE; + if (GDK_WINDOW_TYPE (new_parent) == GDK_WINDOW_FOREIGN) new_parent = gdk_screen_get_root_window (GDK_WINDOW_SCREEN (window)); diff --git a/gdk/x11/gdkwindow-x11.h b/gdk/x11/gdkwindow-x11.h index aefc88262c..9982a5ee1c 100644 --- a/gdk/x11/gdkwindow-x11.h +++ b/gdk/x11/gdkwindow-x11.h @@ -72,6 +72,7 @@ struct _GdkWindowImplX11 guint no_bg : 1; /* Set when the window background is temporarily * unset during resizing and scaling */ guint override_redirect : 1; + guint frame_clock_connected : 1; cairo_surface_t *cairo_surface; From 5f2d1654a5085fb64af96310e297db4a7c4a39c2 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Tue, 12 Feb 2013 15:02:21 -0500 Subject: [PATCH 050/208] Change GdkFrameClock from an interface to a class It's unlikely that anyone will want to have, say, a GtkWidget that also acts as a GdkFrameClock, so an abstract base class is as flexible as making GdkFrameClock an interface, but has advantages: - If we decide to never make implementing your own frame clock possible, we can remove the virtualization. - We can put functionality like history into the base class. - Avoids the oddity of a interface without a public interface VTable, which may cause problems for language bindings. --- gdk/Makefile.am | 1 + gdk/gdkframeclock.c | 74 ++++++++++++++++++++++++-------------- gdk/gdkframeclock.h | 44 +++++------------------ gdk/gdkframeclockidle.c | 62 ++++++++++++-------------------- gdk/gdkframeclockidle.h | 6 ++-- gdk/gdkframeclockprivate.h | 72 +++++++++++++++++++++++++++++++++++++ 6 files changed, 156 insertions(+), 103 deletions(-) create mode 100644 gdk/gdkframeclockprivate.h diff --git a/gdk/Makefile.am b/gdk/Makefile.am index 61aeb4bc7f..4ef63c02f0 100644 --- a/gdk/Makefile.am +++ b/gdk/Makefile.am @@ -105,6 +105,7 @@ gdk_private_headers = \ gdkdisplayprivate.h \ gdkdndprivate.h \ gdkframeclockidle.h \ + gdkframeclockprivate.h \ gdkscreenprivate.h \ gdkinternals.h \ gdkintl.h \ diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index 08789ebb04..8cdc1d109d 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -26,7 +26,7 @@ #include "config.h" -#include "gdkframeclock.h" +#include "gdkframeclockprivate.h" /** * SECTION:frameclock @@ -74,7 +74,7 @@ * time that doesn't have a lot to do with wall clock time. */ -G_DEFINE_INTERFACE (GdkFrameClock, gdk_frame_clock, G_TYPE_OBJECT) +G_DEFINE_ABSTRACT_TYPE (GdkFrameClock, gdk_frame_clock, G_TYPE_OBJECT) enum { FRAME_REQUESTED, @@ -90,9 +90,28 @@ enum { static guint signals[LAST_SIGNAL]; -static void -gdk_frame_clock_default_init (GdkFrameClockInterface *iface) +struct _GdkFrameClockPrivate { + GdkFrameHistory *history; +}; + +static void +gdk_frame_clock_finalize (GObject *object) +{ + GdkFrameClockPrivate *priv = GDK_FRAME_CLOCK (object)->priv; + + g_object_unref (priv->history); + + G_OBJECT_CLASS (gdk_frame_clock_parent_class)->finalize (object); +} + +static void +gdk_frame_clock_class_init (GdkFrameClockClass *klass) +{ + GObjectClass *gobject_class = (GObjectClass*) klass; + + gobject_class->finalize = gdk_frame_clock_finalize; + /** * GdkFrameClock::frame-requested: * @clock: the frame clock emitting the signal @@ -221,6 +240,21 @@ gdk_frame_clock_default_init (GdkFrameClockInterface *iface) NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + + g_type_class_add_private (klass, sizeof (GdkFrameClockPrivate)); +} + +static void +gdk_frame_clock_init (GdkFrameClock *clock) +{ + GdkFrameClockPrivate *priv; + + clock->priv = G_TYPE_INSTANCE_GET_PRIVATE (clock, + GDK_TYPE_FRAME_CLOCK, + GdkFrameClockPrivate); + priv = clock->priv; + + priv->history = gdk_frame_history_new (); } /** @@ -247,7 +281,7 @@ gdk_frame_clock_get_frame_time (GdkFrameClock *clock) { g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), 0); - return GDK_FRAME_CLOCK_GET_IFACE (clock)->get_frame_time (clock); + return GDK_FRAME_CLOCK_GET_CLASS (clock)->get_frame_time (clock); } /** @@ -270,7 +304,7 @@ gdk_frame_clock_request_phase (GdkFrameClock *clock, { g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); - GDK_FRAME_CLOCK_GET_IFACE (clock)->request_phase (clock, phase); + GDK_FRAME_CLOCK_GET_CLASS (clock)->request_phase (clock, phase); } @@ -279,7 +313,7 @@ gdk_frame_clock_freeze (GdkFrameClock *clock) { g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); - GDK_FRAME_CLOCK_GET_IFACE (clock)->freeze (clock); + GDK_FRAME_CLOCK_GET_CLASS (clock)->freeze (clock); } @@ -288,7 +322,7 @@ gdk_frame_clock_thaw (GdkFrameClock *clock) { g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); - GDK_FRAME_CLOCK_GET_IFACE (clock)->thaw (clock); + GDK_FRAME_CLOCK_GET_CLASS (clock)->thaw (clock); } /** @@ -303,9 +337,13 @@ gdk_frame_clock_thaw (GdkFrameClock *clock) GdkFrameHistory * gdk_frame_clock_get_history (GdkFrameClock *clock) { + GdkFrameClockPrivate *priv; + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), NULL); - return GDK_FRAME_CLOCK_GET_IFACE (clock)->get_history (clock); + priv = clock->priv; + + return priv->history; } /** @@ -324,7 +362,7 @@ gdk_frame_clock_get_requested (GdkFrameClock *clock) { g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), FALSE); - return GDK_FRAME_CLOCK_GET_IFACE (clock)->get_requested (clock); + return GDK_FRAME_CLOCK_GET_CLASS (clock)->get_requested (clock); } /** @@ -350,22 +388,6 @@ gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock, timeval->tv_usec = (time_ms % 1000) * 1000; } -/** - * gdk_frame_clock_frame_requested: - * @clock: the clock - * - * Emits the frame-requested signal. Used in implementations of the - * #GdkFrameClock interface. - */ -void -gdk_frame_clock_frame_requested (GdkFrameClock *clock) -{ - g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); - - g_signal_emit (G_OBJECT (clock), - signals[FRAME_REQUESTED], 0); -} - GdkFrameTimings * gdk_frame_clock_get_current_frame_timings (GdkFrameClock *clock) { diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index ba6a59f40a..608d74320b 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -35,13 +35,16 @@ G_BEGIN_DECLS -typedef struct _GdkFrameClock GdkFrameClock; -typedef struct _GdkFrameClockInterface GdkFrameClockInterface; +#define GDK_TYPE_FRAME_CLOCK (gdk_frame_clock_get_type ()) +#define GDK_FRAME_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_FRAME_CLOCK, GdkFrameClock)) +#define GDK_FRAME_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_FRAME_CLOCK, GdkFrameClockClass)) +#define GDK_IS_FRAME_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_FRAME_CLOCK)) +#define GDK_IS_FRAME_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_FRAME_CLOCK)) +#define GDK_FRAME_CLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_FRAME_CLOCK, GdkFrameClockClass)) -#define GDK_TYPE_FRAME_CLOCK (gdk_frame_clock_get_type ()) -#define GDK_FRAME_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_FRAME_CLOCK, GdkFrameClock)) -#define GDK_IS_FRAME_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_FRAME_CLOCK)) -#define GDK_FRAME_CLOCK_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GDK_TYPE_FRAME_CLOCK, GdkFrameClockInterface)) +typedef struct _GdkFrameClock GdkFrameClock; +typedef struct _GdkFrameClockPrivate GdkFrameClockPrivate; +typedef struct _GdkFrameClockClass GdkFrameClockClass; typedef enum { GDK_FRAME_CLOCK_PHASE_NONE = 0, @@ -54,32 +57,6 @@ typedef enum { GDK_FRAME_CLOCK_PHASE_AFTER_PAINT = 1 << 6 } GdkFrameClockPhase; -struct _GdkFrameClockInterface -{ - GTypeInterface base_iface; - - guint64 (* get_frame_time) (GdkFrameClock *clock); - - void (* request_phase) (GdkFrameClock *clock, - GdkFrameClockPhase phase); - GdkFrameClockPhase (* get_requested) (GdkFrameClock *clock); - - void (* freeze) (GdkFrameClock *clock); - void (* thaw) (GdkFrameClock *clock); - - GdkFrameHistory * (* get_history) (GdkFrameClock *clock); - - /* signals */ - /* void (* frame_requested) (GdkFrameClock *clock); */ - /* void (* flush_events) (GdkFrameClock *clock); */ - /* void (* before_paint) (GdkFrameClock *clock); */ - /* void (* update) (GdkFrameClock *clock); */ - /* void (* layout) (GdkFrameClock *clock); */ - /* void (* paint) (GdkFrameClock *clock); */ - /* void (* after_paint) (GdkFrameClock *clock); */ - /* void (* resume_events) (GdkFrameClock *clock); */ -}; - GType gdk_frame_clock_get_type (void) G_GNUC_CONST; guint64 gdk_frame_clock_get_frame_time (GdkFrameClock *clock); @@ -104,9 +81,6 @@ void gdk_frame_clock_get_refresh_info (GdkFrameClock *clock, GdkFrameTimings *gdk_frame_clock_get_current_frame_timings (GdkFrameClock *clock); -/* Signal emitters (used in frame clock implementations) */ -void gdk_frame_clock_frame_requested (GdkFrameClock *clock); - G_END_DECLS #endif /* __GDK_FRAME_CLOCK_H__ */ diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 47103703cd..6a35daacdc 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -27,6 +27,7 @@ #include "config.h" #include "gdkinternals.h" +#include "gdkframeclockprivate.h" #include "gdkframeclockidle.h" #include "gdk.h" @@ -34,7 +35,6 @@ struct _GdkFrameClockIdlePrivate { - GdkFrameHistory *history; GTimer *timer; /* timer_base is used to avoid ever going backward */ guint64 timer_base; @@ -56,11 +56,8 @@ static gboolean gdk_frame_clock_flush_idle (void *data); static gboolean gdk_frame_clock_paint_idle (void *data); static void gdk_frame_clock_idle_finalize (GObject *object); -static void gdk_frame_clock_idle_interface_init (GdkFrameClockInterface *iface); -G_DEFINE_TYPE_WITH_CODE (GdkFrameClockIdle, gdk_frame_clock_idle, G_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE (GDK_TYPE_FRAME_CLOCK, - gdk_frame_clock_idle_interface_init)) +G_DEFINE_TYPE (GdkFrameClockIdle, gdk_frame_clock_idle, GDK_TYPE_FRAME_CLOCK) static gint64 sleep_serial; static gint64 sleep_source_prepare_time; @@ -114,16 +111,6 @@ get_sleep_serial (void) return sleep_serial; } -static void -gdk_frame_clock_idle_class_init (GdkFrameClockIdleClass *klass) -{ - GObjectClass *gobject_class = (GObjectClass*) klass; - - gobject_class->finalize = gdk_frame_clock_idle_finalize; - - g_type_class_add_private (klass, sizeof (GdkFrameClockIdlePrivate)); -} - static void gdk_frame_clock_idle_init (GdkFrameClockIdle *frame_clock_idle) { @@ -134,7 +121,6 @@ gdk_frame_clock_idle_init (GdkFrameClockIdle *frame_clock_idle) GdkFrameClockIdlePrivate); priv = frame_clock_idle->priv; - priv->history = gdk_frame_history_new (); priv->timer = g_timer_new (); priv->freeze_count = 0; } @@ -235,7 +221,7 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) g_object_ref (clock_idle), (GDestroyNotify) g_object_unref); - gdk_frame_clock_frame_requested (GDK_FRAME_CLOCK (clock_idle)); + g_signal_emit_by_name (clock_idle, "frame-requested"); } } } @@ -288,6 +274,7 @@ gdk_frame_clock_paint_idle (void *data) GdkFrameClock *clock = GDK_FRAME_CLOCK (data); GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); GdkFrameClockIdlePrivate *priv = clock_idle->priv; + GdkFrameHistory *history = gdk_frame_clock_get_history (clock); gboolean skip_to_resume_events; GdkFrameTimings *timings = NULL; gint64 frame_counter = 0; @@ -301,8 +288,8 @@ gdk_frame_clock_paint_idle (void *data) if (priv->phase > GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT) { - frame_counter = gdk_frame_history_get_frame_counter (priv->history); - timings = gdk_frame_history_get_timings (priv->history, frame_counter); + frame_counter = gdk_frame_history_get_frame_counter (history); + timings = gdk_frame_history_get_timings (history, frame_counter); } if (!skip_to_resume_events) @@ -317,9 +304,9 @@ gdk_frame_clock_paint_idle (void *data) { priv->frame_time = compute_frame_time (clock_idle); - gdk_frame_history_begin_frame (priv->history); - frame_counter = gdk_frame_history_get_frame_counter (priv->history); - timings = gdk_frame_history_get_timings (priv->history, frame_counter); + gdk_frame_history_begin_frame (history); + frame_counter = gdk_frame_history_get_frame_counter (history); + timings = gdk_frame_history_get_timings (history, frame_counter); gdk_frame_timings_set_frame_time (timings, priv->frame_time); @@ -406,7 +393,7 @@ gdk_frame_clock_paint_idle (void *data) if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) { if (gdk_frame_timings_get_complete (timings)) - _gdk_frame_history_debug_print (priv->history, timings); + _gdk_frame_history_debug_print (history, timings); } #endif /* G_ENABLE_DEBUG */ @@ -501,24 +488,21 @@ gdk_frame_clock_idle_thaw (GdkFrameClock *clock) } } -static GdkFrameHistory * -gdk_frame_clock_idle_get_history (GdkFrameClock *clock) -{ - GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); - GdkFrameClockIdlePrivate *priv = clock_idle->priv; - - return priv->history; -} - static void -gdk_frame_clock_idle_interface_init (GdkFrameClockInterface *iface) +gdk_frame_clock_idle_class_init (GdkFrameClockIdleClass *klass) { - iface->get_frame_time = gdk_frame_clock_idle_get_frame_time; - iface->request_phase = gdk_frame_clock_idle_request_phase; - iface->get_requested = gdk_frame_clock_idle_get_requested; - iface->freeze = gdk_frame_clock_idle_freeze; - iface->thaw = gdk_frame_clock_idle_thaw; - iface->get_history = gdk_frame_clock_idle_get_history; + GObjectClass *gobject_class = (GObjectClass*) klass; + GdkFrameClockClass *frame_clock_class = (GdkFrameClockClass *)klass; + + gobject_class->finalize = gdk_frame_clock_idle_finalize; + + frame_clock_class->get_frame_time = gdk_frame_clock_idle_get_frame_time; + frame_clock_class->request_phase = gdk_frame_clock_idle_request_phase; + frame_clock_class->get_requested = gdk_frame_clock_idle_get_requested; + frame_clock_class->freeze = gdk_frame_clock_idle_freeze; + frame_clock_class->thaw = gdk_frame_clock_idle_thaw; + + g_type_class_add_private (klass, sizeof (GdkFrameClockIdlePrivate)); } GdkFrameClock * diff --git a/gdk/gdkframeclockidle.h b/gdk/gdkframeclockidle.h index f4815a9498..b76dd6677d 100644 --- a/gdk/gdkframeclockidle.h +++ b/gdk/gdkframeclockidle.h @@ -29,7 +29,7 @@ #ifndef __GDK_FRAME_CLOCK_IDLE_H__ #define __GDK_FRAME_CLOCK_IDLE_H__ -#include +#include "gdkframeclockprivate.h" G_BEGIN_DECLS @@ -47,7 +47,7 @@ typedef struct _GdkFrameClockIdleClass GdkFrameClockIdleClass; struct _GdkFrameClockIdle { - GObject parent_instance; + GdkFrameClock parent_instance; /*< private >*/ GdkFrameClockIdlePrivate *priv; @@ -55,7 +55,7 @@ struct _GdkFrameClockIdle struct _GdkFrameClockIdleClass { - GObjectClass parent_class; + GdkFrameClockClass parent_class; }; GType gdk_frame_clock_idle_get_type (void) G_GNUC_CONST; diff --git a/gdk/gdkframeclockprivate.h b/gdk/gdkframeclockprivate.h new file mode 100644 index 0000000000..6c01dd2c44 --- /dev/null +++ b/gdk/gdkframeclockprivate.h @@ -0,0 +1,72 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GTK+ Team and others 1997-2010. 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/. + */ + +/* Uninstalled header, internal to GDK */ + +#ifndef __GDK_FRAME_CLOCK_PRIVATE_H__ +#define __GDK_FRAME_CLOCK_PRIVATE_H__ + +#include + +G_BEGIN_DECLS + +typedef struct _GdkFrameClockIdlePrivate GdkFrameClockIdlePrivate; + +struct _GdkFrameClock +{ + GObject parent_instance; + + /*< private >*/ + GdkFrameClockPrivate *priv; +}; + +struct _GdkFrameClockClass +{ + GObjectClass parent_class; + + guint64 (* get_frame_time) (GdkFrameClock *clock); + + void (* request_phase) (GdkFrameClock *clock, + GdkFrameClockPhase phase); + GdkFrameClockPhase (* get_requested) (GdkFrameClock *clock); + + void (* freeze) (GdkFrameClock *clock); + void (* thaw) (GdkFrameClock *clock); + + /* signals */ + /* void (* frame_requested) (GdkFrameClock *clock); */ + /* void (* flush_events) (GdkFrameClock *clock); */ + /* void (* before_paint) (GdkFrameClock *clock); */ + /* void (* update) (GdkFrameClock *clock); */ + /* void (* layout) (GdkFrameClock *clock); */ + /* void (* paint) (GdkFrameClock *clock); */ + /* void (* after_paint) (GdkFrameClock *clock); */ + /* void (* resume_events) (GdkFrameClock *clock); */ +}; + +G_END_DECLS + +#endif /* __GDK_FRAME_CLOCK_PRIVATE_H__ */ From 515e5f74aadcef7d1d55f593fa16d9e3c1f3fb4b Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Tue, 12 Feb 2013 15:47:38 -0500 Subject: [PATCH 051/208] Merge GdkFrameHistory into GdkFrameClock Now that GdkFrameClock is a class, not interface, there's no real advantage to splitting the frame history into an aggregate object, so directly merge it into GdkFrameClock. --- gdk/Makefile.am | 2 - gdk/gdkframeclock.c | 187 ++++++++++++++++++++++++++++++------- gdk/gdkframeclock.h | 9 +- gdk/gdkframeclockidle.c | 12 +-- gdk/gdkframeclockprivate.h | 4 + gdk/gdkframehistory.c | 187 ------------------------------------- gdk/gdkframehistory.h | 49 ---------- gdk/gdkinternals.h | 3 - gdk/x11/gdkdisplay-x11.c | 11 +-- tests/animated-resizing.c | 13 +-- tests/video-timer.c | 9 +- 11 files changed, 180 insertions(+), 306 deletions(-) delete mode 100644 gdk/gdkframehistory.c delete mode 100644 gdk/gdkframehistory.h diff --git a/gdk/Makefile.am b/gdk/Makefile.am index 4ef63c02f0..7b40c5ffd7 100644 --- a/gdk/Makefile.am +++ b/gdk/Makefile.am @@ -75,7 +75,6 @@ gdk_public_h_sources = \ gdkdisplaymanager.h \ gdkdnd.h \ gdkevents.h \ - gdkframehistory.h \ gdkframetimings.h \ gdkkeys.h \ gdkkeysyms.h \ @@ -126,7 +125,6 @@ gdk_c_sources = \ gdkdisplaymanager.c \ gdkdnd.c \ gdkevents.c \ - gdkframehistory.c \ gdkframetimings.c \ gdkglobals.c \ gdkkeys.c \ diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index 8cdc1d109d..c77127f634 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -27,6 +27,7 @@ #include "config.h" #include "gdkframeclockprivate.h" +#include "gdkinternals.h" /** * SECTION:frameclock @@ -90,17 +91,25 @@ enum { static guint signals[LAST_SIGNAL]; +#define FRAME_HISTORY_MAX_LENGTH 16 + struct _GdkFrameClockPrivate { - GdkFrameHistory *history; + gint64 frame_counter; + gint n_timings; + gint current; + GdkFrameTimings *timings[FRAME_HISTORY_MAX_LENGTH]; }; static void gdk_frame_clock_finalize (GObject *object) { GdkFrameClockPrivate *priv = GDK_FRAME_CLOCK (object)->priv; + int i; - g_object_unref (priv->history); + for (i = 0; i < FRAME_HISTORY_MAX_LENGTH; i++) + if (priv->timings[i] != 0) + gdk_frame_timings_unref (priv->timings[i]); G_OBJECT_CLASS (gdk_frame_clock_parent_class)->finalize (object); } @@ -254,7 +263,8 @@ gdk_frame_clock_init (GdkFrameClock *clock) GdkFrameClockPrivate); priv = clock->priv; - priv->history = gdk_frame_history_new (); + priv->frame_counter = -1; + priv->current = FRAME_HISTORY_MAX_LENGTH - 1; } /** @@ -325,27 +335,6 @@ gdk_frame_clock_thaw (GdkFrameClock *clock) GDK_FRAME_CLOCK_GET_CLASS (clock)->thaw (clock); } -/** - * gdk_frame_clock_get_history: - * @clock: the clock - * - * Gets the #GdkFrameHistory for the frame clock. - * - * Since: 3.8 - * Return value: (transfer none): the frame history object - */ -GdkFrameHistory * -gdk_frame_clock_get_history (GdkFrameClock *clock) -{ - GdkFrameClockPrivate *priv; - - g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), NULL); - - priv = clock->priv; - - return priv->history; -} - /** * gdk_frame_clock_get_requested: * @clock: the clock @@ -388,19 +377,149 @@ gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock, timeval->tv_usec = (time_ms % 1000) * 1000; } -GdkFrameTimings * -gdk_frame_clock_get_current_frame_timings (GdkFrameClock *clock) +gint64 +gdk_frame_clock_get_frame_counter (GdkFrameClock *clock) { - GdkFrameHistory *history; - gint64 frame_counter; + GdkFrameClockPrivate *priv; g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), 0); - history = gdk_frame_clock_get_history (clock); - frame_counter = gdk_frame_history_get_frame_counter (history); - return gdk_frame_history_get_timings (history, frame_counter); + priv = clock->priv; + + return priv->frame_counter; } +gint64 +gdk_frame_clock_get_start (GdkFrameClock *clock) +{ + GdkFrameClockPrivate *priv; + + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), 0); + + priv = clock->priv; + + return priv->frame_counter + 1 - priv->n_timings; +} + +void +_gdk_frame_clock_begin_frame (GdkFrameClock *clock) +{ + GdkFrameClockPrivate *priv; + + g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); + + priv = clock->priv; + + priv->frame_counter++; + priv->current = (priv->current + 1) % FRAME_HISTORY_MAX_LENGTH; + + if (priv->n_timings < FRAME_HISTORY_MAX_LENGTH) + priv->n_timings++; + else + { + gdk_frame_timings_unref(priv->timings[priv->current]); + } + + priv->timings[priv->current] = gdk_frame_timings_new (priv->frame_counter); +} + +GdkFrameTimings * +gdk_frame_clock_get_timings (GdkFrameClock *clock, + gint64 frame_counter) +{ + GdkFrameClockPrivate *priv; + gint pos; + + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), NULL); + + priv = clock->priv; + + if (frame_counter > priv->frame_counter) + return NULL; + + if (frame_counter <= priv->frame_counter - priv->n_timings) + return NULL; + + pos = (priv->current - (priv->frame_counter - frame_counter) + FRAME_HISTORY_MAX_LENGTH) % FRAME_HISTORY_MAX_LENGTH; + + return priv->timings[pos]; +} + +GdkFrameTimings * +gdk_frame_clock_get_current_frame_timings (GdkFrameClock *clock) +{ + GdkFrameClockPrivate *priv; + + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), 0); + + priv = clock->priv; + + return gdk_frame_clock_get_timings (clock, priv->frame_counter); +} + + +GdkFrameTimings * +gdk_frame_clock_get_last_complete (GdkFrameClock *clock) +{ + GdkFrameClockPrivate *priv; + gint i; + + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), NULL); + + priv = clock->priv; + + for (i = 0; i < priv->n_timings; i++) + { + gint pos = ((priv->current - i) + FRAME_HISTORY_MAX_LENGTH) % FRAME_HISTORY_MAX_LENGTH; + if (gdk_frame_timings_get_complete (priv->timings[pos])) + return priv->timings[pos]; + } + + return NULL; +} + +#ifdef G_ENABLE_DEBUG +void +_gdk_frame_clock_debug_print_timings (GdkFrameClock *clock, + GdkFrameTimings *timings) +{ + gint64 frame_counter = gdk_frame_timings_get_frame_counter (timings); + gint64 layout_start_time = _gdk_frame_timings_get_layout_start_time (timings); + gint64 paint_start_time = _gdk_frame_timings_get_paint_start_time (timings); + gint64 frame_end_time = _gdk_frame_timings_get_frame_end_time (timings); + gint64 frame_time = gdk_frame_timings_get_frame_time (timings); + gint64 presentation_time = gdk_frame_timings_get_presentation_time (timings); + gint64 predicted_presentation_time = gdk_frame_timings_get_predicted_presentation_time (timings); + gint64 refresh_interval = gdk_frame_timings_get_refresh_interval (timings); + gint64 previous_frame_time = 0; + gboolean slept_before = gdk_frame_timings_get_slept_before (timings); + GdkFrameTimings *previous_timings = gdk_frame_clock_get_timings (clock, + frame_counter - 1); + + if (previous_timings != NULL) + previous_frame_time = gdk_frame_timings_get_frame_time (previous_timings); + + g_print ("%5" G_GINT64_FORMAT ":", frame_counter); + if (previous_frame_time != 0) + { + g_print (" interval=%-4.1f", (frame_time - previous_frame_time) / 1000.); + g_print (slept_before ? " (sleep)" : " "); + } + if (layout_start_time != 0) + g_print (" layout_start=%-4.1f", (layout_start_time - frame_time) / 1000.); + if (paint_start_time != 0) + g_print (" paint_start=%-4.1f", (paint_start_time - frame_time) / 1000.); + if (frame_end_time != 0) + g_print (" frame_end=%-4.1f", (frame_end_time - frame_time) / 1000.); + if (presentation_time != 0) + g_print (" present=%-4.1f", (presentation_time - frame_time) / 1000.); + if (predicted_presentation_time != 0) + g_print (" predicted=%-4.1f", (predicted_presentation_time - frame_time) / 1000.); + if (refresh_interval != 0) + g_print (" refresh_interval=%-4.1f", refresh_interval / 1000.); + g_print ("\n"); +} +#endif /* G_ENABLE_DEBUG */ #define DEFAULT_REFRESH_INTERVAL 16667 /* 16.7ms (1/60th second) */ #define MAX_HISTORY_AGE 150000 /* 150ms */ @@ -411,13 +530,11 @@ gdk_frame_clock_get_refresh_info (GdkFrameClock *clock, gint64 *refresh_interval_return, gint64 *presentation_time_return) { - GdkFrameHistory *history; gint64 frame_counter; g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); - history = gdk_frame_clock_get_history (clock); - frame_counter = gdk_frame_history_get_frame_counter (history); + frame_counter = gdk_frame_clock_get_frame_counter (clock); if (presentation_time_return) *presentation_time_return = 0; @@ -426,7 +543,7 @@ gdk_frame_clock_get_refresh_info (GdkFrameClock *clock, while (TRUE) { - GdkFrameTimings *timings = gdk_frame_history_get_timings (history, frame_counter); + GdkFrameTimings *timings = gdk_frame_clock_get_timings (clock, frame_counter); gint64 presentation_time; gint64 refresh_interval; diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 608d74320b..3780615bfa 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -31,7 +31,7 @@ #ifndef __GDK_FRAME_CLOCK_H__ #define __GDK_FRAME_CLOCK_H__ -#include +#include G_BEGIN_DECLS @@ -68,7 +68,12 @@ GdkFrameClockPhase gdk_frame_clock_get_requested (GdkFrameClock *clock); void gdk_frame_clock_freeze (GdkFrameClock *clock); void gdk_frame_clock_thaw (GdkFrameClock *clock); -GdkFrameHistory *gdk_frame_clock_get_history (GdkFrameClock *clock); +/* Frame history */ +gint64 gdk_frame_clock_get_frame_counter (GdkFrameClock *clock); +gint64 gdk_frame_clock_get_start (GdkFrameClock *clock); +GdkFrameTimings *gdk_frame_clock_get_timings (GdkFrameClock *clock, + gint64 frame_counter); +GdkFrameTimings *gdk_frame_clock_get_last_complete (GdkFrameClock *clock); /* Convenience API */ void gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock, diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 6a35daacdc..da05a9698a 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -274,10 +274,8 @@ gdk_frame_clock_paint_idle (void *data) GdkFrameClock *clock = GDK_FRAME_CLOCK (data); GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); GdkFrameClockIdlePrivate *priv = clock_idle->priv; - GdkFrameHistory *history = gdk_frame_clock_get_history (clock); gboolean skip_to_resume_events; GdkFrameTimings *timings = NULL; - gint64 frame_counter = 0; priv->paint_idle_id = 0; priv->in_paint_idle = TRUE; @@ -288,8 +286,7 @@ gdk_frame_clock_paint_idle (void *data) if (priv->phase > GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT) { - frame_counter = gdk_frame_history_get_frame_counter (history); - timings = gdk_frame_history_get_timings (history, frame_counter); + timings = gdk_frame_clock_get_current_frame_timings (clock); } if (!skip_to_resume_events) @@ -304,9 +301,8 @@ gdk_frame_clock_paint_idle (void *data) { priv->frame_time = compute_frame_time (clock_idle); - gdk_frame_history_begin_frame (history); - frame_counter = gdk_frame_history_get_frame_counter (history); - timings = gdk_frame_history_get_timings (history, frame_counter); + _gdk_frame_clock_begin_frame (clock); + timings = gdk_frame_clock_get_current_frame_timings (clock); gdk_frame_timings_set_frame_time (timings, priv->frame_time); @@ -393,7 +389,7 @@ gdk_frame_clock_paint_idle (void *data) if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) { if (gdk_frame_timings_get_complete (timings)) - _gdk_frame_history_debug_print (history, timings); + _gdk_frame_clock_debug_print_timings (clock, timings); } #endif /* G_ENABLE_DEBUG */ diff --git a/gdk/gdkframeclockprivate.h b/gdk/gdkframeclockprivate.h index 6c01dd2c44..63e2d7ed99 100644 --- a/gdk/gdkframeclockprivate.h +++ b/gdk/gdkframeclockprivate.h @@ -67,6 +67,10 @@ struct _GdkFrameClockClass /* void (* resume_events) (GdkFrameClock *clock); */ }; +void _gdk_frame_clock_begin_frame (GdkFrameClock *clock); +void _gdk_frame_clock_debug_print_timings (GdkFrameClock *clock, + GdkFrameTimings *timings); + G_END_DECLS #endif /* __GDK_FRAME_CLOCK_PRIVATE_H__ */ diff --git a/gdk/gdkframehistory.c b/gdk/gdkframehistory.c deleted file mode 100644 index 2f7147ef73..0000000000 --- a/gdk/gdkframehistory.c +++ /dev/null @@ -1,187 +0,0 @@ -/* GDK - The GIMP Drawing Kit - * Copyright (C) 2012 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 . - */ - -#include "config.h" - -#include "gdkframehistory.h" -#include "gdkinternals.h" - -#define FRAME_HISTORY_MAX_LENGTH 16 - -struct _GdkFrameHistory -{ - GObject parent_instance; - - gint64 frame_counter; - gint n_timings; - gint current; - GdkFrameTimings *timings[FRAME_HISTORY_MAX_LENGTH]; -}; - -struct _GdkFrameHistoryClass -{ - GObjectClass parent_class; -}; - -G_DEFINE_TYPE (GdkFrameHistory, gdk_frame_history, G_TYPE_OBJECT) - -static void -gdk_frame_history_finalize (GObject *object) -{ - GdkFrameHistory *history = GDK_FRAME_HISTORY (object); - int i; - - for (i = 0; i < FRAME_HISTORY_MAX_LENGTH; i++) - if (history->timings[i] != 0) - gdk_frame_timings_unref (history->timings[i]); - - G_OBJECT_CLASS (gdk_frame_history_parent_class)->finalize (object); -} - -static void -gdk_frame_history_class_init (GdkFrameHistoryClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = gdk_frame_history_finalize; -} - -static void -gdk_frame_history_init (GdkFrameHistory *history) -{ - history->frame_counter = -1; - history->current = FRAME_HISTORY_MAX_LENGTH - 1; -} - -GdkFrameHistory * -gdk_frame_history_new (void) -{ - return g_object_new (GDK_TYPE_FRAME_HISTORY, NULL); -} - -gint64 -gdk_frame_history_get_frame_counter (GdkFrameHistory *history) -{ - g_return_val_if_fail (GDK_IS_FRAME_HISTORY (history), 0); - - return history->frame_counter; -} - -gint64 -gdk_frame_history_get_start (GdkFrameHistory *history) -{ - g_return_val_if_fail (GDK_IS_FRAME_HISTORY (history), 0); - - return history->frame_counter + 1 - history->n_timings; -} - -void -gdk_frame_history_begin_frame (GdkFrameHistory *history) -{ - g_return_if_fail (GDK_IS_FRAME_HISTORY (history)); - - history->frame_counter++; - history->current = (history->current + 1) % FRAME_HISTORY_MAX_LENGTH; - - if (history->n_timings < FRAME_HISTORY_MAX_LENGTH) - history->n_timings++; - else - { - gdk_frame_timings_unref(history->timings[history->current]); - } - - history->timings[history->current] = gdk_frame_timings_new (history->frame_counter); -} - -GdkFrameTimings * -gdk_frame_history_get_timings (GdkFrameHistory *history, - gint64 frame_counter) -{ - gint pos; - - g_return_val_if_fail (GDK_IS_FRAME_HISTORY (history), NULL); - - if (frame_counter > history->frame_counter) - return NULL; - - if (frame_counter <= history->frame_counter - history->n_timings) - return NULL; - - pos = (history->current - (history->frame_counter - frame_counter) + FRAME_HISTORY_MAX_LENGTH) % FRAME_HISTORY_MAX_LENGTH; - - return history->timings[pos]; -} - -GdkFrameTimings * -gdk_frame_history_get_last_complete (GdkFrameHistory *history) -{ - gint i; - - g_return_val_if_fail (GDK_IS_FRAME_HISTORY (history), NULL); - - for (i = 0; i < history->n_timings; i++) - { - gint pos = ((history->current - i) + FRAME_HISTORY_MAX_LENGTH) % FRAME_HISTORY_MAX_LENGTH; - if (gdk_frame_timings_get_complete (history->timings[pos])) - return history->timings[pos]; - } - - return NULL; -} - -#ifdef G_ENABLE_DEBUG -void -_gdk_frame_history_debug_print (GdkFrameHistory *history, - GdkFrameTimings *timings) -{ - gint64 frame_counter = gdk_frame_timings_get_frame_counter (timings); - gint64 layout_start_time = _gdk_frame_timings_get_layout_start_time (timings); - gint64 paint_start_time = _gdk_frame_timings_get_paint_start_time (timings); - gint64 frame_end_time = _gdk_frame_timings_get_frame_end_time (timings); - gint64 frame_time = gdk_frame_timings_get_frame_time (timings); - gint64 presentation_time = gdk_frame_timings_get_presentation_time (timings); - gint64 predicted_presentation_time = gdk_frame_timings_get_predicted_presentation_time (timings); - gint64 refresh_interval = gdk_frame_timings_get_refresh_interval (timings); - gint64 previous_frame_time = 0; - gboolean slept_before = gdk_frame_timings_get_slept_before (timings); - GdkFrameTimings *previous_timings = gdk_frame_history_get_timings (history, - frame_counter - 1); - - if (previous_timings != NULL) - previous_frame_time = gdk_frame_timings_get_frame_time (previous_timings); - - g_print ("%5" G_GINT64_FORMAT ":", frame_counter); - if (previous_frame_time != 0) - { - g_print (" interval=%-4.1f", (frame_time - previous_frame_time) / 1000.); - g_print (slept_before ? " (sleep)" : " "); - } - if (layout_start_time != 0) - g_print (" layout_start=%-4.1f", (layout_start_time - frame_time) / 1000.); - if (paint_start_time != 0) - g_print (" paint_start=%-4.1f", (paint_start_time - frame_time) / 1000.); - if (frame_end_time != 0) - g_print (" frame_end=%-4.1f", (frame_end_time - frame_time) / 1000.); - if (presentation_time != 0) - g_print (" present=%-4.1f", (presentation_time - frame_time) / 1000.); - if (predicted_presentation_time != 0) - g_print (" predicted=%-4.1f", (predicted_presentation_time - frame_time) / 1000.); - if (refresh_interval != 0) - g_print (" refresh_interval=%-4.1f", refresh_interval / 1000.); - g_print ("\n"); -} -#endif /* G_ENABLE_DEBUG */ diff --git a/gdk/gdkframehistory.h b/gdk/gdkframehistory.h deleted file mode 100644 index 56e9db9c0c..0000000000 --- a/gdk/gdkframehistory.h +++ /dev/null @@ -1,49 +0,0 @@ -/* GDK - The GIMP Drawing Kit - * Copyright (C) 2012 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 . - */ - -#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __GDK_FRAME_HISTORY_H__ -#define __GDK_FRAME_HISTORY_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GdkFrameHistory GdkFrameHistory; -typedef struct _GdkFrameHistoryClass GdkFrameHistoryClass; - -#define GDK_TYPE_FRAME_HISTORY (gdk_frame_history_get_type ()) -#define GDK_FRAME_HISTORY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDK_TYPE_FRAME_HISTORY, GdkFrameHistory)) -#define GDK_IS_FRAME_HISTORY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDK_TYPE_FRAME_HISTORY)) - -GType gdk_frame_history_get_type (void) G_GNUC_CONST; - -GdkFrameHistory *gdk_frame_history_new (void); - -gint64 gdk_frame_history_get_frame_counter (GdkFrameHistory *history); -gint64 gdk_frame_history_get_start (GdkFrameHistory *history); -void gdk_frame_history_begin_frame (GdkFrameHistory *history); -GdkFrameTimings *gdk_frame_history_get_timings (GdkFrameHistory *history, - gint64 frame_counter); -GdkFrameTimings *gdk_frame_history_get_last_complete (GdkFrameHistory *history); - -G_END_DECLS - -#endif /* __GDK_FRAME_HISTORY_H__ */ diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index 4239188426..61ebc19c21 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -445,9 +445,6 @@ gint64 _gdk_frame_timings_get_frame_end_time (GdkFrameTimings *timing void _gdk_frame_timings_set_frame_end_time (GdkFrameTimings *timings, gint64 frame_end_time); -void _gdk_frame_history_debug_print (GdkFrameHistory *history, - GdkFrameTimings *timings); - #endif /* G_ENABLE_DEBUG */ G_END_DECLS diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 466f7e56bf..8f6fe2bfc4 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -26,6 +26,7 @@ #include "gdkdisplay.h" #include "gdkeventsource.h" #include "gdkeventtranslator.h" +#include "gdkframeclockprivate.h" #include "gdkinternals.h" #include "gdkscreen.h" #include "gdkinternals.h" @@ -1061,14 +1062,13 @@ static GdkFrameTimings * find_frame_timings (GdkFrameClock *clock, guint64 serial) { - GdkFrameHistory *history = gdk_frame_clock_get_history (clock); gint64 start_frame, end_frame, i; - start_frame = gdk_frame_history_get_start (history); - end_frame = gdk_frame_history_get_frame_counter (history); + start_frame = gdk_frame_clock_get_start (clock); + end_frame = gdk_frame_clock_get_frame_counter (clock); for (i = end_frame; i >= start_frame; i--) { - GdkFrameTimings *timings = gdk_frame_history_get_timings (history, i); + GdkFrameTimings *timings = gdk_frame_clock_get_timings (clock, i); if (gdk_frame_timings_get_cookie (timings) == serial) return timings; @@ -1167,8 +1167,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, gdk_frame_timings_set_complete (timings, TRUE); #ifdef G_ENABLE_DEBUG if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) - _gdk_frame_history_debug_print (gdk_frame_clock_get_history (clock), - timings); + _gdk_frame_clock_debug_print_timings (clock, timings); #endif /* G_ENABLE_DEBUG */ } } diff --git a/tests/animated-resizing.c b/tests/animated-resizing.c index 9aaa3662cf..96aa32ae14 100644 --- a/tests/animated-resizing.c +++ b/tests/animated-resizing.c @@ -148,7 +148,7 @@ print_variable (const char *description, } static void -handle_frame_stats (GdkFrameHistory *frame_history) +handle_frame_stats (GdkFrameClock *frame_clock) { static int num_stats = 0; static double last_print_time = 0; @@ -192,11 +192,11 @@ handle_frame_stats (GdkFrameHistory *frame_history) frames_since_last_print++; for (frame_counter = last_handled_frame; - frame_counter < gdk_frame_history_get_frame_counter (frame_history); + frame_counter < gdk_frame_clock_get_frame_counter (frame_clock); frame_counter++) { - GdkFrameTimings *timings = gdk_frame_history_get_timings (frame_history, frame_counter); - GdkFrameTimings *previous_timings = gdk_frame_history_get_timings (frame_history, frame_counter - 1); + GdkFrameTimings *timings = gdk_frame_clock_get_timings (frame_clock, frame_counter); + GdkFrameTimings *previous_timings = gdk_frame_clock_get_timings (frame_clock, frame_counter - 1); if (!timings || gdk_frame_timings_get_complete (timings)) last_handled_frame = frame_counter; @@ -220,10 +220,7 @@ on_frame (double progress) int jitter; if (frame_clock) - { - GdkFrameHistory *history = gdk_frame_clock_get_history (frame_clock); - handle_frame_stats (history); - } + handle_frame_stats (clock); angle = 2 * M_PI * progress; jitter = WINDOW_SIZE_JITTER * sin(angle); diff --git a/tests/video-timer.c b/tests/video-timer.c index 32d8880b78..69ae562410 100644 --- a/tests/video-timer.c +++ b/tests/video-timer.c @@ -221,9 +221,7 @@ on_window_draw (GtkWidget *widget, if (displayed_frame->frame_counter == 0) { GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (window); - GdkFrameHistory *history = gdk_frame_clock_get_history (frame_clock); - - displayed_frame->frame_counter = gdk_frame_history_get_frame_counter (history); + displayed_frame->frame_counter = gdk_frame_clock_get_frame_counter (clock); } } } @@ -232,7 +230,6 @@ static void collect_old_frames (void) { GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (window); - GdkFrameHistory *history = gdk_frame_clock_get_history (frame_clock); GList *l, *l_next; for (l = past_frames; l; l = l_next) @@ -241,8 +238,8 @@ collect_old_frames (void) gboolean remove = FALSE; l_next = l->next; - GdkFrameTimings *timings = gdk_frame_history_get_timings (history, - frame_data->frame_counter); + GdkFrameTimings *timings = gdk_frame_clock_get_timings (clock, + frame_data->frame_counter); if (timings == NULL) { remove = TRUE; From d5edf9c072cdcab3a3cbee2cdb36b122dd953f0c Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Tue, 12 Feb 2013 16:14:24 -0500 Subject: [PATCH 052/208] GdkFrameTimings: strip down to a minimal public API Since we're not exporting the ability to create your own frame clock for now, remove the setters for GdkFrameTimings fields. Also remove all setters and getters for fields that are more about implementation than about quantities that are meaningful to the applcation and just access the fields directly within GDK. --- gdk/gdkframeclock.c | 51 +++++------ gdk/gdkframeclockidle.c | 14 ++- gdk/gdkframeclockprivate.h | 24 +++++ gdk/gdkframetimings.c | 176 +------------------------------------ gdk/gdkframetimings.h | 25 ------ gdk/gdkinternals.h | 18 ---- gdk/x11/gdkdisplay-x11.c | 14 ++- gdk/x11/gdkwindow-x11.c | 28 +++--- 8 files changed, 70 insertions(+), 280 deletions(-) diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index c77127f634..b8ab15c7a0 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -420,7 +420,7 @@ _gdk_frame_clock_begin_frame (GdkFrameClock *clock) gdk_frame_timings_unref(priv->timings[priv->current]); } - priv->timings[priv->current] = gdk_frame_timings_new (priv->frame_counter); + priv->timings[priv->current] = _gdk_frame_timings_new (priv->frame_counter); } GdkFrameTimings * @@ -471,7 +471,7 @@ gdk_frame_clock_get_last_complete (GdkFrameClock *clock) for (i = 0; i < priv->n_timings; i++) { gint pos = ((priv->current - i) + FRAME_HISTORY_MAX_LENGTH) % FRAME_HISTORY_MAX_LENGTH; - if (gdk_frame_timings_get_complete (priv->timings[pos])) + if (priv->timings[pos]->complete) return priv->timings[pos]; } @@ -483,40 +483,31 @@ void _gdk_frame_clock_debug_print_timings (GdkFrameClock *clock, GdkFrameTimings *timings) { - gint64 frame_counter = gdk_frame_timings_get_frame_counter (timings); - gint64 layout_start_time = _gdk_frame_timings_get_layout_start_time (timings); - gint64 paint_start_time = _gdk_frame_timings_get_paint_start_time (timings); - gint64 frame_end_time = _gdk_frame_timings_get_frame_end_time (timings); - gint64 frame_time = gdk_frame_timings_get_frame_time (timings); - gint64 presentation_time = gdk_frame_timings_get_presentation_time (timings); - gint64 predicted_presentation_time = gdk_frame_timings_get_predicted_presentation_time (timings); - gint64 refresh_interval = gdk_frame_timings_get_refresh_interval (timings); gint64 previous_frame_time = 0; - gboolean slept_before = gdk_frame_timings_get_slept_before (timings); GdkFrameTimings *previous_timings = gdk_frame_clock_get_timings (clock, - frame_counter - 1); + timings->frame_counter - 1); if (previous_timings != NULL) - previous_frame_time = gdk_frame_timings_get_frame_time (previous_timings); + previous_frame_time = previous_timings->frame_time; - g_print ("%5" G_GINT64_FORMAT ":", frame_counter); + g_print ("%5" G_GINT64_FORMAT ":", timings->frame_counter); if (previous_frame_time != 0) { - g_print (" interval=%-4.1f", (frame_time - previous_frame_time) / 1000.); - g_print (slept_before ? " (sleep)" : " "); + g_print (" interval=%-4.1f", (timings->frame_time - previous_frame_time) / 1000.); + g_print (timings->slept_before ? " (sleep)" : " "); } - if (layout_start_time != 0) - g_print (" layout_start=%-4.1f", (layout_start_time - frame_time) / 1000.); - if (paint_start_time != 0) - g_print (" paint_start=%-4.1f", (paint_start_time - frame_time) / 1000.); - if (frame_end_time != 0) - g_print (" frame_end=%-4.1f", (frame_end_time - frame_time) / 1000.); - if (presentation_time != 0) - g_print (" present=%-4.1f", (presentation_time - frame_time) / 1000.); - if (predicted_presentation_time != 0) - g_print (" predicted=%-4.1f", (predicted_presentation_time - frame_time) / 1000.); - if (refresh_interval != 0) - g_print (" refresh_interval=%-4.1f", refresh_interval / 1000.); + if (timings->layout_start_time != 0) + g_print (" layout_start=%-4.1f", (timings->layout_start_time - timings->frame_time) / 1000.); + if (timings->paint_start_time != 0) + g_print (" paint_start=%-4.1f", (timings->paint_start_time - timings->frame_time) / 1000.); + if (timings->frame_end_time != 0) + g_print (" frame_end=%-4.1f", (timings->frame_end_time - timings->frame_time) / 1000.); + if (timings->presentation_time != 0) + g_print (" present=%-4.1f", (timings->presentation_time - timings->frame_time) / 1000.); + if (timings->predicted_presentation_time != 0) + g_print (" predicted=%-4.1f", (timings->predicted_presentation_time - timings->frame_time) / 1000.); + if (timings->refresh_interval != 0) + g_print (" refresh_interval=%-4.1f", timings->refresh_interval / 1000.); g_print ("\n"); } #endif /* G_ENABLE_DEBUG */ @@ -550,8 +541,8 @@ gdk_frame_clock_get_refresh_info (GdkFrameClock *clock, if (timings == NULL) return; - refresh_interval = gdk_frame_timings_get_refresh_interval (timings); - presentation_time = gdk_frame_timings_get_presentation_time (timings); + refresh_interval = timings->refresh_interval; + presentation_time = timings->presentation_time; if (presentation_time != 0) { diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index da05a9698a..afb9430945 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -304,10 +304,8 @@ gdk_frame_clock_paint_idle (void *data) _gdk_frame_clock_begin_frame (clock); timings = gdk_frame_clock_get_current_frame_timings (clock); - gdk_frame_timings_set_frame_time (timings, priv->frame_time); - - gdk_frame_timings_set_slept_before (timings, - priv->sleep_serial != get_sleep_serial ()); + timings->frame_time = priv->frame_time; + timings->slept_before = priv->sleep_serial != get_sleep_serial (); priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; @@ -336,7 +334,7 @@ gdk_frame_clock_paint_idle (void *data) { if (priv->phase != GDK_FRAME_CLOCK_PHASE_LAYOUT && (priv->requested & GDK_FRAME_CLOCK_PHASE_LAYOUT)) - _gdk_frame_timings_set_layout_start_time (timings, g_get_monotonic_time ()); + timings->layout_start_time = g_get_monotonic_time (); } #endif /* G_ENABLE_DEBUG */ @@ -355,7 +353,7 @@ gdk_frame_clock_paint_idle (void *data) { if (priv->phase != GDK_FRAME_CLOCK_PHASE_PAINT && (priv->requested & GDK_FRAME_CLOCK_PHASE_PAINT)) - _gdk_frame_timings_set_paint_start_time (timings, g_get_monotonic_time ()); + timings->paint_start_time = g_get_monotonic_time (); } #endif /* G_ENABLE_DEBUG */ @@ -377,7 +375,7 @@ gdk_frame_clock_paint_idle (void *data) #ifdef G_ENABLE_DEBUG if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) - _gdk_frame_timings_set_frame_end_time (timings, g_get_monotonic_time ()); + timings->frame_end_time = g_get_monotonic_time (); #endif /* G_ENABLE_DEBUG */ } case GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS: @@ -388,7 +386,7 @@ gdk_frame_clock_paint_idle (void *data) #ifdef G_ENABLE_DEBUG if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) { - if (gdk_frame_timings_get_complete (timings)) + if (timings->complete) _gdk_frame_clock_debug_print_timings (clock, timings); } #endif /* G_ENABLE_DEBUG */ diff --git a/gdk/gdkframeclockprivate.h b/gdk/gdkframeclockprivate.h index 63e2d7ed99..c924550d6c 100644 --- a/gdk/gdkframeclockprivate.h +++ b/gdk/gdkframeclockprivate.h @@ -67,10 +67,34 @@ struct _GdkFrameClockClass /* void (* resume_events) (GdkFrameClock *clock); */ }; +struct _GdkFrameTimings +{ + guint ref_count; + + gint64 frame_counter; + guint64 cookie; + gint64 frame_time; + gint64 drawn_time; + gint64 presentation_time; + gint64 refresh_interval; + gint64 predicted_presentation_time; + +#ifdef G_ENABLE_DEBUG + gint64 layout_start_time; + gint64 paint_start_time; + gint64 frame_end_time; +#endif /* G_ENABLE_DEBUG */ + + guint complete : 1; + guint slept_before : 1; +}; + void _gdk_frame_clock_begin_frame (GdkFrameClock *clock); void _gdk_frame_clock_debug_print_timings (GdkFrameClock *clock, GdkFrameTimings *timings); +GdkFrameTimings *_gdk_frame_timings_new (gint64 frame_counter); + G_END_DECLS #endif /* __GDK_FRAME_CLOCK_PRIVATE_H__ */ diff --git a/gdk/gdkframetimings.c b/gdk/gdkframetimings.c index ad9ec2e527..deb2932ebe 100644 --- a/gdk/gdkframetimings.c +++ b/gdk/gdkframetimings.c @@ -17,36 +17,14 @@ #include "config.h" -#include "gdkframetimings.h" - -struct _GdkFrameTimings -{ - guint ref_count; - - gint64 frame_counter; - guint64 cookie; - gint64 frame_time; - gint64 drawn_time; - gint64 presentation_time; - gint64 refresh_interval; - gint64 predicted_presentation_time; - -#ifdef G_ENABLE_DEBUG - gint64 layout_start_time; - gint64 paint_start_time; - gint64 frame_end_time; -#endif /* G_ENABLE_DEBUG */ - - guint complete : 1; - guint slept_before : 1; -}; +#include "gdkframeclockprivate.h" G_DEFINE_BOXED_TYPE (GdkFrameTimings, gdk_frame_timings, gdk_frame_timings_ref, gdk_frame_timings_unref) GdkFrameTimings * -gdk_frame_timings_new (gint64 frame_counter) +_gdk_frame_timings_new (gint64 frame_counter) { GdkFrameTimings *timings; @@ -86,23 +64,6 @@ gdk_frame_timings_get_frame_counter (GdkFrameTimings *timings) return timings->frame_counter; } -guint64 -gdk_frame_timings_get_cookie (GdkFrameTimings *timings) -{ - g_return_val_if_fail (timings != NULL, 0); - - return timings->cookie; -} - -void -gdk_frame_timings_set_cookie (GdkFrameTimings *timings, - guint64 cookie) -{ - g_return_if_fail (timings != NULL); - - timings->cookie = cookie; -} - gboolean gdk_frame_timings_get_complete (GdkFrameTimings *timings) { @@ -111,32 +72,6 @@ gdk_frame_timings_get_complete (GdkFrameTimings *timings) return timings->complete; } -void -gdk_frame_timings_set_complete (GdkFrameTimings *timings, - gboolean complete) -{ - g_return_if_fail (timings != NULL); - - timings->complete = complete; -} - -gboolean -gdk_frame_timings_get_slept_before (GdkFrameTimings *timings) -{ - g_return_val_if_fail (timings != NULL, FALSE); - - return timings->slept_before; -} - -void -gdk_frame_timings_set_slept_before (GdkFrameTimings *timings, - gboolean slept_before) -{ - g_return_if_fail (timings != NULL); - - timings->slept_before = slept_before; -} - gint64 gdk_frame_timings_get_frame_time (GdkFrameTimings *timings) { @@ -145,32 +80,6 @@ gdk_frame_timings_get_frame_time (GdkFrameTimings *timings) return timings->frame_time; } -void -gdk_frame_timings_set_frame_time (GdkFrameTimings *timings, - gint64 frame_time) -{ - g_return_if_fail (timings != NULL); - - timings->frame_time = frame_time; -} - -gint64 -gdk_frame_timings_get_drawn_time (GdkFrameTimings *timings) -{ - g_return_val_if_fail (timings != NULL, 0); - - return timings->drawn_time; -} - -void -gdk_frame_timings_set_drawn_time (GdkFrameTimings *timings, - gint64 drawn_time) -{ - g_return_if_fail (timings != NULL); - - timings->drawn_time = drawn_time; -} - gint64 gdk_frame_timings_get_presentation_time (GdkFrameTimings *timings) { @@ -179,15 +88,6 @@ gdk_frame_timings_get_presentation_time (GdkFrameTimings *timings) return timings->presentation_time; } -void -gdk_frame_timings_set_presentation_time (GdkFrameTimings *timings, - gint64 presentation_time) -{ - g_return_if_fail (timings != NULL); - - timings->presentation_time = presentation_time; -} - gint64 gdk_frame_timings_get_predicted_presentation_time (GdkFrameTimings *timings) { @@ -196,15 +96,6 @@ gdk_frame_timings_get_predicted_presentation_time (GdkFrameTimings *timings) return timings->predicted_presentation_time; } -void -gdk_frame_timings_set_predicted_presentation_time (GdkFrameTimings *timings, - gint64 predicted_presentation_time) -{ - g_return_if_fail (timings != NULL); - - timings->predicted_presentation_time = predicted_presentation_time; -} - gint64 gdk_frame_timings_get_refresh_interval (GdkFrameTimings *timings) { @@ -212,66 +103,3 @@ gdk_frame_timings_get_refresh_interval (GdkFrameTimings *timings) return timings->refresh_interval; } - -void -gdk_frame_timings_set_refresh_interval (GdkFrameTimings *timings, - gint64 refresh_interval) -{ - g_return_if_fail (timings != NULL); - - timings->refresh_interval = refresh_interval; -} - -#ifdef G_ENABLE_DEBUG -gint64 -_gdk_frame_timings_get_layout_start_time (GdkFrameTimings *timings) -{ - g_return_val_if_fail (timings != NULL, 0); - - return timings->layout_start_time; -} - -void -_gdk_frame_timings_set_layout_start_time (GdkFrameTimings *timings, - gint64 layout_start_time) -{ - g_return_if_fail (timings != NULL); - - timings->layout_start_time = layout_start_time; -} - -gint64 -_gdk_frame_timings_get_paint_start_time (GdkFrameTimings *timings) -{ - g_return_val_if_fail (timings != NULL, 0); - - return timings->paint_start_time; -} - -void -_gdk_frame_timings_set_paint_start_time (GdkFrameTimings *timings, - gint64 paint_start_time) -{ - g_return_if_fail (timings != NULL); - - timings->paint_start_time = paint_start_time; -} - -gint64 -_gdk_frame_timings_get_frame_end_time (GdkFrameTimings *timings) -{ - g_return_val_if_fail (timings != NULL, 0); - - return timings->frame_end_time; -} - -void -_gdk_frame_timings_set_frame_end_time (GdkFrameTimings *timings, - gint64 frame_end_time) -{ - g_return_if_fail (timings != NULL); - - timings->frame_end_time = frame_end_time; -} - -#endif /* G_ENABLE_DEBUG */ diff --git a/gdk/gdkframetimings.h b/gdk/gdkframetimings.h index 8e86c6e69f..0fb1e20c8c 100644 --- a/gdk/gdkframetimings.h +++ b/gdk/gdkframetimings.h @@ -30,41 +30,16 @@ typedef struct _GdkFrameTimings GdkFrameTimings; GType gdk_frame_timings_get_type (void) G_GNUC_CONST; -GdkFrameTimings *gdk_frame_timings_new (gint64 frame_counter); - GdkFrameTimings *gdk_frame_timings_ref (GdkFrameTimings *timings); void gdk_frame_timings_unref (GdkFrameTimings *timings); gint64 gdk_frame_timings_get_frame_counter (GdkFrameTimings *timings); - -guint64 gdk_frame_timings_get_cookie (GdkFrameTimings *timings); -void gdk_frame_timings_set_cookie (GdkFrameTimings *timings, - guint64 cookie); - gboolean gdk_frame_timings_get_complete (GdkFrameTimings *timings); -void gdk_frame_timings_set_complete (GdkFrameTimings *timings, - gboolean complete); - -gboolean gdk_frame_timings_get_slept_before (GdkFrameTimings *timings); -void gdk_frame_timings_set_slept_before (GdkFrameTimings *timings, - gboolean slept_before); - gint64 gdk_frame_timings_get_frame_time (GdkFrameTimings *timings); -void gdk_frame_timings_set_frame_time (GdkFrameTimings *timings, - gint64 frame_time); -gint64 gdk_frame_timings_get_drawn_time (GdkFrameTimings *timings); -void gdk_frame_timings_set_drawn_time (GdkFrameTimings *timings, - gint64 frame_time); gint64 gdk_frame_timings_get_presentation_time (GdkFrameTimings *timings); -void gdk_frame_timings_set_presentation_time (GdkFrameTimings *timings, - gint64 presentation_time); gint64 gdk_frame_timings_get_refresh_interval (GdkFrameTimings *timings); -void gdk_frame_timings_set_refresh_interval (GdkFrameTimings *timings, - gint64 refresh_interval); gint64 gdk_frame_timings_get_predicted_presentation_time (GdkFrameTimings *timings); -void gdk_frame_timings_set_predicted_presentation_time (GdkFrameTimings *timings, - gint64 predicted_presentation_time); G_END_DECLS diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index 61ebc19c21..4a91b7709f 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -429,24 +429,6 @@ cairo_surface_t * _gdk_offscreen_window_create_surface (GdkWindow *window, gint width, gint height); -/******************************** - * Debug-only frame statistics * - ********************************/ - -#ifdef G_ENABLE_DEBUG - -gint64 _gdk_frame_timings_get_layout_start_time (GdkFrameTimings *timings); -void _gdk_frame_timings_set_layout_start_time (GdkFrameTimings *timings, - gint64 layout_start_time); -gint64 _gdk_frame_timings_get_paint_start_time (GdkFrameTimings *timings); -void _gdk_frame_timings_set_paint_start_time (GdkFrameTimings *timings, - gint64 paint_time); -gint64 _gdk_frame_timings_get_frame_end_time (GdkFrameTimings *timings); -void _gdk_frame_timings_set_frame_end_time (GdkFrameTimings *timings, - gint64 frame_end_time); - -#endif /* G_ENABLE_DEBUG */ - G_END_DECLS #endif /* __GDK_INTERNALS_H__ */ diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 8f6fe2bfc4..90a2eca921 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -1070,7 +1070,7 @@ find_frame_timings (GdkFrameClock *clock, { GdkFrameTimings *timings = gdk_frame_clock_get_timings (clock, i); - if (gdk_frame_timings_get_cookie (timings) == serial) + if (timings->cookie == serial) return timings; } @@ -1116,7 +1116,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, GdkFrameTimings *timings = find_frame_timings (clock, serial); if (timings) - gdk_frame_timings_set_drawn_time (timings, frame_drawn_time); + timings->drawn_time = frame_drawn_time; if (window_impl->toplevel->frame_pending) { @@ -1153,18 +1153,16 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, if (timings) { - gint64 drawn_time = gdk_frame_timings_get_drawn_time (timings); gint32 presentation_time_offset = (gint32)d2; gint32 refresh_interval = d3; - if (drawn_time && presentation_time_offset) - gdk_frame_timings_set_presentation_time (timings, - drawn_time + presentation_time_offset); + if (timings->drawn_time && presentation_time_offset) + timings->presentation_time = timings->drawn_time + presentation_time_offset; if (refresh_interval) - gdk_frame_timings_set_refresh_interval (timings, refresh_interval); + timings->refresh_interval = refresh_interval; - gdk_frame_timings_set_complete (timings, TRUE); + timings->complete = TRUE; #ifdef G_ENABLE_DEBUG if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) _gdk_frame_clock_debug_print_timings (clock, timings); diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 6bb1ee2caa..edb8591710 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -32,6 +32,7 @@ #include "gdkvisualprivate.h" #include "gdkinternals.h" #include "gdkdeviceprivate.h" +#include "gdkframeclockprivate.h" #include "gdkasync.h" #include "gdkeventsource.h" #include "gdkdisplay-x11.h" @@ -282,10 +283,8 @@ gdk_x11_window_predict_presentation_time (GdkWindow *window) GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (window->impl); GdkFrameClock *clock; GdkFrameTimings *timings; - gint64 frame_time; gint64 presentation_time; gint64 refresh_interval; - gboolean slept_before; if (!WINDOW_IS_TOPLEVEL (window)) return; @@ -293,39 +292,35 @@ gdk_x11_window_predict_presentation_time (GdkWindow *window) clock = gdk_window_get_frame_clock (window); timings = gdk_frame_clock_get_current_frame_timings (clock); - frame_time = gdk_frame_timings_get_frame_time (timings); - slept_before = gdk_frame_timings_get_slept_before (timings); gdk_frame_clock_get_refresh_info (clock, - frame_time, + timings->frame_time, &refresh_interval, &presentation_time); if (presentation_time != 0) { - if (slept_before) + if (timings->slept_before) { presentation_time += refresh_interval; } else { - if (presentation_time < frame_time + refresh_interval / 2) + if (presentation_time < timings->frame_time + refresh_interval / 2) presentation_time += refresh_interval; } } else { - if (slept_before) - presentation_time = frame_time + refresh_interval + refresh_interval / 2; + if (timings->slept_before) + presentation_time = timings->frame_time + refresh_interval + refresh_interval / 2; else - presentation_time = frame_time + refresh_interval; + presentation_time = timings->frame_time + refresh_interval; } if (presentation_time < impl->toplevel->throttled_presentation_time) presentation_time = impl->toplevel->throttled_presentation_time; - gdk_frame_timings_set_predicted_presentation_time (timings, - presentation_time); - + timings->predicted_presentation_time = presentation_time; } static void @@ -399,7 +394,7 @@ gdk_x11_window_end_frame (GdkWindow *window) * but rather at a particular time. This can trigger different handling from * the compositor. */ - if (gdk_frame_timings_get_slept_before (timings)) + if (timings->slept_before) impl->toplevel->current_counter_value += 3; else impl->toplevel->current_counter_value += 1; @@ -413,8 +408,7 @@ gdk_x11_window_end_frame (GdkWindow *window) { impl->toplevel->frame_pending = TRUE; gdk_frame_clock_freeze (gdk_window_get_frame_clock (window)); - gdk_frame_timings_set_cookie (timings, - impl->toplevel->current_counter_value); + timings->cookie = impl->toplevel->current_counter_value; } } @@ -431,7 +425,7 @@ gdk_x11_window_end_frame (GdkWindow *window) } if (!impl->toplevel->frame_pending) - gdk_frame_timings_set_complete (timings, TRUE); + timings->complete = TRUE; } /***************************************************** From bb11195ec06e24a58a3f3d7b9b11381e588a7d64 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Tue, 12 Feb 2013 15:03:21 -0500 Subject: [PATCH 053/208] GdkFrameClock: Clean up the public API * remove gdk_frame_clock_get_frame_time_val(); a convenience function that would rarely be used. * remove gdk_frame_clock_get_requested() and ::frame-requested signal; while we might want to eventually be able to track the requested phases for a clock, we don't have a current use case. * Make gdk_frame_clock_freeze/thaw() private: they are only used within GTK+ and have complex semantics. * Remove gdk_frame_clock_get_last_complete(). Another convenience function that I don't have a current use case for. * Rename: gdk_frame_clock_get_start() => gdk_frame_clock_get_history_start() gdk_frame_clocK_get_current_frame_timings() => gdk_frame_clock_get_timings() --- gdk/gdkframeclock.c | 87 ++------------------------------------ gdk/gdkframeclock.h | 13 +----- gdk/gdkframeclockidle.c | 15 +------ gdk/gdkframeclockprivate.h | 15 ++++--- gdk/gdkwindow.c | 4 +- gdk/x11/gdkdisplay-x11.c | 6 +-- gdk/x11/gdkwindow-x11.c | 6 +-- tests/video-timer.c | 6 +-- 8 files changed, 27 insertions(+), 125 deletions(-) diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index b8ab15c7a0..4c5bd513a8 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -78,7 +78,6 @@ G_DEFINE_ABSTRACT_TYPE (GdkFrameClock, gdk_frame_clock, G_TYPE_OBJECT) enum { - FRAME_REQUESTED, FLUSH_EVENTS, BEFORE_PAINT, UPDATE, @@ -121,22 +120,6 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass) gobject_class->finalize = gdk_frame_clock_finalize; - /** - * GdkFrameClock::frame-requested: - * @clock: the frame clock emitting the signal - * - * This signal is emitted when a frame is not pending, and - * gdk_frame_clock_request_frame() is called to request a frame. - */ - signals[FRAME_REQUESTED] = - g_signal_new (g_intern_static_string ("frame-requested"), - GDK_TYPE_FRAME_CLOCK, - G_SIGNAL_RUN_LAST, - 0, - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - /** * GdkFrameClock::flush-events: * @clock: the frame clock emitting the signal @@ -319,7 +302,7 @@ gdk_frame_clock_request_phase (GdkFrameClock *clock, void -gdk_frame_clock_freeze (GdkFrameClock *clock) +_gdk_frame_clock_freeze (GdkFrameClock *clock) { g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); @@ -328,55 +311,13 @@ gdk_frame_clock_freeze (GdkFrameClock *clock) void -gdk_frame_clock_thaw (GdkFrameClock *clock) +_gdk_frame_clock_thaw (GdkFrameClock *clock) { g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); GDK_FRAME_CLOCK_GET_CLASS (clock)->thaw (clock); } -/** - * gdk_frame_clock_get_requested: - * @clock: the clock - * - * Gets whether a frame paint has been requested but has not been - * performed. - * - * - * Since: 3.0 - * Return value: TRUE if a frame paint is pending - */ -GdkFrameClockPhase -gdk_frame_clock_get_requested (GdkFrameClock *clock) -{ - g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), FALSE); - - return GDK_FRAME_CLOCK_GET_CLASS (clock)->get_requested (clock); -} - -/** - * gdk_frame_clock_get_frame_time_val: - * @clock: the clock - * @timeval: #GTimeVal to fill in with frame time - * - * Like gdk_frame_clock_get_frame_time() but returns the time as a - * #GTimeVal which may be handy with some APIs (such as - * #GdkPixbufAnimation). - */ -void -gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock, - GTimeVal *timeval) -{ - guint64 time_ms; - - g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); - - time_ms = gdk_frame_clock_get_frame_time (clock); - - timeval->tv_sec = time_ms / 1000; - timeval->tv_usec = (time_ms % 1000) * 1000; -} - gint64 gdk_frame_clock_get_frame_counter (GdkFrameClock *clock) { @@ -390,7 +331,7 @@ gdk_frame_clock_get_frame_counter (GdkFrameClock *clock) } gint64 -gdk_frame_clock_get_start (GdkFrameClock *clock) +gdk_frame_clock_get_history_start (GdkFrameClock *clock) { GdkFrameClockPrivate *priv; @@ -446,7 +387,7 @@ gdk_frame_clock_get_timings (GdkFrameClock *clock, } GdkFrameTimings * -gdk_frame_clock_get_current_frame_timings (GdkFrameClock *clock) +gdk_frame_clock_get_frame_timings (GdkFrameClock *clock) { GdkFrameClockPrivate *priv; @@ -458,26 +399,6 @@ gdk_frame_clock_get_current_frame_timings (GdkFrameClock *clock) } -GdkFrameTimings * -gdk_frame_clock_get_last_complete (GdkFrameClock *clock) -{ - GdkFrameClockPrivate *priv; - gint i; - - g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), NULL); - - priv = clock->priv; - - for (i = 0; i < priv->n_timings; i++) - { - gint pos = ((priv->current - i) + FRAME_HISTORY_MAX_LENGTH) % FRAME_HISTORY_MAX_LENGTH; - if (priv->timings[pos]->complete) - return priv->timings[pos]; - } - - return NULL; -} - #ifdef G_ENABLE_DEBUG void _gdk_frame_clock_debug_print_timings (GdkFrameClock *clock, diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 3780615bfa..11845ac108 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -63,29 +63,20 @@ guint64 gdk_frame_clock_get_frame_time (GdkFrameClock *clock); void gdk_frame_clock_request_phase (GdkFrameClock *clock, GdkFrameClockPhase phase); -GdkFrameClockPhase gdk_frame_clock_get_requested (GdkFrameClock *clock); - -void gdk_frame_clock_freeze (GdkFrameClock *clock); -void gdk_frame_clock_thaw (GdkFrameClock *clock); /* Frame history */ gint64 gdk_frame_clock_get_frame_counter (GdkFrameClock *clock); -gint64 gdk_frame_clock_get_start (GdkFrameClock *clock); +gint64 gdk_frame_clock_get_history_start (GdkFrameClock *clock); GdkFrameTimings *gdk_frame_clock_get_timings (GdkFrameClock *clock, gint64 frame_counter); -GdkFrameTimings *gdk_frame_clock_get_last_complete (GdkFrameClock *clock); -/* Convenience API */ -void gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock, - GTimeVal *timeval); +GdkFrameTimings *gdk_frame_clock_get_current_timings (GdkFrameClock *clock); void gdk_frame_clock_get_refresh_info (GdkFrameClock *clock, gint64 base_time, gint64 *refresh_interval_return, gint64 *presentation_time_return); -GdkFrameTimings *gdk_frame_clock_get_current_frame_timings (GdkFrameClock *clock); - G_END_DECLS #endif /* __GDK_FRAME_CLOCK_H__ */ diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index afb9430945..5974e269ea 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -220,8 +220,6 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) gdk_frame_clock_paint_idle, g_object_ref (clock_idle), (GDestroyNotify) g_object_unref); - - g_signal_emit_by_name (clock_idle, "frame-requested"); } } } @@ -286,7 +284,7 @@ gdk_frame_clock_paint_idle (void *data) if (priv->phase > GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT) { - timings = gdk_frame_clock_get_current_frame_timings (clock); + timings = gdk_frame_clock_get_current_timings (clock); } if (!skip_to_resume_events) @@ -302,7 +300,7 @@ gdk_frame_clock_paint_idle (void *data) priv->frame_time = compute_frame_time (clock_idle); _gdk_frame_clock_begin_frame (clock); - timings = gdk_frame_clock_get_current_frame_timings (clock); + timings = gdk_frame_clock_get_current_timings (clock); timings->frame_time = priv->frame_time; timings->slept_before = priv->sleep_serial != get_sleep_serial (); @@ -430,14 +428,6 @@ gdk_frame_clock_idle_request_phase (GdkFrameClock *clock, maybe_start_idle (clock_idle); } -static GdkFrameClockPhase -gdk_frame_clock_idle_get_requested (GdkFrameClock *clock) -{ - GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (clock)->priv; - - return priv->requested; -} - static void gdk_frame_clock_idle_freeze (GdkFrameClock *clock) { @@ -492,7 +482,6 @@ gdk_frame_clock_idle_class_init (GdkFrameClockIdleClass *klass) frame_clock_class->get_frame_time = gdk_frame_clock_idle_get_frame_time; frame_clock_class->request_phase = gdk_frame_clock_idle_request_phase; - frame_clock_class->get_requested = gdk_frame_clock_idle_get_requested; frame_clock_class->freeze = gdk_frame_clock_idle_freeze; frame_clock_class->thaw = gdk_frame_clock_idle_thaw; diff --git a/gdk/gdkframeclockprivate.h b/gdk/gdkframeclockprivate.h index c924550d6c..262b32746b 100644 --- a/gdk/gdkframeclockprivate.h +++ b/gdk/gdkframeclockprivate.h @@ -47,17 +47,15 @@ struct _GdkFrameClockClass { GObjectClass parent_class; - guint64 (* get_frame_time) (GdkFrameClock *clock); + guint64 (* get_frame_time) (GdkFrameClock *clock); - void (* request_phase) (GdkFrameClock *clock, - GdkFrameClockPhase phase); - GdkFrameClockPhase (* get_requested) (GdkFrameClock *clock); + void (* request_phase) (GdkFrameClock *clock, + GdkFrameClockPhase phase); - void (* freeze) (GdkFrameClock *clock); - void (* thaw) (GdkFrameClock *clock); + void (* freeze) (GdkFrameClock *clock); + void (* thaw) (GdkFrameClock *clock); /* signals */ - /* void (* frame_requested) (GdkFrameClock *clock); */ /* void (* flush_events) (GdkFrameClock *clock); */ /* void (* before_paint) (GdkFrameClock *clock); */ /* void (* update) (GdkFrameClock *clock); */ @@ -89,6 +87,9 @@ struct _GdkFrameTimings guint slept_before : 1; }; +void _gdk_frame_clock_freeze (GdkFrameClock *clock); +void _gdk_frame_clock_thaw (GdkFrameClock *clock); + void _gdk_frame_clock_begin_frame (GdkFrameClock *clock); void _gdk_frame_clock_debug_print_timings (GdkFrameClock *clock, GdkFrameTimings *timings); diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index c626b2c6b5..410eb165f6 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -4903,7 +4903,7 @@ gdk_window_freeze_toplevel_updates_libgtk_only (GdkWindow *window) g_return_if_fail (window->window_type != GDK_WINDOW_CHILD); window->update_and_descendants_freeze_count++; - gdk_frame_clock_freeze (gdk_window_get_frame_clock (window)); + _gdk_frame_clock_freeze (gdk_window_get_frame_clock (window)); } /** @@ -4924,7 +4924,7 @@ gdk_window_thaw_toplevel_updates_libgtk_only (GdkWindow *window) g_return_if_fail (window->update_and_descendants_freeze_count > 0); window->update_and_descendants_freeze_count--; - gdk_frame_clock_thaw (gdk_window_get_frame_clock (window)); + _gdk_frame_clock_thaw (gdk_window_get_frame_clock (window)); gdk_window_schedule_update (window); } diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 90a2eca921..85b50a75cb 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -686,7 +686,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, window_impl->toplevel->frame_pending) { window_impl->toplevel->frame_pending = FALSE; - gdk_frame_clock_thaw (gdk_window_get_frame_clock (event->any.window)); + _gdk_frame_clock_thaw (gdk_window_get_frame_clock (event->any.window)); } if (toplevel) @@ -1064,7 +1064,7 @@ find_frame_timings (GdkFrameClock *clock, { gint64 start_frame, end_frame, i; - start_frame = gdk_frame_clock_get_start (clock); + start_frame = gdk_frame_clock_get_history_start (clock); end_frame = gdk_frame_clock_get_frame_counter (clock); for (i = end_frame; i >= start_frame; i--) { @@ -1121,7 +1121,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, if (window_impl->toplevel->frame_pending) { window_impl->toplevel->frame_pending = FALSE; - gdk_frame_clock_thaw (clock); + _gdk_frame_clock_thaw (clock); } gdk_frame_clock_get_refresh_info (clock, diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index edb8591710..4f30287b23 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -291,7 +291,7 @@ gdk_x11_window_predict_presentation_time (GdkWindow *window) clock = gdk_window_get_frame_clock (window); - timings = gdk_frame_clock_get_current_frame_timings (clock); + timings = gdk_frame_clock_get_current_timings (clock); gdk_frame_clock_get_refresh_info (clock, timings->frame_time, @@ -372,7 +372,7 @@ gdk_x11_window_end_frame (GdkWindow *window) return; clock = gdk_window_get_frame_clock (window); - timings = gdk_frame_clock_get_current_frame_timings (clock); + timings = gdk_frame_clock_get_current_timings (clock); impl->toplevel->in_frame = FALSE; @@ -407,7 +407,7 @@ gdk_x11_window_end_frame (GdkWindow *window) gdk_atom_intern_static_string ("_NET_WM_FRAME_DRAWN"))) { impl->toplevel->frame_pending = TRUE; - gdk_frame_clock_freeze (gdk_window_get_frame_clock (window)); + _gdk_frame_clock_freeze (gdk_window_get_frame_clock (window)); timings->cookie = impl->toplevel->current_counter_value; } } diff --git a/tests/video-timer.c b/tests/video-timer.c index 69ae562410..1ddc260267 100644 --- a/tests/video-timer.c +++ b/tests/video-timer.c @@ -221,7 +221,7 @@ on_window_draw (GtkWidget *widget, if (displayed_frame->frame_counter == 0) { GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (window); - displayed_frame->frame_counter = gdk_frame_clock_get_frame_counter (clock); + displayed_frame->frame_counter = gdk_frame_clock_get_frame_counter (frame_clock); } } } @@ -238,7 +238,7 @@ collect_old_frames (void) gboolean remove = FALSE; l_next = l->next; - GdkFrameTimings *timings = gdk_frame_clock_get_timings (clock, + GdkFrameTimings *timings = gdk_frame_clock_get_timings (frame_clock, frame_data->frame_counter); if (timings == NULL) { @@ -303,7 +303,7 @@ static void on_update (GdkFrameClock *frame_clock, gpointer data) { - GdkFrameTimings *timings = gdk_frame_clock_get_current_frame_timings (frame_clock); + GdkFrameTimings *timings = gdk_frame_clock_get_current_timings (frame_clock); gint64 frame_time = gdk_frame_timings_get_frame_time (timings); gint64 predicted_presentation_time = gdk_frame_timings_get_predicted_presentation_time (timings); gint64 refresh_interval; From c37de57f14d57ece9d0dd80a01a33641d71def93 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Tue, 12 Feb 2013 18:26:17 -0500 Subject: [PATCH 054/208] GdkFrameTimings: add documentation --- gdk/gdkframetimings.c | 114 ++++++++++++++++++++++++++++++++++++++++++ gdk/gdkframetimings.h | 10 ++++ 2 files changed, 124 insertions(+) diff --git a/gdk/gdkframetimings.c b/gdk/gdkframetimings.c index deb2932ebe..5afdfaefc2 100644 --- a/gdk/gdkframetimings.c +++ b/gdk/gdkframetimings.c @@ -19,6 +19,19 @@ #include "gdkframeclockprivate.h" +/** + * SECTION:frametimings + * @Short_description: Object holding timing information for a single frame + * @Title: Frame timings + * + * A #GdkFrameTimings object holds timing information for a single frame + * of the application's displays. To retrieve #GdkFrameTimings objects, + * use gdk_frame_clock_get_timings() or gdk_frame_clock_get_current_timings(). + * The information in #GdkFrameTimings is useful for precise synchronization + * of video with the event or audio streams, and for measuring + * quality metrics for the application's display, such as latency and jitter. + */ + G_DEFINE_BOXED_TYPE (GdkFrameTimings, gdk_frame_timings, gdk_frame_timings_ref, gdk_frame_timings_unref) @@ -35,6 +48,15 @@ _gdk_frame_timings_new (gint64 frame_counter) return timings; } +/** + * gdk_frame_timings_ref: + * @timings: a #GdkFrameTimings + * + * Increases the reference count of @timings. + * + * Returns: @timings + * Since: 3.8 + */ GdkFrameTimings * gdk_frame_timings_ref (GdkFrameTimings *timings) { @@ -45,6 +67,15 @@ gdk_frame_timings_ref (GdkFrameTimings *timings) return timings; } +/** + * gdk_frame_timings_unref: + * @timings: a #GdkFrameTimings + * + * Decreases the reference count of @timings. If @timings + * is no longer referenced, it will be freed. + * + * Since: 3.8 + */ void gdk_frame_timings_unref (GdkFrameTimings *timings) { @@ -58,12 +89,40 @@ gdk_frame_timings_unref (GdkFrameTimings *timings) } } +/** + * gdk_frame_timings_get_frame_counter: + * @timings: a #GdkFrameTimings + * + * Gets the frame counter value of the #GdkFrameClock when this + * this frame was drawn. + * + * Returns: the frame counter value for this frame + * Since: 3.8 + */ gint64 gdk_frame_timings_get_frame_counter (GdkFrameTimings *timings) { return timings->frame_counter; } +/** + * gdk_frame_timings_complete: + * @timings: a #GdkFrameTimings + * + * The timing information in a #GdkFrameTimings is filled in + * incrementally as the frame as drawn and passed off to the + * window system for processing and display to the user. The + * accessor functions for #GdkFrameTimings can return 0 to + * indicate an unavailable value for two reasons: either because + * the information is not yet available, or because it isn't + * available at all. Once gdk_frame_timings_complete() returns + * %TRUE for a frame, you can be certain that no further values + * will become available and be stored in the #GdkFrameTimings. + * + * Returns: %TRUE if all information that will be available + * for the frame has been filled in. + * Since: 3.8 + */ gboolean gdk_frame_timings_get_complete (GdkFrameTimings *timings) { @@ -72,6 +131,17 @@ gdk_frame_timings_get_complete (GdkFrameTimings *timings) return timings->complete; } +/** + * gdk_frame_timings_get_frame_time: + * @timings: A #GdkFrameTimings + * + * Returns the frame time for the frame. This is the time value + * that is typically used to time animations for the frame. See + * gdk_frame_clock_get_frame_time(). + * + * Returns: the frame time for the frame, in the timescale + * of g_get_monotonic_time() + */ gint64 gdk_frame_timings_get_frame_time (GdkFrameTimings *timings) { @@ -80,6 +150,18 @@ gdk_frame_timings_get_frame_time (GdkFrameTimings *timings) return timings->frame_time; } +/** + * gdk_frame_timings_get_presentation_time: + * @timings: a #GdkFrameTimings + * + * Reurns the presentation time. This is the time at which the frame + * became visible to the user. + * + * Returns: the time the frame was displayed to the user, in the + * timescale of g_get_monotonic_time(), or 0 if no presentation + * time is available. See gdk_frame_timings_get_complete() + * Since: 3.8 + */ gint64 gdk_frame_timings_get_presentation_time (GdkFrameTimings *timings) { @@ -88,6 +170,25 @@ gdk_frame_timings_get_presentation_time (GdkFrameTimings *timings) return timings->presentation_time; } +/** + * gdk_frame_timings_get_predicted_presentation_time: + * @timings: a #GdkFrameTimings + * + * Gets the predicted time at which this frame will be displayed. Although + * no predicted time may be available, if one is available, it will + * be available while the frame is being generated, in contrast to + * gdk_frame_timings_get_presentation_time(), which is only available + * after the frame has been presented. In general, if you are simply + * animating, you should use gdk_frame_clock_get_frame_time() rather + * than this function, but this function is useful for applications + * that want exact control over latency. For example, a movie player + * may want this information for Audio/Video synchronization. + * + * Returns: The predicted time at which the frame will be presented, + * in the timescale of g_get_monotonic_time(), or 0 if no predicted + * presentation time is available. + * Since: 3.8 + */ gint64 gdk_frame_timings_get_predicted_presentation_time (GdkFrameTimings *timings) { @@ -96,6 +197,19 @@ gdk_frame_timings_get_predicted_presentation_time (GdkFrameTimings *timings) return timings->predicted_presentation_time; } +/** + * gdk_frame_timings_get_refresh_interval: + * @timings: a #GdkFrameTimings + * + * Gets the natural interval between presentation times for + * the display that this frame was displayed on. Frame presentation + * usually happens during the "vertical blanking interval". + * + * Returns: the refresh interval of the display, in microseconds, + * or 0 if the refresh interval is not available. + * See gdk_frame_timings_get_complete(). + * Since: 3.8 + */ gint64 gdk_frame_timings_get_refresh_interval (GdkFrameTimings *timings) { diff --git a/gdk/gdkframetimings.h b/gdk/gdkframetimings.h index 0fb1e20c8c..b345667b9c 100644 --- a/gdk/gdkframetimings.h +++ b/gdk/gdkframetimings.h @@ -23,22 +23,32 @@ #define __GDK_FRAME_TIMINGS_H__ #include +#include G_BEGIN_DECLS typedef struct _GdkFrameTimings GdkFrameTimings; +GDK_AVAILABLE_IN_3_8 GType gdk_frame_timings_get_type (void) G_GNUC_CONST; +GDK_AVAILABLE_IN_3_8 GdkFrameTimings *gdk_frame_timings_ref (GdkFrameTimings *timings); +GDK_AVAILABLE_IN_3_8 void gdk_frame_timings_unref (GdkFrameTimings *timings); +GDK_AVAILABLE_IN_3_8 gint64 gdk_frame_timings_get_frame_counter (GdkFrameTimings *timings); +GDK_AVAILABLE_IN_3_8 gboolean gdk_frame_timings_get_complete (GdkFrameTimings *timings); +GDK_AVAILABLE_IN_3_8 gint64 gdk_frame_timings_get_frame_time (GdkFrameTimings *timings); +GDK_AVAILABLE_IN_3_8 gint64 gdk_frame_timings_get_presentation_time (GdkFrameTimings *timings); +GDK_AVAILABLE_IN_3_8 gint64 gdk_frame_timings_get_refresh_interval (GdkFrameTimings *timings); +GDK_AVAILABLE_IN_3_8 gint64 gdk_frame_timings_get_predicted_presentation_time (GdkFrameTimings *timings); G_END_DECLS From 815ef1bcc0c078929e65861ce2f719e9473ebcf5 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Tue, 12 Feb 2013 21:42:49 -0500 Subject: [PATCH 055/208] GdkFrameClock: update documentation --- gdk/gdkframeclock.c | 264 ++++++++++++++++++++++++++++---------------- gdk/gdkframeclock.h | 37 +++++-- 2 files changed, 198 insertions(+), 103 deletions(-) diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index 4c5bd513a8..00a1631c13 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -34,45 +34,39 @@ * @Short_description: Frame clock syncs painting to a window or display * @Title: Frame clock * - * A #GdkFrameClock tells the application when to repaint a window. - * This may be synced to the vertical refresh rate of the monitor, for - * example. Even when the frame clock uses a simple timer rather than - * a hardware-based vertical sync, the frame clock helps because it - * ensures everything paints at the same time (reducing the total - * number of frames). The frame clock can also automatically stop - * painting when it knows the frames will not be visible, or scale back - * animation framerates. + * A #GdkFrameClock tells the application when to update and repaint a + * window. This may be synced to the vertical refresh rate of the + * monitor, for example. Even when the frame clock uses a simple timer + * rather than a hardware-based vertical sync, the frame clock helps + * because it ensures everything paints at the same time (reducing the + * total number of frames). The frame clock can also automatically + * stop painting when it knows the frames will not be visible, or + * scale back animation framerates. * * #GdkFrameClock is designed to be compatible with an OpenGL-based * implementation or with mozRequestAnimationFrame in Firefox, * for example. * * A frame clock is idle until someone requests a frame with - * gdk_frame_clock_request_phase(). At that time, the frame clock - * emits its GdkFrameClock:frame-requested signal if no frame was - * already pending. + * gdk_frame_clock_request_phase(). At some later point that makes + * sense for the synchronization being implemented, the clock will + * process a frame and emit signals for each phase that has been + * requested. (See the signals of the #GdkFrameClock class for + * documentation of the phases. GDK_FRAME_CLOCK_PHASE_UPDATE and the + * ::update signal are most interesting for application writers, and + * are used to update the animations, using the frame time given by + * gdk_frame_clock_get_frame_time(). * - * At some later time after the frame is requested, the frame clock - * MAY indicate that a frame should be painted. To paint a frame the - * clock will: Emit GdkFrameClock:before-paint; update the frame time - * in the default handler for GdkFrameClock:before-paint; emit - * GdkFrameClock:paint; emit GdkFrameClock:after-paint. The app - * should paint in a handler for the paint signal. - * - * If a given frame is not painted (the clock is idle), the frame time - * should still update to a conceptual "last frame." i.e. the frame - * time will keep moving forward roughly with wall clock time. - * - * The frame time is in milliseconds. However, it should not be - * thought of as having any particular relationship to wall clock - * time. Unlike wall clock time, it "snaps" to conceptual frame times - * so is low-resolution; it is guaranteed to never move backward (so - * say you reset your computer clock, the frame clock will not reset); - * and the frame clock is allowed to drift. For example nicer - * results when painting with vertical refresh sync may be obtained by - * painting as rapidly as possible, but always incrementing the frame - * time by the frame length on each frame. This results in a frame - * time that doesn't have a lot to do with wall clock time. + * The frame time is reported in microseconds and generally in the same + * timescale as g_get_monotonic_time(), however, it is not the same + * as g_get_monotonic_time(). The frame time does not advance during + * the time a frame is being painted, and outside of a frame, an attempt + * is made so that all calls to gdk_frame_clock_get_frame_time() that + * are called at a "similar" time get the same value. This means that + * if different animations are timed by looking at the difference in + * time between an initial value from gdk_frame_clock_get_frame_time() + * and the value inside the ::update signal of the clock, they will + * stay exactly synchronized. */ G_DEFINE_ABSTRACT_TYPE (GdkFrameClock, gdk_frame_clock, G_TYPE_OBJECT) @@ -124,7 +118,9 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass) * GdkFrameClock::flush-events: * @clock: the frame clock emitting the signal * - * FIXME. + * This signal is used to flush pending motion events that + * are being batched up and compressed together. Applications + * should not handle this signal. */ signals[FLUSH_EVENTS] = g_signal_new (g_intern_static_string ("flush-events"), @@ -139,9 +135,8 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass) * GdkFrameClock::before-paint: * @clock: the frame clock emitting the signal * - * This signal is emitted immediately before the paint signal and - * indicates that the frame time has been updated, and signal - * handlers should perform any preparatory work before painting. + * This signal begins processing of the frame. Applications + * should generally not handle this signal. */ signals[BEFORE_PAINT] = g_signal_new (g_intern_static_string ("before-paint"), @@ -156,7 +151,12 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass) * GdkFrameClock::update: * @clock: the frame clock emitting the signal * - * FIXME. + * This signal is emitted as the first step of toolkit and + * application processing of the frame. Animations should + * be updated using gdk_frame_clock_get_frame_time(). + * Applications can connect directly to this signal, or + * use gtk_widget_add_tick_callback() as a more convenient + * interface. */ signals[UPDATE] = g_signal_new (g_intern_static_string ("update"), @@ -171,9 +171,10 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass) * GdkFrameClock::layout: * @clock: the frame clock emitting the signal * - * This signal is emitted immediately before the paint signal and - * indicates that the frame time has been updated, and signal - * handlers should perform any preparatory work before painting. + * This signal is emitted as the second step of toolkit and + * application processing of the frame. Any work to update + * sizes and positions of application elements should be + * performed. GTK normally handles this internally. */ signals[LAYOUT] = g_signal_new (g_intern_static_string ("layout"), @@ -185,11 +186,14 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass) G_TYPE_NONE, 0); /** - * GdkFrameClock::paint: + * GdkFrameClock::layout: * @clock: the frame clock emitting the signal * - * Signal handlers for this signal should paint the window, screen, - * or whatever they normally paint. + * This signal is emitted as the third step of toolkit and + * application processing of the frame. The frame is + * repainted. GDK normally handles this internally and + * produce expose events, which are turned into GTK + * GtkWidget::draw signals. */ signals[PAINT] = g_signal_new (g_intern_static_string ("paint"), @@ -204,10 +208,8 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass) * GdkFrameClock::after-paint: * @clock: the frame clock emitting the signal * - * This signal is emitted immediately after the paint signal and - * allows signal handlers to do anything they'd like to do after - * painting has been completed. This is a relatively good time to do - * "expensive" processing in order to get it done in between frames. + * This signal ends processing of the frame. Applications + * should generally not handle this signal. */ signals[AFTER_PAINT] = g_signal_new (g_intern_static_string ("after-paint"), @@ -222,7 +224,9 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass) * GdkFrameClock::resume-events: * @clock: the frame clock emitting the signal * - * FIXME. + * This signal is emitted after processing of the frame is + * finished, and is handled internally by GTK+ to resume normal + * event processing. Applications should not handle this signal. */ signals[RESUME_EVENTS] = g_signal_new (g_intern_static_string ("resume-events"), @@ -252,52 +256,46 @@ gdk_frame_clock_init (GdkFrameClock *clock) /** * gdk_frame_clock_get_frame_time: - * @clock: the clock + * @frame_clock: a #GdkFrameClock * * Gets the time that should currently be used for animations. Inside - * a paint, it's the time used to compute the animation position of - * everything in a frame. Outside a paint, it's the time of the - * conceptual "previous frame," which may be either the actual - * previous frame time, or if that's too old, an updated time. + * the processing of a frame, it's the time used to compute the + * animation position of everything in a frame. Outside of a frame, it's + * the time of the conceptual "previous frame," which may be either + * the actual previous frame time, or if that's too old, an updated + * time. * - * The returned time has no relationship to wall clock time. It - * increases roughly at 1 millisecond per wall clock millisecond, and - * it never decreases, but its value is only meaningful relative to - * previous frame clock times. - * - * - * Since: 3.0 - * Return value: a timestamp in milliseconds + * Since: 3.8 + * Return value: a timestamp in microseconds, in the timescale of + * of g_get_monotonic_time(). */ guint64 -gdk_frame_clock_get_frame_time (GdkFrameClock *clock) +gdk_frame_clock_get_frame_time (GdkFrameClock *frame_clock) { - g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), 0); + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (frame_clock), 0); - return GDK_FRAME_CLOCK_GET_CLASS (clock)->get_frame_time (clock); + return GDK_FRAME_CLOCK_GET_CLASS (frame_clock)->get_frame_time (frame_clock); } /** * gdk_frame_clock_request_phase: - * @clock: the clock + * @frame_clock: a #GdkFrameClock * - * Asks the frame clock to paint a frame. The frame - * may or may not ever be painted (the frame clock may - * stop itself for whatever reason), but the goal in - * normal circumstances would be to paint the frame - * at the next expected frame time. For example - * if the clock is running at 60fps the frame would - * ideally be painted within 1000/60=16 milliseconds. + * Asks the frame clock to run a particular phase. The signal + * corresponding the requested phase will be emitted the next + * time the frame clock processes. Multiple calls to + * gdk_frame_clock_request_phase() will be combined togethe + * and only one frame processed. * - * Since: 3.0 + * Since: 3.8 */ void -gdk_frame_clock_request_phase (GdkFrameClock *clock, +gdk_frame_clock_request_phase (GdkFrameClock *frame_clock, GdkFrameClockPhase phase) { - g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); + g_return_if_fail (GDK_IS_FRAME_CLOCK (frame_clock)); - GDK_FRAME_CLOCK_GET_CLASS (clock)->request_phase (clock, phase); + GDK_FRAME_CLOCK_GET_CLASS (frame_clock)->request_phase (frame_clock, phase); } @@ -318,38 +316,66 @@ _gdk_frame_clock_thaw (GdkFrameClock *clock) GDK_FRAME_CLOCK_GET_CLASS (clock)->thaw (clock); } +/** + * gdk_frame_clock_get_frame_counter: + * @frame_clock: a #GdkFrameClock + * + * A #GdkFrameClock maintains a 64-bit counter that increments for + * each frame drawn. + * + * Returns: inside frame processing, the value of the frame counter + * for the current frame. Outside of frame processing, the frame + * counter for the last frame. + * Since: 3.8 + */ gint64 -gdk_frame_clock_get_frame_counter (GdkFrameClock *clock) +gdk_frame_clock_get_frame_counter (GdkFrameClock *frame_clock) { GdkFrameClockPrivate *priv; - g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), 0); + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (frame_clock), 0); - priv = clock->priv; + priv = frame_clock->priv; return priv->frame_counter; } +/** + * gdk_frame_clock_get_history_start: + * @frame_clock: a #GdkFrameClock + * + * #GdkFrameClock internally keeps a history of #GdkFrameTiming + * objects for recent frames that can be retrieved with + * gdk_frame_clock_get_timings(). The set of stored frames + * is the set from the counter values given by + * gdk_frame_clock_get_history_start() and + * gdk_frame_clock_get_frame_counter(), inclusive. + * + * Return value: the frame counter value for the oldest frame + * that is available in the internal frame history of the + * #GdkFrameClock. + * Since: 3.8 + */ gint64 -gdk_frame_clock_get_history_start (GdkFrameClock *clock) +gdk_frame_clock_get_history_start (GdkFrameClock *frame_clock) { GdkFrameClockPrivate *priv; - g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), 0); + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (frame_clock), 0); - priv = clock->priv; + priv = frame_clock->priv; return priv->frame_counter + 1 - priv->n_timings; } void -_gdk_frame_clock_begin_frame (GdkFrameClock *clock) +_gdk_frame_clock_begin_frame (GdkFrameClock *frame_clock) { GdkFrameClockPrivate *priv; - g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); + g_return_if_fail (GDK_IS_FRAME_CLOCK (frame_clock)); - priv = clock->priv; + priv = frame_clock->priv; priv->frame_counter++; priv->current = (priv->current + 1) % FRAME_HISTORY_MAX_LENGTH; @@ -364,16 +390,31 @@ _gdk_frame_clock_begin_frame (GdkFrameClock *clock) priv->timings[priv->current] = _gdk_frame_timings_new (priv->frame_counter); } +/** + * gdk_frame_clock_get_timings: + * @frame_clock: a #GdkFrameClock + * @frame_counter: the frame counter value identifying the frame to + * be received. + * + * Retrieves a #GdkFrameTimings object holding timing information + * for the current frame or a recent frame. The #GdkFrameTimings + * object may not yet be complete: see gdk_frame_timings_get_complete(). + * + * Return value: the #GdkFrameTimings object for the specified + * frame, or %NULL if it is not available. See + * gdk_frame_clock_get_history_start(). + * Since: 3.8 + */ GdkFrameTimings * -gdk_frame_clock_get_timings (GdkFrameClock *clock, +gdk_frame_clock_get_timings (GdkFrameClock *frame_clock, gint64 frame_counter) { GdkFrameClockPrivate *priv; gint pos; - g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), NULL); + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (frame_clock), NULL); - priv = clock->priv; + priv = frame_clock->priv; if (frame_counter > priv->frame_counter) return NULL; @@ -386,16 +427,28 @@ gdk_frame_clock_get_timings (GdkFrameClock *clock, return priv->timings[pos]; } +/** + * gdk_frame_clock_get_current_timings: + * @frame_clock: a #GdkFrameClock + * + * Gets the frame timings for the current frame. + * + * Returns: the #GdkFrameTimings for the frame currently being + * processed, or even no frame is being processed, for the + * previous frame. Before any frames have been procesed, + * returns %NULL. + * Since: 3.8 + */ GdkFrameTimings * -gdk_frame_clock_get_frame_timings (GdkFrameClock *clock) +gdk_frame_clock_get_current_timings (GdkFrameClock *frame_clock) { GdkFrameClockPrivate *priv; - g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), 0); + g_return_val_if_fail (GDK_IS_FRAME_CLOCK (frame_clock), 0); - priv = clock->priv; + priv = frame_clock->priv; - return gdk_frame_clock_get_timings (clock, priv->frame_counter); + return gdk_frame_clock_get_timings (frame_clock, priv->frame_counter); } @@ -436,17 +489,36 @@ _gdk_frame_clock_debug_print_timings (GdkFrameClock *clock, #define DEFAULT_REFRESH_INTERVAL 16667 /* 16.7ms (1/60th second) */ #define MAX_HISTORY_AGE 150000 /* 150ms */ +/** + * gdk_frame_clock_get_refresh_info: + * @frame_clock: a #GdkFrameClock + * @base_time: base time for determining a presentaton time + * @refresh_interval_return: a location to store the determined refresh + * interval, or %NULL. A default refresh interval of 1/60th of + * a second will be stored if no history is present. + * @presentation_time_return: a location to store the next + * candidate presentation time after the given base time. + * 0 will be will be stored if no history is present. + * + * Using the frame history stored in the frame clock, finds the last + * known presentation time and refresh interval, and assuming that + * presentation times are separated by the refresh interval, + * predicts a presentation time that is a multiple of the refresh + * interval after the last presentation time, and later than @base_time. + * + * Since: 3.8 + */ void -gdk_frame_clock_get_refresh_info (GdkFrameClock *clock, +gdk_frame_clock_get_refresh_info (GdkFrameClock *frame_clock, gint64 base_time, gint64 *refresh_interval_return, gint64 *presentation_time_return) { gint64 frame_counter; - g_return_if_fail (GDK_IS_FRAME_CLOCK (clock)); + g_return_if_fail (GDK_IS_FRAME_CLOCK (frame_clock)); - frame_counter = gdk_frame_clock_get_frame_counter (clock); + frame_counter = gdk_frame_clock_get_frame_counter (frame_clock); if (presentation_time_return) *presentation_time_return = 0; @@ -455,7 +527,7 @@ gdk_frame_clock_get_refresh_info (GdkFrameClock *clock, while (TRUE) { - GdkFrameTimings *timings = gdk_frame_clock_get_timings (clock, frame_counter); + GdkFrameTimings *timings = gdk_frame_clock_get_timings (frame_clock, frame_counter); gint64 presentation_time; gint64 refresh_interval; diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 11845ac108..2459708d01 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -46,6 +46,23 @@ typedef struct _GdkFrameClock GdkFrameClock; typedef struct _GdkFrameClockPrivate GdkFrameClockPrivate; typedef struct _GdkFrameClockClass GdkFrameClockClass; +/** + * GdkFrameClockPhase: + * @GDK_FRAME_CLOCK_PHASE_NONE: no phase + * @GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS: corresponds to GdkFrameClock::flush-events. Should not be handled by applications. + * @GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT: corresponds to GdkFrameClock::flush-events. Should not be handled by applications. + * @GDK_FRAME_CLOCK_PHASE_UPDATE: corresponds to GdkFrameClock::update. + * @GDK_FRAME_CLOCK_PHASE_LAYOUT: corresponds to GdkFrameClock::layout. + * @GDK_FRAME_CLOCK_PHASE_PAINT: corresponds to GdkFrameClock::paint. + * @GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS: corresponds to GdkFrameClock::resume-events. Should not be handled by applications. + * @GDK_FRAME_CLOCK_PHASE_AFTER_PAINT: corresponds to GdkFrameClock::after-paint. Should not be handled by applications. + * + * #GdkFrameClockPhase is used to represent the different paint clock + * phases that can be requested. The element of the enumeration + * correspond to the signals of #GdkPaintClock. + * + * Since: 3.4 + **/ typedef enum { GDK_FRAME_CLOCK_PHASE_NONE = 0, GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS = 1 << 0, @@ -59,20 +76,26 @@ typedef enum { GType gdk_frame_clock_get_type (void) G_GNUC_CONST; -guint64 gdk_frame_clock_get_frame_time (GdkFrameClock *clock); +guint64 gdk_frame_clock_get_frame_time (GdkFrameClock *frame_clock); -void gdk_frame_clock_request_phase (GdkFrameClock *clock, +GDK_AVAILABLE_IN_3_8 +void gdk_frame_clock_request_phase (GdkFrameClock *frame_clock, GdkFrameClockPhase phase); /* Frame history */ -gint64 gdk_frame_clock_get_frame_counter (GdkFrameClock *clock); -gint64 gdk_frame_clock_get_history_start (GdkFrameClock *clock); -GdkFrameTimings *gdk_frame_clock_get_timings (GdkFrameClock *clock, +GDK_AVAILABLE_IN_3_8 +gint64 gdk_frame_clock_get_frame_counter (GdkFrameClock *frame_clock); +GDK_AVAILABLE_IN_3_8 +gint64 gdk_frame_clock_get_history_start (GdkFrameClock *frame_clock); +GDK_AVAILABLE_IN_3_8 +GdkFrameTimings *gdk_frame_clock_get_timings (GdkFrameClock *frame_clock, gint64 frame_counter); -GdkFrameTimings *gdk_frame_clock_get_current_timings (GdkFrameClock *clock); +GDK_AVAILABLE_IN_3_8 +GdkFrameTimings *gdk_frame_clock_get_current_timings (GdkFrameClock *frame_clock); -void gdk_frame_clock_get_refresh_info (GdkFrameClock *clock, +GDK_AVAILABLE_IN_3_8 +void gdk_frame_clock_get_refresh_info (GdkFrameClock *frame_clock, gint64 base_time, gint64 *refresh_interval_return, gint64 *presentation_time_return); From 63a36aa434d8566d891ef36e9ae2a04199513337 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 13 Feb 2013 01:03:52 -0500 Subject: [PATCH 056/208] Merge with Merge GdkFrameHistory into GdkFrameClock --- tests/animated-resizing.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/animated-resizing.c b/tests/animated-resizing.c index 96aa32ae14..df2fe48c92 100644 --- a/tests/animated-resizing.c +++ b/tests/animated-resizing.c @@ -220,7 +220,7 @@ on_frame (double progress) int jitter; if (frame_clock) - handle_frame_stats (clock); + handle_frame_stats (frame_clock); angle = 2 * M_PI * progress; jitter = WINDOW_SIZE_JITTER * sin(angle); From 4c9749ee9e5e57c237ed2f1330ed826e4cc18da6 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 13 Feb 2013 08:35:05 -0500 Subject: [PATCH 057/208] gdk_frame_clock_get_frame_time(): use gint64 for time --- gdk/gdkframeclock.c | 2 +- gdk/gdkframeclock.h | 2 +- gdk/gdkframeclockidle.c | 20 ++++++++++---------- gdk/gdkframeclockprivate.h | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index 00a1631c13..9c3d4238cb 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -269,7 +269,7 @@ gdk_frame_clock_init (GdkFrameClock *clock) * Return value: a timestamp in microseconds, in the timescale of * of g_get_monotonic_time(). */ -guint64 +gint64 gdk_frame_clock_get_frame_time (GdkFrameClock *frame_clock) { g_return_val_if_fail (GDK_IS_FRAME_CLOCK (frame_clock), 0); diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 2459708d01..7b011caa25 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -76,7 +76,7 @@ typedef enum { GType gdk_frame_clock_get_type (void) G_GNUC_CONST; -guint64 gdk_frame_clock_get_frame_time (GdkFrameClock *frame_clock); +gint64 gdk_frame_clock_get_frame_time (GdkFrameClock *frame_clock); GDK_AVAILABLE_IN_3_8 void gdk_frame_clock_request_phase (GdkFrameClock *frame_clock, diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 5974e269ea..5e751b3d92 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -37,9 +37,9 @@ struct _GdkFrameClockIdlePrivate { GTimer *timer; /* timer_base is used to avoid ever going backward */ - guint64 timer_base; - guint64 frame_time; - guint64 min_next_frame_time; + gint64 timer_base; + gint64 frame_time; + gint64 min_next_frame_time; gint64 sleep_serial; guint flush_idle_id; @@ -135,12 +135,12 @@ gdk_frame_clock_idle_finalize (GObject *object) G_OBJECT_CLASS (gdk_frame_clock_idle_parent_class)->finalize (object); } -static guint64 +static gint64 compute_frame_time (GdkFrameClockIdle *idle) { GdkFrameClockIdlePrivate *priv = idle->priv; - guint64 computed_frame_time; - guint64 elapsed; + gint64 computed_frame_time; + gint64 elapsed; elapsed = g_get_monotonic_time () + priv->timer_base; if (elapsed < priv->frame_time) @@ -160,11 +160,11 @@ compute_frame_time (GdkFrameClockIdle *idle) return computed_frame_time; } -static guint64 +static gint64 gdk_frame_clock_idle_get_frame_time (GdkFrameClock *clock) { GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (clock)->priv; - guint64 computed_frame_time; + gint64 computed_frame_time; /* can't change frame time during a paint */ if (priv->phase != GDK_FRAME_CLOCK_PHASE_NONE && @@ -196,8 +196,8 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) if (priv->min_next_frame_time != 0) { - guint64 now = compute_frame_time (clock_idle); - guint64 min_interval_us = MAX (priv->min_next_frame_time, now) - now; + gint64 now = compute_frame_time (clock_idle); + gint64 min_interval_us = MAX (priv->min_next_frame_time, now) - now; min_interval = (min_interval_us + 500) / 1000; } diff --git a/gdk/gdkframeclockprivate.h b/gdk/gdkframeclockprivate.h index 262b32746b..0ce74da23e 100644 --- a/gdk/gdkframeclockprivate.h +++ b/gdk/gdkframeclockprivate.h @@ -47,7 +47,7 @@ struct _GdkFrameClockClass { GObjectClass parent_class; - guint64 (* get_frame_time) (GdkFrameClock *clock); + gint64 (* get_frame_time) (GdkFrameClock *clock); void (* request_phase) (GdkFrameClock *clock, GdkFrameClockPhase phase); From 6e986afbaead8b3745901a4ef1701041d905f431 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Thu, 14 Feb 2013 13:50:55 -0500 Subject: [PATCH 058/208] Small documentation fixes for frame synchronization Found by Benjamin Otte --- gdk/gdkframeclock.h | 4 ++-- gtk/gtkstylecontext.c | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 7b011caa25..f6529795af 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -50,7 +50,7 @@ typedef struct _GdkFrameClockClass GdkFrameClockClass; * GdkFrameClockPhase: * @GDK_FRAME_CLOCK_PHASE_NONE: no phase * @GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS: corresponds to GdkFrameClock::flush-events. Should not be handled by applications. - * @GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT: corresponds to GdkFrameClock::flush-events. Should not be handled by applications. + * @GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT: corresponds to GdkFrameClock::before-paint. Should not be handled by applications. * @GDK_FRAME_CLOCK_PHASE_UPDATE: corresponds to GdkFrameClock::update. * @GDK_FRAME_CLOCK_PHASE_LAYOUT: corresponds to GdkFrameClock::layout. * @GDK_FRAME_CLOCK_PHASE_PAINT: corresponds to GdkFrameClock::paint. @@ -61,7 +61,7 @@ typedef struct _GdkFrameClockClass GdkFrameClockClass; * phases that can be requested. The element of the enumeration * correspond to the signals of #GdkPaintClock. * - * Since: 3.4 + * Since: 3.8 **/ typedef enum { GDK_FRAME_CLOCK_PHASE_NONE = 0, diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index a57873cae7..7fa5ee7ba1 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -2676,7 +2676,8 @@ gtk_style_context_set_frame_clock (GtkStyleContext *context, * * Returns the #GdkFrameClock to which @context is attached. * - * Returns: (transfer none): a #GdkFrameClock. + * Returns: (transfer none): a #GdkFrameClock, or %NULL + * if @context does not have an attached frame clock. * Since: 3.8 **/ GdkFrameClock * From ff935c5738bd1898f3cb1d200c713772d00a095b Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Thu, 14 Feb 2013 13:52:09 -0500 Subject: [PATCH 059/208] Ignore window manager protocol messages for destroyed windows If we get, for example, a _NET_WM_FRAME_DRAWN or _NET_WM_PING message on a destroyed window, then we should just ignore it. --- gdk/x11/gdkdisplay-x11.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 85b50a75cb..c0bb6f5219 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -1087,7 +1087,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, GdkDisplay *display; Atom atom; - if (!GDK_IS_X11_WINDOW (win)) + if (!GDK_IS_X11_WINDOW (win) || GDK_WINDOW_DESTROYED (win)) return GDK_FILTER_CONTINUE; if (xevent->type != ClientMessage) @@ -1100,7 +1100,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, if (xevent->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_FRAME_DRAWN")) { GdkWindowImplX11 *window_impl; - window_impl = GDK_WINDOW_IMPL_X11 (event->any.window->impl); + window_impl = GDK_WINDOW_IMPL_X11 (win->impl); if (window_impl->toplevel) { guint32 d0 = xevent->xclient.data.l[0]; @@ -1112,7 +1112,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, gint64 frame_drawn_time = ((guint64)d3 << 32) | d2; gint64 refresh_interval, presentation_time; - GdkFrameClock *clock = gdk_window_get_frame_clock (event->any.window); + GdkFrameClock *clock = gdk_window_get_frame_clock (win); GdkFrameTimings *timings = find_frame_timings (clock, serial); if (timings) @@ -1138,7 +1138,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, if (xevent->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_FRAME_TIMINGS")) { GdkWindowImplX11 *window_impl; - window_impl = GDK_WINDOW_IMPL_X11 (event->any.window->impl); + window_impl = GDK_WINDOW_IMPL_X11 (win->impl); if (window_impl->toplevel) { guint32 d0 = xevent->xclient.data.l[0]; @@ -1148,7 +1148,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, guint64 serial = ((guint64)d1 << 32) | d0; - GdkFrameClock *clock = gdk_window_get_frame_clock (event->any.window); + GdkFrameClock *clock = gdk_window_get_frame_clock (win); GdkFrameTimings *timings = find_frame_timings (clock, serial); if (timings) @@ -1198,7 +1198,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, } else if (atom == gdk_x11_get_xatom_by_name_for_display (display, "WM_TAKE_FOCUS")) { - GdkToplevelX11 *toplevel = _gdk_x11_window_get_toplevel (event->any.window); + GdkToplevelX11 *toplevel = _gdk_x11_window_get_toplevel (win); /* There is no way of knowing reliably whether we are viewable; * so trap errors asynchronously around the XSetInputFocus call @@ -1232,7 +1232,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev, else if (atom == gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_SYNC_REQUEST") && GDK_X11_DISPLAY (display)->use_sync) { - GdkToplevelX11 *toplevel = _gdk_x11_window_get_toplevel (event->any.window); + GdkToplevelX11 *toplevel = _gdk_x11_window_get_toplevel (win); if (toplevel) { #ifdef HAVE_XSYNC From e2705544ab73434455e0837fc5702f6c6881ad85 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Thu, 14 Feb 2013 14:51:33 -0500 Subject: [PATCH 060/208] Don't compress motion events for different devices A switch of device may be significant for an application, so don't compress motion events if they are for different devices. This simple handling isn't sufficient if we have competing event streams from two different pointer events, but we don't expect this case to be common. --- gdk/gdkevents.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c index 8e05a8edcd..4a9d0b965a 100644 --- a/gdk/gdkevents.c +++ b/gdk/gdkevents.c @@ -268,6 +268,7 @@ _gdk_event_queue_handle_motion_compression (GdkDisplay *display) GList *tmp_list; GList *pending_motions = NULL; GdkWindow *pending_motion_window = NULL; + GdkDevice *pending_motion_device = NULL; /* If the last N events in the event queue are motion notify * events for the same window, drop all but the last */ @@ -288,7 +289,12 @@ _gdk_event_queue_handle_motion_compression (GdkDisplay *display) pending_motion_window != event->event.motion.window) break; + if (pending_motion_device != NULL && + pending_motion_device != event->event.motion.device) + break; + pending_motion_window = event->event.motion.window; + pending_motion_device = event->event.motion.device; pending_motions = tmp_list; tmp_list = tmp_list->prev; From 7bb07317f303d204305f6fdac72020dd257025e6 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Thu, 14 Feb 2013 16:24:27 -0500 Subject: [PATCH 061/208] GtkTickCallback: document use of G_SOURCE_CONTINUE/REMOVE for return value Document that G_SOURCE_CONTINUE and G_SOURCE_REMOVE are the preferred return values from a tick callback. --- gtk/gtkwidget.c | 6 +++--- gtk/gtkwidget.h | 4 ++-- tests/animated-resizing.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 4b460661ec..79cf9e2ea1 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4584,9 +4584,9 @@ gtk_widget_on_frame_clock_update (GdkFrameClock *frame_clock, ref_tick_callback_info (info); if (!info->destroyed) { - if (!info->callback (widget, - frame_clock, - info->user_data)) + if (info->callback (widget, + frame_clock, + info->user_data) == G_SOURCE_REMOVE) { destroy_tick_callback_info (widget, info, l); } diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index c082c13510..064fb07878 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -94,8 +94,8 @@ typedef void (*GtkCallback) (GtkWidget *widget, * * Callback type for adding a function to update animations. See gtk_widget_add_tick_callback(). * - * Returns: %TRUE if the tick callback should continue to be called, - * %FALSE if the tick callback should be removed. + * Returns: %G_SOURCE_CONTINUE if the tick callback should continue to be called, + * %G_SOURCE_REMOVE if the tick callback should be removed. */ typedef gboolean (*GtkTickCallback) (GtkWidget *widget, GdkFrameClock *frame_clock, diff --git a/tests/animated-resizing.c b/tests/animated-resizing.c index df2fe48c92..8a34d9fc38 100644 --- a/tests/animated-resizing.c +++ b/tests/animated-resizing.c @@ -251,7 +251,7 @@ tick_callback (GtkWidget *widget, scaled_time = (frame_time - start_frame_time) / (CYCLE_TIME * 1000000); on_frame (scaled_time - floor (scaled_time)); - return TRUE; + return G_SOURCE_CONTINUE; } static gboolean From ce835dee743477b0afeb2d8ea77172af63c1ac43 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Thu, 14 Feb 2013 17:11:28 -0500 Subject: [PATCH 062/208] GtkContainer: fix disconnection from frame clock We need to disconnect the frame clock when we unrealize (at which point the old clock is still alive) not in destroy(). Since there is no common unrealize for containers, trigger this from GtkWidget. --- gtk/gtkcontainer.c | 23 +++++++++++++---------- gtk/gtkcontainerprivate.h | 1 + gtk/gtkwidget.c | 9 ++++++--- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c index e73ef2a700..ce16fe4df4 100644 --- a/gtk/gtkcontainer.c +++ b/gtk/gtkcontainer.c @@ -1362,13 +1362,6 @@ gtk_container_destroy (GtkWidget *widget) if (priv->restyle_pending) priv->restyle_pending = FALSE; - if (priv->resize_handler) - { - g_signal_handler_disconnect (priv->resize_clock, priv->resize_handler); - priv->resize_handler = 0; - priv->resize_clock = NULL; - } - if (priv->focus_child) { g_object_unref (priv->focus_child); @@ -1680,9 +1673,7 @@ gtk_container_idle_sizer (GdkFrameClock *clock, if (!container->priv->restyle_pending && !container->priv->resize_pending) { - g_signal_handler_disconnect (clock, container->priv->resize_handler); - container->priv->resize_handler = 0; - container->priv->resize_clock = NULL; + _gtk_container_stop_idle_sizer (container); } else { @@ -1710,6 +1701,18 @@ gtk_container_start_idle_sizer (GtkContainer *container) GDK_FRAME_CLOCK_PHASE_LAYOUT); } +void +_gtk_container_stop_idle_sizer (GtkContainer *container) +{ + if (container->priv->resize_handler == 0) + return; + + g_signal_handler_disconnect (container->priv->resize_clock, + container->priv->resize_handler); + container->priv->resize_handler = 0; + container->priv->resize_clock = NULL; +} + static void gtk_container_queue_resize_handler (GtkContainer *container) { diff --git a/gtk/gtkcontainerprivate.h b/gtk/gtkcontainerprivate.h index cd4bc5b2e9..dd989d2dc7 100644 --- a/gtk/gtkcontainerprivate.h +++ b/gtk/gtkcontainerprivate.h @@ -39,6 +39,7 @@ GList * _gtk_container_focus_sort (GtkContainer *container, GtkWidget *old_focus); gboolean _gtk_container_get_reallocate_redraws (GtkContainer *container); +void _gtk_container_stop_idle_sizer (GtkContainer *container); void _gtk_container_maybe_start_idle_sizer (GtkContainer *container); G_END_DECLS diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 79cf9e2ea1..48f996063e 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4694,6 +4694,9 @@ gtk_widget_connect_frame_clock (GtkWidget *widget, { GtkWidgetPrivate *priv = widget->priv; + if (GTK_IS_CONTAINER (widget)) + _gtk_container_maybe_start_idle_sizer (GTK_CONTAINER (widget)); + if (priv->tick_callbacks != NULL) { g_signal_connect (frame_clock, "update", @@ -4713,6 +4716,9 @@ gtk_widget_disconnect_frame_clock (GtkWidget *widget, { GtkWidgetPrivate *priv = widget->priv; + if (GTK_IS_CONTAINER (widget)) + _gtk_container_stop_idle_sizer (GTK_CONTAINER (widget)); + if (priv->tick_callbacks) g_signal_handlers_disconnect_by_func (frame_clock, (gpointer) gtk_widget_on_frame_clock_update, @@ -4802,9 +4808,6 @@ gtk_widget_realize (GtkWidget *widget) _gtk_widget_enable_device_events (widget); gtk_widget_update_devices_mask (widget, TRUE); - if (GTK_IS_CONTAINER (widget)) - _gtk_container_maybe_start_idle_sizer (GTK_CONTAINER (widget)); - gtk_widget_connect_frame_clock (widget, gtk_widget_get_frame_clock (widget)); From e2f76f0c2e654b66b0d7708de07e70e9b9579233 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Thu, 14 Feb 2013 18:23:47 -0500 Subject: [PATCH 063/208] Fix a typo in the README --- README.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.in b/README.in index 120b265ea6..c10587d457 100644 --- a/README.in +++ b/README.in @@ -71,7 +71,7 @@ and attach the patch to that bug report. Patches should be in unified diff form. (The -up option to GNU diff.) -Release notes for 3.6 +Release notes for 3.8 ===================== * GtkIconInfo has changed from being a boxed type to a GObject. This From 3856fbb0dc8eb00775ce3c164b86d8a08e165458 Mon Sep 17 00:00:00 2001 From: Gil Forcada Date: Fri, 15 Feb 2013 01:30:07 +0100 Subject: [PATCH 064/208] [l10n] Updated Catalan translation --- po/ca.po | 383 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 198 insertions(+), 185 deletions(-) diff --git a/po/ca.po b/po/ca.po index 95d4e24d4f..357eb89ca4 100644 --- a/po/ca.po +++ b/po/ca.po @@ -8,7 +8,7 @@ # Josep Puigdemont , 2005, 2006. # David Planella , 2008, 2009, 2010, 2011. # Pau Iranzo , 2011. -# Gil Forcada , 2012. +# Gil Forcada , 2012, 2013. # Jordi Serratosa , 2012. # # Recull de termes @@ -32,8 +32,8 @@ msgstr "" "Project-Id-Version: gtk+ 2.8.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" "%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-09-20 18:23+0000\n" -"PO-Revision-Date: 2012-08-30 09:01+0200\n" +"POT-Creation-Date: 2013-02-11 19:43+0000\n" +"PO-Revision-Date: 2013-02-15 01:30+0100\n" "Last-Translator: Gil Forcada \n" "Language-Team: Catalan \n" "Language: ca\n" @@ -480,21 +480,21 @@ msgid_plural "Opening %d Items" msgstr[0] "S'està obrint %d element" msgstr[1] "S'estan obrint %d elements" -#: ../gtk/a11y/gtkspinneraccessible.c:40 +#: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" msgstr "Indicador de progrés" -#: ../gtk/a11y/gtkspinneraccessible.c:41 +#: ../gtk/a11y/gtkspinneraccessible.c:40 msgid "Provides visual indication of progress" msgstr "Proporciona una indicació visual del progrés" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:62 msgctxt "light switch widget" msgid "Switch" msgstr "Interruptor" -#: ../gtk/a11y/gtkswitchaccessible.c:64 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgid "Switches between on and off states" msgstr "Commuta entre l'estat actiu i inactiu" @@ -709,27 +709,27 @@ msgid "Could not show link" msgstr "No s'ha pogut mostrar l'enllaç" #: ../gtk/gtkaboutdialog.c:1017 -msgid "Homepage" -msgstr "Pàgina inicial" +msgid "Website" +msgstr "Lloc web" #: ../gtk/gtkaboutdialog.c:1071 #, c-format msgid "About %s" msgstr "Quant a %s" -#: ../gtk/gtkaboutdialog.c:2399 +#: ../gtk/gtkaboutdialog.c:2398 msgid "Created by" msgstr "Creat per" -#: ../gtk/gtkaboutdialog.c:2402 +#: ../gtk/gtkaboutdialog.c:2401 msgid "Documented by" msgstr "Documentat per" -#: ../gtk/gtkaboutdialog.c:2412 +#: ../gtk/gtkaboutdialog.c:2411 msgid "Translated by" msgstr "Traduït per" -#: ../gtk/gtkaboutdialog.c:2417 +#: ../gtk/gtkaboutdialog.c:2416 msgid "Artwork by" msgstr "Art per" @@ -804,8 +804,8 @@ msgid "Backslash" msgstr "Barra inversa" #: ../gtk/gtkappchooserbutton.c:290 -msgid "Other application..." -msgstr "Una altra aplicació..." +msgid "Other application…" +msgstr "Una altra aplicació…" #: ../gtk/gtkappchooserdialog.c:137 msgid "Failed to look for applications online" @@ -834,7 +834,7 @@ msgstr "No s'ha trobat l'aplicació" msgid "Select an application to open \"%s\"" msgstr "Seleccioneu una aplicació per obrir «%s»" -#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:654 +#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:657 #, c-format msgid "No applications available to open \"%s\"" msgstr "No hi ha cap aplicació disponible per obrir «%s»" @@ -866,23 +866,23 @@ msgstr "Oblida l'associació" msgid "Show other applications" msgstr "Mostra altres aplicacions" -#: ../gtk/gtkappchooserwidget.c:603 +#: ../gtk/gtkappchooserwidget.c:606 msgid "Default Application" msgstr "Aplicació per defecte" -#: ../gtk/gtkappchooserwidget.c:741 +#: ../gtk/gtkappchooserwidget.c:744 msgid "Recommended Applications" msgstr "Aplicacions recomanades" -#: ../gtk/gtkappchooserwidget.c:756 +#: ../gtk/gtkappchooserwidget.c:759 msgid "Related Applications" msgstr "Aplicacions relacionades" -#: ../gtk/gtkappchooserwidget.c:770 +#: ../gtk/gtkappchooserwidget.c:773 msgid "Other Applications" msgstr "Altres aplicacions" -#: ../gtk/gtkapplication.c:1556 +#: ../gtk/gtkapplication.c:1557 #, c-format msgid "" "%s cannot quit at this time:\n" @@ -1047,9 +1047,9 @@ msgstr "No vàlid" #. * an accelerator when the cell is clicked to change the #. * acelerator. #. -#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:745 -msgid "New accelerator..." -msgstr "Accelerador nou..." +#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 +msgid "New accelerator…" +msgstr "Accelerador nou…" #: ../gtk/gtkcellrendererprogress.c:372 ../gtk/gtkcellrendererprogress.c:462 #, c-format @@ -1352,8 +1352,8 @@ msgid "mm" msgstr "mm" #: ../gtk/gtkcustompaperunixdialog.c:605 -msgid "Margins from Printer..." -msgstr "Marges de la impressora..." +msgid "Margins from Printer…" +msgstr "Marges de la impressora…" #: ../gtk/gtkcustompaperunixdialog.c:771 #, c-format @@ -1392,15 +1392,15 @@ msgstr "_Dret:" msgid "Paper Margins" msgstr "Marges del paper" -#: ../gtk/gtkentry.c:9140 ../gtk/gtktextview.c:8583 +#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8591 msgid "Input _Methods" msgstr "_Mètodes d'entrada" -#: ../gtk/gtkentry.c:9154 ../gtk/gtktextview.c:8597 +#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8605 msgid "_Insert Unicode Control Character" msgstr "_Insereix caràcters de control Unicode" -#: ../gtk/gtkentry.c:10107 +#: ../gtk/gtkentry.c:10094 msgid "Caps Lock is on" msgstr "La fixació de majúscules està activada" @@ -1449,7 +1449,7 @@ msgstr "La fixació de majúscules està activada" msgid "Select a File" msgstr "Seleccioneu un fitxer" -#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1817 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1820 msgid "Desktop" msgstr "Escriptori" @@ -1458,30 +1458,30 @@ msgid "(None)" msgstr "(Cap)" #: ../gtk/gtkfilechooserbutton.c:2046 -msgid "Other..." -msgstr "Altre..." +msgid "Other…" +msgstr "Altre…" #: ../gtk/gtkfilechooserdefault.c:152 msgid "Type name of new folder" msgstr "Escriviu el nom de la carpeta nova" -#: ../gtk/gtkfilechooserdefault.c:968 +#: ../gtk/gtkfilechooserdefault.c:971 msgid "Could not retrieve information about the file" msgstr "No s'ha pogut obtenir informació sobre el fitxer" -#: ../gtk/gtkfilechooserdefault.c:979 +#: ../gtk/gtkfilechooserdefault.c:982 msgid "Could not add a bookmark" msgstr "No s'ha pogut afegir una adreça d'interès" -#: ../gtk/gtkfilechooserdefault.c:990 +#: ../gtk/gtkfilechooserdefault.c:993 msgid "Could not remove bookmark" msgstr "No s'ha pogut suprimir l'adreça d'interès" -#: ../gtk/gtkfilechooserdefault.c:1001 +#: ../gtk/gtkfilechooserdefault.c:1004 msgid "The folder could not be created" msgstr "No s'ha pogut crear la carpeta" -#: ../gtk/gtkfilechooserdefault.c:1014 +#: ../gtk/gtkfilechooserdefault.c:1017 msgid "" "The folder could not be created, as a file with the same name already " "exists. Try using a different name for the folder, or rename the file first." @@ -1490,16 +1490,16 @@ msgstr "" "nom. Proveu d'utilitzar un nom diferent per a la carpeta, o bé canvieu el " "nom del fitxer abans de crear-la." -#: ../gtk/gtkfilechooserdefault.c:1028 +#: ../gtk/gtkfilechooserdefault.c:1031 msgid "You need to choose a valid filename." msgstr "Cal que trieu un nom de fitxer vàlid." -#: ../gtk/gtkfilechooserdefault.c:1031 +#: ../gtk/gtkfilechooserdefault.c:1034 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "No es pot crear un fitxer a %s, atès que no és una carpeta" -#: ../gtk/gtkfilechooserdefault.c:1043 +#: ../gtk/gtkfilechooserdefault.c:1046 msgid "" "You may only select folders. The item that you selected is not a folder; " "try using a different item." @@ -1507,11 +1507,11 @@ msgstr "" "Només podeu seleccionar carpetes. L'element que heu seleccionat no és una " "carpeta. Torneu-ho a intentar utilitzant un element diferent." -#: ../gtk/gtkfilechooserdefault.c:1053 +#: ../gtk/gtkfilechooserdefault.c:1056 msgid "Invalid file name" msgstr "El nom del fitxer no és vàlid" -#: ../gtk/gtkfilechooserdefault.c:1063 +#: ../gtk/gtkfilechooserdefault.c:1066 msgid "The folder contents could not be displayed" msgstr "No s'ha pogut mostrar el contingut de la carpeta" @@ -1519,194 +1519,194 @@ msgstr "No s'ha pogut mostrar el contingut de la carpeta" #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1589 +#: ../gtk/gtkfilechooserdefault.c:1592 #, c-format msgid "%1$s on %2$s" msgstr "%1$s a %2$s" -#: ../gtk/gtkfilechooserdefault.c:1738 +#: ../gtk/gtkfilechooserdefault.c:1741 msgid "Search" msgstr "Cerca" -#: ../gtk/gtkfilechooserdefault.c:1762 ../gtk/gtkfilechooserdefault.c:4988 +#: ../gtk/gtkfilechooserdefault.c:1765 ../gtk/gtkfilechooserdefault.c:4991 msgid "Recently Used" msgstr "Utilitzats recentment" -#: ../gtk/gtkfilechooserdefault.c:2361 +#: ../gtk/gtkfilechooserdefault.c:2364 msgid "Select which types of files are shown" msgstr "Seleccioneu quins tipus de fitxers es mostren" -#: ../gtk/gtkfilechooserdefault.c:2720 +#: ../gtk/gtkfilechooserdefault.c:2723 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "Afegeix la carpeta «%s» a les adreces d'interès" -#: ../gtk/gtkfilechooserdefault.c:2764 +#: ../gtk/gtkfilechooserdefault.c:2767 #, c-format msgid "Add the current folder to the bookmarks" msgstr "Afegeix la carpeta actual a les adreces d'interès" -#: ../gtk/gtkfilechooserdefault.c:2766 +#: ../gtk/gtkfilechooserdefault.c:2769 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "Afegeix les carpetes seleccionades a les adreces d'interès" -#: ../gtk/gtkfilechooserdefault.c:2804 +#: ../gtk/gtkfilechooserdefault.c:2807 #, c-format msgid "Remove the bookmark '%s'" msgstr "Suprimeix l'adreça d'interès «%s»" -#: ../gtk/gtkfilechooserdefault.c:2806 +#: ../gtk/gtkfilechooserdefault.c:2809 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "No es pot suprimir l'adreça d'interès «%s»" -#: ../gtk/gtkfilechooserdefault.c:2813 ../gtk/gtkfilechooserdefault.c:3699 +#: ../gtk/gtkfilechooserdefault.c:2816 ../gtk/gtkfilechooserdefault.c:3702 msgid "Remove the selected bookmark" msgstr "Suprimeix l'adreça d'interès seleccionada" -#: ../gtk/gtkfilechooserdefault.c:3377 +#: ../gtk/gtkfilechooserdefault.c:3380 msgid "Remove" msgstr "Suprimeix" -#: ../gtk/gtkfilechooserdefault.c:3386 -msgid "Rename..." -msgstr "Canvia el nom..." +#: ../gtk/gtkfilechooserdefault.c:3389 +msgid "Rename…" +msgstr "Canvia el nom…" #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3550 +#: ../gtk/gtkfilechooserdefault.c:3553 msgid "Places" msgstr "Llocs" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3607 +#: ../gtk/gtkfilechooserdefault.c:3610 msgid "_Places" msgstr "_Llocs" -#: ../gtk/gtkfilechooserdefault.c:3687 +#: ../gtk/gtkfilechooserdefault.c:3690 msgid "Add the selected folder to the Bookmarks" msgstr "Afegeix la carpeta seleccionada a les adreces d'interès" -#: ../gtk/gtkfilechooserdefault.c:3948 +#: ../gtk/gtkfilechooserdefault.c:3951 msgid "Could not select file" msgstr "No s'ha pogut seleccionar el fitxer" -#: ../gtk/gtkfilechooserdefault.c:4173 +#: ../gtk/gtkfilechooserdefault.c:4176 msgid "_Visit this file" msgstr "_Visita aquest fitxer" -#: ../gtk/gtkfilechooserdefault.c:4176 +#: ../gtk/gtkfilechooserdefault.c:4179 msgid "_Copy file’s location" msgstr "_Copia la ubicació del fitxer" -#: ../gtk/gtkfilechooserdefault.c:4179 +#: ../gtk/gtkfilechooserdefault.c:4182 msgid "_Add to Bookmarks" msgstr "_Afegeix a les adreces d'interès" -#: ../gtk/gtkfilechooserdefault.c:4186 +#: ../gtk/gtkfilechooserdefault.c:4189 msgid "Show _Hidden Files" msgstr "Mostra els fitxers _ocults" -#: ../gtk/gtkfilechooserdefault.c:4189 +#: ../gtk/gtkfilechooserdefault.c:4192 msgid "Show _Size Column" msgstr "Mostra la columna de la _mida" -#: ../gtk/gtkfilechooserdefault.c:4414 +#: ../gtk/gtkfilechooserdefault.c:4417 msgid "Files" msgstr "Fitxers" -#: ../gtk/gtkfilechooserdefault.c:4465 +#: ../gtk/gtkfilechooserdefault.c:4468 msgid "Name" msgstr "Nom" -#: ../gtk/gtkfilechooserdefault.c:4488 +#: ../gtk/gtkfilechooserdefault.c:4491 msgid "Size" msgstr "Mida" -#: ../gtk/gtkfilechooserdefault.c:4502 +#: ../gtk/gtkfilechooserdefault.c:4505 msgid "Modified" msgstr "Modificat" #. Label -#: ../gtk/gtkfilechooserdefault.c:4595 +#: ../gtk/gtkfilechooserdefault.c:4598 msgid "_Name:" msgstr "_Nom:" -#: ../gtk/gtkfilechooserdefault.c:4826 +#: ../gtk/gtkfilechooserdefault.c:4829 msgid "Type a file name" msgstr "Escriviu un nom de fitxer" -#: ../gtk/gtkfilechooserdefault.c:4873 ../gtk/gtkfilechooserdefault.c:4884 +#: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887 msgid "Please select a folder below" msgstr "Seleccioneu una carpeta a continuació" -#: ../gtk/gtkfilechooserdefault.c:4879 +#: ../gtk/gtkfilechooserdefault.c:4882 msgid "Please type a file name" msgstr "Escriviu un nom de fitxer" #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4950 +#: ../gtk/gtkfilechooserdefault.c:4953 msgid "Create Fo_lder" msgstr "Crea una ca_rpeta" -#: ../gtk/gtkfilechooserdefault.c:4998 +#: ../gtk/gtkfilechooserdefault.c:5001 msgid "Search:" msgstr "Cerca:" -#: ../gtk/gtkfilechooserdefault.c:5049 +#: ../gtk/gtkfilechooserdefault.c:5052 msgid "_Location:" msgstr "_Ubicació:" -#: ../gtk/gtkfilechooserdefault.c:5500 +#: ../gtk/gtkfilechooserdefault.c:5502 msgid "Save in _folder:" msgstr "De_sa a la carpeta:" -#: ../gtk/gtkfilechooserdefault.c:5502 +#: ../gtk/gtkfilechooserdefault.c:5504 msgid "Create in _folder:" msgstr "Crea a la _carpeta:" -#: ../gtk/gtkfilechooserdefault.c:6589 +#: ../gtk/gtkfilechooserdefault.c:6597 #, c-format msgid "Could not read the contents of %s" msgstr "No s'ha pogut llegir el contingut de %s" -#: ../gtk/gtkfilechooserdefault.c:6593 +#: ../gtk/gtkfilechooserdefault.c:6601 msgid "Could not read the contents of the folder" msgstr "No s'ha pogut llegir el contingut de la carpeta" -#: ../gtk/gtkfilechooserdefault.c:6686 ../gtk/gtkfilechooserdefault.c:6754 -#: ../gtk/gtkfilechooserdefault.c:6934 +#: ../gtk/gtkfilechooserdefault.c:6694 ../gtk/gtkfilechooserdefault.c:6762 +#: ../gtk/gtkfilechooserdefault.c:6942 msgid "Unknown" msgstr "Desconegut" -#: ../gtk/gtkfilechooserdefault.c:6701 +#: ../gtk/gtkfilechooserdefault.c:6709 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6703 +#: ../gtk/gtkfilechooserdefault.c:6711 msgid "Yesterday at %H:%M" msgstr "Ahir a les %H:%M" -#: ../gtk/gtkfilechooserdefault.c:7405 +#: ../gtk/gtkfilechooserdefault.c:7413 msgid "Cannot change to folder because it is not local" msgstr "No es pot canviar a la carpeta perquè no és local" -#: ../gtk/gtkfilechooserdefault.c:8009 ../gtk/gtkfilechooserdefault.c:8030 +#: ../gtk/gtkfilechooserdefault.c:8020 ../gtk/gtkfilechooserdefault.c:8041 #, c-format msgid "Shortcut %s already exists" msgstr "La drecera %s ja existeix" -#: ../gtk/gtkfilechooserdefault.c:8120 +#: ../gtk/gtkfilechooserdefault.c:8131 #, c-format msgid "Shortcut %s does not exist" msgstr "La drecera %s no existeix" -#: ../gtk/gtkfilechooserdefault.c:8366 ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8377 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "Ja existeix un fitxer amb el nom «%s». Voleu reemplaçar-lo?" -#: ../gtk/gtkfilechooserdefault.c:8369 ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8380 ../gtk/gtkprintunixdialog.c:552 #, c-format msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." @@ -1714,15 +1714,15 @@ msgstr "" "El fitxer ja existeix a «%s». Si el reemplaceu en sobreescriureu el " "contingut." -#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "_Reemplaça" -#: ../gtk/gtkfilechooserdefault.c:9181 +#: ../gtk/gtkfilechooserdefault.c:9192 msgid "Could not start the search process" msgstr "No s'ha pogut iniciar el procés de cerca" -#: ../gtk/gtkfilechooserdefault.c:9182 +#: ../gtk/gtkfilechooserdefault.c:9193 msgid "" "The program was not able to create a connection to the indexer daemon. " "Please make sure it is running." @@ -1730,11 +1730,11 @@ msgstr "" "El programa no ha pogut crear cap connexió al dimoni d'indexació. Assegureu-" "vos que s'està executant." -#: ../gtk/gtkfilechooserdefault.c:9196 +#: ../gtk/gtkfilechooserdefault.c:9207 msgid "Could not send the search request" msgstr "No s'ha pogut enviar la sol·licitud de cerca" -#: ../gtk/gtkfilechooserdefault.c:9806 +#: ../gtk/gtkfilechooserdefault.c:9817 #, c-format msgid "Could not mount %s" msgstr "No s'ha pogut muntar %s" @@ -1774,12 +1774,12 @@ msgstr "Cerca el nom del tipus de lletra" msgid "Font Family" msgstr "Família del tipus de lletra" -#: ../gtk/gtkicontheme.c:1627 +#: ../gtk/gtkicontheme.c:1931 #, c-format msgid "Icon '%s' not present in theme" msgstr "La icona «%s» no es troba al tema" -#: ../gtk/gtkicontheme.c:3137 +#: ../gtk/gtkicontheme.c:3462 msgid "Failed to load icon" msgstr "No s'ha pogut carregar la icona" @@ -1804,22 +1804,22 @@ msgid "System (%s)" msgstr "Sistema (%s)" #. Open Link -#: ../gtk/gtklabel.c:6224 +#: ../gtk/gtklabel.c:6139 msgid "_Open Link" msgstr "Obre l'_enllaç" #. Copy Link Address -#: ../gtk/gtklabel.c:6236 +#: ../gtk/gtklabel.c:6151 msgid "Copy _Link Address" msgstr "Copia l'adreça de l'en_llaç" -#: ../gtk/gtk-launch.c:69 -msgid "APPLICATION [URI...] - launch an APPLICATION with URI." -msgstr "APLICACIÓ [URI] - executa una APLICACIÓ amb una URI." +#: ../gtk/gtk-launch.c:71 +msgid "APPLICATION [URI…] — launch an APPLICATION with URI." +msgstr "APLICACIÓ [URI…] — executa una APLICACIÓ amb una URI." #. Translators: this message will appear after the usage string #. and before the list of options. -#: ../gtk/gtk-launch.c:73 +#: ../gtk/gtk-launch.c:75 msgid "" "Launch specified application by its desktop file info\n" "optionally passing list of URIs as arguments." @@ -1827,34 +1827,41 @@ msgstr "" "Executa l'aplicació especificada pel seu fitxer d'informació\n" "d'escriptori amb una llista opcional d'URI com a arguments." -#: ../gtk/gtk-launch.c:85 +#: ../gtk/gtk-launch.c:87 #, c-format msgid "Error parsing commandline options: %s\n" msgstr "" "S'ha produït un error en analitzar les opcions de la línia d'ordres: %s\n" -#: ../gtk/gtk-launch.c:87 ../gtk/gtk-launch.c:100 +#: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Per a més informació proveu «%s --help»." #. Translators: the %s is the program name. This error message #. means the user is calling gtk-launch without any argument. -#: ../gtk/gtk-launch.c:98 +#: ../gtk/gtk-launch.c:100 #, c-format msgid "%s: missing application name" msgstr "%s: manca el nom de l'aplicació" +#: ../gtk/gtk-launch.c:121 +#, c-format +msgid "Creating AppInfo from id not supported on non unix operating systems" +msgstr "" +"No es poden crear «AppInfo» a partir d'identificadors en sistemes operatius " +"que no siguin UNIX." + #. Translators: the first %s is the program name, the second one #. is the application name. -#: ../gtk/gtk-launch.c:122 +#: ../gtk/gtk-launch.c:129 #, c-format msgid "%s: no such application %s" msgstr "%s: no existeix l'aplicació %s" #. Translators: the first %s is the program name, the second one #. is the error message. -#: ../gtk/gtk-launch.c:140 +#: ../gtk/gtk-launch.c:147 #, c-format msgid "%s: error launching application: %s\n" msgstr "%s: s'ha produït un error en executar l'aplicació: %s\n" @@ -1931,20 +1938,20 @@ msgstr "Senyaladors de depuració de GTK+ que s'han d'inhabilitar" #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: ../gtk/gtkmain.c:707 +#: ../gtk/gtkmain.c:703 msgid "default:LTR" msgstr "default:LTR" -#: ../gtk/gtkmain.c:775 +#: ../gtk/gtkmain.c:768 #, c-format msgid "Cannot open display: %s" msgstr "No es pot obrir la pantalla: %s" -#: ../gtk/gtkmain.c:841 +#: ../gtk/gtkmain.c:834 msgid "GTK+ Options" msgstr "Opcions del GTK+" -#: ../gtk/gtkmain.c:841 +#: ../gtk/gtkmain.c:834 msgid "Show GTK+ Options" msgstr "Mostra les opcions del GTK+" @@ -2033,7 +2040,7 @@ msgstr "Intèrpret d'ordres «Z»" msgid "Cannot end process with PID %d: %s" msgstr "No es pot finalitzar el procés amb el PID %d: %s" -#: ../gtk/gtknotebook.c:5051 ../gtk/gtknotebook.c:7705 +#: ../gtk/gtknotebook.c:5069 ../gtk/gtknotebook.c:7723 #, c-format msgid "Page %u" msgstr "Pàgina %u" @@ -2041,14 +2048,14 @@ msgstr "Pàgina %u" #. Translators: the format here is used to build the string that will be rendered #. * in the number emblem. #. -#: ../gtk/gtknumerableicon.c:481 +#: ../gtk/gtknumerableicon.c:482 #, c-format msgctxt "Number format" msgid "%d" msgstr "%d" -#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:846 -#: ../gtk/gtkpapersize.c:886 +#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:848 +#: ../gtk/gtkpapersize.c:888 msgid "Not a valid page setup file" msgstr "No és un fitxer de configuració de pàgina vàlid" @@ -2076,8 +2083,8 @@ msgstr "" " Inferior: %s %s" #: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 -msgid "Manage Custom Sizes..." -msgstr "Gestiona mides personalitzades..." +msgid "Manage Custom Sizes…" +msgstr "Gestioneu mides personalitzades…" #: ../gtk/gtkpagesetupunixdialog.c:896 msgid "_Format for:" @@ -2109,7 +2116,7 @@ msgstr "Avall" msgid "File System Root" msgstr "Arrel del sistema de fitxers" -#: ../gtk/gtkprintbackend.c:748 +#: ../gtk/gtkprintbackend.c:750 msgid "Authentication" msgstr "Autenticació" @@ -2263,8 +2270,8 @@ msgid "Getting printer information failed" msgstr "Ha fallat l'obtenció d'informació de la impressora" #: ../gtk/gtkprintunixdialog.c:1916 -msgid "Getting printer information..." -msgstr "S'està obtenint informació de la impressora..." +msgid "Getting printer information…" +msgstr "S'està obtenint informació de la impressora…" #: ../gtk/gtkprintunixdialog.c:2184 msgid "Printer" @@ -2340,42 +2347,42 @@ msgstr "General" #. * multiple pages on a sheet when printing #. #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, top to bottom" msgstr "D'esquerra a dreta, de dalt a baix" #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, bottom to top" msgstr "D'esquerra a dreta, de baix a dalt" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, top to bottom" msgstr "De dreta a esquerra, de dalt a baix" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, bottom to top" msgstr "De dreta a esquerra, de baix a dalt" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, left to right" msgstr "De dalt a baix, d'esquerra a dreta" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, right to left" msgstr "De dalt a baix, de dreta a esquerra" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, left to right" msgstr "De baix a dalt, d'esquerra a dreta" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, right to left" msgstr "De baix a dalt, de dreta a esquerra" @@ -2383,7 +2390,7 @@ msgstr "De baix a dalt, de dreta a esquerra" #. * dialog that controls in what order multiple pages are arranged #. #: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3766 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772 msgid "Page Ordering" msgstr "Ordenació de les pàgines" @@ -2589,36 +2596,36 @@ msgstr "Imprimeix" msgid "Select which type of documents are shown" msgstr "Seleccioneu quins tipus de documents s'han de mostrar" -#: ../gtk/gtkrecentchooserdefault.c:1130 ../gtk/gtkrecentchooserdefault.c:1167 +#: ../gtk/gtkrecentchooserdefault.c:1129 ../gtk/gtkrecentchooserdefault.c:1166 #, c-format msgid "No item for URI '%s' found" msgstr "No s'ha trobat cap element per a l'URI «%s»" -#: ../gtk/gtkrecentchooserdefault.c:1294 +#: ../gtk/gtkrecentchooserdefault.c:1293 msgid "Untitled filter" msgstr "Filtre sense títol" -#: ../gtk/gtkrecentchooserdefault.c:1647 +#: ../gtk/gtkrecentchooserdefault.c:1646 msgid "Could not remove item" msgstr "No s'ha pogut suprimir l'element" -#: ../gtk/gtkrecentchooserdefault.c:1691 +#: ../gtk/gtkrecentchooserdefault.c:1690 msgid "Could not clear list" msgstr "No s'ha pogut netejar la llista" -#: ../gtk/gtkrecentchooserdefault.c:1775 +#: ../gtk/gtkrecentchooserdefault.c:1774 msgid "Copy _Location" msgstr "Copia la _ubicació" -#: ../gtk/gtkrecentchooserdefault.c:1788 +#: ../gtk/gtkrecentchooserdefault.c:1787 msgid "_Remove From List" msgstr "Sup_rimeix de la llista" -#: ../gtk/gtkrecentchooserdefault.c:1797 +#: ../gtk/gtkrecentchooserdefault.c:1796 msgid "_Clear List" msgstr "_Neteja la llista" -#: ../gtk/gtkrecentchooserdefault.c:1811 +#: ../gtk/gtkrecentchooserdefault.c:1810 msgid "Show _Private Resources" msgstr "Mostra els recursos _privats" @@ -3192,7 +3199,7 @@ msgstr "_Redueix" #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for #. * the state #. -#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:586 +#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:583 msgctxt "switch" msgid "ON" msgstr "❙" @@ -3200,7 +3207,7 @@ msgstr "❙" #. Translators: if the "off" state label requires more than three #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state #. -#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:615 +#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:598 msgctxt "switch" msgid "OFF" msgstr "○" @@ -3377,7 +3384,7 @@ msgstr "" msgid "Unexpected character data on line %d char %d" msgstr "S'han trobat dades de caràcter inesperades a la línia %d, caràcter %d" -#: ../gtk/gtkuimanager.c:2738 +#: ../gtk/gtkuimanager.c:2694 msgid "Empty" msgstr "Buit" @@ -4566,155 +4573,155 @@ msgstr "En pausa; es refusen les tasques" msgid "Rejecting Jobs" msgstr "Es refusen les tasques" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2909 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2915 msgid "Two Sided" msgstr "Doble cara" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2910 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2916 msgid "Paper Type" msgstr "Tipus de paper" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2911 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2917 msgid "Paper Source" msgstr "Font del paper" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2912 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2918 msgid "Output Tray" msgstr "Safata de sortida" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2913 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2919 msgid "Resolution" msgstr "Resolució" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2914 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2920 msgid "GhostScript pre-filtering" msgstr "Filtrat previ del GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2923 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 msgid "One Sided" msgstr "Una cara" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2925 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 msgid "Long Edge (Standard)" msgstr "Cantó llarg (estàndard)" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2927 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 msgid "Short Edge (Flip)" msgstr "Cantó curt (capgirat)" #. Translators: this is an option of "Paper Source" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 msgid "Auto Select" msgstr "Selecció automàtica" #. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Resolution" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2941 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3429 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3435 msgid "Printer Default" msgstr "Per defecte de la impressora" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 msgid "Embed GhostScript fonts only" msgstr "Incrusta només els tipus de lletra GhostScript" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2951 msgid "Convert to PS level 1" msgstr "Converteix a PS, nivell 1" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2953 msgid "Convert to PS level 2" msgstr "Converteix a PS, nivell 2" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2955 msgid "No pre-filtering" msgstr "Sense filtratge previ" #. Translators: "Miscellaneous" is the label for a button, that opens #. up an extra panel of settings in a print dialog. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2958 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2964 msgid "Miscellaneous" msgstr "Miscel·lània" #. Translators: These strings name the possible values of the #. * job priority option in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Urgent" msgstr "Urgent" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "High" msgstr "Alta" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Medium" msgstr "Mitjana" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Low" msgstr "Baixa" #. Translators, this string is used to label the job priority option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3711 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3717 msgid "Job Priority" msgstr "Prioritat de la tasca" #. Translators, this string is used to label the billing info entry #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3722 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3728 msgid "Billing Info" msgstr "Informació de facturació" #. Translators, these strings are names for various 'standard' cover #. * pages that the printing system may support. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "None" msgstr "Cap" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Classified" msgstr "Classificat" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Confidential" msgstr "Confidencial" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Secret" msgstr "Secret" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Standard" msgstr "Estàndard" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Top Secret" msgstr "Alt secret" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Unclassified" msgstr "No classificat" #. Translators, this string is used to label the pages-per-sheet option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3748 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3754 msgid "Pages per Sheet" msgstr "Pàgines per full" @@ -4722,7 +4729,7 @@ msgstr "Pàgines per full" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3808 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3814 msgid "Before" msgstr "Abans" @@ -4730,7 +4737,7 @@ msgstr "Abans" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3823 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3829 msgid "After" msgstr "Després" @@ -4738,7 +4745,7 @@ msgstr "Després" #. * a print job is printed. Possible values are 'now', a specified time, #. * or 'on hold' #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3843 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849 msgid "Print at" msgstr "Imprimeix" @@ -4746,7 +4753,7 @@ msgstr "Imprimeix" #. 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/cups/gtkprintbackendcups.c:3854 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860 msgid "Print at time" msgstr "Imprimeix a una hora o data determinada" @@ -4754,18 +4761,18 @@ msgstr "Imprimeix a una hora o data determinada" #. * size. The two placeholders are replaced with the width and height #. * in points. E.g: "Custom 230.4x142.9" #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895 #, c-format msgid "Custom %sx%s" msgstr "Personalitzat %sx%s" # Connectada? (josep) -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3970 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3976 msgid "Printer Profile" msgstr "Perfil de la impressora" #. TRANSLATORS: this is when color profile information is unavailable -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3977 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3983 msgid "Unavailable" msgstr "No està disponible" @@ -4867,6 +4874,15 @@ msgstr "prova-de-sortida.%s" msgid "Print to Test Printer" msgstr "Imprimiu per provar la impressora" +#~ msgid "Homepage" +#~ msgstr "Pàgina inicial" + +#~ msgid "Rename..." +#~ msgstr "Canvia el nom..." + +#~ msgid "Manage Custom Sizes..." +#~ msgstr "Gestiona mides personalitzades..." + #~ msgid "Select a folder" #~ msgstr "Seleccioneu una carpeta" @@ -5720,9 +5736,6 @@ msgstr "Imprimiu per provar la impressora" #~ msgid "Rename file \"%s\" to:" #~ msgstr "Canvia el nom del fitxer «%s» a:" -#~ msgid "_Rename" -#~ msgstr "_Canvia el nom" - #~ msgid "" #~ "The filename \"%s\" couldn't be converted to UTF-8. (try setting the " #~ "environment variable G_FILENAME_ENCODING): %s" From 233b0385fa37afe9c1eaa30599cd99e2a0877b39 Mon Sep 17 00:00:00 2001 From: Carles Ferrando Date: Fri, 15 Feb 2013 01:30:17 +0100 Subject: [PATCH 065/208] [l10n] Updated Catalan (Valencian) translation --- po/ca@valencia.po | 576 +++++++++++++++++++++++++++++----------------- 1 file changed, 362 insertions(+), 214 deletions(-) diff --git a/po/ca@valencia.po b/po/ca@valencia.po index a6fd864491..86dbc72406 100644 --- a/po/ca@valencia.po +++ b/po/ca@valencia.po @@ -8,7 +8,7 @@ # Josep Puigdemont , 2005, 2006. # David Planella , 2008, 2009, 2010, 2011. # Pau Iranzo , 2011. -# Gil Forcada , 2012. +# Gil Forcada , 2012, 2013. # Jordi Serratosa , 2012. # # Recull de termes @@ -31,8 +31,8 @@ msgid "" msgstr "" "Project-Id-Version: gtk+ 2.8.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-22 13:30+0200\n" -"PO-Revision-Date: 2012-08-30 09:01+0200\n" +"POT-Creation-Date: 2013-02-15 01:30+0100\n" +"PO-Revision-Date: 2013-02-15 01:30+0100\n" "Last-Translator: Gil Forcada \n" "Language-Team: Catalan \n" "Language: ca-XV\n" @@ -41,48 +41,48 @@ msgstr "" "Content-Transfer-Encoding: 8bits\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../gdk/gdk.c:155 +#: ../gdk/gdk.c:156 #, c-format msgid "Error parsing option --gdk-debug" msgstr "S'ha produït un error en analitzar l'opció --gdk-debug" -#: ../gdk/gdk.c:175 +#: ../gdk/gdk.c:176 #, c-format msgid "Error parsing option --gdk-no-debug" msgstr "S'ha produït un error en analitzar l'opció --gdk-no-debug" #. Description of --class=CLASS in --help output -#: ../gdk/gdk.c:203 +#: ../gdk/gdk.c:204 msgid "Program class as used by the window manager" msgstr "Classe del programa tal com l'utilitza el gestor de finestres" #. Placeholder in --class=CLASS in --help output -#: ../gdk/gdk.c:204 +#: ../gdk/gdk.c:205 msgid "CLASS" msgstr "CLASSE" #. Description of --name=NAME in --help output -#: ../gdk/gdk.c:206 +#: ../gdk/gdk.c:207 msgid "Program name as used by the window manager" msgstr "El nom del programa tal com l'utilitza el gestor de finestres" #. Placeholder in --name=NAME in --help output -#: ../gdk/gdk.c:207 +#: ../gdk/gdk.c:208 msgid "NAME" msgstr "NOM" #. Description of --display=DISPLAY in --help output -#: ../gdk/gdk.c:209 +#: ../gdk/gdk.c:210 msgid "X display to use" msgstr "Visualització X que s'ha d'utilitzar" #. Placeholder in --display=DISPLAY in --help output -#: ../gdk/gdk.c:210 +#: ../gdk/gdk.c:211 msgid "DISPLAY" msgstr "VISUALITZACIÓ" #. Description of --gdk-debug=FLAGS in --help output -#: ../gdk/gdk.c:213 +#: ../gdk/gdk.c:214 msgid "GDK debugging flags to set" msgstr "Senyaladors de depuració del GDK que s'han d'habilitar" @@ -90,12 +90,12 @@ msgstr "Senyaladors de depuració del GDK que s'han d'habilitar" #. Placeholder in --gdk-no-debug=FLAGS in --help output #. Placeholder in --gtk-debug=FLAGS in --help output #. Placeholder in --gtk-no-debug=FLAGS in --help output -#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:453 ../gtk/gtkmain.c:456 +#: ../gdk/gdk.c:215 ../gdk/gdk.c:218 ../gtk/gtkmain.c:453 ../gtk/gtkmain.c:456 msgid "FLAGS" msgstr "SENYALADORS" #. Description of --gdk-no-debug=FLAGS in --help output -#: ../gdk/gdk.c:216 +#: ../gdk/gdk.c:217 msgid "GDK debugging flags to unset" msgstr "Senyaladors de depuració del GDK que s'han d'inhabilitar" @@ -479,12 +479,145 @@ msgid_plural "Opening %d Items" msgstr[0] "S'està obrint %d element" msgstr[1] "S'estan obrint %d elements" -#: ../gtk/a11y/gtkspinneraccessible.c:40 +#: ../gtk/a11y/gtkbooleancellaccessible.c:43 +msgctxt "Action description" +msgid "Toggles the cell" +msgstr "" + +#: ../gtk/a11y/gtkbooleancellaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:101 +msgctxt "Action name" +msgid "Toggle" +msgstr "" + +#: ../gtk/a11y/gtkbuttonaccessible.c:341 +#: ../gtk/a11y/gtkmenuitemaccessible.c:436 +msgctxt "Action name" +msgid "Click" +msgstr "" + +#: ../gtk/a11y/gtkbuttonaccessible.c:350 +msgctxt "Action description" +msgid "Clicks the button" +msgstr "" + +#: ../gtk/a11y/gtkcellaccessible.c:258 +msgctxt "Action name" +msgid "Expand or contract" +msgstr "" + +#: ../gtk/a11y/gtkcellaccessible.c:260 +#, fuzzy +msgctxt "Action name" +msgid "Edit" +msgstr "_Edita" + +#: ../gtk/a11y/gtkcellaccessible.c:262 +#: ../gtk/a11y/gtkcolorswatchaccessible.c:72 +#: ../gtk/a11y/gtkentryaccessible.c:1541 +#: ../gtk/a11y/gtkexpanderaccessible.c:281 +msgctxt "Action name" +msgid "Activate" +msgstr "" + +#: ../gtk/a11y/gtkcellaccessible.c:275 +msgctxt "Action description" +msgid "Expands or contracts the row in the tree view containing this cell" +msgstr "" + +#: ../gtk/a11y/gtkcellaccessible.c:277 +msgctxt "Action description" +msgid "Creates a widget in which the contents of the cell can be edited" +msgstr "" + +#: ../gtk/a11y/gtkcellaccessible.c:279 +msgctxt "Action description" +msgid "Activates the cell" +msgstr "" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:71 +#, fuzzy +msgctxt "Action name" +msgid "Select" +msgstr "_Selecciona" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:73 +#, fuzzy +msgctxt "Action name" +msgid "Customize" +msgstr "_Personalitza" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:84 +#, fuzzy +msgctxt "Action description" +msgid "Selects the color" +msgstr "Seleccioneu un color" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:85 +#, fuzzy +msgctxt "Action description" +msgid "Activates the color" +msgstr "Brillantor del color." + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:86 +#, fuzzy +msgctxt "Action description" +msgid "Customizes the color" +msgstr "Color personalitzat %d: %s" + +#: ../gtk/a11y/gtkcomboboxaccessible.c:313 +#, fuzzy +msgctxt "Action name" +msgid "Press" +msgstr "_Pressió:" + +#: ../gtk/a11y/gtkcomboboxaccessible.c:322 +#, fuzzy +msgctxt "Action description" +msgid "Presses the combobox" +msgstr "Disminueix el volum" + +#: ../gtk/a11y/gtkentryaccessible.c:1550 +msgctxt "Action description" +msgid "Activates the entry" +msgstr "" + +#: ../gtk/a11y/gtkexpanderaccessible.c:290 +msgctxt "Action description" +msgid "Activates the expander" +msgstr "" + +#: ../gtk/a11y/gtkmenuitemaccessible.c:445 +msgctxt "Action description" +msgid "Clicks the menuitem" +msgstr "" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:140 +msgctxt "Action description" +msgid "Pops up the slider" +msgstr "" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:142 +msgctxt "Action description" +msgid "Dismisses the slider" +msgstr "" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:170 +msgctxt "Action name" +msgid "Popup" +msgstr "" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:172 +msgctxt "Action name" +msgid "Dismiss" +msgstr "" + +#: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" msgstr "Indicador de progrés" -#: ../gtk/a11y/gtkspinneraccessible.c:41 +#: ../gtk/a11y/gtkspinneraccessible.c:40 msgid "Provides visual indication of progress" msgstr "Proporciona una indicació visual del progrés" @@ -497,6 +630,11 @@ msgstr "Interruptor" msgid "Switches between on and off states" msgstr "Commuta entre l'estat actiu i inactiu" +#: ../gtk/a11y/gtkswitchaccessible.c:110 +msgctxt "Action description" +msgid "Toggles the switch" +msgstr "" + #: ../gtk/deprecated/gtkcolorsel.c:425 msgid "" "Select the color you want from the outer ring. Select the darkness or " @@ -605,8 +743,8 @@ msgid "" "The color you've chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" -"El color que heu triat. Podeu arrossegar este color cap a una paleta i alçar-" -"lo per utilitzar-lo més avant." +"El color que heu triat. Podeu arrossegar este color cap a una paleta i " +"guardar-lo per utilitzar-lo més avant." #: ../gtk/deprecated/gtkcolorsel.c:1084 msgid "" @@ -631,7 +769,7 @@ msgid "" msgstr "" "Feu clic en esta entrada de paleta per fer que siga el color actual. Per " "canviar esta entrada, arrossegueu una gamma de colors ací o feu-hi clic amb " -"el botó dret i seleccioneu «Alça el color ací»." +"el botó dret i seleccioneu «Guarda el color ací»." #. We emit the response for the Select button manually, #. * since we want to save the color first @@ -708,27 +846,27 @@ msgid "Could not show link" msgstr "No s'ha pogut mostrar l'enllaç" #: ../gtk/gtkaboutdialog.c:1017 -msgid "Homepage" -msgstr "Pàgina inicial" +msgid "Website" +msgstr "Lloc web" #: ../gtk/gtkaboutdialog.c:1071 #, c-format msgid "About %s" msgstr "Quant a %s" -#: ../gtk/gtkaboutdialog.c:2399 +#: ../gtk/gtkaboutdialog.c:2398 msgid "Created by" msgstr "Creat per" -#: ../gtk/gtkaboutdialog.c:2402 +#: ../gtk/gtkaboutdialog.c:2401 msgid "Documented by" msgstr "Documentat per" -#: ../gtk/gtkaboutdialog.c:2412 +#: ../gtk/gtkaboutdialog.c:2411 msgid "Translated by" msgstr "Traduït per" -#: ../gtk/gtkaboutdialog.c:2417 +#: ../gtk/gtkaboutdialog.c:2416 msgid "Artwork by" msgstr "Art per" @@ -803,8 +941,8 @@ msgid "Backslash" msgstr "Barra inversa" #: ../gtk/gtkappchooserbutton.c:290 -msgid "Other application..." -msgstr "Una altra aplicació..." +msgid "Other application…" +msgstr "Una altra aplicació…" #: ../gtk/gtkappchooserdialog.c:137 msgid "Failed to look for applications online" @@ -833,7 +971,7 @@ msgstr "No s'ha trobat l'aplicació" msgid "Select an application to open \"%s\"" msgstr "Seleccioneu una aplicació per obrir «%s»" -#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:654 +#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:657 #, c-format msgid "No applications available to open \"%s\"" msgstr "No hi ha cap aplicació disponible per obrir «%s»" @@ -865,23 +1003,23 @@ msgstr "Oblida l'associació" msgid "Show other applications" msgstr "Mostra altres aplicacions" -#: ../gtk/gtkappchooserwidget.c:603 +#: ../gtk/gtkappchooserwidget.c:606 msgid "Default Application" msgstr "Aplicació per defecte" -#: ../gtk/gtkappchooserwidget.c:741 +#: ../gtk/gtkappchooserwidget.c:744 msgid "Recommended Applications" msgstr "Aplicacions recomanades" -#: ../gtk/gtkappchooserwidget.c:756 +#: ../gtk/gtkappchooserwidget.c:759 msgid "Related Applications" msgstr "Aplicacions relacionades" -#: ../gtk/gtkappchooserwidget.c:770 +#: ../gtk/gtkappchooserwidget.c:773 msgid "Other Applications" msgstr "Altres aplicacions" -#: ../gtk/gtkapplication.c:1556 +#: ../gtk/gtkapplication.c:1557 #, c-format msgid "" "%s cannot quit at this time:\n" @@ -1046,9 +1184,9 @@ msgstr "No vàlid" #. * an accelerator when the cell is clicked to change the #. * acelerator. #. -#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:745 -msgid "New accelerator..." -msgstr "Accelerador nou..." +#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 +msgid "New accelerator…" +msgstr "Accelerador nou…" #: ../gtk/gtkcellrendererprogress.c:372 ../gtk/gtkcellrendererprogress.c:462 #, c-format @@ -1268,7 +1406,7 @@ msgstr "Personalitzat" msgid "Create custom color" msgstr "Creeu un color personalitzat" -#: ../gtk/gtkcolorchooserwidget.c:543 +#: ../gtk/gtkcolorchooserwidget.c:542 #, c-format msgid "Custom color %d: %s" msgstr "Color personalitzat %d: %s" @@ -1351,8 +1489,8 @@ msgid "mm" msgstr "mm" #: ../gtk/gtkcustompaperunixdialog.c:605 -msgid "Margins from Printer..." -msgstr "Marges de la impressora..." +msgid "Margins from Printer…" +msgstr "Marges de la impressora…" #: ../gtk/gtkcustompaperunixdialog.c:771 #, c-format @@ -1391,15 +1529,15 @@ msgstr "_Dret:" msgid "Paper Margins" msgstr "Marges del paper" -#: ../gtk/gtkentry.c:9140 ../gtk/gtktextview.c:8583 +#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8598 msgid "Input _Methods" msgstr "_Mètodes d'entrada" -#: ../gtk/gtkentry.c:9154 ../gtk/gtktextview.c:8597 +#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8612 msgid "_Insert Unicode Control Character" msgstr "_Insereix caràcters de control Unicode" -#: ../gtk/gtkentry.c:10107 +#: ../gtk/gtkentry.c:10094 msgid "Caps Lock is on" msgstr "La fixació de majúscules està activada" @@ -1448,7 +1586,7 @@ msgstr "La fixació de majúscules està activada" msgid "Select a File" msgstr "Seleccioneu un fitxer" -#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1817 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1825 msgid "Desktop" msgstr "Escriptori" @@ -1456,31 +1594,31 @@ msgstr "Escriptori" msgid "(None)" msgstr "(Cap)" -#: ../gtk/gtkfilechooserbutton.c:2046 -msgid "Other..." -msgstr "Altre..." +#: ../gtk/gtkfilechooserbutton.c:2202 +msgid "Other…" +msgstr "Altre…" #: ../gtk/gtkfilechooserdefault.c:152 msgid "Type name of new folder" msgstr "Escriviu el nom de la carpeta nova" -#: ../gtk/gtkfilechooserdefault.c:968 +#: ../gtk/gtkfilechooserdefault.c:954 msgid "Could not retrieve information about the file" msgstr "No s'ha pogut obtindre informació sobre el fitxer" -#: ../gtk/gtkfilechooserdefault.c:979 +#: ../gtk/gtkfilechooserdefault.c:965 msgid "Could not add a bookmark" msgstr "No s'ha pogut afegir una adreça d'interés" -#: ../gtk/gtkfilechooserdefault.c:990 +#: ../gtk/gtkfilechooserdefault.c:976 msgid "Could not remove bookmark" msgstr "No s'ha pogut suprimir l'adreça d'interés" -#: ../gtk/gtkfilechooserdefault.c:1001 +#: ../gtk/gtkfilechooserdefault.c:987 msgid "The folder could not be created" msgstr "No s'ha pogut crear la carpeta" -#: ../gtk/gtkfilechooserdefault.c:1014 +#: ../gtk/gtkfilechooserdefault.c:1000 msgid "" "The folder could not be created, as a file with the same name already " "exists. Try using a different name for the folder, or rename the file first." @@ -1489,16 +1627,16 @@ msgstr "" "nom. Proveu d'utilitzar un nom diferent per a la carpeta, o bé canvieu el " "nom del fitxer abans de crear-la." -#: ../gtk/gtkfilechooserdefault.c:1028 +#: ../gtk/gtkfilechooserdefault.c:1014 msgid "You need to choose a valid filename." msgstr "Cal que trieu un nom de fitxer vàlid." -#: ../gtk/gtkfilechooserdefault.c:1031 +#: ../gtk/gtkfilechooserdefault.c:1017 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "No es pot crear un fitxer a %s, atès que no és una carpeta" -#: ../gtk/gtkfilechooserdefault.c:1043 +#: ../gtk/gtkfilechooserdefault.c:1029 msgid "" "You may only select folders. The item that you selected is not a folder; " "try using a different item." @@ -1506,11 +1644,11 @@ msgstr "" "Només podeu seleccionar carpetes. L'element que heu seleccionat no és una " "carpeta. Torneu-ho a intentar utilitzant un element diferent." -#: ../gtk/gtkfilechooserdefault.c:1053 +#: ../gtk/gtkfilechooserdefault.c:1039 msgid "Invalid file name" msgstr "El nom del fitxer no és vàlid" -#: ../gtk/gtkfilechooserdefault.c:1063 +#: ../gtk/gtkfilechooserdefault.c:1049 msgid "The folder contents could not be displayed" msgstr "No s'ha pogut mostrar el contingut de la carpeta" @@ -1518,194 +1656,194 @@ msgstr "No s'ha pogut mostrar el contingut de la carpeta" #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1589 +#: ../gtk/gtkfilechooserdefault.c:1575 #, c-format msgid "%1$s on %2$s" msgstr "%1$s a %2$s" -#: ../gtk/gtkfilechooserdefault.c:1738 +#: ../gtk/gtkfilechooserdefault.c:1724 msgid "Search" msgstr "Cerca" -#: ../gtk/gtkfilechooserdefault.c:1762 ../gtk/gtkfilechooserdefault.c:4988 +#: ../gtk/gtkfilechooserdefault.c:1768 ../gtk/gtkfilechooserdefault.c:4996 msgid "Recently Used" msgstr "Utilitzats recentment" -#: ../gtk/gtkfilechooserdefault.c:2361 +#: ../gtk/gtkfilechooserdefault.c:2369 msgid "Select which types of files are shown" msgstr "Seleccioneu quins tipus de fitxers es mostren" -#: ../gtk/gtkfilechooserdefault.c:2720 +#: ../gtk/gtkfilechooserdefault.c:2728 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "Afig la carpeta «%s» a les adreces d'interés" -#: ../gtk/gtkfilechooserdefault.c:2764 +#: ../gtk/gtkfilechooserdefault.c:2772 #, c-format msgid "Add the current folder to the bookmarks" msgstr "Afig la carpeta actual a les adreces d'interés" -#: ../gtk/gtkfilechooserdefault.c:2766 +#: ../gtk/gtkfilechooserdefault.c:2774 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "Afig les carpetes seleccionades a les adreces d'interés" -#: ../gtk/gtkfilechooserdefault.c:2804 +#: ../gtk/gtkfilechooserdefault.c:2812 #, c-format msgid "Remove the bookmark '%s'" msgstr "Suprimeix l'adreça d'interés «%s»" -#: ../gtk/gtkfilechooserdefault.c:2806 +#: ../gtk/gtkfilechooserdefault.c:2814 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "No es pot suprimir l'adreça d'interés «%s»" -#: ../gtk/gtkfilechooserdefault.c:2813 ../gtk/gtkfilechooserdefault.c:3699 +#: ../gtk/gtkfilechooserdefault.c:2821 ../gtk/gtkfilechooserdefault.c:3707 msgid "Remove the selected bookmark" msgstr "Suprimeix l'adreça d'interés seleccionada" -#: ../gtk/gtkfilechooserdefault.c:3377 +#: ../gtk/gtkfilechooserdefault.c:3385 msgid "Remove" msgstr "Suprimeix" -#: ../gtk/gtkfilechooserdefault.c:3386 -msgid "Rename..." -msgstr "Canvia el nom..." +#: ../gtk/gtkfilechooserdefault.c:3394 +msgid "Rename…" +msgstr "Canvia el nom…" #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3550 +#: ../gtk/gtkfilechooserdefault.c:3558 msgid "Places" msgstr "Llocs" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3607 +#: ../gtk/gtkfilechooserdefault.c:3615 msgid "_Places" msgstr "_Llocs" -#: ../gtk/gtkfilechooserdefault.c:3687 +#: ../gtk/gtkfilechooserdefault.c:3695 msgid "Add the selected folder to the Bookmarks" msgstr "Afig la carpeta seleccionada a les adreces d'interés" -#: ../gtk/gtkfilechooserdefault.c:3948 +#: ../gtk/gtkfilechooserdefault.c:3956 msgid "Could not select file" msgstr "No s'ha pogut seleccionar el fitxer" -#: ../gtk/gtkfilechooserdefault.c:4173 +#: ../gtk/gtkfilechooserdefault.c:4181 msgid "_Visit this file" msgstr "_Visita este fitxer" -#: ../gtk/gtkfilechooserdefault.c:4176 +#: ../gtk/gtkfilechooserdefault.c:4184 msgid "_Copy file’s location" msgstr "_Copia la ubicació del fitxer" -#: ../gtk/gtkfilechooserdefault.c:4179 +#: ../gtk/gtkfilechooserdefault.c:4187 msgid "_Add to Bookmarks" msgstr "_Afig a les adreces d'interés" -#: ../gtk/gtkfilechooserdefault.c:4186 +#: ../gtk/gtkfilechooserdefault.c:4194 msgid "Show _Hidden Files" msgstr "Mostra els fitxers _ocults" -#: ../gtk/gtkfilechooserdefault.c:4189 +#: ../gtk/gtkfilechooserdefault.c:4197 msgid "Show _Size Column" msgstr "Mostra la columna de la _mida" -#: ../gtk/gtkfilechooserdefault.c:4414 +#: ../gtk/gtkfilechooserdefault.c:4422 msgid "Files" msgstr "Fitxers" -#: ../gtk/gtkfilechooserdefault.c:4465 +#: ../gtk/gtkfilechooserdefault.c:4473 msgid "Name" msgstr "Nom" -#: ../gtk/gtkfilechooserdefault.c:4488 +#: ../gtk/gtkfilechooserdefault.c:4496 msgid "Size" msgstr "Mida" -#: ../gtk/gtkfilechooserdefault.c:4502 +#: ../gtk/gtkfilechooserdefault.c:4510 msgid "Modified" msgstr "Modificat" #. Label -#: ../gtk/gtkfilechooserdefault.c:4595 +#: ../gtk/gtkfilechooserdefault.c:4603 msgid "_Name:" msgstr "_Nom:" -#: ../gtk/gtkfilechooserdefault.c:4826 +#: ../gtk/gtkfilechooserdefault.c:4834 msgid "Type a file name" msgstr "Escriviu un nom de fitxer" -#: ../gtk/gtkfilechooserdefault.c:4873 ../gtk/gtkfilechooserdefault.c:4884 +#: ../gtk/gtkfilechooserdefault.c:4881 ../gtk/gtkfilechooserdefault.c:4892 msgid "Please select a folder below" msgstr "Seleccioneu una carpeta a continuació" -#: ../gtk/gtkfilechooserdefault.c:4879 +#: ../gtk/gtkfilechooserdefault.c:4887 msgid "Please type a file name" msgstr "Escriviu un nom de fitxer" #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4950 +#: ../gtk/gtkfilechooserdefault.c:4958 msgid "Create Fo_lder" msgstr "Crea una ca_rpeta" -#: ../gtk/gtkfilechooserdefault.c:4998 +#: ../gtk/gtkfilechooserdefault.c:5006 msgid "Search:" msgstr "Cerca:" -#: ../gtk/gtkfilechooserdefault.c:5049 +#: ../gtk/gtkfilechooserdefault.c:5057 msgid "_Location:" msgstr "_Ubicació:" -#: ../gtk/gtkfilechooserdefault.c:5500 +#: ../gtk/gtkfilechooserdefault.c:5507 msgid "Save in _folder:" msgstr "Al_ça a la carpeta:" -#: ../gtk/gtkfilechooserdefault.c:5502 +#: ../gtk/gtkfilechooserdefault.c:5509 msgid "Create in _folder:" msgstr "Crea a la _carpeta:" -#: ../gtk/gtkfilechooserdefault.c:6589 +#: ../gtk/gtkfilechooserdefault.c:6521 #, c-format msgid "Could not read the contents of %s" msgstr "No s'ha pogut llegir el contingut de %s" -#: ../gtk/gtkfilechooserdefault.c:6593 +#: ../gtk/gtkfilechooserdefault.c:6525 msgid "Could not read the contents of the folder" msgstr "No s'ha pogut llegir el contingut de la carpeta" -#: ../gtk/gtkfilechooserdefault.c:6686 ../gtk/gtkfilechooserdefault.c:6754 -#: ../gtk/gtkfilechooserdefault.c:6934 +#: ../gtk/gtkfilechooserdefault.c:6618 ../gtk/gtkfilechooserdefault.c:6686 +#: ../gtk/gtkfilechooserdefault.c:6866 msgid "Unknown" msgstr "Desconegut" -#: ../gtk/gtkfilechooserdefault.c:6701 +#: ../gtk/gtkfilechooserdefault.c:6633 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6703 +#: ../gtk/gtkfilechooserdefault.c:6635 msgid "Yesterday at %H:%M" msgstr "Ahir a les %H:%M" -#: ../gtk/gtkfilechooserdefault.c:7405 +#: ../gtk/gtkfilechooserdefault.c:7337 msgid "Cannot change to folder because it is not local" msgstr "No es pot canviar a la carpeta perquè no és local" -#: ../gtk/gtkfilechooserdefault.c:8009 ../gtk/gtkfilechooserdefault.c:8030 +#: ../gtk/gtkfilechooserdefault.c:7934 ../gtk/gtkfilechooserdefault.c:7955 #, c-format msgid "Shortcut %s already exists" msgstr "La drecera %s ja existeix" -#: ../gtk/gtkfilechooserdefault.c:8120 +#: ../gtk/gtkfilechooserdefault.c:8045 #, c-format msgid "Shortcut %s does not exist" msgstr "La drecera %s no existeix" -#: ../gtk/gtkfilechooserdefault.c:8366 ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8292 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "Ja existeix un fitxer amb el nom «%s». Voleu reemplaçar-lo?" -#: ../gtk/gtkfilechooserdefault.c:8369 ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8295 ../gtk/gtkprintunixdialog.c:552 #, c-format msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." @@ -1713,15 +1851,15 @@ msgstr "" "El fitxer ja existeix a «%s». Si el reemplaceu en sobreescriureu el " "contingut." -#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8300 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "_Reemplaça" -#: ../gtk/gtkfilechooserdefault.c:9181 +#: ../gtk/gtkfilechooserdefault.c:9107 msgid "Could not start the search process" msgstr "No s'ha pogut iniciar el procés de cerca" -#: ../gtk/gtkfilechooserdefault.c:9182 +#: ../gtk/gtkfilechooserdefault.c:9108 msgid "" "The program was not able to create a connection to the indexer daemon. " "Please make sure it is running." @@ -1729,11 +1867,11 @@ msgstr "" "El programa no ha pogut crear cap connexió al dimoni d'indexació. Assegureu-" "vos que s'està executant." -#: ../gtk/gtkfilechooserdefault.c:9196 +#: ../gtk/gtkfilechooserdefault.c:9122 msgid "Could not send the search request" msgstr "No s'ha pogut enviar la sol·licitud de cerca" -#: ../gtk/gtkfilechooserdefault.c:9806 +#: ../gtk/gtkfilechooserdefault.c:9732 #, c-format msgid "Could not mount %s" msgstr "No s'ha pogut muntar %s" @@ -1773,12 +1911,12 @@ msgstr "Cerca el nom del tipus de lletra" msgid "Font Family" msgstr "Família del tipus de lletra" -#: ../gtk/gtkicontheme.c:1627 +#: ../gtk/gtkicontheme.c:1937 #, c-format msgid "Icon '%s' not present in theme" msgstr "La icona «%s» no es troba al tema" -#: ../gtk/gtkicontheme.c:3137 +#: ../gtk/gtkicontheme.c:3553 msgid "Failed to load icon" msgstr "No s'ha pogut carregar la icona" @@ -1803,22 +1941,22 @@ msgid "System (%s)" msgstr "Sistema (%s)" #. Open Link -#: ../gtk/gtklabel.c:6224 +#: ../gtk/gtklabel.c:6139 msgid "_Open Link" msgstr "Obri l'_enllaç" #. Copy Link Address -#: ../gtk/gtklabel.c:6236 +#: ../gtk/gtklabel.c:6151 msgid "Copy _Link Address" msgstr "Copia l'adreça de l'en_llaç" -#: ../gtk/gtk-launch.c:69 -msgid "APPLICATION [URI...] - launch an APPLICATION with URI." -msgstr "APLICACIÓ [URI] - executa una APLICACIÓ amb una URI." +#: ../gtk/gtk-launch.c:71 +msgid "APPLICATION [URI…] — launch an APPLICATION with URI." +msgstr "APLICACIÓ [URI…] — executa una APLICACIÓ amb una URI." #. Translators: this message will appear after the usage string #. and before the list of options. -#: ../gtk/gtk-launch.c:73 +#: ../gtk/gtk-launch.c:75 msgid "" "Launch specified application by its desktop file info\n" "optionally passing list of URIs as arguments." @@ -1826,34 +1964,41 @@ msgstr "" "Executa l'aplicació especificada pel seu fitxer d'informació\n" "d'escriptori amb una llista opcional d'URI com a arguments." -#: ../gtk/gtk-launch.c:85 +#: ../gtk/gtk-launch.c:87 #, c-format msgid "Error parsing commandline options: %s\n" msgstr "" "S'ha produït un error en analitzar les opcions de la línia d'ordes: %s\n" -#: ../gtk/gtk-launch.c:87 ../gtk/gtk-launch.c:100 +#: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Per a més informació proveu «%s --help»." #. Translators: the %s is the program name. This error message #. means the user is calling gtk-launch without any argument. -#: ../gtk/gtk-launch.c:98 +#: ../gtk/gtk-launch.c:100 #, c-format msgid "%s: missing application name" msgstr "%s: manca el nom de l'aplicació" +#: ../gtk/gtk-launch.c:121 +#, c-format +msgid "Creating AppInfo from id not supported on non unix operating systems" +msgstr "" +"No es poden crear «AppInfo» a partir d'identificadors en sistemes operatius " +"que no siguen UNIX." + #. Translators: the first %s is the program name, the second one #. is the application name. -#: ../gtk/gtk-launch.c:122 +#: ../gtk/gtk-launch.c:129 #, c-format msgid "%s: no such application %s" msgstr "%s: no existeix l'aplicació %s" #. Translators: the first %s is the program name, the second one #. is the error message. -#: ../gtk/gtk-launch.c:140 +#: ../gtk/gtk-launch.c:147 #, c-format msgid "%s: error launching application: %s\n" msgstr "%s: s'ha produït un error en executar l'aplicació: %s\n" @@ -1930,20 +2075,20 @@ msgstr "Senyaladors de depuració de GTK+ que s'han d'inhabilitar" #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: ../gtk/gtkmain.c:707 +#: ../gtk/gtkmain.c:703 msgid "default:LTR" msgstr "default:LTR" -#: ../gtk/gtkmain.c:775 +#: ../gtk/gtkmain.c:768 #, c-format msgid "Cannot open display: %s" msgstr "No es pot obrir la pantalla: %s" -#: ../gtk/gtkmain.c:841 +#: ../gtk/gtkmain.c:834 msgid "GTK+ Options" msgstr "Opcions del GTK+" -#: ../gtk/gtkmain.c:841 +#: ../gtk/gtkmain.c:834 msgid "Show GTK+ Options" msgstr "Mostra les opcions del GTK+" @@ -2032,7 +2177,7 @@ msgstr "Intèrpret d'ordes «Z»" msgid "Cannot end process with PID %d: %s" msgstr "No es pot finalitzar el procés amb el PID %d: %s" -#: ../gtk/gtknotebook.c:5051 ../gtk/gtknotebook.c:7705 +#: ../gtk/gtknotebook.c:5069 ../gtk/gtknotebook.c:7723 #, c-format msgid "Page %u" msgstr "Pàgina %u" @@ -2040,14 +2185,14 @@ msgstr "Pàgina %u" #. Translators: the format here is used to build the string that will be rendered #. * in the number emblem. #. -#: ../gtk/gtknumerableicon.c:481 +#: ../gtk/gtknumerableicon.c:482 #, c-format msgctxt "Number format" msgid "%d" msgstr "%d" -#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:846 -#: ../gtk/gtkpapersize.c:886 +#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:848 +#: ../gtk/gtkpapersize.c:888 msgid "Not a valid page setup file" msgstr "No és un fitxer de configuració de pàgina vàlid" @@ -2075,8 +2220,8 @@ msgstr "" " Inferior: %s %s" #: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 -msgid "Manage Custom Sizes..." -msgstr "Gestiona mides personalitzades..." +msgid "Manage Custom Sizes…" +msgstr "Gestioneu mides personalitzades…" #: ../gtk/gtkpagesetupunixdialog.c:896 msgid "_Format for:" @@ -2108,7 +2253,7 @@ msgstr "Avall" msgid "File System Root" msgstr "Arrel del sistema de fitxers" -#: ../gtk/gtkprintbackend.c:748 +#: ../gtk/gtkprintbackend.c:750 msgid "Authentication" msgstr "Autenticació" @@ -2262,8 +2407,8 @@ msgid "Getting printer information failed" msgstr "Ha fallat l'obtenció d'informació de la impressora" #: ../gtk/gtkprintunixdialog.c:1916 -msgid "Getting printer information..." -msgstr "S'està obtenint informació de la impressora..." +msgid "Getting printer information…" +msgstr "S'està obtenint informació de la impressora…" #: ../gtk/gtkprintunixdialog.c:2184 msgid "Printer" @@ -2339,42 +2484,42 @@ msgstr "General" #. * multiple pages on a sheet when printing #. #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, top to bottom" msgstr "D'esquerra a dreta, de dalt a baix" #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, bottom to top" msgstr "D'esquerra a dreta, de baix a dalt" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, top to bottom" msgstr "De dreta a esquerra, de dalt a baix" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, bottom to top" msgstr "De dreta a esquerra, de baix a dalt" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, left to right" msgstr "De dalt a baix, d'esquerra a dreta" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, right to left" msgstr "De dalt a baix, de dreta a esquerra" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, left to right" msgstr "De baix a dalt, d'esquerra a dreta" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, right to left" msgstr "De baix a dalt, de dreta a esquerra" @@ -2382,7 +2527,7 @@ msgstr "De baix a dalt, de dreta a esquerra" #. * dialog that controls in what order multiple pages are arranged #. #: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3766 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772 msgid "Page Ordering" msgstr "Ordenació de les pàgines" @@ -2556,31 +2701,31 @@ msgstr "_Després:" msgid "Job" msgstr "Tasca" -#: ../gtk/gtkprintunixdialog.c:3753 +#: ../gtk/gtkprintunixdialog.c:3751 msgid "Advanced" msgstr "Avançat" #. Translators: this will appear as tab label in print dialog. -#: ../gtk/gtkprintunixdialog.c:3791 +#: ../gtk/gtkprintunixdialog.c:3789 msgid "Image Quality" msgstr "Qualitat de la imatge" #. Translators: this will appear as tab label in print dialog. -#: ../gtk/gtkprintunixdialog.c:3795 +#: ../gtk/gtkprintunixdialog.c:3793 msgid "Color" msgstr "Color" #. Translators: this will appear as tab label in print dialog. #. It's a typographical term, as in "Binding and finishing" -#: ../gtk/gtkprintunixdialog.c:3800 +#: ../gtk/gtkprintunixdialog.c:3798 msgid "Finishing" msgstr "Acabaments" -#: ../gtk/gtkprintunixdialog.c:3810 +#: ../gtk/gtkprintunixdialog.c:3808 msgid "Some of the settings in the dialog conflict" msgstr "Alguns paràmetres del diàleg estan en conflicte" -#: ../gtk/gtkprintunixdialog.c:3836 +#: ../gtk/gtkprintunixdialog.c:3834 msgid "Print" msgstr "Imprimeix" @@ -2588,36 +2733,36 @@ msgstr "Imprimeix" msgid "Select which type of documents are shown" msgstr "Seleccioneu quins tipus de documents s'han de mostrar" -#: ../gtk/gtkrecentchooserdefault.c:1130 ../gtk/gtkrecentchooserdefault.c:1167 +#: ../gtk/gtkrecentchooserdefault.c:1129 ../gtk/gtkrecentchooserdefault.c:1166 #, c-format msgid "No item for URI '%s' found" msgstr "No s'ha trobat cap element per a l'URI «%s»" -#: ../gtk/gtkrecentchooserdefault.c:1294 +#: ../gtk/gtkrecentchooserdefault.c:1293 msgid "Untitled filter" msgstr "Filtre sense títol" -#: ../gtk/gtkrecentchooserdefault.c:1647 +#: ../gtk/gtkrecentchooserdefault.c:1646 msgid "Could not remove item" msgstr "No s'ha pogut suprimir l'element" -#: ../gtk/gtkrecentchooserdefault.c:1691 +#: ../gtk/gtkrecentchooserdefault.c:1690 msgid "Could not clear list" msgstr "No s'ha pogut netejar la llista" -#: ../gtk/gtkrecentchooserdefault.c:1775 +#: ../gtk/gtkrecentchooserdefault.c:1774 msgid "Copy _Location" msgstr "Copia la _ubicació" -#: ../gtk/gtkrecentchooserdefault.c:1788 +#: ../gtk/gtkrecentchooserdefault.c:1787 msgid "_Remove From List" msgstr "Sup_rimeix de la llista" -#: ../gtk/gtkrecentchooserdefault.c:1797 +#: ../gtk/gtkrecentchooserdefault.c:1796 msgid "_Clear List" msgstr "_Neteja la llista" -#: ../gtk/gtkrecentchooserdefault.c:1811 +#: ../gtk/gtkrecentchooserdefault.c:1810 msgid "Show _Private Resources" msgstr "Mostra els recursos _privats" @@ -2669,15 +2814,15 @@ msgctxt "recent menu label" msgid "%d. %s" msgstr "%d. (%s)" -#: ../gtk/gtkrecentmanager.c:1010 ../gtk/gtkrecentmanager.c:1023 -#: ../gtk/gtkrecentmanager.c:1160 ../gtk/gtkrecentmanager.c:1170 -#: ../gtk/gtkrecentmanager.c:1222 ../gtk/gtkrecentmanager.c:1231 -#: ../gtk/gtkrecentmanager.c:1246 +#: ../gtk/gtkrecentmanager.c:1035 ../gtk/gtkrecentmanager.c:1048 +#: ../gtk/gtkrecentmanager.c:1185 ../gtk/gtkrecentmanager.c:1195 +#: ../gtk/gtkrecentmanager.c:1247 ../gtk/gtkrecentmanager.c:1256 +#: ../gtk/gtkrecentmanager.c:1271 #, c-format msgid "Unable to find an item with URI '%s'" msgstr "No s'ha pogut trobar cap element amb l'URI «%s»" -#: ../gtk/gtkrecentmanager.c:2446 +#: ../gtk/gtkrecentmanager.c:2471 #, c-format msgid "No registered application with name '%s' for item with URI '%s' found" msgstr "" @@ -3099,7 +3244,7 @@ msgstr "Al_ça" #: ../gtk/gtkstock.c:430 msgctxt "Stock label" msgid "Save _As" -msgstr "_Anomena i alça" +msgstr "_Anomena i guarda" #: ../gtk/gtkstock.c:431 msgctxt "Stock label" @@ -3191,7 +3336,7 @@ msgstr "_Redueix" #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for #. * the state #. -#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:586 +#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:583 msgctxt "switch" msgid "ON" msgstr "❙" @@ -3199,7 +3344,7 @@ msgstr "❙" #. Translators: if the "off" state label requires more than three #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state #. -#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:615 +#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:598 msgctxt "switch" msgid "OFF" msgstr "○" @@ -3376,7 +3521,7 @@ msgstr "" msgid "Unexpected character data on line %d char %d" msgstr "S'han trobat dades de caràcter inesperades a la línia %d, caràcter %d" -#: ../gtk/gtkuimanager.c:2738 +#: ../gtk/gtkuimanager.c:2694 msgid "Empty" msgstr "Buit" @@ -4565,155 +4710,155 @@ msgstr "En pausa; es refusen les tasques" msgid "Rejecting Jobs" msgstr "Es refusen les tasques" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2909 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2915 msgid "Two Sided" msgstr "Doble cara" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2910 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2916 msgid "Paper Type" msgstr "Tipus de paper" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2911 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2917 msgid "Paper Source" msgstr "Font del paper" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2912 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2918 msgid "Output Tray" msgstr "Safata d'eixida" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2913 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2919 msgid "Resolution" msgstr "Resolució" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2914 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2920 msgid "GhostScript pre-filtering" msgstr "Filtrat previ del GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2923 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 msgid "One Sided" msgstr "Una cara" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2925 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 msgid "Long Edge (Standard)" msgstr "Cantó llarg (estàndard)" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2927 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 msgid "Short Edge (Flip)" msgstr "Cantó curt (capgirat)" #. Translators: this is an option of "Paper Source" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 msgid "Auto Select" msgstr "Selecció automàtica" #. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Resolution" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2941 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3429 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3435 msgid "Printer Default" msgstr "Per defecte de la impressora" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 msgid "Embed GhostScript fonts only" msgstr "Incrusta només els tipus de lletra GhostScript" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2951 msgid "Convert to PS level 1" msgstr "Converteix a PS, nivell 1" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2953 msgid "Convert to PS level 2" msgstr "Converteix a PS, nivell 2" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2955 msgid "No pre-filtering" msgstr "Sense filtratge previ" #. Translators: "Miscellaneous" is the label for a button, that opens #. up an extra panel of settings in a print dialog. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2958 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2964 msgid "Miscellaneous" msgstr "Miscel·lània" #. Translators: These strings name the possible values of the #. * job priority option in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Urgent" msgstr "Urgent" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "High" msgstr "Alta" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Medium" msgstr "Mitjana" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Low" msgstr "Baixa" #. Translators, this string is used to label the job priority option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3711 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3717 msgid "Job Priority" msgstr "Prioritat de la tasca" #. Translators, this string is used to label the billing info entry #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3722 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3728 msgid "Billing Info" msgstr "Informació de facturació" #. Translators, these strings are names for various 'standard' cover #. * pages that the printing system may support. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "None" msgstr "Cap" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Classified" msgstr "Classificat" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Confidential" msgstr "Confidencial" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Secret" msgstr "Secret" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Standard" msgstr "Estàndard" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Top Secret" msgstr "Alt secret" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Unclassified" msgstr "No classificat" #. Translators, this string is used to label the pages-per-sheet option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3748 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3754 msgid "Pages per Sheet" msgstr "Pàgines per full" @@ -4721,7 +4866,7 @@ msgstr "Pàgines per full" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3808 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3814 msgid "Before" msgstr "Abans" @@ -4729,7 +4874,7 @@ msgstr "Abans" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3823 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3829 msgid "After" msgstr "Després" @@ -4737,7 +4882,7 @@ msgstr "Després" #. * a print job is printed. Possible values are 'now', a specified time, #. * or 'on hold' #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3843 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849 msgid "Print at" msgstr "Imprimeix" @@ -4745,7 +4890,7 @@ msgstr "Imprimeix" #. 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/cups/gtkprintbackendcups.c:3854 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860 msgid "Print at time" msgstr "Imprimeix a una hora o data determinada" @@ -4753,18 +4898,18 @@ msgstr "Imprimeix a una hora o data determinada" #. * size. The two placeholders are replaced with the width and height #. * in points. E.g: "Custom 230.4x142.9" #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895 #, c-format msgid "Custom %sx%s" msgstr "Personalitzat %sx%s" # Connectada? (josep) -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3970 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3976 msgid "Printer Profile" msgstr "Perfil de la impressora" #. TRANSLATORS: this is when color profile information is unavailable -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3977 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3983 msgid "Unavailable" msgstr "No està disponible" @@ -4866,6 +5011,15 @@ msgstr "prova-de-eixida.%s" msgid "Print to Test Printer" msgstr "Imprimiu per provar la impressora" +#~ msgid "Homepage" +#~ msgstr "Pàgina inicial" + +#~ msgid "Rename..." +#~ msgstr "Canvia el nom..." + +#~ msgid "Manage Custom Sizes..." +#~ msgstr "Gestiona mides personalitzades..." + #~ msgid "Select a folder" #~ msgstr "Seleccioneu una carpeta" @@ -5719,9 +5873,6 @@ msgstr "Imprimiu per provar la impressora" #~ msgid "Rename file \"%s\" to:" #~ msgstr "Canvia el nom del fitxer «%s» a:" -#~ msgid "_Rename" -#~ msgstr "_Canvia el nom" - #~ msgid "" #~ "The filename \"%s\" couldn't be converted to UTF-8. (try setting the " #~ "environment variable G_FILENAME_ENCODING): %s" @@ -5777,9 +5928,6 @@ msgstr "Imprimiu per provar la impressora" #~ msgid "_Y:" #~ msgstr "_Y:" -#~ msgid "_Pressure:" -#~ msgstr "_Pressió:" - #~ msgid "X _tilt:" #~ msgstr "_Inclinació en X:" From 19784959e00ff75c8247f1c1cd106c4fd498a409 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 15 Feb 2013 11:07:51 +0100 Subject: [PATCH 066/208] Fix GtkIconInfo docs gtk_icon_info_copy and gtk_icon_info_free are deprecated for the corresponding GObject methods. We set correct transfer markup for the GtkIconInfo returning methods to fix the introspection of them. gtk_icon_info_load_symbolic_for_context_async had the wrong method name in its documentation block. --- gtk/gtkicontheme.c | 20 +++++++++++--------- gtk/gtkicontheme.h | 2 ++ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index e2c9eaa340..a399ac543f 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -1778,9 +1778,8 @@ choose_icon (GtkIconTheme *icon_theme, * gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() * combines these two steps if all you need is the pixbuf.) * - * Return value: a #GtkIconInfo structure containing information - * about the icon, or %NULL if the icon wasn't found. Free with - * gtk_icon_info_free() + * Return value: (transfer full): a #GtkIconInfo object containing information + * about the icon, or %NULL if the icon wasn't found. * * Since: 2.4 */ @@ -1856,9 +1855,8 @@ gtk_icon_theme_lookup_icon (GtkIconTheme *icon_theme, * tries them all in the given order before falling back to * inherited icon themes. * - * Return value: a #GtkIconInfo structure containing information - * about the icon, or %NULL if the icon wasn't found. Free with - * gtk_icon_info_free() + * Return value: (transfer full): a #GtkIconInfo object containing information + * about the icon, or %NULL if the icon wasn't found. * * Since: 2.12 */ @@ -3074,6 +3072,8 @@ icon_info_new_builtin (BuiltinIcon *icon) * Return value: the new GtkIconInfo * * Since: 2.4 + * + * Deprecated: 3.8: Use g_object_ref() **/ GtkIconInfo * gtk_icon_info_copy (GtkIconInfo *icon_info) @@ -3091,6 +3091,8 @@ gtk_icon_info_copy (GtkIconInfo *icon_info) * Free a #GtkIconInfo and associated information * * Since: 2.4 + * + * Deprecated: 3.8: Use g_object_unref() **/ void gtk_icon_info_free (GtkIconInfo *icon_info) @@ -4290,7 +4292,7 @@ gtk_icon_info_load_symbolic_finish (GtkIconInfo *icon_info, } /** - * gtk_icon_info_load_symbolic_async: + * gtk_icon_info_load_symbolic_for_context_async: * @icon_info: a #GtkIconInfo structure from gtk_icon_theme_lookup_icon() * @context: a #GtkStyleContext * @cancellable: (allow-none): optional #GCancellable object, @@ -4830,7 +4832,7 @@ _gtk_icon_theme_check_reload (GdkDisplay *display) * The icon can then be rendered into a pixbuf using * gtk_icon_info_load_icon(). * - * Return value: a #GtkIconInfo structure containing + * Return value: (transfer full): a #GtkIconInfo structure containing * information about the icon, or %NULL if the icon * wasn't found. Free with gtk_icon_info_free() * @@ -4949,7 +4951,7 @@ gtk_icon_theme_lookup_by_gicon (GtkIconTheme *icon_theme, * * Creates a #GtkIconInfo for a #GdkPixbuf. * - * Returns: a #GtkIconInfo + * Return value: (transfer full): a #GtkIconInfo * * Since: 2.14 */ diff --git a/gtk/gtkicontheme.h b/gtk/gtkicontheme.h index 4b3ba79867..0b4ee405f6 100644 --- a/gtk/gtkicontheme.h +++ b/gtk/gtkicontheme.h @@ -192,7 +192,9 @@ void gtk_icon_theme_add_builtin_icon (const gchar *icon_name, GdkPixbuf *pixbuf); GType gtk_icon_info_get_type (void) G_GNUC_CONST; +GDK_DEPRECATED_IN_3_8_FOR(g_object_ref) GtkIconInfo * gtk_icon_info_copy (GtkIconInfo *icon_info); +GDK_DEPRECATED_IN_3_8_FOR(g_object_unref) void gtk_icon_info_free (GtkIconInfo *icon_info); GtkIconInfo * gtk_icon_info_new_for_pixbuf (GtkIconTheme *icon_theme, From c6c33c5cd7a6b5b805f8667a5bca1d4afb7cef04 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 15 Feb 2013 14:02:02 +0100 Subject: [PATCH 067/208] Fix up s/gtk_frame_clock/gdk_frame_clock/ in docs --- gtk/gtkwidget.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 48f996063e..58c6d901e0 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4623,9 +4623,9 @@ static guint tick_callback_id; * then you will have to call gtk_widget_queue_resize() or * gtk_widget_queue_draw_area() yourself. * - * gtk_frame_clock_get_frame_time() should generally be used for timing + * gdk_frame_clock_get_frame_time() should generally be used for timing * continuous animations and - * gtk_frame_timings_get_predicted_presentation_time() if you are + * gdk_frame_timings_get_predicted_presentation_time() if you are * trying to display isolated frames particular times. * * This is a more convenient alternative to connecting directly to the From bbb981fd1aecae0dba4ab9e23ed38ce91ba771f9 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 15 Feb 2013 15:46:33 +0100 Subject: [PATCH 068/208] Fix gtk_widget_add_tick_callback sometimes not working We clear GtkTickCallbackInfo on creation to ensure all fields start as 0. Before we sometimes ended up with destroyed being 1 so the tick was never called. --- gtk/gtkwidget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 58c6d901e0..231d27b773 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4655,7 +4655,7 @@ gtk_widget_add_tick_callback (GtkWidget *widget, GDK_FRAME_CLOCK_PHASE_UPDATE); } - info = g_slice_new (GtkTickCallbackInfo); + info = g_slice_new0 (GtkTickCallbackInfo); info->refcount = 1; info->id = ++tick_callback_id; From 8bfea4bdaf2e9764ee32e71e272435eef85c622c Mon Sep 17 00:00:00 2001 From: Baurzhan Muftakhidinov Date: Fri, 15 Feb 2013 20:53:49 +0600 Subject: [PATCH 069/208] Updated Kazakh translation. --- po/kk.po | 56 +++++++++++++++++++++++++------------------------------- 1 file changed, 25 insertions(+), 31 deletions(-) diff --git a/po/kk.po b/po/kk.po index c99e55072c..fcad67cddc 100644 --- a/po/kk.po +++ b/po/kk.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" "%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-12-15 20:12+0000\n" -"PO-Revision-Date: 2013-01-05 20:56+0600\n" +"POT-Creation-Date: 2013-01-19 19:42+0000\n" +"PO-Revision-Date: 2013-02-01 23:52+0600\n" "Last-Translator: Baurzhan Muftakhidinov \n" "Language-Team: Kazakh \n" "Language: kk\n" @@ -68,7 +68,7 @@ msgstr "GDK жөндеу жалаушалары орнатылған" #. Placeholder in --gdk-no-debug=FLAGS in --help output #. Placeholder in --gtk-debug=FLAGS in --help output #. Placeholder in --gtk-no-debug=FLAGS in --help output -#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:454 ../gtk/gtkmain.c:457 +#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:453 ../gtk/gtkmain.c:456 msgid "FLAGS" msgstr "ЖАЛАУШАЛАР" @@ -452,21 +452,21 @@ msgid "Opening %d Item" msgid_plural "Opening %d Items" msgstr[0] "%d нәрсе ашылуда" -#: ../gtk/a11y/gtkspinneraccessible.c:40 +#: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" msgstr "Айналғыш" -#: ../gtk/a11y/gtkspinneraccessible.c:41 +#: ../gtk/a11y/gtkspinneraccessible.c:40 msgid "Provides visual indication of progress" msgstr "Үрдістің графикалық көрсеткішін ұсынады" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:62 msgctxt "light switch widget" msgid "Switch" msgstr "Ауыстыру" -#: ../gtk/a11y/gtkswitchaccessible.c:64 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgid "Switches between on and off states" msgstr "On және off қалып-күйлерін ауыстырғышы" @@ -676,27 +676,27 @@ msgid "Could not show link" msgstr "Сілтемені көрсету мүмкін емес" #: ../gtk/gtkaboutdialog.c:1017 -msgid "Homepage" -msgstr "Үй парағы" +msgid "Website" +msgstr "Вебсайт" #: ../gtk/gtkaboutdialog.c:1071 #, c-format msgid "About %s" msgstr "%s туралы" -#: ../gtk/gtkaboutdialog.c:2396 +#: ../gtk/gtkaboutdialog.c:2398 msgid "Created by" msgstr "Жасаған" -#: ../gtk/gtkaboutdialog.c:2399 +#: ../gtk/gtkaboutdialog.c:2401 msgid "Documented by" msgstr "Құжаттаманы жазған" -#: ../gtk/gtkaboutdialog.c:2409 +#: ../gtk/gtkaboutdialog.c:2411 msgid "Translated by" msgstr "Аударған" -#: ../gtk/gtkaboutdialog.c:2414 +#: ../gtk/gtkaboutdialog.c:2416 msgid "Artwork by" msgstr "Бейнелеуі" @@ -771,7 +771,6 @@ msgid "Backslash" msgstr "Backslash" #: ../gtk/gtkappchooserbutton.c:290 -#| msgid "Other application..." msgid "Other application…" msgstr "Басқа қолданба…" @@ -1014,7 +1013,6 @@ msgstr "Қате" #. * acelerator. #. #: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 -#| msgid "New accelerator..." msgid "New accelerator…" msgstr "Жаңа үдеткіш…" @@ -1317,7 +1315,6 @@ msgid "mm" msgstr "мм" #: ../gtk/gtkcustompaperunixdialog.c:605 -#| msgid "Margins from Printer..." msgid "Margins from Printer…" msgstr "Принтерден парақ шет өрістері…" @@ -1424,7 +1421,6 @@ msgid "(None)" msgstr "(Ешнәрсе)" #: ../gtk/gtkfilechooserbutton.c:2046 -#| msgid "Other..." msgid "Other…" msgstr "Басқа…" @@ -1536,7 +1532,6 @@ msgid "Remove" msgstr "Өшіру" #: ../gtk/gtkfilechooserdefault.c:3389 -#| msgid "_Rename" msgid "Rename…" msgstr "Атын ауыстыру…" @@ -1780,7 +1775,6 @@ msgid "Copy _Link Address" msgstr "Сілтеме адр_есін көшіру" #: ../gtk/gtk-launch.c:71 -#| msgid "APPLICATION [URI...] - launch an APPLICATION with URI." msgid "APPLICATION [URI…] — launch an APPLICATION with URI." msgstr "ҚОЛДАНБА [URI…] - ҚОЛДАНБАны URI-мен жөнелту." @@ -1873,27 +1867,27 @@ msgstr "" "Жүйелік әкімшіге хабарласыңыз" #. Description of --gtk-module=MODULES in --help output -#: ../gtk/gtkmain.c:447 +#: ../gtk/gtkmain.c:446 msgid "Load additional GTK+ modules" msgstr "Қосымша GTK+ модульдерін жүктеу" #. Placeholder in --gtk-module=MODULES in --help output -#: ../gtk/gtkmain.c:448 +#: ../gtk/gtkmain.c:447 msgid "MODULES" msgstr "МОДУЛЬДЕР" #. Description of --g-fatal-warnings in --help output -#: ../gtk/gtkmain.c:450 +#: ../gtk/gtkmain.c:449 msgid "Make all warnings fatal" msgstr "Барлық ескертулерді қатаң деп белгілеу" #. Description of --gtk-debug=FLAGS in --help output -#: ../gtk/gtkmain.c:453 +#: ../gtk/gtkmain.c:452 msgid "GTK+ debugging flags to set" msgstr "GTK+ жөндеу жалаушалары орнатылған" #. Description of --gtk-no-debug=FLAGS in --help output -#: ../gtk/gtkmain.c:456 +#: ../gtk/gtkmain.c:455 msgid "GTK+ debugging flags to unset" msgstr "GTK+ жөндеу жалаушалары орнатылмаған" @@ -1902,20 +1896,20 @@ msgstr "GTK+ жөндеу жалаушалары орнатылмаған" #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: ../gtk/gtkmain.c:704 +#: ../gtk/gtkmain.c:703 msgid "default:LTR" msgstr "default:LTR" -#: ../gtk/gtkmain.c:769 +#: ../gtk/gtkmain.c:768 #, c-format msgid "Cannot open display: %s" msgstr "Экранды ашу мүмкін емес: %s" -#: ../gtk/gtkmain.c:835 +#: ../gtk/gtkmain.c:834 msgid "GTK+ Options" msgstr "GTK+ опциялары" -#: ../gtk/gtkmain.c:835 +#: ../gtk/gtkmain.c:834 msgid "Show GTK+ Options" msgstr "GTK+ опцияларын көрсету" @@ -2046,7 +2040,6 @@ msgstr "" " Асты: %s %s" #: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 -#| msgid "Manage Custom Sizes" msgid "Manage Custom Sizes…" msgstr "Таңдауыңызша өлшемдерді басқару…" @@ -2083,7 +2076,6 @@ msgid "Authentication" msgstr "Аутентификация" #: ../gtk/gtkprinteroptionwidget.c:546 -#| msgid "Select a File" msgid "Select a filename" msgstr "Файл атын таңдаңыз" @@ -2231,7 +2223,6 @@ msgid "Getting printer information failed" msgstr "Принтер ақпаратын алу сәтсіз" #: ../gtk/gtkprintunixdialog.c:1916 -#| msgid "Getting printer information..." msgid "Getting printer information…" msgstr "Принтер ақпаратын алу…" @@ -4813,6 +4804,9 @@ msgstr "сынау-шығысы.%s" msgid "Print to Test Printer" msgstr "Сынау принтеріне баспаға шығару" +#~ msgid "Homepage" +#~ msgstr "Үй парағы" + #~ msgid "Rename..." #~ msgstr "Атын ауыстыру..." From 8f276d4b65a04e088c15c1be94545984e0a5a19b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aurimas=20=C4=8Cernius?= Date: Fri, 15 Feb 2013 21:52:54 +0200 Subject: [PATCH 070/208] Updated Lithuanian translation --- po/lt.po | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/po/lt.po b/po/lt.po index 6df06b79ee..a38e9f84c1 100644 --- a/po/lt.po +++ b/po/lt.po @@ -17,7 +17,7 @@ msgstr "" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" "%2b&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-01-19 19:42+0000\n" -"PO-Revision-Date: 2013-02-09 22:04+0200\n" +"PO-Revision-Date: 2013-02-15 21:51+0200\n" "Last-Translator: Aurimas Černius \n" "Language-Team: Lietuvių \n" "Language: lt\n" @@ -4817,5 +4817,3 @@ msgstr "bandomasis-dokumentas.%s" msgid "Print to Test Printer" msgstr "Spausdinti į bandomąjį spausdintuvą" -#~ msgid "Homepage" -#~ msgstr "Namų tinklapis" From 8e96488bb29dc51315680d3745f945be19a03fc1 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 15 Feb 2013 16:21:09 -0500 Subject: [PATCH 071/208] Don't crash if inhibit is called with an unrealized window --- gtk/gtkapplication.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/gtk/gtkapplication.c b/gtk/gtkapplication.c index bbb65b847e..9072907513 100644 --- a/gtk/gtkapplication.c +++ b/gtk/gtkapplication.c @@ -1418,16 +1418,22 @@ gtk_application_inhibit (GtkApplication *application, GVariant *res; GError *error = NULL; guint cookie; - guint xid; + guint xid = 0; g_return_val_if_fail (GTK_IS_APPLICATION (application), 0); g_return_val_if_fail (!g_application_get_is_remote (G_APPLICATION (application)), 0); g_return_val_if_fail (application->priv->sm_proxy != NULL, 0); if (window != NULL) - xid = GDK_WINDOW_XID (gtk_widget_get_window (GTK_WIDGET (window))); - else - xid = 0; + { + GdkWindow *gdkwindow; + + gdkwindow = gtk_widget_get_window (GTK_WIDGET (window)); + if (gdkwindow == NULL) + g_warning ("Inhibit called with an unrealized window"); + else + xid = GDK_WINDOW_XID (gdkwindow); + } res = g_dbus_proxy_call_sync (application->priv->sm_proxy, "Inhibit", From bf7804db643f7832b72efbcd98bec1689fa4f047 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Fri, 15 Feb 2013 19:33:01 -0500 Subject: [PATCH 072/208] gdkframeclock: Fix doc comments --- gdk/gdkframeclock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index 9c3d4238cb..4d1c7658b9 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -186,7 +186,7 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass) G_TYPE_NONE, 0); /** - * GdkFrameClock::layout: + * GdkFrameClock::paint: * @clock: the frame clock emitting the signal * * This signal is emitted as the third step of toolkit and From 489a10f4884fce14dc2786dbf17fe0b5b7d3f0aa Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Fri, 15 Feb 2013 19:48:48 -0500 Subject: [PATCH 073/208] gtkicontheme: Mark copy/free compat symbols as skip --- gtk/gtkicontheme.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index a399ac543f..42e86a2ca6 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -3064,7 +3064,7 @@ icon_info_new_builtin (BuiltinIcon *icon) } /** - * gtk_icon_info_copy: + * gtk_icon_info_copy: (skip) * @icon_info: a #GtkIconInfo * * Make a copy of a #GtkIconInfo. @@ -3085,7 +3085,7 @@ gtk_icon_info_copy (GtkIconInfo *icon_info) } /** - * gtk_icon_info_free: + * gtk_icon_info_free: (skip) * @icon_info: a #GtkIconInfo * * Free a #GtkIconInfo and associated information From 367364a8e109c3ccb792f775115ff70f14b8812f Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Fri, 15 Feb 2013 19:35:44 -0500 Subject: [PATCH 074/208] Fix deprecations for GtkIconInfo --- gtk/gtkcolorswatch.c | 2 +- gtk/gtkfilesystem.c | 2 +- gtk/gtkiconfactory.c | 2 +- gtk/gtkiconhelper.c | 2 +- gtk/gtkicontheme.c | 22 +++++++++++----------- gtk/gtknumerableicon.c | 2 +- gtk/gtkrecentmanager.c | 2 +- tests/testicontheme.c | 2 +- 8 files changed, 18 insertions(+), 18 deletions(-) diff --git a/gtk/gtkcolorswatch.c b/gtk/gtkcolorswatch.c index e33a3f601f..c6081d7907 100644 --- a/gtk/gtkcolorswatch.c +++ b/gtk/gtkcolorswatch.c @@ -228,7 +228,7 @@ swatch_draw (GtkWidget *widget, g_object_unref (pixbuf); } - gtk_icon_info_free (icon_info); + g_object_unref (icon_info); } cairo_restore (cr); diff --git a/gtk/gtkfilesystem.c b/gtk/gtkfilesystem.c index 05ab5a1ec2..553e007e08 100644 --- a/gtk/gtkfilesystem.c +++ b/gtk/gtkfilesystem.c @@ -1165,7 +1165,7 @@ get_pixbuf_from_gicon (GIcon *icon, return NULL; pixbuf = gtk_icon_info_load_icon (icon_info, error); - gtk_icon_info_free (icon_info); + g_object_unref (icon_info); return pixbuf; } diff --git a/gtk/gtkiconfactory.c b/gtk/gtkiconfactory.c index a3bfea78b7..b40267335b 100644 --- a/gtk/gtkiconfactory.c +++ b/gtk/gtkiconfactory.c @@ -1569,7 +1569,7 @@ render_icon_name_pixbuf (GtkIconSource *icon_source, if (info) { tmp_pixbuf = gtk_icon_info_load_icon (info, &error); - gtk_icon_info_free (info); + g_object_unref (info); } else tmp_pixbuf = NULL; diff --git a/gtk/gtkiconhelper.c b/gtk/gtkiconhelper.c index 37ba5811c8..58ae8a15db 100644 --- a/gtk/gtkiconhelper.c +++ b/gtk/gtkiconhelper.c @@ -263,7 +263,7 @@ ensure_pixbuf_for_icon_name_or_gicon (GtkIconHelper *self, self->priv->rendered_pixbuf = ensure_stated_icon_from_info (self, context, info); if (info) - gtk_icon_info_free (info); + g_object_unref (info); } static void diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index 42e86a2ca6..73d8ba7d0f 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -1444,7 +1444,7 @@ ensure_lru_cache_space (GtkIconTheme *icon_theme) g_list_length (priv->info_cache_lru))); priv->info_cache_lru = g_list_delete_link (priv->info_cache_lru, l); - gtk_icon_info_free (icon_info); + g_object_unref (icon_info); } } @@ -1465,7 +1465,7 @@ add_to_lru_cache (GtkIconTheme *icon_theme, ensure_lru_cache_space (icon_theme); /* prepend new info to LRU */ priv->info_cache_lru = g_list_prepend (priv->info_cache_lru, - gtk_icon_info_copy (icon_info)); + g_object_ref (icon_info)); } static void @@ -1500,7 +1500,7 @@ remove_from_lru_cache (GtkIconTheme *icon_theme, g_list_length (priv->info_cache_lru))); priv->info_cache_lru = g_list_remove (priv->info_cache_lru, icon_info); - gtk_icon_info_free (icon_info); + g_object_unref (icon_info); } } @@ -1614,7 +1614,7 @@ choose_icon (GtkIconTheme *icon_theme, icon_info->key.size, icon_info->key.flags, g_hash_table_size (priv->info_cache))); - icon_info = gtk_icon_info_copy (icon_info); + icon_info = g_object_ref (icon_info); remove_from_lru_cache (icon_theme, icon_info); return icon_info; @@ -1937,7 +1937,7 @@ gtk_icon_theme_load_icon (GtkIconTheme *icon_theme, } pixbuf = gtk_icon_info_load_icon (icon_info, error); - gtk_icon_info_free (icon_info); + g_object_unref (icon_info); return pixbuf; } @@ -3117,7 +3117,7 @@ gtk_icon_info_finalize (GObject *object) if (icon_info->loadable) g_object_unref (icon_info->loadable); - g_slist_free_full (icon_info->emblem_infos, (GDestroyNotify) gtk_icon_info_free); + g_slist_free_full (icon_info->emblem_infos, (GDestroyNotify) g_object_unref); if (icon_info->pixbuf) g_object_unref (icon_info->pixbuf); if (icon_info->cache_pixbuf) @@ -3509,7 +3509,7 @@ proxy_pixbuf_destroy (guchar *pixels, gpointer data) if (icon_theme != NULL) ensure_in_lru_cache (icon_theme, icon_info); - gtk_icon_info_free (icon_info); + g_object_unref (icon_info); } /** @@ -3576,7 +3576,7 @@ gtk_icon_info_load_icon (GtkIconInfo *icon_info, gdk_pixbuf_get_height (icon_info->pixbuf), gdk_pixbuf_get_rowstride (icon_info->pixbuf), proxy_pixbuf_destroy, - gtk_icon_info_copy (icon_info)); + g_object_ref (icon_info)); return icon_info->proxy_pixbuf; } @@ -3738,7 +3738,7 @@ proxy_symbolic_pixbuf_destroy (guchar *pixels, gpointer data) if (icon_theme != NULL) ensure_in_lru_cache (icon_theme, icon_info); - gtk_icon_info_free (icon_info); + g_object_unref (icon_info); } static GdkPixbuf * @@ -3757,7 +3757,7 @@ symbolic_cache_get_proxy (SymbolicPixbufCache *symbolic_cache, gdk_pixbuf_get_height (symbolic_cache->pixbuf), gdk_pixbuf_get_rowstride (symbolic_cache->pixbuf), proxy_symbolic_pixbuf_destroy, - gtk_icon_info_copy (icon_info)); + g_object_ref (icon_info)); return symbolic_cache->proxy_pixbuf; } @@ -4834,7 +4834,7 @@ _gtk_icon_theme_check_reload (GdkDisplay *display) * * Return value: (transfer full): a #GtkIconInfo structure containing * information about the icon, or %NULL if the icon - * wasn't found. Free with gtk_icon_info_free() + * wasn't found. Unref with g_object_unref() * * Since: 2.14 */ diff --git a/gtk/gtknumerableicon.c b/gtk/gtknumerableicon.c index a1131f576e..e46547174a 100644 --- a/gtk/gtknumerableicon.c +++ b/gtk/gtknumerableicon.c @@ -215,7 +215,7 @@ draw_from_gicon (GtkNumerableIcon *self) return NULL; pixbuf = gtk_icon_info_load_icon (info, NULL); - gtk_icon_info_free (info); + g_object_unref (info); if (pixbuf == NULL) return NULL; diff --git a/gtk/gtkrecentmanager.c b/gtk/gtkrecentmanager.c index 1c5a188232..310efe0771 100644 --- a/gtk/gtkrecentmanager.c +++ b/gtk/gtkrecentmanager.c @@ -1944,7 +1944,7 @@ get_icon_for_mime_type (const char *mime_type, return NULL; pixbuf = gtk_icon_info_load_icon (info, NULL); - gtk_icon_info_free (info); + g_object_unref (info); return pixbuf; } diff --git a/tests/testicontheme.c b/tests/testicontheme.c index bc0ee6959f..d294a47b34 100644 --- a/tests/testicontheme.c +++ b/tests/testicontheme.c @@ -231,7 +231,7 @@ main (int argc, char *argv[]) if (display_name) g_print ("Display name: %s\n", display_name); - gtk_icon_info_free (icon_info); + g_object_unref (icon_info); } } else From caa1721658ac2d8cd84574bc14841d769e97779a Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Fri, 15 Feb 2013 19:40:46 -0500 Subject: [PATCH 075/208] gtkplug: Remove a no-op func --- gtk/gtkplug.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/gtk/gtkplug.c b/gtk/gtkplug.c index 65df93699b..01fc9799e5 100644 --- a/gtk/gtkplug.c +++ b/gtk/gtkplug.c @@ -1092,8 +1092,6 @@ gtk_plug_realize (GtkWidget *widget) gtk_style_context_set_background (gtk_widget_get_style_context (widget), gdk_window); - - gdk_window_enable_synchronized_configure (gdk_window); } static void From b777a16b062fd118366db795b072da8caa2208ca Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Fri, 15 Feb 2013 19:42:32 -0500 Subject: [PATCH 076/208] gdkframeclockidle: Don't expose sleep_source source funcs --- gdk/gdkframeclockidle.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 5e751b3d92..752e72c13f 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -63,7 +63,7 @@ static gint64 sleep_serial; static gint64 sleep_source_prepare_time; static GSource *sleep_source; -gboolean +static gboolean sleep_source_prepare (GSource *source, gint *timeout) { @@ -72,7 +72,7 @@ sleep_source_prepare (GSource *source, return FALSE; } -gboolean +static gboolean sleep_source_check (GSource *source) { if (g_source_get_time (source) != sleep_source_prepare_time) @@ -81,7 +81,7 @@ sleep_source_check (GSource *source) return FALSE; } -gboolean +static gboolean sleep_source_dispatch (GSource *source, GSourceFunc callback, gpointer user_data) From 61f6463b96604e4920c88f47aae2ee46753d2c06 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Fri, 15 Feb 2013 19:45:45 -0500 Subject: [PATCH 077/208] Update gdk.symbols --- gdk/gdk.symbols | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols index 34e4a2f4f9..b01f3e5191 100644 --- a/gdk/gdk.symbols +++ b/gdk/gdk.symbols @@ -188,6 +188,25 @@ gdk_events_pending gdk_event_type_get_type gdk_filter_return_get_type gdk_flush +gdk_frame_clock_get_current_timings +gdk_frame_clock_get_frame_counter +gdk_frame_clock_get_frame_time +gdk_frame_clock_get_history_start +gdk_frame_clock_get_refresh_info +gdk_frame_clock_get_timings +gdk_frame_clock_get_type +gdk_frame_clock_idle_get_type +gdk_frame_clock_phase_get_type +gdk_frame_clock_request_phase +gdk_frame_timings_get_complete +gdk_frame_timings_get_frame_counter +gdk_frame_timings_get_frame_time +gdk_frame_timings_get_predicted_presentation_time +gdk_frame_timings_get_presentation_time +gdk_frame_timings_get_refresh_interval +gdk_frame_timings_get_type +gdk_frame_timings_ref +gdk_frame_timings_unref gdk_fullscreen_mode_get_type gdk_get_default_root_window gdk_get_display @@ -410,6 +429,7 @@ gdk_window_get_effective_parent gdk_window_get_effective_toplevel gdk_window_get_events gdk_window_get_focus_on_map +gdk_window_get_frame_clock gdk_window_get_frame_extents gdk_window_get_fullscreen_mode gdk_window_get_geometry From 0fe08d43b51def30d4ef5ffdb36ed991af8f87d5 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Fri, 15 Feb 2013 19:47:46 -0500 Subject: [PATCH 078/208] Update gtk.symbols --- gtk/gtk.symbols | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index 8231f02886..fe927d62c5 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -2671,6 +2671,7 @@ gtk_style_context_get_border_color gtk_style_context_get_color gtk_style_context_get_direction gtk_style_context_get_font +gtk_style_context_get_frame_clock gtk_style_context_get_junction_sides gtk_style_context_get_margin gtk_style_context_get_padding @@ -2706,6 +2707,7 @@ gtk_style_context_save gtk_style_context_scroll_animations gtk_style_context_set_background gtk_style_context_set_direction +gtk_style_context_set_frame_clock gtk_style_context_set_junction_sides gtk_style_context_set_parent gtk_style_context_set_path @@ -3670,6 +3672,7 @@ gtk_widget_add_accelerator gtk_widget_add_device_events gtk_widget_add_events gtk_widget_add_mnemonic_label +gtk_widget_add_tick_callback gtk_widget_can_activate_accel gtk_widget_child_focus gtk_widget_child_notify @@ -3711,6 +3714,7 @@ gtk_widget_get_direction gtk_widget_get_display gtk_widget_get_double_buffered gtk_widget_get_events +gtk_widget_get_frame_clock gtk_widget_get_halign gtk_widget_get_has_tooltip gtk_widget_get_has_window @@ -3849,6 +3853,7 @@ gtk_widget_region_intersect gtk_widget_register_window gtk_widget_remove_accelerator gtk_widget_remove_mnemonic_label +gtk_widget_remove_tick_callback gtk_widget_render_icon gtk_widget_render_icon_pixbuf gtk_widget_reparent From 658e7c45353d625dc30852f49fb92a1959f615fa Mon Sep 17 00:00:00 2001 From: Changwoo Ryu Date: Wed, 13 Feb 2013 02:44:00 +0000 Subject: [PATCH 079/208] immodule: Fix context ID lookup on module with multiple contexts https://bugzilla.gnome.org/show_bug.cgi?id=690247 --- gtk/gtkimmodule.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gtk/gtkimmodule.c b/gtk/gtkimmodule.c index 0f45847c61..5e35498a22 100644 --- a/gtk/gtkimmodule.c +++ b/gtk/gtkimmodule.c @@ -646,12 +646,14 @@ lookup_immodule (gchar **immodules_list) if (g_strcmp0 (*immodules_list, SIMPLE_ID) == 0) return SIMPLE_ID; else - { - GtkIMModule *module; - module = g_hash_table_lookup (contexts_hash, *immodules_list); - if (module) - return module->contexts[0]->context_id; - } + { + gboolean found; + gchar *context_id; + found = g_hash_table_lookup_extended (contexts_hash, *immodules_list, + &context_id, NULL); + if (found) + return context_id; + } immodules_list++; } From ecddf94f4324b9e9ef961771e7cbb5ff56661997 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Fri, 15 Feb 2013 21:58:34 -0500 Subject: [PATCH 080/208] GtkScrolledWindow: use gtk_widget_add_tick_callback() This is slightly simpler and more robust than direct use of GdkFrameClock. --- gtk/gtkscrolledwindow.c | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index 588e9d9ce0..99dab9ee94 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -2384,10 +2384,12 @@ _gtk_scrolled_window_set_adjustment_value (GtkScrolledWindow *scrolled_window, return (*prev_value != value); } -static void -scrolled_window_deceleration_cb (GdkFrameClock *frame_clock, - KineticScrollData *data) +static gboolean +scrolled_window_deceleration_cb (GtkWidget *widdget, + GdkFrameClock *frame_clock, + gpointer user_data) { + KineticScrollData *data = user_data; GtkScrolledWindow *scrolled_window = data->scrolled_window; GtkScrolledWindowPrivate *priv = scrolled_window->priv; GtkAdjustment *hadjustment, *vadjustment; @@ -2494,11 +2496,11 @@ scrolled_window_deceleration_cb (GdkFrameClock *frame_clock, _gtk_scrolled_window_allocate_overshoot_window (scrolled_window); } - if (overshoot_x != 0 || overshoot_y != 0 || - data->x_velocity != 0 || data->y_velocity != 0) - gdk_frame_clock_request_phase (frame_clock, GDK_FRAME_CLOCK_PHASE_UPDATE); - else + if (overshoot_x == 0 && overshoot_y == 0 && + data->x_velocity == 0 && data->y_velocity == 0) gtk_scrolled_window_cancel_deceleration (scrolled_window); + + return G_SOURCE_CONTINUE; } static void @@ -2508,11 +2510,8 @@ gtk_scrolled_window_cancel_deceleration (GtkScrolledWindow *scrolled_window) if (priv->deceleration_id) { - GdkFrameClock *frame_clock; - - frame_clock = gtk_widget_get_frame_clock (GTK_WIDGET (scrolled_window)); - g_signal_handler_disconnect (frame_clock, - priv->deceleration_id); + gtk_widget_remove_tick_callback (GTK_WIDGET (scrolled_window), + priv->deceleration_id); priv->deceleration_id = 0; } } @@ -2541,12 +2540,10 @@ gtk_scrolled_window_start_deceleration (GtkScrolledWindow *scrolled_window) data->vel_sine = sin (angle); scrolled_window->priv->deceleration_id = - g_signal_connect_data (frame_clock, "update", - G_CALLBACK (scrolled_window_deceleration_cb), - data, - (GClosureNotify) g_free, - 0); - gdk_frame_clock_request_phase (frame_clock, GDK_FRAME_CLOCK_PHASE_UPDATE); + gtk_widget_add_tick_callback (GTK_WIDGET (scrolled_window), + scrolled_window_deceleration_cb, + data, + (GDestroyNotify) g_free); } static gboolean From d203f636417f2ef3c84bf022bea8d2eb5d6804e1 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Fri, 15 Feb 2013 22:21:21 -0500 Subject: [PATCH 081/208] GdkFrameClockIdle: remove timeouts in dispose When a frame clock is disposed, remove active timeouts; also get rid of the last traces of an unused GTimer. --- gdk/gdkframeclockidle.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 752e72c13f..d07c1d80bb 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -55,8 +55,6 @@ struct _GdkFrameClockIdlePrivate static gboolean gdk_frame_clock_flush_idle (void *data); static gboolean gdk_frame_clock_paint_idle (void *data); -static void gdk_frame_clock_idle_finalize (GObject *object); - G_DEFINE_TYPE (GdkFrameClockIdle, gdk_frame_clock_idle, GDK_TYPE_FRAME_CLOCK) static gint64 sleep_serial; @@ -121,18 +119,27 @@ gdk_frame_clock_idle_init (GdkFrameClockIdle *frame_clock_idle) GdkFrameClockIdlePrivate); priv = frame_clock_idle->priv; - priv->timer = g_timer_new (); priv->freeze_count = 0; } static void -gdk_frame_clock_idle_finalize (GObject *object) +gdk_frame_clock_idle_dispose (GObject *object) { GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (object)->priv; - g_timer_destroy (priv->timer); + if (priv->flush_idle_id != 0) + { + g_source_remove (priv->flush_idle_id); + priv->flush_idle_id = 0; + } - G_OBJECT_CLASS (gdk_frame_clock_idle_parent_class)->finalize (object); + if (priv->paint_idle_id != 0) + { + g_source_remove (priv->paint_idle_id); + priv->paint_idle_id = 0; + } + + G_OBJECT_CLASS (gdk_frame_clock_idle_parent_class)->dispose (object); } static gint64 @@ -478,7 +485,7 @@ gdk_frame_clock_idle_class_init (GdkFrameClockIdleClass *klass) GObjectClass *gobject_class = (GObjectClass*) klass; GdkFrameClockClass *frame_clock_class = (GdkFrameClockClass *)klass; - gobject_class->finalize = gdk_frame_clock_idle_finalize; + gobject_class->dispose = gdk_frame_clock_idle_dispose; frame_clock_class->get_frame_time = gdk_frame_clock_idle_get_frame_time; frame_clock_class->request_phase = gdk_frame_clock_idle_request_phase; From bae84bdf2382d190a25bcf3ac7f35e0ca936007f Mon Sep 17 00:00:00 2001 From: Paolo Borelli Date: Sat, 16 Feb 2013 16:28:45 +0100 Subject: [PATCH 082/208] [entry] unregister icon windows --- gtk/gtkentry.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index d6a3804261..e6d2e56a14 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -3164,6 +3164,7 @@ gtk_entry_unrealize (GtkWidget *widget) { if (icon_info->window != NULL) { + gtk_widget_unregister_window (widget, icon_info->window); gdk_window_destroy (icon_info->window); icon_info->window = NULL; } From 69d42639b2c3bb6637402a82448c0db39f24d858 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Sat, 16 Feb 2013 11:54:12 -0500 Subject: [PATCH 083/208] GdkWindowX11: the root window is not a toplevel The macros we had for checking for toplevel windows were passing through the root window, which was not intentional and meant that for the root window WINDOW_IS_TOPLEVEL() returned TRUE but window->impl->toplevel was NULL, causing gdk_window_create_cairo_surface() to crash. --- gdk/x11/gdkwindow-x11.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 4f30287b23..26eaf697a4 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -111,14 +111,14 @@ static void gdk_window_x11_set_background (GdkWindow *window, static void gdk_window_impl_x11_finalize (GObject *object); -#define WINDOW_IS_TOPLEVEL_OR_FOREIGN(window) \ - (GDK_WINDOW_TYPE (window) != GDK_WINDOW_CHILD && \ - GDK_WINDOW_TYPE (window) != GDK_WINDOW_OFFSCREEN) +#define WINDOW_IS_TOPLEVEL_OR_FOREIGN(window) \ + (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TOPLEVEL || \ + GDK_WINDOW_TYPE (window) == GDK_WINDOW_TEMP || \ + GDK_WINDOW_TYPE (window) == GDK_WINDOW_FOREIGN) -#define WINDOW_IS_TOPLEVEL(window) \ - (GDK_WINDOW_TYPE (window) != GDK_WINDOW_CHILD && \ - GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN && \ - GDK_WINDOW_TYPE (window) != GDK_WINDOW_OFFSCREEN) +#define WINDOW_IS_TOPLEVEL(window) \ + (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TOPLEVEL || \ + GDK_WINDOW_TYPE (window) == GDK_WINDOW_TEMP) /* Return whether time1 is considered later than time2 as far as xserver * time is concerned. Accounts for wraparound. From 7938e1f1cbb60828a516e10854de40eac9e37a1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Dr=C4=85g?= Date: Sun, 17 Feb 2013 19:48:15 +0100 Subject: [PATCH 084/208] Updated Polish translation --- po-properties/pl.po | 908 ++++++++++++++++++++++---------------------- po/pl.po | 326 +++++++++++----- 2 files changed, 691 insertions(+), 543 deletions(-) diff --git a/po-properties/pl.po b/po-properties/pl.po index 5d0b279db3..444d296e84 100644 --- a/po-properties/pl.po +++ b/po-properties/pl.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: gtk+-properties\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-31 19:48+0100\n" -"PO-Revision-Date: 2013-01-31 19:49+0100\n" +"POT-Creation-Date: 2013-02-17 19:20+0100\n" +"PO-Revision-Date: 2013-02-17 19:21+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" @@ -136,7 +136,7 @@ msgstr "Rozdzielczość czcionki" msgid "The resolution for fonts on the screen" msgstr "Rozdzielczość czcionek na ekranie" -#: ../gdk/gdkwindow.c:385 ../gdk/gdkwindow.c:386 +#: ../gdk/gdkwindow.c:390 ../gdk/gdkwindow.c:391 msgid "Cursor" msgstr "Kursor" @@ -274,7 +274,7 @@ msgstr "Tekst wyświetlany w celu wizualizacji wybranej czcionki" #: ../gtk/deprecated/gtkhandlebox.c:224 ../gtk/gtkcombobox.c:1064 #: ../gtk/gtkentry.c:890 ../gtk/gtkmenubar.c:213 ../gtk/gtkstatusbar.c:182 -#: ../gtk/gtktoolbar.c:628 ../gtk/gtkviewport.c:155 +#: ../gtk/gtktoolbar.c:628 ../gtk/gtkviewport.c:156 msgid "Shadow type" msgstr "Typ cienia" @@ -323,7 +323,7 @@ msgid "" "detached." msgstr "" "Wartość logiczna określająca, czy element potomny ramki uchwytu jest " -"dołączony czy odłączony" +"dołączony czy odłączony." #: ../gtk/deprecated/gtkstyle.c:474 msgid "Style context" @@ -665,7 +665,7 @@ msgstr "Wyświetlana ikona GIcon" #: ../gtk/gtkaction.c:323 ../gtk/gtkcellrendererpixbuf.c:211 #: ../gtk/gtkimage.c:293 ../gtk/gtkprinter.c:172 ../gtk/gtkstatusicon.c:247 -#: ../gtk/gtkwindow.c:773 +#: ../gtk/gtkwindow.c:769 msgid "Icon Name" msgstr "Nazwa ikony" @@ -732,7 +732,7 @@ msgid "When TRUE, empty menu proxies for this action are hidden." msgstr "Określa, czy pośrednicy pustego menu dla tej czynności będą ukrywani." #: ../gtk/gtkaction.c:379 ../gtk/gtkactiongroup.c:235 -#: ../gtk/gtkcellrenderer.c:296 ../gtk/gtkwidget.c:1018 +#: ../gtk/gtkcellrenderer.c:296 ../gtk/gtkwidget.c:1088 msgid "Sensitive" msgstr "Czuły" @@ -742,7 +742,7 @@ msgstr "Określa, czy czynność jest dostępna." #: ../gtk/gtkaction.c:386 ../gtk/gtkactiongroup.c:242 #: ../gtk/gtkstatusicon.c:298 ../gtk/gtktreeviewcolumn.c:245 -#: ../gtk/gtkwidget.c:1011 +#: ../gtk/gtkwidget.c:1081 msgid "Visible" msgstr "Widoczność" @@ -1095,7 +1095,7 @@ msgstr "Skalowanie strzałek" msgid "Amount of space used up by arrow" msgstr "Ilość miejsca zajęta przez strzałkę" -#: ../gtk/gtkaspectframe.c:107 ../gtk/gtkwidget.c:1206 +#: ../gtk/gtkaspectframe.c:107 ../gtk/gtkwidget.c:1276 msgid "Horizontal Alignment" msgstr "Wyrównanie poziome" @@ -1103,7 +1103,7 @@ msgstr "Wyrównanie poziome" msgid "X alignment of the child" msgstr "Poziome wyrównanie elementu potomnego" -#: ../gtk/gtkaspectframe.c:114 ../gtk/gtkwidget.c:1222 +#: ../gtk/gtkaspectframe.c:114 ../gtk/gtkwidget.c:1292 msgid "Vertical Alignment" msgstr "Wyrównanie pionowe" @@ -1255,7 +1255,7 @@ msgstr "" "Określa, czy element potomny nie będzie podlegał jednorodnemu rozmiarowi" #: ../gtk/gtkbox.c:240 ../gtk/gtkcellareabox.c:315 ../gtk/gtkexpander.c:312 -#: ../gtk/gtkiconview.c:511 ../gtk/gtktreeviewcolumn.c:280 +#: ../gtk/gtkiconview.c:516 ../gtk/gtktreeviewcolumn.c:280 msgid "Spacing" msgstr "Odstępy" @@ -1269,7 +1269,7 @@ msgstr "" "Określa, czy wszystkie elementy potomne powinny być tego samego rozmiaru" #: ../gtk/gtkbox.c:271 ../gtk/gtkcellareabox.c:335 ../gtk/gtktoolbar.c:552 -#: ../gtk/gtktoolitemgroup.c:1657 ../gtk/gtktoolpalette.c:1075 +#: ../gtk/gtktoolitemgroup.c:1657 ../gtk/gtktoolpalette.c:1077 #: ../gtk/gtktreeviewcolumn.c:336 msgid "Expand" msgstr "Rozszerzanie" @@ -1349,7 +1349,7 @@ msgid "" "for the mnemonic accelerator key" msgstr "" "Określa, czy podkreślenie jest używane w tekście w roli znacznika, który " -"poprzedza znak skrótu." +"poprzedza znak skrótu" #: ../gtk/gtkbutton.c:248 ../gtk/gtkimagemenuitem.c:173 msgid "Use stock" @@ -1363,11 +1363,11 @@ msgstr "" "jej wyświetlenia" #: ../gtk/gtkbutton.c:256 ../gtk/gtkcombobox.c:854 -#: ../gtk/gtkfilechooserbutton.c:425 +#: ../gtk/gtkfilechooserbutton.c:434 msgid "Focus on click" msgstr "Zaznaczenie po kliknięciu" -#: ../gtk/gtkbutton.c:257 ../gtk/gtkfilechooserbutton.c:426 +#: ../gtk/gtkbutton.c:257 ../gtk/gtkfilechooserbutton.c:435 msgid "Whether the button grabs focus when it is clicked with the mouse" msgstr "" "Określa, czy przycisk otrzymuje zaznaczenie po kliknięciu za pomocą myszy" @@ -1892,7 +1892,7 @@ msgid "The stock ID of the stock icon to render" msgstr "Identyfikator rysowanej standardowej ikony" #: ../gtk/gtkcellrendererpixbuf.c:183 ../gtk/gtkcellrendererspinner.c:157 -#: ../gtk/gtkrecentmanager.c:308 ../gtk/gtkstatusicon.c:280 +#: ../gtk/gtkrecentmanager.c:309 ../gtk/gtkstatusicon.c:280 msgid "Size" msgstr "Rozmiar" @@ -1918,7 +1918,7 @@ msgstr "" "Określa, czy rysowany bufor pikseli powinien mieć kolor zgodny ze stanem" #: ../gtk/gtkcellrendererpixbuf.c:245 ../gtk/gtkimage.c:310 -#: ../gtk/gtkwindow.c:719 +#: ../gtk/gtkwindow.c:715 msgid "Icon" msgstr "Ikona" @@ -1968,7 +1968,7 @@ msgstr "Pionowe wyrównanie tekstu" msgid "The vertical text alignment, from 0 (top) to 1 (bottom)." msgstr "Wyrównanie pionowe, od 0 (góra) do 1 (dół)." -#: ../gtk/gtkcellrendererprogress.c:224 ../gtk/gtklevelbar.c:991 +#: ../gtk/gtkcellrendererprogress.c:224 ../gtk/gtklevelbar.c:993 #: ../gtk/gtkprogressbar.c:149 ../gtk/gtkrange.c:432 msgid "Inverted" msgstr "Odwrócony" @@ -2234,7 +2234,7 @@ msgstr "" "Preferowane miejsce przycięcia ciągu tekstowego, w przypadku, gdy obiekt " "rysujący komórki nie ma miejsca na wyświetlenie go całego" -#: ../gtk/gtkcellrenderertext.c:534 ../gtk/gtkfilechooserbutton.c:453 +#: ../gtk/gtkcellrenderertext.c:534 ../gtk/gtkfilechooserbutton.c:462 #: ../gtk/gtklabel.c:874 msgid "Width In Characters" msgstr "Szerokość w znakach" @@ -2473,13 +2473,13 @@ msgid "The model for cell view" msgstr "Model dla widoku komórek" #: ../gtk/gtkcellview.c:252 ../gtk/gtkcombobox.c:1007 -#: ../gtk/gtkentrycompletion.c:451 ../gtk/gtkiconview.c:636 +#: ../gtk/gtkentrycompletion.c:451 ../gtk/gtkiconview.c:641 #: ../gtk/gtktreemenu.c:332 ../gtk/gtktreeviewcolumn.c:424 msgid "Cell Area" msgstr "Obszar komórki" #: ../gtk/gtkcellview.c:253 ../gtk/gtkcombobox.c:1008 -#: ../gtk/gtkentrycompletion.c:452 ../gtk/gtkiconview.c:637 +#: ../gtk/gtkentrycompletion.c:452 ../gtk/gtkiconview.c:642 #: ../gtk/gtktreemenu.c:333 ../gtk/gtktreeviewcolumn.c:425 msgid "The GtkCellArea used to layout cells" msgstr "GtkCellArea używane do układania komórek" @@ -2552,7 +2552,7 @@ msgstr "Używanie kanału alfa" msgid "Whether to give the color an alpha value" msgstr "Określa, czy należy nadawać kolorowi wartości alfa" -#: ../gtk/gtkcolorbutton.c:186 ../gtk/gtkfilechooserbutton.c:439 +#: ../gtk/gtkcolorbutton.c:186 ../gtk/gtkfilechooserbutton.c:448 #: ../gtk/gtkfontbutton.c:434 ../gtk/gtkprintjob.c:139 #: ../gtk/gtkstatusicon.c:426 ../gtk/gtktreeviewcolumn.c:328 msgid "Title" @@ -2773,27 +2773,27 @@ msgstr "Ilość miejsca używana przez strzałkę" msgid "Which kind of shadow to draw around the combo box" msgstr "Rodzaj cienia rysowanego wokół pola rozwijanego" -#: ../gtk/gtkcontainer.c:461 +#: ../gtk/gtkcontainer.c:462 msgid "Resize mode" msgstr "Tryb zmiany rozmiaru" -#: ../gtk/gtkcontainer.c:462 +#: ../gtk/gtkcontainer.c:463 msgid "Specify how resize events are handled" msgstr "Określa jak obsługiwane są zdarzenia zmiany rozmiaru" -#: ../gtk/gtkcontainer.c:469 +#: ../gtk/gtkcontainer.c:470 msgid "Border width" msgstr "Szerokość krawędzi" -#: ../gtk/gtkcontainer.c:470 +#: ../gtk/gtkcontainer.c:471 msgid "The width of the empty border outside the containers children" msgstr "Szerokość pustej krawędzi na zewnątrz kontrolek potomnych kontenera" -#: ../gtk/gtkcontainer.c:478 +#: ../gtk/gtkcontainer.c:479 msgid "Child" msgstr "Element potomny" -#: ../gtk/gtkcontainer.c:479 +#: ../gtk/gtkcontainer.c:480 msgid "Can be used to add a new child to the container" msgstr "Może być użyty, aby dodać do kontenera nowego potomka" @@ -3293,7 +3293,7 @@ msgstr "Minimalna długość klucza" msgid "Minimum length of the search key in order to look up matches" msgstr "Minimalna długość klucza wyszukiwania w celu znalezienia dopasowań" -#: ../gtk/gtkentrycompletion.c:347 ../gtk/gtkiconview.c:432 +#: ../gtk/gtkentrycompletion.c:347 ../gtk/gtkiconview.c:437 msgid "Text column" msgstr "Kolumna tekstowa" @@ -3435,19 +3435,19 @@ msgstr "Rozmiar strzałki rozwijającej drzewo" msgid "Spacing around expander arrow" msgstr "Przestrzeń dokoła strzałki rozwijającej" -#: ../gtk/gtkfilechooserbutton.c:408 +#: ../gtk/gtkfilechooserbutton.c:417 msgid "Dialog" msgstr "Okno dialogowe" -#: ../gtk/gtkfilechooserbutton.c:409 +#: ../gtk/gtkfilechooserbutton.c:418 msgid "The file chooser dialog to use." msgstr "Wykorzystywane okno dialogowe wyboru plików." -#: ../gtk/gtkfilechooserbutton.c:440 +#: ../gtk/gtkfilechooserbutton.c:449 msgid "The title of the file chooser dialog." msgstr "Tytuł okna dialogowego wyboru plików." -#: ../gtk/gtkfilechooserbutton.c:454 +#: ../gtk/gtkfilechooserbutton.c:463 msgid "The desired width of the button widget, in characters." msgstr "Żądana szerokość widżetu przycisku w znakach." @@ -3691,143 +3691,143 @@ msgstr "Wysokość" msgid "The number of rows that a child spans" msgstr "Liczba rzędów, jakie rozdziela element potomny" -#: ../gtk/gtkiconview.c:395 ../gtk/gtktreeselection.c:130 +#: ../gtk/gtkiconview.c:400 ../gtk/gtktreeselection.c:130 msgid "Selection mode" msgstr "Tryb zaznaczania" -#: ../gtk/gtkiconview.c:396 +#: ../gtk/gtkiconview.c:401 msgid "The selection mode" msgstr "Tryb zaznaczania" -#: ../gtk/gtkiconview.c:414 +#: ../gtk/gtkiconview.c:419 msgid "Pixbuf column" msgstr "Kolumna bufora pikseli" -#: ../gtk/gtkiconview.c:415 +#: ../gtk/gtkiconview.c:420 msgid "Model column used to retrieve the icon pixbuf from" msgstr "Użyty model kolumny do pobierania bufora pikseli ikon" -#: ../gtk/gtkiconview.c:433 +#: ../gtk/gtkiconview.c:438 msgid "Model column used to retrieve the text from" msgstr "Użyty model kolumny do pobierania tekstu" -#: ../gtk/gtkiconview.c:452 +#: ../gtk/gtkiconview.c:457 msgid "Markup column" msgstr "Kolumna znaczników" -#: ../gtk/gtkiconview.c:453 +#: ../gtk/gtkiconview.c:458 msgid "Model column used to retrieve the text if using Pango markup" msgstr "" "Model kolumny użyty do pobierania tekstu przy użyciu znaczników biblioteki " "Pango" -#: ../gtk/gtkiconview.c:460 +#: ../gtk/gtkiconview.c:465 msgid "Icon View Model" msgstr "Model widoku ikon" -#: ../gtk/gtkiconview.c:461 +#: ../gtk/gtkiconview.c:466 msgid "The model for the icon view" msgstr "Model dla widoku ikon" -#: ../gtk/gtkiconview.c:477 +#: ../gtk/gtkiconview.c:482 msgid "Number of columns" msgstr "Liczba kolumn" -#: ../gtk/gtkiconview.c:478 +#: ../gtk/gtkiconview.c:483 msgid "Number of columns to display" msgstr "Liczba kolumn do wyświetlenia" -#: ../gtk/gtkiconview.c:495 +#: ../gtk/gtkiconview.c:500 msgid "Width for each item" msgstr "Szerokość każdego elementu" -#: ../gtk/gtkiconview.c:496 +#: ../gtk/gtkiconview.c:501 msgid "The width used for each item" msgstr "Szerokość używana dla każdego elementu" -#: ../gtk/gtkiconview.c:512 +#: ../gtk/gtkiconview.c:517 msgid "Space which is inserted between cells of an item" msgstr "Odstęp, jaki jest umieszczany między komórkami elementu" -#: ../gtk/gtkiconview.c:527 +#: ../gtk/gtkiconview.c:532 msgid "Row Spacing" msgstr "Odstępy rzędów" -#: ../gtk/gtkiconview.c:528 +#: ../gtk/gtkiconview.c:533 msgid "Space which is inserted between grid rows" msgstr "Odstęp, jaki jest umieszczany między rzędami siatki" -#: ../gtk/gtkiconview.c:543 +#: ../gtk/gtkiconview.c:548 msgid "Column Spacing" msgstr "Odstępy kolumn" -#: ../gtk/gtkiconview.c:544 +#: ../gtk/gtkiconview.c:549 msgid "Space which is inserted between grid columns" msgstr "Odstęp, jaki jest umieszczany między kolumnami siatki" -#: ../gtk/gtkiconview.c:559 +#: ../gtk/gtkiconview.c:564 msgid "Margin" msgstr "Margines" -#: ../gtk/gtkiconview.c:560 +#: ../gtk/gtkiconview.c:565 msgid "Space which is inserted at the edges of the icon view" msgstr "Odstęp, jaki jest umieszczany na krawędziach widku ikon" -#: ../gtk/gtkiconview.c:575 +#: ../gtk/gtkiconview.c:580 msgid "Item Orientation" msgstr "Ułożenie elementów" -#: ../gtk/gtkiconview.c:576 +#: ../gtk/gtkiconview.c:581 msgid "" "How the text and icon of each item are positioned relative to each other" msgstr "Pozycjonowanie tekstu i ikony każdego elementu względem innych" -#: ../gtk/gtkiconview.c:592 ../gtk/gtktreeview.c:1022 +#: ../gtk/gtkiconview.c:597 ../gtk/gtktreeview.c:1022 #: ../gtk/gtktreeviewcolumn.c:371 msgid "Reorderable" msgstr "Zmienny porządek" -#: ../gtk/gtkiconview.c:593 ../gtk/gtktreeview.c:1023 +#: ../gtk/gtkiconview.c:598 ../gtk/gtktreeview.c:1023 msgid "View is reorderable" msgstr "Określa, czy możliwa jest zmiana porządku w widoku" -#: ../gtk/gtkiconview.c:600 ../gtk/gtktreeview.c:1173 +#: ../gtk/gtkiconview.c:605 ../gtk/gtktreeview.c:1173 msgid "Tooltip Column" msgstr "Kolumna podpowiedzi" -#: ../gtk/gtkiconview.c:601 +#: ../gtk/gtkiconview.c:606 msgid "The column in the model containing the tooltip texts for the items" msgstr "Kolumna modelu zawierająca napisy podpowiedzi dla elementów" -#: ../gtk/gtkiconview.c:618 +#: ../gtk/gtkiconview.c:623 msgid "Item Padding" msgstr "Dopełnienie elementu" -#: ../gtk/gtkiconview.c:619 +#: ../gtk/gtkiconview.c:624 msgid "Padding around icon view items" msgstr "Dopełnienie dookoła elementów widoku ikon" -#: ../gtk/gtkiconview.c:652 ../gtk/gtktreeview.c:1191 +#: ../gtk/gtkiconview.c:657 ../gtk/gtktreeview.c:1191 msgid "Activate on Single Click" msgstr "Aktywowanie po pojedynczym kliknięciu" -#: ../gtk/gtkiconview.c:653 ../gtk/gtktreeview.c:1192 +#: ../gtk/gtkiconview.c:658 ../gtk/gtktreeview.c:1192 msgid "Activate row on a single click" msgstr "Aktywowanie rzędu po pojedynczym kliknięciu" -#: ../gtk/gtkiconview.c:666 +#: ../gtk/gtkiconview.c:671 msgid "Selection Box Color" msgstr "Kolor prostokąta zaznaczania" -#: ../gtk/gtkiconview.c:667 +#: ../gtk/gtkiconview.c:672 msgid "Color of the selection box" msgstr "Kolor prostokąta zaznaczania" -#: ../gtk/gtkiconview.c:673 +#: ../gtk/gtkiconview.c:678 msgid "Selection Box Alpha" msgstr "Wartość alfa prostokąta zaznaczania" -#: ../gtk/gtkiconview.c:674 +#: ../gtk/gtkiconview.c:679 msgid "Opacity of the selection box" msgstr "Nieprzezroczystość prostokąta zaznaczania" @@ -3839,7 +3839,7 @@ msgstr "Bufor pikseli" msgid "A GdkPixbuf to display" msgstr "Obiekt GdkPixbuf do wyświetlenia" -#: ../gtk/gtkimage.c:226 ../gtk/gtkrecentmanager.c:293 +#: ../gtk/gtkimage.c:226 ../gtk/gtkrecentmanager.c:294 #: ../gtk/gtkstatusicon.c:231 msgid "Filename" msgstr "Nazwa pliku" @@ -3861,7 +3861,7 @@ msgid "Icon set to display" msgstr "Zbiór ikon do wyświetlenia" #: ../gtk/gtkimage.c:251 ../gtk/gtkscalebutton.c:228 ../gtk/gtktoolbar.c:527 -#: ../gtk/gtktoolpalette.c:1013 +#: ../gtk/gtktoolpalette.c:1015 msgid "Icon size" msgstr "Rozmiar ikony" @@ -3949,12 +3949,12 @@ msgid "Width of border around the action area" msgstr "Szerokość krawędzi wokół obszaru czynności" #: ../gtk/gtkinvisible.c:101 ../gtk/gtkmountoperation.c:179 -#: ../gtk/gtkstatusicon.c:290 ../gtk/gtkstylecontext.c:441 -#: ../gtk/gtkwindow.c:781 +#: ../gtk/gtkstatusicon.c:290 ../gtk/gtkstylecontext.c:444 +#: ../gtk/gtkwindow.c:777 msgid "Screen" msgstr "Ekran" -#: ../gtk/gtkinvisible.c:102 ../gtk/gtkwindow.c:782 +#: ../gtk/gtkinvisible.c:102 ../gtk/gtkwindow.c:778 msgid "The screen where this window will be displayed" msgstr "Ekran, na którym to okno będzie wyświetlane" @@ -4071,55 +4071,55 @@ msgstr "Szerokość układu" msgid "The height of the layout" msgstr "Wysokość układu" -#: ../gtk/gtklevelbar.c:927 +#: ../gtk/gtklevelbar.c:929 msgid "Currently filled value level" msgstr "Obecnie wypełniony poziom wartości" -#: ../gtk/gtklevelbar.c:928 +#: ../gtk/gtklevelbar.c:930 msgid "Currently filled value level of the level bar" msgstr "Obecnie wypełniony poziom wartości paska" -#: ../gtk/gtklevelbar.c:941 +#: ../gtk/gtklevelbar.c:943 msgid "Minimum value level for the bar" msgstr "Minimalny poziom wartości paska" -#: ../gtk/gtklevelbar.c:942 +#: ../gtk/gtklevelbar.c:944 msgid "Minimum value level that can be displayed by the bar" msgstr "Minimalny poziom, jaki może być wyświetlany przez pasek" -#: ../gtk/gtklevelbar.c:955 +#: ../gtk/gtklevelbar.c:957 msgid "Maximum value level for the bar" msgstr "Maksymalny poziom wartości paska" -#: ../gtk/gtklevelbar.c:956 +#: ../gtk/gtklevelbar.c:958 msgid "Maximum value level that can be displayed by the bar" msgstr "Maksymalny poziom, jaki może być wyświetlany przez pasek" -#: ../gtk/gtklevelbar.c:975 +#: ../gtk/gtklevelbar.c:977 msgid "The mode of the value indicator" msgstr "Tryb wskaźnika wartości" -#: ../gtk/gtklevelbar.c:976 +#: ../gtk/gtklevelbar.c:978 msgid "The mode of the value indicator displayed by the bar" msgstr "Tryb wskaźnika wartości wyświetlanego przez pasek" -#: ../gtk/gtklevelbar.c:992 +#: ../gtk/gtklevelbar.c:994 msgid "Invert the direction in which the level bar grows" msgstr "Odwraca kierunek przyrostu paska poziomu" -#: ../gtk/gtklevelbar.c:1006 +#: ../gtk/gtklevelbar.c:1008 msgid "Minimum height for filling blocks" msgstr "Minimalna wysokość wypełniających bloków" -#: ../gtk/gtklevelbar.c:1007 +#: ../gtk/gtklevelbar.c:1009 msgid "Minimum height for blocks that fill the bar" msgstr "Minimalna wysokość bloków wypełniających pasek" -#: ../gtk/gtklevelbar.c:1020 +#: ../gtk/gtklevelbar.c:1022 msgid "Minimum width for filling blocks" msgstr "Minimalna szerokość wypełniających bloków" -#: ../gtk/gtklevelbar.c:1021 +#: ../gtk/gtklevelbar.c:1023 msgid "Minimum width for blocks that fill the bar" msgstr "Minimalna szerokość bloków wypełniających pasek" @@ -4536,7 +4536,7 @@ msgid "" "The amount of space to add on the top and bottom of the widget, in pixels" msgstr "Ilość miejsca w pikselach dodawana powyżej i poniżej widżetu" -#: ../gtk/gtkmountoperation.c:163 ../gtk/gtkstylecontext.c:464 +#: ../gtk/gtkmountoperation.c:163 ../gtk/gtkstylecontext.c:474 msgid "Parent" msgstr "Kontrolka nadrzędna" @@ -5040,7 +5040,7 @@ msgstr "Liczba stron" #: ../gtk/gtkprintoperation.c:1151 msgid "The number of pages in the document." -msgstr "Liczba stron w dokumencie" +msgstr "Liczba stron w dokumencie." #: ../gtk/gtkprintoperation.c:1172 ../gtk/gtkprintunixdialog.c:374 msgid "Current Page" @@ -5215,7 +5215,7 @@ msgstr "Wyświetlanie tekstu" #: ../gtk/gtkprogressbar.c:196 msgid "Whether the progress is shown as text." -msgstr "Określa, czy postęp powinien być wyświetlany w formie tekstu" +msgstr "Określa, czy postęp powinien być wyświetlany w formie tekstu." #: ../gtk/gtkprogressbar.c:218 msgid "" @@ -5247,7 +5247,7 @@ msgstr "Minimalna szerokość poziomego paska" #: ../gtk/gtkprogressbar.c:246 msgid "The minimum horizontal width of the progress bar" -msgstr "Minimalna pozioma szerokość paska postępu." +msgstr "Minimalna pozioma szerokość paska postępu" #: ../gtk/gtkprogressbar.c:258 msgid "Minimum horizontal bar height" @@ -5263,7 +5263,7 @@ msgstr "Minimalna szerokość pionowego paska" #: ../gtk/gtkprogressbar.c:272 msgid "The minimum vertical width of the progress bar" -msgstr "Minimalna pionowa szerokość paska postępu." +msgstr "Minimalna pionowa szerokość paska postępu" #: ../gtk/gtkprogressbar.c:284 msgid "Minimum vertical bar height" @@ -5282,7 +5282,7 @@ msgid "" "The value returned by gtk_radio_action_get_current_value() when this action " "is the current action of its group." msgstr "" -"Wartość zwracana przez funkcję gtp_radio_action_get_current_value(), gdy ta " +"Wartość zwracana przez funkcję gtk_radio_action_get_current_value(), gdy ta " "czynność jest obecną czynnością w swojej grupie." #: ../gtk/gtkradioaction.c:133 ../gtk/gtkradiobutton.c:163 @@ -5534,11 +5534,11 @@ msgstr "Porządek sortowania wyświetlanych elementów" msgid "The current filter for selecting which resources are displayed" msgstr "Bieżący filtr służący do zaznaczania które zasoby mają być wyświetlane" -#: ../gtk/gtkrecentmanager.c:294 +#: ../gtk/gtkrecentmanager.c:295 msgid "The full path to the file to be used to store and read the list" msgstr "Pełna ścieżka do pliku używanego do przechowywania i odczytu listy" -#: ../gtk/gtkrecentmanager.c:309 +#: ../gtk/gtkrecentmanager.c:310 msgid "The size of the recently used resources list" msgstr "Rozmiar listy ostatnio używanych zasobów" @@ -5678,43 +5678,43 @@ msgstr "" "Wyświetla dodatkowy przycisk ze strzałką naprzód po przeciwnej stronie paska " "przewijania" -#: ../gtk/gtkscrolledwindow.c:367 +#: ../gtk/gtkscrolledwindow.c:368 msgid "Horizontal Adjustment" msgstr "Dopasowanie poziome" -#: ../gtk/gtkscrolledwindow.c:368 +#: ../gtk/gtkscrolledwindow.c:369 msgid "The GtkAdjustment for the horizontal position" msgstr "Obiekt GtkAdjustment określający położenie poziome" -#: ../gtk/gtkscrolledwindow.c:374 +#: ../gtk/gtkscrolledwindow.c:375 msgid "Vertical Adjustment" msgstr "Dopasowanie pionowe" -#: ../gtk/gtkscrolledwindow.c:375 +#: ../gtk/gtkscrolledwindow.c:376 msgid "The GtkAdjustment for the vertical position" msgstr "Obiekt GtkAdjustment, określający wartość położenia pionowego" -#: ../gtk/gtkscrolledwindow.c:381 +#: ../gtk/gtkscrolledwindow.c:382 msgid "Horizontal Scrollbar Policy" msgstr "Reguła poziomego paska przewijania" -#: ../gtk/gtkscrolledwindow.c:382 +#: ../gtk/gtkscrolledwindow.c:383 msgid "When the horizontal scrollbar is displayed" msgstr "Określa, kiedy powinien być wyświetlany poziomy pasek przewijania" -#: ../gtk/gtkscrolledwindow.c:389 +#: ../gtk/gtkscrolledwindow.c:390 msgid "Vertical Scrollbar Policy" msgstr "Reguła pionowego paska przewijania" -#: ../gtk/gtkscrolledwindow.c:390 +#: ../gtk/gtkscrolledwindow.c:391 msgid "When the vertical scrollbar is displayed" msgstr "Określa, kiedy powinien być wyświetlany pionowy pasek przewijania" -#: ../gtk/gtkscrolledwindow.c:398 +#: ../gtk/gtkscrolledwindow.c:399 msgid "Window Placement" msgstr "Rozmieszczenie okien" -#: ../gtk/gtkscrolledwindow.c:399 +#: ../gtk/gtkscrolledwindow.c:400 msgid "" "Where the contents are located with respect to the scrollbars. This property " "only takes effect if \"window-placement-set\" is TRUE." @@ -5722,11 +5722,11 @@ msgstr "" "Określa położenie zawartości względem pasków przewijania. Ta właściwość " "odnosi skutek tylko wtedy, gdy jest ustawione \"window-placement-set\"." -#: ../gtk/gtkscrolledwindow.c:416 +#: ../gtk/gtkscrolledwindow.c:417 msgid "Window Placement Set" msgstr "Ustawienie położenia okna" -#: ../gtk/gtkscrolledwindow.c:417 +#: ../gtk/gtkscrolledwindow.c:418 msgid "" "Whether \"window-placement\" should be used to determine the location of the " "contents with respect to the scrollbars." @@ -5734,54 +5734,54 @@ msgstr "" "Określa, czy \"window-placement\" powinno być użyte do określenia położenia " "zawartości z uwzględnieniem pasków przewijania." -#: ../gtk/gtkscrolledwindow.c:423 +#: ../gtk/gtkscrolledwindow.c:424 msgid "Shadow Type" msgstr "Typ cienia" -#: ../gtk/gtkscrolledwindow.c:424 +#: ../gtk/gtkscrolledwindow.c:425 msgid "Style of bevel around the contents" msgstr "Styl wypukłości wokół zawartości" -#: ../gtk/gtkscrolledwindow.c:438 +#: ../gtk/gtkscrolledwindow.c:439 msgid "Scrollbars within bevel" msgstr "Paski przewijania wewnątrz wypukłości" -#: ../gtk/gtkscrolledwindow.c:439 +#: ../gtk/gtkscrolledwindow.c:440 msgid "Place scrollbars within the scrolled window's bevel" msgstr "" "Określa, czy umieszczać paski przewijania wewnątrz wypukłości przewijanego " "okna" -#: ../gtk/gtkscrolledwindow.c:445 +#: ../gtk/gtkscrolledwindow.c:446 msgid "Scrollbar spacing" msgstr "Odstępy paska przewijania" -#: ../gtk/gtkscrolledwindow.c:446 +#: ../gtk/gtkscrolledwindow.c:447 msgid "Number of pixels between the scrollbars and the scrolled window" msgstr "Liczba pikseli między paskami przewijania a przewijanym oknem" -#: ../gtk/gtkscrolledwindow.c:462 +#: ../gtk/gtkscrolledwindow.c:463 msgid "Minimum Content Width" msgstr "Minimalna szerokość zawartości" -#: ../gtk/gtkscrolledwindow.c:463 +#: ../gtk/gtkscrolledwindow.c:464 msgid "The minimum width that the scrolled window will allocate to its content" msgstr "Minimalna szerokość, jaką przewijane okno przydzieli swojej zawartości" -#: ../gtk/gtkscrolledwindow.c:477 +#: ../gtk/gtkscrolledwindow.c:478 msgid "Minimum Content Height" msgstr "Minimalna wysokość zawartości" -#: ../gtk/gtkscrolledwindow.c:478 +#: ../gtk/gtkscrolledwindow.c:479 msgid "" "The minimum height that the scrolled window will allocate to its content" msgstr "Minimalna wysokość, jaką przewijane okno przydzieli swojej zawartości" -#: ../gtk/gtkscrolledwindow.c:493 +#: ../gtk/gtkscrolledwindow.c:494 msgid "Kinetic Scrolling" msgstr "Przewijanie kinetyczne" -#: ../gtk/gtkscrolledwindow.c:494 +#: ../gtk/gtkscrolledwindow.c:495 msgid "Kinetic scrolling mode." msgstr "Tryb przewijania kinetycznego." @@ -5794,11 +5794,11 @@ msgid "Whether the separator is drawn, or just blank" msgstr "" "Określa, czy separator wyświetlany jako linia, czy po prostu puste miejsce" -#: ../gtk/gtksettings.c:354 +#: ../gtk/gtksettings.c:355 msgid "Double Click Time" msgstr "Czas dwukrotnego kliknięcia" -#: ../gtk/gtksettings.c:355 +#: ../gtk/gtksettings.c:356 msgid "" "Maximum time allowed between two clicks for them to be considered a double " "click (in milliseconds)" @@ -5806,11 +5806,11 @@ msgstr "" "Maksymalny dopuszczalny czas między dwoma kliknięciami, traktowanymi jako " "dwukrotne kliknięcie (liczony w milisekundach)" -#: ../gtk/gtksettings.c:362 +#: ../gtk/gtksettings.c:363 msgid "Double Click Distance" msgstr "Odległość dwukrotnego kliknięcia" -#: ../gtk/gtksettings.c:363 +#: ../gtk/gtksettings.c:364 msgid "" "Maximum distance allowed between two clicks for them to be considered a " "double click (in pixels)" @@ -5818,35 +5818,35 @@ msgstr "" "Maksymalna dopuszczalna odległość między dwoma kliknięciami, traktowanymi " "jako dwukrotne kliknięcie (w pikselach)" -#: ../gtk/gtksettings.c:379 +#: ../gtk/gtksettings.c:380 msgid "Cursor Blink" msgstr "Migotanie kursora" -#: ../gtk/gtksettings.c:380 +#: ../gtk/gtksettings.c:381 msgid "Whether the cursor should blink" msgstr "Określa, czy kursor powinien migotać" -#: ../gtk/gtksettings.c:387 +#: ../gtk/gtksettings.c:388 msgid "Cursor Blink Time" msgstr "Czas migania kursora" -#: ../gtk/gtksettings.c:388 +#: ../gtk/gtksettings.c:389 msgid "Length of the cursor blink cycle, in milliseconds" msgstr "Długość cyklu migania kursora, liczona w milisekundach" -#: ../gtk/gtksettings.c:407 +#: ../gtk/gtksettings.c:408 msgid "Cursor Blink Timeout" msgstr "Czas migania kursora" -#: ../gtk/gtksettings.c:408 +#: ../gtk/gtksettings.c:409 msgid "Time after which the cursor stops blinking, in seconds" msgstr "Czas po którym kursor przestaje migać (w sekundach)" -#: ../gtk/gtksettings.c:415 +#: ../gtk/gtksettings.c:416 msgid "Split Cursor" msgstr "Podział kursora" -#: ../gtk/gtksettings.c:416 +#: ../gtk/gtksettings.c:417 msgid "" "Whether two cursors should be displayed for mixed left-to-right and right-to-" "left text" @@ -5854,154 +5854,154 @@ msgstr "" "Określa, czy przy tekstach zawierających teksty pisane od lewej i od prawej " "powinny być wyświetlane dwa kursory" -#: ../gtk/gtksettings.c:423 +#: ../gtk/gtksettings.c:424 msgid "Theme Name" msgstr "Nazwa motywu" -#: ../gtk/gtksettings.c:424 +#: ../gtk/gtksettings.c:425 msgid "Name of theme to load" msgstr "Nazwa motywu do wczytania" -#: ../gtk/gtksettings.c:436 +#: ../gtk/gtksettings.c:437 msgid "Icon Theme Name" msgstr "Nazwa motywu ikon" -#: ../gtk/gtksettings.c:437 +#: ../gtk/gtksettings.c:438 msgid "Name of icon theme to use" msgstr "Nazwa używanego motywu ikon" -#: ../gtk/gtksettings.c:445 +#: ../gtk/gtksettings.c:446 msgid "Fallback Icon Theme Name" msgstr "Nazwa zapasowego motywu ikon" -#: ../gtk/gtksettings.c:446 +#: ../gtk/gtksettings.c:447 msgid "Name of a icon theme to fall back to" msgstr "Nazwa zapasowego motywu ikon" -#: ../gtk/gtksettings.c:454 +#: ../gtk/gtksettings.c:455 msgid "Key Theme Name" msgstr "Nazwa motywu klawiszy" -#: ../gtk/gtksettings.c:455 +#: ../gtk/gtksettings.c:456 msgid "Name of key theme to load" msgstr "Nazwa motywu klawiszy do wczytania" -#: ../gtk/gtksettings.c:463 +#: ../gtk/gtksettings.c:464 msgid "Menu bar accelerator" msgstr "Klawisz skrótu paska menu" -#: ../gtk/gtksettings.c:464 +#: ../gtk/gtksettings.c:465 msgid "Keybinding to activate the menu bar" msgstr "Kombinacja klawiszy uaktywniająca pasek menu" -#: ../gtk/gtksettings.c:472 +#: ../gtk/gtksettings.c:473 msgid "Drag threshold" msgstr "Próg przeciągania" -#: ../gtk/gtksettings.c:473 +#: ../gtk/gtksettings.c:474 msgid "Number of pixels the cursor can move before dragging" msgstr "" "Liczba pikseli, o jaką może poruszyć się kursor przed rozpoczęciem " "przeciągania" -#: ../gtk/gtksettings.c:481 +#: ../gtk/gtksettings.c:482 msgid "Font Name" msgstr "Nazwa czcionki" -#: ../gtk/gtksettings.c:482 +#: ../gtk/gtksettings.c:483 msgid "Name of default font to use" msgstr "Nazwa domyślnej używanej czcionki" -#: ../gtk/gtksettings.c:504 +#: ../gtk/gtksettings.c:505 msgid "Icon Sizes" msgstr "Rozmiary ikon" -#: ../gtk/gtksettings.c:505 +#: ../gtk/gtksettings.c:506 msgid "List of icon sizes (gtk-menu=16,16:gtk-button=20,20..." msgstr "Lista rozmiarów ikon (gtk-menu=16,16;gtk-button=20,20..." -#: ../gtk/gtksettings.c:513 +#: ../gtk/gtksettings.c:514 msgid "GTK Modules" msgstr "Moduły GTK" -#: ../gtk/gtksettings.c:514 +#: ../gtk/gtksettings.c:515 msgid "List of currently active GTK modules" msgstr "Lista obecnie używanych modułów GTK" -#: ../gtk/gtksettings.c:522 +#: ../gtk/gtksettings.c:523 msgid "Xft Antialias" msgstr "Wygładzanie Xft" -#: ../gtk/gtksettings.c:523 +#: ../gtk/gtksettings.c:524 msgid "Whether to antialias Xft fonts; 0=no, 1=yes, -1=default" msgstr "Określa, czy wygładzać czcionki Xft; 0=nie, 1=tak, -1=domyślne" -#: ../gtk/gtksettings.c:532 +#: ../gtk/gtksettings.c:533 msgid "Xft Hinting" msgstr "Hinting Xft" -#: ../gtk/gtksettings.c:533 +#: ../gtk/gtksettings.c:534 msgid "Whether to hint Xft fonts; 0=no, 1=yes, -1=default" msgstr "Określa, czy użyć hintingu czcionek Xft; 0=nie, 1=tak, -1=domyślne" -#: ../gtk/gtksettings.c:542 +#: ../gtk/gtksettings.c:543 msgid "Xft Hint Style" msgstr "Styl hintingu Xft" -#: ../gtk/gtksettings.c:543 +#: ../gtk/gtksettings.c:544 msgid "" "What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull" msgstr "" "Określa stopień użytego hintingu; hintnone (brak), hintslight (lekki), " "hintmedium (średni), lub hintfull (pełny)" -#: ../gtk/gtksettings.c:552 +#: ../gtk/gtksettings.c:553 msgid "Xft RGBA" msgstr "RGBA Xft" -#: ../gtk/gtksettings.c:553 +#: ../gtk/gtksettings.c:554 msgid "Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr" msgstr "Typ wygładzania pikseli; none (brak), rgb, bgr, vrgb, vbgr" -#: ../gtk/gtksettings.c:562 +#: ../gtk/gtksettings.c:563 msgid "Xft DPI" msgstr "DPI Xft" -#: ../gtk/gtksettings.c:563 +#: ../gtk/gtksettings.c:564 msgid "Resolution for Xft, in 1024 * dots/inch. -1 to use default value" msgstr "Rozdzielczość Xft, w 1024 * punkty/cal. -1 - użycie domyślnej wartości" -#: ../gtk/gtksettings.c:572 +#: ../gtk/gtksettings.c:573 msgid "Cursor theme name" msgstr "Nazwa motywu kursora" -#: ../gtk/gtksettings.c:573 +#: ../gtk/gtksettings.c:574 msgid "Name of the cursor theme to use, or NULL to use the default theme" msgstr "Nazwa używanego motywu kursora, albo NULL, aby użyć motywu domyślnego" -#: ../gtk/gtksettings.c:581 +#: ../gtk/gtksettings.c:582 msgid "Cursor theme size" msgstr "Rozmiar motywu kursora" -#: ../gtk/gtksettings.c:582 +#: ../gtk/gtksettings.c:583 msgid "Size to use for cursors, or 0 to use the default size" msgstr "Rozmiar używany przez kursory, albo 0 dla rozmiaru domyślnego" -#: ../gtk/gtksettings.c:591 +#: ../gtk/gtksettings.c:592 msgid "Alternative button order" msgstr "Alternatywne ułożenie przycisków" -#: ../gtk/gtksettings.c:592 +#: ../gtk/gtksettings.c:593 msgid "Whether buttons in dialogs should use the alternative button order" msgstr "" "Określa, czy przyciski w oknach dialogowych powinny używać alternatywnego " "ułożenia przycisków" -#: ../gtk/gtksettings.c:609 +#: ../gtk/gtksettings.c:610 msgid "Alternative sort indicator direction" msgstr "Alternatywny kierunek wskaźnika sortowania" -#: ../gtk/gtksettings.c:610 +#: ../gtk/gtksettings.c:611 msgid "" "Whether the direction of the sort indicators in list and tree views is " "inverted compared to the default (where down means ascending)" @@ -6009,11 +6009,11 @@ msgstr "" "Określa, czy kierunek wskaźników sortowania list i drzew jest odwrotny do " "domyślnego (gdzie strzałka w dół oznacza rosnąco)" -#: ../gtk/gtksettings.c:618 +#: ../gtk/gtksettings.c:619 msgid "Show the 'Input Methods' menu" msgstr "Wyświetlanie menu \"Metoda wprowadzania\"" -#: ../gtk/gtksettings.c:619 +#: ../gtk/gtksettings.c:620 msgid "" "Whether the context menus of entries and text views should offer to change " "the input method" @@ -6021,11 +6021,11 @@ msgstr "" "Określa, czy menu podręczne pól tekstowych ma zawierać opcję zmiany metody " "wprowadzania" -#: ../gtk/gtksettings.c:627 +#: ../gtk/gtksettings.c:628 msgid "Show the 'Insert Unicode Control Character' menu" msgstr "Wyświetlanie menu \"Wstaw znak kontrolny Unikodu\"" -#: ../gtk/gtksettings.c:628 +#: ../gtk/gtksettings.c:629 msgid "" "Whether the context menus of entries and text views should offer to insert " "control characters" @@ -6033,247 +6033,247 @@ msgstr "" "Określa, czy menu podręczne pól tekstowych ma zawierać opcję wstawiania " "znaków kontrolnych" -#: ../gtk/gtksettings.c:636 +#: ../gtk/gtksettings.c:637 msgid "Start timeout" msgstr "Limit czasu startu" -#: ../gtk/gtksettings.c:637 +#: ../gtk/gtksettings.c:638 msgid "Starting value for timeouts, when button is pressed" msgstr "Wartość początkowa limitów czasu, gdy przycisk jest wciśnięty" -#: ../gtk/gtksettings.c:646 +#: ../gtk/gtksettings.c:647 msgid "Repeat timeout" msgstr "Limit czasu powtarzania" -#: ../gtk/gtksettings.c:647 +#: ../gtk/gtksettings.c:648 msgid "Repeat value for timeouts, when button is pressed" msgstr "Wartość powtarzania limitów czasu, gdy przycisk jest wciśnięty" -#: ../gtk/gtksettings.c:656 +#: ../gtk/gtksettings.c:657 msgid "Expand timeout" msgstr "Czas rozwijania" -#: ../gtk/gtksettings.c:657 +#: ../gtk/gtksettings.c:658 msgid "Expand value for timeouts, when a widget is expanding a new region" msgstr "Wartość rozwijania dla limitów czasu, gdy widżet jest rozwinięty" -#: ../gtk/gtksettings.c:695 +#: ../gtk/gtksettings.c:696 msgid "Color scheme" msgstr "Schemat kolorów" -#: ../gtk/gtksettings.c:696 +#: ../gtk/gtksettings.c:697 msgid "A palette of named colors for use in themes" msgstr "Paleta nazwanych kolorów do użycia w motywach" -#: ../gtk/gtksettings.c:705 +#: ../gtk/gtksettings.c:706 msgid "Enable Animations" msgstr "Animacje" -#: ../gtk/gtksettings.c:706 +#: ../gtk/gtksettings.c:707 msgid "Whether to enable toolkit-wide animations." msgstr "Określa, czy włączać animacje dla całej biblioteki." -#: ../gtk/gtksettings.c:727 +#: ../gtk/gtksettings.c:728 msgid "Enable Touchscreen Mode" msgstr "Włączenie trybu ekranu dotykowego" -#: ../gtk/gtksettings.c:728 +#: ../gtk/gtksettings.c:729 msgid "When TRUE, there are no motion notify events delivered on this screen" msgstr "" "Gdy włączone, to na ekranie nie będą wyświetlane zdarzenia powiadomień o " "ruchu" -#: ../gtk/gtksettings.c:745 +#: ../gtk/gtksettings.c:746 msgid "Tooltip timeout" msgstr "Limit czasu podpowiedzi" -#: ../gtk/gtksettings.c:746 +#: ../gtk/gtksettings.c:747 msgid "Timeout before tooltip is shown" msgstr "Czas wyświetlenia podpowiedzi" -#: ../gtk/gtksettings.c:771 +#: ../gtk/gtksettings.c:772 msgid "Tooltip browse timeout" msgstr "Czas wyświetlenia podpowiedzi podczas przeglądania" -#: ../gtk/gtksettings.c:772 +#: ../gtk/gtksettings.c:773 msgid "Timeout before tooltip is shown when browse mode is enabled" msgstr "Czas do wyświetlenia podpowiedzi w trybie przeglądania" -#: ../gtk/gtksettings.c:793 +#: ../gtk/gtksettings.c:794 msgid "Tooltip browse mode timeout" msgstr "Czas wyświetlenia podpowiedzi w trybie przeglądania" -#: ../gtk/gtksettings.c:794 +#: ../gtk/gtksettings.c:795 msgid "Timeout after which browse mode is disabled" msgstr "Czas po którym wyłączany jest tryb przeglądania" -#: ../gtk/gtksettings.c:813 +#: ../gtk/gtksettings.c:814 msgid "Keynav Cursor Only" msgstr "Tylko kursor nawigacji" -#: ../gtk/gtksettings.c:814 +#: ../gtk/gtksettings.c:815 msgid "When TRUE, there are only cursor keys available to navigate widgets" msgstr "" "Określa, czy dostępne są tylko klawisze kursora do nawigacji między widżetami" -#: ../gtk/gtksettings.c:831 +#: ../gtk/gtksettings.c:832 msgid "Keynav Wrap Around" msgstr "Zawijanie nawigacji kursorem" -#: ../gtk/gtksettings.c:832 +#: ../gtk/gtksettings.c:833 msgid "Whether to wrap around when keyboard-navigating widgets" msgstr "" "Określa, czy zawijać kursor podczas nawigacji klawiaturą między widżetami" -#: ../gtk/gtksettings.c:852 +#: ../gtk/gtksettings.c:853 msgid "Error Bell" msgstr "Dzwonek błędu" -#: ../gtk/gtksettings.c:853 +#: ../gtk/gtksettings.c:854 msgid "When TRUE, keyboard navigation and other errors will cause a beep" msgstr "" "Gdy włączone, to błędy nawigacji klawiaturowej i inne błędy wywołują dźwięk " "systemowy" -#: ../gtk/gtksettings.c:872 +#: ../gtk/gtksettings.c:873 msgid "Color Hash" msgstr "Skrót kolorów" -#: ../gtk/gtksettings.c:873 +#: ../gtk/gtksettings.c:874 msgid "A hash table representation of the color scheme." msgstr "Reprezentacja motywu kolorów w postaci tablicy skrótów." -#: ../gtk/gtksettings.c:881 +#: ../gtk/gtksettings.c:882 msgid "Default file chooser backend" msgstr "Domyślny mechanizm wybierania plików" -#: ../gtk/gtksettings.c:882 +#: ../gtk/gtksettings.c:883 msgid "Name of the GtkFileChooser backend to use by default" msgstr "Nazwa domyślnie używanego mechanizmu GtkFileChooser" -#: ../gtk/gtksettings.c:899 +#: ../gtk/gtksettings.c:900 msgid "Default print backend" msgstr "Domyślny mechanizm drukarek" -#: ../gtk/gtksettings.c:900 +#: ../gtk/gtksettings.c:901 msgid "List of the GtkPrintBackend backends to use by default" msgstr "Lista mechanizmów GtkPrintBackend do domyślnego użycia" -#: ../gtk/gtksettings.c:923 +#: ../gtk/gtksettings.c:924 msgid "Default command to run when displaying a print preview" msgstr "Domyślne polecenie uruchamiane przy wyświetlaniu podglądu wydruku" -#: ../gtk/gtksettings.c:924 +#: ../gtk/gtksettings.c:925 msgid "Command to run when displaying a print preview" msgstr "Polecenie uruchamiane podczas wyświetlania podglądu wydruku" -#: ../gtk/gtksettings.c:940 +#: ../gtk/gtksettings.c:941 msgid "Enable Mnemonics" msgstr "Włączenie skrótów" -#: ../gtk/gtksettings.c:941 +#: ../gtk/gtksettings.c:942 msgid "Whether labels should have mnemonics" msgstr "Określa, czy etykiety mają mieć skróty" -#: ../gtk/gtksettings.c:957 +#: ../gtk/gtksettings.c:958 msgid "Enable Accelerators" msgstr "Włączenie klawiszy skrótu" -#: ../gtk/gtksettings.c:958 +#: ../gtk/gtksettings.c:959 msgid "Whether menu items should have accelerators" msgstr "Określa, czy elementy menu mają mieć skróty" -#: ../gtk/gtksettings.c:975 +#: ../gtk/gtksettings.c:976 msgid "Recent Files Limit" msgstr "Liczba ostatnio używanych plików" -#: ../gtk/gtksettings.c:976 +#: ../gtk/gtksettings.c:977 msgid "Number of recently used files" msgstr "Liczba ostatnio użytych plików" -#: ../gtk/gtksettings.c:996 +#: ../gtk/gtksettings.c:997 msgid "Default IM module" msgstr "Domyślny moduł metody wprowadzania" -#: ../gtk/gtksettings.c:997 +#: ../gtk/gtksettings.c:998 msgid "Which IM module should be used by default" msgstr "" "Określa, który moduł metody wprowadzania powinien być używany domyślnie" -#: ../gtk/gtksettings.c:1015 +#: ../gtk/gtksettings.c:1016 msgid "Recent Files Max Age" msgstr "Maksymalny wiek ostatnich plików" -#: ../gtk/gtksettings.c:1016 +#: ../gtk/gtksettings.c:1017 msgid "Maximum age of recently used files, in days" msgstr "Maksymalny wiek ostatnio używanych plików w dniach" -#: ../gtk/gtksettings.c:1025 +#: ../gtk/gtksettings.c:1026 msgid "Fontconfig configuration timestamp" msgstr "Znacznik czasu konfiguracji fontconfig" -#: ../gtk/gtksettings.c:1026 +#: ../gtk/gtksettings.c:1027 msgid "Timestamp of current fontconfig configuration" msgstr "Znacznik czasu obecnej konfiguracji fontconfig" -#: ../gtk/gtksettings.c:1048 +#: ../gtk/gtksettings.c:1049 msgid "Sound Theme Name" msgstr "Nazwa motywu dźwiękowego" -#: ../gtk/gtksettings.c:1049 +#: ../gtk/gtksettings.c:1050 msgid "XDG sound theme name" msgstr "Nazwa motywu dźwiękowego XDG" #. Translators: this means sounds that are played as feedback to user input -#: ../gtk/gtksettings.c:1071 +#: ../gtk/gtksettings.c:1072 msgid "Audible Input Feedback" msgstr "Słyszalne wejściowe sprzężenie zwrotne" -#: ../gtk/gtksettings.c:1072 +#: ../gtk/gtksettings.c:1073 msgid "Whether to play event sounds as feedback to user input" msgstr "" "Określa, czy odtwarzać dźwięki zdarzeń jako odpowiedź na zdarzenia wejściowe" -#: ../gtk/gtksettings.c:1093 +#: ../gtk/gtksettings.c:1094 msgid "Enable Event Sounds" msgstr "Włączenie dźwięków zdarzeń" -#: ../gtk/gtksettings.c:1094 +#: ../gtk/gtksettings.c:1095 msgid "Whether to play any event sounds at all" msgstr "Określa, czy odtwarzać jakiekolwiek dźwięki zdarzeń" -#: ../gtk/gtksettings.c:1109 +#: ../gtk/gtksettings.c:1110 msgid "Enable Tooltips" msgstr "Wyświetlanie podpowiedzi" -#: ../gtk/gtksettings.c:1110 +#: ../gtk/gtksettings.c:1111 msgid "Whether tooltips should be shown on widgets" msgstr "Określa, czy powiadomienia powinny być wyświetlane na widżetach" -#: ../gtk/gtksettings.c:1123 +#: ../gtk/gtksettings.c:1124 msgid "Toolbar style" msgstr "Styl paska narzędziowego" -#: ../gtk/gtksettings.c:1124 +#: ../gtk/gtksettings.c:1125 msgid "" "Whether default toolbars have text only, text and icons, icons only, etc." msgstr "" "Określa, czy domyślnie paski narzędziowe zawierają tylko tekst, tekst i " "ikony, tylko ikony itp." -#: ../gtk/gtksettings.c:1138 +#: ../gtk/gtksettings.c:1139 msgid "Toolbar Icon Size" msgstr "Rozmiar ikon paska narzędziowego" -#: ../gtk/gtksettings.c:1139 +#: ../gtk/gtksettings.c:1140 msgid "The size of icons in default toolbars." msgstr "Rozmiar ikon na domyślnych paskach narzędziowych." -#: ../gtk/gtksettings.c:1156 +#: ../gtk/gtksettings.c:1157 msgid "Auto Mnemonics" msgstr "Automatyczne skróty" -#: ../gtk/gtksettings.c:1157 +#: ../gtk/gtksettings.c:1158 msgid "" "Whether mnemonics should be automatically shown and hidden when the user " "presses the mnemonic activator." @@ -6281,20 +6281,20 @@ msgstr "" "Określa, czy skróty powinny być automatycznie wyświetlane i ukrywane, kiedy " "użytkownik naciska aktywator skrótów." -#: ../gtk/gtksettings.c:1173 +#: ../gtk/gtksettings.c:1174 msgid "Primary button warps slider" msgstr "Przycisk podstawowy przewija suwak" -#: ../gtk/gtksettings.c:1174 +#: ../gtk/gtksettings.c:1175 msgid "" "Whether a primary click on the trough should warp the slider into position" msgstr "Określa, czy kliknięcie podstawowe na pasku powinno przewinąć suwak" -#: ../gtk/gtksettings.c:1190 +#: ../gtk/gtksettings.c:1191 msgid "Visible Focus" msgstr "Widoczność aktywności" -#: ../gtk/gtksettings.c:1191 +#: ../gtk/gtksettings.c:1192 msgid "" "Whether 'focus rectangles' should be hidden until the user starts to use the " "keyboard." @@ -6302,61 +6302,61 @@ msgstr "" "Określa, czy \"prostokąty aktywności\" powinny być ukryte, zanim użytkownik " "zacznie używać klawiatury." -#: ../gtk/gtksettings.c:1217 +#: ../gtk/gtksettings.c:1218 msgid "Application prefers a dark theme" msgstr "Program preferuje ciemny motyw" -#: ../gtk/gtksettings.c:1218 +#: ../gtk/gtksettings.c:1219 msgid "Whether the application prefers to have a dark theme." msgstr "Określa, czy program preferuje ciemny motyw." -#: ../gtk/gtksettings.c:1233 +#: ../gtk/gtksettings.c:1234 msgid "Show button images" msgstr "Wyświetlanie obrazów przycisków" -#: ../gtk/gtksettings.c:1234 +#: ../gtk/gtksettings.c:1235 msgid "Whether images should be shown on buttons" msgstr "Określa, czy na przyciskach powinny być wyświetlane obrazy" -#: ../gtk/gtksettings.c:1242 ../gtk/gtksettings.c:1336 +#: ../gtk/gtksettings.c:1243 ../gtk/gtksettings.c:1337 msgid "Select on focus" msgstr "Zaznaczanie zawartości podczas zaznaczenia" -#: ../gtk/gtksettings.c:1243 +#: ../gtk/gtksettings.c:1244 msgid "Whether to select the contents of an entry when it is focused" msgstr "Określa, czy zaznaczyć zawartość wejścia, kiedy zostanie zaznaczone" -#: ../gtk/gtksettings.c:1260 +#: ../gtk/gtksettings.c:1261 msgid "Password Hint Timeout" msgstr "Limit czasu podpowiedzi hasła" -#: ../gtk/gtksettings.c:1261 +#: ../gtk/gtksettings.c:1262 msgid "How long to show the last input character in hidden entries" msgstr "" "Określa, jak długo ma być wyświetlany ostatni wprowadzony znak w polach z " "ukrytym tekstem" -#: ../gtk/gtksettings.c:1270 +#: ../gtk/gtksettings.c:1271 msgid "Show menu images" msgstr "Wyświetlanie obrazów menu" -#: ../gtk/gtksettings.c:1271 +#: ../gtk/gtksettings.c:1272 msgid "Whether images should be shown in menus" msgstr "Określa, czy w menu powinny być wyświetlane obrazy" -#: ../gtk/gtksettings.c:1279 +#: ../gtk/gtksettings.c:1280 msgid "Delay before drop down menus appear" msgstr "Opóźnienie pojawienia się menu rozwijanego" -#: ../gtk/gtksettings.c:1280 +#: ../gtk/gtksettings.c:1281 msgid "Delay before the submenus of a menu bar appear" msgstr "Opóźnienie pojawienia się podmenu paska menu" -#: ../gtk/gtksettings.c:1297 +#: ../gtk/gtksettings.c:1298 msgid "Scrolled Window Placement" msgstr "Położenie przewijanego okna" -#: ../gtk/gtksettings.c:1298 +#: ../gtk/gtksettings.c:1299 msgid "" "Where the contents of scrolled windows are located with respect to the " "scrollbars, if not overridden by the scrolled window's own placement." @@ -6365,33 +6365,33 @@ msgstr "" "pasków przewijania, o ile nie nadpisana przez własne położenie przewijanego " "okna." -#: ../gtk/gtksettings.c:1307 +#: ../gtk/gtksettings.c:1308 msgid "Can change accelerators" msgstr "Możliwa zmiana skrótów" -#: ../gtk/gtksettings.c:1308 +#: ../gtk/gtksettings.c:1309 msgid "" "Whether menu accelerators can be changed by pressing a key over the menu item" msgstr "" "Określa, czy możliwa jest zmiana skrótów poprzez przyciśnięcie klawisza przy " "zaznaczonym elemencie menu" -#: ../gtk/gtksettings.c:1316 +#: ../gtk/gtksettings.c:1317 msgid "Delay before submenus appear" msgstr "Opóźnienie pojawienia się podmenu" -#: ../gtk/gtksettings.c:1317 +#: ../gtk/gtksettings.c:1318 msgid "" "Minimum time the pointer must stay over a menu item before the submenu appear" msgstr "" "Minimalny okres czasu, przez jaki kursor musi znajdować się nad elementem, " "zanim zostanie wyświetlone menu podrzędne" -#: ../gtk/gtksettings.c:1326 +#: ../gtk/gtksettings.c:1327 msgid "Delay before hiding a submenu" msgstr "Opóźnienie ukrycia podmenu" -#: ../gtk/gtksettings.c:1327 +#: ../gtk/gtksettings.c:1328 msgid "" "The time before hiding a submenu when the pointer is moving towards the " "submenu" @@ -6399,41 +6399,41 @@ msgstr "" "Limit czasu do ukrycia menu podrzędnego, gdy kursor przemieszcza się w " "kierunku podmenu" -#: ../gtk/gtksettings.c:1337 +#: ../gtk/gtksettings.c:1338 msgid "Whether to select the contents of a selectable label when it is focused" msgstr "" "Określa, czy zawartość etykiety powinna być zaznaczana przy otrzymaniu " "zaznaczenia" -#: ../gtk/gtksettings.c:1345 +#: ../gtk/gtksettings.c:1346 msgid "Custom palette" msgstr "Paleta użytkownika" -#: ../gtk/gtksettings.c:1346 +#: ../gtk/gtksettings.c:1347 msgid "Palette to use in the color selector" msgstr "Paleta używana przy wyborze koloru" -#: ../gtk/gtksettings.c:1354 +#: ../gtk/gtksettings.c:1355 msgid "IM Preedit style" msgstr "Styl edycji wstępnej metody wprowadzania" -#: ../gtk/gtksettings.c:1355 +#: ../gtk/gtksettings.c:1356 msgid "How to draw the input method preedit string" msgstr "Sposób rysowania napisu edycji wstępnej metody wprowadzania" -#: ../gtk/gtksettings.c:1364 +#: ../gtk/gtksettings.c:1365 msgid "IM Status style" msgstr "Styl stanu metody wprowadzania" -#: ../gtk/gtksettings.c:1365 +#: ../gtk/gtksettings.c:1366 msgid "How to draw the input method statusbar" msgstr "Sposób rysowania paska stanu metody wprowadzania" -#: ../gtk/gtksettings.c:1374 +#: ../gtk/gtksettings.c:1375 msgid "Desktop shell shows app menu" msgstr "Powłoka środowiska wyświetla menu programu" -#: ../gtk/gtksettings.c:1375 +#: ../gtk/gtksettings.c:1376 msgid "" "Set to TRUE if the desktop environment is displaying the app menu, FALSE if " "the app should display it itself." @@ -6441,11 +6441,11 @@ msgstr "" "Należy włączyć, jeśli środowisko pulpitu wyświetla menu programu, a " "wyłączyć, jeśli program powinien je sam wyświetlać." -#: ../gtk/gtksettings.c:1384 +#: ../gtk/gtksettings.c:1385 msgid "Desktop shell shows the menubar" msgstr "Powłoka pulpitu wyświetla pasek menu" -#: ../gtk/gtksettings.c:1385 +#: ../gtk/gtksettings.c:1386 msgid "" "Set to TRUE if the desktop environment is displaying the menubar, FALSE if " "the app should display it itself." @@ -6453,11 +6453,11 @@ msgstr "" "Należy włączyć, jeśli środowisko pulpitu wyświetla pasek menu, a wyłączyć, " "jeśli program powinien go sam wyświetlać." -#: ../gtk/gtksettings.c:1402 +#: ../gtk/gtksettings.c:1403 msgid "Enable primary paste" msgstr "Włączenie pierwszego wklejania" -#: ../gtk/gtksettings.c:1403 +#: ../gtk/gtksettings.c:1404 msgid "" "Whether a middle click on a mouse should paste the 'PRIMARY' clipboard " "content at the cursor location." @@ -6465,6 +6465,14 @@ msgstr "" "Określa, czy kliknięcie środkowym przyciskiem myszy powinno wkleić zawartość " "schowka \"PRIMARY\" w miejscu położenia kursora." +#: ../gtk/gtksettings.c:1420 +msgid "Recent Files Enabled" +msgstr "Włączenie ostatnio używanych plików" + +#: ../gtk/gtksettings.c:1421 +msgid "Whether GTK+ remembers recent files" +msgstr "Określa, czy biblioteka GTK+ pamięta ostatnio używane pliki" + #: ../gtk/gtksizegroup.c:324 ../gtk/gtktreeselection.c:129 msgid "Mode" msgstr "Tryb" @@ -6569,7 +6577,7 @@ msgstr "Określa, czy ikona stanu jest zagnieżdżona" msgid "The orientation of the tray" msgstr "Orientacja obszaru powiadamiania" -#: ../gtk/gtkstatusicon.c:358 ../gtk/gtkwidget.c:1119 +#: ../gtk/gtkstatusicon.c:358 ../gtk/gtkwidget.c:1189 msgid "Has tooltip" msgstr "Podpowiedź" @@ -6577,15 +6585,15 @@ msgstr "Podpowiedź" msgid "Whether this tray icon has a tooltip" msgstr "Określa, czy ta ikona zasobnika zawiera podpowiedź" -#: ../gtk/gtkstatusicon.c:384 ../gtk/gtkwidget.c:1140 +#: ../gtk/gtkstatusicon.c:384 ../gtk/gtkwidget.c:1210 msgid "Tooltip Text" msgstr "Tekst podpowiedzi" -#: ../gtk/gtkstatusicon.c:385 ../gtk/gtkwidget.c:1141 ../gtk/gtkwidget.c:1162 +#: ../gtk/gtkstatusicon.c:385 ../gtk/gtkwidget.c:1211 ../gtk/gtkwidget.c:1232 msgid "The contents of the tooltip for this widget" msgstr "Tekst podpowiedzi dla tego widżetu" -#: ../gtk/gtkstatusicon.c:408 ../gtk/gtkwidget.c:1161 +#: ../gtk/gtkstatusicon.c:408 ../gtk/gtkwidget.c:1231 msgid "Tooltip markup" msgstr "Znacznik podpowiedzi" @@ -6597,19 +6605,27 @@ msgstr "Zawartość podpowiedzi dla tej ikony zasobnika" msgid "The title of this tray icon" msgstr "Tytuł tej ikony zasobnika" -#: ../gtk/gtkstylecontext.c:442 +#: ../gtk/gtkstylecontext.c:445 msgid "The associated GdkScreen" msgstr "Powiązany obiekt GdkScreen" -#: ../gtk/gtkstylecontext.c:448 +#: ../gtk/gtkstylecontext.c:451 +msgid "FrameClock" +msgstr "FrameClock" + +#: ../gtk/gtkstylecontext.c:452 +msgid "The associated GdkFrameClock" +msgstr "Powiązany obiekt GdkFrameClock" + +#: ../gtk/gtkstylecontext.c:458 msgid "Direction" msgstr "Kierunek" -#: ../gtk/gtkstylecontext.c:449 ../gtk/gtktexttag.c:287 +#: ../gtk/gtkstylecontext.c:459 ../gtk/gtktexttag.c:287 msgid "Text direction" msgstr "Kierunek tekstu" -#: ../gtk/gtkstylecontext.c:465 +#: ../gtk/gtkstylecontext.c:475 msgid "The parent style context" msgstr "Kontekst stylu nadrzędnego" @@ -6687,16 +6703,16 @@ msgid "" msgstr "" "Lista celów wklejania ze schowka i źródeł DND obsługiwanych przez ten bufor" -#: ../gtk/gtktexthandle.c:470 ../gtk/gtktexthandle.c:471 -#: ../gtk/gtkwidget.c:985 +#: ../gtk/gtktexthandle.c:475 ../gtk/gtktexthandle.c:476 +#: ../gtk/gtkwidget.c:1055 msgid "Parent widget" msgstr "Widżet nadrzędny" -#: ../gtk/gtktexthandle.c:478 ../gtk/gtkwidget.c:1176 +#: ../gtk/gtktexthandle.c:483 ../gtk/gtkwidget.c:1246 msgid "Window" msgstr "Okno" -#: ../gtk/gtktexthandle.c:479 +#: ../gtk/gtktexthandle.c:484 msgid "Window the coordinates are based upon" msgstr "Okno, na którym oparte są współrzędne" @@ -6782,7 +6798,7 @@ msgstr "" "czcionki. Własność pozwala na automatyczne dostosowanie się do zmian motywów " "itp., więc zalecane jest ustalanie rozmiaru właśnie przy jej użyciu. Pango " "definiuje standardowo kilka wartości skalujących, takich jak " -"PANGO_SCALE_X_LARGE." +"PANGO_SCALE_X_LARGE" #: ../gtk/gtktexttag.c:405 ../gtk/gtktextview.c:722 msgid "Left, right, or center justification" @@ -7096,7 +7112,7 @@ msgstr "Rysowanie wskaźnika" msgid "If the toggle part of the button is displayed" msgstr "Określa, czy rysowana powinna być przełączalna część przycisku" -#: ../gtk/gtktoolbar.c:498 ../gtk/gtktoolpalette.c:1043 +#: ../gtk/gtktoolbar.c:498 ../gtk/gtktoolpalette.c:1045 msgid "Toolbar Style" msgstr "Styl paska narzędziowego" @@ -7118,11 +7134,11 @@ msgstr "" msgid "Size of icons in this toolbar" msgstr "Rozmiar ikon na tym pasku narzędziowym" -#: ../gtk/gtktoolbar.c:543 ../gtk/gtktoolpalette.c:1029 +#: ../gtk/gtktoolbar.c:543 ../gtk/gtktoolpalette.c:1031 msgid "Icon size set" msgstr "Ustawienie rozmiaru czcionki" -#: ../gtk/gtktoolbar.c:544 ../gtk/gtktoolpalette.c:1030 +#: ../gtk/gtktoolbar.c:544 ../gtk/gtktoolpalette.c:1032 msgid "Whether the icon-size property has been set" msgstr "Określa, czy rozmiar ikon został określony" @@ -7302,24 +7318,24 @@ msgstr "Określa, czy element powinien rozpoczynać nowy rząd" msgid "Position of the item within this group" msgstr "Położenie elementu w tej grupie" -#: ../gtk/gtktoolpalette.c:1014 +#: ../gtk/gtktoolpalette.c:1016 msgid "Size of icons in this tool palette" msgstr "Rozmiar ikon na tej palecie narzędziowej" -#: ../gtk/gtktoolpalette.c:1044 +#: ../gtk/gtktoolpalette.c:1046 msgid "Style of items in the tool palette" msgstr "Styl elementów na palecie narzędziowej" -#: ../gtk/gtktoolpalette.c:1060 +#: ../gtk/gtktoolpalette.c:1062 msgid "Exclusive" msgstr "Wyłączność" -#: ../gtk/gtktoolpalette.c:1061 +#: ../gtk/gtktoolpalette.c:1063 msgid "Whether the item group should be the only expanded at a given time" msgstr "" "Określa, czy grupa elementów powinna być jedyną rozwiniętą w danym czasie" -#: ../gtk/gtktoolpalette.c:1076 +#: ../gtk/gtktoolpalette.c:1078 msgid "" "Whether the item group should receive extra space when the palette grows" msgstr "" @@ -7364,7 +7380,7 @@ msgstr "Rozmiar ikon" #: ../gtk/gtktrayicon-x11.c:178 msgid "The pixel size that icons should be forced to, or zero" -msgstr "Rozmiar w pikselach, do którego zmuszać ikony lub zero." +msgstr "Rozmiar w pikselach, do którego zmuszać ikony lub zero" #: ../gtk/gtktreemenu.c:290 msgid "TreeMenu model" @@ -7627,7 +7643,7 @@ msgstr "Wzór linii przerywanej używanej przy rysowaniu gałęzi drzewa" msgid "Whether to display the column" msgstr "Określa, czy kolumna powinna być wyświetlana" -#: ../gtk/gtktreeviewcolumn.c:253 ../gtk/gtkwindow.c:651 +#: ../gtk/gtktreeviewcolumn.c:253 ../gtk/gtkwindow.c:647 msgid "Resizable" msgstr "Zmienny rozmiar" @@ -7737,7 +7753,7 @@ msgstr "Definicja scalonego interfejsu użytkownika" msgid "An XML string describing the merged UI" msgstr "Napis XML opisujący scalony interfejs użytkownika" -#: ../gtk/gtkviewport.c:156 +#: ../gtk/gtkviewport.c:157 msgid "Determines how the shadowed box around the viewport is drawn" msgstr "" "Określa sposób rysowania cieniowanego prostokąta wokół obszaru wyświetlania" @@ -7750,23 +7766,23 @@ msgstr "Użycie ikon symbolicznych" msgid "Whether to use symbolic icons" msgstr "Określa, czy używać ikon symbolicznych" -#: ../gtk/gtkwidget.c:978 +#: ../gtk/gtkwidget.c:1048 msgid "Widget name" msgstr "Nazwa widżetu" -#: ../gtk/gtkwidget.c:979 +#: ../gtk/gtkwidget.c:1049 msgid "The name of the widget" msgstr "Nazwa widżetu" -#: ../gtk/gtkwidget.c:986 +#: ../gtk/gtkwidget.c:1056 msgid "The parent widget of this widget. Must be a Container widget" msgstr "Widżet nadrzędny tego widżetu. Musi być kontenerem" -#: ../gtk/gtkwidget.c:993 +#: ../gtk/gtkwidget.c:1063 msgid "Width request" msgstr "Żądanie ustalenia szerokości" -#: ../gtk/gtkwidget.c:994 +#: ../gtk/gtkwidget.c:1064 msgid "" "Override for width request of the widget, or -1 if natural request should be " "used" @@ -7774,11 +7790,11 @@ msgstr "" "Zmienia żądanie ustalenia szerokości widżetu, wartość -1 oznacza użycie " "naturalnego żądania" -#: ../gtk/gtkwidget.c:1002 +#: ../gtk/gtkwidget.c:1072 msgid "Height request" msgstr "Żądanie ustalenia wysokości" -#: ../gtk/gtkwidget.c:1003 +#: ../gtk/gtkwidget.c:1073 msgid "" "Override for height request of the widget, or -1 if natural request should " "be used" @@ -7786,260 +7802,268 @@ msgstr "" "Zmienia żądanie ustalenia wysokości widżetu, wartość -1 oznacza użycie " "naturalnego żądania" -#: ../gtk/gtkwidget.c:1012 +#: ../gtk/gtkwidget.c:1082 msgid "Whether the widget is visible" msgstr "Określa, czy widżet jest widoczny" -#: ../gtk/gtkwidget.c:1019 +#: ../gtk/gtkwidget.c:1089 msgid "Whether the widget responds to input" msgstr "Określa, czy widżet odpowiada na zdarzenia wejściowe" -#: ../gtk/gtkwidget.c:1025 +#: ../gtk/gtkwidget.c:1095 msgid "Application paintable" msgstr "Rysowanie przez program" -#: ../gtk/gtkwidget.c:1026 +#: ../gtk/gtkwidget.c:1096 msgid "Whether the application will paint directly on the widget" msgstr "Określa, czy program będzie rysować bezpośrednio na widżecie" -#: ../gtk/gtkwidget.c:1032 +#: ../gtk/gtkwidget.c:1102 msgid "Can focus" msgstr "Przyjmuje zaznaczenie" -#: ../gtk/gtkwidget.c:1033 +#: ../gtk/gtkwidget.c:1103 msgid "Whether the widget can accept the input focus" msgstr "Określa, czy widżet przyjmuje zaznaczenie wejściowe" -#: ../gtk/gtkwidget.c:1039 +#: ../gtk/gtkwidget.c:1109 msgid "Has focus" msgstr "Zaznaczenie" -#: ../gtk/gtkwidget.c:1040 +#: ../gtk/gtkwidget.c:1110 msgid "Whether the widget has the input focus" msgstr "Określa, czy na widżecie jest zaznaczenie wejściowe" -#: ../gtk/gtkwidget.c:1046 +#: ../gtk/gtkwidget.c:1116 msgid "Is focus" msgstr "Zaznaczanie" -#: ../gtk/gtkwidget.c:1047 +#: ../gtk/gtkwidget.c:1117 msgid "Whether the widget is the focus widget within the toplevel" msgstr "Określa, czy widżet jest domyślnym widżetem w nadrzędnym oknie" -#: ../gtk/gtkwidget.c:1053 +#: ../gtk/gtkwidget.c:1123 msgid "Can default" msgstr "Może być domyślny" -#: ../gtk/gtkwidget.c:1054 +#: ../gtk/gtkwidget.c:1124 msgid "Whether the widget can be the default widget" msgstr "Określa, czy widżet może być widżetem domyślnym" -#: ../gtk/gtkwidget.c:1060 +#: ../gtk/gtkwidget.c:1130 msgid "Has default" msgstr "Jest domyślny" -#: ../gtk/gtkwidget.c:1061 +#: ../gtk/gtkwidget.c:1131 msgid "Whether the widget is the default widget" msgstr "Określa, czy widżet jest widżetem domyślnym" -#: ../gtk/gtkwidget.c:1067 +#: ../gtk/gtkwidget.c:1137 msgid "Receives default" msgstr "Przyjmuje domyślne" -#: ../gtk/gtkwidget.c:1068 +#: ../gtk/gtkwidget.c:1138 msgid "If TRUE, the widget will receive the default action when it is focused" msgstr "" "Określa, czy widżet przyjmuje domyślną czynność, jeśli na nim jest " "zaznaczenie" -#: ../gtk/gtkwidget.c:1074 +#: ../gtk/gtkwidget.c:1144 msgid "Composite child" msgstr "Element potomny złożonego" -#: ../gtk/gtkwidget.c:1075 +#: ../gtk/gtkwidget.c:1145 msgid "Whether the widget is part of a composite widget" msgstr "Określa, czy widżet jest częścią widżetu złożonego" -#: ../gtk/gtkwidget.c:1081 +#: ../gtk/gtkwidget.c:1151 msgid "Style" msgstr "Styl" -#: ../gtk/gtkwidget.c:1082 +#: ../gtk/gtkwidget.c:1152 msgid "" "The style of the widget, which contains information about how it will look " "(colors etc)" msgstr "Styl widżetu zawierający informacje o jego wyglądzie (kolory itp.)" -#: ../gtk/gtkwidget.c:1088 +#: ../gtk/gtkwidget.c:1158 msgid "Events" msgstr "Zdarzenia" -#: ../gtk/gtkwidget.c:1089 +#: ../gtk/gtkwidget.c:1159 msgid "The event mask that decides what kind of GdkEvents this widget gets" msgstr "" "Maska zdarzeń określająca, jakie rodzaje zdarzeń GdkEvents otrzymuje ten " "widżet" -#: ../gtk/gtkwidget.c:1096 +#: ../gtk/gtkwidget.c:1166 msgid "No show all" msgstr "Bez obsługi sygnału wyświetlania wszystkich" -#: ../gtk/gtkwidget.c:1097 +#: ../gtk/gtkwidget.c:1167 msgid "Whether gtk_widget_show_all() should not affect this widget" msgstr "" "Określa, czy funkcja gtk_widget_show_all() powinna mieć wpływ na ten widżet" -#: ../gtk/gtkwidget.c:1120 +#: ../gtk/gtkwidget.c:1190 msgid "Whether this widget has a tooltip" msgstr "Określa, czy dany widżet posiada podpowiedź" -#: ../gtk/gtkwidget.c:1177 +#: ../gtk/gtkwidget.c:1247 msgid "The widget's window if it is realized" msgstr "Okno widżetu, jeśli jest ono realizowane" -#: ../gtk/gtkwidget.c:1191 +#: ../gtk/gtkwidget.c:1261 msgid "Double Buffered" msgstr "Podwójnie zbuforowane" -#: ../gtk/gtkwidget.c:1192 +#: ../gtk/gtkwidget.c:1262 msgid "Whether the widget is double buffered" msgstr "Określa, czy widżet jest podwójnie zbuforowany" -#: ../gtk/gtkwidget.c:1207 +#: ../gtk/gtkwidget.c:1277 msgid "How to position in extra horizontal space" msgstr "Jak układać w dodatkowym miejscu w poziomie" -#: ../gtk/gtkwidget.c:1223 +#: ../gtk/gtkwidget.c:1293 msgid "How to position in extra vertical space" msgstr "Jak układać w dodatkowym miejscu w pionie" -#: ../gtk/gtkwidget.c:1242 +#: ../gtk/gtkwidget.c:1312 msgid "Margin on Left" msgstr "Margines po lewej" -#: ../gtk/gtkwidget.c:1243 +#: ../gtk/gtkwidget.c:1313 msgid "Pixels of extra space on the left side" msgstr "Liczba pikseli dodatkowego miejsca po lewej stronie" -#: ../gtk/gtkwidget.c:1263 +#: ../gtk/gtkwidget.c:1333 msgid "Margin on Right" msgstr "Margines po prawej" -#: ../gtk/gtkwidget.c:1264 +#: ../gtk/gtkwidget.c:1334 msgid "Pixels of extra space on the right side" msgstr "Liczba pikseli dodatkowego miejsca po prawej stronie" -#: ../gtk/gtkwidget.c:1284 +#: ../gtk/gtkwidget.c:1354 msgid "Margin on Top" msgstr "Margines na górze" -#: ../gtk/gtkwidget.c:1285 +#: ../gtk/gtkwidget.c:1355 msgid "Pixels of extra space on the top side" msgstr "Liczba pikseli dodatkowego miejsca na górze" -#: ../gtk/gtkwidget.c:1305 +#: ../gtk/gtkwidget.c:1375 msgid "Margin on Bottom" msgstr "Margines na dole" -#: ../gtk/gtkwidget.c:1306 +#: ../gtk/gtkwidget.c:1376 msgid "Pixels of extra space on the bottom side" msgstr "Liczba pikseli dodatkowego miejsca na dole" -#: ../gtk/gtkwidget.c:1323 +#: ../gtk/gtkwidget.c:1393 msgid "All Margins" msgstr "Wszystkie marginesy" -#: ../gtk/gtkwidget.c:1324 +#: ../gtk/gtkwidget.c:1394 msgid "Pixels of extra space on all four sides" msgstr "Liczba pikseli dodatkowego miejsca po wszystkich czterech stronach" -#: ../gtk/gtkwidget.c:1357 +#: ../gtk/gtkwidget.c:1427 msgid "Horizontal Expand" msgstr "Rozwijanie poziome" -#: ../gtk/gtkwidget.c:1358 +#: ../gtk/gtkwidget.c:1428 msgid "Whether widget wants more horizontal space" msgstr "Określa, czy widżet potrzebuje więcej miejsca w poziomie" -#: ../gtk/gtkwidget.c:1372 +#: ../gtk/gtkwidget.c:1442 msgid "Horizontal Expand Set" msgstr "Ustawienie rozwijania poziomego" -#: ../gtk/gtkwidget.c:1373 +#: ../gtk/gtkwidget.c:1443 msgid "Whether to use the hexpand property" msgstr "Określa, czy używać właściwości hexpand" -#: ../gtk/gtkwidget.c:1387 +#: ../gtk/gtkwidget.c:1457 msgid "Vertical Expand" msgstr "Rozwijanie pionowe" -#: ../gtk/gtkwidget.c:1388 +#: ../gtk/gtkwidget.c:1458 msgid "Whether widget wants more vertical space" msgstr "Określa, czy widżet potrzebuje więcej miejsca w pionie" -#: ../gtk/gtkwidget.c:1402 +#: ../gtk/gtkwidget.c:1472 msgid "Vertical Expand Set" msgstr "Ustawienie rozwijania pionowego" -#: ../gtk/gtkwidget.c:1403 +#: ../gtk/gtkwidget.c:1473 msgid "Whether to use the vexpand property" msgstr "Określa, czy używać właściwości vexpand" -#: ../gtk/gtkwidget.c:1417 +#: ../gtk/gtkwidget.c:1487 msgid "Expand Both" msgstr "Rozwijanie w obie strony" -#: ../gtk/gtkwidget.c:1418 +#: ../gtk/gtkwidget.c:1488 msgid "Whether widget wants to expand in both directions" msgstr "Określa, czy na widżet potrzebuje rozwijać się w obie strony" -#: ../gtk/gtkwidget.c:3139 +#: ../gtk/gtkwidget.c:1505 +msgid "Opacity for Widget" +msgstr "Nieprzezroczystość widżetu" + +#: ../gtk/gtkwidget.c:1506 +msgid "The opacity of the widget, from 0 to 1" +msgstr "Nieprzezroczystość widżetu od 0 do 1" + +#: ../gtk/gtkwidget.c:3228 msgid "Interior Focus" msgstr "Wewnętrzne zaznaczenie" -#: ../gtk/gtkwidget.c:3140 +#: ../gtk/gtkwidget.c:3229 msgid "Whether to draw the focus indicator inside widgets" msgstr "Określa, czy należy rysować wskaźnik zaznaczenia wewnątrz widżetów" -#: ../gtk/gtkwidget.c:3146 +#: ../gtk/gtkwidget.c:3235 msgid "Focus linewidth" msgstr "Szerokość linii zaznaczenia" -#: ../gtk/gtkwidget.c:3147 +#: ../gtk/gtkwidget.c:3236 msgid "Width, in pixels, of the focus indicator line" msgstr "Szerokość linii wskazującej zaznaczenie, liczona w pikselach" -#: ../gtk/gtkwidget.c:3153 +#: ../gtk/gtkwidget.c:3242 msgid "Focus line dash pattern" msgstr "Wzór linii zaznaczenia" -#: ../gtk/gtkwidget.c:3154 +#: ../gtk/gtkwidget.c:3243 msgid "Dash pattern used to draw the focus indicator" msgstr "Wzór linii przerywanej używanej przy rysowaniu zaznaczenia" -#: ../gtk/gtkwidget.c:3159 +#: ../gtk/gtkwidget.c:3248 msgid "Focus padding" msgstr "Dopełnienie zaznaczenia" -#: ../gtk/gtkwidget.c:3160 +#: ../gtk/gtkwidget.c:3249 msgid "Width, in pixels, between focus indicator and the widget 'box'" msgstr "" "Szerokość odstępu między wskaźnikiem zaznaczenia a prostokątem okalającym " "skupienie, liczona w pikselach" -#: ../gtk/gtkwidget.c:3165 +#: ../gtk/gtkwidget.c:3254 msgid "Cursor color" msgstr "Kolor kursora" -#: ../gtk/gtkwidget.c:3166 +#: ../gtk/gtkwidget.c:3255 msgid "Color with which to draw insertion cursor" msgstr "Kolor, przy użyciu którego powinien być rysowany kursor wstawiania" -#: ../gtk/gtkwidget.c:3171 +#: ../gtk/gtkwidget.c:3260 msgid "Secondary cursor color" msgstr "Drugi kolor kursora" -#: ../gtk/gtkwidget.c:3172 +#: ../gtk/gtkwidget.c:3261 msgid "" "Color with which to draw the secondary insertion cursor when editing mixed " "right-to-left and left-to-right text" @@ -8047,44 +8071,44 @@ msgstr "" "Kolor pomocniczego kursora wstawiania, używanego przy redagowaniu tekstu z " "przemieszanymi fragmentami pisanymi od-lewej-do-prawej i od-prawej-do-lewej" -#: ../gtk/gtkwidget.c:3177 +#: ../gtk/gtkwidget.c:3266 msgid "Cursor line aspect ratio" msgstr "Proporcje linii kursora" -#: ../gtk/gtkwidget.c:3178 +#: ../gtk/gtkwidget.c:3267 msgid "Aspect ratio with which to draw insertion cursor" msgstr "Współczynnik proporcji kursora wstawiania" -#: ../gtk/gtkwidget.c:3184 +#: ../gtk/gtkwidget.c:3273 msgid "Window dragging" msgstr "Przenoszenie okna" -#: ../gtk/gtkwidget.c:3185 +#: ../gtk/gtkwidget.c:3274 msgid "Whether windows can be dragged by clicking on empty areas" msgstr "" "Określa, czy okna można przenosić przez kliknięcie na pustych obszarach" -#: ../gtk/gtkwidget.c:3198 +#: ../gtk/gtkwidget.c:3287 msgid "Unvisited Link Color" msgstr "Kolor nieodwiedzonego odnośnika" -#: ../gtk/gtkwidget.c:3199 +#: ../gtk/gtkwidget.c:3288 msgid "Color of unvisited links" msgstr "Kolor nieodwiedzonych odnośników" -#: ../gtk/gtkwidget.c:3212 +#: ../gtk/gtkwidget.c:3301 msgid "Visited Link Color" msgstr "Kolor odwiedzonego odnośnika" -#: ../gtk/gtkwidget.c:3213 +#: ../gtk/gtkwidget.c:3302 msgid "Color of visited links" msgstr "Kolor odwiedzonych odnośników" -#: ../gtk/gtkwidget.c:3227 +#: ../gtk/gtkwidget.c:3316 msgid "Wide Separators" msgstr "Szerokie separatory" -#: ../gtk/gtkwidget.c:3228 +#: ../gtk/gtkwidget.c:3317 msgid "" "Whether separators have configurable width and should be drawn using a box " "instead of a line" @@ -8092,88 +8116,88 @@ msgstr "" "Określa, czy separatory mają konfigurowalną szerokość i czy mają być " "rysowane za pomocą prostokąta, a nie linii" -#: ../gtk/gtkwidget.c:3242 +#: ../gtk/gtkwidget.c:3331 msgid "Separator Width" msgstr "Szerokość separatora" -#: ../gtk/gtkwidget.c:3243 +#: ../gtk/gtkwidget.c:3332 msgid "The width of separators if wide-separators is TRUE" msgstr "Szerokość separatorów jeśli szerokie separatory są włączone" -#: ../gtk/gtkwidget.c:3257 +#: ../gtk/gtkwidget.c:3346 msgid "Separator Height" msgstr "Wysokość separatora" -#: ../gtk/gtkwidget.c:3258 +#: ../gtk/gtkwidget.c:3347 msgid "The height of separators if \"wide-separators\" is TRUE" msgstr "Wysokość separatorów jeśli szerokie separatory są włączone" -#: ../gtk/gtkwidget.c:3272 +#: ../gtk/gtkwidget.c:3361 msgid "Horizontal Scroll Arrow Length" msgstr "Długość strzałki poziomego paska przewijania" -#: ../gtk/gtkwidget.c:3273 +#: ../gtk/gtkwidget.c:3362 msgid "The length of horizontal scroll arrows" msgstr "Długość strzałek poziomych pasków przewijania" -#: ../gtk/gtkwidget.c:3287 +#: ../gtk/gtkwidget.c:3376 msgid "Vertical Scroll Arrow Length" msgstr "Długość strzałki pionowego paska przewijania" -#: ../gtk/gtkwidget.c:3288 +#: ../gtk/gtkwidget.c:3377 msgid "The length of vertical scroll arrows" msgstr "Długość strzałek pionowych pasków przewijania" -#: ../gtk/gtkwidget.c:3294 ../gtk/gtkwidget.c:3295 +#: ../gtk/gtkwidget.c:3383 ../gtk/gtkwidget.c:3384 msgid "Width of text selection handles" msgstr "Szerokość uchwytów zaznaczania tekstu" -#: ../gtk/gtkwidget.c:3300 ../gtk/gtkwidget.c:3301 +#: ../gtk/gtkwidget.c:3389 ../gtk/gtkwidget.c:3390 msgid "Height of text selection handles" msgstr "Wysokość uchwytów zaznaczania tekstu" -#: ../gtk/gtkwindow.c:609 +#: ../gtk/gtkwindow.c:605 msgid "Window Type" msgstr "Typ okna" -#: ../gtk/gtkwindow.c:610 +#: ../gtk/gtkwindow.c:606 msgid "The type of the window" msgstr "Typ okna" -#: ../gtk/gtkwindow.c:618 +#: ../gtk/gtkwindow.c:614 msgid "Window Title" msgstr "Tytuł okna" -#: ../gtk/gtkwindow.c:619 +#: ../gtk/gtkwindow.c:615 msgid "The title of the window" msgstr "Tytuł okna" -#: ../gtk/gtkwindow.c:626 +#: ../gtk/gtkwindow.c:622 msgid "Window Role" msgstr "Rola okna" -#: ../gtk/gtkwindow.c:627 +#: ../gtk/gtkwindow.c:623 msgid "Unique identifier for the window to be used when restoring a session" msgstr "Unikalny identyfikator dla okna używany podczas przywracania sesji" -#: ../gtk/gtkwindow.c:643 +#: ../gtk/gtkwindow.c:639 msgid "Startup ID" msgstr "Identyfikator uruchamiania" -#: ../gtk/gtkwindow.c:644 +#: ../gtk/gtkwindow.c:640 msgid "Unique startup identifier for the window used by startup-notification" msgstr "" "Unikalny identyfikator dla okna używany podczas powiadamiania o starcie" -#: ../gtk/gtkwindow.c:652 +#: ../gtk/gtkwindow.c:648 msgid "If TRUE, users can resize the window" msgstr "Określa, czy użytkownik może zmieniać rozmiar okna" -#: ../gtk/gtkwindow.c:659 +#: ../gtk/gtkwindow.c:655 msgid "Modal" msgstr "Modalne" -#: ../gtk/gtkwindow.c:660 +#: ../gtk/gtkwindow.c:656 msgid "" "If TRUE, the window is modal (other windows are not usable while this one is " "up)" @@ -8181,97 +8205,97 @@ msgstr "" "Określa, czy okno jest modalne (kiedy jest widoczne, inne okna nie mogą być " "używane)" -#: ../gtk/gtkwindow.c:667 +#: ../gtk/gtkwindow.c:663 msgid "Window Position" msgstr "Pozycja okna" -#: ../gtk/gtkwindow.c:668 +#: ../gtk/gtkwindow.c:664 msgid "The initial position of the window" msgstr "Początkowa pozycja okna" -#: ../gtk/gtkwindow.c:676 +#: ../gtk/gtkwindow.c:672 msgid "Default Width" msgstr "Domyślna szerokość" -#: ../gtk/gtkwindow.c:677 +#: ../gtk/gtkwindow.c:673 msgid "The default width of the window, used when initially showing the window" msgstr "" "Domyślna szerokość okna wykorzystywana przy jego pierwszym wyświetleniu" -#: ../gtk/gtkwindow.c:686 +#: ../gtk/gtkwindow.c:682 msgid "Default Height" msgstr "Domyślna wysokość" -#: ../gtk/gtkwindow.c:687 +#: ../gtk/gtkwindow.c:683 msgid "" "The default height of the window, used when initially showing the window" msgstr "Domyślna wysokość okna wykorzystywana przy jego pierwszym wyświetleniu" -#: ../gtk/gtkwindow.c:696 +#: ../gtk/gtkwindow.c:692 msgid "Destroy with Parent" msgstr "Niszczenie z rodzicem" -#: ../gtk/gtkwindow.c:697 +#: ../gtk/gtkwindow.c:693 msgid "If this window should be destroyed when the parent is destroyed" msgstr "" "Określa, czy to okno powinno być zamknięte w momencie zamknięcia okna " "nadrzędnego" -#: ../gtk/gtkwindow.c:711 +#: ../gtk/gtkwindow.c:707 msgid "Hide the titlebar during maximization" msgstr "Ukrywanie paska tytułowego podczas maksymalizacji" -#: ../gtk/gtkwindow.c:712 +#: ../gtk/gtkwindow.c:708 msgid "If this window's titlebar should be hidden when the window is maximized" msgstr "" "Określa, czy pasek tytułowy tego okna powinien być ukrywany, jeśli okno jest " "zmaksymalizowane" -#: ../gtk/gtkwindow.c:720 +#: ../gtk/gtkwindow.c:716 msgid "Icon for this window" msgstr "Ikona dla z tego okna" -#: ../gtk/gtkwindow.c:738 +#: ../gtk/gtkwindow.c:734 msgid "Mnemonics Visible" msgstr "Widoczność skrótów" -#: ../gtk/gtkwindow.c:739 +#: ../gtk/gtkwindow.c:735 msgid "Whether mnemonics are currently visible in this window" msgstr "Określa, czy skróty są obecnie widoczne w tym oknie" -#: ../gtk/gtkwindow.c:757 +#: ../gtk/gtkwindow.c:753 msgid "Focus Visible" msgstr "Widoczność aktywności" -#: ../gtk/gtkwindow.c:758 +#: ../gtk/gtkwindow.c:754 msgid "Whether focus rectangles are currently visible in this window" msgstr "Określa, czy prostokąty aktywności są obecnie widoczne w tym oknie" -#: ../gtk/gtkwindow.c:774 +#: ../gtk/gtkwindow.c:770 msgid "Name of the themed icon for this window" msgstr "Nazwa ikony motywu dla tego okna" -#: ../gtk/gtkwindow.c:789 +#: ../gtk/gtkwindow.c:785 msgid "Is Active" msgstr "Aktywne" -#: ../gtk/gtkwindow.c:790 +#: ../gtk/gtkwindow.c:786 msgid "Whether the toplevel is the current active window" msgstr "Określa, czy okno nadrzędne jest oknem aktywnym" -#: ../gtk/gtkwindow.c:797 +#: ../gtk/gtkwindow.c:793 msgid "Focus in Toplevel" msgstr "Zaznaczenie w oknie nadrzędnym" -#: ../gtk/gtkwindow.c:798 +#: ../gtk/gtkwindow.c:794 msgid "Whether the input focus is within this GtkWindow" msgstr "Określa, czy zaznaczenie znajduje się wewnątrz GtkWindow" -#: ../gtk/gtkwindow.c:805 +#: ../gtk/gtkwindow.c:801 msgid "Type hint" msgstr "Podpowiedź typu" -#: ../gtk/gtkwindow.c:806 +#: ../gtk/gtkwindow.c:802 msgid "" "Hint to help the desktop environment understand what kind of window this is " "and how to treat it." @@ -8279,125 +8303,117 @@ msgstr "" "Podpowiedź dla środowiska z jakim typem okna ma do czynienia i jak ma z nim " "postępować." -#: ../gtk/gtkwindow.c:814 +#: ../gtk/gtkwindow.c:810 msgid "Skip taskbar" msgstr "Pominięcia paska zadań" -#: ../gtk/gtkwindow.c:815 +#: ../gtk/gtkwindow.c:811 msgid "TRUE if the window should not be in the task bar." msgstr "Określa, czy okno powinno być pominięte na pasku zadań." -#: ../gtk/gtkwindow.c:822 +#: ../gtk/gtkwindow.c:818 msgid "Skip pager" msgstr "Pominięcie przełącznika obszarów roboczych" -#: ../gtk/gtkwindow.c:823 +#: ../gtk/gtkwindow.c:819 msgid "TRUE if the window should not be in the pager." msgstr "" "Określa, czy okno powinno być pominięte w przełączniku obszarów roboczych." -#: ../gtk/gtkwindow.c:830 +#: ../gtk/gtkwindow.c:826 msgid "Urgent" msgstr "Ważne" -#: ../gtk/gtkwindow.c:831 +#: ../gtk/gtkwindow.c:827 msgid "TRUE if the window should be brought to the user's attention." msgstr "Określa, czy okno powinno być poddane uwadze użytkownika." -#: ../gtk/gtkwindow.c:845 +#: ../gtk/gtkwindow.c:841 msgid "Accept focus" msgstr "Akceptowanie zaznaczenia" -#: ../gtk/gtkwindow.c:846 +#: ../gtk/gtkwindow.c:842 msgid "TRUE if the window should receive the input focus." msgstr "Jeżeli ustawione, okno powinno otrzymywać zaznaczenie wejścia." -#: ../gtk/gtkwindow.c:860 +#: ../gtk/gtkwindow.c:856 msgid "Focus on map" msgstr "Zaznaczenie przy mapowaniu" -#: ../gtk/gtkwindow.c:861 +#: ../gtk/gtkwindow.c:857 msgid "TRUE if the window should receive the input focus when mapped." msgstr "" "Jeżeli ustawione, okno powinno otrzymywać zaznaczenie wejścia przy mapowaniu." -#: ../gtk/gtkwindow.c:875 +#: ../gtk/gtkwindow.c:871 msgid "Decorated" msgstr "Dekorowanie" -#: ../gtk/gtkwindow.c:876 +#: ../gtk/gtkwindow.c:872 msgid "Whether the window should be decorated by the window manager" msgstr "Określa, czy okno powinno być dekorowane przez menedżera okien" -#: ../gtk/gtkwindow.c:890 +#: ../gtk/gtkwindow.c:886 msgid "Deletable" msgstr "Usuwalne" -#: ../gtk/gtkwindow.c:891 +#: ../gtk/gtkwindow.c:887 msgid "Whether the window frame should have a close button" msgstr "Określa, czy ramka okna ma mieć przycisk zamykania" -#: ../gtk/gtkwindow.c:910 +#: ../gtk/gtkwindow.c:906 msgid "Resize grip" msgstr "Uchwyt rozszerzania" -#: ../gtk/gtkwindow.c:911 +#: ../gtk/gtkwindow.c:907 msgid "Specifies whether the window should have a resize grip" msgstr "Określa, czy okno powinno posiadać uchwyt rozszerzania" -#: ../gtk/gtkwindow.c:925 +#: ../gtk/gtkwindow.c:921 msgid "Resize grip is visible" msgstr "Uchwyt rozszerzania jest widoczny" -#: ../gtk/gtkwindow.c:926 +#: ../gtk/gtkwindow.c:922 msgid "Specifies whether the window's resize grip is visible." msgstr "Określa, czy uchwyt rozszerzania okna jest widoczny." -#: ../gtk/gtkwindow.c:942 +#: ../gtk/gtkwindow.c:938 msgid "Gravity" msgstr "Grawitacja" -#: ../gtk/gtkwindow.c:943 +#: ../gtk/gtkwindow.c:939 msgid "The window gravity of the window" msgstr "Okno grawitacji okna" -#: ../gtk/gtkwindow.c:960 +#: ../gtk/gtkwindow.c:956 msgid "Transient for Window" msgstr "Potomne okna" -#: ../gtk/gtkwindow.c:961 +#: ../gtk/gtkwindow.c:957 msgid "The transient parent of the dialog" msgstr "Nadrzędne potomnego okna dialogowego" -#: ../gtk/gtkwindow.c:981 +#: ../gtk/gtkwindow.c:977 msgid "Attached to Widget" msgstr "Powiązane z widżetem" -#: ../gtk/gtkwindow.c:982 +#: ../gtk/gtkwindow.c:978 msgid "The widget where the window is attached" msgstr "Widżet, z którym jest powiązane okno" -#: ../gtk/gtkwindow.c:997 -msgid "Opacity for Window" -msgstr "Nieprzezroczystość okna" - -#: ../gtk/gtkwindow.c:998 -msgid "The opacity of the window, from 0 to 1" -msgstr "Nieprzezroczystość okna od 0 do 1" - -#: ../gtk/gtkwindow.c:1008 ../gtk/gtkwindow.c:1009 +#: ../gtk/gtkwindow.c:986 ../gtk/gtkwindow.c:987 msgid "Width of resize grip" msgstr "Szerokość uchwytu rozszerzania" -#: ../gtk/gtkwindow.c:1014 ../gtk/gtkwindow.c:1015 +#: ../gtk/gtkwindow.c:992 ../gtk/gtkwindow.c:993 msgid "Height of resize grip" msgstr "Wysokość uchwytu rozszerzania" -#: ../gtk/gtkwindow.c:1037 +#: ../gtk/gtkwindow.c:1015 msgid "GtkApplication" msgstr "GtkApplication" -#: ../gtk/gtkwindow.c:1038 +#: ../gtk/gtkwindow.c:1016 msgid "The GtkApplication for the window" msgstr "Obiekt GtkApplication dla okna" diff --git a/po/pl.po b/po/pl.po index 5ed042094b..d7202545c7 100644 --- a/po/pl.po +++ b/po/pl.po @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: gtk+\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-31 19:49+0100\n" -"PO-Revision-Date: 2013-01-31 19:50+0100\n" +"POT-Creation-Date: 2013-02-17 19:20+0100\n" +"PO-Revision-Date: 2013-02-17 19:21+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" @@ -30,48 +30,48 @@ msgstr "" "X-Poedit-Language: Polish\n" "X-Poedit-Country: Poland\n" -#: ../gdk/gdk.c:155 +#: ../gdk/gdk.c:156 #, c-format msgid "Error parsing option --gdk-debug" msgstr "Błąd podczas przetwarzania opcji --gdk-debug" -#: ../gdk/gdk.c:175 +#: ../gdk/gdk.c:176 #, c-format msgid "Error parsing option --gdk-no-debug" msgstr "Błąd podczas przetwarzania opcji --gdk-no-debug" #. Description of --class=CLASS in --help output -#: ../gdk/gdk.c:203 +#: ../gdk/gdk.c:204 msgid "Program class as used by the window manager" msgstr "Klasa programu używana przez menedżera okien" #. Placeholder in --class=CLASS in --help output -#: ../gdk/gdk.c:204 +#: ../gdk/gdk.c:205 msgid "CLASS" msgstr "KLASA" #. Description of --name=NAME in --help output -#: ../gdk/gdk.c:206 +#: ../gdk/gdk.c:207 msgid "Program name as used by the window manager" msgstr "Nazwa programu używana przez menedżera okien" #. Placeholder in --name=NAME in --help output -#: ../gdk/gdk.c:207 +#: ../gdk/gdk.c:208 msgid "NAME" msgstr "NAZWA" #. Description of --display=DISPLAY in --help output -#: ../gdk/gdk.c:209 +#: ../gdk/gdk.c:210 msgid "X display to use" msgstr "Używany ekran X" #. Placeholder in --display=DISPLAY in --help output -#: ../gdk/gdk.c:210 +#: ../gdk/gdk.c:211 msgid "DISPLAY" msgstr "EKRAN" #. Description of --gdk-debug=FLAGS in --help output -#: ../gdk/gdk.c:213 +#: ../gdk/gdk.c:214 msgid "GDK debugging flags to set" msgstr "Ustawione znaczniki debugowania biblioteki GDK" @@ -79,12 +79,12 @@ msgstr "Ustawione znaczniki debugowania biblioteki GDK" #. Placeholder in --gdk-no-debug=FLAGS in --help output #. Placeholder in --gtk-debug=FLAGS in --help output #. Placeholder in --gtk-no-debug=FLAGS in --help output -#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:453 ../gtk/gtkmain.c:456 +#: ../gdk/gdk.c:215 ../gdk/gdk.c:218 ../gtk/gtkmain.c:453 ../gtk/gtkmain.c:456 msgid "FLAGS" msgstr "ZNACZNIKI" #. Description of --gdk-no-debug=FLAGS in --help output -#: ../gdk/gdk.c:216 +#: ../gdk/gdk.c:217 msgid "GDK debugging flags to unset" msgstr "Wyczyszczone znaczniki debugowania biblioteki GDK" @@ -465,6 +465,131 @@ msgstr[0] "Otwieranie %d elementu" msgstr[1] "Otwieranie %d elementów" msgstr[2] "Otwieranie %d elementów" +#: ../gtk/a11y/gtkbooleancellaccessible.c:43 +msgctxt "Action description" +msgid "Toggles the cell" +msgstr "Przełącza komórkę" + +#: ../gtk/a11y/gtkbooleancellaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:101 +msgctxt "Action name" +msgid "Toggle" +msgstr "Przełączenie" + +#: ../gtk/a11y/gtkbuttonaccessible.c:341 +#: ../gtk/a11y/gtkmenuitemaccessible.c:436 +msgctxt "Action name" +msgid "Click" +msgstr "Kliknięcie" + +#: ../gtk/a11y/gtkbuttonaccessible.c:350 +msgctxt "Action description" +msgid "Clicks the button" +msgstr "Klika przycisk" + +#: ../gtk/a11y/gtkcellaccessible.c:258 +msgctxt "Action name" +msgid "Expand or contract" +msgstr "Rozwinięcie lub zwinięcie" + +#: ../gtk/a11y/gtkcellaccessible.c:260 +msgctxt "Action name" +msgid "Edit" +msgstr "Edycja" + +#: ../gtk/a11y/gtkcellaccessible.c:262 +#: ../gtk/a11y/gtkcolorswatchaccessible.c:72 +#: ../gtk/a11y/gtkentryaccessible.c:1541 +#: ../gtk/a11y/gtkexpanderaccessible.c:281 +msgctxt "Action name" +msgid "Activate" +msgstr "Aktywacja" + +#: ../gtk/a11y/gtkcellaccessible.c:275 +msgctxt "Action description" +msgid "Expands or contracts the row in the tree view containing this cell" +msgstr "Rozwija lub zwija rząd w widoku drzewa zawierającym tę komórkę" + +#: ../gtk/a11y/gtkcellaccessible.c:277 +msgctxt "Action description" +msgid "Creates a widget in which the contents of the cell can be edited" +msgstr "Tworzy widżet, w którym zawartość komórki może być modyfikowana" + +#: ../gtk/a11y/gtkcellaccessible.c:279 +msgctxt "Action description" +msgid "Activates the cell" +msgstr "Aktywuje komórkę" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:71 +msgctxt "Action name" +msgid "Select" +msgstr "Wybór" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:73 +msgctxt "Action name" +msgid "Customize" +msgstr "Dostosowanie" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:84 +msgctxt "Action description" +msgid "Selects the color" +msgstr "Wybiera kolor" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:85 +msgctxt "Action description" +msgid "Activates the color" +msgstr "Aktywuje kolor" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:86 +msgctxt "Action description" +msgid "Customizes the color" +msgstr "Dostosowuje kolor" + +#: ../gtk/a11y/gtkcomboboxaccessible.c:313 +msgctxt "Action name" +msgid "Press" +msgstr "Naciśnięcie" + +#: ../gtk/a11y/gtkcomboboxaccessible.c:322 +msgctxt "Action description" +msgid "Presses the combobox" +msgstr "Naciska pole rozwijane" + +#: ../gtk/a11y/gtkentryaccessible.c:1550 +msgctxt "Action description" +msgid "Activates the entry" +msgstr "Aktywuje wpis" + +#: ../gtk/a11y/gtkexpanderaccessible.c:290 +msgctxt "Action description" +msgid "Activates the expander" +msgstr "Aktywuje rozwijanie" + +#: ../gtk/a11y/gtkmenuitemaccessible.c:445 +msgctxt "Action description" +msgid "Clicks the menuitem" +msgstr "Klika element menu" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:140 +msgctxt "Action description" +msgid "Pops up the slider" +msgstr "Wysuwa suwak" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:142 +msgctxt "Action description" +msgid "Dismisses the slider" +msgstr "Ukrywa suwak" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:170 +msgctxt "Action name" +msgid "Popup" +msgstr "Wysunięcie" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:172 +msgctxt "Action name" +msgid "Dismiss" +msgstr "Ukrycie" + #: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" @@ -474,15 +599,20 @@ msgstr "Spinner" msgid "Provides visual indication of progress" msgstr "Dostarcza wzrokowy wskaźnik postępu" -#: ../gtk/a11y/gtkswitchaccessible.c:62 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgctxt "light switch widget" msgid "Switch" msgstr "Przełącznik" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:64 msgid "Switches between on and off states" msgstr "Przełącza między stanami \"włączone\" i \"wyłączone\"" +#: ../gtk/a11y/gtkswitchaccessible.c:110 +msgctxt "Action description" +msgid "Toggles the switch" +msgstr "Przełącza przełącznik" + #: ../gtk/deprecated/gtkcolorsel.c:425 msgid "" "Select the color you want from the outer ring. Select the darkness or " @@ -650,7 +780,7 @@ msgstr "R_ozmiar:" #. create the text entry widget #: ../gtk/deprecated/gtkfontsel.c:584 msgid "_Preview:" -msgstr "_Podgląd" +msgstr "_Podgląd:" #: ../gtk/deprecated/gtkfontsel.c:1720 ../gtk/gtkfontchooserdialog.c:183 msgid "Font Selection" @@ -864,7 +994,7 @@ msgstr "Powiązane programy" msgid "Other Applications" msgstr "Inne programy" -#: ../gtk/gtkapplication.c:1557 +#: ../gtk/gtkapplication.c:1563 #, c-format msgid "" "%s cannot quit at this time:\n" @@ -1371,15 +1501,15 @@ msgstr "_Prawy:" msgid "Paper Margins" msgstr "Marginesy papieru" -#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8591 +#: ../gtk/gtkentry.c:9128 ../gtk/gtktextview.c:8598 msgid "Input _Methods" msgstr "_Metoda wprowadzania danych" -#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8605 +#: ../gtk/gtkentry.c:9142 ../gtk/gtktextview.c:8612 msgid "_Insert Unicode Control Character" msgstr "_Wstaw znak kontrolny Unikodu" -#: ../gtk/gtkentry.c:10094 +#: ../gtk/gtkentry.c:10095 msgid "Caps Lock is on" msgstr "Klawisz Caps Lock jest włączony" @@ -1428,7 +1558,7 @@ msgstr "Klawisz Caps Lock jest włączony" msgid "Select a File" msgstr "Wybór pliku" -#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1806 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1825 msgid "Desktop" msgstr "Pulpit" @@ -1436,7 +1566,7 @@ msgstr "Pulpit" msgid "(None)" msgstr "(Brak)" -#: ../gtk/gtkfilechooserbutton.c:2046 +#: ../gtk/gtkfilechooserbutton.c:2202 msgid "Other…" msgstr "Inne…" @@ -1444,23 +1574,23 @@ msgstr "Inne…" msgid "Type name of new folder" msgstr "Proszę wprowadzić nazwę nowego katalogu" -#: ../gtk/gtkfilechooserdefault.c:957 +#: ../gtk/gtkfilechooserdefault.c:954 msgid "Could not retrieve information about the file" msgstr "Nie można pobrać informacji o pliku" -#: ../gtk/gtkfilechooserdefault.c:968 +#: ../gtk/gtkfilechooserdefault.c:965 msgid "Could not add a bookmark" msgstr "Nie można dodać zakładki" -#: ../gtk/gtkfilechooserdefault.c:979 +#: ../gtk/gtkfilechooserdefault.c:976 msgid "Could not remove bookmark" msgstr "Nie można usunąć zakładki" -#: ../gtk/gtkfilechooserdefault.c:990 +#: ../gtk/gtkfilechooserdefault.c:987 msgid "The folder could not be created" msgstr "Nie można utworzyć katalogu" -#: ../gtk/gtkfilechooserdefault.c:1003 +#: ../gtk/gtkfilechooserdefault.c:1000 msgid "" "The folder could not be created, as a file with the same name already " "exists. Try using a different name for the folder, or rename the file first." @@ -1468,16 +1598,16 @@ msgstr "" "Nie można utworzyć katalogu, ponieważ istnieje już plik o tej samej nazwie. " "Proszę użyć innej nazwy dla katalogu lub zmienić nazwę pliku." -#: ../gtk/gtkfilechooserdefault.c:1017 +#: ../gtk/gtkfilechooserdefault.c:1014 msgid "You need to choose a valid filename." msgstr "Należy wybrać prawidłową nazwę pliku." -#: ../gtk/gtkfilechooserdefault.c:1020 +#: ../gtk/gtkfilechooserdefault.c:1017 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "Nie można utworzyć pliku w %s, ponieważ nie jest katalogiem" -#: ../gtk/gtkfilechooserdefault.c:1032 +#: ../gtk/gtkfilechooserdefault.c:1029 msgid "" "You may only select folders. The item that you selected is not a folder; " "try using a different item." @@ -1485,11 +1615,11 @@ msgstr "" "Można wybierać tylko katalogi. Wybrany element nie jest katalogiem, proszę " "spróbować użyć innego elementu." -#: ../gtk/gtkfilechooserdefault.c:1042 +#: ../gtk/gtkfilechooserdefault.c:1039 msgid "Invalid file name" msgstr "Nieprawidłowa nazwa pliku" -#: ../gtk/gtkfilechooserdefault.c:1052 +#: ../gtk/gtkfilechooserdefault.c:1049 msgid "The folder contents could not be displayed" msgstr "Nie można wyświetlić zawartości katalogu" @@ -1497,194 +1627,194 @@ msgstr "Nie można wyświetlić zawartości katalogu" #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1578 +#: ../gtk/gtkfilechooserdefault.c:1575 #, c-format msgid "%1$s on %2$s" msgstr "%1$s na %2$s" -#: ../gtk/gtkfilechooserdefault.c:1727 +#: ../gtk/gtkfilechooserdefault.c:1724 msgid "Search" msgstr "Wyszukaj" -#: ../gtk/gtkfilechooserdefault.c:1751 ../gtk/gtkfilechooserdefault.c:4977 +#: ../gtk/gtkfilechooserdefault.c:1768 ../gtk/gtkfilechooserdefault.c:4996 msgid "Recently Used" msgstr "Ostatnio używane" -#: ../gtk/gtkfilechooserdefault.c:2350 +#: ../gtk/gtkfilechooserdefault.c:2369 msgid "Select which types of files are shown" msgstr "Wybór typów wyświetlanych plików" -#: ../gtk/gtkfilechooserdefault.c:2709 +#: ../gtk/gtkfilechooserdefault.c:2728 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "Dodaje zakładkę do katalogu \"%s\"" -#: ../gtk/gtkfilechooserdefault.c:2753 +#: ../gtk/gtkfilechooserdefault.c:2772 #, c-format msgid "Add the current folder to the bookmarks" msgstr "Dodaje zakładkę do bieżącego katalogu" -#: ../gtk/gtkfilechooserdefault.c:2755 +#: ../gtk/gtkfilechooserdefault.c:2774 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "Dodaje zakładki do zaznaczonych katalogów" -#: ../gtk/gtkfilechooserdefault.c:2793 +#: ../gtk/gtkfilechooserdefault.c:2812 #, c-format msgid "Remove the bookmark '%s'" msgstr "Usuwa zakładkę \"%s\"" -#: ../gtk/gtkfilechooserdefault.c:2795 +#: ../gtk/gtkfilechooserdefault.c:2814 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "Zakładka \"%s\" nie może zostać usunięta" -#: ../gtk/gtkfilechooserdefault.c:2802 ../gtk/gtkfilechooserdefault.c:3688 +#: ../gtk/gtkfilechooserdefault.c:2821 ../gtk/gtkfilechooserdefault.c:3707 msgid "Remove the selected bookmark" msgstr "Usuwa wybraną zakładkę" -#: ../gtk/gtkfilechooserdefault.c:3366 +#: ../gtk/gtkfilechooserdefault.c:3385 msgid "Remove" msgstr "Usuń" -#: ../gtk/gtkfilechooserdefault.c:3375 +#: ../gtk/gtkfilechooserdefault.c:3394 msgid "Rename…" msgstr "Zmień nazwę…" #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3539 +#: ../gtk/gtkfilechooserdefault.c:3558 msgid "Places" msgstr "Miejsca" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3596 +#: ../gtk/gtkfilechooserdefault.c:3615 msgid "_Places" msgstr "_Miejsca" -#: ../gtk/gtkfilechooserdefault.c:3676 +#: ../gtk/gtkfilechooserdefault.c:3695 msgid "Add the selected folder to the Bookmarks" msgstr "Dodaje zakładkę do wybranego katalogu" -#: ../gtk/gtkfilechooserdefault.c:3937 +#: ../gtk/gtkfilechooserdefault.c:3956 msgid "Could not select file" msgstr "Nie można wybrać pliku" -#: ../gtk/gtkfilechooserdefault.c:4162 +#: ../gtk/gtkfilechooserdefault.c:4181 msgid "_Visit this file" msgstr "_Odwiedź ten plik" -#: ../gtk/gtkfilechooserdefault.c:4165 +#: ../gtk/gtkfilechooserdefault.c:4184 msgid "_Copy file’s location" msgstr "S_kopiuj położenie pliku" -#: ../gtk/gtkfilechooserdefault.c:4168 +#: ../gtk/gtkfilechooserdefault.c:4187 msgid "_Add to Bookmarks" msgstr "_Dodaj zakładkę" -#: ../gtk/gtkfilechooserdefault.c:4175 +#: ../gtk/gtkfilechooserdefault.c:4194 msgid "Show _Hidden Files" msgstr "Wyświetlanie u_krytych plików" -#: ../gtk/gtkfilechooserdefault.c:4178 +#: ../gtk/gtkfilechooserdefault.c:4197 msgid "Show _Size Column" msgstr "_Wyświetlanie kolumny rozmiaru" -#: ../gtk/gtkfilechooserdefault.c:4403 +#: ../gtk/gtkfilechooserdefault.c:4422 msgid "Files" msgstr "Pliki" -#: ../gtk/gtkfilechooserdefault.c:4454 +#: ../gtk/gtkfilechooserdefault.c:4473 msgid "Name" msgstr "Nazwa" -#: ../gtk/gtkfilechooserdefault.c:4477 +#: ../gtk/gtkfilechooserdefault.c:4496 msgid "Size" msgstr "Rozmiar" -#: ../gtk/gtkfilechooserdefault.c:4491 +#: ../gtk/gtkfilechooserdefault.c:4510 msgid "Modified" msgstr "Zmodyfikowany" #. Label -#: ../gtk/gtkfilechooserdefault.c:4584 +#: ../gtk/gtkfilechooserdefault.c:4603 msgid "_Name:" msgstr "_Nazwa:" -#: ../gtk/gtkfilechooserdefault.c:4815 +#: ../gtk/gtkfilechooserdefault.c:4834 msgid "Type a file name" msgstr "Nazwa pliku" -#: ../gtk/gtkfilechooserdefault.c:4862 ../gtk/gtkfilechooserdefault.c:4873 +#: ../gtk/gtkfilechooserdefault.c:4881 ../gtk/gtkfilechooserdefault.c:4892 msgid "Please select a folder below" msgstr "Proszę wybrać katalog poniżej" -#: ../gtk/gtkfilechooserdefault.c:4868 +#: ../gtk/gtkfilechooserdefault.c:4887 msgid "Please type a file name" msgstr "Proszę wpisać nazwę pliku" #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4939 +#: ../gtk/gtkfilechooserdefault.c:4958 msgid "Create Fo_lder" msgstr "Utwórz kata_log" -#: ../gtk/gtkfilechooserdefault.c:4987 +#: ../gtk/gtkfilechooserdefault.c:5006 msgid "Search:" msgstr "Wyszukiwanie:" -#: ../gtk/gtkfilechooserdefault.c:5038 +#: ../gtk/gtkfilechooserdefault.c:5057 msgid "_Location:" msgstr "Położ_enie:" -#: ../gtk/gtkfilechooserdefault.c:5488 +#: ../gtk/gtkfilechooserdefault.c:5507 msgid "Save in _folder:" msgstr "Zapis w katal_ogu:" -#: ../gtk/gtkfilechooserdefault.c:5490 +#: ../gtk/gtkfilechooserdefault.c:5509 msgid "Create in _folder:" msgstr "Utworzenie w k_atalogu:" -#: ../gtk/gtkfilechooserdefault.c:6515 +#: ../gtk/gtkfilechooserdefault.c:6521 #, c-format msgid "Could not read the contents of %s" msgstr "Nie można odczytać zawartości %s" -#: ../gtk/gtkfilechooserdefault.c:6519 +#: ../gtk/gtkfilechooserdefault.c:6525 msgid "Could not read the contents of the folder" msgstr "Nie można odczytać zawartości katalogu" -#: ../gtk/gtkfilechooserdefault.c:6612 ../gtk/gtkfilechooserdefault.c:6680 -#: ../gtk/gtkfilechooserdefault.c:6860 +#: ../gtk/gtkfilechooserdefault.c:6618 ../gtk/gtkfilechooserdefault.c:6686 +#: ../gtk/gtkfilechooserdefault.c:6866 msgid "Unknown" msgstr "Nieznany" -#: ../gtk/gtkfilechooserdefault.c:6627 +#: ../gtk/gtkfilechooserdefault.c:6633 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6629 +#: ../gtk/gtkfilechooserdefault.c:6635 msgid "Yesterday at %H:%M" msgstr "Wczoraj o %H:%M" -#: ../gtk/gtkfilechooserdefault.c:7331 +#: ../gtk/gtkfilechooserdefault.c:7337 msgid "Cannot change to folder because it is not local" msgstr "Nie można przejść do katalogu, ponieważ nie jest on lokalny" -#: ../gtk/gtkfilechooserdefault.c:7928 ../gtk/gtkfilechooserdefault.c:7949 +#: ../gtk/gtkfilechooserdefault.c:7934 ../gtk/gtkfilechooserdefault.c:7955 #, c-format msgid "Shortcut %s already exists" msgstr "Skrót %s już istnieje" -#: ../gtk/gtkfilechooserdefault.c:8039 +#: ../gtk/gtkfilechooserdefault.c:8045 #, c-format msgid "Shortcut %s does not exist" msgstr "Skrót %s nie istnieje" -#: ../gtk/gtkfilechooserdefault.c:8286 ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8292 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "Plik o nazwie \"%s\" już istnieje. Zastąpić go?" -#: ../gtk/gtkfilechooserdefault.c:8289 ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8295 ../gtk/gtkprintunixdialog.c:552 #, c-format msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." @@ -1692,15 +1822,15 @@ msgstr "" "Plik już istnieje w \"%s\". Zastąpienie go spowoduje nadpisanie jego " "zawartości." -#: ../gtk/gtkfilechooserdefault.c:8294 ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8300 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "_Zastąp" -#: ../gtk/gtkfilechooserdefault.c:9101 +#: ../gtk/gtkfilechooserdefault.c:9107 msgid "Could not start the search process" msgstr "Nie można rozpocząć procesu wyszukiwania" -#: ../gtk/gtkfilechooserdefault.c:9102 +#: ../gtk/gtkfilechooserdefault.c:9108 msgid "" "The program was not able to create a connection to the indexer daemon. " "Please make sure it is running." @@ -1708,11 +1838,11 @@ msgstr "" "Nie można było utworzyć połączenia z usługą indeksowania. Proszę się " "upewnić, czy usługa jest uruchomiona." -#: ../gtk/gtkfilechooserdefault.c:9116 +#: ../gtk/gtkfilechooserdefault.c:9122 msgid "Could not send the search request" msgstr "Nie można wysłać żądania wyszukiwania" -#: ../gtk/gtkfilechooserdefault.c:9726 +#: ../gtk/gtkfilechooserdefault.c:9732 #, c-format msgid "Could not mount %s" msgstr "Nie można zamontować %s" @@ -1752,12 +1882,12 @@ msgstr "Wyszukiwanie nazwy czcionki" msgid "Font Family" msgstr "Rodzina czcionek" -#: ../gtk/gtkicontheme.c:1931 +#: ../gtk/gtkicontheme.c:1935 #, c-format msgid "Icon '%s' not present in theme" msgstr "Brak ikony \"%s\" w motywie" -#: ../gtk/gtkicontheme.c:3462 +#: ../gtk/gtkicontheme.c:3555 msgid "Failed to load icon" msgstr "Wczytanie ikony się nie powiodło" @@ -2490,7 +2620,9 @@ msgstr "_O:" msgid "" "Specify the time of print,\n" " e.g. 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm" -msgstr "Określa czas drukowania, np: 15:30, 14:15:20, 11:46:30" +msgstr "" +"Określa czas drukowania,\n" +"np: 15:30, 14:15:20, 11:46:30" #: ../gtk/gtkprintunixdialog.c:3617 msgid "Time of print" @@ -2529,31 +2661,31 @@ msgstr "_Po:" msgid "Job" msgstr "Zadanie" -#: ../gtk/gtkprintunixdialog.c:3753 +#: ../gtk/gtkprintunixdialog.c:3751 msgid "Advanced" msgstr "Zaawansowane" #. Translators: this will appear as tab label in print dialog. -#: ../gtk/gtkprintunixdialog.c:3791 +#: ../gtk/gtkprintunixdialog.c:3789 msgid "Image Quality" msgstr "Jakość obrazu" #. Translators: this will appear as tab label in print dialog. -#: ../gtk/gtkprintunixdialog.c:3795 +#: ../gtk/gtkprintunixdialog.c:3793 msgid "Color" msgstr "Kolor" #. Translators: this will appear as tab label in print dialog. #. It's a typographical term, as in "Binding and finishing" -#: ../gtk/gtkprintunixdialog.c:3800 +#: ../gtk/gtkprintunixdialog.c:3798 msgid "Finishing" msgstr "Kończenie" -#: ../gtk/gtkprintunixdialog.c:3810 +#: ../gtk/gtkprintunixdialog.c:3808 msgid "Some of the settings in the dialog conflict" msgstr "Część ustawień w oknie jest sprzecznych" -#: ../gtk/gtkprintunixdialog.c:3836 +#: ../gtk/gtkprintunixdialog.c:3834 msgid "Print" msgstr "Wydruk" @@ -2642,15 +2774,15 @@ msgctxt "recent menu label" msgid "%d. %s" msgstr "%d. %s" -#: ../gtk/gtkrecentmanager.c:1010 ../gtk/gtkrecentmanager.c:1023 -#: ../gtk/gtkrecentmanager.c:1160 ../gtk/gtkrecentmanager.c:1170 -#: ../gtk/gtkrecentmanager.c:1222 ../gtk/gtkrecentmanager.c:1231 -#: ../gtk/gtkrecentmanager.c:1246 +#: ../gtk/gtkrecentmanager.c:1035 ../gtk/gtkrecentmanager.c:1048 +#: ../gtk/gtkrecentmanager.c:1185 ../gtk/gtkrecentmanager.c:1195 +#: ../gtk/gtkrecentmanager.c:1247 ../gtk/gtkrecentmanager.c:1256 +#: ../gtk/gtkrecentmanager.c:1271 #, c-format msgid "Unable to find an item with URI '%s'" msgstr "Nie można odnaleźć elementu z adresem URI \"%s\"" -#: ../gtk/gtkrecentmanager.c:2446 +#: ../gtk/gtkrecentmanager.c:2471 #, c-format msgid "No registered application with name '%s' for item with URI '%s' found" msgstr "" @@ -3296,7 +3428,7 @@ msgid "" "Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001" msgstr "" "Dane serializowane są nieprawidłowo rozwinięte. Pierwsza sekcja nie jest " -"GTKEXTBUFFERCONTENTS-0001" +"GTKTEXTBUFFERCONTENTS-0001" #: ../gtk/gtktextutil.c:58 msgid "LRM _Left-to-right mark" From a9cf3995a6fc643697cbf7166e70b13b9d4555dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20=C4=8Cernock=C3=BD?= Date: Sun, 17 Feb 2013 20:06:53 +0100 Subject: [PATCH 085/208] Updated Czech translation --- po/cs.po | 571 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 360 insertions(+), 211 deletions(-) diff --git a/po/cs.po b/po/cs.po index 7ff2ba1525..1f81f9412e 100644 --- a/po/cs.po +++ b/po/cs.po @@ -3,6 +3,7 @@ # Copyright (C) 2003, 2004, 2005 Miloslav Trmac . # Copyright (C) 2006 Lukas Novotny . # This file is distributed under the same license as the gtk+ package. +# # Stanislav Brabec , 1998. # Jiří Pavlovský , 1998. # Jiří Lebl , 2002. @@ -11,22 +12,23 @@ # Jakub Friedl , 2006. # Lukas Novotny , 2006. # Petr Kovar , 2007, 2008, 2009, 2010, 2011, 2012. -# Marek Černocký , 2012. +# Marek Černocký , 2012, 2013. +# msgid "" msgstr "" "Project-Id-Version: gtk+\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%" -"2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-09-23 23:34+0000\n" -"PO-Revision-Date: 2012-09-24 17:17+0200\n" -"Last-Translator: Petr Kovar \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" +"%2b&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-02-14 00:13+0000\n" +"PO-Revision-Date: 2013-02-17 19:59+0100\n" +"Last-Translator: Marek Černocký \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Virtaal 0.7.1\n" +"X-Generator: Gtranslator 2.91.6\n" "X-Project-Style: gnome\n" #: ../gdk/gdk.c:155 @@ -464,12 +466,152 @@ msgstr[0] "Otevírání %d položky" msgstr[1] "Otevírání %d položek" msgstr[2] "Otevírání %d položek" -#: ../gtk/a11y/gtkspinneraccessible.c:40 +#: ../gtk/a11y/gtkbooleancellaccessible.c:43 +msgctxt "Action description" +msgid "Toggles the cell" +msgstr "" + +#: ../gtk/a11y/gtkbooleancellaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:101 +msgctxt "Action name" +msgid "Toggle" +msgstr "" + +#: ../gtk/a11y/gtkbuttonaccessible.c:341 +#: ../gtk/a11y/gtkmenuitemaccessible.c:436 +msgctxt "Action name" +msgid "Click" +msgstr "" + +#: ../gtk/a11y/gtkbuttonaccessible.c:350 +msgctxt "Action description" +msgid "Clicks the button" +msgstr "" + +#: ../gtk/a11y/gtkcellaccessible.c:258 +msgctxt "Action name" +msgid "Expand or contract" +msgstr "" + +#: ../gtk/a11y/gtkcellaccessible.c:260 +#, fuzzy +#| msgctxt "Stock label" +#| msgid "_Edit" +msgctxt "Action name" +msgid "Edit" +msgstr "_Upravit" + +#: ../gtk/a11y/gtkcellaccessible.c:262 +#: ../gtk/a11y/gtkcolorswatchaccessible.c:72 +#: ../gtk/a11y/gtkentryaccessible.c:1541 +#: ../gtk/a11y/gtkexpanderaccessible.c:281 +msgctxt "Action name" +msgid "Activate" +msgstr "" + +#: ../gtk/a11y/gtkcellaccessible.c:275 +msgctxt "Action description" +msgid "Expands or contracts the row in the tree view containing this cell" +msgstr "" + +#: ../gtk/a11y/gtkcellaccessible.c:277 +msgctxt "Action description" +msgid "Creates a widget in which the contents of the cell can be edited" +msgstr "" + +#: ../gtk/a11y/gtkcellaccessible.c:279 +msgctxt "Action description" +msgid "Activates the cell" +msgstr "" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:71 +#, fuzzy +#| msgid "_Select" +msgctxt "Action name" +msgid "Select" +msgstr "_Vybrat" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:73 +#, fuzzy +#| msgid "_Customize" +msgctxt "Action name" +msgid "Customize" +msgstr "_Upravit" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:84 +#, fuzzy +#| msgid "Select a Color" +msgctxt "Action description" +msgid "Selects the color" +msgstr "Vyberte barvu" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:85 +#, fuzzy +#| msgid "Brightness of the color." +msgctxt "Action description" +msgid "Activates the color" +msgstr "Jas barvy." + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:86 +#, fuzzy +#| msgid "Custom color %d: %s" +msgctxt "Action description" +msgid "Customizes the color" +msgstr "Vlastní barva %d: %s" + +#: ../gtk/a11y/gtkcomboboxaccessible.c:313 +msgctxt "Action name" +msgid "Press" +msgstr "" + +#: ../gtk/a11y/gtkcomboboxaccessible.c:322 +#, fuzzy +#| msgid "Decreases the volume" +msgctxt "Action description" +msgid "Presses the combobox" +msgstr "Sníží hlasitost" + +#: ../gtk/a11y/gtkentryaccessible.c:1550 +msgctxt "Action description" +msgid "Activates the entry" +msgstr "" + +#: ../gtk/a11y/gtkexpanderaccessible.c:290 +msgctxt "Action description" +msgid "Activates the expander" +msgstr "" + +#: ../gtk/a11y/gtkmenuitemaccessible.c:445 +msgctxt "Action description" +msgid "Clicks the menuitem" +msgstr "" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:140 +msgctxt "Action description" +msgid "Pops up the slider" +msgstr "" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:142 +msgctxt "Action description" +msgid "Dismisses the slider" +msgstr "" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:170 +msgctxt "Action name" +msgid "Popup" +msgstr "" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:172 +msgctxt "Action name" +msgid "Dismiss" +msgstr "" + +#: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" msgstr "Animace průběhu" -#: ../gtk/a11y/gtkspinneraccessible.c:41 +#: ../gtk/a11y/gtkspinneraccessible.c:40 msgid "Provides visual indication of progress" msgstr "Poskytuje vizuální indikaci průběhu" @@ -482,6 +624,11 @@ msgstr "Přepnout" msgid "Switches between on and off states" msgstr "Přepíná mezi stavem zapnuto a vypnuto" +#: ../gtk/a11y/gtkswitchaccessible.c:110 +msgctxt "Action description" +msgid "Toggles the switch" +msgstr "" + #: ../gtk/deprecated/gtkcolorsel.c:425 msgid "" "Select the color you want from the outer ring. Select the darkness or " @@ -688,27 +835,27 @@ msgid "Could not show link" msgstr "Nelze zobrazit odkaz" #: ../gtk/gtkaboutdialog.c:1017 -msgid "Homepage" -msgstr "Domovská stránka" +msgid "Website" +msgstr "" #: ../gtk/gtkaboutdialog.c:1071 #, c-format msgid "About %s" msgstr "O aplikaci %s" -#: ../gtk/gtkaboutdialog.c:2399 +#: ../gtk/gtkaboutdialog.c:2398 msgid "Created by" msgstr "Vytvořili" -#: ../gtk/gtkaboutdialog.c:2402 +#: ../gtk/gtkaboutdialog.c:2401 msgid "Documented by" msgstr "Zdokumentovali" -#: ../gtk/gtkaboutdialog.c:2412 +#: ../gtk/gtkaboutdialog.c:2411 msgid "Translated by" msgstr "Přeložili" -#: ../gtk/gtkaboutdialog.c:2417 +#: ../gtk/gtkaboutdialog.c:2416 msgid "Artwork by" msgstr "Grafika" @@ -783,7 +930,9 @@ msgid "Backslash" msgstr "Zpětné lomítko" #: ../gtk/gtkappchooserbutton.c:290 -msgid "Other application..." +#, fuzzy +#| msgid "Other application..." +msgid "Other application…" msgstr "Další aplikace…" #: ../gtk/gtkappchooserdialog.c:137 @@ -791,7 +940,6 @@ msgid "Failed to look for applications online" msgstr "Vyhledání aplikací online se nezdařilo" #: ../gtk/gtkappchooserdialog.c:188 -#| msgid "Find applications online" msgid "_Find applications online" msgstr "_Vyhledat aplikace online" @@ -814,7 +962,7 @@ msgstr "Nelze nalézt aplikaci" msgid "Select an application to open \"%s\"" msgstr "Vyberte aplikaci k zobrazení souboru „%s“" -#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:654 +#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:657 #, c-format msgid "No applications available to open \"%s\"" msgstr "K zobrazení souboru „%s“ nejsou k dispozici žádné aplikace" @@ -846,23 +994,23 @@ msgstr "Zapomenout asociaci" msgid "Show other applications" msgstr "Zobrazit další aplikace" -#: ../gtk/gtkappchooserwidget.c:603 +#: ../gtk/gtkappchooserwidget.c:606 msgid "Default Application" msgstr "Výchozí aplikace" -#: ../gtk/gtkappchooserwidget.c:741 +#: ../gtk/gtkappchooserwidget.c:744 msgid "Recommended Applications" msgstr "Doporučené aplikace" -#: ../gtk/gtkappchooserwidget.c:756 +#: ../gtk/gtkappchooserwidget.c:759 msgid "Related Applications" msgstr "Související aplikace" -#: ../gtk/gtkappchooserwidget.c:770 +#: ../gtk/gtkappchooserwidget.c:773 msgid "Other Applications" msgstr "Další aplikace" -#: ../gtk/gtkapplication.c:1556 +#: ../gtk/gtkapplication.c:1557 #, c-format msgid "" "%s cannot quit at this time:\n" @@ -1025,8 +1173,10 @@ msgstr "Neplatné" #. * an accelerator when the cell is clicked to change the #. * acelerator. #. -#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:745 -msgid "New accelerator..." +#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 +#, fuzzy +#| msgid "New accelerator..." +msgid "New accelerator…" msgstr "Nová klávesová zkratka…" #: ../gtk/gtkcellrendererprogress.c:372 ../gtk/gtkcellrendererprogress.c:462 @@ -1247,7 +1397,7 @@ msgstr "Vlastní" msgid "Create custom color" msgstr "Vytvořit vlastní barvu" -#: ../gtk/gtkcolorchooserwidget.c:543 +#: ../gtk/gtkcolorchooserwidget.c:542 #, c-format msgid "Custom color %d: %s" msgstr "Vlastní barva %d: %s" @@ -1328,7 +1478,9 @@ msgid "mm" msgstr "mm" #: ../gtk/gtkcustompaperunixdialog.c:605 -msgid "Margins from Printer..." +#, fuzzy +#| msgid "Margins from Printer..." +msgid "Margins from Printer…" msgstr "Okraje z tiskárny…" #: ../gtk/gtkcustompaperunixdialog.c:771 @@ -1368,15 +1520,15 @@ msgstr "P_ravý:" msgid "Paper Margins" msgstr "Okraje papíru" -#: ../gtk/gtkentry.c:9140 ../gtk/gtktextview.c:8583 +#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8598 msgid "Input _Methods" msgstr "Vstupní _metody" -#: ../gtk/gtkentry.c:9154 ../gtk/gtktextview.c:8597 +#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8612 msgid "_Insert Unicode Control Character" msgstr "Vloži_t řídící znak Unicode" -#: ../gtk/gtkentry.c:10107 +#: ../gtk/gtkentry.c:10094 msgid "Caps Lock is on" msgstr "Funkce Caps Lock je zapnuta" @@ -1425,7 +1577,7 @@ msgstr "Funkce Caps Lock je zapnuta" msgid "Select a File" msgstr "Vyberte soubor" -#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1817 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1825 msgid "Desktop" msgstr "Pracovní plocha" @@ -1433,31 +1585,33 @@ msgstr "Pracovní plocha" msgid "(None)" msgstr "(Žádný)" -#: ../gtk/gtkfilechooserbutton.c:2046 -msgid "Other..." +#: ../gtk/gtkfilechooserbutton.c:2202 +#, fuzzy +#| msgid "Other..." +msgid "Other…" msgstr "Jiné…" #: ../gtk/gtkfilechooserdefault.c:152 msgid "Type name of new folder" msgstr "Zadání názvu nové složky" -#: ../gtk/gtkfilechooserdefault.c:968 +#: ../gtk/gtkfilechooserdefault.c:954 msgid "Could not retrieve information about the file" msgstr "O souboru nelze získat informace" -#: ../gtk/gtkfilechooserdefault.c:979 +#: ../gtk/gtkfilechooserdefault.c:965 msgid "Could not add a bookmark" msgstr "Nelze přidat záložku" -#: ../gtk/gtkfilechooserdefault.c:990 +#: ../gtk/gtkfilechooserdefault.c:976 msgid "Could not remove bookmark" msgstr "Nelze odstranit záložku" -#: ../gtk/gtkfilechooserdefault.c:1001 +#: ../gtk/gtkfilechooserdefault.c:987 msgid "The folder could not be created" msgstr "Složku nelze vytvořit" -#: ../gtk/gtkfilechooserdefault.c:1014 +#: ../gtk/gtkfilechooserdefault.c:1000 msgid "" "The folder could not be created, as a file with the same name already " "exists. Try using a different name for the folder, or rename the file first." @@ -1465,16 +1619,16 @@ msgstr "" "Složku nelze vytvořit, protože již existuje soubor se stejným názvem. Zkuste " "pro složku použít jiný název, nebo nejprve přejmenovat soubor." -#: ../gtk/gtkfilechooserdefault.c:1028 +#: ../gtk/gtkfilechooserdefault.c:1014 msgid "You need to choose a valid filename." msgstr "Vybraný název souboru musí být platný." -#: ../gtk/gtkfilechooserdefault.c:1031 +#: ../gtk/gtkfilechooserdefault.c:1017 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "V %s nelze vytvořit soubor, jelikož se nejedná o složku" -#: ../gtk/gtkfilechooserdefault.c:1043 +#: ../gtk/gtkfilechooserdefault.c:1029 msgid "" "You may only select folders. The item that you selected is not a folder; " "try using a different item." @@ -1482,11 +1636,11 @@ msgstr "" "Vybrat lze pouze složky. Vybraná položka není složkou; zkuste použít jinou " "položku." -#: ../gtk/gtkfilechooserdefault.c:1053 +#: ../gtk/gtkfilechooserdefault.c:1039 msgid "Invalid file name" msgstr "Neplatný název souboru" -#: ../gtk/gtkfilechooserdefault.c:1063 +#: ../gtk/gtkfilechooserdefault.c:1049 msgid "The folder contents could not be displayed" msgstr "Obsah složky nelze zobrazit" @@ -1494,208 +1648,210 @@ msgstr "Obsah složky nelze zobrazit" #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1589 +#: ../gtk/gtkfilechooserdefault.c:1575 #, c-format msgid "%1$s on %2$s" msgstr "%1$s na %2$s" -#: ../gtk/gtkfilechooserdefault.c:1738 +#: ../gtk/gtkfilechooserdefault.c:1724 msgid "Search" msgstr "Hledat" -#: ../gtk/gtkfilechooserdefault.c:1762 ../gtk/gtkfilechooserdefault.c:4988 +#: ../gtk/gtkfilechooserdefault.c:1768 ../gtk/gtkfilechooserdefault.c:4996 msgid "Recently Used" msgstr "Naposledy použité" -#: ../gtk/gtkfilechooserdefault.c:2361 +#: ../gtk/gtkfilechooserdefault.c:2369 msgid "Select which types of files are shown" msgstr "Výběr zobrazených typů souborů" -#: ../gtk/gtkfilechooserdefault.c:2720 +#: ../gtk/gtkfilechooserdefault.c:2728 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "Přidá složku „%s“ mezi záložky" -#: ../gtk/gtkfilechooserdefault.c:2764 +#: ../gtk/gtkfilechooserdefault.c:2772 #, c-format msgid "Add the current folder to the bookmarks" msgstr "Přidá aktuální složku mezi záložky" -#: ../gtk/gtkfilechooserdefault.c:2766 +#: ../gtk/gtkfilechooserdefault.c:2774 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "Přidá zvolené složky mezi záložky" -#: ../gtk/gtkfilechooserdefault.c:2804 +#: ../gtk/gtkfilechooserdefault.c:2812 #, c-format msgid "Remove the bookmark '%s'" msgstr "Odstraní záložku „%s“" -#: ../gtk/gtkfilechooserdefault.c:2806 +#: ../gtk/gtkfilechooserdefault.c:2814 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "Záložka „%s“ nemůže být odstraněna" -#: ../gtk/gtkfilechooserdefault.c:2813 ../gtk/gtkfilechooserdefault.c:3699 +#: ../gtk/gtkfilechooserdefault.c:2821 ../gtk/gtkfilechooserdefault.c:3707 msgid "Remove the selected bookmark" msgstr "Odstraní zvolenou záložku" -#: ../gtk/gtkfilechooserdefault.c:3377 +#: ../gtk/gtkfilechooserdefault.c:3385 msgid "Remove" msgstr "Odstranit" -#: ../gtk/gtkfilechooserdefault.c:3386 -msgid "Rename..." +#: ../gtk/gtkfilechooserdefault.c:3394 +#, fuzzy +#| msgid "Rename..." +msgid "Rename…" msgstr "Přejmenovat…" #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3550 +#: ../gtk/gtkfilechooserdefault.c:3558 msgid "Places" msgstr "Místa" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3607 +#: ../gtk/gtkfilechooserdefault.c:3615 msgid "_Places" msgstr "_Místa" -#: ../gtk/gtkfilechooserdefault.c:3687 +#: ../gtk/gtkfilechooserdefault.c:3695 msgid "Add the selected folder to the Bookmarks" msgstr "Přidá zvolenou složku mezi záložky" -#: ../gtk/gtkfilechooserdefault.c:3948 +#: ../gtk/gtkfilechooserdefault.c:3956 msgid "Could not select file" msgstr "Nelze vybrat soubor" -#: ../gtk/gtkfilechooserdefault.c:4173 +#: ../gtk/gtkfilechooserdefault.c:4181 msgid "_Visit this file" msgstr "Podí_vat se na tento soubor" -#: ../gtk/gtkfilechooserdefault.c:4176 +#: ../gtk/gtkfilechooserdefault.c:4184 msgid "_Copy file’s location" msgstr "Kopírovat _umístění souboru" -#: ../gtk/gtkfilechooserdefault.c:4179 +#: ../gtk/gtkfilechooserdefault.c:4187 msgid "_Add to Bookmarks" msgstr "_Přidat mezi záložky" -#: ../gtk/gtkfilechooserdefault.c:4186 +#: ../gtk/gtkfilechooserdefault.c:4194 msgid "Show _Hidden Files" msgstr "Zobrazovat _skryté soubory" -#: ../gtk/gtkfilechooserdefault.c:4189 +#: ../gtk/gtkfilechooserdefault.c:4197 msgid "Show _Size Column" msgstr "Z_obrazovat sloupec Velikost" -#: ../gtk/gtkfilechooserdefault.c:4414 +#: ../gtk/gtkfilechooserdefault.c:4422 msgid "Files" msgstr "Soubory" -#: ../gtk/gtkfilechooserdefault.c:4465 +#: ../gtk/gtkfilechooserdefault.c:4473 msgid "Name" msgstr "Název" -#: ../gtk/gtkfilechooserdefault.c:4488 +#: ../gtk/gtkfilechooserdefault.c:4496 msgid "Size" msgstr "Velikost" -#: ../gtk/gtkfilechooserdefault.c:4502 +#: ../gtk/gtkfilechooserdefault.c:4510 msgid "Modified" msgstr "Změněno" #. Label -#: ../gtk/gtkfilechooserdefault.c:4595 +#: ../gtk/gtkfilechooserdefault.c:4603 msgid "_Name:" msgstr "_Název:" -#: ../gtk/gtkfilechooserdefault.c:4826 +#: ../gtk/gtkfilechooserdefault.c:4834 msgid "Type a file name" msgstr "Zadání názvu souboru" -#: ../gtk/gtkfilechooserdefault.c:4873 ../gtk/gtkfilechooserdefault.c:4884 +#: ../gtk/gtkfilechooserdefault.c:4881 ../gtk/gtkfilechooserdefault.c:4892 msgid "Please select a folder below" msgstr "Vyberte prosím složku níže" -#: ../gtk/gtkfilechooserdefault.c:4879 +#: ../gtk/gtkfilechooserdefault.c:4887 msgid "Please type a file name" msgstr "Zadejte prosím název souboru" #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4950 +#: ../gtk/gtkfilechooserdefault.c:4958 msgid "Create Fo_lder" msgstr "V_ytvořit složku" -#: ../gtk/gtkfilechooserdefault.c:4998 +#: ../gtk/gtkfilechooserdefault.c:5006 msgid "Search:" msgstr "Hledat:" -#: ../gtk/gtkfilechooserdefault.c:5049 +#: ../gtk/gtkfilechooserdefault.c:5057 msgid "_Location:" msgstr "_Umístění:" -#: ../gtk/gtkfilechooserdefault.c:5500 +#: ../gtk/gtkfilechooserdefault.c:5507 msgid "Save in _folder:" msgstr "U_ložit do složky:" -#: ../gtk/gtkfilechooserdefault.c:5502 +#: ../gtk/gtkfilechooserdefault.c:5509 msgid "Create in _folder:" msgstr "Vytvořit ve složc_e:" -#: ../gtk/gtkfilechooserdefault.c:6589 +#: ../gtk/gtkfilechooserdefault.c:6521 #, c-format msgid "Could not read the contents of %s" msgstr "Nelze přečíst obsah %s" -#: ../gtk/gtkfilechooserdefault.c:6593 +#: ../gtk/gtkfilechooserdefault.c:6525 msgid "Could not read the contents of the folder" msgstr "Nelze přečíst obsah složky" -#: ../gtk/gtkfilechooserdefault.c:6686 ../gtk/gtkfilechooserdefault.c:6754 -#: ../gtk/gtkfilechooserdefault.c:6934 +#: ../gtk/gtkfilechooserdefault.c:6618 ../gtk/gtkfilechooserdefault.c:6686 +#: ../gtk/gtkfilechooserdefault.c:6866 msgid "Unknown" msgstr "Neznámé" -#: ../gtk/gtkfilechooserdefault.c:6701 +#: ../gtk/gtkfilechooserdefault.c:6633 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6703 +#: ../gtk/gtkfilechooserdefault.c:6635 msgid "Yesterday at %H:%M" msgstr "Včera v %H:%M" -#: ../gtk/gtkfilechooserdefault.c:7405 +#: ../gtk/gtkfilechooserdefault.c:7337 msgid "Cannot change to folder because it is not local" msgstr "Nelze přejít do složky, protože není místní" -#: ../gtk/gtkfilechooserdefault.c:8009 ../gtk/gtkfilechooserdefault.c:8030 +#: ../gtk/gtkfilechooserdefault.c:7934 ../gtk/gtkfilechooserdefault.c:7955 #, c-format msgid "Shortcut %s already exists" msgstr "Zkratka %s již existuje" -#: ../gtk/gtkfilechooserdefault.c:8120 +#: ../gtk/gtkfilechooserdefault.c:8045 #, c-format msgid "Shortcut %s does not exist" msgstr "Zkratka %s neexistuje" -#: ../gtk/gtkfilechooserdefault.c:8366 ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8292 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "Soubor nazvaný „%s“ již existuje. Chcete jej nahradit?" -#: ../gtk/gtkfilechooserdefault.c:8369 ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8295 ../gtk/gtkprintunixdialog.c:552 #, c-format msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "V „%s“ již tento soubor existuje. Jeho nahrazení přepíše celý obsah." -#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8300 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "Na_hradit" -#: ../gtk/gtkfilechooserdefault.c:9181 +#: ../gtk/gtkfilechooserdefault.c:9107 msgid "Could not start the search process" msgstr "Nelze spustit proces hledání" -#: ../gtk/gtkfilechooserdefault.c:9182 +#: ../gtk/gtkfilechooserdefault.c:9108 msgid "" "The program was not able to create a connection to the indexer daemon. " "Please make sure it is running." @@ -1703,11 +1859,11 @@ msgstr "" "Program nebyl schopen vytvořit spojení s indexovacím démonem. Ujistěte se " "prosím, že běží." -#: ../gtk/gtkfilechooserdefault.c:9196 +#: ../gtk/gtkfilechooserdefault.c:9122 msgid "Could not send the search request" msgstr "Nelze odeslat vyhledávací požadavek" -#: ../gtk/gtkfilechooserdefault.c:9806 +#: ../gtk/gtkfilechooserdefault.c:9732 #, c-format msgid "Could not mount %s" msgstr "Nelze připojit %s" @@ -1747,12 +1903,12 @@ msgstr "Hledat název písma" msgid "Font Family" msgstr "Rodina písma" -#: ../gtk/gtkicontheme.c:1627 +#: ../gtk/gtkicontheme.c:1931 #, c-format msgid "Icon '%s' not present in theme" msgstr "V motivu není obsažena ikona „%s“" -#: ../gtk/gtkicontheme.c:3137 +#: ../gtk/gtkicontheme.c:3462 msgid "Failed to load icon" msgstr "Nelze načíst ikonu" @@ -1777,22 +1933,24 @@ msgid "System (%s)" msgstr "Systémová (%s)" #. Open Link -#: ../gtk/gtklabel.c:6224 +#: ../gtk/gtklabel.c:6139 msgid "_Open Link" msgstr "_Otevřít odkaz" #. Copy Link Address -#: ../gtk/gtklabel.c:6236 +#: ../gtk/gtklabel.c:6151 msgid "Copy _Link Address" msgstr "Ko_pírovat adresu odkazu" -#: ../gtk/gtk-launch.c:69 -msgid "APPLICATION [URI...] - launch an APPLICATION with URI." +#: ../gtk/gtk-launch.c:71 +#, fuzzy +#| msgid "APPLICATION [URI...] - launch an APPLICATION with URI." +msgid "APPLICATION [URI…] — launch an APPLICATION with URI." msgstr "APLIKACE [URI...] - spustit APLIKACI s URI." #. Translators: this message will appear after the usage string #. and before the list of options. -#: ../gtk/gtk-launch.c:73 +#: ../gtk/gtk-launch.c:75 msgid "" "Launch specified application by its desktop file info\n" "optionally passing list of URIs as arguments." @@ -1800,36 +1958,39 @@ msgstr "" "Spustit zadanou aplikaci s informacemi ze souboru desktop,\n" "volitelně předat seznam URI jako argumenty." -#: ../gtk/gtk-launch.c:85 +#: ../gtk/gtk-launch.c:87 #, c-format -#| msgid "Error parsing option --gdk-debug" msgid "Error parsing commandline options: %s\n" msgstr "Chyba při analýze voleb příkazové řádky: %s\n" -#: ../gtk/gtk-launch.c:87 ../gtk/gtk-launch.c:100 +#: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102 #, c-format msgid "Try \"%s --help\" for more information." -msgstr "Více informací viz \"%s --help\"." +msgstr "Více informací viz „%s --help“." #. Translators: the %s is the program name. This error message #. means the user is calling gtk-launch without any argument. -#: ../gtk/gtk-launch.c:98 +#: ../gtk/gtk-launch.c:100 #, c-format -#| msgid "Find applications online" msgid "%s: missing application name" msgstr "%s: chybí název aplikace" +#: ../gtk/gtk-launch.c:121 +#, c-format +msgid "Creating AppInfo from id not supported on non unix operating systems" +msgstr "" +"Vytvoření AppInfo z ID není podporováno na jiných než unixových systémech" + #. Translators: the first %s is the program name, the second one #. is the application name. -#: ../gtk/gtk-launch.c:122 +#: ../gtk/gtk-launch.c:129 #, c-format -#| msgid "Could not run application" msgid "%s: no such application %s" msgstr "%s: neexistuje žádná aplikace s názvem %s" #. Translators: the first %s is the program name, the second one #. is the error message. -#: ../gtk/gtk-launch.c:140 +#: ../gtk/gtk-launch.c:147 #, c-format msgid "%s: error launching application: %s\n" msgstr "%s: chyba při spouštění aplikace: %s\n" @@ -1904,20 +2065,20 @@ msgstr "Ladicí příznaky GTK+, jejichž nastavení zruší" #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: ../gtk/gtkmain.c:707 +#: ../gtk/gtkmain.c:703 msgid "default:LTR" msgstr "default:LTR" -#: ../gtk/gtkmain.c:775 +#: ../gtk/gtkmain.c:768 #, c-format msgid "Cannot open display: %s" msgstr "Nelze otevřít displej: %s" -#: ../gtk/gtkmain.c:841 +#: ../gtk/gtkmain.c:834 msgid "GTK+ Options" msgstr "Přepínače GTK+" -#: ../gtk/gtkmain.c:841 +#: ../gtk/gtkmain.c:834 msgid "Show GTK+ Options" msgstr "Zobrazit přepínače GTK+" @@ -1926,12 +2087,10 @@ msgid "Co_nnect" msgstr "_Připojit" #: ../gtk/gtkmountoperation.c:609 -#| msgid "Co_nnect" msgid "Connect As" msgstr "Připojit se jako" #: ../gtk/gtkmountoperation.c:618 -#| msgid "Connect _anonymously" msgid "_Anonymous" msgstr "_Anonymní" @@ -1940,17 +2099,14 @@ msgid "Registered U_ser" msgstr "Regi_strovaný uživatel" #: ../gtk/gtkmountoperation.c:638 -#| msgid "_Username:" msgid "_Username" msgstr "_Uživatelské jméno" #: ../gtk/gtkmountoperation.c:643 -#| msgid "_Domain:" msgid "_Domain" msgstr "_Doména" #: ../gtk/gtkmountoperation.c:649 -#| msgid "_Password:" msgid "_Password" msgstr "_Heslo" @@ -2010,7 +2166,7 @@ msgstr "Z Shell" msgid "Cannot end process with PID %d: %s" msgstr "Nelze ukončit proces s PID %d: %s" -#: ../gtk/gtknotebook.c:5051 ../gtk/gtknotebook.c:7705 +#: ../gtk/gtknotebook.c:5069 ../gtk/gtknotebook.c:7723 #, c-format msgid "Page %u" msgstr "Strana %u" @@ -2018,14 +2174,14 @@ msgstr "Strana %u" #. Translators: the format here is used to build the string that will be rendered #. * in the number emblem. #. -#: ../gtk/gtknumerableicon.c:481 +#: ../gtk/gtknumerableicon.c:482 #, c-format msgctxt "Number format" msgid "%d" msgstr "%d" -#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:846 -#: ../gtk/gtkpapersize.c:886 +#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:848 +#: ../gtk/gtkpapersize.c:888 msgid "Not a valid page setup file" msgstr "Neplatný soubor vzhledu stránky" @@ -2053,8 +2209,10 @@ msgstr "" " Dolní: %s %s" #: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 -msgid "Manage Custom Sizes..." -msgstr "Spravovat vlastní velikosti…" +#, fuzzy +#| msgid "Manage Custom Sizes" +msgid "Manage Custom Sizes…" +msgstr "Správa vlastních velikostí" #: ../gtk/gtkpagesetupunixdialog.c:896 msgid "_Format for:" @@ -2084,12 +2242,11 @@ msgstr "Dolů v cestě" msgid "File System Root" msgstr "Kořen systému souborů" -#: ../gtk/gtkprintbackend.c:748 +#: ../gtk/gtkprintbackend.c:750 msgid "Authentication" msgstr "Ověření" #: ../gtk/gtkprinteroptionwidget.c:546 -#| msgid "Select a File" msgid "Select a filename" msgstr "Vyberte soubor" @@ -2237,7 +2394,9 @@ msgid "Getting printer information failed" msgstr "Získávání informací o tiskárně selhalo" #: ../gtk/gtkprintunixdialog.c:1916 -msgid "Getting printer information..." +#, fuzzy +#| msgid "Getting printer information..." +msgid "Getting printer information…" msgstr "Získávají se informace o tiskárně…" #: ../gtk/gtkprintunixdialog.c:2184 @@ -2314,42 +2473,42 @@ msgstr "Obecné" #. * multiple pages on a sheet when printing #. #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, top to bottom" msgstr "Zleva doprava, shora dolů" #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, bottom to top" msgstr "Zleva doprava, zdola nahoru" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, top to bottom" msgstr "Zprava doleva, shora dolů" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, bottom to top" msgstr "Zprava doleva, zdola nahoru" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, left to right" msgstr "Shora dolů, zleva doprava" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, right to left" msgstr "Shora dolů, zprava doleva" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, left to right" msgstr "Zdola nahoru, zleva doprava" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, right to left" msgstr "Zdola nahoru, zprava doleva" @@ -2357,7 +2516,7 @@ msgstr "Zdola nahoru, zprava doleva" #. * dialog that controls in what order multiple pages are arranged #. #: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3766 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772 msgid "Page Ordering" msgstr "Řazení stran" @@ -2527,31 +2686,31 @@ msgstr "Z_a:" msgid "Job" msgstr "Úloha" -#: ../gtk/gtkprintunixdialog.c:3753 +#: ../gtk/gtkprintunixdialog.c:3751 msgid "Advanced" msgstr "Pokročilé" #. Translators: this will appear as tab label in print dialog. -#: ../gtk/gtkprintunixdialog.c:3791 +#: ../gtk/gtkprintunixdialog.c:3789 msgid "Image Quality" msgstr "Kvalita obrazu" #. Translators: this will appear as tab label in print dialog. -#: ../gtk/gtkprintunixdialog.c:3795 +#: ../gtk/gtkprintunixdialog.c:3793 msgid "Color" msgstr "Barva" #. Translators: this will appear as tab label in print dialog. #. It's a typographical term, as in "Binding and finishing" -#: ../gtk/gtkprintunixdialog.c:3800 +#: ../gtk/gtkprintunixdialog.c:3798 msgid "Finishing" msgstr "Dokončování" -#: ../gtk/gtkprintunixdialog.c:3810 +#: ../gtk/gtkprintunixdialog.c:3808 msgid "Some of the settings in the dialog conflict" msgstr "Některá nastavení v dialogu jsou v konfliktu" -#: ../gtk/gtkprintunixdialog.c:3836 +#: ../gtk/gtkprintunixdialog.c:3834 msgid "Print" msgstr "Tisk" @@ -2559,36 +2718,36 @@ msgstr "Tisk" msgid "Select which type of documents are shown" msgstr "Výběr zobrazených typů dokumentů" -#: ../gtk/gtkrecentchooserdefault.c:1130 ../gtk/gtkrecentchooserdefault.c:1167 +#: ../gtk/gtkrecentchooserdefault.c:1129 ../gtk/gtkrecentchooserdefault.c:1166 #, c-format msgid "No item for URI '%s' found" msgstr "Nenalezena žádná položka u URI „%s“" -#: ../gtk/gtkrecentchooserdefault.c:1294 +#: ../gtk/gtkrecentchooserdefault.c:1293 msgid "Untitled filter" msgstr "Filtr bez názvu" -#: ../gtk/gtkrecentchooserdefault.c:1647 +#: ../gtk/gtkrecentchooserdefault.c:1646 msgid "Could not remove item" msgstr "Nelze odstranit položku" -#: ../gtk/gtkrecentchooserdefault.c:1691 +#: ../gtk/gtkrecentchooserdefault.c:1690 msgid "Could not clear list" msgstr "Nelze vymazat seznam" -#: ../gtk/gtkrecentchooserdefault.c:1775 +#: ../gtk/gtkrecentchooserdefault.c:1774 msgid "Copy _Location" msgstr "Kopírovat _umístění" -#: ../gtk/gtkrecentchooserdefault.c:1788 +#: ../gtk/gtkrecentchooserdefault.c:1787 msgid "_Remove From List" msgstr "_Odstranit ze seznamu" -#: ../gtk/gtkrecentchooserdefault.c:1797 +#: ../gtk/gtkrecentchooserdefault.c:1796 msgid "_Clear List" msgstr "Vy_mazat seznam" -#: ../gtk/gtkrecentchooserdefault.c:1811 +#: ../gtk/gtkrecentchooserdefault.c:1810 msgid "Show _Private Resources" msgstr "Zo_brazovat soukromé zdroje" @@ -2640,15 +2799,15 @@ msgctxt "recent menu label" msgid "%d. %s" msgstr "%d. %s" -#: ../gtk/gtkrecentmanager.c:1010 ../gtk/gtkrecentmanager.c:1023 -#: ../gtk/gtkrecentmanager.c:1160 ../gtk/gtkrecentmanager.c:1170 -#: ../gtk/gtkrecentmanager.c:1222 ../gtk/gtkrecentmanager.c:1231 -#: ../gtk/gtkrecentmanager.c:1246 +#: ../gtk/gtkrecentmanager.c:1035 ../gtk/gtkrecentmanager.c:1048 +#: ../gtk/gtkrecentmanager.c:1185 ../gtk/gtkrecentmanager.c:1195 +#: ../gtk/gtkrecentmanager.c:1247 ../gtk/gtkrecentmanager.c:1256 +#: ../gtk/gtkrecentmanager.c:1271 #, c-format msgid "Unable to find an item with URI '%s'" msgstr "Nelze nalézt položku s URI „%s“" -#: ../gtk/gtkrecentmanager.c:2446 +#: ../gtk/gtkrecentmanager.c:2471 #, c-format msgid "No registered application with name '%s' for item with URI '%s' found" msgstr "" @@ -3162,7 +3321,7 @@ msgstr "Z_menšit" #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for #. * the state #. -#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:586 +#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:583 msgctxt "switch" msgid "ON" msgstr "❙" @@ -3170,7 +3329,7 @@ msgstr "❙" #. Translators: if the "off" state label requires more than three #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state #. -#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:615 +#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:598 msgctxt "switch" msgid "OFF" msgstr "○" @@ -3341,7 +3500,7 @@ msgstr "Neočekávaná počáteční značka „%s“ na řádku %d, znak %d" msgid "Unexpected character data on line %d char %d" msgstr "Neočekávaná data znaků na řádku %d, znak %d" -#: ../gtk/gtkuimanager.c:2738 +#: ../gtk/gtkuimanager.c:2694 msgid "Empty" msgstr "Prázdný" @@ -4525,169 +4684,169 @@ msgstr "Pozastaveno ; Úlohy se odmítají" msgid "Rejecting Jobs" msgstr "Úlohy se odmítají" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2909 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2915 msgid "Two Sided" msgstr "Oboustranný" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2910 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2916 msgid "Paper Type" msgstr "Typ papíru" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2911 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2917 msgid "Paper Source" msgstr "Zdroj papíru" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2912 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2918 msgid "Output Tray" msgstr "Výstupní zásobník" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2913 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2919 msgid "Resolution" msgstr "Rozlišení" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2914 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2920 msgid "GhostScript pre-filtering" msgstr "Předběžné filtrování GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2923 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 msgid "One Sided" msgstr "Jednostranný" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2925 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 msgid "Long Edge (Standard)" msgstr "Delší okraj (standardní)" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2927 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 msgid "Short Edge (Flip)" msgstr "Kratší okraj (otočení)" #. Translators: this is an option of "Paper Source" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 msgid "Auto Select" msgstr "Automatický výběr" #. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Resolution" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2941 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3429 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3435 msgid "Printer Default" msgstr "Výchozí pro tiskárnu" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 msgid "Embed GhostScript fonts only" msgstr "Vložit pouze písma GhostScript" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2951 msgid "Convert to PS level 1" msgstr "Převést na PS, úroveň 1" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2953 msgid "Convert to PS level 2" msgstr "Převést na PS, úroveň 2" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2955 msgid "No pre-filtering" msgstr "Bez předběžného filtrování" #. Translators: "Miscellaneous" is the label for a button, that opens #. up an extra panel of settings in a print dialog. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2958 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2964 msgid "Miscellaneous" msgstr "Různé" #. Translators: These strings name the possible values of the #. * job priority option in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Urgent" msgstr "Naléhavá" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "High" msgstr "Vysoká" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Medium" msgstr "Střední" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Low" msgstr "Nízká" #. Translators, this string is used to label the job priority option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3711 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3717 msgid "Job Priority" msgstr "Priorita úlohy" #. Translators, this string is used to label the billing info entry #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3722 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3728 msgid "Billing Info" msgstr "Účtovací informace" #. Translators, these strings are names for various 'standard' cover #. * pages that the printing system may support. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "None" msgstr "Žádné" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Classified" msgstr "Utajované" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Confidential" msgstr "Důvěrné" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Secret" msgstr "Tajné" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Standard" msgstr "Standardní" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Top Secret" msgstr "Přísně tajné" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Unclassified" msgstr "Neutajované" #. Translators, this string is used to label the pages-per-sheet option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3748 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3754 msgid "Pages per Sheet" msgstr "Stran na list" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3808 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3814 msgid "Before" msgstr "Před" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3823 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3829 msgid "After" msgstr "Za" @@ -4695,14 +4854,14 @@ msgstr "Za" #. * a print job is printed. Possible values are 'now', a specified time, #. * or 'on hold' #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3843 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849 msgid "Print at" msgstr "Vytisknout" #. 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/cups/gtkprintbackendcups.c:3854 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860 msgid "Print at time" msgstr "Vytisknout v určený čas" @@ -4710,17 +4869,17 @@ msgstr "Vytisknout v určený čas" #. * size. The two placeholders are replaced with the width and height #. * in points. E.g: "Custom 230.4x142.9" #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895 #, c-format msgid "Custom %sx%s" msgstr "Vlastní %sx%s" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3970 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3976 msgid "Printer Profile" msgstr "Profil tiskárny" #. TRANSLATORS: this is when color profile information is unavailable -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3977 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3983 msgid "Unavailable" msgstr "Není k dispozici" @@ -4741,7 +4900,6 @@ msgid "Unspecified profile" msgstr "Neurčený profil" #: ../modules/printbackends/file/gtkprintbackendfile.c:249 -#| msgid "output.%s" msgid "output" msgstr "výstup" @@ -4820,12 +4978,3 @@ msgstr "zkušební-výstup.%s" #: ../modules/printbackends/test/gtkprintbackendtest.c:465 msgid "Print to Test Printer" msgstr "Tisknout na zkušební tiskárnu" - -#~ msgid "Connect as u_ser:" -#~ msgstr "Připojit se jako _uživatel:" - -#~ msgid "Select a folder" -#~ msgstr "Vyberte složku" - -#~ msgid "_Save in folder:" -#~ msgstr "Uložit do složk_y:" From c6bbfc8e3d4eab0bb1c3cb2a5d5bd2eef234c3bd Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Mon, 18 Feb 2013 09:35:58 +0100 Subject: [PATCH 086/208] Add a few missing gtk_widget_unregister_window calls This was causing warnings on widget unparent like: Gdk-CRITICAL **: gdk_window_has_native: assertion `GDK_IS_WINDOW (window)' failed Becasue the window was not properly removed from the lists on unrealize. --- gtk/gtktexthandle.c | 16 ++++++++++++++-- gtk/gtktreeview.c | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gtk/gtktexthandle.c b/gtk/gtktexthandle.c index 97449b485b..8298cdf941 100644 --- a/gtk/gtktexthandle.c +++ b/gtk/gtktexthandle.c @@ -369,10 +369,18 @@ gtk_text_handle_finalize (GObject *object) g_object_unref (priv->relative_to); if (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window) - gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window); + { + gtk_widget_unregister_window (priv->parent, + priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window); + gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window); + } if (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window) - gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window); + { + gtk_widget_unregister_window (priv->parent, + priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window); + gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window); + } if (g_signal_handler_is_connected (priv->parent, priv->draw_signal_id)) g_signal_handler_disconnect (priv->parent, priv->draw_signal_id); @@ -527,7 +535,11 @@ _gtk_text_handle_set_relative_to (GtkTextHandle *handle, if (priv->relative_to) { + gtk_widget_unregister_window (priv->parent, + priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window); gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window); + gtk_widget_unregister_window (priv->parent, + priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window); gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window); g_object_unref (priv->relative_to); } diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 34898aba62..af7b8a0888 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -3347,6 +3347,7 @@ gtk_tree_view_button_release_drag_column (GtkWidget *widget, tree_view->priv->cur_reorder->left_column); } tree_view->priv->drag_column = NULL; + gtk_widget_unregister_window (widget, tree_view->priv->drag_window); gdk_window_destroy (tree_view->priv->drag_window); tree_view->priv->drag_window = NULL; From 7319a0f237fae9dd66114e33aa27f6bfa3852d86 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Mon, 18 Feb 2013 09:38:11 +0100 Subject: [PATCH 087/208] GtkEntry: Fix text handle painting We only draw the main entry on should_draw (widget->window), because otherwise we also draw it on the GtkTextHandle widgets. This is necessary due to the recent change for that to not return TRUE and swallow the rest of the drawing operation. --- gtk/gtkentry.c | 60 +++++++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index e6d2e56a14..6e34ab5be2 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -3744,36 +3744,40 @@ gtk_entry_draw (GtkWidget *widget, GtkEntryPrivate *priv = entry->priv; int i; - context = gtk_widget_get_style_context (widget); - - /* Draw entry_bg, shadow, progress and focus */ - gtk_entry_draw_frame (widget, context, cr); - - /* Draw text and cursor */ - cairo_save (cr); - - gtk_cairo_transform_to_window (cr, widget, priv->text_area); - - if (priv->dnd_position != -1) - gtk_entry_draw_cursor (GTK_ENTRY (widget), cr, CURSOR_DND); - - gtk_entry_draw_text (GTK_ENTRY (widget), cr); - - /* When no text is being displayed at all, don't show the cursor */ - if (gtk_entry_get_display_mode (entry) != DISPLAY_BLANK && - gtk_widget_has_focus (widget) && - priv->selection_bound == priv->current_pos && priv->cursor_visible) - gtk_entry_draw_cursor (GTK_ENTRY (widget), cr, CURSOR_STANDARD); - - cairo_restore (cr); - - /* Draw icons */ - for (i = 0; i < MAX_ICONS; i++) + if (gtk_cairo_should_draw_window (cr, + gtk_widget_get_window (widget))) { - EntryIconInfo *icon_info = priv->icons[i]; + context = gtk_widget_get_style_context (widget); - if (icon_info != NULL) - draw_icon (widget, cr, i); + /* Draw entry_bg, shadow, progress and focus */ + gtk_entry_draw_frame (widget, context, cr); + + /* Draw text and cursor */ + cairo_save (cr); + + gtk_cairo_transform_to_window (cr, widget, priv->text_area); + + if (priv->dnd_position != -1) + gtk_entry_draw_cursor (GTK_ENTRY (widget), cr, CURSOR_DND); + + gtk_entry_draw_text (GTK_ENTRY (widget), cr); + + /* When no text is being displayed at all, don't show the cursor */ + if (gtk_entry_get_display_mode (entry) != DISPLAY_BLANK && + gtk_widget_has_focus (widget) && + priv->selection_bound == priv->current_pos && priv->cursor_visible) + gtk_entry_draw_cursor (GTK_ENTRY (widget), cr, CURSOR_STANDARD); + + cairo_restore (cr); + + /* Draw icons */ + for (i = 0; i < MAX_ICONS; i++) + { + EntryIconInfo *icon_info = priv->icons[i]; + + if (icon_info != NULL) + draw_icon (widget, cr, i); + } } return FALSE; From 38ada3b61babdaef6408ab23dc43e82c5a470fc5 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Mon, 18 Feb 2013 11:20:40 +0100 Subject: [PATCH 088/208] win32: Fix build gdkwindown-win32.c included windows.h directly rather than via gdkwin32.h which broke the build for me at least. Instead rely on it being included in gdkwin32.h and things work right. --- gdk/win32/gdkwindow-win32.c | 1 - 1 file changed, 1 deletion(-) diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index 039284963c..95f6e16b66 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -27,7 +27,6 @@ #include "config.h" #include -#include #include "gdk.h" #include "gdkwindowimpl.h" From ead64bfeddeaa8ee76f37df3cbb664199f415e79 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Mon, 18 Feb 2013 11:23:22 +0100 Subject: [PATCH 089/208] Remove unnecessary copy of GdkFrameClockIdlePrivate --- gdk/gdkframeclockprivate.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/gdk/gdkframeclockprivate.h b/gdk/gdkframeclockprivate.h index 0ce74da23e..fd505bec6b 100644 --- a/gdk/gdkframeclockprivate.h +++ b/gdk/gdkframeclockprivate.h @@ -33,8 +33,6 @@ G_BEGIN_DECLS -typedef struct _GdkFrameClockIdlePrivate GdkFrameClockIdlePrivate; - struct _GdkFrameClock { GObject parent_instance; From 3740ebf866078efb3b71c5b5dcc9c625af42f7f7 Mon Sep 17 00:00:00 2001 From: Jiro Matsuzawa Date: Mon, 18 Feb 2013 23:32:29 +0900 Subject: [PATCH 090/208] [l10n] Update Japanese translation Merge the latest pot. --- po/ja.po | 598 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 314 insertions(+), 284 deletions(-) diff --git a/po/ja.po b/po/ja.po index bca5329eb6..f1e535c7f5 100644 --- a/po/ja.po +++ b/po/ja.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: gtk+ gtk-3-2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-08-25 19:42+0000\n" +"POT-Creation-Date: 2013-01-19 19:42+0000\n" "PO-Revision-Date: 2012-08-21 12:20+0900\n" "Last-Translator: Jiro Matsuzawa \n" "Language-Team: Japanese \n" @@ -462,21 +462,21 @@ msgid "Opening %d Item" msgid_plural "Opening %d Items" msgstr[0] "%d 個のアイテムを開いています" -#: ../gtk/a11y/gtkspinneraccessible.c:40 +#: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" msgstr "スピナー" -#: ../gtk/a11y/gtkspinneraccessible.c:41 +#: ../gtk/a11y/gtkspinneraccessible.c:40 msgid "Provides visual indication of progress" msgstr "進行している様子を視覚的に表します" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:62 msgctxt "light switch widget" msgid "Switch" msgstr "スイッチ" -#: ../gtk/a11y/gtkswitchaccessible.c:64 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgid "Switches between on and off states" msgstr "オン・オフ状態を切り替えます" @@ -589,6 +589,7 @@ msgstr "現在の色に指定する場合はこのパレットのエントリを #. #: ../gtk/deprecated/gtkcolorseldialog.c:201 ../gtk/gtkappchooserdialog.c:574 #: ../gtk/gtkcolorchooserdialog.c:150 ../gtk/gtkfontchooserdialog.c:174 +#: ../gtk/gtkprinteroptionwidget.c:550 msgid "_Select" msgstr "選択(_S)" @@ -657,27 +658,27 @@ msgid "Could not show link" msgstr "リンクを表示できませんでした" #: ../gtk/gtkaboutdialog.c:1017 -msgid "Homepage" -msgstr "ホームページ" +msgid "Website" +msgstr "" #: ../gtk/gtkaboutdialog.c:1071 #, c-format msgid "About %s" msgstr "%s について" -#: ../gtk/gtkaboutdialog.c:2399 +#: ../gtk/gtkaboutdialog.c:2398 msgid "Created by" msgstr "作成者" -#: ../gtk/gtkaboutdialog.c:2402 +#: ../gtk/gtkaboutdialog.c:2401 msgid "Documented by" msgstr "ドキュメント担当" -#: ../gtk/gtkaboutdialog.c:2412 +#: ../gtk/gtkaboutdialog.c:2411 msgid "Translated by" msgstr "翻訳担当" -#: ../gtk/gtkaboutdialog.c:2417 +#: ../gtk/gtkaboutdialog.c:2416 msgid "Artwork by" msgstr "アートワーク担当" @@ -686,7 +687,7 @@ msgstr "アートワーク担当" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:156 +#: ../gtk/gtkaccellabel.c:159 msgctxt "keyboard label" msgid "Shift" msgstr "Shift" @@ -696,7 +697,7 @@ msgstr "Shift" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:162 +#: ../gtk/gtkaccellabel.c:165 msgctxt "keyboard label" msgid "Ctrl" msgstr "Ctrl" @@ -706,7 +707,7 @@ msgstr "Ctrl" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:168 +#: ../gtk/gtkaccellabel.c:171 msgctxt "keyboard label" msgid "Alt" msgstr "Alt" @@ -716,7 +717,7 @@ msgstr "Alt" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:802 +#: ../gtk/gtkaccellabel.c:805 msgctxt "keyboard label" msgid "Super" msgstr "Super" @@ -726,7 +727,7 @@ msgstr "Super" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:815 +#: ../gtk/gtkaccellabel.c:818 msgctxt "keyboard label" msgid "Hyper" msgstr "Hyper" @@ -736,23 +737,25 @@ msgstr "Hyper" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:829 +#: ../gtk/gtkaccellabel.c:832 msgctxt "keyboard label" msgid "Meta" msgstr "Meta" -#: ../gtk/gtkaccellabel.c:845 +#: ../gtk/gtkaccellabel.c:848 msgctxt "keyboard label" msgid "Space" msgstr "Space" -#: ../gtk/gtkaccellabel.c:848 +#: ../gtk/gtkaccellabel.c:851 msgctxt "keyboard label" msgid "Backslash" msgstr "\\" #: ../gtk/gtkappchooserbutton.c:290 -msgid "Other application..." +#, fuzzy +#| msgid "Other application..." +msgid "Other application…" msgstr "別のアプリケーション..." #: ../gtk/gtkappchooserdialog.c:137 @@ -784,7 +787,7 @@ msgstr "アプリケーションが見つかりませんでした" msgid "Select an application to open \"%s\"" msgstr "\"%s\" を開くアプリケーションを選択してください" -#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:654 +#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:657 #, c-format msgid "No applications available to open \"%s\"" msgstr "\"%s\" を開くアプリケーションが見つかりません" @@ -812,23 +815,23 @@ msgstr "関連づけを取り消す" msgid "Show other applications" msgstr "別のアプリケーションを表示する" -#: ../gtk/gtkappchooserwidget.c:603 +#: ../gtk/gtkappchooserwidget.c:606 msgid "Default Application" msgstr "既定のアプリケーション" -#: ../gtk/gtkappchooserwidget.c:741 +#: ../gtk/gtkappchooserwidget.c:744 msgid "Recommended Applications" msgstr "推奨アプリケーション" -#: ../gtk/gtkappchooserwidget.c:756 +#: ../gtk/gtkappchooserwidget.c:759 msgid "Related Applications" msgstr "関連するアプリケーション" -#: ../gtk/gtkappchooserwidget.c:770 +#: ../gtk/gtkappchooserwidget.c:773 msgid "Other Applications" msgstr "別のアプリケーション" -#: ../gtk/gtkapplication.c:1552 +#: ../gtk/gtkapplication.c:1557 #, c-format msgid "" "%s cannot quit at this time:\n" @@ -836,26 +839,26 @@ msgid "" "%s" msgstr "" -#: ../gtk/gtkapplicationwindow.c:333 ../gtk/gtkprintoperation-unix.c:475 +#: ../gtk/gtkapplicationwindow.c:333 ../gtk/gtkprintoperation-unix.c:480 #: ../gtk/gtkprintoperation-win32.c:1445 msgid "Application" msgstr "アプリケーション" -#: ../gtk/gtkassistant.c:1004 +#: ../gtk/gtkassistant.c:1008 #, fuzzy #| msgctxt "Stock label" #| msgid "C_onnect" msgid "C_ontinue" msgstr "接続(_O)" -#: ../gtk/gtkassistant.c:1007 +#: ../gtk/gtkassistant.c:1011 #, fuzzy #| msgctxt "Stock label, navigation" #| msgid "_Back" msgid "Go _Back" msgstr "戻る(_B)" -#: ../gtk/gtkassistant.c:1011 +#: ../gtk/gtkassistant.c:1015 #, fuzzy #| msgctxt "print operation status" #| msgid "Finished" @@ -999,8 +1002,10 @@ msgstr "無効" #. * an accelerator when the cell is clicked to change the #. * acelerator. #. -#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:745 -msgid "New accelerator..." +#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 +#, fuzzy +#| msgid "New accelerator..." +msgid "New accelerator…" msgstr "新しいアクセラレータ..." #: ../gtk/gtkcellrendererprogress.c:372 ../gtk/gtkcellrendererprogress.c:462 @@ -1314,7 +1319,7 @@ msgid "default:mm" msgstr "default:mm" #. And show the custom paper dialog -#: ../gtk/gtkcustompaperunixdialog.c:397 ../gtk/gtkprintunixdialog.c:3264 +#: ../gtk/gtkcustompaperunixdialog.c:397 ../gtk/gtkprintunixdialog.c:3275 msgid "Manage Custom Sizes" msgstr "その他のサイズの管理" @@ -1327,7 +1332,9 @@ msgid "mm" msgstr "ミリ" #: ../gtk/gtkcustompaperunixdialog.c:605 -msgid "Margins from Printer..." +#, fuzzy +#| msgid "Margins from Printer..." +msgid "Margins from Printer…" msgstr "プリンターのマージン..." #: ../gtk/gtkcustompaperunixdialog.c:771 @@ -1367,15 +1374,15 @@ msgstr "右側(_R):" msgid "Paper Margins" msgstr "用紙のマージン" -#: ../gtk/gtkentry.c:8848 ../gtk/gtktextview.c:8316 +#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8591 msgid "Input _Methods" msgstr "入力メソッド(_M)" -#: ../gtk/gtkentry.c:8862 ../gtk/gtktextview.c:8330 +#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8605 msgid "_Insert Unicode Control Character" msgstr "Unicode 制御文字の挿入(_I)" -#: ../gtk/gtkentry.c:10336 +#: ../gtk/gtkentry.c:10094 msgid "Caps Lock is on" msgstr "Caps Lock がオンになっています" @@ -1424,7 +1431,7 @@ msgstr "Caps Lock がオンになっています" msgid "Select a File" msgstr "ファイルを選択" -#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1817 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1820 msgid "Desktop" msgstr "デスクトップ" @@ -1433,51 +1440,53 @@ msgid "(None)" msgstr "(なし)" #: ../gtk/gtkfilechooserbutton.c:2046 -msgid "Other..." +#, fuzzy +#| msgid "Other..." +msgid "Other…" msgstr "その他..." #: ../gtk/gtkfilechooserdefault.c:152 msgid "Type name of new folder" msgstr "新しいフォルダー名を入力してください" -#: ../gtk/gtkfilechooserdefault.c:968 +#: ../gtk/gtkfilechooserdefault.c:971 msgid "Could not retrieve information about the file" msgstr "ファイルに関する情報を取得できませんでした" -#: ../gtk/gtkfilechooserdefault.c:979 +#: ../gtk/gtkfilechooserdefault.c:982 msgid "Could not add a bookmark" msgstr "ブックマークを追加できませんでした" -#: ../gtk/gtkfilechooserdefault.c:990 +#: ../gtk/gtkfilechooserdefault.c:993 msgid "Could not remove bookmark" msgstr "ブックマークを削除できませんでした" -#: ../gtk/gtkfilechooserdefault.c:1001 +#: ../gtk/gtkfilechooserdefault.c:1004 msgid "The folder could not be created" msgstr "フォルダーを生成できませんでした" -#: ../gtk/gtkfilechooserdefault.c:1014 +#: ../gtk/gtkfilechooserdefault.c:1017 msgid "The folder could not be created, as a file with the same name already exists. Try using a different name for the folder, or rename the file first." msgstr "同名のファイルがすでに存在しているので、そのフォルダーを生成できませんでした。別の名前にするか、ファイル名を変更するなどして、もう一度実行してください。" -#: ../gtk/gtkfilechooserdefault.c:1028 +#: ../gtk/gtkfilechooserdefault.c:1031 msgid "You need to choose a valid filename." msgstr "有効なファイル名を指定してください。" -#: ../gtk/gtkfilechooserdefault.c:1031 +#: ../gtk/gtkfilechooserdefault.c:1034 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "%s はフォルダーではないため、その配下にファイルを作成できません" -#: ../gtk/gtkfilechooserdefault.c:1043 +#: ../gtk/gtkfilechooserdefault.c:1046 msgid "You may only select folders. The item that you selected is not a folder; try using a different item." msgstr "フォルダーのみ選択できます。選択したアイテムはフォルダーではありません。他のアイテムを使用してみてください。" -#: ../gtk/gtkfilechooserdefault.c:1053 +#: ../gtk/gtkfilechooserdefault.c:1056 msgid "Invalid file name" msgstr "無効なファイル名です" -#: ../gtk/gtkfilechooserdefault.c:1063 +#: ../gtk/gtkfilechooserdefault.c:1066 msgid "The folder contents could not be displayed" msgstr "フォルダーの内容を表示できませんでした" @@ -1485,215 +1494,217 @@ msgstr "フォルダーの内容を表示できませんでした" #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1589 +#: ../gtk/gtkfilechooserdefault.c:1592 #, c-format msgid "%1$s on %2$s" msgstr "%2$s:%1$s" -#: ../gtk/gtkfilechooserdefault.c:1738 +#: ../gtk/gtkfilechooserdefault.c:1741 msgid "Search" msgstr "検索" -#: ../gtk/gtkfilechooserdefault.c:1762 ../gtk/gtkfilechooserdefault.c:4988 +#: ../gtk/gtkfilechooserdefault.c:1765 ../gtk/gtkfilechooserdefault.c:4991 msgid "Recently Used" msgstr "最近開いたファイル" -#: ../gtk/gtkfilechooserdefault.c:2361 +#: ../gtk/gtkfilechooserdefault.c:2364 msgid "Select which types of files are shown" msgstr "表示するファイルの種類を選択してください" -#: ../gtk/gtkfilechooserdefault.c:2720 +#: ../gtk/gtkfilechooserdefault.c:2723 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "'%s' というフォルダーをブックマークへ追加します" -#: ../gtk/gtkfilechooserdefault.c:2764 +#: ../gtk/gtkfilechooserdefault.c:2767 #, c-format msgid "Add the current folder to the bookmarks" msgstr "このフォルダーをブックマークへ追加します" -#: ../gtk/gtkfilechooserdefault.c:2766 +#: ../gtk/gtkfilechooserdefault.c:2769 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "指定したフォルダーをブックマークへ追加します" -#: ../gtk/gtkfilechooserdefault.c:2804 +#: ../gtk/gtkfilechooserdefault.c:2807 #, c-format msgid "Remove the bookmark '%s'" msgstr "'%s' というブックマークを削除します" -#: ../gtk/gtkfilechooserdefault.c:2806 +#: ../gtk/gtkfilechooserdefault.c:2809 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "ブックマーク '%s'を削除できません" -#: ../gtk/gtkfilechooserdefault.c:2813 ../gtk/gtkfilechooserdefault.c:3699 +#: ../gtk/gtkfilechooserdefault.c:2816 ../gtk/gtkfilechooserdefault.c:3702 msgid "Remove the selected bookmark" msgstr "指定したブックマークを削除します" -#: ../gtk/gtkfilechooserdefault.c:3377 +#: ../gtk/gtkfilechooserdefault.c:3380 msgid "Remove" msgstr "削除" -#: ../gtk/gtkfilechooserdefault.c:3386 -msgid "Rename..." +#: ../gtk/gtkfilechooserdefault.c:3389 +#, fuzzy +#| msgid "Rename..." +msgid "Rename…" msgstr "ファイル名の変更..." #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3550 +#: ../gtk/gtkfilechooserdefault.c:3553 msgid "Places" msgstr "場所" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3607 +#: ../gtk/gtkfilechooserdefault.c:3610 msgid "_Places" msgstr "場所(_P)" -#: ../gtk/gtkfilechooserdefault.c:3687 +#: ../gtk/gtkfilechooserdefault.c:3690 msgid "Add the selected folder to the Bookmarks" msgstr "指定したフォルダーをブックマークへ追加します" -#: ../gtk/gtkfilechooserdefault.c:3948 +#: ../gtk/gtkfilechooserdefault.c:3951 msgid "Could not select file" msgstr "ファイルを選択できませんでした" -#: ../gtk/gtkfilechooserdefault.c:4173 +#: ../gtk/gtkfilechooserdefault.c:4176 msgid "_Visit this file" msgstr "このファイルの内容を見る(_V)" -#: ../gtk/gtkfilechooserdefault.c:4176 +#: ../gtk/gtkfilechooserdefault.c:4179 msgid "_Copy file’s location" msgstr "ファイルの場所をコピーする(_C)" -#: ../gtk/gtkfilechooserdefault.c:4179 +#: ../gtk/gtkfilechooserdefault.c:4182 msgid "_Add to Bookmarks" msgstr "ブックマークへ追加(_A)" -#: ../gtk/gtkfilechooserdefault.c:4186 +#: ../gtk/gtkfilechooserdefault.c:4189 msgid "Show _Hidden Files" msgstr "隠しファイルを表示する(_H)" -#: ../gtk/gtkfilechooserdefault.c:4189 +#: ../gtk/gtkfilechooserdefault.c:4192 msgid "Show _Size Column" msgstr "サイズを表示する(_S)" -#: ../gtk/gtkfilechooserdefault.c:4414 +#: ../gtk/gtkfilechooserdefault.c:4417 msgid "Files" msgstr "ファイル" -#: ../gtk/gtkfilechooserdefault.c:4465 +#: ../gtk/gtkfilechooserdefault.c:4468 msgid "Name" msgstr "名前" -#: ../gtk/gtkfilechooserdefault.c:4488 +#: ../gtk/gtkfilechooserdefault.c:4491 msgid "Size" msgstr "サイズ" -#: ../gtk/gtkfilechooserdefault.c:4502 +#: ../gtk/gtkfilechooserdefault.c:4505 msgid "Modified" msgstr "更新日時" #. Label -#: ../gtk/gtkfilechooserdefault.c:4595 ../gtk/gtkprinteroptionwidget.c:835 +#: ../gtk/gtkfilechooserdefault.c:4598 msgid "_Name:" msgstr "名前(_N):" -#: ../gtk/gtkfilechooserdefault.c:4826 +#: ../gtk/gtkfilechooserdefault.c:4829 msgid "Type a file name" msgstr "ファイル名を入力してください" -#: ../gtk/gtkfilechooserdefault.c:4873 ../gtk/gtkfilechooserdefault.c:4884 +#: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887 msgid "Please select a folder below" msgstr "以下からフォルダーを選択してください" -#: ../gtk/gtkfilechooserdefault.c:4879 +#: ../gtk/gtkfilechooserdefault.c:4882 msgid "Please type a file name" msgstr "ファイル名を入力してください" #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4950 +#: ../gtk/gtkfilechooserdefault.c:4953 msgid "Create Fo_lder" msgstr "フォルダーの作成(_L)" -#: ../gtk/gtkfilechooserdefault.c:4998 +#: ../gtk/gtkfilechooserdefault.c:5001 msgid "Search:" msgstr "検索:" -#: ../gtk/gtkfilechooserdefault.c:5049 +#: ../gtk/gtkfilechooserdefault.c:5052 msgid "_Location:" msgstr "場所(_L):" -#: ../gtk/gtkfilechooserdefault.c:5500 +#: ../gtk/gtkfilechooserdefault.c:5502 msgid "Save in _folder:" msgstr "次のフォルダーに保存(_F):" -#: ../gtk/gtkfilechooserdefault.c:5502 +#: ../gtk/gtkfilechooserdefault.c:5504 msgid "Create in _folder:" msgstr "フォルダーの中に作成(_F):" -#: ../gtk/gtkfilechooserdefault.c:6589 +#: ../gtk/gtkfilechooserdefault.c:6597 #, c-format msgid "Could not read the contents of %s" msgstr "%s の内容を読み込めませんでした" -#: ../gtk/gtkfilechooserdefault.c:6593 +#: ../gtk/gtkfilechooserdefault.c:6601 msgid "Could not read the contents of the folder" msgstr "フォルダーの内容を読み込めませんでした" -#: ../gtk/gtkfilechooserdefault.c:6686 ../gtk/gtkfilechooserdefault.c:6754 -#: ../gtk/gtkfilechooserdefault.c:6934 +#: ../gtk/gtkfilechooserdefault.c:6694 ../gtk/gtkfilechooserdefault.c:6762 +#: ../gtk/gtkfilechooserdefault.c:6942 msgid "Unknown" msgstr "不明" -#: ../gtk/gtkfilechooserdefault.c:6701 +#: ../gtk/gtkfilechooserdefault.c:6709 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6703 +#: ../gtk/gtkfilechooserdefault.c:6711 msgid "Yesterday at %H:%M" msgstr "昨日の %H:%M" -#: ../gtk/gtkfilechooserdefault.c:7405 +#: ../gtk/gtkfilechooserdefault.c:7413 msgid "Cannot change to folder because it is not local" msgstr "ローカルではないので、フォルダーを変更できません" -#: ../gtk/gtkfilechooserdefault.c:8009 ../gtk/gtkfilechooserdefault.c:8030 +#: ../gtk/gtkfilechooserdefault.c:8020 ../gtk/gtkfilechooserdefault.c:8041 #, c-format msgid "Shortcut %s already exists" msgstr "ショートカット %s は既にあります" -#: ../gtk/gtkfilechooserdefault.c:8120 +#: ../gtk/gtkfilechooserdefault.c:8131 #, c-format msgid "Shortcut %s does not exist" msgstr "ショートカット %s はありません" -#: ../gtk/gtkfilechooserdefault.c:8366 ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8377 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "\"%s\" というファイルは既に存在します。上書きしてもよろしいですか?" -#: ../gtk/gtkfilechooserdefault.c:8369 ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8380 ../gtk/gtkprintunixdialog.c:552 #, c-format msgid "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "\"%s\" にファイルが既に存在しています。すべての内容を上書きします。" -#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "置き換える(_R)" -#: ../gtk/gtkfilechooserdefault.c:9181 +#: ../gtk/gtkfilechooserdefault.c:9192 msgid "Could not start the search process" msgstr "検索処理を開始できませんでした" -#: ../gtk/gtkfilechooserdefault.c:9182 +#: ../gtk/gtkfilechooserdefault.c:9193 msgid "The program was not able to create a connection to the indexer daemon. Please make sure it is running." msgstr "検索用のインデックスを生成するデーモンに接続できませんでした。デーモンが実行中か確認してください。" -#: ../gtk/gtkfilechooserdefault.c:9196 +#: ../gtk/gtkfilechooserdefault.c:9207 msgid "Could not send the search request" msgstr "検索結果をプログラム側に送信できませんでした" -#: ../gtk/gtkfilechooserdefault.c:9806 +#: ../gtk/gtkfilechooserdefault.c:9817 #, c-format msgid "Could not mount %s" msgstr "%s をマウントできませんでした" @@ -1731,12 +1742,12 @@ msgstr "フォント名で検索" msgid "Font Family" msgstr "フォントファミリ" -#: ../gtk/gtkicontheme.c:1627 +#: ../gtk/gtkicontheme.c:1931 #, c-format msgid "Icon '%s' not present in theme" msgstr "テーマの中にアイコン '%s' はありません" -#: ../gtk/gtkicontheme.c:3137 +#: ../gtk/gtkicontheme.c:3462 msgid "Failed to load icon" msgstr "アイコンの読み込みに失敗しました" @@ -1761,49 +1772,54 @@ msgid "System (%s)" msgstr "システム (%s)" #. Open Link -#: ../gtk/gtklabel.c:6224 +#: ../gtk/gtklabel.c:6139 msgid "_Open Link" msgstr "リンクを開く(_O)" #. Copy Link Address -#: ../gtk/gtklabel.c:6236 +#: ../gtk/gtklabel.c:6151 msgid "Copy _Link Address" msgstr "リンクのアドレスをコピー(_L)" -#: ../gtk/gtk-launch.c:69 -msgid "APPLICATION [URI...] - launch an APPLICATION with URI." +#: ../gtk/gtk-launch.c:71 +msgid "APPLICATION [URI…] — launch an APPLICATION with URI." msgstr "" #. Translators: this message will appear after the usage string #. and before the list of options. -#: ../gtk/gtk-launch.c:73 +#: ../gtk/gtk-launch.c:75 msgid "" "Launch specified application by its desktop file info\n" "optionally passing list of URIs as arguments." msgstr "" -#: ../gtk/gtk-launch.c:85 +#: ../gtk/gtk-launch.c:87 #, fuzzy, c-format #| msgid "Error parsing option --gdk-debug" msgid "Error parsing commandline options: %s\n" msgstr "--gdk-debug オプションの解析エラーです" -#: ../gtk/gtk-launch.c:87 ../gtk/gtk-launch.c:100 +#: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102 #, c-format msgid "Try \"%s --help\" for more information." msgstr "" #. Translators: the %s is the program name. This error message #. means the user is calling gtk-launch without any argument. -#: ../gtk/gtk-launch.c:98 +#: ../gtk/gtk-launch.c:100 #, fuzzy, c-format #| msgid "Find applications online" msgid "%s: missing application name" msgstr "オンラインでアプリケーションを探す" +#: ../gtk/gtk-launch.c:121 +#, 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. -#: ../gtk/gtk-launch.c:122 +#: ../gtk/gtk-launch.c:129 #, fuzzy, c-format #| msgid "Could not run application" msgid "%s: no such application %s" @@ -1811,7 +1827,7 @@ msgstr "アプリケーションを実行できませんでした" #. Translators: the first %s is the program name, the second one #. is the error message. -#: ../gtk/gtk-launch.c:140 +#: ../gtk/gtk-launch.c:147 #, c-format msgid "%s: error launching application: %s\n" msgstr "" @@ -1886,83 +1902,83 @@ msgstr "無効にする GTK+ のデバッグフラグを指定する" #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: ../gtk/gtkmain.c:706 +#: ../gtk/gtkmain.c:703 msgid "default:LTR" msgstr "default:LTR" -#: ../gtk/gtkmain.c:774 +#: ../gtk/gtkmain.c:768 #, c-format msgid "Cannot open display: %s" msgstr "ディスプレイをオープンできません: %s" -#: ../gtk/gtkmain.c:840 +#: ../gtk/gtkmain.c:834 msgid "GTK+ Options" msgstr "GTK+ のオプション" -#: ../gtk/gtkmain.c:840 +#: ../gtk/gtkmain.c:834 msgid "Show GTK+ Options" msgstr "GTK+ のオプションを表示する" -#: ../gtk/gtkmountoperation.c:532 +#: ../gtk/gtkmountoperation.c:535 msgid "Co_nnect" msgstr "接続する(_N)" -#: ../gtk/gtkmountoperation.c:606 +#: ../gtk/gtkmountoperation.c:609 #, fuzzy #| msgid "Co_nnect" msgid "Connect As" msgstr "接続する(_N)" -#: ../gtk/gtkmountoperation.c:615 +#: ../gtk/gtkmountoperation.c:618 #, fuzzy #| msgid "Connect _anonymously" msgid "_Anonymous" msgstr "匿名で接続する(_A)" -#: ../gtk/gtkmountoperation.c:624 +#: ../gtk/gtkmountoperation.c:627 msgid "Registered U_ser" msgstr "" -#: ../gtk/gtkmountoperation.c:635 +#: ../gtk/gtkmountoperation.c:638 #, fuzzy #| msgid "_Username:" msgid "_Username" msgstr "ユーザー名(_U):" -#: ../gtk/gtkmountoperation.c:640 +#: ../gtk/gtkmountoperation.c:643 #, fuzzy #| msgid "_Domain:" msgid "_Domain" msgstr "ドメイン(_D):" -#: ../gtk/gtkmountoperation.c:646 +#: ../gtk/gtkmountoperation.c:649 #, fuzzy #| msgid "_Password:" msgid "_Password" msgstr "パスワード(_P):" -#: ../gtk/gtkmountoperation.c:668 +#: ../gtk/gtkmountoperation.c:671 msgid "Forget password _immediately" msgstr "今すぐパスワードを破棄する(_I)" -#: ../gtk/gtkmountoperation.c:678 +#: ../gtk/gtkmountoperation.c:681 msgid "Remember password until you _logout" msgstr "ログアウトするまでパスワードを記憶する(_L)" -#: ../gtk/gtkmountoperation.c:688 +#: ../gtk/gtkmountoperation.c:691 msgid "Remember _forever" msgstr "期限なしで記憶する(_F)" -#: ../gtk/gtkmountoperation.c:1077 +#: ../gtk/gtkmountoperation.c:1080 #, c-format msgid "Unknown Application (PID %d)" msgstr "不明なアプリケーション (PID %d)" -#: ../gtk/gtkmountoperation.c:1260 +#: ../gtk/gtkmountoperation.c:1263 msgid "Unable to end process" msgstr "プロセスを終了できません" -#: ../gtk/gtkmountoperation.c:1297 +#: ../gtk/gtkmountoperation.c:1300 msgid "_End Process" msgstr "プロセスを終了(_E)" @@ -1997,7 +2013,7 @@ msgstr "zsh" msgid "Cannot end process with PID %d: %s" msgstr "PID %d のプロセスを終了できません: %s" -#: ../gtk/gtknotebook.c:5051 ../gtk/gtknotebook.c:7705 +#: ../gtk/gtknotebook.c:5069 ../gtk/gtknotebook.c:7723 #, c-format msgid "Page %u" msgstr "%u ページ" @@ -2005,14 +2021,14 @@ msgstr "%u ページ" #. Translators: the format here is used to build the string that will be rendered #. * in the number emblem. #. -#: ../gtk/gtknumerableicon.c:481 +#: ../gtk/gtknumerableicon.c:482 #, c-format msgctxt "Number format" msgid "%d" msgstr "%d" -#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:846 -#: ../gtk/gtkpapersize.c:886 +#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:848 +#: ../gtk/gtkpapersize.c:888 msgid "Not a valid page setup file" msgstr "妥当なページ設定のファイルではありません" @@ -2039,15 +2055,17 @@ msgstr "" " 上側: %s %s\n" " 下側: %s %s" -#: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3318 -msgid "Manage Custom Sizes..." -msgstr "その他のサイズ..." +#: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 +#, fuzzy +#| msgid "Manage Custom Sizes" +msgid "Manage Custom Sizes…" +msgstr "その他のサイズの管理" #: ../gtk/gtkpagesetupunixdialog.c:896 msgid "_Format for:" msgstr "フォーマット(_F):" -#: ../gtk/gtkpagesetupunixdialog.c:917 ../gtk/gtkprintunixdialog.c:3466 +#: ../gtk/gtkpagesetupunixdialog.c:917 ../gtk/gtkprintunixdialog.c:3477 msgid "_Paper size:" msgstr "用紙サイズ(_P):" @@ -2055,7 +2073,7 @@ msgstr "用紙サイズ(_P):" msgid "_Orientation:" msgstr "用紙の向き(_O):" -#: ../gtk/gtkpagesetupunixdialog.c:1006 ../gtk/gtkprintunixdialog.c:3520 +#: ../gtk/gtkpagesetupunixdialog.c:1006 ../gtk/gtkprintunixdialog.c:3531 msgid "Page Setup" msgstr "ページの設定" @@ -2071,22 +2089,20 @@ msgstr "下のパス" msgid "File System Root" msgstr "ファイルシステムのルート" -#: ../gtk/gtkprintbackend.c:748 +#: ../gtk/gtkprintbackend.c:750 msgid "Authentication" msgstr "認証" -#: ../gtk/gtkprinteroptionwidget.c:728 +#: ../gtk/gtkprinteroptionwidget.c:546 +#, fuzzy +#| msgid "Select a File" +msgid "Select a filename" +msgstr "ファイルを選択" + +#: ../gtk/gtkprinteroptionwidget.c:770 msgid "Not available" msgstr "利用できません" -#: ../gtk/gtkprinteroptionwidget.c:828 -msgid "Select a folder" -msgstr "フォルダーを選択" - -#: ../gtk/gtkprinteroptionwidget.c:843 -msgid "_Save in folder:" -msgstr "フォルダーの中に保存(_S):" - #. 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. @@ -2141,29 +2157,29 @@ msgctxt "print operation status" msgid "Finished with error" msgstr "完了 (エラー有り)" -#: ../gtk/gtkprintoperation.c:2352 +#: ../gtk/gtkprintoperation.c:2349 #, c-format msgid "Preparing %d" msgstr "%d の準備中です" -#: ../gtk/gtkprintoperation.c:2354 ../gtk/gtkprintoperation.c:2984 +#: ../gtk/gtkprintoperation.c:2351 ../gtk/gtkprintoperation.c:2983 msgid "Preparing" msgstr "準備中" -#: ../gtk/gtkprintoperation.c:2357 +#: ../gtk/gtkprintoperation.c:2354 #, c-format msgid "Printing %d" msgstr "%d の印刷中です" -#: ../gtk/gtkprintoperation.c:3014 +#: ../gtk/gtkprintoperation.c:3013 msgid "Error creating print preview" msgstr "プレビューを生成する際にエラー" -#: ../gtk/gtkprintoperation.c:3017 +#: ../gtk/gtkprintoperation.c:3016 msgid "The most probable reason is that a temporary file could not be created." msgstr "作業用のファイルを生成できないことが一番考えられそうな原因です。" -#: ../gtk/gtkprintoperation-unix.c:302 +#: ../gtk/gtkprintoperation-unix.c:307 msgid "Error launching preview" msgstr "プレビューを起動する際にエラー" @@ -2226,45 +2242,47 @@ msgstr "原因不明のエラー" msgid "Getting printer information failed" msgstr "プリンターの情報の取得に失敗しました。" -#: ../gtk/gtkprintunixdialog.c:1905 -msgid "Getting printer information..." +#: ../gtk/gtkprintunixdialog.c:1916 +#, fuzzy +#| msgid "Getting printer information..." +msgid "Getting printer information…" msgstr "プリンターの情報を取得中..." -#: ../gtk/gtkprintunixdialog.c:2173 +#: ../gtk/gtkprintunixdialog.c:2184 msgid "Printer" msgstr "プリンター" #. Translators: this is the header for the location column in the print dialog -#: ../gtk/gtkprintunixdialog.c:2183 +#: ../gtk/gtkprintunixdialog.c:2194 msgid "Location" msgstr "場所" #. Translators: this is the header for the printer status column in the print dialog -#: ../gtk/gtkprintunixdialog.c:2194 +#: ../gtk/gtkprintunixdialog.c:2205 msgid "Status" msgstr "状態" -#: ../gtk/gtkprintunixdialog.c:2220 +#: ../gtk/gtkprintunixdialog.c:2231 msgid "Range" msgstr "範囲" -#: ../gtk/gtkprintunixdialog.c:2224 +#: ../gtk/gtkprintunixdialog.c:2235 msgid "_All Pages" msgstr "すべてのページ(_A)" -#: ../gtk/gtkprintunixdialog.c:2229 +#: ../gtk/gtkprintunixdialog.c:2240 msgid "C_urrent Page" msgstr "現在のページだけ(_U)" -#: ../gtk/gtkprintunixdialog.c:2237 +#: ../gtk/gtkprintunixdialog.c:2248 msgid "Se_lection" msgstr "選択(_L)" -#: ../gtk/gtkprintunixdialog.c:2243 +#: ../gtk/gtkprintunixdialog.c:2254 msgid "Pag_es:" msgstr "ページ(_E):" -#: ../gtk/gtkprintunixdialog.c:2244 +#: ../gtk/gtkprintunixdialog.c:2255 msgid "" "Specify one or more page ranges,\n" " e.g. 1-3,7,11" @@ -2272,28 +2290,28 @@ msgstr "" "1ページ以上の範囲を指定してください;\n" "例: 1-3,7,11" -#: ../gtk/gtkprintunixdialog.c:2253 +#: ../gtk/gtkprintunixdialog.c:2264 msgid "Pages" msgstr "ページ" -#: ../gtk/gtkprintunixdialog.c:2264 +#: ../gtk/gtkprintunixdialog.c:2275 msgid "Copies" msgstr "コピー" #. FIXME chpe: too much space between Copies and spinbutton, put those 2 in a hbox and make it span 2 columns -#: ../gtk/gtkprintunixdialog.c:2269 +#: ../gtk/gtkprintunixdialog.c:2280 msgid "Copie_s:" msgstr "コピーの数(_S):" -#: ../gtk/gtkprintunixdialog.c:2285 +#: ../gtk/gtkprintunixdialog.c:2296 msgid "C_ollate" msgstr "ページを揃える(_O)" -#: ../gtk/gtkprintunixdialog.c:2291 +#: ../gtk/gtkprintunixdialog.c:2302 msgid "_Reverse" msgstr "ページを逆順にする(_R)" -#: ../gtk/gtkprintunixdialog.c:2307 +#: ../gtk/gtkprintunixdialog.c:2318 msgid "General" msgstr "全般" @@ -2303,168 +2321,168 @@ msgstr "全般" #. Translators: These strings name the possible arrangements of #. * multiple pages on a sheet when printing #. -#: ../gtk/gtkprintunixdialog.c:3047 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../gtk/gtkprintunixdialog.c:3058 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, top to bottom" msgstr "左から右へ、上から下へ" -#: ../gtk/gtkprintunixdialog.c:3047 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../gtk/gtkprintunixdialog.c:3058 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, bottom to top" msgstr "左から右へ、下から上へ" -#: ../gtk/gtkprintunixdialog.c:3048 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../gtk/gtkprintunixdialog.c:3059 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, top to bottom" msgstr "右から左へ、上から下へ" -#: ../gtk/gtkprintunixdialog.c:3048 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../gtk/gtkprintunixdialog.c:3059 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, bottom to top" msgstr "右から左へ、下から上へ" -#: ../gtk/gtkprintunixdialog.c:3049 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../gtk/gtkprintunixdialog.c:3060 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, left to right" msgstr "上から下へ、左から右へ" -#: ../gtk/gtkprintunixdialog.c:3049 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../gtk/gtkprintunixdialog.c:3060 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, right to left" msgstr "上から下へ、右から左へ" -#: ../gtk/gtkprintunixdialog.c:3050 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../gtk/gtkprintunixdialog.c:3061 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, left to right" msgstr "下から上へ、左から右へ" -#: ../gtk/gtkprintunixdialog.c:3050 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../gtk/gtkprintunixdialog.c:3061 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, right to left" msgstr "下から上へ、右から左へ" #. Translators, this string is used to label the option in the print #. * dialog that controls in what order multiple pages are arranged #. -#: ../gtk/gtkprintunixdialog.c:3054 ../gtk/gtkprintunixdialog.c:3067 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3766 +#: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772 msgid "Page Ordering" msgstr "ページの順番" -#: ../gtk/gtkprintunixdialog.c:3083 +#: ../gtk/gtkprintunixdialog.c:3094 msgid "Left to right" msgstr "左から右へ" -#: ../gtk/gtkprintunixdialog.c:3084 +#: ../gtk/gtkprintunixdialog.c:3095 msgid "Right to left" msgstr "右から左へ" -#: ../gtk/gtkprintunixdialog.c:3096 +#: ../gtk/gtkprintunixdialog.c:3107 msgid "Top to bottom" msgstr "上から下へ" -#: ../gtk/gtkprintunixdialog.c:3097 +#: ../gtk/gtkprintunixdialog.c:3108 msgid "Bottom to top" msgstr "下から上へ" -#: ../gtk/gtkprintunixdialog.c:3341 +#: ../gtk/gtkprintunixdialog.c:3352 msgid "Layout" msgstr "レイアウト" -#: ../gtk/gtkprintunixdialog.c:3345 +#: ../gtk/gtkprintunixdialog.c:3356 msgid "T_wo-sided:" msgstr "両面印刷(_W):" -#: ../gtk/gtkprintunixdialog.c:3357 +#: ../gtk/gtkprintunixdialog.c:3368 msgid "Pages per _side:" msgstr "段組み印刷(_S):" -#: ../gtk/gtkprintunixdialog.c:3371 +#: ../gtk/gtkprintunixdialog.c:3382 msgid "Page or_dering:" msgstr "ページの順番(_D):" -#: ../gtk/gtkprintunixdialog.c:3384 +#: ../gtk/gtkprintunixdialog.c:3395 msgid "_Only print:" msgstr "印刷の対象(_O):" #. In enum order -#: ../gtk/gtkprintunixdialog.c:3396 +#: ../gtk/gtkprintunixdialog.c:3407 msgid "All sheets" msgstr "すべてのページ" -#: ../gtk/gtkprintunixdialog.c:3397 +#: ../gtk/gtkprintunixdialog.c:3408 msgid "Even sheets" msgstr "偶数ページ" -#: ../gtk/gtkprintunixdialog.c:3398 +#: ../gtk/gtkprintunixdialog.c:3409 msgid "Odd sheets" msgstr "奇数ページ" -#: ../gtk/gtkprintunixdialog.c:3401 +#: ../gtk/gtkprintunixdialog.c:3412 msgid "Sc_ale:" msgstr "拡大/縮小(_A):" -#: ../gtk/gtkprintunixdialog.c:3425 +#: ../gtk/gtkprintunixdialog.c:3436 msgid "Paper" msgstr "用紙" -#: ../gtk/gtkprintunixdialog.c:3429 +#: ../gtk/gtkprintunixdialog.c:3440 msgid "Paper _type:" msgstr "種類(_T):" -#: ../gtk/gtkprintunixdialog.c:3441 +#: ../gtk/gtkprintunixdialog.c:3452 msgid "Paper _source:" msgstr "用紙のソース(_S):" -#: ../gtk/gtkprintunixdialog.c:3453 +#: ../gtk/gtkprintunixdialog.c:3464 msgid "Output t_ray:" msgstr "出力先のトレイ(_R):" -#: ../gtk/gtkprintunixdialog.c:3486 +#: ../gtk/gtkprintunixdialog.c:3497 msgid "Or_ientation:" msgstr "用紙の向き(_I):" #. In enum order -#: ../gtk/gtkprintunixdialog.c:3498 +#: ../gtk/gtkprintunixdialog.c:3509 msgid "Portrait" msgstr "縦方向" -#: ../gtk/gtkprintunixdialog.c:3499 +#: ../gtk/gtkprintunixdialog.c:3510 msgid "Landscape" msgstr "横方向" -#: ../gtk/gtkprintunixdialog.c:3500 +#: ../gtk/gtkprintunixdialog.c:3511 msgid "Reverse portrait" msgstr "縦方向(逆向き)" -#: ../gtk/gtkprintunixdialog.c:3501 +#: ../gtk/gtkprintunixdialog.c:3512 msgid "Reverse landscape" msgstr "横方向(逆向き)" -#: ../gtk/gtkprintunixdialog.c:3545 +#: ../gtk/gtkprintunixdialog.c:3556 msgid "Job Details" msgstr "印刷ジョブの詳細" -#: ../gtk/gtkprintunixdialog.c:3549 +#: ../gtk/gtkprintunixdialog.c:3560 msgid "Pri_ority:" msgstr "優先順位(_O):" -#: ../gtk/gtkprintunixdialog.c:3561 +#: ../gtk/gtkprintunixdialog.c:3572 msgid "_Billing info:" msgstr "サマリ情報(_B):" -#: ../gtk/gtkprintunixdialog.c:3576 +#: ../gtk/gtkprintunixdialog.c:3587 msgid "Print Document" msgstr "ドキュメントの印刷" #. Translators: this is one of the choices for the print at option #. * in the print dialog #. -#: ../gtk/gtkprintunixdialog.c:3583 +#: ../gtk/gtkprintunixdialog.c:3594 msgid "_Now" msgstr "今すぐ印刷する(_N)" -#: ../gtk/gtkprintunixdialog.c:3592 +#: ../gtk/gtkprintunixdialog.c:3603 msgid "A_t:" msgstr "時間を指定する(_T):" @@ -2472,7 +2490,7 @@ msgstr "時間を指定する(_T):" #. * You can remove the am/pm values below for your locale if they are not #. * supported. #. -#: ../gtk/gtkprintunixdialog.c:3598 +#: ../gtk/gtkprintunixdialog.c:3609 msgid "" "Specify the time of print,\n" " e.g. 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm" @@ -2480,68 +2498,68 @@ msgstr "" "印刷する時間を指定してください:\n" " (例) 15:30、午後 2:35、14:15:20, 午前 11:46:30 am、午後 4" -#: ../gtk/gtkprintunixdialog.c:3606 +#: ../gtk/gtkprintunixdialog.c:3617 msgid "Time of print" msgstr "プリント時間" -#: ../gtk/gtkprintunixdialog.c:3620 +#: ../gtk/gtkprintunixdialog.c:3631 msgid "On _hold" msgstr "保留する(_H)" -#: ../gtk/gtkprintunixdialog.c:3621 +#: ../gtk/gtkprintunixdialog.c:3632 msgid "Hold the job until it is explicitly released" msgstr "印刷ジョブが完全に解放されるまで保留しておきます" -#: ../gtk/gtkprintunixdialog.c:3639 +#: ../gtk/gtkprintunixdialog.c:3650 msgid "Add Cover Page" msgstr "裏表紙の追加" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: ../gtk/gtkprintunixdialog.c:3646 +#: ../gtk/gtkprintunixdialog.c:3657 msgid "Be_fore:" msgstr "前(_F):" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: ../gtk/gtkprintunixdialog.c:3661 +#: ../gtk/gtkprintunixdialog.c:3672 msgid "_After:" msgstr "後(_A):" #. Translators: this is the tab label for the notebook tab containing #. * job-specific options in the print dialog #. -#: ../gtk/gtkprintunixdialog.c:3676 +#: ../gtk/gtkprintunixdialog.c:3687 msgid "Job" msgstr "印刷ジョブ" -#: ../gtk/gtkprintunixdialog.c:3742 +#: ../gtk/gtkprintunixdialog.c:3753 msgid "Advanced" msgstr "拡張" #. Translators: this will appear as tab label in print dialog. -#: ../gtk/gtkprintunixdialog.c:3780 +#: ../gtk/gtkprintunixdialog.c:3791 msgid "Image Quality" msgstr "画像の品質" #. Translators: this will appear as tab label in print dialog. -#: ../gtk/gtkprintunixdialog.c:3784 +#: ../gtk/gtkprintunixdialog.c:3795 msgid "Color" msgstr "色" #. Translators: this will appear as tab label in print dialog. #. It's a typographical term, as in "Binding and finishing" -#: ../gtk/gtkprintunixdialog.c:3789 +#: ../gtk/gtkprintunixdialog.c:3800 msgid "Finishing" msgstr "完了" -#: ../gtk/gtkprintunixdialog.c:3799 +#: ../gtk/gtkprintunixdialog.c:3810 msgid "Some of the settings in the dialog conflict" msgstr "印刷ダイアログの設定に矛盾があります" -#: ../gtk/gtkprintunixdialog.c:3825 +#: ../gtk/gtkprintunixdialog.c:3836 msgid "Print" msgstr "印刷" @@ -2549,36 +2567,36 @@ msgstr "印刷" msgid "Select which type of documents are shown" msgstr "表示するファイルの種類を選択してください" -#: ../gtk/gtkrecentchooserdefault.c:1130 ../gtk/gtkrecentchooserdefault.c:1167 +#: ../gtk/gtkrecentchooserdefault.c:1129 ../gtk/gtkrecentchooserdefault.c:1166 #, c-format msgid "No item for URI '%s' found" msgstr "URI '%s' のアイテムはありません" -#: ../gtk/gtkrecentchooserdefault.c:1294 +#: ../gtk/gtkrecentchooserdefault.c:1293 msgid "Untitled filter" msgstr "タイトルなしのフィルター" -#: ../gtk/gtkrecentchooserdefault.c:1647 +#: ../gtk/gtkrecentchooserdefault.c:1646 msgid "Could not remove item" msgstr "アイテムを削除できませんでした" -#: ../gtk/gtkrecentchooserdefault.c:1691 +#: ../gtk/gtkrecentchooserdefault.c:1690 msgid "Could not clear list" msgstr "一覧をクリアできませんでした" -#: ../gtk/gtkrecentchooserdefault.c:1775 +#: ../gtk/gtkrecentchooserdefault.c:1774 msgid "Copy _Location" msgstr "場所のコピー(_L)" -#: ../gtk/gtkrecentchooserdefault.c:1788 +#: ../gtk/gtkrecentchooserdefault.c:1787 msgid "_Remove From List" msgstr "一覧から削除する(_R)" -#: ../gtk/gtkrecentchooserdefault.c:1797 +#: ../gtk/gtkrecentchooserdefault.c:1796 msgid "_Clear List" msgstr "一覧のクリア(_C)" -#: ../gtk/gtkrecentchooserdefault.c:1811 +#: ../gtk/gtkrecentchooserdefault.c:1810 msgid "Show _Private Resources" msgstr "個人的なリソースを表示する(_P)" @@ -3151,7 +3169,7 @@ msgstr "縮小(_O)" #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for #. * the state #. -#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:586 +#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:583 msgctxt "switch" msgid "ON" msgstr "オン" @@ -3159,7 +3177,7 @@ msgstr "オン" #. Translators: if the "off" state label requires more than three #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state #. -#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:615 +#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:598 msgctxt "switch" msgid "OFF" msgstr "オフ" @@ -3326,7 +3344,7 @@ msgstr "%2$d 行目 %3$d 文字目の予想外の開始タグ '%1$s'" msgid "Unexpected character data on line %d char %d" msgstr "%d 行の %d 文字目の文字データは予想外です" -#: ../gtk/gtkuimanager.c:2738 +#: ../gtk/gtkuimanager.c:2694 msgid "Empty" msgstr "空" @@ -4507,169 +4525,169 @@ msgstr "一時停止中 (印刷ジョブを破棄しています)" msgid "Rejecting Jobs" msgstr "印刷ジョブを破棄しています" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2909 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2915 msgid "Two Sided" msgstr "両面印刷" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2910 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2916 msgid "Paper Type" msgstr "用紙の種類" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2911 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2917 msgid "Paper Source" msgstr "用紙のソース" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2912 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2918 msgid "Output Tray" msgstr "出力トレイ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2913 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2919 msgid "Resolution" msgstr "解像度" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2914 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2920 msgid "GhostScript pre-filtering" msgstr "GhostScript のフィルタリング (前処理)" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2923 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 msgid "One Sided" msgstr "片面印刷" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2925 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 msgid "Long Edge (Standard)" msgstr "長辺 (標準)" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2927 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 msgid "Short Edge (Flip)" msgstr "短辺 (折り返し)" #. Translators: this is an option of "Paper Source" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 msgid "Auto Select" msgstr "自動選択" #. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Resolution" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2941 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3429 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3435 msgid "Printer Default" msgstr "プリンターのデフォルト" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 msgid "Embed GhostScript fonts only" msgstr "埋め込みの GhostScript のフォントだけ" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2951 msgid "Convert to PS level 1" msgstr "PS のレベル1に変換する" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2953 msgid "Convert to PS level 2" msgstr "PS のレベル2に変換する" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2955 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/cups/gtkprintbackendcups.c:2958 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2964 msgid "Miscellaneous" msgstr "その他" #. Translators: These strings name the possible values of the #. * job priority option in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Urgent" msgstr "緊急" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "High" msgstr "高い" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Medium" msgstr "普通" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Low" msgstr "低い" #. Translators, this string is used to label the job priority option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3711 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3717 msgid "Job Priority" msgstr "印刷ジョブの優先順位" #. Translators, this string is used to label the billing info entry #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3722 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3728 msgid "Billing Info" msgstr "サマリ情報" #. Translators, these strings are names for various 'standard' cover #. * pages that the printing system may support. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "None" msgstr "なし" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Classified" msgstr "機密" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Confidential" msgstr "極秘" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Secret" msgstr "秘密" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Standard" msgstr "標準" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Top Secret" msgstr "トップシークレット" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Unclassified" msgstr "機密ではない" #. Translators, this string is used to label the pages-per-sheet option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3748 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3754 msgid "Pages per Sheet" msgstr "ページ数/用紙" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3808 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3814 msgid "Before" msgstr "前" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3823 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3829 msgid "After" msgstr "後" @@ -4677,14 +4695,14 @@ msgstr "後" #. * a print job is printed. Possible values are 'now', a specified time, #. * or 'on hold' #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3843 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849 msgid "Print at" 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/cups/gtkprintbackendcups.c:3854 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860 msgid "Print at time" msgstr "一度に印刷する" @@ -4692,19 +4710,19 @@ msgstr "一度に印刷する" #. * size. The two placeholders are replaced with the width and height #. * in points. E.g: "Custom 230.4x142.9" #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895 #, c-format msgid "Custom %sx%s" msgstr "カスタム %sx%s" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3970 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3976 #, fuzzy #| msgid "Printer offline" msgid "Printer Profile" msgstr "プリンターはオフラインです" #. TRANSLATORS: this is when color profile information is unavailable -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3977 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3983 #, fuzzy #| msgid "Not available" msgid "Unavailable" @@ -4812,6 +4830,18 @@ msgstr "test-output.%s" msgid "Print to Test Printer" msgstr "テスト用プリンターに印刷する" +#~ msgid "Homepage" +#~ msgstr "ホームページ" + +#~ msgid "Manage Custom Sizes..." +#~ msgstr "その他のサイズ..." + +#~ msgid "Select a folder" +#~ msgstr "フォルダーを選択" + +#~ msgid "_Save in folder:" +#~ msgstr "フォルダーの中に保存(_S):" + #~ msgid "Connect as u_ser:" #~ msgstr "ユーザーを指定する(_S):" From 1da329b2bd0bcf1303d9cc557055f77482420967 Mon Sep 17 00:00:00 2001 From: Shushi KUROSE Date: Mon, 18 Feb 2013 23:36:53 +0900 Subject: [PATCH 091/208] [l10n] Update Japanese translation --- po/ja.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/po/ja.po b/po/ja.po index f1e535c7f5..1f80e03c9b 100644 --- a/po/ja.po +++ b/po/ja.po @@ -11,14 +11,15 @@ # Masato Hashimoto , 2010. # IWAI, Masaharu , 2010. # Jiro Matsuzawa , 2011, 2012. +# Shushi KUROSE , 2013. # msgid "" msgstr "" "Project-Id-Version: gtk+ gtk-3-2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2013-01-19 19:42+0000\n" -"PO-Revision-Date: 2012-08-21 12:20+0900\n" -"Last-Translator: Jiro Matsuzawa \n" +"POT-Creation-Date: 2013-02-18 10:38+0000\n" +"PO-Revision-Date: 2013-02-16 01:14+0900\n" +"Last-Translator: Shushi KUROSE \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" @@ -2553,7 +2554,7 @@ msgstr "色" #. It's a typographical term, as in "Binding and finishing" #: ../gtk/gtkprintunixdialog.c:3800 msgid "Finishing" -msgstr "完了" +msgstr "仕上げ" #: ../gtk/gtkprintunixdialog.c:3810 msgid "Some of the settings in the dialog conflict" From 1db87c897f930171646351c99af7df09dc7ec949 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Fri, 15 Feb 2013 17:04:39 -0500 Subject: [PATCH 092/208] Add gdk_frame_clock_begin/end_updating() Add an API to start or stop continually updating the frame clock. This is a slight convenience for applcations and avoids the problem of getting one more frame run after an animation stops, but the primary motivation for this is because it looks like we might have to use timeBeginPeriod()/timeEndPeriod() on Windows to get reasonably accurate timing, and for that we'll need to know if there is an animation running. https://bugzilla.gnome.org/show_bug.cgi?id=693934 --- gdk/gdk.symbols | 2 + gdk/gdkframeclock.c | 44 +++++++++++++++++- gdk/gdkframeclock.h | 5 ++ gdk/gdkframeclockidle.c | 93 ++++++++++++++++++++++++++++---------- gdk/gdkframeclockprivate.h | 2 + gtk/gtkstylecontext.c | 6 +-- gtk/gtkwidget.c | 20 ++++---- tests/video-timer.c | 4 +- 8 files changed, 133 insertions(+), 43 deletions(-) diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols index b01f3e5191..1f99c6406c 100644 --- a/gdk/gdk.symbols +++ b/gdk/gdk.symbols @@ -188,6 +188,8 @@ gdk_events_pending gdk_event_type_get_type gdk_filter_return_get_type gdk_flush +gdk_frame_clock_begin_updating +gdk_frame_clock_end_updating gdk_frame_clock_get_current_timings gdk_frame_clock_get_frame_counter gdk_frame_clock_get_frame_time diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index 4d1c7658b9..1994b00e8b 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -285,7 +285,12 @@ gdk_frame_clock_get_frame_time (GdkFrameClock *frame_clock) * corresponding the requested phase will be emitted the next * time the frame clock processes. Multiple calls to * gdk_frame_clock_request_phase() will be combined togethe - * and only one frame processed. + * and only one frame processed. If you are displaying animated + * content and want to continually request the + * %GDK_FRAME_CLOCK_PHASE_UPDATE phase for a period of time, + * you should use gdk_frame_clock_begin_updating() instead, since + * this allows GTK+ to adjust system parameters to get maximally + * smooth animations. * * Since: 3.8 */ @@ -298,6 +303,43 @@ gdk_frame_clock_request_phase (GdkFrameClock *frame_clock, GDK_FRAME_CLOCK_GET_CLASS (frame_clock)->request_phase (frame_clock, phase); } +/** + * gdk_frame_clock_begin_updating: + * @frame_clock: a #GdkFrameClock + * + * Starts updates for an animation. Until a matching call to + * gdk_frame_clock_end_updating() is made, the frame clock will continually + * request a new frame with the %GDK_FRAME_CLOCK_PHASE_UPDATE phase. + * This function may be called multiple times and frames will be + * requested until gdk_frame_clock_end_updating() is called the same + * number of times. + * + * Since: 3.8 + */ +void +gdk_frame_clock_begin_updating (GdkFrameClock *frame_clock) +{ + g_return_if_fail (GDK_IS_FRAME_CLOCK (frame_clock)); + + GDK_FRAME_CLOCK_GET_CLASS (frame_clock)->begin_updating (frame_clock); +} + +/** + * gdk_frame_clock_end_updating: + * @frame_clock: a #GdkFrameClock + * + * Stops updates for an animation. See the documentation for + * gdk_frame_clock_begin_updating(). + * + * Since: 3.8 + */ +void +gdk_frame_clock_end_updating (GdkFrameClock *frame_clock) +{ + g_return_if_fail (GDK_IS_FRAME_CLOCK (frame_clock)); + + GDK_FRAME_CLOCK_GET_CLASS (frame_clock)->end_updating (frame_clock); +} void _gdk_frame_clock_freeze (GdkFrameClock *clock) diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index f6529795af..a82d5cf594 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -82,6 +82,11 @@ GDK_AVAILABLE_IN_3_8 void gdk_frame_clock_request_phase (GdkFrameClock *frame_clock, GdkFrameClockPhase phase); +GDK_AVAILABLE_IN_3_8 +void gdk_frame_clock_begin_updating (GdkFrameClock *frame_clock); +GDK_AVAILABLE_IN_3_8 +void gdk_frame_clock_end_updating (GdkFrameClock *frame_clock); + /* Frame history */ GDK_AVAILABLE_IN_3_8 gint64 gdk_frame_clock_get_frame_counter (GdkFrameClock *frame_clock); diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index d07c1d80bb..0db5bfdbc3 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -45,6 +45,7 @@ struct _GdkFrameClockIdlePrivate guint flush_idle_id; guint paint_idle_id; guint freeze_count; + guint updating_count; GdkFrameClockPhase requested; GdkFrameClockPhase phase; @@ -192,12 +193,26 @@ gdk_frame_clock_idle_get_frame_time (GdkFrameClock *clock) return priv->frame_time; } +#define RUN_FLUSH_IDLE(priv) \ + ((priv)->freeze_count == 0 && \ + ((priv)->requested & GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS) != 0) + +/* The reason why we track updating_count separately here and don't + * just add GDK_FRAME_CLOCK_PHASE_UPDATE into ->request on every frame + * is so that we can avoid doing one more frame when an animation + * is cancelled. + */ +#define RUN_PAINT_IDLE(priv) \ + ((priv)->freeze_count == 0 && \ + (((priv)->requested & ~GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS) != 0 || \ + (priv)->updating_count > 0)) + static void maybe_start_idle (GdkFrameClockIdle *clock_idle) { GdkFrameClockIdlePrivate *priv = clock_idle->priv; - if (priv->freeze_count == 0 && priv->requested != 0) + if (RUN_FLUSH_IDLE (priv) || RUN_PAINT_IDLE (priv)) { guint min_interval = 0; @@ -208,8 +223,7 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) min_interval = (min_interval_us + 500) / 1000; } - if (priv->flush_idle_id == 0 && - (priv->requested & GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS) != 0) + if (priv->flush_idle_id == 0 && RUN_FLUSH_IDLE (priv)) { priv->flush_idle_id = gdk_threads_add_timeout_full (GDK_PRIORITY_EVENTS + 1, min_interval, @@ -218,9 +232,7 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) (GDestroyNotify) g_object_unref); } - if (priv->paint_idle_id == 0 && - !priv->in_paint_idle && - (priv->requested & ~GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS) != 0) + if (priv->paint_idle_id == 0 && RUN_PAINT_IDLE (priv)) { priv->paint_idle_id = gdk_threads_add_timeout_full (GDK_PRIORITY_REDRAW, min_interval, @@ -231,6 +243,24 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) } } +static void +maybe_stop_idle (GdkFrameClockIdle *clock_idle) +{ + GdkFrameClockIdlePrivate *priv = clock_idle->priv; + + if (priv->flush_idle_id != 0 && !RUN_FLUSH_IDLE (priv)) + { + g_source_remove (priv->flush_idle_id); + priv->flush_idle_id = 0; + } + + if (priv->paint_idle_id != 0 && !RUN_PAINT_IDLE (priv)) + { + g_source_remove (priv->paint_idle_id); + priv->paint_idle_id = 0; + } +} + static gint64 compute_min_next_frame_time (GdkFrameClockIdle *clock_idle, gint64 last_frame_time) @@ -265,7 +295,8 @@ gdk_frame_clock_flush_idle (void *data) g_signal_emit_by_name (G_OBJECT (clock), "flush-events"); - if ((priv->requested & ~GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS) != 0) + if ((priv->requested & ~GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS) != 0 || + priv->updating_count > 0) priv->phase = GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; else priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; @@ -287,7 +318,8 @@ gdk_frame_clock_paint_idle (void *data) priv->min_next_frame_time = 0; skip_to_resume_events = - (priv->requested & ~(GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS | GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS)) == 0; + (priv->requested & ~(GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS | GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS)) == 0 && + priv->updating_count == 0; if (priv->phase > GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT) { @@ -325,7 +357,8 @@ gdk_frame_clock_paint_idle (void *data) case GDK_FRAME_CLOCK_PHASE_UPDATE: if (priv->freeze_count == 0) { - if (priv->requested & GDK_FRAME_CLOCK_PHASE_UPDATE) + if ((priv->requested & GDK_FRAME_CLOCK_PHASE_UPDATE) != 0 || + priv->updating_count > 0) { priv->requested &= ~GDK_FRAME_CLOCK_PHASE_UPDATE; g_signal_emit_by_name (G_OBJECT (clock), "update"); @@ -435,26 +468,36 @@ gdk_frame_clock_idle_request_phase (GdkFrameClock *clock, maybe_start_idle (clock_idle); } +static void +gdk_frame_clock_idle_begin_updating (GdkFrameClock *clock) +{ + GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); + GdkFrameClockIdlePrivate *priv = clock_idle->priv; + + priv->updating_count++; + maybe_start_idle (clock_idle); +} + +static void +gdk_frame_clock_idle_end_updating (GdkFrameClock *clock) +{ + GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); + GdkFrameClockIdlePrivate *priv = clock_idle->priv; + + g_return_if_fail (priv->updating_count > 0); + + priv->updating_count--; + maybe_stop_idle (clock_idle); +} + static void gdk_frame_clock_idle_freeze (GdkFrameClock *clock) { - GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (clock)->priv; + GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); + GdkFrameClockIdlePrivate *priv = clock_idle->priv; priv->freeze_count++; - - if (priv->freeze_count == 1) - { - if (priv->flush_idle_id) - { - g_source_remove (priv->flush_idle_id); - priv->flush_idle_id = 0; - } - if (priv->paint_idle_id) - { - g_source_remove (priv->paint_idle_id); - priv->paint_idle_id = 0; - } - } + maybe_stop_idle (clock_idle); } static void @@ -489,6 +532,8 @@ gdk_frame_clock_idle_class_init (GdkFrameClockIdleClass *klass) frame_clock_class->get_frame_time = gdk_frame_clock_idle_get_frame_time; frame_clock_class->request_phase = gdk_frame_clock_idle_request_phase; + frame_clock_class->begin_updating = gdk_frame_clock_idle_begin_updating; + frame_clock_class->end_updating = gdk_frame_clock_idle_end_updating; frame_clock_class->freeze = gdk_frame_clock_idle_freeze; frame_clock_class->thaw = gdk_frame_clock_idle_thaw; diff --git a/gdk/gdkframeclockprivate.h b/gdk/gdkframeclockprivate.h index fd505bec6b..27629e38aa 100644 --- a/gdk/gdkframeclockprivate.h +++ b/gdk/gdkframeclockprivate.h @@ -49,6 +49,8 @@ struct _GdkFrameClockClass void (* request_phase) (GdkFrameClock *clock, GdkFrameClockPhase phase); + void (* begin_updating) (GdkFrameClock *clock); + void (* end_updating) (GdkFrameClock *clock); void (* freeze) (GdkFrameClock *clock); void (* thaw) (GdkFrameClock *clock); diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index 7fa5ee7ba1..f5d1e86ea5 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -739,9 +739,6 @@ gtk_style_context_update (GdkFrameClock *clock, GtkStyleContext *context) { _gtk_style_context_queue_invalidate (context, GTK_CSS_CHANGE_ANIMATE); - - /* A little blech to request one more than we need */ - gdk_frame_clock_request_phase (clock, GDK_FRAME_CLOCK_PHASE_UPDATE); } static gboolean @@ -762,6 +759,7 @@ gtk_style_context_disconnect_update (GtkStyleContext *context) g_signal_handler_disconnect (priv->frame_clock, priv->frame_clock_update_id); priv->frame_clock_update_id = 0; + gdk_frame_clock_end_updating (priv->frame_clock); } } @@ -776,7 +774,7 @@ gtk_style_context_connect_update (GtkStyleContext *context) "update", G_CALLBACK (gtk_style_context_update), context); - gdk_frame_clock_request_phase (priv->frame_clock, GDK_FRAME_CLOCK_PHASE_UPDATE); + gdk_frame_clock_begin_updating (priv->frame_clock); } } diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 231d27b773..8a7fb18f69 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4554,6 +4554,7 @@ unref_tick_callback_info (GtkWidget *widget, g_signal_handlers_disconnect_by_func (frame_clock, (gpointer) gtk_widget_on_frame_clock_update, widget); + gdk_frame_clock_end_updating (frame_clock); } } @@ -4596,10 +4597,6 @@ gtk_widget_on_frame_clock_update (GdkFrameClock *frame_clock, unref_tick_callback_info (widget, info, l); l = next; } - - if (priv->tick_callbacks != NULL) - gdk_frame_clock_request_phase (frame_clock, - GDK_FRAME_CLOCK_PHASE_UPDATE); } static guint tick_callback_id; @@ -4651,8 +4648,7 @@ gtk_widget_add_tick_callback (GtkWidget *widget, g_signal_connect (frame_clock, "update", G_CALLBACK (gtk_widget_on_frame_clock_update), widget); - gdk_frame_clock_request_phase (frame_clock, - GDK_FRAME_CLOCK_PHASE_UPDATE); + gdk_frame_clock_begin_updating (frame_clock); } info = g_slice_new0 (GtkTickCallbackInfo); @@ -4702,8 +4698,7 @@ gtk_widget_connect_frame_clock (GtkWidget *widget, g_signal_connect (frame_clock, "update", G_CALLBACK (gtk_widget_on_frame_clock_update), widget); - gdk_frame_clock_request_phase (frame_clock, - GDK_FRAME_CLOCK_PHASE_UPDATE); + gdk_frame_clock_begin_updating (frame_clock); } if (priv->context) @@ -4720,9 +4715,12 @@ gtk_widget_disconnect_frame_clock (GtkWidget *widget, _gtk_container_stop_idle_sizer (GTK_CONTAINER (widget)); if (priv->tick_callbacks) - g_signal_handlers_disconnect_by_func (frame_clock, - (gpointer) gtk_widget_on_frame_clock_update, - widget); + { + g_signal_handlers_disconnect_by_func (frame_clock, + (gpointer) gtk_widget_on_frame_clock_update, + widget); + gdk_frame_clock_end_updating (frame_clock); + } if (priv->context) gtk_style_context_set_frame_clock (priv->context, NULL); diff --git a/tests/video-timer.c b/tests/video-timer.c index 1ddc260267..f858240049 100644 --- a/tests/video-timer.c +++ b/tests/video-timer.c @@ -350,8 +350,6 @@ on_update (GdkFrameClock *frame_clock, gtk_widget_queue_draw (window); } - - gdk_frame_clock_request_phase (frame_clock, GDK_FRAME_CLOCK_PHASE_UPDATE); } static GOptionEntry options[] = { @@ -393,7 +391,7 @@ main(int argc, char **argv) frame_clock = gtk_widget_get_frame_clock (window); g_signal_connect (frame_clock, "update", G_CALLBACK (on_update), NULL); - gdk_frame_clock_request_phase (frame_clock, GDK_FRAME_CLOCK_PHASE_UPDATE); + gdk_frame_clock_begin_updating (frame_clock); gtk_main (); From 5dbf814f0c0c94733ef96d6dc3c8c5ddb7a63f3a Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Mon, 18 Feb 2013 15:37:22 +0100 Subject: [PATCH 093/208] win32: Request higher precision timers during animations The default windows timer resolution is 16msec, which is too little for fluent animations (say at 60Hz). So, while a paint clock is active we temporarily raise the timer resolution to 1 msec. --- gdk/gdkframeclockidle.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 0db5bfdbc3..7e1a8c17e6 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -31,6 +31,10 @@ #include "gdkframeclockidle.h" #include "gdk.h" +#ifdef G_OS_WIN32 +#include +#endif + #define FRAME_INTERVAL 16667 // microseconds struct _GdkFrameClockIdlePrivate @@ -51,6 +55,9 @@ struct _GdkFrameClockIdlePrivate GdkFrameClockPhase phase; guint in_paint_idle : 1; +#ifdef G_OS_WIN32 + guint begin_period : 1; +#endif }; static gboolean gdk_frame_clock_flush_idle (void *data); @@ -140,6 +147,14 @@ gdk_frame_clock_idle_dispose (GObject *object) priv->paint_idle_id = 0; } +#ifdef G_OS_WIN32 + if (priv->begin_period) + { + timeEndPeriod(1); + priv->begin_period = FALSE; + } +#endif + G_OBJECT_CLASS (gdk_frame_clock_idle_parent_class)->dispose (object); } @@ -474,6 +489,15 @@ gdk_frame_clock_idle_begin_updating (GdkFrameClock *clock) GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock); GdkFrameClockIdlePrivate *priv = clock_idle->priv; +#ifdef G_OS_WIN32 + /* We need a higher resolution timer while doing animations */ + if (priv->updating_count == 0 && !priv->begin_period) + { + timeBeginPeriod(1); + priv->begin_period = TRUE; + } +#endif + priv->updating_count++; maybe_start_idle (clock_idle); } @@ -488,6 +512,14 @@ gdk_frame_clock_idle_end_updating (GdkFrameClock *clock) priv->updating_count--; maybe_stop_idle (clock_idle); + +#ifdef G_OS_WIN32 + if (priv->updating_count == 0 && priv->begin_period) + { + timeEndPeriod(1); + priv->begin_period = FALSE; + } +#endif } static void From 3c8a4126a897b032eda6c7baa287ebe94c9e5736 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Mon, 18 Feb 2013 11:59:26 +0100 Subject: [PATCH 094/208] GtkAccelLabel: Don't show "+" if there's no more keys to add With the following code: #define INVALID_CHAR GDK_KEY_VoidSymbol - 1 gtk_accelerator_get_label (INVALID_CHAR, GDK_SHIFT_MASK | GDK_CONTROL_MASK); we would get this label: Shift+Ctrl+ instead of this label: Shift+Ctrl https://bugzilla.gnome.org/show_bug.cgi?id=694075 --- gtk/gtkaccellabel.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gtk/gtkaccellabel.c b/gtk/gtkaccellabel.c index 311b4a4d7f..d8bb7e96fa 100644 --- a/gtk/gtkaccellabel.c +++ b/gtk/gtkaccellabel.c @@ -836,12 +836,13 @@ _gtk_accel_label_class_get_accelerator_label (GtkAccelLabelClass *klass, #endif seen_mod = TRUE; } - if (seen_mod) - g_string_append (gstring, klass->mod_separator); ch = gdk_keyval_to_unicode (accelerator_key); if (ch && ch < 0x80 && (g_unichar_isgraph (ch) || ch == ' ')) { + if (seen_mod) + g_string_append (gstring, klass->mod_separator); + switch (ch) { case ' ': @@ -862,6 +863,9 @@ _gtk_accel_label_class_get_accelerator_label (GtkAccelLabelClass *klass, tmp = gdk_keyval_name (gdk_keyval_to_lower (accelerator_key)); if (tmp != NULL) { + if (seen_mod) + g_string_append (gstring, klass->mod_separator); + if (tmp[0] != 0 && tmp[1] == 0) g_string_append_c (gstring, g_ascii_toupper (tmp[0])); else From e6b5608f437b8f7058689d8810a871732f245e57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=80=D0=BE=D1=81=D0=BB=D0=B0=D0=B2=20=D0=9D?= =?UTF-8?q?=D0=B8=D0=BA=D0=BE=D0=BB=D0=B8=D1=9B?= Date: Mon, 18 Feb 2013 19:15:01 +0100 Subject: [PATCH 095/208] Updated Serbian translation --- po/sr.po | 53 +++++++++++++++++++++----------------------------- po/sr@latin.po | 53 +++++++++++++++++++++----------------------------- 2 files changed, 44 insertions(+), 62 deletions(-) diff --git a/po/sr.po b/po/sr.po index d1c99080d3..97ad5d3b8d 100644 --- a/po/sr.po +++ b/po/sr.po @@ -11,8 +11,8 @@ msgstr "" "Project-Id-Version: gtk+ 2.14\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%" "2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-12-15 20:12+0000\n" -"PO-Revision-Date: 2013-01-19 11:29+0200\n" +"POT-Creation-Date: 2013-01-19 19:42+0000\n" +"PO-Revision-Date: 2013-02-18 11:53+0200\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian \n" "Language: sr\n" @@ -72,7 +72,7 @@ msgstr "ГДК опције за уклањање грешака за поста #. Placeholder in --gdk-no-debug=FLAGS in --help output #. Placeholder in --gtk-debug=FLAGS in --help output #. Placeholder in --gtk-no-debug=FLAGS in --help output -#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:454 ../gtk/gtkmain.c:457 +#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:453 ../gtk/gtkmain.c:456 msgid "FLAGS" msgstr "ОПЦИЈЕ" @@ -461,21 +461,21 @@ msgstr[1] "Отварам %d ставке" msgstr[2] "Отварам %d ставки" msgstr[3] "Отварам једну ставку" -#: ../gtk/a11y/gtkspinneraccessible.c:40 +#: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" msgstr "Вртешка" -#: ../gtk/a11y/gtkspinneraccessible.c:41 +#: ../gtk/a11y/gtkspinneraccessible.c:40 msgid "Provides visual indication of progress" msgstr "Обезбеђује видљив приказ напретка неке радње" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:62 msgctxt "light switch widget" msgid "Switch" msgstr "Прекидач" -#: ../gtk/a11y/gtkswitchaccessible.c:64 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgid "Switches between on and off states" msgstr "Пребацује са укљученог на искључено и обратно" @@ -688,29 +688,28 @@ msgstr "_Лиценца" msgid "Could not show link" msgstr "Не могу да прикажем везу" -# ako je za "home directory", onda bi bilo dobro "licni direktorijum", ako je za "home page", onda za "licna stranica" #: ../gtk/gtkaboutdialog.c:1017 -msgid "Homepage" -msgstr "Матична страница" +msgid "Website" +msgstr "Веб страница" #: ../gtk/gtkaboutdialog.c:1071 #, c-format msgid "About %s" msgstr "О програму „%s“" -#: ../gtk/gtkaboutdialog.c:2396 +#: ../gtk/gtkaboutdialog.c:2398 msgid "Created by" msgstr "Аутори" -#: ../gtk/gtkaboutdialog.c:2399 +#: ../gtk/gtkaboutdialog.c:2401 msgid "Documented by" msgstr "Документација" -#: ../gtk/gtkaboutdialog.c:2409 +#: ../gtk/gtkaboutdialog.c:2411 msgid "Translated by" msgstr "Превод" -#: ../gtk/gtkaboutdialog.c:2414 +#: ../gtk/gtkaboutdialog.c:2416 msgid "Artwork by" msgstr "Графика" @@ -785,7 +784,6 @@ msgid "Backslash" msgstr "Контра коса црта" #: ../gtk/gtkappchooserbutton.c:290 -#| msgid "Other application..." msgid "Other application…" msgstr "Други програм…" @@ -1028,7 +1026,6 @@ msgstr "Неисправна" #. * acelerator. #. #: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 -#| msgid "New accelerator..." msgid "New accelerator…" msgstr "Нова пречица…" @@ -1331,7 +1328,6 @@ msgid "mm" msgstr "mm" #: ../gtk/gtkcustompaperunixdialog.c:605 -#| msgid "Margins from Printer..." msgid "Margins from Printer…" msgstr "Маргине као у штампачу…" @@ -1438,7 +1434,6 @@ msgid "(None)" msgstr "(ништа)" #: ../gtk/gtkfilechooserbutton.c:2046 -#| msgid "Other..." msgid "Other…" msgstr "Друга…" @@ -1551,7 +1546,6 @@ msgid "Remove" msgstr "Уклони" #: ../gtk/gtkfilechooserdefault.c:3389 -#| msgid "Rename..." msgid "Rename…" msgstr "Преименуј…" @@ -1795,7 +1789,6 @@ msgid "Copy _Link Address" msgstr "Умножи _адресу везе" #: ../gtk/gtk-launch.c:71 -#| msgid "APPLICATION [URI...] - launch an APPLICATION with URI." msgid "APPLICATION [URI…] — launch an APPLICATION with URI." msgstr "ПРОГРАМ [ПУТАЊА…] — покреће ПРОГРАМ са ПУТАЊОМ." @@ -1889,27 +1882,27 @@ msgstr "" # допунски додаци? „добар фазон“... црни Данило #. Description of --gtk-module=MODULES in --help output -#: ../gtk/gtkmain.c:447 +#: ../gtk/gtkmain.c:446 msgid "Load additional GTK+ modules" msgstr "Учитава допунске Гтк+ додатке" #. Placeholder in --gtk-module=MODULES in --help output -#: ../gtk/gtkmain.c:448 +#: ../gtk/gtkmain.c:447 msgid "MODULES" msgstr "ДОДАЦИ" #. Description of --g-fatal-warnings in --help output -#: ../gtk/gtkmain.c:450 +#: ../gtk/gtkmain.c:449 msgid "Make all warnings fatal" msgstr "Чини сва упозорења кобним" #. Description of --gtk-debug=FLAGS in --help output -#: ../gtk/gtkmain.c:453 +#: ../gtk/gtkmain.c:452 msgid "GTK+ debugging flags to set" msgstr "Гтк+ опције за уклањање грешака за укључивање" #. Description of --gtk-no-debug=FLAGS in --help output -#: ../gtk/gtkmain.c:456 +#: ../gtk/gtkmain.c:455 msgid "GTK+ debugging flags to unset" msgstr "Гтк+ опције за уклањање грешака за искључивање" @@ -1918,20 +1911,20 @@ 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:704 +#: ../gtk/gtkmain.c:703 msgid "default:LTR" msgstr "default:LTR" -#: ../gtk/gtkmain.c:769 +#: ../gtk/gtkmain.c:768 #, c-format msgid "Cannot open display: %s" msgstr "Не могу да приступим екрану: %s" -#: ../gtk/gtkmain.c:835 +#: ../gtk/gtkmain.c:834 msgid "GTK+ Options" msgstr "Гтк+ опције" -#: ../gtk/gtkmain.c:835 +#: ../gtk/gtkmain.c:834 msgid "Show GTK+ Options" msgstr "Приказује Гтк+ опције" @@ -2062,7 +2055,6 @@ msgstr "" " Доле: %s %s" #: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 -#| msgid "Manage Custom Sizes" msgid "Manage Custom Sizes…" msgstr "Управљај произвољним величинама…" @@ -2246,7 +2238,6 @@ msgid "Getting printer information failed" msgstr "Не могу да прикупим податке о штампачу" #: ../gtk/gtkprintunixdialog.c:1916 -#| msgid "Getting printer information..." msgid "Getting printer information…" msgstr "Прикупљам податке о штампачу…" diff --git a/po/sr@latin.po b/po/sr@latin.po index 1b8ce9f3c9..8fe26dc00f 100644 --- a/po/sr@latin.po +++ b/po/sr@latin.po @@ -11,8 +11,8 @@ msgstr "" "Project-Id-Version: gtk+ 2.14\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%" "2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-12-15 20:12+0000\n" -"PO-Revision-Date: 2013-01-19 11:29+0200\n" +"POT-Creation-Date: 2013-01-19 19:42+0000\n" +"PO-Revision-Date: 2013-02-18 11:53+0200\n" "Last-Translator: Miroslav Nikolić \n" "Language-Team: Serbian \n" "Language: sr\n" @@ -72,7 +72,7 @@ msgstr "GDK opcije za uklanjanje grešaka za postavljanje" #. Placeholder in --gdk-no-debug=FLAGS in --help output #. Placeholder in --gtk-debug=FLAGS in --help output #. Placeholder in --gtk-no-debug=FLAGS in --help output -#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:454 ../gtk/gtkmain.c:457 +#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:453 ../gtk/gtkmain.c:456 msgid "FLAGS" msgstr "OPCIJE" @@ -461,21 +461,21 @@ msgstr[1] "Otvaram %d stavke" msgstr[2] "Otvaram %d stavki" msgstr[3] "Otvaram jednu stavku" -#: ../gtk/a11y/gtkspinneraccessible.c:40 +#: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" msgstr "Vrteška" -#: ../gtk/a11y/gtkspinneraccessible.c:41 +#: ../gtk/a11y/gtkspinneraccessible.c:40 msgid "Provides visual indication of progress" msgstr "Obezbeđuje vidljiv prikaz napretka neke radnje" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:62 msgctxt "light switch widget" msgid "Switch" msgstr "Prekidač" -#: ../gtk/a11y/gtkswitchaccessible.c:64 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgid "Switches between on and off states" msgstr "Prebacuje sa uključenog na isključeno i obratno" @@ -688,29 +688,28 @@ msgstr "_Licenca" msgid "Could not show link" msgstr "Ne mogu da prikažem vezu" -# ako je za "home directory", onda bi bilo dobro "licni direktorijum", ako je za "home page", onda za "licna stranica" #: ../gtk/gtkaboutdialog.c:1017 -msgid "Homepage" -msgstr "Matična stranica" +msgid "Website" +msgstr "Veb stranica" #: ../gtk/gtkaboutdialog.c:1071 #, c-format msgid "About %s" msgstr "O programu „%s“" -#: ../gtk/gtkaboutdialog.c:2396 +#: ../gtk/gtkaboutdialog.c:2398 msgid "Created by" msgstr "Autori" -#: ../gtk/gtkaboutdialog.c:2399 +#: ../gtk/gtkaboutdialog.c:2401 msgid "Documented by" msgstr "Dokumentacija" -#: ../gtk/gtkaboutdialog.c:2409 +#: ../gtk/gtkaboutdialog.c:2411 msgid "Translated by" msgstr "Prevod" -#: ../gtk/gtkaboutdialog.c:2414 +#: ../gtk/gtkaboutdialog.c:2416 msgid "Artwork by" msgstr "Grafika" @@ -785,7 +784,6 @@ msgid "Backslash" msgstr "Kontra kosa crta" #: ../gtk/gtkappchooserbutton.c:290 -#| msgid "Other application..." msgid "Other application…" msgstr "Drugi program…" @@ -1028,7 +1026,6 @@ msgstr "Neispravna" #. * acelerator. #. #: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 -#| msgid "New accelerator..." msgid "New accelerator…" msgstr "Nova prečica…" @@ -1331,7 +1328,6 @@ msgid "mm" msgstr "mm" #: ../gtk/gtkcustompaperunixdialog.c:605 -#| msgid "Margins from Printer..." msgid "Margins from Printer…" msgstr "Margine kao u štampaču…" @@ -1438,7 +1434,6 @@ msgid "(None)" msgstr "(ništa)" #: ../gtk/gtkfilechooserbutton.c:2046 -#| msgid "Other..." msgid "Other…" msgstr "Druga…" @@ -1551,7 +1546,6 @@ msgid "Remove" msgstr "Ukloni" #: ../gtk/gtkfilechooserdefault.c:3389 -#| msgid "Rename..." msgid "Rename…" msgstr "Preimenuj…" @@ -1795,7 +1789,6 @@ msgid "Copy _Link Address" msgstr "Umnoži _adresu veze" #: ../gtk/gtk-launch.c:71 -#| msgid "APPLICATION [URI...] - launch an APPLICATION with URI." msgid "APPLICATION [URI…] — launch an APPLICATION with URI." msgstr "PROGRAM [PUTANJA…] — pokreće PROGRAM sa PUTANJOM." @@ -1889,27 +1882,27 @@ msgstr "" # dopunski dodaci? „dobar fazon“... crni Danilo #. Description of --gtk-module=MODULES in --help output -#: ../gtk/gtkmain.c:447 +#: ../gtk/gtkmain.c:446 msgid "Load additional GTK+ modules" msgstr "Učitava dopunske Gtk+ dodatke" #. Placeholder in --gtk-module=MODULES in --help output -#: ../gtk/gtkmain.c:448 +#: ../gtk/gtkmain.c:447 msgid "MODULES" msgstr "DODACI" #. Description of --g-fatal-warnings in --help output -#: ../gtk/gtkmain.c:450 +#: ../gtk/gtkmain.c:449 msgid "Make all warnings fatal" msgstr "Čini sva upozorenja kobnim" #. Description of --gtk-debug=FLAGS in --help output -#: ../gtk/gtkmain.c:453 +#: ../gtk/gtkmain.c:452 msgid "GTK+ debugging flags to set" msgstr "Gtk+ opcije za uklanjanje grešaka za uključivanje" #. Description of --gtk-no-debug=FLAGS in --help output -#: ../gtk/gtkmain.c:456 +#: ../gtk/gtkmain.c:455 msgid "GTK+ debugging flags to unset" msgstr "Gtk+ opcije za uklanjanje grešaka za isključivanje" @@ -1918,20 +1911,20 @@ msgstr "Gtk+ opcije za uklanjanje grešaka za isključivanje" #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: ../gtk/gtkmain.c:704 +#: ../gtk/gtkmain.c:703 msgid "default:LTR" msgstr "default:LTR" -#: ../gtk/gtkmain.c:769 +#: ../gtk/gtkmain.c:768 #, c-format msgid "Cannot open display: %s" msgstr "Ne mogu da pristupim ekranu: %s" -#: ../gtk/gtkmain.c:835 +#: ../gtk/gtkmain.c:834 msgid "GTK+ Options" msgstr "Gtk+ opcije" -#: ../gtk/gtkmain.c:835 +#: ../gtk/gtkmain.c:834 msgid "Show GTK+ Options" msgstr "Prikazuje Gtk+ opcije" @@ -2062,7 +2055,6 @@ msgstr "" " Dole: %s %s" #: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 -#| msgid "Manage Custom Sizes" msgid "Manage Custom Sizes…" msgstr "Upravljaj proizvoljnim veličinama…" @@ -2246,7 +2238,6 @@ msgid "Getting printer information failed" msgstr "Ne mogu da prikupim podatke o štampaču" #: ../gtk/gtkprintunixdialog.c:1916 -#| msgid "Getting printer information..." msgid "Getting printer information…" msgstr "Prikupljam podatke o štampaču…" From 3e81854351920076ede73a76c71431825c35d6c0 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Mon, 18 Feb 2013 14:55:03 -0500 Subject: [PATCH 096/208] gtk_widget_on_frame_clock_update: ref the widget Handle a widget being destroyed while in a tick callback by referencing the widget while dispatching tick callbacks. --- gtk/gtkwidget.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 8a7fb18f69..bafee84aea 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4577,6 +4577,8 @@ gtk_widget_on_frame_clock_update (GdkFrameClock *frame_clock, GtkWidgetPrivate *priv = widget->priv; GList *l; + g_object_ref (widget); + for (l = priv->tick_callbacks; l;) { GtkTickCallbackInfo *info = l->data; @@ -4597,6 +4599,8 @@ gtk_widget_on_frame_clock_update (GdkFrameClock *frame_clock, unref_tick_callback_info (widget, info, l); l = next; } + + g_object_unref (widget); } static guint tick_callback_id; From b61198cfcbed499496a9581d5e8ce5e9ad4ae7c4 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Mon, 18 Feb 2013 15:14:53 -0500 Subject: [PATCH 097/208] GdkWindow: don't leak the newly created frame clock --- gdk/gdkwindow.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 410eb165f6..b0ccd9c715 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -1473,6 +1473,7 @@ gdk_window_new (GdkWindow *parent, { GdkFrameClock *frame_clock = g_object_new (GDK_TYPE_FRAME_CLOCK_IDLE, NULL); gdk_window_set_frame_clock (window, frame_clock); + g_object_unref (frame_clock); } native = FALSE; @@ -1735,6 +1736,7 @@ gdk_window_reparent (GdkWindow *window, { GdkFrameClock *frame_clock = g_object_new (GDK_TYPE_FRAME_CLOCK_IDLE, NULL); gdk_window_set_frame_clock (window, frame_clock); + g_object_unref (frame_clock); } } else From 018a4255624928fb7d951f1d1c89196fe77e8267 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 18 Feb 2013 19:37:20 -0500 Subject: [PATCH 098/208] immodule: fix a GCC warning --- gtk/gtkimmodule.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtk/gtkimmodule.c b/gtk/gtkimmodule.c index 5e35498a22..e6372f2edb 100644 --- a/gtk/gtkimmodule.c +++ b/gtk/gtkimmodule.c @@ -650,7 +650,7 @@ lookup_immodule (gchar **immodules_list) gboolean found; gchar *context_id; found = g_hash_table_lookup_extended (contexts_hash, *immodules_list, - &context_id, NULL); + (gpointer *) &context_id, NULL); if (found) return context_id; } From ec43a1f72a552184176769f605c37013702b4843 Mon Sep 17 00:00:00 2001 From: Thomas Wood Date: Thu, 14 Feb 2013 14:44:58 +0000 Subject: [PATCH 099/208] wayland: look further through the hierarchy for the surface with the grab https://bugzilla.gnome.org/show_bug.cgi?id=693912 --- gdk/wayland/gdkwindow-wayland.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c index 15cef9f4a5..920ead2663 100644 --- a/gdk/wayland/gdkwindow-wayland.c +++ b/gdk/wayland/gdkwindow-wayland.c @@ -569,6 +569,7 @@ gdk_wayland_window_map (GdkWindow *window) if (impl->transient_for) { struct wl_seat *grab_input_seat = NULL; + GdkWindowImplWayland *tmp_impl; parent = GDK_WINDOW_IMPL_WAYLAND (impl->transient_for->impl); @@ -576,11 +577,18 @@ gdk_wayland_window_map (GdkWindow *window) * the popup window setup - so this relies on GTK+ taking the * grab before showing the popup window. */ - if (impl->grab_input_seat) - grab_input_seat = impl->grab_input_seat; + grab_input_seat = impl->grab_input_seat; - if (!grab_input_seat) - grab_input_seat = parent->grab_input_seat; + tmp_impl = parent; + while (!grab_input_seat) + { + grab_input_seat = tmp_impl->grab_input_seat; + + if (tmp_impl->transient_for) + tmp_impl = GDK_WINDOW_IMPL_WAYLAND (tmp_impl->transient_for->impl); + else + break; + } if (grab_input_seat && (impl->hint == GDK_WINDOW_TYPE_HINT_POPUP_MENU || From fbc0572068cadb8a163f5a10f0209e5fb39735da Mon Sep 17 00:00:00 2001 From: Thomas Wood Date: Fri, 15 Feb 2013 11:16:51 +0000 Subject: [PATCH 100/208] wayland: attempt to determine the possible parent surface for popups Use the surface beneath the device that created the grab as the transient parent for the popup surfaces. https://bugzilla.gnome.org/show_bug.cgi?id=693913 --- gdk/wayland/gdkdevice-wayland.c | 2 ++ gdk/wayland/gdkprivate-wayland.h | 1 + gdk/wayland/gdkwindow-wayland.c | 26 ++++++++++++++++++++++++-- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c index 90ecb1777e..495b8effb4 100644 --- a/gdk/wayland/gdkdevice-wayland.c +++ b/gdk/wayland/gdkdevice-wayland.c @@ -261,6 +261,7 @@ gdk_wayland_device_grab (GdkDevice *device, * compositor. */ _gdk_wayland_window_set_device_grabbed (window, + device, wayland_device->wl_seat, time_); } @@ -292,6 +293,7 @@ gdk_wayland_device_ungrab (GdkDevice *device, if (wayland_device->pointer_grab_window) _gdk_wayland_window_set_device_grabbed (wayland_device->pointer_grab_window, + NULL, NULL, 0); } diff --git a/gdk/wayland/gdkprivate-wayland.h b/gdk/wayland/gdkprivate-wayland.h index a80dd15171..6f07059b79 100644 --- a/gdk/wayland/gdkprivate-wayland.h +++ b/gdk/wayland/gdkprivate-wayland.h @@ -155,6 +155,7 @@ void _gdk_wayland_display_manager_remove_display (GdkDisplayManager *manager, GdkDisplay *display); void _gdk_wayland_window_set_device_grabbed (GdkWindow *window, + GdkDevice *device, struct wl_seat *seat, guint32 time_); diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c index 920ead2663..f5dcd7e9e2 100644 --- a/gdk/wayland/gdkwindow-wayland.c +++ b/gdk/wayland/gdkwindow-wayland.c @@ -130,6 +130,7 @@ struct _GdkWindowImplWayland GdkGeometry geometry_hints; GdkWindowHints geometry_mask; + GdkDevice *grab_device; struct wl_seat *grab_input_seat; guint32 grab_time; @@ -563,15 +564,34 @@ gdk_wayland_window_map (GdkWindow *window) GdkWindowImplWayland *parent; GdkWaylandDisplay *wayland_display = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window)); + GdkWindow *transient_for; if (!impl->mapped) { - if (impl->transient_for) + /* Popup menus can appear without a transient parent, which means they + * cannot be positioned properly on Wayland. This attempts to guess the + * surface they should be positioned with by finding the surface beneath + * the device that created the grab for the popup window */ + + if (!impl->transient_for && impl->hint == GDK_WINDOW_TYPE_HINT_POPUP_MENU) + { + transient_for = gdk_device_get_window_at_position (impl->grab_device, NULL, NULL); + transient_for = gdk_window_get_toplevel (transient_for); + + /* start the popup at the position of the device that holds the grab */ + gdk_window_get_device_position (transient_for, + impl->grab_device, + &window->x, &window->y, NULL); + } + else + transient_for = impl->transient_for; + + if (transient_for) { struct wl_seat *grab_input_seat = NULL; GdkWindowImplWayland *tmp_impl; - parent = GDK_WINDOW_IMPL_WAYLAND (impl->transient_for->impl); + parent = GDK_WINDOW_IMPL_WAYLAND (transient_for->impl); /* Use the device that was used for the grab as the device for * the popup window setup - so this relies on GTK+ taking the @@ -1677,6 +1697,7 @@ _gdk_window_impl_wayland_class_init (GdkWindowImplWaylandClass *klass) void _gdk_wayland_window_set_device_grabbed (GdkWindow *window, + GdkDevice *device, struct wl_seat *seat, guint32 time_) { @@ -1686,6 +1707,7 @@ _gdk_wayland_window_set_device_grabbed (GdkWindow *window, impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); + impl->grab_device = device; impl->grab_input_seat = seat; impl->grab_time = time_; } From e9165687813f6b5752d661347c99693b54eb434d Mon Sep 17 00:00:00 2001 From: jjacky Date: Thu, 14 Feb 2013 19:56:54 +0100 Subject: [PATCH 101/208] Fix #673243: accelerators not visible on GtkRadioMenu Also fixes a bug in set_property handler, where setting group to NULL would cause a warning. Signed-off-by: jjacky --- gtk/gtkradiomenuitem.c | 42 ++++++++++++------------------------------ 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/gtk/gtkradiomenuitem.c b/gtk/gtkradiomenuitem.c index 0413328eee..29011caa13 100644 --- a/gtk/gtkradiomenuitem.c +++ b/gtk/gtkradiomenuitem.c @@ -127,10 +127,9 @@ gtk_radio_menu_item_set_property (GObject *object, GSList *slist; case PROP_GROUP: - if (G_VALUE_HOLDS_OBJECT (value)) - slist = gtk_radio_menu_item_get_group ((GtkRadioMenuItem*) g_value_get_object (value)); - else - slist = NULL; + slist = g_value_get_object (value); + if (slist) + slist = gtk_radio_menu_item_get_group ((GtkRadioMenuItem*) g_value_get_object (value)); gtk_radio_menu_item_set_group (radio_menu_item, slist); break; default: @@ -249,18 +248,10 @@ GtkWidget* gtk_radio_menu_item_new_with_label (GSList *group, const gchar *label) { - GtkWidget *radio_menu_item; - GtkWidget *accel_label; - - radio_menu_item = gtk_radio_menu_item_new (group); - accel_label = gtk_accel_label_new (label); - gtk_widget_set_halign (accel_label, GTK_ALIGN_START); - gtk_widget_set_valign (accel_label, GTK_ALIGN_CENTER); - gtk_container_add (GTK_CONTAINER (radio_menu_item), accel_label); - gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (accel_label), radio_menu_item); - gtk_widget_show (accel_label); - - return radio_menu_item; + return g_object_new (GTK_TYPE_RADIO_MENU_ITEM, + "group", (group) ? group->data : NULL, + "label", label, + NULL); } @@ -280,20 +271,11 @@ GtkWidget* gtk_radio_menu_item_new_with_mnemonic (GSList *group, const gchar *label) { - GtkWidget *radio_menu_item; - GtkWidget *accel_label; - - radio_menu_item = gtk_radio_menu_item_new (group); - accel_label = g_object_new (GTK_TYPE_ACCEL_LABEL, NULL); - gtk_label_set_text_with_mnemonic (GTK_LABEL (accel_label), label); - gtk_widget_set_halign (accel_label, GTK_ALIGN_START); - gtk_widget_set_valign (accel_label, GTK_ALIGN_CENTER); - - gtk_container_add (GTK_CONTAINER (radio_menu_item), accel_label); - gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (accel_label), radio_menu_item); - gtk_widget_show (accel_label); - - return radio_menu_item; + return g_object_new (GTK_TYPE_RADIO_MENU_ITEM, + "group", (group) ? group->data : NULL, + "label", label, + "use-underline", TRUE, + NULL); } /** From afc57cabf036fff13c9f8eeb89efde8b43b9ee9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20Sch=C3=B6nfeld?= Date: Sun, 17 Feb 2013 14:00:10 +0100 Subject: [PATCH 102/208] GtkViewport: annotate the adjustment args of the constructor NULL is accepted here, so add (allow-none). https://bugzilla.gnome.org/show_bug.cgi?id=694022 --- gtk/gtkviewport.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gtk/gtkviewport.c b/gtk/gtkviewport.c index 935bda7b9e..0469c5bce4 100644 --- a/gtk/gtkviewport.c +++ b/gtk/gtkviewport.c @@ -255,10 +255,11 @@ gtk_viewport_init (GtkViewport *viewport) /** * gtk_viewport_new: - * @hadjustment: horizontal adjustment - * @vadjustment: vertical adjustment + * @hadjustment: (allow-none): horizontal adjustment + * @vadjustment: (allow-none): vertical adjustment * - * Creates a new #GtkViewport with the given adjustments. + * Creates a new #GtkViewport with the given adjustments, or with default + * adjustments if none are given. * * Returns: a new #GtkViewport */ From 4c130ac90497ba580a8411759de41180ca267876 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 18 Feb 2013 19:14:13 -0500 Subject: [PATCH 103/208] tests: workarounds to keep treeview scrolling tests running We can't safely examine allocations synchronously using gtk_main_iteration(), as there might be not enough time for a new paint clock tick to have expired and the allocation set on the widget. Work this around adding g_usleep() calls before processing pending mainloop events. --- gtk/tests/treeview-scrolling.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/gtk/tests/treeview-scrolling.c b/gtk/tests/treeview-scrolling.c index e18174d2a9..77dca9abc4 100644 --- a/gtk/tests/treeview-scrolling.c +++ b/gtk/tests/treeview-scrolling.c @@ -478,6 +478,17 @@ test_position (GtkTreeView *tree_view, /* Testing scrolling to various positions with various alignments */ +static void +ensure_layout (void) +{ + /* HACK: sleep for more than one frame, to give the paint clock + * time to prepare the new layout */ + g_usleep (100 * 1000); + + while (gtk_events_pending ()) + gtk_main_iteration (); +} + static void scroll (ScrollFixture *fixture, GtkTreePath *path, @@ -492,9 +503,7 @@ scroll (ScrollFixture *fixture, gtk_widget_show_all (fixture->window); - while (gtk_events_pending ()) - gtk_main_iteration (); - + ensure_layout (); test_position (GTK_TREE_VIEW (fixture->tree_view), path, use_align, row_align); } @@ -561,9 +570,7 @@ scroll_after_realize (ScrollFixture *fixture, path, NULL, use_align, row_align, 0.0); - while (gtk_events_pending ()) - gtk_main_iteration (); - + ensure_layout (); test_position (GTK_TREE_VIEW (fixture->tree_view), path, use_align, row_align); } @@ -643,9 +650,7 @@ scroll_both_realize (ScrollFixture *fixture, path, NULL, use_align, row_align, 0.0); - while (gtk_events_pending ()) - gtk_main_iteration (); - + ensure_layout (); test_position (GTK_TREE_VIEW (fixture->tree_view), path, use_align, row_align); } @@ -812,8 +817,7 @@ scroll_new_row (ScrollFixture *fixture, column, TRUE); - while (gtk_events_pending ()) - gtk_main_iteration (); + ensure_layout (); /* Test position */ test_position (GTK_TREE_VIEW (fixture->tree_view), scroll_path, @@ -865,8 +869,7 @@ scroll_new_row_tree (ScrollFixture *fixture, scroll_path, NULL, FALSE, 0.0, 0.0); gtk_tree_path_free (scroll_path); - while (gtk_events_pending ()) - gtk_main_iteration (); + ensure_layout (); /* Test position, the scroll bar must be at the end */ g_assert (gtk_adjustment_get_value (vadjustment) == gtk_adjustment_get_upper (vadjustment) - gtk_adjustment_get_page_size (vadjustment)); @@ -1013,6 +1016,9 @@ test_bug93584 (ScrollFixture *fixture, row = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (store), NULL); row -= 20; + while (gtk_events_pending ()) + gtk_main_iteration (); + path = gtk_tree_path_new_from_indices (row, -1); scroll (fixture, path, TRUE, 0.5); gtk_tree_path_free (path); From 7d4976b46e2c368b82d9602054fb5001fa7ce9ce Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 18 Feb 2013 19:21:22 -0500 Subject: [PATCH 104/208] docs: add some missing gtk-doc blocks and Since tags for new API --- gdk/gdkframeclock.h | 1 + gtk/gtkwidget.c | 15 +++++++++++++++ gtk/gtkwidget.h | 3 +++ 3 files changed, 19 insertions(+) diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index a82d5cf594..32688cdef6 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -76,6 +76,7 @@ typedef enum { GType gdk_frame_clock_get_type (void) G_GNUC_CONST; +GDK_AVAILABLE_IN_3_8 gint64 gdk_frame_clock_get_frame_time (GdkFrameClock *frame_clock); GDK_AVAILABLE_IN_3_8 diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index bafee84aea..a0301e8ba3 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4632,6 +4632,11 @@ static guint tick_callback_id; * This is a more convenient alternative to connecting directly to the * ::update signal of GdkFrameClock, since you don't have to worry about * when a #GdkFrameClock is assigned to a widget. + * + * Returns: an id for the connection of this callback. Remove the callback + * by passing it to gtk_widget_remove_tick_callback() + * + * Since: 3.8 */ guint gtk_widget_add_tick_callback (GtkWidget *widget, @@ -4669,6 +4674,16 @@ gtk_widget_add_tick_callback (GtkWidget *widget, return info->id; } +/** + * gtk_widget_remove_tick_callback: + * @widget: a #GtkWidget + * @id: an id returned by gtk_widget_add_tick_callback() + * + * Removes a tick callback previously registered with + * gtk_widget_add_tick_callback(). + * + * Since: 3.8 + */ void gtk_widget_remove_tick_callback (GtkWidget *widget, guint id) diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index 064fb07878..bdf8e5e607 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -96,6 +96,8 @@ typedef void (*GtkCallback) (GtkWidget *widget, * * Returns: %G_SOURCE_CONTINUE if the tick callback should continue to be called, * %G_SOURCE_REMOVE if the tick callback should be removed. + * + * Since: 3.8 */ typedef gboolean (*GtkTickCallback) (GtkWidget *widget, GdkFrameClock *frame_clock, @@ -488,6 +490,7 @@ void gtk_widget_queue_draw_region (GtkWidget *widget, const cairo_region_t*region); void gtk_widget_queue_resize (GtkWidget *widget); void gtk_widget_queue_resize_no_redraw (GtkWidget *widget); +GDK_AVAILABLE_IN_3_8 GdkFrameClock* gtk_widget_get_frame_clock (GtkWidget *widget); GDK_DEPRECATED_IN_3_0_FOR(gtk_widget_get_preferred_size) From 4abbb698a7b1488fefed12ef72d6b3e326cd3145 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 18 Feb 2013 19:30:30 -0500 Subject: [PATCH 105/208] docs: add some missing methods --- docs/reference/gtk/gtk3-sections.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt index fa8e22dbf8..6062a45419 100644 --- a/docs/reference/gtk/gtk3-sections.txt +++ b/docs/reference/gtk/gtk3-sections.txt @@ -5278,6 +5278,8 @@ gtk_widget_get_has_tooltip gtk_widget_set_has_tooltip gtk_widget_trigger_tooltip_query gtk_widget_get_window +gtk_widget_register_window +gtk_widget_unregister_window gtk_cairo_should_draw_window gtk_cairo_transform_to_window gtk_widget_get_allocated_width @@ -5321,6 +5323,11 @@ gtk_widget_get_requisition gtk_widget_device_is_shadowed gtk_widget_get_modifier_mask gtk_widget_insert_action_group +gtk_widget_add_tick_callback +gtk_widget_remove_tick_callback +gtk_widget_get_frame_clock +gtk_widget_get_opacity +gtk_widget_set_opacity gtk_widget_get_path @@ -6489,6 +6496,8 @@ gtk_icon_info_load_symbolic_for_style gtk_icon_info_load_symbolic_for_style_async gtk_icon_info_load_symbolic_for_style_finish gtk_icon_info_load_symbolic_for_context +gtk_icon_info_load_symbolic_for_context_async +gtk_icon_info_load_symbolic_for_context_finish gtk_icon_info_set_raw_coordinates gtk_icon_info_get_embedded_rect gtk_icon_info_get_attach_points From 8e192f86cbf52114be6b28491a938cb1c61d5c81 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 18 Feb 2013 17:13:46 -0500 Subject: [PATCH 106/208] release: update NEWS for 3.7.10 --- NEWS | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/NEWS b/NEWS index 3293276355..20d2d57488 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,64 @@ +Overview of Changes in GTK+ 3.7.10 +================================== + +* We now support the Window Manager frame synchronization protocol draft (when + running under a WM that supports it). This means applications will throttle + their drawing cycle to what the compositor is drawing, and the compositor + will never render half-updated windows, for seamless resizing and improved + smoothness in drawing. + See https://mail.gnome.org/archives/wm-spec-list/2013-January/msg00000.html + and the articles at http://blog.fishsoup.net/ for more details. + +* We now support setting an opacity to any GtkWidget, not just toplevels: + gtk_window_set_opacity has been deprecated in favor of gtk_widget_set_opacity. + +* GtkIconTheme gained asynchronous loaders for GtkIconInfo objects + +* GtkIconInfo has changed from being a boxed type to a GObject. This + is technically an ABI change, but basically all existing code + will keep working if its used as a boxed type, and its not + possible to instantiate GtkIconInfos outside Gtk, so this is not + expected to be a big problem. + +* Bugs fixed: + 590325 gtkbuilder needs a public policy about extension name + 673243 GtkRadioMenuItem accelerators no longer appear + 681578 gtk-demo: demo.ui is outdated + 683311 Leak in GtkIconViewAccessible + 685460 Add frame synchronization to GTK+ + 687842 Support partially transparent widgets + 690247 multiple context in a immodule can't be selected + 692411 Slave device tracking goes wrong when there are no GDK_DEVICE_TYPE_SLAVE + 692728 wayland evet source doesn't handle poll err/hup + 693251 wayland: fix the direction of scrolling + 693253 wayland: remove debug message + 693256 wayland: use the GdkCursorType enum information to lookup the cursor name + 693257 wayland: avoid returning NULL when getting a cursor + 693313 Improve tooltip support + 693338 wayland: skip pointer and keyboard events without a surface + 693400 gtkcellrenderertext: Sink floating entry before using as signal argument + 693709 Hide recently used if it is turned off in the control center + 693724 Add a gtk-recent-files-enabled GtkSetting + 693802 Add async GtkIconInfo loaders + 693912 wayland: look further through the hierarchy for the surface with the grab + 693913 wayland: attempt to determine the possible parent surface for popups + 693934 Add gdk_frame_clock_begin/end_updating() + 694022 GtkViewport: annotate the adjustment args of the constructor + 694075 GtkAccelLabel: Don't show "+" if there's no more keys to add + Added scroll and touch events to GtkToolPalette + +* Translation updates: + Arabic + Catalan + Catalan (Valencian) + Czech + Japanese + Kazakh + Lithuanian + Malayalam + Polish + Serbian + Overview of Changes in GTK+ 3.7.8 ================================= From aca17b60285f005226678e6f8567db3bc5a76cb0 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 18 Feb 2013 20:12:01 -0500 Subject: [PATCH 107/208] 3.7.10 --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 3d11488adf..32018feada 100644 --- a/configure.ac +++ b/configure.ac @@ -10,7 +10,7 @@ m4_define([gtk_major_version], [3]) m4_define([gtk_minor_version], [7]) -m4_define([gtk_micro_version], [9]) +m4_define([gtk_micro_version], [10]) m4_define([gtk_interface_age], [0]) m4_define([gtk_binary_age], [m4_eval(100 * gtk_minor_version + gtk_micro_version)]) From 2516574832ebdec2f36b27df8269e2e0425282a3 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 18 Feb 2013 20:50:32 -0500 Subject: [PATCH 108/208] release: post-release version bump --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 32018feada..8d74b190e1 100644 --- a/configure.ac +++ b/configure.ac @@ -10,7 +10,7 @@ m4_define([gtk_major_version], [3]) m4_define([gtk_minor_version], [7]) -m4_define([gtk_micro_version], [10]) +m4_define([gtk_micro_version], [11]) m4_define([gtk_interface_age], [0]) m4_define([gtk_binary_age], [m4_eval(100 * gtk_minor_version + gtk_micro_version)]) From 2145907cfe9baeca14da87390f72d93d20b36968 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Thu, 31 Jan 2013 11:25:02 +0000 Subject: [PATCH 109/208] wayland: Synthesize fullscreen window state change --- gdk/wayland/gdkwindow-wayland.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c index f5dcd7e9e2..6f7e744a79 100644 --- a/gdk/wayland/gdkwindow-wayland.c +++ b/gdk/wayland/gdkwindow-wayland.c @@ -1319,6 +1319,9 @@ gdk_wayland_window_fullscreen (GdkWindow *window) WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT, 0, NULL); + + gdk_synthesize_window_state (window, 0, GDK_WINDOW_STATE_FULLSCREEN); + impl->fullscreen = TRUE; } @@ -1334,8 +1337,11 @@ gdk_wayland_window_unfullscreen (GdkWindow *window) return; wl_shell_surface_set_toplevel (impl->shell_surface); + gdk_synthesize_window_state (window, GDK_WINDOW_STATE_FULLSCREEN, 0); gdk_wayland_window_configure (window, impl->saved_width, impl->saved_height, 0); + + impl->fullscreen = FALSE; } From fe5146d8f27f868baee6549913ea271219769e36 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Mon, 16 Apr 2012 16:26:19 +0100 Subject: [PATCH 110/208] window: Fix compiler warning when not building for X11 The callback function gtk_window_on_theme_variant_changed is only used on the X11 backend (where GtkSettings is used for the settings information.) Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=674207 --- gtk/gtkwindow.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index a6ff07d4e4..fe24363fd1 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -422,9 +422,11 @@ static GtkKeyHash *gtk_window_get_key_hash (GtkWindow *window); static void gtk_window_free_key_hash (GtkWindow *window); static void gtk_window_on_composited_changed (GdkScreen *screen, GtkWindow *window); +#ifdef GDK_WINDOWING_X11 static void gtk_window_on_theme_variant_changed (GtkSettings *settings, GParamSpec *pspec, GtkWindow *window); +#endif static void gtk_window_set_theme_variant (GtkWindow *window); static GSList *toplevel_list = NULL; @@ -8336,6 +8338,7 @@ gtk_window_set_theme_variant (GtkWindow *window) #endif } +#ifdef GDK_WINDOWING_X11 static void gtk_window_on_theme_variant_changed (GtkSettings *settings, GParamSpec *pspec, @@ -8344,6 +8347,7 @@ gtk_window_on_theme_variant_changed (GtkSettings *settings, if (window->priv->type == GTK_WINDOW_TOPLEVEL) gtk_window_set_theme_variant (window); } +#endif static void gtk_window_on_composited_changed (GdkScreen *screen, From c1a4a1da103ad813fc6c44d786b2b336e5e6ed2c Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 2 Feb 2013 15:32:23 +0100 Subject: [PATCH 111/208] xsettings: Remove unused function Remove xsettings_client_new() and rename xsettings_client_new_with_grab_funcs() to xsettings_client_new() --- gdk/x11/gdkscreen-x11.c | 14 +++++++------- gdk/x11/xsettings-client.c | 17 +++-------------- gdk/x11/xsettings-client.h | 11 +++-------- gdk/x11/xsettings-common.h | 1 - 4 files changed, 13 insertions(+), 30 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 39a112df83..6e082507a6 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -1736,13 +1736,13 @@ _gdk_x11_screen_init_events (GdkScreen *screen) /* Keep a flag to avoid extra notifies that we don't need */ x11_screen->xsettings_in_init = TRUE; - x11_screen->xsettings_client = xsettings_client_new_with_grab_funcs (x11_screen->xdisplay, - x11_screen->screen_num, - gdk_xsettings_notify_cb, - gdk_xsettings_watch_cb, - screen, - refcounted_grab_server, - refcounted_ungrab_server); + x11_screen->xsettings_client = xsettings_client_new (x11_screen->xdisplay, + x11_screen->screen_num, + gdk_xsettings_notify_cb, + gdk_xsettings_watch_cb, + screen, + refcounted_grab_server, + refcounted_ungrab_server); x11_screen->xsettings_in_init = FALSE; } diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index fb3dca3284..f4b0e3897e 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -450,20 +450,9 @@ xsettings_client_new (Display *display, int screen, XSettingsNotifyFunc notify, XSettingsWatchFunc watch, - void *cb_data) -{ - return xsettings_client_new_with_grab_funcs (display, screen, notify, watch, cb_data, - NULL, NULL); -} - -XSettingsClient * -xsettings_client_new_with_grab_funcs (Display *display, - int screen, - XSettingsNotifyFunc notify, - XSettingsWatchFunc watch, - void *cb_data, - XSettingsGrabFunc grab, - XSettingsGrabFunc ungrab) + void *cb_data, + XSettingsGrabFunc grab, + XSettingsGrabFunc ungrab) { XSettingsClient *client; char buffer[256]; diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 710ed12482..0e30641cf5 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -53,14 +53,9 @@ XSettingsClient *xsettings_client_new (Display *display, int screen, XSettingsNotifyFunc notify, XSettingsWatchFunc watch, - void *cb_data); -XSettingsClient *xsettings_client_new_with_grab_funcs (Display *display, - int screen, - XSettingsNotifyFunc notify, - XSettingsWatchFunc watch, - void *cb_data, - XSettingsGrabFunc grab, - XSettingsGrabFunc ungrab); + void *cb_data, + XSettingsGrabFunc grab, + XSettingsGrabFunc ungrab); void xsettings_client_set_grab_func (XSettingsClient *client, XSettingsGrabFunc grab); void xsettings_client_set_ungrab_func (XSettingsClient *client, diff --git a/gdk/x11/xsettings-common.h b/gdk/x11/xsettings-common.h index 0577db5d1e..2773226574 100644 --- a/gdk/x11/xsettings-common.h +++ b/gdk/x11/xsettings-common.h @@ -36,7 +36,6 @@ extern "C" { #define xsettings_client_destroy _gdk_x11_xsettings_client_destroy #define xsettings_client_get_setting _gdk_x11_xsettings_client_get_setting #define xsettings_client_new _gdk_x11_xsettings_client_new -#define xsettings_client_new_with_grab_funcs _gdk_x11_xsettings_client_new_with_grab_funcs #define xsettings_client_set_grab_func _gdk_x11_xsettings_client_set_grab_func #define xsettings_client_set_ungrab_func _gdk_x11_xsettings_client_set_ungrab_func #define xsettings_client_process_event _gdk_x11_xsettings_client_process_event From d7ea5b526617d9e29c85927f38e80d38196a41e3 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 2 Feb 2013 19:10:02 +0100 Subject: [PATCH 112/208] xsettings: Use glib byte order functions --- gdk/x11/xsettings-client.c | 16 ++++++---------- gdk/x11/xsettings-common.c | 7 ------- gdk/x11/xsettings-common.h | 3 --- 3 files changed, 6 insertions(+), 20 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index f4b0e3897e..fb97f95dd7 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -95,8 +95,6 @@ ignore_errors (Display *display, XErrorEvent *event) return True; } -static char local_byte_order = '\0'; - #define BYTES_LEFT(buffer) ((buffer)->data + (buffer)->len - (buffer)->pos) static XSettingsResult @@ -111,10 +109,10 @@ fetch_card16 (XSettingsBuffer *buffer, x = *(CARD16 *)buffer->pos; buffer->pos += 2; - if (buffer->byte_order == local_byte_order) - *result = x; + if (buffer->byte_order == MSBFirst) + *result = GUINT16_FROM_BE (x); else - *result = (x << 8) | (x >> 8); + *result = GUINT16_FROM_LE (x); return XSETTINGS_SUCCESS; } @@ -145,10 +143,10 @@ fetch_card32 (XSettingsBuffer *buffer, x = *(CARD32 *)buffer->pos; buffer->pos += 4; - if (buffer->byte_order == local_byte_order) - *result = x; + if (buffer->byte_order == MSBFirst) + *result = GUINT32_FROM_BE (x); else - *result = (x << 24) | ((x & 0xff00) << 8) | ((x & 0xff0000) >> 8) | (x >> 24); + *result = GUINT32_FROM_LE (x); return XSETTINGS_SUCCESS; } @@ -180,8 +178,6 @@ parse_settings (unsigned char *data, CARD32 i; XSettingsSetting *setting = NULL; - local_byte_order = xsettings_byte_order (); - buffer.pos = buffer.data = data; buffer.len = len; diff --git a/gdk/x11/xsettings-common.c b/gdk/x11/xsettings-common.c index 6f66a40bc5..9c2f677f32 100644 --- a/gdk/x11/xsettings-common.c +++ b/gdk/x11/xsettings-common.c @@ -149,10 +149,3 @@ xsettings_list_lookup (XSettingsList *list, return g_hash_table_lookup (list, name); } - -char -xsettings_byte_order (void) -{ - CARD32 myint = 0x01020304; - return (*(char *)&myint == 1) ? MSBFirst : LSBFirst; -} diff --git a/gdk/x11/xsettings-common.h b/gdk/x11/xsettings-common.h index 2773226574..ac144956b4 100644 --- a/gdk/x11/xsettings-common.h +++ b/gdk/x11/xsettings-common.h @@ -32,7 +32,6 @@ extern "C" { /* Renames for GDK inclusion */ -#define xsettings_byte_order _gdk_x11_xsettings_byte_order #define xsettings_client_destroy _gdk_x11_xsettings_client_destroy #define xsettings_client_get_setting _gdk_x11_xsettings_client_get_setting #define xsettings_client_new _gdk_x11_xsettings_client_new @@ -110,8 +109,6 @@ XSettingsResult xsettings_list_insert (XSettingsList **list, XSettingsSetting *xsettings_list_lookup (XSettingsList *list, const char *name); -char xsettings_byte_order (void); - #define XSETTINGS_PAD(n,m) ((n + m - 1) & (~(m-1))) #ifdef __cplusplus From 8fa1b2bb9daf7572d3c0eb731b4166d1e3bd3d14 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 2 Feb 2013 19:22:04 +0100 Subject: [PATCH 113/208] xsettings: Remove XSettingsList type Use GHashTable throughout --- gdk/x11/xsettings-client.c | 44 ++++++++++++++++++++++++++------------ gdk/x11/xsettings-common.c | 31 --------------------------- gdk/x11/xsettings-common.h | 11 ---------- 3 files changed, 30 insertions(+), 56 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index fb97f95dd7..20cc728630 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -49,12 +49,12 @@ struct _XSettingsClient Atom selection_atom; Atom xsettings_atom; - XSettingsList *settings; + GHashTable *settings; /* string => XSettingsSetting */ }; static void notify_changes (XSettingsClient *client, - XSettingsList *old_list) + GHashTable *old_list) { GHashTableIter iter; XSettingsSetting *setting, *old_setting; @@ -67,7 +67,7 @@ notify_changes (XSettingsClient *client, g_hash_table_iter_init (&iter, client->settings); while (g_hash_table_iter_next (&iter, NULL, (gpointer*) &setting)) { - old_setting = xsettings_list_lookup (old_list, setting->name); + old_setting = old_list ? g_hash_table_lookup (old_list, setting->name) : NULL; if (old_setting == NULL) client->notify (setting->name, XSETTINGS_ACTION_NEW, setting, client->cb_data); @@ -166,13 +166,13 @@ fetch_card8 (XSettingsBuffer *buffer, #define XSETTINGS_PAD(n,m) ((n + m - 1) & (~(m-1))) -static XSettingsList * +static GHashTable * parse_settings (unsigned char *data, size_t len) { XSettingsBuffer buffer; XSettingsResult result = XSETTINGS_SUCCESS; - XSettingsList *settings = NULL; + GHashTable *settings = NULL; CARD32 serial; CARD32 n_entries; CARD32 i; @@ -304,10 +304,18 @@ parse_settings (unsigned char *data, setting->type = type; - result = xsettings_list_insert (&settings, setting); - if (result != XSETTINGS_SUCCESS) - goto out; + if (settings == NULL) + settings = g_hash_table_new_full (g_str_hash, g_str_equal, + NULL, + (GDestroyNotify) xsettings_setting_free); + if (g_hash_table_lookup (settings, setting->name) != NULL) + { + result = XSETTINGS_DUPLICATE_ENTRY; + goto out; + } + + g_hash_table_insert (settings, setting->name, setting); setting = NULL; } @@ -334,9 +342,9 @@ parse_settings (unsigned char *data, if (setting) xsettings_setting_free (setting); - xsettings_list_free (settings); + if (settings) + g_hash_table_unref (settings); settings = NULL; - } return settings; @@ -354,7 +362,7 @@ read_settings (XSettingsClient *client) int (*old_handler) (Display *, XErrorEvent *); - XSettingsList *old_list = client->settings; + GHashTable *old_list = client->settings; client->settings = NULL; @@ -385,7 +393,8 @@ read_settings (XSettingsClient *client) } notify_changes (client, old_list); - xsettings_list_free (old_list); + if (old_list) + g_hash_table_unref (old_list); } static void @@ -517,7 +526,8 @@ xsettings_client_destroy (XSettingsClient *client) if (client->manager_window && client->watch) client->watch (client->manager_window, False, 0, client->cb_data); - xsettings_list_free (client->settings); + if (client->settings) + g_hash_table_unref (client->settings); free (client); } @@ -526,7 +536,13 @@ xsettings_client_get_setting (XSettingsClient *client, const char *name, XSettingsSetting **setting) { - XSettingsSetting *search = xsettings_list_lookup (client->settings, name); + XSettingsSetting *search; + + if (client->settings == NULL) + return XSETTINGS_NO_ENTRY; + + search = g_hash_table_lookup (client->settings, name); + if (search) { *setting = xsettings_setting_copy (search); diff --git a/gdk/x11/xsettings-common.c b/gdk/x11/xsettings-common.c index 9c2f677f32..3e1ebd17f6 100644 --- a/gdk/x11/xsettings-common.c +++ b/gdk/x11/xsettings-common.c @@ -118,34 +118,3 @@ xsettings_setting_free (XSettingsSetting *setting) free (setting); } -void -xsettings_list_free (XSettingsList *list) -{ - if (list != NULL) - g_hash_table_destroy (list); -} - -XSettingsResult -xsettings_list_insert (XSettingsList **list, - XSettingsSetting *setting) -{ - if (*list == NULL) - *list = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, - (GDestroyNotify) xsettings_setting_free); - - if (g_hash_table_lookup (*list, setting->name) != NULL) - return XSETTINGS_DUPLICATE_ENTRY; - - g_hash_table_insert (*list, setting->name, setting); - return XSETTINGS_SUCCESS; -} - -XSettingsSetting * -xsettings_list_lookup (XSettingsList *list, - const char *name) -{ - if (list == NULL) - return NULL; - - return g_hash_table_lookup (list, name); -} diff --git a/gdk/x11/xsettings-common.h b/gdk/x11/xsettings-common.h index ac144956b4..03a601db1d 100644 --- a/gdk/x11/xsettings-common.h +++ b/gdk/x11/xsettings-common.h @@ -38,15 +38,10 @@ extern "C" { #define xsettings_client_set_grab_func _gdk_x11_xsettings_client_set_grab_func #define xsettings_client_set_ungrab_func _gdk_x11_xsettings_client_set_ungrab_func #define xsettings_client_process_event _gdk_x11_xsettings_client_process_event -#define xsettings_list_free _gdk_x11_xsettings_list_free -#define xsettings_list_insert _gdk_x11_xsettings_list_insert -#define xsettings_list_lookup _gdk_x11_xsettings_list_lookup #define xsettings_setting_copy _gdk_x11_xsettings_setting_copy #define xsettings_setting_equal _gdk_x11_xsettings_setting_equal #define xsettings_setting_free _gdk_x11_xsettings_setting_free -typedef GHashTable XSettingsList; - typedef struct _XSettingsBuffer XSettingsBuffer; typedef struct _XSettingsColor XSettingsColor; typedef struct _XSettingsSetting XSettingsSetting; @@ -103,12 +98,6 @@ void xsettings_setting_free (XSettingsSetting *setting); int xsettings_setting_equal (XSettingsSetting *setting_a, XSettingsSetting *setting_b); -void xsettings_list_free (XSettingsList *list); -XSettingsResult xsettings_list_insert (XSettingsList **list, - XSettingsSetting *setting); -XSettingsSetting *xsettings_list_lookup (XSettingsList *list, - const char *name); - #define XSETTINGS_PAD(n,m) ((n + m - 1) & (~(m-1))) #ifdef __cplusplus From 1f95eddbda69b9941c5f13b20832ad33e3a13eb3 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 8 Feb 2013 13:36:16 +0100 Subject: [PATCH 114/208] x11: Don't store last change serial It's unused anyway --- gdk/x11/xsettings-client.c | 2 +- gdk/x11/xsettings-common.c | 2 -- gdk/x11/xsettings-common.h | 2 -- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 20cc728630..77aef1e166 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -243,10 +243,10 @@ parse_settings (unsigned char *data, setting->name[name_len] = '\0'; buffer.pos += pad_len; + /* last change serial (we ignore it) */ result = fetch_card32 (&buffer, &v_int); if (result != XSETTINGS_SUCCESS) goto out; - setting->last_change_serial = v_int; switch (type) { diff --git a/gdk/x11/xsettings-common.c b/gdk/x11/xsettings-common.c index 3e1ebd17f6..a57269f4d7 100644 --- a/gdk/x11/xsettings-common.c +++ b/gdk/x11/xsettings-common.c @@ -68,8 +68,6 @@ xsettings_setting_copy (XSettingsSetting *setting) break; } - result->last_change_serial = setting->last_change_serial; - return result; err: diff --git a/gdk/x11/xsettings-common.h b/gdk/x11/xsettings-common.h index 03a601db1d..5fac6c63c7 100644 --- a/gdk/x11/xsettings-common.h +++ b/gdk/x11/xsettings-common.h @@ -89,8 +89,6 @@ struct _XSettingsSetting char *v_string; XSettingsColor v_color; } data; - - unsigned long last_change_serial; }; XSettingsSetting *xsettings_setting_copy (XSettingsSetting *setting); From 63f0797e70ee0a141d22d928bc6b35b638effb08 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 10 Feb 2013 00:02:53 +0100 Subject: [PATCH 115/208] x11: Return XSetting without copying --- gdk/x11/gdkscreen-x11.c | 11 +++------ gdk/x11/xsettings-client.c | 20 +++------------- gdk/x11/xsettings-client.h | 6 ++--- gdk/x11/xsettings-common.c | 47 -------------------------------------- gdk/x11/xsettings-common.h | 2 -- 5 files changed, 9 insertions(+), 77 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 6e082507a6..cb26ee5ef1 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -1353,8 +1353,7 @@ gdk_x11_screen_get_setting (GdkScreen *screen, { GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); const char *xsettings_name = NULL; - XSettingsResult result; - XSettingsSetting *setting = NULL; + const XSettingsSetting *setting; gboolean success = FALSE; GValue tmp_val = G_VALUE_INIT; @@ -1362,9 +1361,8 @@ gdk_x11_screen_get_setting (GdkScreen *screen, if (!xsettings_name) goto out; - result = xsettings_client_get_setting (x11_screen->xsettings_client, - xsettings_name, &setting); - if (result != XSETTINGS_SUCCESS) + setting = xsettings_client_get_setting (x11_screen->xsettings_client, xsettings_name); + if (setting == NULL) goto out; switch (setting->type) @@ -1413,9 +1411,6 @@ gdk_x11_screen_get_setting (GdkScreen *screen, g_value_unset (&tmp_val); out: - if (setting) - xsettings_setting_free (setting); - if (success) return TRUE; else diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 77aef1e166..87b7b0d2e4 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -531,25 +531,11 @@ xsettings_client_destroy (XSettingsClient *client) free (client); } -XSettingsResult +const XSettingsSetting * xsettings_client_get_setting (XSettingsClient *client, - const char *name, - XSettingsSetting **setting) + const char *name) { - XSettingsSetting *search; - - if (client->settings == NULL) - return XSETTINGS_NO_ENTRY; - - search = g_hash_table_lookup (client->settings, name); - - if (search) - { - *setting = xsettings_setting_copy (search); - return *setting ? XSETTINGS_SUCCESS : XSETTINGS_NO_MEM; - } - else - return XSETTINGS_NO_ENTRY; + return g_hash_table_lookup (client->settings, name); } Bool diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 0e30641cf5..629e28079c 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -63,9 +63,9 @@ void xsettings_client_set_ungrab_func (XSettingsClient *client, void xsettings_client_destroy (XSettingsClient *client); Bool xsettings_client_process_event (XSettingsClient *client, XEvent *xev); -XSettingsResult xsettings_client_get_setting (XSettingsClient *client, - const char *name, - XSettingsSetting **setting); +const XSettingsSetting * + xsettings_client_get_setting (XSettingsClient *client, + const char *name); #ifdef __cplusplus } diff --git a/gdk/x11/xsettings-common.c b/gdk/x11/xsettings-common.c index a57269f4d7..d8f3d37569 100644 --- a/gdk/x11/xsettings-common.c +++ b/gdk/x11/xsettings-common.c @@ -31,53 +31,6 @@ #include #include /* For CARD32 */ -XSettingsSetting * -xsettings_setting_copy (XSettingsSetting *setting) -{ - XSettingsSetting *result; - size_t str_len; - - result = malloc (sizeof *result); - if (!result) - return NULL; - - str_len = strlen (setting->name); - result->name = malloc (str_len + 1); - if (!result->name) - goto err; - - memcpy (result->name, setting->name, str_len + 1); - - result->type = setting->type; - - switch (setting->type) - { - case XSETTINGS_TYPE_INT: - result->data.v_int = setting->data.v_int; - break; - case XSETTINGS_TYPE_COLOR: - result->data.v_color = setting->data.v_color; - break; - case XSETTINGS_TYPE_STRING: - str_len = strlen (setting->data.v_string); - result->data.v_string = malloc (str_len + 1); - if (!result->data.v_string) - goto err; - - memcpy (result->data.v_string, setting->data.v_string, str_len + 1); - break; - } - - return result; - - err: - if (result->name) - free (result->name); - free (result); - - return NULL; -} - int xsettings_setting_equal (XSettingsSetting *setting_a, XSettingsSetting *setting_b) diff --git a/gdk/x11/xsettings-common.h b/gdk/x11/xsettings-common.h index 5fac6c63c7..e90471b9b0 100644 --- a/gdk/x11/xsettings-common.h +++ b/gdk/x11/xsettings-common.h @@ -38,7 +38,6 @@ extern "C" { #define xsettings_client_set_grab_func _gdk_x11_xsettings_client_set_grab_func #define xsettings_client_set_ungrab_func _gdk_x11_xsettings_client_set_ungrab_func #define xsettings_client_process_event _gdk_x11_xsettings_client_process_event -#define xsettings_setting_copy _gdk_x11_xsettings_setting_copy #define xsettings_setting_equal _gdk_x11_xsettings_setting_equal #define xsettings_setting_free _gdk_x11_xsettings_setting_free @@ -91,7 +90,6 @@ struct _XSettingsSetting } data; }; -XSettingsSetting *xsettings_setting_copy (XSettingsSetting *setting); void xsettings_setting_free (XSettingsSetting *setting); int xsettings_setting_equal (XSettingsSetting *setting_a, XSettingsSetting *setting_b); From bb4953f3e8e102264a82ea4938b7813b85320b22 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 10 Feb 2013 01:06:58 +0100 Subject: [PATCH 116/208] x11: Fold xsettings-common.[ch] into xsettings-client.[ch] --- gdk/x11/Makefile.am | 4 +- gdk/x11/xsettings-client.c | 41 +++++++++++++++ gdk/x11/xsettings-client.h | 64 ++++++++++++++++++++++- gdk/x11/xsettings-common.c | 71 ------------------------- gdk/x11/xsettings-common.h | 103 ------------------------------------- 5 files changed, 105 insertions(+), 178 deletions(-) delete mode 100644 gdk/x11/xsettings-common.c delete mode 100644 gdk/x11/xsettings-common.h diff --git a/gdk/x11/Makefile.am b/gdk/x11/Makefile.am index 255a8727d8..a00118eae7 100644 --- a/gdk/x11/Makefile.am +++ b/gdk/x11/Makefile.am @@ -53,9 +53,7 @@ libgdk_x11_la_SOURCES = \ gdkx.h \ gdkprivate-x11.h \ xsettings-client.h \ - xsettings-client.c \ - xsettings-common.h \ - xsettings-common.c + xsettings-client.c libgdkinclude_HEADERS = \ gdkx.h diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 87b7b0d2e4..93d3bc1e5b 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -25,6 +25,8 @@ #include "xsettings-client.h" +#include + #include #include #include @@ -574,3 +576,42 @@ xsettings_client_process_event (XSettingsClient *client, return False; } + +int +xsettings_setting_equal (XSettingsSetting *setting_a, + XSettingsSetting *setting_b) +{ + if (setting_a->type != setting_b->type) + return 0; + + if (strcmp (setting_a->name, setting_b->name) != 0) + return 0; + + switch (setting_a->type) + { + case XSETTINGS_TYPE_INT: + return setting_a->data.v_int == setting_b->data.v_int; + case XSETTINGS_TYPE_COLOR: + return (setting_a->data.v_color.red == setting_b->data.v_color.red && + setting_a->data.v_color.green == setting_b->data.v_color.green && + setting_a->data.v_color.blue == setting_b->data.v_color.blue && + setting_a->data.v_color.alpha == setting_b->data.v_color.alpha); + case XSETTINGS_TYPE_STRING: + return strcmp (setting_a->data.v_string, setting_b->data.v_string) == 0; + } + + return 0; +} + +void +xsettings_setting_free (XSettingsSetting *setting) +{ + if (setting->type == XSETTINGS_TYPE_STRING) + free (setting->data.v_string); + + if (setting->name) + free (setting->name); + + free (setting); +} + diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 629e28079c..348c68c734 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -24,14 +24,37 @@ #define XSETTINGS_CLIENT_H #include -#include "xsettings-common.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ +/* Renames for GDK inclusion */ + +#define xsettings_client_destroy _gdk_x11_xsettings_client_destroy +#define xsettings_client_get_setting _gdk_x11_xsettings_client_get_setting +#define xsettings_client_new _gdk_x11_xsettings_client_new +#define xsettings_client_set_grab_func _gdk_x11_xsettings_client_set_grab_func +#define xsettings_client_set_ungrab_func _gdk_x11_xsettings_client_set_ungrab_func +#define xsettings_client_process_event _gdk_x11_xsettings_client_process_event +#define xsettings_setting_equal _gdk_x11_xsettings_setting_equal +#define xsettings_setting_free _gdk_x11_xsettings_setting_free + +typedef struct _XSettingsBuffer XSettingsBuffer; +typedef struct _XSettingsColor XSettingsColor; +typedef struct _XSettingsSetting XSettingsSetting; typedef struct _XSettingsClient XSettingsClient; +/* Types of settings possible. Enum values correspond to + * protocol values. + */ +typedef enum +{ + XSETTINGS_TYPE_INT = 0, + XSETTINGS_TYPE_STRING = 1, + XSETTINGS_TYPE_COLOR = 2 +} XSettingsType; + typedef enum { XSETTINGS_ACTION_NEW, @@ -39,6 +62,41 @@ typedef enum XSETTINGS_ACTION_DELETED } XSettingsAction; +typedef enum +{ + XSETTINGS_SUCCESS, + XSETTINGS_NO_MEM, + XSETTINGS_ACCESS, + XSETTINGS_FAILED, + XSETTINGS_NO_ENTRY, + XSETTINGS_DUPLICATE_ENTRY +} XSettingsResult; + +struct _XSettingsBuffer +{ + char byte_order; + size_t len; + unsigned char *data; + unsigned char *pos; +}; + +struct _XSettingsColor +{ + unsigned short red, green, blue, alpha; +}; + +struct _XSettingsSetting +{ + char *name; + XSettingsType type; + + union { + int v_int; + char *v_string; + XSettingsColor v_color; + } data; +}; + typedef void (*XSettingsNotifyFunc) (const char *name, XSettingsAction action, XSettingsSetting *setting, @@ -49,6 +107,10 @@ typedef Bool (*XSettingsWatchFunc) (Window window, void *cb_data); typedef void (*XSettingsGrabFunc) (Display *display); +void xsettings_setting_free (XSettingsSetting *setting); +int xsettings_setting_equal (XSettingsSetting *setting_a, + XSettingsSetting *setting_b); + XSettingsClient *xsettings_client_new (Display *display, int screen, XSettingsNotifyFunc notify, diff --git a/gdk/x11/xsettings-common.c b/gdk/x11/xsettings-common.c deleted file mode 100644 index d8f3d37569..0000000000 --- a/gdk/x11/xsettings-common.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright © 2001 Red Hat, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Red Hat not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. Red Hat makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RED HAT - * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * Author: Owen Taylor, Red Hat, Inc. - */ - -#include "config.h" - -#include "xsettings-common.h" - -#include "string.h" -#include "stdlib.h" - -#include -#include /* For CARD32 */ - -int -xsettings_setting_equal (XSettingsSetting *setting_a, - XSettingsSetting *setting_b) -{ - if (setting_a->type != setting_b->type) - return 0; - - if (strcmp (setting_a->name, setting_b->name) != 0) - return 0; - - switch (setting_a->type) - { - case XSETTINGS_TYPE_INT: - return setting_a->data.v_int == setting_b->data.v_int; - case XSETTINGS_TYPE_COLOR: - return (setting_a->data.v_color.red == setting_b->data.v_color.red && - setting_a->data.v_color.green == setting_b->data.v_color.green && - setting_a->data.v_color.blue == setting_b->data.v_color.blue && - setting_a->data.v_color.alpha == setting_b->data.v_color.alpha); - case XSETTINGS_TYPE_STRING: - return strcmp (setting_a->data.v_string, setting_b->data.v_string) == 0; - } - - return 0; -} - -void -xsettings_setting_free (XSettingsSetting *setting) -{ - if (setting->type == XSETTINGS_TYPE_STRING) - free (setting->data.v_string); - - if (setting->name) - free (setting->name); - - free (setting); -} - diff --git a/gdk/x11/xsettings-common.h b/gdk/x11/xsettings-common.h deleted file mode 100644 index e90471b9b0..0000000000 --- a/gdk/x11/xsettings-common.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright © 2001 Red Hat, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Red Hat not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. Red Hat makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RED HAT - * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * Author: Owen Taylor, Red Hat, Inc. - */ -#ifndef XSETTINGS_COMMON_H -#define XSETTINGS_COMMON_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Renames for GDK inclusion */ - -#define xsettings_client_destroy _gdk_x11_xsettings_client_destroy -#define xsettings_client_get_setting _gdk_x11_xsettings_client_get_setting -#define xsettings_client_new _gdk_x11_xsettings_client_new -#define xsettings_client_set_grab_func _gdk_x11_xsettings_client_set_grab_func -#define xsettings_client_set_ungrab_func _gdk_x11_xsettings_client_set_ungrab_func -#define xsettings_client_process_event _gdk_x11_xsettings_client_process_event -#define xsettings_setting_equal _gdk_x11_xsettings_setting_equal -#define xsettings_setting_free _gdk_x11_xsettings_setting_free - -typedef struct _XSettingsBuffer XSettingsBuffer; -typedef struct _XSettingsColor XSettingsColor; -typedef struct _XSettingsSetting XSettingsSetting; - -/* Types of settings possible. Enum values correspond to - * protocol values. - */ -typedef enum -{ - XSETTINGS_TYPE_INT = 0, - XSETTINGS_TYPE_STRING = 1, - XSETTINGS_TYPE_COLOR = 2 -} XSettingsType; - -typedef enum -{ - XSETTINGS_SUCCESS, - XSETTINGS_NO_MEM, - XSETTINGS_ACCESS, - XSETTINGS_FAILED, - XSETTINGS_NO_ENTRY, - XSETTINGS_DUPLICATE_ENTRY -} XSettingsResult; - -struct _XSettingsBuffer -{ - char byte_order; - size_t len; - unsigned char *data; - unsigned char *pos; -}; - -struct _XSettingsColor -{ - unsigned short red, green, blue, alpha; -}; - -struct _XSettingsSetting -{ - char *name; - XSettingsType type; - - union { - int v_int; - char *v_string; - XSettingsColor v_color; - } data; -}; - -void xsettings_setting_free (XSettingsSetting *setting); -int xsettings_setting_equal (XSettingsSetting *setting_a, - XSettingsSetting *setting_b); - -#define XSETTINGS_PAD(n,m) ((n + m - 1) & (~(m-1))) - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* XSETTINGS_COMMON_H */ From eb4792128fff3886f0223a47f702e993d1a5a362 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 10 Feb 2013 01:20:38 +0100 Subject: [PATCH 117/208] x11: Pass the GdkScreen to the XSettingsClient --- gdk/x11/gdkscreen-x11.c | 3 +-- gdk/x11/xsettings-client.c | 23 ++++++++++++----------- gdk/x11/xsettings-client.h | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index cb26ee5ef1..94f4705cd8 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -1731,8 +1731,7 @@ _gdk_x11_screen_init_events (GdkScreen *screen) /* Keep a flag to avoid extra notifies that we don't need */ x11_screen->xsettings_in_init = TRUE; - x11_screen->xsettings_client = xsettings_client_new (x11_screen->xdisplay, - x11_screen->screen_num, + x11_screen->xsettings_client = xsettings_client_new (screen, gdk_xsettings_notify_cb, gdk_xsettings_watch_cb, screen, diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 93d3bc1e5b..1a92b68b01 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -25,7 +25,9 @@ #include "xsettings-client.h" -#include +#include +#include +#include #include #include @@ -37,8 +39,8 @@ struct _XSettingsClient { + GdkScreen *screen; Display *display; - int screen; XSettingsNotifyFunc notify; XSettingsWatchFunc watch; void *cb_data; @@ -453,8 +455,7 @@ check_manager_window (XSettingsClient *client) } XSettingsClient * -xsettings_client_new (Display *display, - int screen, +xsettings_client_new (GdkScreen *screen, XSettingsNotifyFunc notify, XSettingsWatchFunc watch, void *cb_data, @@ -470,8 +471,8 @@ xsettings_client_new (Display *display, if (!client) return NULL; - client->display = display; client->screen = screen; + client->display = gdk_x11_display_get_xdisplay (gdk_screen_get_display (screen)); client->notify = notify; client->watch = watch; client->cb_data = cb_data; @@ -480,12 +481,12 @@ xsettings_client_new (Display *display, client->manager_window = None; client->settings = NULL; - sprintf(buffer, "_XSETTINGS_S%d", screen); + sprintf(buffer, "_XSETTINGS_S%d", gdk_x11_screen_get_screen_number (screen)); atom_names[0] = buffer; atom_names[1] = "_XSETTINGS_SETTINGS"; atom_names[2] = "MANAGER"; - XInternAtoms (display, atom_names, 3, False, atoms); + XInternAtoms (client->display, atom_names, 3, False, atoms); client->selection_atom = atoms[0]; client->xsettings_atom = atoms[1]; @@ -493,10 +494,10 @@ xsettings_client_new (Display *display, /* Select on StructureNotify so we get MANAGER events */ - add_events (display, RootWindow (display, screen), StructureNotifyMask); + add_events (client->display, gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), StructureNotifyMask); if (client->watch) - client->watch (RootWindow (display, screen), True, StructureNotifyMask, + client->watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), True, StructureNotifyMask, client->cb_data); check_manager_window (client); @@ -523,7 +524,7 @@ void xsettings_client_destroy (XSettingsClient *client) { if (client->watch) - client->watch (RootWindow (client->display, client->screen), + client->watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (client->screen)), False, 0, client->cb_data); if (client->manager_window && client->watch) client->watch (client->manager_window, False, 0, client->cb_data); @@ -549,7 +550,7 @@ xsettings_client_process_event (XSettingsClient *client, * times when the manager changes from A->B. But manager changes * are going to be pretty rare. */ - if (xev->xany.window == RootWindow (client->display, client->screen)) + if (xev->xany.window == gdk_x11_window_get_xid (gdk_screen_get_root_window (client->screen))) { if (xev->xany.type == ClientMessage && xev->xclient.message_type == client->manager_atom && diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 348c68c734..cb6ab9b082 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -23,6 +23,7 @@ #ifndef XSETTINGS_CLIENT_H #define XSETTINGS_CLIENT_H +#include #include #ifdef __cplusplus @@ -111,8 +112,7 @@ void xsettings_setting_free (XSettingsSetting *setting) int xsettings_setting_equal (XSettingsSetting *setting_a, XSettingsSetting *setting_b); -XSettingsClient *xsettings_client_new (Display *display, - int screen, +XSettingsClient *xsettings_client_new (GdkScreen *screen, XSettingsNotifyFunc notify, XSettingsWatchFunc watch, void *cb_data, From 7800e68b7351e607437e168a3a5b133d35ab9772 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 10 Feb 2013 01:24:28 +0100 Subject: [PATCH 118/208] x11: Call grab functions directly ... instead of going via vfuncs. --- gdk/x11/gdkscreen-x11.c | 20 +------------------- gdk/x11/xsettings-client.c | 34 +++------------------------------- gdk/x11/xsettings-client.h | 11 +---------- 3 files changed, 5 insertions(+), 60 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 94f4705cd8..6e551cbb78 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -1609,22 +1609,6 @@ gdk_x11_screen_supports_net_wm_hint (GdkScreen *screen, return FALSE; } -static void -refcounted_grab_server (Display *xdisplay) -{ - GdkDisplay *display = gdk_x11_lookup_xdisplay (xdisplay); - - gdk_x11_display_grab (display); -} - -static void -refcounted_ungrab_server (Display *xdisplay) -{ - GdkDisplay *display = gdk_x11_lookup_xdisplay (xdisplay); - - gdk_x11_display_ungrab (display); -} - static GdkFilterReturn gdk_xsettings_client_event_filter (GdkXEvent *xevent, GdkEvent *event, @@ -1734,9 +1718,7 @@ _gdk_x11_screen_init_events (GdkScreen *screen) x11_screen->xsettings_client = xsettings_client_new (screen, gdk_xsettings_notify_cb, gdk_xsettings_watch_cb, - screen, - refcounted_grab_server, - refcounted_ungrab_server); + screen); x11_screen->xsettings_in_init = FALSE; } diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 1a92b68b01..da7d55b93a 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -45,9 +45,6 @@ struct _XSettingsClient XSettingsWatchFunc watch; void *cb_data; - XSettingsGrabFunc grab; - XSettingsGrabFunc ungrab; - Window manager_window; Atom manager_atom; Atom selection_atom; @@ -418,10 +415,7 @@ check_manager_window (XSettingsClient *client) if (client->manager_window && client->watch) client->watch (client->manager_window, False, 0, client->cb_data); - if (client->grab) - client->grab (client->display); - else - XGrabServer (client->display); + gdk_x11_display_grab (gdk_screen_get_display (client->screen)); client->manager_window = XGetSelectionOwner (client->display, client->selection_atom); @@ -429,10 +423,7 @@ check_manager_window (XSettingsClient *client) XSelectInput (client->display, client->manager_window, PropertyChangeMask | StructureNotifyMask); - if (client->ungrab) - client->ungrab (client->display); - else - XUngrabServer (client->display); + gdk_x11_display_ungrab (gdk_screen_get_display (client->screen)); XFlush (client->display); @@ -458,9 +449,7 @@ XSettingsClient * xsettings_client_new (GdkScreen *screen, XSettingsNotifyFunc notify, XSettingsWatchFunc watch, - void *cb_data, - XSettingsGrabFunc grab, - XSettingsGrabFunc ungrab) + void *cb_data) { XSettingsClient *client; char buffer[256]; @@ -476,8 +465,6 @@ xsettings_client_new (GdkScreen *screen, client->notify = notify; client->watch = watch; client->cb_data = cb_data; - client->grab = grab; - client->ungrab = ungrab; client->manager_window = None; client->settings = NULL; @@ -505,21 +492,6 @@ xsettings_client_new (GdkScreen *screen, return client; } - -void -xsettings_client_set_grab_func (XSettingsClient *client, - XSettingsGrabFunc grab) -{ - client->grab = grab; -} - -void -xsettings_client_set_ungrab_func (XSettingsClient *client, - XSettingsGrabFunc ungrab) -{ - client->ungrab = ungrab; -} - void xsettings_client_destroy (XSettingsClient *client) { diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index cb6ab9b082..69ffca1436 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -35,8 +35,6 @@ extern "C" { #define xsettings_client_destroy _gdk_x11_xsettings_client_destroy #define xsettings_client_get_setting _gdk_x11_xsettings_client_get_setting #define xsettings_client_new _gdk_x11_xsettings_client_new -#define xsettings_client_set_grab_func _gdk_x11_xsettings_client_set_grab_func -#define xsettings_client_set_ungrab_func _gdk_x11_xsettings_client_set_ungrab_func #define xsettings_client_process_event _gdk_x11_xsettings_client_process_event #define xsettings_setting_equal _gdk_x11_xsettings_setting_equal #define xsettings_setting_free _gdk_x11_xsettings_setting_free @@ -106,7 +104,6 @@ typedef Bool (*XSettingsWatchFunc) (Window window, Bool is_start, long mask, void *cb_data); -typedef void (*XSettingsGrabFunc) (Display *display); void xsettings_setting_free (XSettingsSetting *setting); int xsettings_setting_equal (XSettingsSetting *setting_a, @@ -115,13 +112,7 @@ int xsettings_setting_equal (XSettingsSetting *setting_ XSettingsClient *xsettings_client_new (GdkScreen *screen, XSettingsNotifyFunc notify, XSettingsWatchFunc watch, - void *cb_data, - XSettingsGrabFunc grab, - XSettingsGrabFunc ungrab); -void xsettings_client_set_grab_func (XSettingsClient *client, - XSettingsGrabFunc grab); -void xsettings_client_set_ungrab_func (XSettingsClient *client, - XSettingsGrabFunc ungrab); + void *cb_data); void xsettings_client_destroy (XSettingsClient *client); Bool xsettings_client_process_event (XSettingsClient *client, XEvent *xev); From 08a6f554c3d9ee157cddaefa2d7fd26458f2737b Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 12 Feb 2013 14:58:44 +0100 Subject: [PATCH 119/208] x11: Use glib malloc funcs for XSettings --- gdk/x11/xsettings-client.c | 35 ++++++++--------------------------- gdk/x11/xsettings-client.h | 1 - 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index da7d55b93a..3920bec8e8 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -31,7 +31,6 @@ #include #include -#include #include #include @@ -225,20 +224,10 @@ parse_settings (unsigned char *data, goto out; } - setting = malloc (sizeof *setting); - if (!setting) - { - result = XSETTINGS_NO_MEM; - goto out; - } + setting = g_new (XSettingsSetting, 1); setting->type = XSETTINGS_TYPE_INT; /* No allocated memory */ - setting->name = malloc (name_len + 1); - if (!setting->name) - { - result = XSETTINGS_NO_MEM; - goto out; - } + setting->name = g_malloc (name_len + 1); memcpy (setting->name, buffer.pos, name_len); setting->name[name_len] = '\0'; @@ -271,12 +260,7 @@ parse_settings (unsigned char *data, goto out; } - setting->data.v_string = malloc (v_int + 1); - if (!setting->data.v_string) - { - result = XSETTINGS_NO_MEM; - goto out; - } + setting->data.v_string = g_malloc (v_int + 1); memcpy (setting->data.v_string, buffer.pos, v_int); setting->data.v_string[v_int] = '\0'; @@ -326,9 +310,6 @@ parse_settings (unsigned char *data, { switch (result) { - case XSETTINGS_NO_MEM: - fprintf(stderr, "Out of memory reading XSETTINGS property\n"); - break; case XSETTINGS_ACCESS: fprintf(stderr, "Invalid XSETTINGS property (read off end)\n"); break; @@ -456,7 +437,7 @@ xsettings_client_new (GdkScreen *screen, char *atom_names[3]; Atom atoms[3]; - client = malloc (sizeof *client); + client = g_new (XSettingsClient, 1); if (!client) return NULL; @@ -503,7 +484,7 @@ xsettings_client_destroy (XSettingsClient *client) if (client->settings) g_hash_table_unref (client->settings); - free (client); + g_free (client); } const XSettingsSetting * @@ -580,11 +561,11 @@ void xsettings_setting_free (XSettingsSetting *setting) { if (setting->type == XSETTINGS_TYPE_STRING) - free (setting->data.v_string); + g_free (setting->data.v_string); if (setting->name) - free (setting->name); + g_free (setting->name); - free (setting); + g_free (setting); } diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 69ffca1436..6bb2dbcb96 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -64,7 +64,6 @@ typedef enum typedef enum { XSETTINGS_SUCCESS, - XSETTINGS_NO_MEM, XSETTINGS_ACCESS, XSETTINGS_FAILED, XSETTINGS_NO_ENTRY, From 8857766b5aba2e45423c94665721b0e2120b6a90 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 12 Feb 2013 16:11:46 +0100 Subject: [PATCH 120/208] gdk: Add a debug category for settings --- gdk/gdk.c | 3 ++- gdk/gdkinternals.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gdk/gdk.c b/gdk/gdk.c index babe08028d..437ecf99d0 100644 --- a/gdk/gdk.c +++ b/gdk/gdk.c @@ -139,7 +139,8 @@ static const GDebugKey gdk_debug_keys[] = { {"xinerama", GDK_DEBUG_XINERAMA}, {"draw", GDK_DEBUG_DRAW}, {"eventloop", GDK_DEBUG_EVENTLOOP}, - {"frames", GDK_DEBUG_FRAMES} + {"frames", GDK_DEBUG_FRAMES}, + {"settings", GDK_DEBUG_SETTINGS} }; static gboolean diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index 4a91b7709f..a187a03106 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -83,7 +83,8 @@ typedef enum { GDK_DEBUG_XINERAMA = 1 << 8, GDK_DEBUG_DRAW = 1 << 9, GDK_DEBUG_EVENTLOOP = 1 << 10, - GDK_DEBUG_FRAMES = 1 << 11 + GDK_DEBUG_FRAMES = 1 << 11, + GDK_DEBUG_SETTINGS = 1 << 12 } GdkDebugFlag; typedef enum { From 0c58cb744ce65ddd6a9465fa8b86e67dc72f80c7 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 12 Feb 2013 16:31:03 +0100 Subject: [PATCH 121/208] x11: Add debugging output for xsettings code --- gdk/x11/xsettings-client.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 3920bec8e8..803d85f5bb 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -29,6 +29,8 @@ #include #include +#include + #include #include #include @@ -200,6 +202,8 @@ parse_settings (unsigned char *data, if (result != XSETTINGS_SUCCESS) goto out; + GDK_NOTE(SETTINGS, g_print("reading %u settings (serial %u byte order %u)\n", n_entries, serial, buffer.byte_order)); + for (i = 0; i < n_entries; i++) { CARD8 type; @@ -246,6 +250,7 @@ parse_settings (unsigned char *data, goto out; setting->data.v_int = (INT32)v_int; + GDK_NOTE(SETTINGS, g_print(" %s = %d\n", setting->name, (gint) setting->data.v_int)); break; case XSETTINGS_TYPE_STRING: result = fetch_card32 (&buffer, &v_int); @@ -266,6 +271,7 @@ parse_settings (unsigned char *data, setting->data.v_string[v_int] = '\0'; buffer.pos += pad_len; + GDK_NOTE(SETTINGS, g_print(" %s = \"%s\"\n", setting->name, setting->data.v_string)); break; case XSETTINGS_TYPE_COLOR: result = fetch_ushort (&buffer, &setting->data.v_color.red); @@ -281,9 +287,13 @@ parse_settings (unsigned char *data, if (result != XSETTINGS_SUCCESS) goto out; + GDK_NOTE(SETTINGS, g_print(" %s = #%02X%02X%02X%02X\n", setting->name, + setting->data.v_color.alpha, setting->data.v_color.red, + setting->data.v_color.green, setting->data.v_color.blue)); break; default: /* Quietly ignore unknown types */ + GDK_NOTE(SETTINGS, g_print(" %s = ignored (unknown type %u)\n", setting->name, type)); break; } From 2b83062fc6c138ae2b6619adef13fe0373324ee5 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 12 Feb 2013 16:47:45 +0100 Subject: [PATCH 122/208] x11: Clean up xsettings header Move private struct definitions into source file, remove unneeded C++ guards. --- gdk/x11/xsettings-client.c | 19 +++++++++++++++++++ gdk/x11/xsettings-client.h | 26 -------------------------- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 803d85f5bb..d26ce76b5e 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -38,6 +38,25 @@ #include #include /* For CARD16 */ +typedef struct _XSettingsBuffer XSettingsBuffer; + +typedef enum +{ + XSETTINGS_SUCCESS, + XSETTINGS_ACCESS, + XSETTINGS_FAILED, + XSETTINGS_NO_ENTRY, + XSETTINGS_DUPLICATE_ENTRY +} XSettingsResult; + +struct _XSettingsBuffer +{ + char byte_order; + size_t len; + unsigned char *data; + unsigned char *pos; +}; + struct _XSettingsClient { GdkScreen *screen; diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 6bb2dbcb96..298950b11d 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -26,10 +26,6 @@ #include #include -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - /* Renames for GDK inclusion */ #define xsettings_client_destroy _gdk_x11_xsettings_client_destroy @@ -39,7 +35,6 @@ extern "C" { #define xsettings_setting_equal _gdk_x11_xsettings_setting_equal #define xsettings_setting_free _gdk_x11_xsettings_setting_free -typedef struct _XSettingsBuffer XSettingsBuffer; typedef struct _XSettingsColor XSettingsColor; typedef struct _XSettingsSetting XSettingsSetting; typedef struct _XSettingsClient XSettingsClient; @@ -61,23 +56,6 @@ typedef enum XSETTINGS_ACTION_DELETED } XSettingsAction; -typedef enum -{ - XSETTINGS_SUCCESS, - XSETTINGS_ACCESS, - XSETTINGS_FAILED, - XSETTINGS_NO_ENTRY, - XSETTINGS_DUPLICATE_ENTRY -} XSettingsResult; - -struct _XSettingsBuffer -{ - char byte_order; - size_t len; - unsigned char *data; - unsigned char *pos; -}; - struct _XSettingsColor { unsigned short red, green, blue, alpha; @@ -119,8 +97,4 @@ const XSettingsSetting * xsettings_client_get_setting (XSettingsClient *client, const char *name); -#ifdef __cplusplus -} -#endif /* __cplusplus */ - #endif /* XSETTINGS_CLIENT_H */ From c84e303fb5bc0aa873edf38ed1b18237b08cb099 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 12 Feb 2013 18:45:03 +0100 Subject: [PATCH 123/208] x11: Split out xsettings string reading code --- gdk/x11/xsettings-client.c | 51 +++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index d26ce76b5e..c693211950 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -187,6 +187,24 @@ fetch_card8 (XSettingsBuffer *buffer, #define XSETTINGS_PAD(n,m) ((n + m - 1) & (~(m-1))) +static XSettingsResult +fetch_string (XSettingsBuffer *buffer, + guint length, + char **result) +{ + guint pad_len; + + pad_len = XSETTINGS_PAD (length, 4); + if (pad_len < length /* guard against overflow */ + || BYTES_LEFT (buffer) < pad_len) + return XSETTINGS_ACCESS; + + *result = g_strndup ((char *) buffer->pos, length); + buffer->pos += pad_len; + + return XSETTINGS_SUCCESS; +} + static GHashTable * parse_settings (unsigned char *data, size_t len) @@ -228,7 +246,6 @@ parse_settings (unsigned char *data, CARD8 type; CARD16 name_len; CARD32 v_int; - size_t pad_len; result = fetch_card8 (&buffer, &type); if (result != XSETTINGS_SUCCESS) @@ -240,21 +257,13 @@ parse_settings (unsigned char *data, if (result != XSETTINGS_SUCCESS) goto out; - pad_len = XSETTINGS_PAD(name_len, 4); - if (BYTES_LEFT (&buffer) < pad_len) - { - result = XSETTINGS_ACCESS; - goto out; - } - setting = g_new (XSettingsSetting, 1); setting->type = XSETTINGS_TYPE_INT; /* No allocated memory */ - setting->name = g_malloc (name_len + 1); - - memcpy (setting->name, buffer.pos, name_len); - setting->name[name_len] = '\0'; - buffer.pos += pad_len; + setting->name = NULL; + result = fetch_string (&buffer, name_len, &setting->name); + if (result != XSETTINGS_SUCCESS) + goto out; /* last change serial (we ignore it) */ result = fetch_card32 (&buffer, &v_int); @@ -276,20 +285,10 @@ parse_settings (unsigned char *data, if (result != XSETTINGS_SUCCESS) goto out; - pad_len = XSETTINGS_PAD (v_int, 4); - if (v_int + 1 == 0 || /* Guard against wrap-around */ - BYTES_LEFT (&buffer) < pad_len) - { - result = XSETTINGS_ACCESS; - goto out; - } - - setting->data.v_string = g_malloc (v_int + 1); + result = fetch_string (&buffer, v_int, &setting->data.v_string); + if (result != XSETTINGS_SUCCESS) + goto out; - memcpy (setting->data.v_string, buffer.pos, v_int); - setting->data.v_string[v_int] = '\0'; - buffer.pos += pad_len; - GDK_NOTE(SETTINGS, g_print(" %s = \"%s\"\n", setting->name, setting->data.v_string)); break; case XSETTINGS_TYPE_COLOR: From e3206b9de4d1ff5cd2f4b678c095993716284a67 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 12 Feb 2013 18:48:09 +0100 Subject: [PATCH 124/208] x11: Use GDK error trapping code --- gdk/x11/xsettings-client.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index c693211950..a54dbea8b5 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -110,12 +110,6 @@ notify_changes (XSettingsClient *client, } } -static int -ignore_errors (Display *display, XErrorEvent *event) -{ - return True; -} - #define BYTES_LEFT(buffer) ((buffer)->data + (buffer)->len - (buffer)->pos) static XSettingsResult @@ -370,20 +364,18 @@ read_settings (XSettingsClient *client) unsigned char *data; int result; - int (*old_handler) (Display *, XErrorEvent *); - GHashTable *old_list = client->settings; client->settings = NULL; if (client->manager_window) { - old_handler = XSetErrorHandler (ignore_errors); + gdk_x11_display_error_trap_push (gdk_screen_get_display (client->screen)); result = XGetWindowProperty (client->display, client->manager_window, client->xsettings_atom, 0, LONG_MAX, False, client->xsettings_atom, &type, &format, &n_items, &bytes_after, &data); - XSetErrorHandler (old_handler); + gdk_x11_display_error_trap_pop_ignored (gdk_screen_get_display (client->screen)); if (result == Success && type != None) { From b36b89151e71860416ae6917690815175df3da9d Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 12 Feb 2013 19:28:41 +0100 Subject: [PATCH 125/208] x11: Move length checking into return_if_fail() macro --- gdk/x11/xsettings-client.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index a54dbea8b5..7fff6b959d 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -112,14 +112,18 @@ notify_changes (XSettingsClient *client, #define BYTES_LEFT(buffer) ((buffer)->data + (buffer)->len - (buffer)->pos) +#define return_if_fail_bytes(buffer, n_bytes) G_STMT_START{ \ + if (BYTES_LEFT (buffer) < (n_bytes)) \ + return XSETTINGS_ACCESS; \ +}G_STMT_END + static XSettingsResult fetch_card16 (XSettingsBuffer *buffer, CARD16 *result) { CARD16 x; - if (BYTES_LEFT (buffer) < 2) - return XSETTINGS_ACCESS; + return_if_fail_bytes (buffer, 2); x = *(CARD16 *)buffer->pos; buffer->pos += 2; @@ -152,8 +156,7 @@ fetch_card32 (XSettingsBuffer *buffer, { CARD32 x; - if (BYTES_LEFT (buffer) < 4) - return XSETTINGS_ACCESS; + return_if_fail_bytes (buffer, 4); x = *(CARD32 *)buffer->pos; buffer->pos += 4; @@ -170,8 +173,7 @@ static XSettingsResult fetch_card8 (XSettingsBuffer *buffer, CARD8 *result) { - if (BYTES_LEFT (buffer) < 1) - return XSETTINGS_ACCESS; + return_if_fail_bytes (buffer, 1); *result = *(CARD8 *)buffer->pos; buffer->pos += 1; @@ -189,10 +191,11 @@ fetch_string (XSettingsBuffer *buffer, guint pad_len; pad_len = XSETTINGS_PAD (length, 4); - if (pad_len < length /* guard against overflow */ - || BYTES_LEFT (buffer) < pad_len) + if (pad_len < length) /* guard against overflow */ return XSETTINGS_ACCESS; + return_if_fail_bytes (buffer, pad_len); + *result = g_strndup ((char *) buffer->pos, length); buffer->pos += pad_len; From 23b039c8cd28f1614a2fa395c043eb00ef7fc595 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 12 Feb 2013 19:35:46 +0100 Subject: [PATCH 126/208] x11: Move error reporting to where the error happens Also, use g_warning() instead of fprintf(). --- gdk/x11/xsettings-client.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 7fff6b959d..697d38d609 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -31,8 +31,6 @@ #include -#include -#include #include #include @@ -114,7 +112,11 @@ notify_changes (XSettingsClient *client, #define return_if_fail_bytes(buffer, n_bytes) G_STMT_START{ \ if (BYTES_LEFT (buffer) < (n_bytes)) \ - return XSETTINGS_ACCESS; \ + { \ + g_warning ("Invalid XSETTINGS property (read off end: Expected %u bytes, only %ld left", \ + (n_bytes), BYTES_LEFT (buffer)); \ + return XSETTINGS_ACCESS; \ + } \ }G_STMT_END static XSettingsResult @@ -192,7 +194,10 @@ fetch_string (XSettingsBuffer *buffer, pad_len = XSETTINGS_PAD (length, 4); if (pad_len < length) /* guard against overflow */ - return XSETTINGS_ACCESS; + { + g_warning ("Invalid XSETTINGS property (overflow in string length)"); + return XSETTINGS_ACCESS; + } return_if_fail_bytes (buffer, pad_len); @@ -221,7 +226,7 @@ parse_settings (unsigned char *data, if (buffer.byte_order != MSBFirst && buffer.byte_order != LSBFirst) { - fprintf (stderr, "Invalid byte order in XSETTINGS property\n"); + g_warning ("Invalid XSETTINGS property (unknown byte order %u)", buffer.byte_order); result = XSETTINGS_FAILED; goto out; } @@ -322,6 +327,7 @@ parse_settings (unsigned char *data, if (g_hash_table_lookup (settings, setting->name) != NULL) { result = XSETTINGS_DUPLICATE_ENTRY; + g_warning ("Invalid XSETTINGS property (Duplicate entry for '%s')", setting->name); goto out; } @@ -333,19 +339,6 @@ parse_settings (unsigned char *data, if (result != XSETTINGS_SUCCESS) { - switch (result) - { - case XSETTINGS_ACCESS: - fprintf(stderr, "Invalid XSETTINGS property (read off end)\n"); - break; - case XSETTINGS_DUPLICATE_ENTRY: - fprintf (stderr, "Duplicate XSETTINGS entry for '%s'\n", setting->name); - case XSETTINGS_FAILED: - case XSETTINGS_SUCCESS: - case XSETTINGS_NO_ENTRY: - break; - } - if (setting) xsettings_setting_free (setting); From 30a4150c8eb28ef5816953e05a516eb22a873713 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 12 Feb 2013 19:44:28 +0100 Subject: [PATCH 127/208] x11: Use boolean instead of enum for errors in xsettings code --- gdk/x11/xsettings-client.c | 108 +++++++++++++------------------------ 1 file changed, 37 insertions(+), 71 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 697d38d609..77cba70fd0 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -38,15 +38,6 @@ typedef struct _XSettingsBuffer XSettingsBuffer; -typedef enum -{ - XSETTINGS_SUCCESS, - XSETTINGS_ACCESS, - XSETTINGS_FAILED, - XSETTINGS_NO_ENTRY, - XSETTINGS_DUPLICATE_ENTRY -} XSettingsResult; - struct _XSettingsBuffer { char byte_order; @@ -115,11 +106,11 @@ notify_changes (XSettingsClient *client, { \ g_warning ("Invalid XSETTINGS property (read off end: Expected %u bytes, only %ld left", \ (n_bytes), BYTES_LEFT (buffer)); \ - return XSETTINGS_ACCESS; \ + return FALSE; \ } \ }G_STMT_END -static XSettingsResult +static gboolean fetch_card16 (XSettingsBuffer *buffer, CARD16 *result) { @@ -135,24 +126,24 @@ fetch_card16 (XSettingsBuffer *buffer, else *result = GUINT16_FROM_LE (x); - return XSETTINGS_SUCCESS; + return TRUE; } -static XSettingsResult +static gboolean fetch_ushort (XSettingsBuffer *buffer, unsigned short *result) { CARD16 x; - XSettingsResult r; + gboolean r; r = fetch_card16 (buffer, &x); - if (r == XSETTINGS_SUCCESS) + if (r) *result = x; return r; } -static XSettingsResult +static gboolean fetch_card32 (XSettingsBuffer *buffer, CARD32 *result) { @@ -168,10 +159,10 @@ fetch_card32 (XSettingsBuffer *buffer, else *result = GUINT32_FROM_LE (x); - return XSETTINGS_SUCCESS; + return TRUE; } -static XSettingsResult +static gboolean fetch_card8 (XSettingsBuffer *buffer, CARD8 *result) { @@ -180,12 +171,12 @@ fetch_card8 (XSettingsBuffer *buffer, *result = *(CARD8 *)buffer->pos; buffer->pos += 1; - return XSETTINGS_SUCCESS; + return TRUE; } #define XSETTINGS_PAD(n,m) ((n + m - 1) & (~(m-1))) -static XSettingsResult +static gboolean fetch_string (XSettingsBuffer *buffer, guint length, char **result) @@ -196,7 +187,7 @@ fetch_string (XSettingsBuffer *buffer, if (pad_len < length) /* guard against overflow */ { g_warning ("Invalid XSETTINGS property (overflow in string length)"); - return XSETTINGS_ACCESS; + return FALSE; } return_if_fail_bytes (buffer, pad_len); @@ -204,7 +195,7 @@ fetch_string (XSettingsBuffer *buffer, *result = g_strndup ((char *) buffer->pos, length); buffer->pos += pad_len; - return XSETTINGS_SUCCESS; + return TRUE; } static GHashTable * @@ -212,7 +203,6 @@ parse_settings (unsigned char *data, size_t len) { XSettingsBuffer buffer; - XSettingsResult result = XSETTINGS_SUCCESS; GHashTable *settings = NULL; CARD32 serial; CARD32 n_entries; @@ -222,23 +212,20 @@ parse_settings (unsigned char *data, buffer.pos = buffer.data = data; buffer.len = len; - result = fetch_card8 (&buffer, (unsigned char *)&buffer.byte_order); + if (!fetch_card8 (&buffer, (unsigned char *)&buffer.byte_order)) + goto out; + if (buffer.byte_order != MSBFirst && buffer.byte_order != LSBFirst) { g_warning ("Invalid XSETTINGS property (unknown byte order %u)", buffer.byte_order); - result = XSETTINGS_FAILED; goto out; } buffer.pos += 3; - result = fetch_card32 (&buffer, &serial); - if (result != XSETTINGS_SUCCESS) - goto out; - - result = fetch_card32 (&buffer, &n_entries); - if (result != XSETTINGS_SUCCESS) + if (!fetch_card32 (&buffer, &serial) || + !fetch_card32 (&buffer, &n_entries)) goto out; GDK_NOTE(SETTINGS, g_print("reading %u settings (serial %u byte order %u)\n", n_entries, serial, buffer.byte_order)); @@ -249,62 +236,44 @@ parse_settings (unsigned char *data, CARD16 name_len; CARD32 v_int; - result = fetch_card8 (&buffer, &type); - if (result != XSETTINGS_SUCCESS) + if (!fetch_card8 (&buffer, &type)) goto out; buffer.pos += 1; - result = fetch_card16 (&buffer, &name_len); - if (result != XSETTINGS_SUCCESS) + if (!fetch_card16 (&buffer, &name_len)) goto out; setting = g_new (XSettingsSetting, 1); setting->type = XSETTINGS_TYPE_INT; /* No allocated memory */ setting->name = NULL; - result = fetch_string (&buffer, name_len, &setting->name); - if (result != XSETTINGS_SUCCESS) - goto out; - - /* last change serial (we ignore it) */ - result = fetch_card32 (&buffer, &v_int); - if (result != XSETTINGS_SUCCESS) + if (!fetch_string (&buffer, name_len, &setting->name) || + /* last change serial (we ignore it) */ + !fetch_card32 (&buffer, &v_int)) goto out; switch (type) { case XSETTINGS_TYPE_INT: - result = fetch_card32 (&buffer, &v_int); - if (result != XSETTINGS_SUCCESS) + if (!fetch_card32 (&buffer, &v_int)) goto out; setting->data.v_int = (INT32)v_int; GDK_NOTE(SETTINGS, g_print(" %s = %d\n", setting->name, (gint) setting->data.v_int)); break; case XSETTINGS_TYPE_STRING: - result = fetch_card32 (&buffer, &v_int); - if (result != XSETTINGS_SUCCESS) + if (!fetch_card32 (&buffer, &v_int) || + !fetch_string (&buffer, v_int, &setting->data.v_string)) goto out; - - result = fetch_string (&buffer, v_int, &setting->data.v_string); - if (result != XSETTINGS_SUCCESS) - goto out; GDK_NOTE(SETTINGS, g_print(" %s = \"%s\"\n", setting->name, setting->data.v_string)); break; case XSETTINGS_TYPE_COLOR: - result = fetch_ushort (&buffer, &setting->data.v_color.red); - if (result != XSETTINGS_SUCCESS) - goto out; - result = fetch_ushort (&buffer, &setting->data.v_color.green); - if (result != XSETTINGS_SUCCESS) - goto out; - result = fetch_ushort (&buffer, &setting->data.v_color.blue); - if (result != XSETTINGS_SUCCESS) - goto out; - result = fetch_ushort (&buffer, &setting->data.v_color.alpha); - if (result != XSETTINGS_SUCCESS) + if (!fetch_ushort (&buffer, &setting->data.v_color.red) || + !fetch_ushort (&buffer, &setting->data.v_color.green) || + !fetch_ushort (&buffer, &setting->data.v_color.blue) || + !fetch_ushort (&buffer, &setting->data.v_color.alpha)) goto out; GDK_NOTE(SETTINGS, g_print(" %s = #%02X%02X%02X%02X\n", setting->name, @@ -326,7 +295,6 @@ parse_settings (unsigned char *data, if (g_hash_table_lookup (settings, setting->name) != NULL) { - result = XSETTINGS_DUPLICATE_ENTRY; g_warning ("Invalid XSETTINGS property (Duplicate entry for '%s')", setting->name); goto out; } @@ -335,19 +303,17 @@ parse_settings (unsigned char *data, setting = NULL; } + return settings; + out: - if (result != XSETTINGS_SUCCESS) - { - if (setting) - xsettings_setting_free (setting); + if (setting) + xsettings_setting_free (setting); - if (settings) - g_hash_table_unref (settings); - settings = NULL; - } + if (settings) + g_hash_table_unref (settings); - return settings; + return NULL; } static void From c3607fd551730c37f7dc2cc6c47950e4047a7b1d Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 12 Feb 2013 20:10:23 +0100 Subject: [PATCH 128/208] x11: Don't store name in XSettingsSetting anymore This is in preparation to switching XSettingsSetting to GValue --- gdk/x11/xsettings-client.c | 42 +++++++++++++++++--------------------- gdk/x11/xsettings-client.h | 1 - 2 files changed, 19 insertions(+), 24 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 77cba70fd0..a27ef0bd04 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -68,6 +68,7 @@ notify_changes (XSettingsClient *client, { GHashTableIter iter; XSettingsSetting *setting, *old_setting; + const char *name; if (!client->notify) return; @@ -75,18 +76,18 @@ notify_changes (XSettingsClient *client, if (client->settings != NULL) { g_hash_table_iter_init (&iter, client->settings); - while (g_hash_table_iter_next (&iter, NULL, (gpointer*) &setting)) + while (g_hash_table_iter_next (&iter, (gpointer *) &name, (gpointer*) &setting)) { - old_setting = old_list ? g_hash_table_lookup (old_list, setting->name) : NULL; + old_setting = old_list ? g_hash_table_lookup (old_list, name) : NULL; if (old_setting == NULL) - client->notify (setting->name, XSETTINGS_ACTION_NEW, setting, client->cb_data); + client->notify (name, XSETTINGS_ACTION_NEW, setting, client->cb_data); else if (!xsettings_setting_equal (setting, old_setting)) - client->notify (setting->name, XSETTINGS_ACTION_CHANGED, setting, client->cb_data); + client->notify (name, XSETTINGS_ACTION_CHANGED, setting, client->cb_data); /* remove setting from old_list */ if (old_setting != NULL) - g_hash_table_remove (old_list, setting->name); + g_hash_table_remove (old_list, name); } } @@ -94,8 +95,8 @@ notify_changes (XSettingsClient *client, { /* old_list now contains only deleted settings */ g_hash_table_iter_init (&iter, old_list); - while (g_hash_table_iter_next (&iter, NULL, (gpointer*) &old_setting)) - client->notify (old_setting->name, XSETTINGS_ACTION_DELETED, NULL, client->cb_data); + while (g_hash_table_iter_next (&iter, (gpointer *) &name, (gpointer*) &old_setting)) + client->notify (name, XSETTINGS_ACTION_DELETED, NULL, client->cb_data); } } @@ -208,6 +209,7 @@ parse_settings (unsigned char *data, CARD32 n_entries; CARD32 i; XSettingsSetting *setting = NULL; + char *name; buffer.pos = buffer.data = data; buffer.len = len; @@ -247,8 +249,7 @@ parse_settings (unsigned char *data, setting = g_new (XSettingsSetting, 1); setting->type = XSETTINGS_TYPE_INT; /* No allocated memory */ - setting->name = NULL; - if (!fetch_string (&buffer, name_len, &setting->name) || + if (!fetch_string (&buffer, name_len, &name) || /* last change serial (we ignore it) */ !fetch_card32 (&buffer, &v_int)) goto out; @@ -260,14 +261,14 @@ parse_settings (unsigned char *data, goto out; setting->data.v_int = (INT32)v_int; - GDK_NOTE(SETTINGS, g_print(" %s = %d\n", setting->name, (gint) setting->data.v_int)); + GDK_NOTE(SETTINGS, g_print(" %s = %d\n", name, (gint) setting->data.v_int)); break; case XSETTINGS_TYPE_STRING: if (!fetch_card32 (&buffer, &v_int) || !fetch_string (&buffer, v_int, &setting->data.v_string)) goto out; - GDK_NOTE(SETTINGS, g_print(" %s = \"%s\"\n", setting->name, setting->data.v_string)); + GDK_NOTE(SETTINGS, g_print(" %s = \"%s\"\n", name, setting->data.v_string)); break; case XSETTINGS_TYPE_COLOR: if (!fetch_ushort (&buffer, &setting->data.v_color.red) || @@ -276,13 +277,13 @@ parse_settings (unsigned char *data, !fetch_ushort (&buffer, &setting->data.v_color.alpha)) goto out; - GDK_NOTE(SETTINGS, g_print(" %s = #%02X%02X%02X%02X\n", setting->name, + GDK_NOTE(SETTINGS, g_print(" %s = #%02X%02X%02X%02X\n", name, setting->data.v_color.alpha, setting->data.v_color.red, setting->data.v_color.green, setting->data.v_color.blue)); break; default: /* Quietly ignore unknown types */ - GDK_NOTE(SETTINGS, g_print(" %s = ignored (unknown type %u)\n", setting->name, type)); + GDK_NOTE(SETTINGS, g_print(" %s = ignored (unknown type %u)\n", name, type)); break; } @@ -290,17 +291,18 @@ parse_settings (unsigned char *data, if (settings == NULL) settings = g_hash_table_new_full (g_str_hash, g_str_equal, - NULL, + g_free, (GDestroyNotify) xsettings_setting_free); - if (g_hash_table_lookup (settings, setting->name) != NULL) + if (g_hash_table_lookup (settings, name) != NULL) { - g_warning ("Invalid XSETTINGS property (Duplicate entry for '%s')", setting->name); + g_warning ("Invalid XSETTINGS property (Duplicate entry for '%s')", name); goto out; } - g_hash_table_insert (settings, setting->name, setting); + g_hash_table_insert (settings, name, setting); setting = NULL; + name = NULL; } return settings; @@ -520,9 +522,6 @@ xsettings_setting_equal (XSettingsSetting *setting_a, if (setting_a->type != setting_b->type) return 0; - if (strcmp (setting_a->name, setting_b->name) != 0) - return 0; - switch (setting_a->type) { case XSETTINGS_TYPE_INT: @@ -545,9 +544,6 @@ xsettings_setting_free (XSettingsSetting *setting) if (setting->type == XSETTINGS_TYPE_STRING) g_free (setting->data.v_string); - if (setting->name) - g_free (setting->name); - g_free (setting); } diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 298950b11d..0b9aa805cc 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -63,7 +63,6 @@ struct _XSettingsColor struct _XSettingsSetting { - char *name; XSettingsType type; union { From a4f11fa4f57ff8a9d8814ad1de147eb6c20e51dc Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 14 Feb 2013 15:06:56 +0100 Subject: [PATCH 129/208] x11: Make xsettings callbacks code go away It's the same callbacks every time, so just move them into the source file. --- gdk/x11/gdkscreen-x11.c | 103 +---------------- gdk/x11/gdksettings.c | 4 +- gdk/x11/xsettings-client.c | 219 +++++++++++++++++++++++++------------ gdk/x11/xsettings-client.h | 16 +-- 4 files changed, 155 insertions(+), 187 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 6e551cbb78..5c3608f498 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -1609,104 +1609,6 @@ gdk_x11_screen_supports_net_wm_hint (GdkScreen *screen, return FALSE; } -static GdkFilterReturn -gdk_xsettings_client_event_filter (GdkXEvent *xevent, - GdkEvent *event, - gpointer data) -{ - GdkX11Screen *screen = data; - - if (xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent)) - return GDK_FILTER_REMOVE; - else - return GDK_FILTER_CONTINUE; -} - -static Bool -gdk_xsettings_watch_cb (Window window, - Bool is_start, - long mask, - void *cb_data) -{ - GdkWindow *gdkwin; - GdkScreen *screen = cb_data; - - gdkwin = gdk_x11_window_lookup_for_display (gdk_screen_get_display (screen), window); - - if (is_start) - { - if (gdkwin) - g_object_ref (gdkwin); - else - { - gdkwin = gdk_x11_window_foreign_new_for_display (gdk_screen_get_display (screen), window); - - /* gdk_window_foreign_new_for_display() can fail and return NULL if the - * window has already been destroyed. - */ - if (!gdkwin) - return False; - } - - gdk_window_add_filter (gdkwin, gdk_xsettings_client_event_filter, screen); - } - else - { - if (!gdkwin) - { - /* gdkwin should not be NULL here, since if starting the watch succeeded - * we have a reference on the window. It might mean that the caller didn't - * remove the watch when it got a DestroyNotify event. Or maybe the - * caller ignored the return value when starting the watch failed. - */ - g_warning ("gdk_xsettings_watch_cb(): Couldn't find window to unwatch"); - return False; - } - - gdk_window_remove_filter (gdkwin, gdk_xsettings_client_event_filter, screen); - g_object_unref (gdkwin); - } - - return True; -} - -static void -gdk_xsettings_notify_cb (const char *name, - XSettingsAction action, - XSettingsSetting *setting, - void *data) -{ - GdkEvent new_event; - GdkScreen *screen = data; - GdkX11Screen *x11_screen = data; - - if (x11_screen->xsettings_in_init) - return; - - new_event.type = GDK_SETTING; - new_event.setting.window = gdk_screen_get_root_window (screen); - new_event.setting.send_event = FALSE; - new_event.setting.name = (char*) gdk_from_xsettings_name (name); - - if (!new_event.setting.name) - return; - - switch (action) - { - case XSETTINGS_ACTION_NEW: - new_event.setting.action = GDK_SETTING_ACTION_NEW; - break; - case XSETTINGS_ACTION_CHANGED: - new_event.setting.action = GDK_SETTING_ACTION_CHANGED; - break; - case XSETTINGS_ACTION_DELETED: - new_event.setting.action = GDK_SETTING_ACTION_DELETED; - break; - } - - gdk_event_put (&new_event); -} - void _gdk_x11_screen_init_events (GdkScreen *screen) { @@ -1715,10 +1617,7 @@ _gdk_x11_screen_init_events (GdkScreen *screen) /* Keep a flag to avoid extra notifies that we don't need */ x11_screen->xsettings_in_init = TRUE; - x11_screen->xsettings_client = xsettings_client_new (screen, - gdk_xsettings_notify_cb, - gdk_xsettings_watch_cb, - screen); + x11_screen->xsettings_client = xsettings_client_new (screen); x11_screen->xsettings_in_init = FALSE; } diff --git a/gdk/x11/gdksettings.c b/gdk/x11/gdksettings.c index e2fdcf24d7..cfd2676027 100644 --- a/gdk/x11/gdksettings.c +++ b/gdk/x11/gdksettings.c @@ -79,7 +79,7 @@ static const struct { {"Gtk/RecentFilesEnabled", "gtk-recent-files-enabled"} }; -static const char * +static G_GNUC_UNUSED const char * gdk_from_xsettings_name (const char *xname) { static GHashTable *hash = NULL; @@ -97,7 +97,7 @@ gdk_from_xsettings_name (const char *xname) return g_hash_table_lookup (hash, xname); } -static const char * +static G_GNUC_UNUSED const char * gdk_to_xsettings_name (const char *gdkname) { static GHashTable *hash = NULL; diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index a27ef0bd04..7e7bc9d2ba 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -28,6 +28,7 @@ #include #include #include +#include #include @@ -36,6 +37,8 @@ #include #include /* For CARD16 */ +#include "gdksettings.c" + typedef struct _XSettingsBuffer XSettingsBuffer; struct _XSettingsBuffer @@ -50,9 +53,6 @@ struct _XSettingsClient { GdkScreen *screen; Display *display; - XSettingsNotifyFunc notify; - XSettingsWatchFunc watch; - void *cb_data; Window manager_window; Atom manager_atom; @@ -62,6 +62,42 @@ struct _XSettingsClient GHashTable *settings; /* string => XSettingsSetting */ }; +static void +gdk_xsettings_notify (const char *name, + XSettingsAction action, + XSettingsSetting *setting, + GdkScreen *screen) +{ + GdkEvent new_event; + GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); + + if (x11_screen->xsettings_in_init) + return; + + new_event.type = GDK_SETTING; + new_event.setting.window = gdk_screen_get_root_window (screen); + new_event.setting.send_event = FALSE; + new_event.setting.name = (char*) gdk_from_xsettings_name (name); + + if (!new_event.setting.name) + return; + + switch (action) + { + case XSETTINGS_ACTION_NEW: + new_event.setting.action = GDK_SETTING_ACTION_NEW; + break; + case XSETTINGS_ACTION_CHANGED: + new_event.setting.action = GDK_SETTING_ACTION_CHANGED; + break; + case XSETTINGS_ACTION_DELETED: + new_event.setting.action = GDK_SETTING_ACTION_DELETED; + break; + } + + gdk_event_put (&new_event); +} + static void notify_changes (XSettingsClient *client, GHashTable *old_list) @@ -70,9 +106,6 @@ notify_changes (XSettingsClient *client, XSettingsSetting *setting, *old_setting; const char *name; - if (!client->notify) - return; - if (client->settings != NULL) { g_hash_table_iter_init (&iter, client->settings); @@ -81,9 +114,9 @@ notify_changes (XSettingsClient *client, old_setting = old_list ? g_hash_table_lookup (old_list, name) : NULL; if (old_setting == NULL) - client->notify (name, XSETTINGS_ACTION_NEW, setting, client->cb_data); + gdk_xsettings_notify (name, XSETTINGS_ACTION_NEW, setting, client->screen); else if (!xsettings_setting_equal (setting, old_setting)) - client->notify (name, XSETTINGS_ACTION_CHANGED, setting, client->cb_data); + gdk_xsettings_notify (name, XSETTINGS_ACTION_CHANGED, setting, client->screen); /* remove setting from old_list */ if (old_setting != NULL) @@ -96,7 +129,7 @@ notify_changes (XSettingsClient *client, /* old_list now contains only deleted settings */ g_hash_table_iter_init (&iter, old_list); while (g_hash_table_iter_next (&iter, (gpointer *) &name, (gpointer*) &old_setting)) - client->notify (name, XSETTINGS_ACTION_DELETED, NULL, client->cb_data); + gdk_xsettings_notify (name, XSETTINGS_ACTION_DELETED, NULL, client->screen); } } @@ -374,11 +407,17 @@ add_events (Display *display, XSelectInput (display, window, attr.your_event_mask | mask); } +static Bool +gdk_xsettings_watch (Window window, + Bool is_start, + long mask, + GdkScreen *screen); + static void check_manager_window (XSettingsClient *client) { - if (client->manager_window && client->watch) - client->watch (client->manager_window, False, 0, client->cb_data); + if (client->manager_window) + gdk_xsettings_watch (client->manager_window, False, 0, client->screen); gdk_x11_display_grab (gdk_screen_get_display (client->screen)); @@ -392,11 +431,11 @@ check_manager_window (XSettingsClient *client) XFlush (client->display); - if (client->manager_window && client->watch) + if (client->manager_window) { - if (!client->watch (client->manager_window, True, - PropertyChangeMask | StructureNotifyMask, - client->cb_data)) + if (!gdk_xsettings_watch (client->manager_window, True, + PropertyChangeMask | StructureNotifyMask, + client->screen)) { /* Inability to watch the window probably means that it was destroyed * after we ungrabbed @@ -406,15 +445,100 @@ check_manager_window (XSettingsClient *client) } } - read_settings (client); } +static GdkFilterReturn +gdk_xsettings_client_event_filter (GdkXEvent *xevent, + GdkEvent *event, + gpointer data) +{ + GdkScreen *screen = data; + XSettingsClient *client = GDK_X11_SCREEN (screen)->xsettings_client; + XEvent *xev = xevent; + + /* The checks here will not unlikely cause us to reread + * the properties from the manager window a number of + * times when the manager changes from A->B. But manager changes + * are going to be pretty rare. + */ + if (xev->xany.window == gdk_x11_window_get_xid (gdk_screen_get_root_window (screen))) + { + if (xev->xany.type == ClientMessage && + xev->xclient.message_type == client->manager_atom && + xev->xclient.data.l[1] == client->selection_atom) + { + check_manager_window (client); + return GDK_FILTER_REMOVE; + } + } + else if (xev->xany.window == client->manager_window) + { + if (xev->xany.type == DestroyNotify) + { + check_manager_window (client); + /* let GDK do its cleanup */ + return GDK_FILTER_CONTINUE; + } + else if (xev->xany.type == PropertyNotify) + { + read_settings (client); + return GDK_FILTER_REMOVE; + } + } + + return GDK_FILTER_CONTINUE;; +} + +static Bool +gdk_xsettings_watch (Window window, + Bool is_start, + long mask, + GdkScreen *screen) +{ + GdkWindow *gdkwin; + + gdkwin = gdk_x11_window_lookup_for_display (gdk_screen_get_display (screen), window); + + if (is_start) + { + if (gdkwin) + g_object_ref (gdkwin); + else + { + gdkwin = gdk_x11_window_foreign_new_for_display (gdk_screen_get_display (screen), window); + + /* gdk_window_foreign_new_for_display() can fail and return NULL if the + * window has already been destroyed. + */ + if (!gdkwin) + return False; + } + + gdk_window_add_filter (gdkwin, gdk_xsettings_client_event_filter, screen); + } + else + { + if (!gdkwin) + { + /* gdkwin should not be NULL here, since if starting the watch succeeded + * we have a reference on the window. It might mean that the caller didn't + * remove the watch when it got a DestroyNotify event. Or maybe the + * caller ignored the return value when starting the watch failed. + */ + g_warning ("gdk_xsettings_watch_cb(): Couldn't find window to unwatch"); + return False; + } + + gdk_window_remove_filter (gdkwin, gdk_xsettings_client_event_filter, screen); + g_object_unref (gdkwin); + } + + return True; +} + XSettingsClient * -xsettings_client_new (GdkScreen *screen, - XSettingsNotifyFunc notify, - XSettingsWatchFunc watch, - void *cb_data) +xsettings_client_new (GdkScreen *screen) { XSettingsClient *client; char buffer[256]; @@ -427,9 +551,7 @@ xsettings_client_new (GdkScreen *screen, client->screen = screen; client->display = gdk_x11_display_get_xdisplay (gdk_screen_get_display (screen)); - client->notify = notify; - client->watch = watch; - client->cb_data = cb_data; + client->screen = screen; client->manager_window = None; client->settings = NULL; @@ -448,9 +570,8 @@ xsettings_client_new (GdkScreen *screen, */ add_events (client->display, gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), StructureNotifyMask); - if (client->watch) - client->watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), True, StructureNotifyMask, - client->cb_data); + gdk_xsettings_watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), True, StructureNotifyMask, + client->screen); check_manager_window (client); @@ -460,11 +581,10 @@ xsettings_client_new (GdkScreen *screen, void xsettings_client_destroy (XSettingsClient *client) { - if (client->watch) - client->watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (client->screen)), - False, 0, client->cb_data); - if (client->manager_window && client->watch) - client->watch (client->manager_window, False, 0, client->cb_data); + gdk_xsettings_watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (client->screen)), + False, 0, client->screen); + if (client->manager_window) + gdk_xsettings_watch (client->manager_window, False, 0, client->screen); if (client->settings) g_hash_table_unref (client->settings); @@ -478,43 +598,6 @@ xsettings_client_get_setting (XSettingsClient *client, return g_hash_table_lookup (client->settings, name); } -Bool -xsettings_client_process_event (XSettingsClient *client, - XEvent *xev) -{ - /* The checks here will not unlikely cause us to reread - * the properties from the manager window a number of - * times when the manager changes from A->B. But manager changes - * are going to be pretty rare. - */ - if (xev->xany.window == gdk_x11_window_get_xid (gdk_screen_get_root_window (client->screen))) - { - if (xev->xany.type == ClientMessage && - xev->xclient.message_type == client->manager_atom && - xev->xclient.data.l[1] == client->selection_atom) - { - check_manager_window (client); - return True; - } - } - else if (xev->xany.window == client->manager_window) - { - if (xev->xany.type == DestroyNotify) - { - check_manager_window (client); - /* let GDK do its cleanup */ - return False; - } - else if (xev->xany.type == PropertyNotify) - { - read_settings (client); - return True; - } - } - - return False; -} - int xsettings_setting_equal (XSettingsSetting *setting_a, XSettingsSetting *setting_b) diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 0b9aa805cc..5ba4673d91 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -72,26 +72,12 @@ struct _XSettingsSetting } data; }; -typedef void (*XSettingsNotifyFunc) (const char *name, - XSettingsAction action, - XSettingsSetting *setting, - void *cb_data); -typedef Bool (*XSettingsWatchFunc) (Window window, - Bool is_start, - long mask, - void *cb_data); - void xsettings_setting_free (XSettingsSetting *setting); int xsettings_setting_equal (XSettingsSetting *setting_a, XSettingsSetting *setting_b); -XSettingsClient *xsettings_client_new (GdkScreen *screen, - XSettingsNotifyFunc notify, - XSettingsWatchFunc watch, - void *cb_data); +XSettingsClient *xsettings_client_new (GdkScreen *screen); void xsettings_client_destroy (XSettingsClient *client); -Bool xsettings_client_process_event (XSettingsClient *client, - XEvent *xev); const XSettingsSetting * xsettings_client_get_setting (XSettingsClient *client, const char *name); From afa3d611d6227f9400103f8d61786cbed82e8425 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 14 Feb 2013 15:10:18 +0100 Subject: [PATCH 130/208] x11: Remove XSettingsAction type Use GdkSettingAction instead. --- gdk/x11/xsettings-client.c | 22 +++++----------------- gdk/x11/xsettings-client.h | 7 ------- 2 files changed, 5 insertions(+), 24 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 7e7bc9d2ba..479ac9d865 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -64,7 +64,7 @@ struct _XSettingsClient static void gdk_xsettings_notify (const char *name, - XSettingsAction action, + GdkSettingAction action, XSettingsSetting *setting, GdkScreen *screen) { @@ -77,23 +77,11 @@ gdk_xsettings_notify (const char *name, new_event.type = GDK_SETTING; new_event.setting.window = gdk_screen_get_root_window (screen); new_event.setting.send_event = FALSE; + new_event.setting.action = action; new_event.setting.name = (char*) gdk_from_xsettings_name (name); if (!new_event.setting.name) return; - - switch (action) - { - case XSETTINGS_ACTION_NEW: - new_event.setting.action = GDK_SETTING_ACTION_NEW; - break; - case XSETTINGS_ACTION_CHANGED: - new_event.setting.action = GDK_SETTING_ACTION_CHANGED; - break; - case XSETTINGS_ACTION_DELETED: - new_event.setting.action = GDK_SETTING_ACTION_DELETED; - break; - } gdk_event_put (&new_event); } @@ -114,9 +102,9 @@ notify_changes (XSettingsClient *client, old_setting = old_list ? g_hash_table_lookup (old_list, name) : NULL; if (old_setting == NULL) - gdk_xsettings_notify (name, XSETTINGS_ACTION_NEW, setting, client->screen); + gdk_xsettings_notify (name, GDK_SETTING_ACTION_NEW, setting, client->screen); else if (!xsettings_setting_equal (setting, old_setting)) - gdk_xsettings_notify (name, XSETTINGS_ACTION_CHANGED, setting, client->screen); + gdk_xsettings_notify (name, GDK_SETTING_ACTION_CHANGED, setting, client->screen); /* remove setting from old_list */ if (old_setting != NULL) @@ -129,7 +117,7 @@ notify_changes (XSettingsClient *client, /* old_list now contains only deleted settings */ g_hash_table_iter_init (&iter, old_list); while (g_hash_table_iter_next (&iter, (gpointer *) &name, (gpointer*) &old_setting)) - gdk_xsettings_notify (name, XSETTINGS_ACTION_DELETED, NULL, client->screen); + gdk_xsettings_notify (name, GDK_SETTING_ACTION_DELETED, NULL, client->screen); } } diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 5ba4673d91..5d9d82eafd 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -49,13 +49,6 @@ typedef enum XSETTINGS_TYPE_COLOR = 2 } XSettingsType; -typedef enum -{ - XSETTINGS_ACTION_NEW, - XSETTINGS_ACTION_CHANGED, - XSETTINGS_ACTION_DELETED -} XSettingsAction; - struct _XSettingsColor { unsigned short red, green, blue, alpha; From edf19ab7b493a3ae414878739976da45e3e3e95d Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 14 Feb 2013 17:20:26 +0100 Subject: [PATCH 131/208] x11: Store GDK name in xsettings hash table The X name is only used while reading the property, so no need to keep it. --- gdk/x11/gdkscreen-x11.c | 15 +++-------- gdk/x11/gdksettings.c | 19 +------------- gdk/x11/xsettings-client.c | 53 ++++++++++++++++++++++++-------------- 3 files changed, 38 insertions(+), 49 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 5c3608f498..4ab66c3575 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -47,8 +47,6 @@ #include #endif -#include "gdksettings.c" - static void gdk_x11_screen_dispose (GObject *object); static void gdk_x11_screen_finalize (GObject *object); static void init_randr_support (GdkScreen *screen); @@ -1352,23 +1350,18 @@ gdk_x11_screen_get_setting (GdkScreen *screen, GValue *value) { GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); - const char *xsettings_name = NULL; const XSettingsSetting *setting; gboolean success = FALSE; GValue tmp_val = G_VALUE_INIT; - xsettings_name = gdk_to_xsettings_name (name); - if (!xsettings_name) - goto out; - - setting = xsettings_client_get_setting (x11_screen->xsettings_client, xsettings_name); + setting = xsettings_client_get_setting (x11_screen->xsettings_client, name); if (setting == NULL) goto out; switch (setting->type) { case XSETTINGS_TYPE_INT: - if (check_transform (xsettings_name, G_TYPE_INT, G_VALUE_TYPE (value))) + if (check_transform (name, G_TYPE_INT, G_VALUE_TYPE (value))) { g_value_init (&tmp_val, G_TYPE_INT); g_value_set_int (&tmp_val, setting->data.v_int); @@ -1378,7 +1371,7 @@ gdk_x11_screen_get_setting (GdkScreen *screen, } break; case XSETTINGS_TYPE_STRING: - if (check_transform (xsettings_name, G_TYPE_STRING, G_VALUE_TYPE (value))) + if (check_transform (name, G_TYPE_STRING, G_VALUE_TYPE (value))) { g_value_init (&tmp_val, G_TYPE_STRING); g_value_set_string (&tmp_val, setting->data.v_string); @@ -1388,7 +1381,7 @@ gdk_x11_screen_get_setting (GdkScreen *screen, } break; case XSETTINGS_TYPE_COLOR: - if (!check_transform (xsettings_name, GDK_TYPE_RGBA, G_VALUE_TYPE (value))) + if (!check_transform (name, GDK_TYPE_RGBA, G_VALUE_TYPE (value))) { GdkRGBA rgba; diff --git a/gdk/x11/gdksettings.c b/gdk/x11/gdksettings.c index cfd2676027..b5ca7b8fb4 100644 --- a/gdk/x11/gdksettings.c +++ b/gdk/x11/gdksettings.c @@ -79,7 +79,7 @@ static const struct { {"Gtk/RecentFilesEnabled", "gtk-recent-files-enabled"} }; -static G_GNUC_UNUSED const char * +static const char * gdk_from_xsettings_name (const char *xname) { static GHashTable *hash = NULL; @@ -97,20 +97,3 @@ gdk_from_xsettings_name (const char *xname) return g_hash_table_lookup (hash, xname); } -static G_GNUC_UNUSED const char * -gdk_to_xsettings_name (const char *gdkname) -{ - static GHashTable *hash = NULL; - guint i; - - if (G_UNLIKELY (hash == NULL)) - { - hash = g_hash_table_new (g_str_hash, g_str_equal); - - for (i = 0; i < G_N_ELEMENTS (gdk_settings_map); i++) - g_hash_table_insert (hash, (gpointer)gdk_settings_map[i].gdkname, - (gpointer)gdk_settings_map[i].xname); - } - - return g_hash_table_lookup (hash, gdkname); -} diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 479ac9d865..2385dd78e1 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -59,7 +59,7 @@ struct _XSettingsClient Atom selection_atom; Atom xsettings_atom; - GHashTable *settings; /* string => XSettingsSetting */ + GHashTable *settings; /* string of GDK settings name => XSettingsSetting */ }; static void @@ -78,10 +78,7 @@ gdk_xsettings_notify (const char *name, new_event.setting.window = gdk_screen_get_root_window (screen); new_event.setting.send_event = FALSE; new_event.setting.action = action; - new_event.setting.name = (char*) gdk_from_xsettings_name (name); - - if (!new_event.setting.name) - return; + new_event.setting.name = (char*) name; gdk_event_put (&new_event); } @@ -230,7 +227,8 @@ parse_settings (unsigned char *data, CARD32 n_entries; CARD32 i; XSettingsSetting *setting = NULL; - char *name; + char *x_name = NULL; + const char *gdk_name; buffer.pos = buffer.data = data; buffer.len = len; @@ -270,7 +268,7 @@ parse_settings (unsigned char *data, setting = g_new (XSettingsSetting, 1); setting->type = XSETTINGS_TYPE_INT; /* No allocated memory */ - if (!fetch_string (&buffer, name_len, &name) || + if (!fetch_string (&buffer, name_len, &x_name) || /* last change serial (we ignore it) */ !fetch_card32 (&buffer, &v_int)) goto out; @@ -282,14 +280,14 @@ parse_settings (unsigned char *data, goto out; setting->data.v_int = (INT32)v_int; - GDK_NOTE(SETTINGS, g_print(" %s = %d\n", name, (gint) setting->data.v_int)); + GDK_NOTE(SETTINGS, g_print(" %s = %d\n", x_name, (gint) setting->data.v_int)); break; case XSETTINGS_TYPE_STRING: if (!fetch_card32 (&buffer, &v_int) || !fetch_string (&buffer, v_int, &setting->data.v_string)) goto out; - GDK_NOTE(SETTINGS, g_print(" %s = \"%s\"\n", name, setting->data.v_string)); + GDK_NOTE(SETTINGS, g_print(" %s = \"%s\"\n", x_name, setting->data.v_string)); break; case XSETTINGS_TYPE_COLOR: if (!fetch_ushort (&buffer, &setting->data.v_color.red) || @@ -298,32 +296,45 @@ parse_settings (unsigned char *data, !fetch_ushort (&buffer, &setting->data.v_color.alpha)) goto out; - GDK_NOTE(SETTINGS, g_print(" %s = #%02X%02X%02X%02X\n", name, + GDK_NOTE(SETTINGS, g_print(" %s = #%02X%02X%02X%02X\n", x_name, setting->data.v_color.alpha, setting->data.v_color.red, setting->data.v_color.green, setting->data.v_color.blue)); break; default: /* Quietly ignore unknown types */ - GDK_NOTE(SETTINGS, g_print(" %s = ignored (unknown type %u)\n", name, type)); + GDK_NOTE(SETTINGS, g_print(" %s = ignored (unknown type %u)\n", x_name, type)); break; } setting->type = type; - if (settings == NULL) - settings = g_hash_table_new_full (g_str_hash, g_str_equal, - g_free, - (GDestroyNotify) xsettings_setting_free); + gdk_name = gdk_from_xsettings_name (x_name); + g_free (x_name); + x_name = NULL; - if (g_hash_table_lookup (settings, name) != NULL) + if (gdk_name == NULL) { - g_warning ("Invalid XSETTINGS property (Duplicate entry for '%s')", name); - goto out; + GDK_NOTE(SETTINGS, g_print(" ==> unknown to GTK\n")); + } + else + { + GDK_NOTE(SETTINGS, g_print(" ==> storing as '%s'\n", gdk_name)); + + if (settings == NULL) + settings = g_hash_table_new_full (g_str_hash, g_str_equal, + NULL, + (GDestroyNotify) xsettings_setting_free); + + if (g_hash_table_lookup (settings, gdk_name) != NULL) + { + g_warning ("Invalid XSETTINGS property (Duplicate entry for '%s')", gdk_name); + goto out; + } + + g_hash_table_insert (settings, (gpointer) gdk_name, setting); } - g_hash_table_insert (settings, name, setting); setting = NULL; - name = NULL; } return settings; @@ -336,6 +347,8 @@ parse_settings (unsigned char *data, if (settings) g_hash_table_unref (settings); + g_free (x_name); + return NULL; } From 9ed7e883f2260d617ef6914cc515ec7642e1a655 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 15 Feb 2013 18:02:51 +0100 Subject: [PATCH 132/208] x11: Remove unused argument --- gdk/x11/xsettings-client.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 2385dd78e1..1cc3729bc0 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -411,14 +411,13 @@ add_events (Display *display, static Bool gdk_xsettings_watch (Window window, Bool is_start, - long mask, GdkScreen *screen); static void check_manager_window (XSettingsClient *client) { if (client->manager_window) - gdk_xsettings_watch (client->manager_window, False, 0, client->screen); + gdk_xsettings_watch (client->manager_window, False, client->screen); gdk_x11_display_grab (gdk_screen_get_display (client->screen)); @@ -434,9 +433,7 @@ check_manager_window (XSettingsClient *client) if (client->manager_window) { - if (!gdk_xsettings_watch (client->manager_window, True, - PropertyChangeMask | StructureNotifyMask, - client->screen)) + if (!gdk_xsettings_watch (client->manager_window, True, client->screen)) { /* Inability to watch the window probably means that it was destroyed * after we ungrabbed @@ -494,7 +491,6 @@ gdk_xsettings_client_event_filter (GdkXEvent *xevent, static Bool gdk_xsettings_watch (Window window, Bool is_start, - long mask, GdkScreen *screen) { GdkWindow *gdkwin; @@ -571,8 +567,7 @@ xsettings_client_new (GdkScreen *screen) */ add_events (client->display, gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), StructureNotifyMask); - gdk_xsettings_watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), True, StructureNotifyMask, - client->screen); + gdk_xsettings_watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), True, client->screen); check_manager_window (client); @@ -582,10 +577,9 @@ xsettings_client_new (GdkScreen *screen) void xsettings_client_destroy (XSettingsClient *client) { - gdk_xsettings_watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (client->screen)), - False, 0, client->screen); + gdk_xsettings_watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (client->screen)), False, client->screen); if (client->manager_window) - gdk_xsettings_watch (client->manager_window, False, 0, client->screen); + gdk_xsettings_watch (client->manager_window, False, client->screen); if (client->settings) g_hash_table_unref (client->settings); From ed38dbe28f81b46fe28400f50dcec1ab0061382c Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 15 Feb 2013 18:20:18 +0100 Subject: [PATCH 133/208] x11: Consolidate root window event setting in one place No need to duplicate things in xsettings code. --- gdk/x11/gdkscreen-x11.c | 1 + gdk/x11/xsettings-client.c | 15 --------------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 4ab66c3575..fd370207bc 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -1095,6 +1095,7 @@ init_randr_support (GdkScreen *screen) { GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); + /* NB: This is also needed for XSettings, so don't remove. */ XSelectInput (GDK_SCREEN_XDISPLAY (screen), x11_screen->xroot_window, StructureNotifyMask); diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 1cc3729bc0..bdcf49dce1 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -397,17 +397,6 @@ read_settings (XSettingsClient *client) g_hash_table_unref (old_list); } -static void -add_events (Display *display, - Window window, - long mask) -{ - XWindowAttributes attr; - - XGetWindowAttributes (display, window, &attr); - XSelectInput (display, window, attr.your_event_mask | mask); -} - static Bool gdk_xsettings_watch (Window window, Bool is_start, @@ -563,10 +552,6 @@ xsettings_client_new (GdkScreen *screen) client->xsettings_atom = atoms[1]; client->manager_atom = atoms[2]; - /* Select on StructureNotify so we get MANAGER events - */ - add_events (client->display, gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), StructureNotifyMask); - gdk_xsettings_watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), True, client->screen); check_manager_window (client); From 01be4ce166dc5ecf56b33170b5d0dd71574a3ba1 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 15 Feb 2013 19:14:25 +0100 Subject: [PATCH 134/208] x11: Use usual Atom handling in xsettings code --- gdk/x11/xsettings-client.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index bdcf49dce1..633be3c9f7 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -26,6 +26,7 @@ #include "xsettings-client.h" #include +#include #include #include #include @@ -55,9 +56,7 @@ struct _XSettingsClient Display *display; Window manager_window; - Atom manager_atom; Atom selection_atom; - Atom xsettings_atom; GHashTable *settings; /* string of GDK settings name => XSettingsSetting */ }; @@ -368,16 +367,19 @@ read_settings (XSettingsClient *client) if (client->manager_window) { - gdk_x11_display_error_trap_push (gdk_screen_get_display (client->screen)); + GdkDisplay *display = gdk_screen_get_display (client->screen); + Atom xsettings_atom = gdk_x11_get_xatom_by_name_for_display (display, "_XSETTINGS_SETTINGS"); + + gdk_x11_display_error_trap_push (display); result = XGetWindowProperty (client->display, client->manager_window, - client->xsettings_atom, 0, LONG_MAX, - False, client->xsettings_atom, + xsettings_atom, 0, LONG_MAX, + False, xsettings_atom, &type, &format, &n_items, &bytes_after, &data); - gdk_x11_display_error_trap_pop_ignored (gdk_screen_get_display (client->screen)); + gdk_x11_display_error_trap_pop_ignored (display); if (result == Success && type != None) { - if (type != client->xsettings_atom) + if (type != xsettings_atom) { fprintf (stderr, "Invalid type for XSETTINGS property"); } @@ -441,6 +443,7 @@ gdk_xsettings_client_event_filter (GdkXEvent *xevent, gpointer data) { GdkScreen *screen = data; + GdkDisplay *display = gdk_screen_get_display (screen); XSettingsClient *client = GDK_X11_SCREEN (screen)->xsettings_client; XEvent *xev = xevent; @@ -452,7 +455,7 @@ gdk_xsettings_client_event_filter (GdkXEvent *xevent, if (xev->xany.window == gdk_x11_window_get_xid (gdk_screen_get_root_window (screen))) { if (xev->xany.type == ClientMessage && - xev->xclient.message_type == client->manager_atom && + xev->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "MANAGER") && xev->xclient.data.l[1] == client->selection_atom) { check_manager_window (client); @@ -528,8 +531,8 @@ xsettings_client_new (GdkScreen *screen) { XSettingsClient *client; char buffer[256]; - char *atom_names[3]; - Atom atoms[3]; + char *atom_names[1]; + Atom atoms[1]; client = g_new (XSettingsClient, 1); if (!client) @@ -543,14 +546,10 @@ xsettings_client_new (GdkScreen *screen) sprintf(buffer, "_XSETTINGS_S%d", gdk_x11_screen_get_screen_number (screen)); atom_names[0] = buffer; - atom_names[1] = "_XSETTINGS_SETTINGS"; - atom_names[2] = "MANAGER"; - XInternAtoms (client->display, atom_names, 3, False, atoms); + XInternAtoms (client->display, atom_names, 1, False, atoms); client->selection_atom = atoms[0]; - client->xsettings_atom = atoms[1]; - client->manager_atom = atoms[2]; gdk_xsettings_watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), True, client->screen); From 8596142336dd8e6cdc74d90b68ca7f06110393aa Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 15 Feb 2013 19:18:11 +0100 Subject: [PATCH 135/208] x11: Warning improvements to xsettings code ... and using g_warning() instead of fprintf() --- gdk/x11/xsettings-client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 633be3c9f7..065b12f2fd 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -381,11 +381,11 @@ read_settings (XSettingsClient *client) { if (type != xsettings_atom) { - fprintf (stderr, "Invalid type for XSETTINGS property"); + g_warning ("Invalid type for XSETTINGS property: %s", gdk_x11_get_xatom_name_for_display (display, type)); } else if (format != 8) { - fprintf (stderr, "Invalid format for XSETTINGS property %d", format); + g_warning ("Invalid format for XSETTINGS property: %d", format); } else client->settings = parse_settings (data, n_items); From c91843edeac7436374e33f56752ba9364a354223 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 15 Feb 2013 20:06:56 +0100 Subject: [PATCH 136/208] x11: Get selection atom useing GDK functions Don't call XInternAtoms ourselves. --- gdk/x11/xsettings-client.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 065b12f2fd..5edeb46622 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -530,9 +530,7 @@ XSettingsClient * xsettings_client_new (GdkScreen *screen) { XSettingsClient *client; - char buffer[256]; - char *atom_names[1]; - Atom atoms[1]; + char *selection_atom_name; client = g_new (XSettingsClient, 1); if (!client) @@ -544,12 +542,9 @@ xsettings_client_new (GdkScreen *screen) client->manager_window = None; client->settings = NULL; - sprintf(buffer, "_XSETTINGS_S%d", gdk_x11_screen_get_screen_number (screen)); - atom_names[0] = buffer; - - XInternAtoms (client->display, atom_names, 1, False, atoms); - - client->selection_atom = atoms[0]; + selection_atom_name = g_strdup_printf ("_XSETTINGS_S%d", gdk_x11_screen_get_screen_number (screen)); + client->selection_atom = gdk_x11_get_xatom_by_name_for_display (gdk_screen_get_display (screen), selection_atom_name); + g_free (selection_atom_name); gdk_xsettings_watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), True, client->screen); From 8028a5b24a8d57d21a61cd4dca557d39a0b9f312 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 15 Feb 2013 22:26:45 +0100 Subject: [PATCH 137/208] x11: Use gdk_display_flush() --- gdk/x11/xsettings-client.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 5edeb46622..c5f4bcac21 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -407,10 +407,14 @@ gdk_xsettings_watch (Window window, static void check_manager_window (XSettingsClient *client) { + GdkDisplay *display; + + display = gdk_screen_get_display (client->screen); + if (client->manager_window) gdk_xsettings_watch (client->manager_window, False, client->screen); - gdk_x11_display_grab (gdk_screen_get_display (client->screen)); + gdk_x11_display_grab (display); client->manager_window = XGetSelectionOwner (client->display, client->selection_atom); @@ -418,9 +422,9 @@ check_manager_window (XSettingsClient *client) XSelectInput (client->display, client->manager_window, PropertyChangeMask | StructureNotifyMask); - gdk_x11_display_ungrab (gdk_screen_get_display (client->screen)); + gdk_x11_display_ungrab (display); - XFlush (client->display); + gdk_display_flush (display); if (client->manager_window) { From 5507954e043cf5813a08179b70e1665e0cbf2af9 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 15 Feb 2013 22:32:28 +0100 Subject: [PATCH 138/208] x11: Split function into two Instead of a boolean is_start, have a start and an end function. --- gdk/x11/xsettings-client.c | 87 ++++++++++++++++++++------------------ 1 file changed, 47 insertions(+), 40 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index c5f4bcac21..dc7866ef98 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -400,9 +400,11 @@ read_settings (XSettingsClient *client) } static Bool -gdk_xsettings_watch (Window window, - Bool is_start, - GdkScreen *screen); +gdk_xsettings_watch (GdkScreen *screen, + Window window); +static Bool +gdk_xsettings_unwatch (GdkScreen *screen, + Window window); static void check_manager_window (XSettingsClient *client) @@ -412,7 +414,7 @@ check_manager_window (XSettingsClient *client) display = gdk_screen_get_display (client->screen); if (client->manager_window) - gdk_xsettings_watch (client->manager_window, False, client->screen); + gdk_xsettings_unwatch (client->screen, client->manager_window); gdk_x11_display_grab (display); @@ -428,7 +430,7 @@ check_manager_window (XSettingsClient *client) if (client->manager_window) { - if (!gdk_xsettings_watch (client->manager_window, True, client->screen)) + if (!gdk_xsettings_watch (client->screen, client->manager_window)) { /* Inability to watch the window probably means that it was destroyed * after we ungrabbed @@ -485,48 +487,53 @@ gdk_xsettings_client_event_filter (GdkXEvent *xevent, } static Bool -gdk_xsettings_watch (Window window, - Bool is_start, - GdkScreen *screen) +gdk_xsettings_watch (GdkScreen *screen, + Window window) { GdkWindow *gdkwin; gdkwin = gdk_x11_window_lookup_for_display (gdk_screen_get_display (screen), window); - if (is_start) - { - if (gdkwin) - g_object_ref (gdkwin); - else - { - gdkwin = gdk_x11_window_foreign_new_for_display (gdk_screen_get_display (screen), window); - - /* gdk_window_foreign_new_for_display() can fail and return NULL if the - * window has already been destroyed. - */ - if (!gdkwin) - return False; - } - - gdk_window_add_filter (gdkwin, gdk_xsettings_client_event_filter, screen); - } + if (gdkwin) + g_object_ref (gdkwin); else { - if (!gdkwin) - { - /* gdkwin should not be NULL here, since if starting the watch succeeded - * we have a reference on the window. It might mean that the caller didn't - * remove the watch when it got a DestroyNotify event. Or maybe the - * caller ignored the return value when starting the watch failed. - */ - g_warning ("gdk_xsettings_watch_cb(): Couldn't find window to unwatch"); - return False; - } + gdkwin = gdk_x11_window_foreign_new_for_display (gdk_screen_get_display (screen), window); - gdk_window_remove_filter (gdkwin, gdk_xsettings_client_event_filter, screen); - g_object_unref (gdkwin); + /* gdk_window_foreign_new_for_display() can fail and return NULL if the + * window has already been destroyed. + */ + if (!gdkwin) + return False; } + gdk_window_add_filter (gdkwin, gdk_xsettings_client_event_filter, screen); + + return True; +} + +static Bool +gdk_xsettings_unwatch (GdkScreen *screen, + Window window) +{ + GdkWindow *gdkwin; + + gdkwin = gdk_x11_window_lookup_for_display (gdk_screen_get_display (screen), window); + + if (!gdkwin) + { + /* gdkwin should not be NULL here, since if starting the watch succeeded + * we have a reference on the window. It might mean that the caller didn't + * remove the watch when it got a DestroyNotify event. Or maybe the + * caller ignored the return value when starting the watch failed. + */ + g_warning ("gdk_xsettings_unwatch(): Couldn't find window to unwatch"); + return False; + } + + gdk_window_remove_filter (gdkwin, gdk_xsettings_client_event_filter, screen); + g_object_unref (gdkwin); + return True; } @@ -550,7 +557,7 @@ xsettings_client_new (GdkScreen *screen) client->selection_atom = gdk_x11_get_xatom_by_name_for_display (gdk_screen_get_display (screen), selection_atom_name); g_free (selection_atom_name); - gdk_xsettings_watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), True, client->screen); + gdk_xsettings_watch (screen, gdk_x11_window_get_xid (gdk_screen_get_root_window (screen))); check_manager_window (client); @@ -560,9 +567,9 @@ xsettings_client_new (GdkScreen *screen) void xsettings_client_destroy (XSettingsClient *client) { - gdk_xsettings_watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (client->screen)), False, client->screen); + gdk_xsettings_unwatch (client->screen, gdk_x11_window_get_xid (gdk_screen_get_root_window (client->screen))); if (client->manager_window) - gdk_xsettings_watch (client->manager_window, False, client->screen); + gdk_xsettings_unwatch (client->screen, client->manager_window); if (client->settings) g_hash_table_unref (client->settings); From f6d6e932de1ee5be176ce8416f22cefd13465d49 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 16 Feb 2013 18:36:05 +0100 Subject: [PATCH 139/208] x11: Make stored xsettings window a GdkWindow --- gdk/x11/xsettings-client.c | 74 +++++++++++++------------------------- 1 file changed, 25 insertions(+), 49 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index dc7866ef98..3136d1464b 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -55,7 +55,7 @@ struct _XSettingsClient GdkScreen *screen; Display *display; - Window manager_window; + GdkWindow *manager_window; Atom selection_atom; GHashTable *settings; /* string of GDK settings name => XSettingsSetting */ @@ -371,7 +371,8 @@ read_settings (XSettingsClient *client) Atom xsettings_atom = gdk_x11_get_xatom_by_name_for_display (display, "_XSETTINGS_SETTINGS"); gdk_x11_display_error_trap_push (display); - result = XGetWindowProperty (client->display, client->manager_window, + result = XGetWindowProperty (client->display, + gdk_x11_window_get_xid (client->manager_window), xsettings_atom, 0, LONG_MAX, False, xsettings_atom, &type, &format, &n_items, &bytes_after, &data); @@ -401,15 +402,16 @@ read_settings (XSettingsClient *client) static Bool gdk_xsettings_watch (GdkScreen *screen, - Window window); + GdkWindow *window); static Bool gdk_xsettings_unwatch (GdkScreen *screen, - Window window); + GdkWindow *window); static void check_manager_window (XSettingsClient *client) { GdkDisplay *display; + Window manager_window_xid; display = gdk_screen_get_display (client->screen); @@ -418,11 +420,16 @@ check_manager_window (XSettingsClient *client) gdk_x11_display_grab (display); - client->manager_window = XGetSelectionOwner (client->display, - client->selection_atom); + manager_window_xid = XGetSelectionOwner (client->display, + client->selection_atom); + client->manager_window = gdk_x11_window_foreign_new_for_display (display, + manager_window_xid); + /* XXX: Can't use gdk_window_set_events() here because the first call to this + * function happens too early in gdk_init() */ if (client->manager_window) - XSelectInput (client->display, client->manager_window, - PropertyChangeMask | StructureNotifyMask); + XSelectInput (client->display, + gdk_x11_window_get_xid (client->manager_window), + PropertyChangeMask | StructureNotifyMask); gdk_x11_display_ungrab (display); @@ -435,7 +442,7 @@ check_manager_window (XSettingsClient *client) /* Inability to watch the window probably means that it was destroyed * after we ungrabbed */ - client->manager_window = None; + client->manager_window = NULL; return; } } @@ -468,7 +475,7 @@ gdk_xsettings_client_event_filter (GdkXEvent *xevent, return GDK_FILTER_REMOVE; } } - else if (xev->xany.window == client->manager_window) + else if (xev->xany.window == gdk_x11_window_get_xid (client->manager_window)) { if (xev->xany.type == DestroyNotify) { @@ -488,51 +495,20 @@ gdk_xsettings_client_event_filter (GdkXEvent *xevent, static Bool gdk_xsettings_watch (GdkScreen *screen, - Window window) + GdkWindow *window) { - GdkWindow *gdkwin; - - gdkwin = gdk_x11_window_lookup_for_display (gdk_screen_get_display (screen), window); - - if (gdkwin) - g_object_ref (gdkwin); - else - { - gdkwin = gdk_x11_window_foreign_new_for_display (gdk_screen_get_display (screen), window); - - /* gdk_window_foreign_new_for_display() can fail and return NULL if the - * window has already been destroyed. - */ - if (!gdkwin) - return False; - } - - gdk_window_add_filter (gdkwin, gdk_xsettings_client_event_filter, screen); + g_object_ref (window); + gdk_window_add_filter (window, gdk_xsettings_client_event_filter, screen); return True; } static Bool gdk_xsettings_unwatch (GdkScreen *screen, - Window window) + GdkWindow *window) { - GdkWindow *gdkwin; - - gdkwin = gdk_x11_window_lookup_for_display (gdk_screen_get_display (screen), window); - - if (!gdkwin) - { - /* gdkwin should not be NULL here, since if starting the watch succeeded - * we have a reference on the window. It might mean that the caller didn't - * remove the watch when it got a DestroyNotify event. Or maybe the - * caller ignored the return value when starting the watch failed. - */ - g_warning ("gdk_xsettings_unwatch(): Couldn't find window to unwatch"); - return False; - } - - gdk_window_remove_filter (gdkwin, gdk_xsettings_client_event_filter, screen); - g_object_unref (gdkwin); + gdk_window_remove_filter (window, gdk_xsettings_client_event_filter, screen); + g_object_unref (window); return True; } @@ -557,7 +533,7 @@ xsettings_client_new (GdkScreen *screen) client->selection_atom = gdk_x11_get_xatom_by_name_for_display (gdk_screen_get_display (screen), selection_atom_name); g_free (selection_atom_name); - gdk_xsettings_watch (screen, gdk_x11_window_get_xid (gdk_screen_get_root_window (screen))); + gdk_xsettings_watch (screen, gdk_screen_get_root_window (screen)); check_manager_window (client); @@ -567,7 +543,7 @@ xsettings_client_new (GdkScreen *screen) void xsettings_client_destroy (XSettingsClient *client) { - gdk_xsettings_unwatch (client->screen, gdk_x11_window_get_xid (gdk_screen_get_root_window (client->screen))); + gdk_xsettings_unwatch (client->screen, gdk_screen_get_root_window (client->screen)); if (client->manager_window) gdk_xsettings_unwatch (client->screen, client->manager_window); From 78ce2563be75b46aa60b60429b89855bddbb1a31 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 16 Feb 2013 23:56:10 +0100 Subject: [PATCH 140/208] x11: Split xsettings event filter into 2 functions One for each type of window we watch. --- gdk/x11/xsettings-client.c | 108 ++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 62 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 3136d1464b..5092f82a43 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -400,12 +400,10 @@ read_settings (XSettingsClient *client) g_hash_table_unref (old_list); } -static Bool -gdk_xsettings_watch (GdkScreen *screen, - GdkWindow *window); -static Bool -gdk_xsettings_unwatch (GdkScreen *screen, - GdkWindow *window); +static GdkFilterReturn +gdk_xsettings_manager_window_filter (GdkXEvent *xevent, + GdkEvent *event, + gpointer data); static void check_manager_window (XSettingsClient *client) @@ -416,7 +414,10 @@ check_manager_window (XSettingsClient *client) display = gdk_screen_get_display (client->screen); if (client->manager_window) - gdk_xsettings_unwatch (client->screen, client->manager_window); + { + gdk_window_remove_filter (client->manager_window, gdk_xsettings_manager_window_filter, client->screen); + g_object_unref (client->manager_window); + } gdk_x11_display_grab (display); @@ -437,27 +438,20 @@ check_manager_window (XSettingsClient *client) if (client->manager_window) { - if (!gdk_xsettings_watch (client->screen, client->manager_window)) - { - /* Inability to watch the window probably means that it was destroyed - * after we ungrabbed - */ - client->manager_window = NULL; - return; - } + gdk_window_add_filter (client->manager_window, gdk_xsettings_manager_window_filter, client->screen); } read_settings (client); } static GdkFilterReturn -gdk_xsettings_client_event_filter (GdkXEvent *xevent, - GdkEvent *event, - gpointer data) +gdk_xsettings_root_window_filter (GdkXEvent *xevent, + GdkEvent *event, + gpointer data) { GdkScreen *screen = data; - GdkDisplay *display = gdk_screen_get_display (screen); XSettingsClient *client = GDK_X11_SCREEN (screen)->xsettings_client; + GdkDisplay *display = gdk_screen_get_display (screen); XEvent *xev = xevent; /* The checks here will not unlikely cause us to reread @@ -465,54 +459,41 @@ gdk_xsettings_client_event_filter (GdkXEvent *xevent, * times when the manager changes from A->B. But manager changes * are going to be pretty rare. */ - if (xev->xany.window == gdk_x11_window_get_xid (gdk_screen_get_root_window (screen))) + if (xev->xany.type == ClientMessage && + xev->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "MANAGER") && + xev->xclient.data.l[1] == client->selection_atom) { - if (xev->xany.type == ClientMessage && - xev->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "MANAGER") && - xev->xclient.data.l[1] == client->selection_atom) - { - check_manager_window (client); - return GDK_FILTER_REMOVE; - } + check_manager_window (client); + return GDK_FILTER_REMOVE; } - else if (xev->xany.window == gdk_x11_window_get_xid (client->manager_window)) + + return GDK_FILTER_CONTINUE; +} + +static GdkFilterReturn +gdk_xsettings_manager_window_filter (GdkXEvent *xevent, + GdkEvent *event, + gpointer data) +{ + GdkScreen *screen = data; + XSettingsClient *client = GDK_X11_SCREEN (screen)->xsettings_client; + XEvent *xev = xevent; + + if (xev->xany.type == DestroyNotify) { - if (xev->xany.type == DestroyNotify) - { - check_manager_window (client); - /* let GDK do its cleanup */ - return GDK_FILTER_CONTINUE; - } - else if (xev->xany.type == PropertyNotify) - { - read_settings (client); - return GDK_FILTER_REMOVE; - } + check_manager_window (client); + /* let GDK do its cleanup */ + return GDK_FILTER_CONTINUE; + } + else if (xev->xany.type == PropertyNotify) + { + read_settings (client); + return GDK_FILTER_REMOVE; } return GDK_FILTER_CONTINUE;; } -static Bool -gdk_xsettings_watch (GdkScreen *screen, - GdkWindow *window) -{ - g_object_ref (window); - gdk_window_add_filter (window, gdk_xsettings_client_event_filter, screen); - - return True; -} - -static Bool -gdk_xsettings_unwatch (GdkScreen *screen, - GdkWindow *window) -{ - gdk_window_remove_filter (window, gdk_xsettings_client_event_filter, screen); - g_object_unref (window); - - return True; -} - XSettingsClient * xsettings_client_new (GdkScreen *screen) { @@ -533,7 +514,7 @@ xsettings_client_new (GdkScreen *screen) client->selection_atom = gdk_x11_get_xatom_by_name_for_display (gdk_screen_get_display (screen), selection_atom_name); g_free (selection_atom_name); - gdk_xsettings_watch (screen, gdk_screen_get_root_window (screen)); + gdk_window_add_filter (gdk_screen_get_root_window (screen), gdk_xsettings_root_window_filter, screen); check_manager_window (client); @@ -543,9 +524,12 @@ xsettings_client_new (GdkScreen *screen) void xsettings_client_destroy (XSettingsClient *client) { - gdk_xsettings_unwatch (client->screen, gdk_screen_get_root_window (client->screen)); + gdk_window_remove_filter (gdk_screen_get_root_window (client->screen), gdk_xsettings_root_window_filter, client->screen); if (client->manager_window) - gdk_xsettings_unwatch (client->screen, client->manager_window); + { + gdk_window_remove_filter (client->manager_window, gdk_xsettings_manager_window_filter, client->screen); + g_object_unref (client->manager_window); + } if (client->settings) g_hash_table_unref (client->settings); From 84679ba78bbd5a3f13044084e03364eb4d8040da Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 16 Feb 2013 23:59:07 +0100 Subject: [PATCH 141/208] x11: Remove extra variable Use a getter instead. --- gdk/x11/xsettings-client.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 5092f82a43..1bb437fcfe 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -53,7 +53,6 @@ struct _XSettingsBuffer struct _XSettingsClient { GdkScreen *screen; - Display *display; GdkWindow *manager_window; Atom selection_atom; @@ -371,7 +370,7 @@ read_settings (XSettingsClient *client) Atom xsettings_atom = gdk_x11_get_xatom_by_name_for_display (display, "_XSETTINGS_SETTINGS"); gdk_x11_display_error_trap_push (display); - result = XGetWindowProperty (client->display, + result = XGetWindowProperty (gdk_x11_display_get_xdisplay (display), gdk_x11_window_get_xid (client->manager_window), xsettings_atom, 0, LONG_MAX, False, xsettings_atom, @@ -409,9 +408,11 @@ static void check_manager_window (XSettingsClient *client) { GdkDisplay *display; + Display *xdisplay; Window manager_window_xid; display = gdk_screen_get_display (client->screen); + xdisplay = gdk_x11_display_get_xdisplay (display); if (client->manager_window) { @@ -421,14 +422,14 @@ check_manager_window (XSettingsClient *client) gdk_x11_display_grab (display); - manager_window_xid = XGetSelectionOwner (client->display, + manager_window_xid = XGetSelectionOwner (xdisplay, client->selection_atom); client->manager_window = gdk_x11_window_foreign_new_for_display (display, manager_window_xid); /* XXX: Can't use gdk_window_set_events() here because the first call to this * function happens too early in gdk_init() */ if (client->manager_window) - XSelectInput (client->display, + XSelectInput (xdisplay, gdk_x11_window_get_xid (client->manager_window), PropertyChangeMask | StructureNotifyMask); @@ -504,8 +505,6 @@ xsettings_client_new (GdkScreen *screen) if (!client) return NULL; - client->screen = screen; - client->display = gdk_x11_display_get_xdisplay (gdk_screen_get_display (screen)); client->screen = screen; client->manager_window = None; client->settings = NULL; From e1efe3269cb7f5f09f9cb0dfc725fcbb50512f2c Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 17 Feb 2013 00:30:06 +0100 Subject: [PATCH 142/208] x11: Get rid of XSettingsSetting Use GValue throughout instead. --- gdk/x11/gdkscreen-x11.c | 76 +++---------------- gdk/x11/xsettings-client.c | 145 ++++++++++++++++++++----------------- gdk/x11/xsettings-client.h | 29 +------- 3 files changed, 92 insertions(+), 158 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index fd370207bc..1efec10c0e 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -1328,87 +1328,33 @@ gdk_x11_screen_get_window_stack (GdkScreen *screen) return ret; } -static gboolean -check_transform (const gchar *xsettings_name, - GType src_type, - GType dest_type) -{ - if (!g_value_type_transformable (src_type, dest_type)) - { - g_warning ("Cannot transform xsetting %s of type %s to type %s\n", - xsettings_name, - g_type_name (src_type), - g_type_name (dest_type)); - return FALSE; - } - else - return TRUE; -} - static gboolean gdk_x11_screen_get_setting (GdkScreen *screen, const gchar *name, GValue *value) { GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); - const XSettingsSetting *setting; - gboolean success = FALSE; - GValue tmp_val = G_VALUE_INIT; + const GValue *setting; setting = xsettings_client_get_setting (x11_screen->xsettings_client, name); if (setting == NULL) goto out; - switch (setting->type) + if (!g_value_type_transformable (G_VALUE_TYPE (setting), G_VALUE_TYPE (value))) { - case XSETTINGS_TYPE_INT: - if (check_transform (name, G_TYPE_INT, G_VALUE_TYPE (value))) - { - g_value_init (&tmp_val, G_TYPE_INT); - g_value_set_int (&tmp_val, setting->data.v_int); - g_value_transform (&tmp_val, value); - - success = TRUE; - } - break; - case XSETTINGS_TYPE_STRING: - if (check_transform (name, G_TYPE_STRING, G_VALUE_TYPE (value))) - { - g_value_init (&tmp_val, G_TYPE_STRING); - g_value_set_string (&tmp_val, setting->data.v_string); - g_value_transform (&tmp_val, value); - - success = TRUE; - } - break; - case XSETTINGS_TYPE_COLOR: - if (!check_transform (name, GDK_TYPE_RGBA, G_VALUE_TYPE (value))) - { - GdkRGBA rgba; - - g_value_init (&tmp_val, GDK_TYPE_RGBA); - - rgba.red = setting->data.v_color.red / 65535.0; - rgba.green = setting->data.v_color.green / 65535.0; - rgba.blue = setting->data.v_color.blue / 65535.0; - rgba.alpha = setting->data.v_color.alpha / 65535.0; - - g_value_set_boxed (&tmp_val, &rgba); - - g_value_transform (&tmp_val, value); - - success = TRUE; - } - break; + g_warning ("Cannot transform xsetting %s of type %s to type %s\n", + name, + g_type_name (G_VALUE_TYPE (setting)), + g_type_name (G_VALUE_TYPE (value))); + goto out; } - g_value_unset (&tmp_val); + g_value_transform (setting, value); + + return TRUE; out: - if (success) - return TRUE; - else - return _gdk_x11_get_xft_setting (screen, name, value); + return _gdk_x11_get_xft_setting (screen, name, value); } static void diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 1bb437fcfe..757984a04c 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -63,7 +63,6 @@ struct _XSettingsClient static void gdk_xsettings_notify (const char *name, GdkSettingAction action, - XSettingsSetting *setting, GdkScreen *screen) { GdkEvent new_event; @@ -81,12 +80,33 @@ gdk_xsettings_notify (const char *name, gdk_event_put (&new_event); } +static gboolean +value_equal (const GValue *value_a, + const GValue *value_b) +{ + if (G_VALUE_TYPE (value_a) != G_VALUE_TYPE (value_b)) + return FALSE; + + switch (G_VALUE_TYPE (value_a)) + { + case G_TYPE_INT: + return g_value_get_int (value_a) == g_value_get_int (value_b); + case XSETTINGS_TYPE_COLOR: + return gdk_rgba_equal (g_value_get_boxed (value_a), g_value_get_boxed (value_b)); + case G_TYPE_STRING: + return g_str_equal (g_value_get_string (value_a), g_value_get_string (value_b)); + default: + g_warning ("unable to compare values of type %s", g_type_name (G_VALUE_TYPE (value_a))); + return FALSE; + } +} + static void notify_changes (XSettingsClient *client, GHashTable *old_list) { GHashTableIter iter; - XSettingsSetting *setting, *old_setting; + GValue *setting, *old_setting; const char *name; if (client->settings != NULL) @@ -97,9 +117,9 @@ notify_changes (XSettingsClient *client, old_setting = old_list ? g_hash_table_lookup (old_list, name) : NULL; if (old_setting == NULL) - gdk_xsettings_notify (name, GDK_SETTING_ACTION_NEW, setting, client->screen); - else if (!xsettings_setting_equal (setting, old_setting)) - gdk_xsettings_notify (name, GDK_SETTING_ACTION_CHANGED, setting, client->screen); + gdk_xsettings_notify (name, GDK_SETTING_ACTION_NEW, client->screen); + else if (!value_equal (setting, old_setting)) + gdk_xsettings_notify (name, GDK_SETTING_ACTION_CHANGED, client->screen); /* remove setting from old_list */ if (old_setting != NULL) @@ -112,7 +132,7 @@ notify_changes (XSettingsClient *client, /* old_list now contains only deleted settings */ g_hash_table_iter_init (&iter, old_list); while (g_hash_table_iter_next (&iter, (gpointer *) &name, (gpointer*) &old_setting)) - gdk_xsettings_notify (name, GDK_SETTING_ACTION_DELETED, NULL, client->screen); + gdk_xsettings_notify (name, GDK_SETTING_ACTION_DELETED, client->screen); } } @@ -215,6 +235,15 @@ fetch_string (XSettingsBuffer *buffer, return TRUE; } +static void +free_value (gpointer data) +{ + GValue *value = data; + + g_value_unset (value); + g_free (value); +} + static GHashTable * parse_settings (unsigned char *data, size_t len) @@ -224,7 +253,7 @@ parse_settings (unsigned char *data, CARD32 serial; CARD32 n_entries; CARD32 i; - XSettingsSetting *setting = NULL; + GValue *value = NULL; char *x_name = NULL; const char *gdk_name; @@ -263,9 +292,6 @@ parse_settings (unsigned char *data, if (!fetch_card16 (&buffer, &name_len)) goto out; - setting = g_new (XSettingsSetting, 1); - setting->type = XSETTINGS_TYPE_INT; /* No allocated memory */ - if (!fetch_string (&buffer, name_len, &x_name) || /* last change serial (we ignore it) */ !fetch_card32 (&buffer, &v_int)) @@ -277,26 +303,49 @@ parse_settings (unsigned char *data, if (!fetch_card32 (&buffer, &v_int)) goto out; - setting->data.v_int = (INT32)v_int; - GDK_NOTE(SETTINGS, g_print(" %s = %d\n", x_name, (gint) setting->data.v_int)); + value = g_new0 (GValue, 1); + g_value_init (value, G_TYPE_INT); + g_value_set_int (value, (gint32) v_int); + + GDK_NOTE(SETTINGS, g_print(" %s = %d\n", x_name, (gint32) v_int)); break; case XSETTINGS_TYPE_STRING: - if (!fetch_card32 (&buffer, &v_int) || - !fetch_string (&buffer, v_int, &setting->data.v_string)) - goto out; - - GDK_NOTE(SETTINGS, g_print(" %s = \"%s\"\n", x_name, setting->data.v_string)); + { + char *s; + + if (!fetch_card32 (&buffer, &v_int) || + !fetch_string (&buffer, v_int, &s)) + goto out; + + value = g_new0 (GValue, 1); + g_value_init (value, G_TYPE_STRING); + g_value_take_string (value, s); + + GDK_NOTE(SETTINGS, g_print(" %s = \"%s\"\n", x_name, s)); + } break; case XSETTINGS_TYPE_COLOR: - if (!fetch_ushort (&buffer, &setting->data.v_color.red) || - !fetch_ushort (&buffer, &setting->data.v_color.green) || - !fetch_ushort (&buffer, &setting->data.v_color.blue) || - !fetch_ushort (&buffer, &setting->data.v_color.alpha)) - goto out; + { + unsigned short red, green, blue, alpha; + GdkRGBA rgba; - GDK_NOTE(SETTINGS, g_print(" %s = #%02X%02X%02X%02X\n", x_name, - setting->data.v_color.alpha, setting->data.v_color.red, - setting->data.v_color.green, setting->data.v_color.blue)); + if (!fetch_ushort (&buffer, &red) || + !fetch_ushort (&buffer, &green) || + !fetch_ushort (&buffer, &blue) || + !fetch_ushort (&buffer, &alpha)) + goto out; + + rgba.red = red / 65535.0; + rgba.green = green / 65535.0; + rgba.blue = blue / 65535.0; + rgba.alpha = alpha / 65535.0; + + value = g_new0 (GValue, 1); + g_value_init (value, G_TYPE_STRING); + g_value_set_boxed (value, &rgba); + + GDK_NOTE(SETTINGS, g_print(" %s = #%02X%02X%02X%02X\n", x_name, alpha,red, green, blue)); + } break; default: /* Quietly ignore unknown types */ @@ -304,8 +353,6 @@ parse_settings (unsigned char *data, break; } - setting->type = type; - gdk_name = gdk_from_xsettings_name (x_name); g_free (x_name); x_name = NULL; @@ -321,7 +368,7 @@ parse_settings (unsigned char *data, if (settings == NULL) settings = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, - (GDestroyNotify) xsettings_setting_free); + free_value); if (g_hash_table_lookup (settings, gdk_name) != NULL) { @@ -329,18 +376,18 @@ parse_settings (unsigned char *data, goto out; } - g_hash_table_insert (settings, (gpointer) gdk_name, setting); + g_hash_table_insert (settings, (gpointer) gdk_name, value); } - setting = NULL; + value = NULL; } return settings; out: - if (setting) - xsettings_setting_free (setting); + if (value) + free_value (value); if (settings) g_hash_table_unref (settings); @@ -535,42 +582,10 @@ xsettings_client_destroy (XSettingsClient *client) g_free (client); } -const XSettingsSetting * +const GValue * xsettings_client_get_setting (XSettingsClient *client, const char *name) { return g_hash_table_lookup (client->settings, name); } -int -xsettings_setting_equal (XSettingsSetting *setting_a, - XSettingsSetting *setting_b) -{ - if (setting_a->type != setting_b->type) - return 0; - - switch (setting_a->type) - { - case XSETTINGS_TYPE_INT: - return setting_a->data.v_int == setting_b->data.v_int; - case XSETTINGS_TYPE_COLOR: - return (setting_a->data.v_color.red == setting_b->data.v_color.red && - setting_a->data.v_color.green == setting_b->data.v_color.green && - setting_a->data.v_color.blue == setting_b->data.v_color.blue && - setting_a->data.v_color.alpha == setting_b->data.v_color.alpha); - case XSETTINGS_TYPE_STRING: - return strcmp (setting_a->data.v_string, setting_b->data.v_string) == 0; - } - - return 0; -} - -void -xsettings_setting_free (XSettingsSetting *setting) -{ - if (setting->type == XSETTINGS_TYPE_STRING) - g_free (setting->data.v_string); - - g_free (setting); -} - diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 5d9d82eafd..9400c2424b 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -24,19 +24,13 @@ #define XSETTINGS_CLIENT_H #include -#include /* Renames for GDK inclusion */ #define xsettings_client_destroy _gdk_x11_xsettings_client_destroy #define xsettings_client_get_setting _gdk_x11_xsettings_client_get_setting #define xsettings_client_new _gdk_x11_xsettings_client_new -#define xsettings_client_process_event _gdk_x11_xsettings_client_process_event -#define xsettings_setting_equal _gdk_x11_xsettings_setting_equal -#define xsettings_setting_free _gdk_x11_xsettings_setting_free -typedef struct _XSettingsColor XSettingsColor; -typedef struct _XSettingsSetting XSettingsSetting; typedef struct _XSettingsClient XSettingsClient; /* Types of settings possible. Enum values correspond to @@ -49,30 +43,9 @@ typedef enum XSETTINGS_TYPE_COLOR = 2 } XSettingsType; -struct _XSettingsColor -{ - unsigned short red, green, blue, alpha; -}; - -struct _XSettingsSetting -{ - XSettingsType type; - - union { - int v_int; - char *v_string; - XSettingsColor v_color; - } data; -}; - -void xsettings_setting_free (XSettingsSetting *setting); -int xsettings_setting_equal (XSettingsSetting *setting_a, - XSettingsSetting *setting_b); - XSettingsClient *xsettings_client_new (GdkScreen *screen); void xsettings_client_destroy (XSettingsClient *client); -const XSettingsSetting * - xsettings_client_get_setting (XSettingsClient *client, +const GValue * xsettings_client_get_setting (XSettingsClient *client, const char *name); #endif /* XSETTINGS_CLIENT_H */ From 200d6fe6647fe1a4b3c9e609533b6f9448a09bf7 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 17 Feb 2013 00:37:09 +0100 Subject: [PATCH 143/208] x11: Clean up xsettings header - Don't use defines for renames - Move enum into only source file using it --- gdk/x11/gdkscreen-x11.c | 6 +++--- gdk/x11/xsettings-client.c | 18 ++++++++++++++---- gdk/x11/xsettings-client.h | 24 ++++-------------------- 3 files changed, 21 insertions(+), 27 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 1efec10c0e..785a24dfca 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -135,7 +135,7 @@ _gdk_x11_screen_events_uninit (GdkScreen *screen) if (x11_screen->xsettings_client) { - xsettings_client_destroy (x11_screen->xsettings_client); + _gdk_x11_xsettings_client_destroy (x11_screen->xsettings_client); x11_screen->xsettings_client = NULL; } } @@ -1336,7 +1336,7 @@ gdk_x11_screen_get_setting (GdkScreen *screen, GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); const GValue *setting; - setting = xsettings_client_get_setting (x11_screen->xsettings_client, name); + setting = _gdk_x11_xsettings_client_get_setting (x11_screen->xsettings_client, name); if (setting == NULL) goto out; @@ -1557,7 +1557,7 @@ _gdk_x11_screen_init_events (GdkScreen *screen) /* Keep a flag to avoid extra notifies that we don't need */ x11_screen->xsettings_in_init = TRUE; - x11_screen->xsettings_client = xsettings_client_new (screen); + x11_screen->xsettings_client = _gdk_x11_xsettings_client_new (screen); x11_screen->xsettings_in_init = FALSE; } diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 757984a04c..78bd0ec8c7 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -40,6 +40,16 @@ #include "gdksettings.c" +/* Types of settings possible. Enum values correspond to + * protocol values. + */ +typedef enum +{ + XSETTINGS_TYPE_INT = 0, + XSETTINGS_TYPE_STRING = 1, + XSETTINGS_TYPE_COLOR = 2 +} XSettingsType; + typedef struct _XSettingsBuffer XSettingsBuffer; struct _XSettingsBuffer @@ -543,7 +553,7 @@ gdk_xsettings_manager_window_filter (GdkXEvent *xevent, } XSettingsClient * -xsettings_client_new (GdkScreen *screen) +_gdk_x11_xsettings_client_new (GdkScreen *screen) { XSettingsClient *client; char *selection_atom_name; @@ -568,7 +578,7 @@ xsettings_client_new (GdkScreen *screen) } void -xsettings_client_destroy (XSettingsClient *client) +_gdk_x11_xsettings_client_destroy (XSettingsClient *client) { gdk_window_remove_filter (gdk_screen_get_root_window (client->screen), gdk_xsettings_root_window_filter, client->screen); if (client->manager_window) @@ -583,8 +593,8 @@ xsettings_client_destroy (XSettingsClient *client) } const GValue * -xsettings_client_get_setting (XSettingsClient *client, - const char *name) +_gdk_x11_xsettings_client_get_setting (XSettingsClient *client, + const char *name) { return g_hash_table_lookup (client->settings, name); } diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 9400c2424b..13920f2bea 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -25,27 +25,11 @@ #include -/* Renames for GDK inclusion */ - -#define xsettings_client_destroy _gdk_x11_xsettings_client_destroy -#define xsettings_client_get_setting _gdk_x11_xsettings_client_get_setting -#define xsettings_client_new _gdk_x11_xsettings_client_new - typedef struct _XSettingsClient XSettingsClient; -/* Types of settings possible. Enum values correspond to - * protocol values. - */ -typedef enum -{ - XSETTINGS_TYPE_INT = 0, - XSETTINGS_TYPE_STRING = 1, - XSETTINGS_TYPE_COLOR = 2 -} XSettingsType; - -XSettingsClient *xsettings_client_new (GdkScreen *screen); -void xsettings_client_destroy (XSettingsClient *client); -const GValue * xsettings_client_get_setting (XSettingsClient *client, - const char *name); +XSettingsClient *_gdk_x11_xsettings_client_new (GdkScreen *screen); +void _gdk_x11_xsettings_client_destroy (XSettingsClient *client); +const GValue * _gdk_x11_xsettings_client_get_setting (XSettingsClient *client, + const char *name); #endif /* XSETTINGS_CLIENT_H */ From b2043511eedbba93336c4b46c74a31e24f9d6452 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 18 Feb 2013 15:09:49 +0100 Subject: [PATCH 144/208] x11: Don't keep an "in_init" variable Instead, track the init state with a boolean argument. --- gdk/x11/gdkscreen-x11.c | 4 ---- gdk/x11/gdkscreen-x11.h | 1 - gdk/x11/xsettings-client.c | 23 +++++++++++------------ 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 785a24dfca..ac0b84319a 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -1554,11 +1554,7 @@ _gdk_x11_screen_init_events (GdkScreen *screen) { GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); - /* Keep a flag to avoid extra notifies that we don't need - */ - x11_screen->xsettings_in_init = TRUE; x11_screen->xsettings_client = _gdk_x11_xsettings_client_new (screen); - x11_screen->xsettings_in_init = FALSE; } /** diff --git a/gdk/x11/gdkscreen-x11.h b/gdk/x11/gdkscreen-x11.h index f4a15b8b2b..ffee2cf66b 100644 --- a/gdk/x11/gdkscreen-x11.h +++ b/gdk/x11/gdkscreen-x11.h @@ -69,7 +69,6 @@ struct _GdkX11Screen * fetch of window manager name */ guint need_refetch_wm_name : 1; - guint xsettings_in_init : 1; guint is_composited : 1; guint xft_init : 1; /* Whether we've intialized these values yet */ guint xft_antialias : 1; diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 78bd0ec8c7..5eb168163a 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -76,11 +76,7 @@ gdk_xsettings_notify (const char *name, GdkScreen *screen) { GdkEvent new_event; - GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); - if (x11_screen->xsettings_in_init) - return; - new_event.type = GDK_SETTING; new_event.setting.window = gdk_screen_get_root_window (screen); new_event.setting.send_event = FALSE; @@ -408,7 +404,8 @@ parse_settings (unsigned char *data, } static void -read_settings (XSettingsClient *client) +read_settings (XSettingsClient *client, + gboolean do_notify) { Atom type; int format; @@ -451,7 +448,8 @@ read_settings (XSettingsClient *client) } } - notify_changes (client, old_list); + if (do_notify) + notify_changes (client, old_list); if (old_list) g_hash_table_unref (old_list); } @@ -462,7 +460,8 @@ gdk_xsettings_manager_window_filter (GdkXEvent *xevent, gpointer data); static void -check_manager_window (XSettingsClient *client) +check_manager_window (XSettingsClient *client, + gboolean notify_changes) { GdkDisplay *display; Display *xdisplay; @@ -499,7 +498,7 @@ check_manager_window (XSettingsClient *client) gdk_window_add_filter (client->manager_window, gdk_xsettings_manager_window_filter, client->screen); } - read_settings (client); + read_settings (client, notify_changes); } static GdkFilterReturn @@ -521,7 +520,7 @@ gdk_xsettings_root_window_filter (GdkXEvent *xevent, xev->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "MANAGER") && xev->xclient.data.l[1] == client->selection_atom) { - check_manager_window (client); + check_manager_window (client, TRUE); return GDK_FILTER_REMOVE; } @@ -539,13 +538,13 @@ gdk_xsettings_manager_window_filter (GdkXEvent *xevent, if (xev->xany.type == DestroyNotify) { - check_manager_window (client); + check_manager_window (client, TRUE); /* let GDK do its cleanup */ return GDK_FILTER_CONTINUE; } else if (xev->xany.type == PropertyNotify) { - read_settings (client); + read_settings (client, TRUE); return GDK_FILTER_REMOVE; } @@ -572,7 +571,7 @@ _gdk_x11_xsettings_client_new (GdkScreen *screen) gdk_window_add_filter (gdk_screen_get_root_window (screen), gdk_xsettings_root_window_filter, screen); - check_manager_window (client); + check_manager_window (client, FALSE); return client; } From 13eeb6ca33c1fb7e4d80b3e4b560a521741b5a1f Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 18 Feb 2013 16:59:06 +0100 Subject: [PATCH 145/208] x11: Introduce _gdk_x11_get_xatom_for_display_printf() and use it instead of caching the atom in the GdkScreenX11. --- gdk/x11/gdkprivate-x11.h | 4 ++++ gdk/x11/gdkproperty-x11.c | 20 ++++++++++++++++++++ gdk/x11/gdkscreen-x11.c | 25 +++++++++---------------- gdk/x11/gdkscreen-x11.h | 1 - 4 files changed, 33 insertions(+), 17 deletions(-) diff --git a/gdk/x11/gdkprivate-x11.h b/gdk/x11/gdkprivate-x11.h index 9d127dc97e..0701616aeb 100644 --- a/gdk/x11/gdkprivate-x11.h +++ b/gdk/x11/gdkprivate-x11.h @@ -297,6 +297,10 @@ void _gdk_x11_precache_atoms (GdkDisplay *display, const gchar * const *atom_names, gint n_atoms); +Atom _gdk_x11_get_xatom_for_display_printf (GdkDisplay *display, + const gchar *format, + ...) G_GNUC_PRINTF (2, 3); + GdkFilterReturn _gdk_x11_dnd_filter (GdkXEvent *xev, GdkEvent *event, diff --git a/gdk/x11/gdkproperty-x11.c b/gdk/x11/gdkproperty-x11.c index 3d843d2b49..2318a2e468 100644 --- a/gdk/x11/gdkproperty-x11.c +++ b/gdk/x11/gdkproperty-x11.c @@ -461,6 +461,26 @@ gdk_x11_get_xatom_by_name_for_display (GdkDisplay *display, gdk_atom_intern (atom_name, FALSE)); } +Atom +_gdk_x11_get_xatom_for_display_printf (GdkDisplay *display, + const gchar *format, + ...) +{ + va_list args; + char *atom_name; + Atom atom; + + va_start (args, format); + atom_name = g_strdup_vprintf (format, args); + va_end (args); + + atom = gdk_x11_get_xatom_by_name_for_display (display, atom_name); + + g_free (atom_name); + + return atom; +} + /** * gdk_x11_get_xatom_by_name: * @atom_name: a string diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index ac0b84319a..1c260423d4 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -434,27 +434,23 @@ gdk_x11_screen_get_screen_number (GdkScreen *screen) return GDK_X11_SCREEN (screen)->screen_num; } +static Atom +get_cm_atom (GdkX11Screen *x11_screen) +{ + return _gdk_x11_get_xatom_for_display_printf (x11_screen->display, "_NET_WM_CM_S%d", x11_screen->screen_num); +} + static gboolean check_is_composited (GdkDisplay *display, GdkX11Screen *x11_screen) { - Atom xselection = gdk_x11_atom_to_xatom_for_display (display, x11_screen->cm_selection_atom); Window xwindow; - xwindow = XGetSelectionOwner (GDK_DISPLAY_XDISPLAY (display), xselection); + xwindow = XGetSelectionOwner (GDK_DISPLAY_XDISPLAY (display), get_cm_atom (x11_screen)); return xwindow != None; } -static GdkAtom -make_cm_atom (int screen_number) -{ - gchar *name = g_strdup_printf ("_NET_WM_CM_S%d", screen_number); - GdkAtom atom = gdk_atom_intern (name, FALSE); - g_free (name); - return atom; -} - static void init_monitor_geometry (GdkX11Monitor *monitor, int x, int y, int width, int height) @@ -1076,9 +1072,8 @@ _gdk_x11_screen_setup (GdkScreen *screen) { GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); - x11_screen->cm_selection_atom = make_cm_atom (x11_screen->screen_num); gdk_display_request_selection_notification (x11_screen->display, - x11_screen->cm_selection_atom); + gdk_x11_xatom_to_atom_for_display (x11_screen->display, get_cm_atom (x11_screen))); x11_screen->is_composited = check_is_composited (x11_screen->display, x11_screen); } @@ -1194,10 +1189,8 @@ _gdk_x11_screen_process_owner_change (GdkScreen *screen, #ifdef HAVE_XFIXES XFixesSelectionNotifyEvent *selection_event = (XFixesSelectionNotifyEvent *)event; GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); - Atom xcm_selection_atom = gdk_x11_atom_to_xatom_for_display (x11_screen->display, - x11_screen->cm_selection_atom); - if (selection_event->selection == xcm_selection_atom) + if (selection_event->selection == get_cm_atom (x11_screen)) { gboolean composited = selection_event->owner != None; diff --git a/gdk/x11/gdkscreen-x11.h b/gdk/x11/gdkscreen-x11.h index ffee2cf66b..1dea30040b 100644 --- a/gdk/x11/gdkscreen-x11.h +++ b/gdk/x11/gdkscreen-x11.h @@ -56,7 +56,6 @@ struct _GdkX11Screen gint xft_dpi; /* Window manager */ - GdkAtom cm_selection_atom; long last_wmspec_check_time; Window wmspec_check_window; char *window_manager_name; From 3eef3290ad42fa7b615cfbca37551de490de71ef Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 18 Feb 2013 17:16:57 +0100 Subject: [PATCH 146/208] x11: Use _gdk_x11_get_xatom_for_display_printf() instead of keeping the atom around all the time --- gdk/x11/xsettings-client.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 5eb168163a..55a3761241 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -65,7 +66,6 @@ struct _XSettingsClient GdkScreen *screen; GdkWindow *manager_window; - Atom selection_atom; GHashTable *settings; /* string of GDK settings name => XSettingsSetting */ }; @@ -454,6 +454,12 @@ read_settings (XSettingsClient *client, g_hash_table_unref (old_list); } +static Atom +get_selection_atom (GdkScreen *screen) +{ + return _gdk_x11_get_xatom_for_display_printf (gdk_screen_get_display (screen), "_XSETTINGS_S%d", gdk_x11_screen_get_screen_number (screen)); +} + static GdkFilterReturn gdk_xsettings_manager_window_filter (GdkXEvent *xevent, GdkEvent *event, @@ -478,8 +484,7 @@ check_manager_window (XSettingsClient *client, gdk_x11_display_grab (display); - manager_window_xid = XGetSelectionOwner (xdisplay, - client->selection_atom); + manager_window_xid = XGetSelectionOwner (xdisplay, get_selection_atom (client->screen)); client->manager_window = gdk_x11_window_foreign_new_for_display (display, manager_window_xid); /* XXX: Can't use gdk_window_set_events() here because the first call to this @@ -518,7 +523,7 @@ gdk_xsettings_root_window_filter (GdkXEvent *xevent, */ if (xev->xany.type == ClientMessage && xev->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "MANAGER") && - xev->xclient.data.l[1] == client->selection_atom) + xev->xclient.data.l[1] == get_selection_atom (client->screen)) { check_manager_window (client, TRUE); return GDK_FILTER_REMOVE; @@ -555,7 +560,6 @@ XSettingsClient * _gdk_x11_xsettings_client_new (GdkScreen *screen) { XSettingsClient *client; - char *selection_atom_name; client = g_new (XSettingsClient, 1); if (!client) @@ -565,10 +569,6 @@ _gdk_x11_xsettings_client_new (GdkScreen *screen) client->manager_window = None; client->settings = NULL; - selection_atom_name = g_strdup_printf ("_XSETTINGS_S%d", gdk_x11_screen_get_screen_number (screen)); - client->selection_atom = gdk_x11_get_xatom_by_name_for_display (gdk_screen_get_display (screen), selection_atom_name); - g_free (selection_atom_name); - gdk_window_add_filter (gdk_screen_get_root_window (screen), gdk_xsettings_root_window_filter, screen); check_manager_window (client, FALSE); From 609723b3c1cd8b70cead86b7e8bf7dfd58070adc Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 19 Feb 2013 14:15:32 +0100 Subject: [PATCH 147/208] tests: Add a test for loading images from file Strictly, this belongs in gdk-pixbuf, but GtkImage should have this working, too. https://bugzilla.gnome.org/show_bug.cgi?id=694148 --- tests/reftests/Makefile.am | 3 +++ tests/reftests/image-load-from-file.css | 3 +++ tests/reftests/image-load-from-file.ref.ui | 17 +++++++++++++++++ tests/reftests/image-load-from-file.ui | 15 +++++++++++++++ 4 files changed, 38 insertions(+) create mode 100644 tests/reftests/image-load-from-file.css create mode 100644 tests/reftests/image-load-from-file.ref.ui create mode 100644 tests/reftests/image-load-from-file.ui diff --git a/tests/reftests/Makefile.am b/tests/reftests/Makefile.am index 3879a2d8a4..c9ab2e4a4f 100644 --- a/tests/reftests/Makefile.am +++ b/tests/reftests/Makefile.am @@ -176,6 +176,9 @@ EXTRA_DIST += \ iconview-empty.css \ iconview-empty.ui \ iconview-empty.ref.ui \ + image-load-from-file.css \ + image-load-from-file.ref.ui \ + image-load-from-file.ui \ info-bar-message-types.css \ info-bar-message-types.ref.ui \ info-bar-message-types.ui \ diff --git a/tests/reftests/image-load-from-file.css b/tests/reftests/image-load-from-file.css new file mode 100644 index 0000000000..9b4ac8ed03 --- /dev/null +++ b/tests/reftests/image-load-from-file.css @@ -0,0 +1,3 @@ +#reference { + background: lime; +} diff --git a/tests/reftests/image-load-from-file.ref.ui b/tests/reftests/image-load-from-file.ref.ui new file mode 100644 index 0000000000..02d22c0098 --- /dev/null +++ b/tests/reftests/image-load-from-file.ref.ui @@ -0,0 +1,17 @@ + + + + + False + popup + + + True + False + 20 + 20 + reference + + + + diff --git a/tests/reftests/image-load-from-file.ui b/tests/reftests/image-load-from-file.ui new file mode 100644 index 0000000000..1f06d162d8 --- /dev/null +++ b/tests/reftests/image-load-from-file.ui @@ -0,0 +1,15 @@ + + + + + False + popup + + + True + False + green-20x20.png + + + + From 588513fc9a1d4653ac04bf6f326f7bcc03f704a0 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 19 Feb 2013 14:31:03 +0100 Subject: [PATCH 148/208] x11: Get rid of XSettingsClient object Instead, store its variables in the GdkX11Screen. --- gdk/x11/gdkdisplay-x11.c | 2 +- gdk/x11/gdkprivate-x11.h | 1 - gdk/x11/gdkscreen-x11.c | 25 +------ gdk/x11/gdkscreen-x11.h | 9 +-- gdk/x11/xsettings-client.c | 141 +++++++++++++++---------------------- gdk/x11/xsettings-client.h | 10 +-- 6 files changed, 69 insertions(+), 119 deletions(-) diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index c0bb6f5219..dd0a2de4e7 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -1394,7 +1394,7 @@ _gdk_x11_display_open (const gchar *display_name) * structures in places */ for (i = 0; i < ScreenCount (display_x11->xdisplay); i++) - _gdk_x11_screen_init_events (display_x11->screens[i]); + _gdk_x11_xsettings_init (GDK_X11_SCREEN (display_x11->screens[i])); /*set the default screen */ display_x11->default_screen = display_x11->screens[DefaultScreen (display_x11->xdisplay)]; diff --git a/gdk/x11/gdkprivate-x11.h b/gdk/x11/gdkprivate-x11.h index 0701616aeb..2bdda3d516 100644 --- a/gdk/x11/gdkprivate-x11.h +++ b/gdk/x11/gdkprivate-x11.h @@ -308,7 +308,6 @@ _gdk_x11_dnd_filter (GdkXEvent *xev, void _gdk_x11_screen_init_root_window (GdkScreen *screen); void _gdk_x11_screen_init_visuals (GdkScreen *screen); -void _gdk_x11_screen_init_events (GdkScreen *screen); void _gdk_x11_cursor_update_theme (GdkCursor *cursor); void _gdk_x11_cursor_display_finalize (GdkDisplay *display); diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 1c260423d4..0a9b3cf71e 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -24,6 +24,7 @@ #include "gdkscreen-x11.h" #include "gdkdisplay-x11.h" #include "gdkprivate-x11.h" +#include "xsettings-client.h" #include @@ -128,18 +129,6 @@ gdk_x11_screen_get_root_window (GdkScreen *screen) return GDK_X11_SCREEN (screen)->root_window; } -static void -_gdk_x11_screen_events_uninit (GdkScreen *screen) -{ - GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); - - if (x11_screen->xsettings_client) - { - _gdk_x11_xsettings_client_destroy (x11_screen->xsettings_client); - x11_screen->xsettings_client = NULL; - } -} - static void gdk_x11_screen_dispose (GObject *object) { @@ -155,7 +144,7 @@ gdk_x11_screen_dispose (GObject *object) } } - _gdk_x11_screen_events_uninit (GDK_SCREEN (object)); + _gdk_x11_xsettings_finish (x11_screen); if (x11_screen->root_window) _gdk_window_destroy (x11_screen->root_window, TRUE); @@ -1329,7 +1318,7 @@ gdk_x11_screen_get_setting (GdkScreen *screen, GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); const GValue *setting; - setting = _gdk_x11_xsettings_client_get_setting (x11_screen->xsettings_client, name); + setting = g_hash_table_lookup (x11_screen->xsettings, name); if (setting == NULL) goto out; @@ -1542,14 +1531,6 @@ gdk_x11_screen_supports_net_wm_hint (GdkScreen *screen, return FALSE; } -void -_gdk_x11_screen_init_events (GdkScreen *screen) -{ - GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); - - x11_screen->xsettings_client = _gdk_x11_xsettings_client_new (screen); -} - /** * gdk_x11_screen_get_window_manager_name: * @screen: (type GdkX11Screen): a #GdkScreen diff --git a/gdk/x11/gdkscreen-x11.h b/gdk/x11/gdkscreen-x11.h index 1dea30040b..5c88a1a782 100644 --- a/gdk/x11/gdkscreen-x11.h +++ b/gdk/x11/gdkscreen-x11.h @@ -25,7 +25,6 @@ #include "gdkscreenprivate.h" #include "gdkx11screen.h" #include "gdkvisual.h" -#include "xsettings-client.h" #include #include @@ -60,6 +59,11 @@ struct _GdkX11Screen Window wmspec_check_window; char *window_manager_name; + /* X Settings */ + GdkWindow *xsettings_manager_window; + Atom xsettings_selection_atom; + GHashTable *xsettings; /* string of GDK settings name => GValue */ + /* TRUE if wmspec_check_window has changed since last * fetch of _NET_SUPPORTED */ @@ -84,9 +88,6 @@ struct _GdkX11Screen GHashTable *visual_hash; GdkVisual *rgba_visual; - /* X settings */ - XSettingsClient *xsettings_client; - /* cache for window->translate vfunc */ GC subwindow_gcs[32]; diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 55a3761241..41bfaeb800 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -61,24 +61,15 @@ struct _XSettingsBuffer unsigned char *pos; }; -struct _XSettingsClient -{ - GdkScreen *screen; - - GdkWindow *manager_window; - - GHashTable *settings; /* string of GDK settings name => XSettingsSetting */ -}; - static void -gdk_xsettings_notify (const char *name, - GdkSettingAction action, - GdkScreen *screen) +gdk_xsettings_notify (GdkX11Screen *x11_screen, + const char *name, + GdkSettingAction action) { GdkEvent new_event; new_event.type = GDK_SETTING; - new_event.setting.window = gdk_screen_get_root_window (screen); + new_event.setting.window = gdk_screen_get_root_window (GDK_SCREEN (x11_screen)); new_event.setting.send_event = FALSE; new_event.setting.action = action; new_event.setting.name = (char*) name; @@ -108,24 +99,24 @@ value_equal (const GValue *value_a, } static void -notify_changes (XSettingsClient *client, - GHashTable *old_list) +notify_changes (GdkX11Screen *x11_screen, + GHashTable *old_list) { GHashTableIter iter; GValue *setting, *old_setting; const char *name; - if (client->settings != NULL) + if (x11_screen->xsettings != NULL) { - g_hash_table_iter_init (&iter, client->settings); + g_hash_table_iter_init (&iter, x11_screen->xsettings); while (g_hash_table_iter_next (&iter, (gpointer *) &name, (gpointer*) &setting)) { old_setting = old_list ? g_hash_table_lookup (old_list, name) : NULL; if (old_setting == NULL) - gdk_xsettings_notify (name, GDK_SETTING_ACTION_NEW, client->screen); + gdk_xsettings_notify (x11_screen, name, GDK_SETTING_ACTION_NEW); else if (!value_equal (setting, old_setting)) - gdk_xsettings_notify (name, GDK_SETTING_ACTION_CHANGED, client->screen); + gdk_xsettings_notify (x11_screen, name, GDK_SETTING_ACTION_CHANGED); /* remove setting from old_list */ if (old_setting != NULL) @@ -138,7 +129,7 @@ notify_changes (XSettingsClient *client, /* old_list now contains only deleted settings */ g_hash_table_iter_init (&iter, old_list); while (g_hash_table_iter_next (&iter, (gpointer *) &name, (gpointer*) &old_setting)) - gdk_xsettings_notify (name, GDK_SETTING_ACTION_DELETED, client->screen); + gdk_xsettings_notify (x11_screen, name, GDK_SETTING_ACTION_DELETED); } } @@ -404,8 +395,8 @@ parse_settings (unsigned char *data, } static void -read_settings (XSettingsClient *client, - gboolean do_notify) +read_settings (GdkX11Screen *x11_screen, + gboolean do_notify) { Atom type; int format; @@ -414,18 +405,18 @@ read_settings (XSettingsClient *client, unsigned char *data; int result; - GHashTable *old_list = client->settings; + GHashTable *old_list = x11_screen->xsettings; - client->settings = NULL; + x11_screen->xsettings = NULL; - if (client->manager_window) + if (x11_screen->xsettings_manager_window) { - GdkDisplay *display = gdk_screen_get_display (client->screen); + GdkDisplay *display = x11_screen->display; Atom xsettings_atom = gdk_x11_get_xatom_by_name_for_display (display, "_XSETTINGS_SETTINGS"); gdk_x11_display_error_trap_push (display); result = XGetWindowProperty (gdk_x11_display_get_xdisplay (display), - gdk_x11_window_get_xid (client->manager_window), + gdk_x11_window_get_xid (x11_screen->xsettings_manager_window), xsettings_atom, 0, LONG_MAX, False, xsettings_atom, &type, &format, &n_items, &bytes_after, &data); @@ -442,22 +433,22 @@ read_settings (XSettingsClient *client, g_warning ("Invalid format for XSETTINGS property: %d", format); } else - client->settings = parse_settings (data, n_items); + x11_screen->xsettings = parse_settings (data, n_items); XFree (data); } } if (do_notify) - notify_changes (client, old_list); + notify_changes (x11_screen, old_list); if (old_list) g_hash_table_unref (old_list); } static Atom -get_selection_atom (GdkScreen *screen) +get_selection_atom (GdkX11Screen *x11_screen) { - return _gdk_x11_get_xatom_for_display_printf (gdk_screen_get_display (screen), "_XSETTINGS_S%d", gdk_x11_screen_get_screen_number (screen)); + return _gdk_x11_get_xatom_for_display_printf (x11_screen->display, "_XSETTINGS_S%d", x11_screen->screen_num); } static GdkFilterReturn @@ -466,44 +457,44 @@ gdk_xsettings_manager_window_filter (GdkXEvent *xevent, gpointer data); static void -check_manager_window (XSettingsClient *client, - gboolean notify_changes) +check_manager_window (GdkX11Screen *x11_screen, + gboolean notify_changes) { GdkDisplay *display; Display *xdisplay; Window manager_window_xid; - display = gdk_screen_get_display (client->screen); + display = x11_screen->display; xdisplay = gdk_x11_display_get_xdisplay (display); - if (client->manager_window) + if (x11_screen->xsettings_manager_window) { - gdk_window_remove_filter (client->manager_window, gdk_xsettings_manager_window_filter, client->screen); - g_object_unref (client->manager_window); + gdk_window_remove_filter (x11_screen->xsettings_manager_window, gdk_xsettings_manager_window_filter, x11_screen); + g_object_unref (x11_screen->xsettings_manager_window); } gdk_x11_display_grab (display); - manager_window_xid = XGetSelectionOwner (xdisplay, get_selection_atom (client->screen)); - client->manager_window = gdk_x11_window_foreign_new_for_display (display, + manager_window_xid = XGetSelectionOwner (xdisplay, get_selection_atom (x11_screen)); + x11_screen->xsettings_manager_window = gdk_x11_window_foreign_new_for_display (display, manager_window_xid); /* XXX: Can't use gdk_window_set_events() here because the first call to this * function happens too early in gdk_init() */ - if (client->manager_window) + if (x11_screen->xsettings_manager_window) XSelectInput (xdisplay, - gdk_x11_window_get_xid (client->manager_window), + gdk_x11_window_get_xid (x11_screen->xsettings_manager_window), PropertyChangeMask | StructureNotifyMask); gdk_x11_display_ungrab (display); gdk_display_flush (display); - if (client->manager_window) + if (x11_screen->xsettings_manager_window) { - gdk_window_add_filter (client->manager_window, gdk_xsettings_manager_window_filter, client->screen); + gdk_window_add_filter (x11_screen->xsettings_manager_window, gdk_xsettings_manager_window_filter, x11_screen); } - read_settings (client, notify_changes); + read_settings (x11_screen, notify_changes); } static GdkFilterReturn @@ -511,9 +502,8 @@ gdk_xsettings_root_window_filter (GdkXEvent *xevent, GdkEvent *event, gpointer data) { - GdkScreen *screen = data; - XSettingsClient *client = GDK_X11_SCREEN (screen)->xsettings_client; - GdkDisplay *display = gdk_screen_get_display (screen); + GdkX11Screen *x11_screen = data; + GdkDisplay *display = x11_screen->display; XEvent *xev = xevent; /* The checks here will not unlikely cause us to reread @@ -523,9 +513,9 @@ gdk_xsettings_root_window_filter (GdkXEvent *xevent, */ if (xev->xany.type == ClientMessage && xev->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "MANAGER") && - xev->xclient.data.l[1] == get_selection_atom (client->screen)) + xev->xclient.data.l[1] == get_selection_atom (x11_screen)) { - check_manager_window (client, TRUE); + check_manager_window (x11_screen, TRUE); return GDK_FILTER_REMOVE; } @@ -537,64 +527,47 @@ gdk_xsettings_manager_window_filter (GdkXEvent *xevent, GdkEvent *event, gpointer data) { - GdkScreen *screen = data; - XSettingsClient *client = GDK_X11_SCREEN (screen)->xsettings_client; + GdkX11Screen *x11_screen = data; XEvent *xev = xevent; if (xev->xany.type == DestroyNotify) { - check_manager_window (client, TRUE); + check_manager_window (x11_screen, TRUE); /* let GDK do its cleanup */ return GDK_FILTER_CONTINUE; } else if (xev->xany.type == PropertyNotify) { - read_settings (client, TRUE); + read_settings (x11_screen, TRUE); return GDK_FILTER_REMOVE; } return GDK_FILTER_CONTINUE;; } -XSettingsClient * -_gdk_x11_xsettings_client_new (GdkScreen *screen) +void +_gdk_x11_xsettings_init (GdkX11Screen *x11_screen) { - XSettingsClient *client; - - client = g_new (XSettingsClient, 1); - if (!client) - return NULL; + gdk_window_add_filter (gdk_screen_get_root_window (GDK_SCREEN (x11_screen)), gdk_xsettings_root_window_filter, x11_screen); - client->screen = screen; - client->manager_window = None; - client->settings = NULL; - - gdk_window_add_filter (gdk_screen_get_root_window (screen), gdk_xsettings_root_window_filter, screen); - - check_manager_window (client, FALSE); - - return client; + check_manager_window (x11_screen, FALSE); } void -_gdk_x11_xsettings_client_destroy (XSettingsClient *client) +_gdk_x11_xsettings_finish (GdkX11Screen *x11_screen) { - gdk_window_remove_filter (gdk_screen_get_root_window (client->screen), gdk_xsettings_root_window_filter, client->screen); - if (client->manager_window) + gdk_window_remove_filter (gdk_screen_get_root_window (GDK_SCREEN (x11_screen)), gdk_xsettings_root_window_filter, x11_screen); + if (x11_screen->xsettings_manager_window) { - gdk_window_remove_filter (client->manager_window, gdk_xsettings_manager_window_filter, client->screen); - g_object_unref (client->manager_window); + gdk_window_remove_filter (x11_screen->xsettings_manager_window, gdk_xsettings_manager_window_filter, x11_screen); + g_object_unref (x11_screen->xsettings_manager_window); + x11_screen->xsettings_manager_window = NULL; } - if (client->settings) - g_hash_table_unref (client->settings); - g_free (client); -} - -const GValue * -_gdk_x11_xsettings_client_get_setting (XSettingsClient *client, - const char *name) -{ - return g_hash_table_lookup (client->settings, name); + if (x11_screen->xsettings) + { + g_hash_table_unref (x11_screen->xsettings); + x11_screen->xsettings = NULL; + } } diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 13920f2bea..9ae149e298 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -23,13 +23,9 @@ #ifndef XSETTINGS_CLIENT_H #define XSETTINGS_CLIENT_H -#include +#include -typedef struct _XSettingsClient XSettingsClient; - -XSettingsClient *_gdk_x11_xsettings_client_new (GdkScreen *screen); -void _gdk_x11_xsettings_client_destroy (XSettingsClient *client); -const GValue * _gdk_x11_xsettings_client_get_setting (XSettingsClient *client, - const char *name); +void _gdk_x11_xsettings_init (GdkX11Screen *x11_screen); +void _gdk_x11_xsettings_finish (GdkX11Screen *x11_screen); #endif /* XSETTINGS_CLIENT_H */ From 316658803349c4236dbe7f531278a5c2684db2c6 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 19 Feb 2013 14:44:49 +0100 Subject: [PATCH 149/208] tests: #ifdef out unused functions ... that are only used in that ifdef. --- gtk/tests/filechooser.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gtk/tests/filechooser.c b/gtk/tests/filechooser.c index 92b7f96844..113b219b08 100644 --- a/gtk/tests/filechooser.c +++ b/gtk/tests/filechooser.c @@ -37,6 +37,7 @@ #include "gtk/gtkfilechooserdefault.h" #include "gtk/gtkfilechooserentry.h" +#ifdef BROKEN_TESTS static void log_test (gboolean passed, const char *test_name, ...) { @@ -77,6 +78,7 @@ set_filename_timeout_cb (gpointer data) return FALSE; } +#endif static guint wait_for_idle_id = 0; @@ -100,6 +102,7 @@ wait_for_idle (void) gtk_main_iteration (); } +#ifdef BROKEN_TESTS static void test_set_filename (GtkFileChooserAction action, gboolean focus_button, @@ -230,6 +233,7 @@ test_black_box_set_current_name (gconstpointer data) g_free (cwd); } +#endif /* FIXME: fails in CREATE_FOLDER mode when FOLDER_NAME == "/" */ @@ -253,6 +257,7 @@ test_black_box_set_current_name (gconstpointer data) * http://bugzilla.gnome.org/show_bug.cgi?id=346058 */ +#ifdef BROKEN_TESTS static void setup_set_filename_tests (void) { @@ -288,6 +293,7 @@ setup_set_current_name_tests (void) for (i = 0; i < G_N_ELEMENTS (tests); i++) g_test_add_data_func (tests[i].test_name, &tests[i], test_black_box_set_current_name); } +#endif typedef struct { @@ -914,6 +920,7 @@ setup_file_chooser_button_tests (void) } } +#ifdef BROKEN_TESTS struct confirm_overwrite_closure { GtkWidget *chooser; GtkWidget *accept_button; @@ -1052,6 +1059,7 @@ test_confirm_overwrite (void) passed = passed && test_confirm_overwrite_for_path ("/etc/resolv.conf", TRUE); g_assert (passed); } +#endif static const GtkFileChooserAction open_actions[] = { GTK_FILE_CHOOSER_ACTION_OPEN, @@ -1064,6 +1072,7 @@ static const GtkFileChooserAction save_actions[] = { }; +#ifdef BROKEN_TESTS static gboolean has_action (const GtkFileChooserAction *actions, int n_actions, @@ -1116,7 +1125,7 @@ get_impl_from_dialog (GtkWidget *dialog) return impl; } -#ifdef BROKEN_TESTS + static gboolean test_widgets_for_current_action (GtkFileChooserDialog *dialog, GtkFileChooserAction expected_action) @@ -1439,7 +1448,6 @@ test_reload (void) log_test (passed, "test_reload(): set a folder explicitly before mapping"); g_assert (passed); } -#endif static gboolean test_button_folder_states_for_action (GtkFileChooserAction action, gboolean use_dialog, gboolean set_folder_on_dialog) @@ -1668,6 +1676,7 @@ test_folder_switch_and_filters (void) log_test (passed, "test_folder_switch_and_filters(): all filter tests"); } +#endif int main (int argc, From 0ed47e1bb7be4a722ebe9006b65f6f49fc9e819a Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 19 Feb 2013 15:37:26 +0100 Subject: [PATCH 150/208] x11: Fix introspection build File removal in bb4953f3e8e102264a82ea4938b7813b85320b22 wasn't checked in here. --- gdk/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/gdk/Makefile.am b/gdk/Makefile.am index 7b40c5ffd7..2cd935379b 100644 --- a/gdk/Makefile.am +++ b/gdk/Makefile.am @@ -236,7 +236,6 @@ x11_introspection_files = \ x11/gdkxftdefaults.c \ x11/gdkxid.c \ x11/xsettings-client.c \ - x11/xsettings-common.c \ x11/gdkx.h \ x11/gdkx11cursor.h \ x11/gdkx11display.h \ From de087165260ae2740e73cc3d24f9f18b972d8013 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 19 Feb 2013 19:55:02 +0100 Subject: [PATCH 151/208] x11: Handle case where xsettings are NULL --- gdk/x11/gdkscreen-x11.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 0a9b3cf71e..71478926ee 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -1318,6 +1318,8 @@ gdk_x11_screen_get_setting (GdkScreen *screen, GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen); const GValue *setting; + if (x11_screen->xsettings == NULL) + goto out; setting = g_hash_table_lookup (x11_screen->xsettings, name); if (setting == NULL) goto out; From 3c690c52ba6422bfd83de5c547ee27f33738106c Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Tue, 19 Feb 2013 21:03:35 +0100 Subject: [PATCH 152/208] Avoid loop in paint update cycle Commit 1db87c897f930171646351c99af7df09dc7ec949 accidentally removed a check for !in_paint_idle in maybe_start_idle which causes us to create a paint loop whenever something requests a phase inside the paint_idle. --- gdk/gdkframeclockidle.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 7e1a8c17e6..59a18de064 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -247,7 +247,8 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle) (GDestroyNotify) g_object_unref); } - if (priv->paint_idle_id == 0 && RUN_PAINT_IDLE (priv)) + if (!priv->in_paint_idle && + priv->paint_idle_id == 0 && RUN_PAINT_IDLE (priv)) { priv->paint_idle_id = gdk_threads_add_timeout_full (GDK_PRIORITY_REDRAW, min_interval, From 7b4c49a95f1f3adb67aa7f2319780f1ff811eaad Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 19 Feb 2013 23:22:48 +0100 Subject: [PATCH 153/208] a11y: Fix copy-paste error in state flag notification We weren't checking the removed flag but the added flag for removal emissions, so what would happen for every state change notification was: - on state-added, both an "added" and a "removed" event were emitted - on state-removed, nothing https://bugzilla.gnome.org/show_bug.cgi?id=694059 --- gtk/a11y/gtkcellaccessible.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtk/a11y/gtkcellaccessible.c b/gtk/a11y/gtkcellaccessible.c index e03496b85a..b5846e8c21 100644 --- a/gtk/a11y/gtkcellaccessible.c +++ b/gtk/a11y/gtkcellaccessible.c @@ -412,7 +412,7 @@ _gtk_cell_accessible_state_changed (GtkCellAccessible *cell, atk_object_notify_state_change (object, state_map[i].atk_state, !state_map[i].invert); - if (added & state_map[i].renderer_state) + if (removed & state_map[i].renderer_state) atk_object_notify_state_change (object, state_map[i].atk_state, state_map[i].invert); From 73cee58d23245f2e7233fd3ace31f6f660a85560 Mon Sep 17 00:00:00 2001 From: Benjamin Steinwender Date: Wed, 20 Feb 2013 00:12:17 +0100 Subject: [PATCH 154/208] Updated German translation --- po/de.po | 933 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 707 insertions(+), 226 deletions(-) diff --git a/po/de.po b/po/de.po index 959633b6f0..3d9f1dee75 100644 --- a/po/de.po +++ b/po/de.po @@ -30,19 +30,18 @@ msgid "" msgstr "" "Project-Id-Version: GTK+ master\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-01 21:22+0100\n" -"PO-Revision-Date: 2013-02-01 21:27+0100\n" -"Last-Translator: Christian Kirbach \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" +"%2b&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-02-05 18:40+0000\n" +"PO-Revision-Date: 2013-02-05 23:26+0100\n" +"Last-Translator: Benjamin Steinwender \n" "Language-Team: Deutsch \n" -"Language: \n" +"Language: de_DE\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-Poedit-Language: German\n" -"X-Poedit-Country: GERMANY\n" -"X-Generator: Gtranslator 2.91.5\n" +"X-Generator: Poedit 1.5.5\n" #: ../gdk/gdk.c:155 #, c-format @@ -93,10 +92,7 @@ msgstr "Zu übergebende GDK-Fehlerdiagnoseoptionen" #. Placeholder in --gdk-no-debug=FLAGS in --help output #. Placeholder in --gtk-debug=FLAGS in --help output #. Placeholder in --gtk-no-debug=FLAGS in --help output -#: ../gdk/gdk.c:214 -#: ../gdk/gdk.c:217 -#: ../gtk/gtkmain.c:453 -#: ../gtk/gtkmain.c:456 +#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:453 ../gtk/gtkmain.c:456 msgid "FLAGS" msgstr "OPTIONEN" @@ -500,13 +496,21 @@ msgid "Switches between on and off states" msgstr "Schaltet zwischen »an« und »aus« um" #: ../gtk/deprecated/gtkcolorsel.c:425 -msgid "Select the color you want from the outer ring. Select the darkness or lightness of that color using the inner triangle." -msgstr "Wählen Sie die gewünschte Farbe aus dem äußeren Ring und die Dunkelheit oder Helligkeit dieser Farbe mit dem inneren Dreieck." +msgid "" +"Select the color you want from the outer ring. Select the darkness or " +"lightness of that color using the inner triangle." +msgstr "" +"Wählen Sie die gewünschte Farbe aus dem äußeren Ring und die Dunkelheit oder " +"Helligkeit dieser Farbe mit dem inneren Dreieck." # gtk/gtkcolor #: ../gtk/deprecated/gtkcolorsel.c:451 -msgid "Click the eyedropper, then click a color anywhere on your screen to select that color." -msgstr "Klicken Sie auf die Pipette und dann Sie auf eine Farbe irgendwo auf Ihrem Bildschirm, um sie auszuwählen" +msgid "" +"Click the eyedropper, then click a color anywhere on your screen to select " +"that color." +msgstr "" +"Klicken Sie auf die Pipette und dann Sie auf eine Farbe irgendwo auf Ihrem " +"Bildschirm, um sie auszuwählen" #: ../gtk/deprecated/gtkcolorsel.c:461 msgid "_Hue:" @@ -560,8 +564,7 @@ msgstr "Der Blauanteil der Farbe." msgid "Op_acity:" msgstr "_Deckkraft:" -#: ../gtk/deprecated/gtkcolorsel.c:484 -#: ../gtk/deprecated/gtkcolorsel.c:494 +#: ../gtk/deprecated/gtkcolorsel.c:484 ../gtk/deprecated/gtkcolorsel.c:494 msgid "Transparency of the color." msgstr "Transparenz der Farbe." @@ -570,8 +573,12 @@ msgid "Color _name:" msgstr "Farb_name:" #: ../gtk/deprecated/gtkcolorsel.c:516 -msgid "You can enter an HTML-style hexadecimal color value, or simply a color name such as 'orange' in this entry." -msgstr "Sie können in diesem Feld einen hexadezimalen Farbwert wie bei HTML oder einen Farbnamen wie »orange« eingeben." +msgid "" +"You can enter an HTML-style hexadecimal color value, or simply a color name " +"such as 'orange' in this entry." +msgstr "" +"Sie können in diesem Feld einen hexadezimalen Farbwert wie bei HTML oder " +"einen Farbnamen wie »orange« eingeben." #: ../gtk/deprecated/gtkcolorsel.c:548 msgid "_Palette:" @@ -582,16 +589,29 @@ msgid "Color Wheel" msgstr "Farbrad" #: ../gtk/deprecated/gtkcolorsel.c:1072 -msgid "The previously-selected color, for comparison to the color you're selecting now. You can drag this color to a palette entry, or select this color as current by dragging it to the other color swatch alongside." -msgstr "Die zuvor gewählte Farbe im Vergleich mit der Farbe, die Sie nun auswählen. Sie können diese Farbe auf einen Paletteneintrag ziehen, oder sie als aktuell auswählen, indem Sie sie auf den anderen Farbfleck daneben ziehen." +msgid "" +"The previously-selected color, for comparison to the color you're selecting " +"now. You can drag this color to a palette entry, or select this color as " +"current by dragging it to the other color swatch alongside." +msgstr "" +"Die zuvor gewählte Farbe im Vergleich mit der Farbe, die Sie nun auswählen. " +"Sie können diese Farbe auf einen Paletteneintrag ziehen, oder sie als " +"aktuell auswählen, indem Sie sie auf den anderen Farbfleck daneben ziehen." #: ../gtk/deprecated/gtkcolorsel.c:1078 -msgid "The color you've chosen. You can drag this color to a palette entry to save it for use in the future." -msgstr "Die von Ihnen gewählte Farbe. Sie können diese Farbe auf einen Paletteneintrag ziehen, um sie für späteren Gebrauch zu speichern." +msgid "" +"The color you've chosen. You can drag this color to a palette entry to save " +"it for use in the future." +msgstr "" +"Die von Ihnen gewählte Farbe. Sie können diese Farbe auf einen " +"Paletteneintrag ziehen, um sie für späteren Gebrauch zu speichern." #: ../gtk/deprecated/gtkcolorsel.c:1084 -msgid "The previously-selected color, for comparison to the color you're selecting now." -msgstr "Die vorher gewählte Farbe, für Vergleichszwecke zur aktuell gewählten Farbe." +msgid "" +"The previously-selected color, for comparison to the color you're selecting " +"now." +msgstr "" +"Die vorher gewählte Farbe, für Vergleichszwecke zur aktuell gewählten Farbe." #: ../gtk/deprecated/gtkcolorsel.c:1088 msgid "The color you've chosen." @@ -602,16 +622,19 @@ msgid "_Save color here" msgstr "Farbe hier _speichern" #: ../gtk/deprecated/gtkcolorsel.c:1695 -msgid "Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select \"Save color here.\"" -msgstr "Klicken Sie auf diesen Paletteneintrag, um ihn zur aktuellen Farbe zu machen. Ziehen Sie einen Farbfleck auf diesen Eintrag oder klicken Sie mit rechts darauf und wählen Sie »Farbe hier speichern«, um ihn zu ändern." +msgid "" +"Click this palette entry to make it the current color. To change this entry, " +"drag a color swatch here or right-click it and select \"Save color here.\"" +msgstr "" +"Klicken Sie auf diesen Paletteneintrag, um ihn zur aktuellen Farbe zu " +"machen. Ziehen Sie einen Farbfleck auf diesen Eintrag oder klicken Sie mit " +"rechts darauf und wählen Sie »Farbe hier speichern«, um ihn zu ändern." #. We emit the response for the Select button manually, #. * since we want to save the color first #. -#: ../gtk/deprecated/gtkcolorseldialog.c:201 -#: ../gtk/gtkappchooserdialog.c:574 -#: ../gtk/gtkcolorchooserdialog.c:150 -#: ../gtk/gtkfontchooserdialog.c:174 +#: ../gtk/deprecated/gtkcolorseldialog.c:201 ../gtk/gtkappchooserdialog.c:574 +#: ../gtk/gtkcolorchooserdialog.c:150 ../gtk/gtkfontchooserdialog.c:174 #: ../gtk/gtkprinteroptionwidget.c:550 msgid "_Select" msgstr "Aus_wählen" @@ -643,8 +666,7 @@ msgstr "_Größe:" msgid "_Preview:" msgstr "_Vorschau:" -#: ../gtk/deprecated/gtkfontsel.c:1720 -#: ../gtk/gtkfontchooserdialog.c:183 +#: ../gtk/deprecated/gtkfontsel.c:1720 ../gtk/gtkfontchooserdialog.c:183 msgid "Font Selection" msgstr "Schriftwahl" @@ -657,8 +679,8 @@ msgid "" "This program comes with ABSOLUTELY NO WARRANTY;\n" "for details, visit %s" msgstr "" -"Dieses Programm kommt OHNE JEGLICHE GARANTIE;\n" -"für Details besuchen Sie bitte %s" +"Dieses Programm kommt OHNE JEDWEDE GARANTIE;\n" +"für Details besuchen Sie %s" #: ../gtk/gtkaboutdialog.c:357 msgid "License" @@ -808,8 +830,7 @@ msgstr "Anwendung konnte nicht gefunden werden" msgid "Select an application to open \"%s\"" msgstr "Anwendung zum Öffnen von »%s« auswählen" -#: ../gtk/gtkappchooserdialog.c:398 -#: ../gtk/gtkappchooserwidget.c:657 +#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:657 #, c-format msgid "No applications available to open \"%s\"" msgstr "Keine Anwendung zum Öffnen von »%s« verfügbar" @@ -826,8 +847,12 @@ msgid "No applications available to open \"%s\" files" msgstr "Keine Anwendungen zum Öffnen von »%s«-Dateien verfügbar" #: ../gtk/gtkappchooserdialog.c:422 -msgid "Click \"Show other applications\", for more options, or \"Find applications online\" to install a new application" -msgstr "Klicken Sie für weitere Optionen auf »Weitere Anwendungen anzeigen« oder auf »Anwendungen online suchen«, um eine neue Anwendung zu installieren." +msgid "" +"Click \"Show other applications\", for more options, or \"Find applications " +"online\" to install a new application" +msgstr "" +"Klicken Sie für weitere Optionen auf »Weitere Anwendungen anzeigen« oder auf " +"»Anwendungen online suchen«, um eine neue Anwendung zu installieren." #: ../gtk/gtkappchooserdialog.c:492 msgid "Forget association" @@ -864,8 +889,7 @@ msgstr "" "\n" "%s" -#: ../gtk/gtkapplicationwindow.c:333 -#: ../gtk/gtkprintoperation-unix.c:480 +#: ../gtk/gtkapplicationwindow.c:333 ../gtk/gtkprintoperation-unix.c:480 #: ../gtk/gtkprintoperation-win32.c:1445 msgid "Application" msgstr "Anwendunge" @@ -959,8 +983,7 @@ msgstr "2000" #. * digits. That needs support from your system and locale definition #. * too. #. -#: ../gtk/gtkcalendar.c:1941 -#: ../gtk/gtkcalendar.c:2633 +#: ../gtk/gtkcalendar.c:1941 ../gtk/gtkcalendar.c:2633 #, c-format msgctxt "calendar:day:digits" msgid "%d" @@ -976,8 +999,7 @@ msgstr "%d" #. * digits. That needs support from your system and locale definition #. * too. #. -#: ../gtk/gtkcalendar.c:1973 -#: ../gtk/gtkcalendar.c:2499 +#: ../gtk/gtkcalendar.c:1973 ../gtk/gtkcalendar.c:2499 #, c-format msgctxt "calendar:week:digits" msgid "%d" @@ -1019,20 +1041,17 @@ msgstr "Ungültig" #. * an accelerator when the cell is clicked to change the #. * acelerator. #. -#: ../gtk/gtkcellrendereraccel.c:416 -#: ../gtk/gtkcellrendereraccel.c:747 +#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 msgid "New accelerator…" msgstr "Neue Tastenkombination …" -#: ../gtk/gtkcellrendererprogress.c:372 -#: ../gtk/gtkcellrendererprogress.c:462 +#: ../gtk/gtkcellrendererprogress.c:372 ../gtk/gtkcellrendererprogress.c:462 #, c-format msgctxt "progress bar label" msgid "%d %%" msgstr "%d %%" -#: ../gtk/gtkcolorbutton.c:188 -#: ../gtk/gtkcolorbutton.c:449 +#: ../gtk/gtkcolorbutton.c:188 ../gtk/gtkcolorbutton.c:449 msgid "Pick a Color" msgstr "Wählen Sie eine Farbe" @@ -1244,7 +1263,7 @@ msgstr "Benutzerdefiniert" msgid "Create custom color" msgstr "Benutzerdefinierte Farbe anlegen" -#: ../gtk/gtkcolorchooserwidget.c:542 +#: ../gtk/gtkcolorchooserwidget.c:543 #, c-format msgid "Custom color %d: %s" msgstr "Benutzerdefinierte Farbe %d: %s" @@ -1273,8 +1292,7 @@ msgctxt "Color channel" msgid "V" msgstr "V" -#: ../gtk/gtkcoloreditor.c:481 -#: ../gtk/gtkcolorscale.c:301 +#: ../gtk/gtkcoloreditor.c:481 ../gtk/gtkcolorscale.c:301 msgctxt "Color channel" msgid "Hue" msgstr "Farbton" @@ -1284,8 +1302,7 @@ msgctxt "Color channel" msgid "H" msgstr "H" -#: ../gtk/gtkcoloreditor.c:496 -#: ../gtk/gtkcolorscale.c:303 +#: ../gtk/gtkcoloreditor.c:496 ../gtk/gtkcolorscale.c:303 msgctxt "Color channel" msgid "Alpha" msgstr "Alpha" @@ -1316,25 +1333,21 @@ msgid "default:mm" msgstr "default:mm" #. And show the custom paper dialog -#: ../gtk/gtkcustompaperunixdialog.c:397 -#: ../gtk/gtkprintunixdialog.c:3275 +#: ../gtk/gtkcustompaperunixdialog.c:397 ../gtk/gtkprintunixdialog.c:3275 msgid "Manage Custom Sizes" msgstr "Benutzerdefinierte Größen verwalten" -#: ../gtk/gtkcustompaperunixdialog.c:558 -#: ../gtk/gtkpagesetupunixdialog.c:778 +#: ../gtk/gtkcustompaperunixdialog.c:558 ../gtk/gtkpagesetupunixdialog.c:778 msgid "inch" msgstr "Zoll" -#: ../gtk/gtkcustompaperunixdialog.c:560 -#: ../gtk/gtkpagesetupunixdialog.c:776 +#: ../gtk/gtkcustompaperunixdialog.c:560 ../gtk/gtkpagesetupunixdialog.c:776 msgid "mm" msgstr "mm" -# CHECK #: ../gtk/gtkcustompaperunixdialog.c:605 msgid "Margins from Printer…" -msgstr "Ränder des Druckers …" +msgstr "Druckerränder …" #: ../gtk/gtkcustompaperunixdialog.c:771 #, c-format @@ -1373,13 +1386,11 @@ msgstr "_Rechts:" msgid "Paper Margins" msgstr "Papierränder" -#: ../gtk/gtkentry.c:9127 -#: ../gtk/gtktextview.c:8591 +#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8591 msgid "Input _Methods" msgstr "Eingabe_methoden" -#: ../gtk/gtkentry.c:9141 -#: ../gtk/gtktextview.c:8605 +#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8605 msgid "_Insert Unicode Control Character" msgstr "_Unicode-Steuerzeichen einfügen" @@ -1432,8 +1443,7 @@ msgstr "Feststelltaste ist aktiviert" msgid "Select a File" msgstr "Datei auswählen" -#: ../gtk/gtkfilechooserbutton.c:105 -#: ../gtk/gtkfilechooserdefault.c:1806 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1820 msgid "Desktop" msgstr "Desktop" @@ -1450,44 +1460,53 @@ msgstr "Andere …" msgid "Type name of new folder" msgstr "Geben Sie den neuen Ordnernamen ein" -#: ../gtk/gtkfilechooserdefault.c:957 +#: ../gtk/gtkfilechooserdefault.c:971 msgid "Could not retrieve information about the file" msgstr "Es konnten keine Informationen zu dieser Datei abgerufen werden" -#: ../gtk/gtkfilechooserdefault.c:968 +#: ../gtk/gtkfilechooserdefault.c:982 msgid "Could not add a bookmark" msgstr "Lesezeichen konnte nicht hinzugefügt werden" -#: ../gtk/gtkfilechooserdefault.c:979 +#: ../gtk/gtkfilechooserdefault.c:993 msgid "Could not remove bookmark" msgstr "Das Lesezeichen konnte nicht entfernt werden" -#: ../gtk/gtkfilechooserdefault.c:990 +#: ../gtk/gtkfilechooserdefault.c:1004 msgid "The folder could not be created" msgstr "Der Ordner konnte nicht angelegt werden" -#: ../gtk/gtkfilechooserdefault.c:1003 -msgid "The folder could not be created, as a file with the same name already exists. Try using a different name for the folder, or rename the file first." -msgstr "Der Ordner konnte nicht angelegt werden, weil es bereits eine Datei mit diesem Namen gibt. Versuchen Sie einen anderen Namen für den Ordner oder benennen Sie die Datei erst um." - #: ../gtk/gtkfilechooserdefault.c:1017 +msgid "" +"The folder could not be created, as a file with the same name already " +"exists. Try using a different name for the folder, or rename the file first." +msgstr "" +"Der Ordner konnte nicht angelegt werden, weil es bereits eine Datei mit " +"diesem Namen gibt. Versuchen Sie einen anderen Namen für den Ordner oder " +"benennen Sie die Datei erst um." + +#: ../gtk/gtkfilechooserdefault.c:1031 msgid "You need to choose a valid filename." msgstr "Sie müssen einen gültigen Dateinamen auswählen." -#: ../gtk/gtkfilechooserdefault.c:1020 +#: ../gtk/gtkfilechooserdefault.c:1034 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "Datei in %s konnte nicht erstellt werden, weil dies kein Ordner ist." -#: ../gtk/gtkfilechooserdefault.c:1032 -msgid "You may only select folders. The item that you selected is not a folder; try using a different item." -msgstr "Sie dürfen nur Ordner auswählen. Das von Ihnen ausgewählte Objekt ist kein Ordner. Versuchen Sie, ein anderes Objekt auszuwählen." +#: ../gtk/gtkfilechooserdefault.c:1046 +msgid "" +"You may only select folders. The item that you selected is not a folder; " +"try using a different item." +msgstr "" +"Sie dürfen nur Ordner auswählen. Das von Ihnen ausgewählte Objekt ist kein " +"Ordner. Versuchen Sie, ein anderes Objekt auszuwählen." -#: ../gtk/gtkfilechooserdefault.c:1042 +#: ../gtk/gtkfilechooserdefault.c:1056 msgid "Invalid file name" msgstr "Ungültiger Dateiname" -#: ../gtk/gtkfilechooserdefault.c:1052 +#: ../gtk/gtkfilechooserdefault.c:1066 msgid "The folder contents could not be displayed" msgstr "Der Ordnerinhalt konnte nicht angezeigt werden" @@ -1495,224 +1514,225 @@ msgstr "Der Ordnerinhalt konnte nicht angezeigt werden" #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1578 +#: ../gtk/gtkfilechooserdefault.c:1592 #, c-format msgid "%1$s on %2$s" msgstr "%1$s, %2$s" -#: ../gtk/gtkfilechooserdefault.c:1727 +#: ../gtk/gtkfilechooserdefault.c:1741 msgid "Search" msgstr "Suchen" -#: ../gtk/gtkfilechooserdefault.c:1751 -#: ../gtk/gtkfilechooserdefault.c:4977 +#: ../gtk/gtkfilechooserdefault.c:1765 ../gtk/gtkfilechooserdefault.c:4991 msgid "Recently Used" msgstr "Zuletzt verwendet" -#: ../gtk/gtkfilechooserdefault.c:2350 +#: ../gtk/gtkfilechooserdefault.c:2364 msgid "Select which types of files are shown" msgstr "Wählen Sie die anzuzeigenden Dateitypen" -#: ../gtk/gtkfilechooserdefault.c:2709 +#: ../gtk/gtkfilechooserdefault.c:2723 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "Ordner »%s« zu den Lesezeichen hinzufügen" -#: ../gtk/gtkfilechooserdefault.c:2753 +#: ../gtk/gtkfilechooserdefault.c:2767 #, c-format msgid "Add the current folder to the bookmarks" msgstr "Aktuellen Ordner zu den Lesezeichen hinzufügen" -#: ../gtk/gtkfilechooserdefault.c:2755 +#: ../gtk/gtkfilechooserdefault.c:2769 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "Ausgewählte Ordner zu den Lesezeichen hinzufügen" -#: ../gtk/gtkfilechooserdefault.c:2793 +#: ../gtk/gtkfilechooserdefault.c:2807 #, c-format msgid "Remove the bookmark '%s'" msgstr "Lesezeichen »%s« entfernen" -#: ../gtk/gtkfilechooserdefault.c:2795 +#: ../gtk/gtkfilechooserdefault.c:2809 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "Lesezeichen »%s« kann nicht entfernt werden" -#: ../gtk/gtkfilechooserdefault.c:2802 -#: ../gtk/gtkfilechooserdefault.c:3688 +#: ../gtk/gtkfilechooserdefault.c:2816 ../gtk/gtkfilechooserdefault.c:3702 msgid "Remove the selected bookmark" msgstr "Ausgewähltes Lesezeichen entfernen" -#: ../gtk/gtkfilechooserdefault.c:3366 +#: ../gtk/gtkfilechooserdefault.c:3380 msgid "Remove" msgstr "Entfernen" -#: ../gtk/gtkfilechooserdefault.c:3375 +#: ../gtk/gtkfilechooserdefault.c:3389 msgid "Rename…" msgstr "Umbenennen …" #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3539 +#: ../gtk/gtkfilechooserdefault.c:3553 msgid "Places" msgstr "Orte" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3596 +#: ../gtk/gtkfilechooserdefault.c:3610 msgid "_Places" msgstr "_Orte" -#: ../gtk/gtkfilechooserdefault.c:3676 +#: ../gtk/gtkfilechooserdefault.c:3690 msgid "Add the selected folder to the Bookmarks" msgstr "Den ausgewählten Ordner zu den Lesezeichen hinzufügen" -#: ../gtk/gtkfilechooserdefault.c:3937 +#: ../gtk/gtkfilechooserdefault.c:3951 msgid "Could not select file" msgstr "Datei konnte nicht ausgewählt werden" -#: ../gtk/gtkfilechooserdefault.c:4162 +#: ../gtk/gtkfilechooserdefault.c:4176 msgid "_Visit this file" msgstr "Zu dieser Datei _gehen" -#: ../gtk/gtkfilechooserdefault.c:4165 +#: ../gtk/gtkfilechooserdefault.c:4179 msgid "_Copy file’s location" msgstr "O_rt der Datei kopieren" -#: ../gtk/gtkfilechooserdefault.c:4168 +#: ../gtk/gtkfilechooserdefault.c:4182 msgid "_Add to Bookmarks" msgstr "Zu Lesezeichen _hinzufügen" -#: ../gtk/gtkfilechooserdefault.c:4175 +#: ../gtk/gtkfilechooserdefault.c:4189 msgid "Show _Hidden Files" msgstr "_Verborgene Dateien anzeigen" -#: ../gtk/gtkfilechooserdefault.c:4178 +#: ../gtk/gtkfilechooserdefault.c:4192 msgid "Show _Size Column" msgstr "Spalte »_Größe« anzeigen" -#: ../gtk/gtkfilechooserdefault.c:4403 +#: ../gtk/gtkfilechooserdefault.c:4417 msgid "Files" msgstr "Dateien" -#: ../gtk/gtkfilechooserdefault.c:4454 +#: ../gtk/gtkfilechooserdefault.c:4468 msgid "Name" msgstr "Name" -#: ../gtk/gtkfilechooserdefault.c:4477 +#: ../gtk/gtkfilechooserdefault.c:4491 msgid "Size" msgstr "Größe" # CHECK -#: ../gtk/gtkfilechooserdefault.c:4491 +#: ../gtk/gtkfilechooserdefault.c:4505 msgid "Modified" msgstr "Letzte Änderung" #. Label -#: ../gtk/gtkfilechooserdefault.c:4584 +#: ../gtk/gtkfilechooserdefault.c:4598 msgid "_Name:" msgstr "_Name:" -#: ../gtk/gtkfilechooserdefault.c:4815 +#: ../gtk/gtkfilechooserdefault.c:4829 msgid "Type a file name" msgstr "Geben Sie einen Dateinamen an" -#: ../gtk/gtkfilechooserdefault.c:4862 -#: ../gtk/gtkfilechooserdefault.c:4873 +#: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887 msgid "Please select a folder below" msgstr "Wählen Sie nachfolgend einen Ordner" -#: ../gtk/gtkfilechooserdefault.c:4868 +#: ../gtk/gtkfilechooserdefault.c:4882 msgid "Please type a file name" msgstr "Geben Sie einen Dateinamen ein" #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4939 +#: ../gtk/gtkfilechooserdefault.c:4953 msgid "Create Fo_lder" msgstr "Ordner anle_gen" -#: ../gtk/gtkfilechooserdefault.c:4987 +#: ../gtk/gtkfilechooserdefault.c:5001 msgid "Search:" msgstr "Suchen:" -#: ../gtk/gtkfilechooserdefault.c:5038 +#: ../gtk/gtkfilechooserdefault.c:5052 msgid "_Location:" msgstr "_Ort:" -#: ../gtk/gtkfilechooserdefault.c:5488 +#: ../gtk/gtkfilechooserdefault.c:5502 msgid "Save in _folder:" msgstr "In _Ordner speichern:" -#: ../gtk/gtkfilechooserdefault.c:5490 +#: ../gtk/gtkfilechooserdefault.c:5504 msgid "Create in _folder:" msgstr "In _Ordner anlegen" -#: ../gtk/gtkfilechooserdefault.c:6515 +#: ../gtk/gtkfilechooserdefault.c:6597 #, c-format msgid "Could not read the contents of %s" msgstr "Inhalt von %s konnte nicht gelesen werden" -#: ../gtk/gtkfilechooserdefault.c:6519 +#: ../gtk/gtkfilechooserdefault.c:6601 msgid "Could not read the contents of the folder" msgstr "Inhalt des Ordners konnte nicht gelesen werden" -#: ../gtk/gtkfilechooserdefault.c:6612 -#: ../gtk/gtkfilechooserdefault.c:6680 -#: ../gtk/gtkfilechooserdefault.c:6860 +#: ../gtk/gtkfilechooserdefault.c:6694 ../gtk/gtkfilechooserdefault.c:6762 +#: ../gtk/gtkfilechooserdefault.c:6942 msgid "Unknown" msgstr "Unbekannt" -#: ../gtk/gtkfilechooserdefault.c:6627 +#: ../gtk/gtkfilechooserdefault.c:6709 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6629 +#: ../gtk/gtkfilechooserdefault.c:6711 msgid "Yesterday at %H:%M" msgstr "Gestern um %H:%M" -#: ../gtk/gtkfilechooserdefault.c:7331 +#: ../gtk/gtkfilechooserdefault.c:7413 msgid "Cannot change to folder because it is not local" -msgstr "Es konnte nicht in den angegebenen Ordner gewechselt werden, weil dieser nicht lokal ist." +msgstr "" +"Es konnte nicht in den angegebenen Ordner gewechselt werden, weil dieser " +"nicht lokal ist." -#: ../gtk/gtkfilechooserdefault.c:7928 -#: ../gtk/gtkfilechooserdefault.c:7949 +#: ../gtk/gtkfilechooserdefault.c:8020 ../gtk/gtkfilechooserdefault.c:8041 #, c-format msgid "Shortcut %s already exists" msgstr "Das Lesezeichen %s existiert bereits" -#: ../gtk/gtkfilechooserdefault.c:8039 +#: ../gtk/gtkfilechooserdefault.c:8131 #, c-format msgid "Shortcut %s does not exist" msgstr "Das Lesezeichen %s existiert nicht" -#: ../gtk/gtkfilechooserdefault.c:8286 -#: ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8377 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "Eine Datei namens »%s« existiert bereits. Möchten Sie diese ersetzen?" -#: ../gtk/gtkfilechooserdefault.c:8289 -#: ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8380 ../gtk/gtkprintunixdialog.c:552 #, c-format -msgid "The file already exists in \"%s\". Replacing it will overwrite its contents." -msgstr "Die Datei existiert bereits in »%s«. Durch ihr Ersetzen wird sämtlicher Inhalt überschrieben." +msgid "" +"The file already exists in \"%s\". Replacing it will overwrite its contents." +msgstr "" +"Die Datei existiert bereits in »%s«. Durch ihr Ersetzen wird sämtlicher " +"Inhalt überschrieben." -#: ../gtk/gtkfilechooserdefault.c:8294 -#: ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "_Ersetzen" -#: ../gtk/gtkfilechooserdefault.c:9101 +#: ../gtk/gtkfilechooserdefault.c:9192 msgid "Could not start the search process" msgstr "Der Suchprozess konnte nicht gestartet werden" -#: ../gtk/gtkfilechooserdefault.c:9102 -msgid "The program was not able to create a connection to the indexer daemon. Please make sure it is running." -msgstr "Es konnte keine Verbindung zum Indexer-Dienst hergestellt werden. Bitte stellen Sie sicher, dass er läuft." +#: ../gtk/gtkfilechooserdefault.c:9193 +msgid "" +"The program was not able to create a connection to the indexer daemon. " +"Please make sure it is running." +msgstr "" +"Es konnte keine Verbindung zum Indexer-Dienst hergestellt werden. Bitte " +"stellen Sie sicher, dass er läuft." -#: ../gtk/gtkfilechooserdefault.c:9116 +#: ../gtk/gtkfilechooserdefault.c:9207 msgid "Could not send the search request" msgstr "Die Suchanfrage konnte nicht gestellt werden" -#: ../gtk/gtkfilechooserdefault.c:9726 +#: ../gtk/gtkfilechooserdefault.c:9817 #, c-format msgid "Could not mount %s" msgstr "%s konnte nicht eingebunden werden" @@ -1730,8 +1750,7 @@ msgstr "Dateisystem" msgid "Sans 12" msgstr "Sans 12" -#: ../gtk/gtkfontbutton.c:436 -#: ../gtk/gtkfontbutton.c:563 +#: ../gtk/gtkfontbutton.c:436 ../gtk/gtkfontbutton.c:563 msgid "Pick a Font" msgstr "Wählen Sie eine Schrift" @@ -1741,7 +1760,9 @@ msgstr "Schrift" #: ../gtk/gtkfontchooserwidget.c:110 msgid "No fonts matched your search. You can revise your search and try again." -msgstr "Keine Schriften stimmten mit Ihrer Suche überein. Ändern Sie Ihre Suchanfrage und versuchen Sie es erneut." +msgstr "" +"Keine Schriften stimmten mit Ihrer Suche überein. Ändern Sie Ihre " +"Suchanfrage und versuchen Sie es erneut." #: ../gtk/gtkfontchooserwidget.c:557 msgid "Search font name" @@ -1810,8 +1831,7 @@ msgstr "" msgid "Error parsing commandline options: %s\n" msgstr "Fehler beim Verarbeiten der Befehlszeilenoptionen: %s\n" -#: ../gtk/gtk-launch.c:89 -#: ../gtk/gtk-launch.c:102 +#: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für mehr Informationen." @@ -1826,7 +1846,9 @@ msgstr "%s: Anwendungsname fehlt" #: ../gtk/gtk-launch.c:121 #, c-format msgid "Creating AppInfo from id not supported on non unix operating systems" -msgstr "Erstellen der Appinfo von einer Kennung wird auf nicht-Unix-Betriebssystemen nicht unterstützt" +msgstr "" +"Erzeugen der Anwendungsinformation aus der Kennung wird auf nicht-UNIX-" +"Betriebsystemen nicht unterstützt" #. Translators: the first %s is the program name, the second one #. is the application name. @@ -1987,7 +2009,9 @@ msgstr "Prozess b_eenden" #: ../gtk/gtkmountoperation-stub.c:62 #, c-format msgid "Cannot kill process with PID %d. Operation is not implemented." -msgstr "Prozess mit Kennung %d kann nicht abgewürgt werden. Operation ist nicht implementiert." +msgstr "" +"Prozess mit Kennung %d kann nicht abgewürgt werden. Operation ist nicht " +"implementiert." #. translators: this string is a name for the 'less' command #: ../gtk/gtkmountoperation-x11.c:954 @@ -2015,8 +2039,7 @@ msgstr "Z-Shell" msgid "Cannot end process with PID %d: %s" msgstr "Prozess mit Kennung %d kann nicht abgewürgt werden: %s" -#: ../gtk/gtknotebook.c:5069 -#: ../gtk/gtknotebook.c:7723 +#: ../gtk/gtknotebook.c:5069 ../gtk/gtknotebook.c:7723 #, c-format msgid "Page %u" msgstr "Seite %u" @@ -2030,8 +2053,7 @@ msgctxt "Number format" msgid "%d" msgstr "%d" -#: ../gtk/gtkpagesetup.c:646 -#: ../gtk/gtkpapersize.c:848 +#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:848 #: ../gtk/gtkpapersize.c:888 msgid "Not a valid page setup file" msgstr "Keine gültige Seiteneinstellungs-Datei" @@ -2060,8 +2082,7 @@ msgstr "" " Oben: %s %s\n" " Unten: %s %s" -#: ../gtk/gtkpagesetupunixdialog.c:845 -#: ../gtk/gtkprintunixdialog.c:3329 +#: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 msgid "Manage Custom Sizes…" msgstr "Benutzerdefinierte Größen verwalten …" @@ -2069,19 +2090,15 @@ msgstr "Benutzerdefinierte Größen verwalten …" msgid "_Format for:" msgstr "_Format für:" -# Auch wenn im Original die Tastenkürzel kollidieren (_Preferences), -# wir verwenden Ei_genschaften. -#: ../gtk/gtkpagesetupunixdialog.c:917 -#: ../gtk/gtkprintunixdialog.c:3477 +#: ../gtk/gtkpagesetupunixdialog.c:917 ../gtk/gtkprintunixdialog.c:3477 msgid "_Paper size:" -msgstr "Ei_genschaften:" +msgstr "_Papiergröße:" #: ../gtk/gtkpagesetupunixdialog.c:946 msgid "_Orientation:" msgstr "_Ausrichtung:" -#: ../gtk/gtkpagesetupunixdialog.c:1006 -#: ../gtk/gtkprintunixdialog.c:3531 +#: ../gtk/gtkpagesetupunixdialog.c:1006 ../gtk/gtkprintunixdialog.c:3531 msgid "Page Setup" msgstr "Seite einrichten" @@ -2168,8 +2185,7 @@ msgstr "Abgeschlossen mit Fehler" msgid "Preparing %d" msgstr "%d wird vorbereitet" -#: ../gtk/gtkprintoperation.c:2351 -#: ../gtk/gtkprintoperation.c:2983 +#: ../gtk/gtkprintoperation.c:2351 ../gtk/gtkprintoperation.c:2983 msgid "Preparing" msgstr "Vorbereitung" @@ -2184,7 +2200,9 @@ msgstr "Fehler beim Erzeugen der Druckvorschau" #: ../gtk/gtkprintoperation.c:3016 msgid "The most probable reason is that a temporary file could not be created." -msgstr "Der häufigste Grund hierfür ist, dass keine temporäre Datei erzeugt werden konnte." +msgstr "" +"Der häufigste Grund hierfür ist, dass keine temporäre Datei erzeugt werden " +"konnte." #: ../gtk/gtkprintoperation-unix.c:307 msgid "Error launching preview" @@ -2220,13 +2238,11 @@ msgstr "Keine Drucker gefunden" msgid "Invalid argument to CreateDC" msgstr "Ungültiges Argument für CreateDC" -#: ../gtk/gtkprintoperation-win32.c:1600 -#: ../gtk/gtkprintoperation-win32.c:1827 +#: ../gtk/gtkprintoperation-win32.c:1600 ../gtk/gtkprintoperation-win32.c:1827 msgid "Error from StartDoc" msgstr "Fehler von StartDoc" -#: ../gtk/gtkprintoperation-win32.c:1682 -#: ../gtk/gtkprintoperation-win32.c:1705 +#: ../gtk/gtkprintoperation-win32.c:1682 ../gtk/gtkprintoperation-win32.c:1705 #: ../gtk/gtkprintoperation-win32.c:1753 msgid "Not enough free memory" msgstr "Nicht genug Speicher" @@ -2371,8 +2387,7 @@ msgstr "Unten nach oben, rechts nach links" #. Translators, this string is used to label the option in the print #. * dialog that controls in what order multiple pages are arranged #. -#: ../gtk/gtkprintunixdialog.c:3065 -#: ../gtk/gtkprintunixdialog.c:3078 +#: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078 #: ../modules/printbackends/cups/gtkprintbackendcups.c:3772 msgid "Page Ordering" msgstr "Reihenfolge" @@ -2483,7 +2498,7 @@ msgstr "_Abrechnungsinfo:" # CHECK #: ../gtk/gtkprintunixdialog.c:3587 msgid "Print Document" -msgstr "Druckauftrag ausführen" +msgstr "Dokument drucken" #. Translators: this is one of the choices for the print at option #. * in the print dialog @@ -2578,8 +2593,7 @@ msgstr "Drucken" msgid "Select which type of documents are shown" msgstr "Wählen Sie die anzuzeigenden Dokumententypen" -#: ../gtk/gtkrecentchooserdefault.c:1129 -#: ../gtk/gtkrecentchooserdefault.c:1166 +#: ../gtk/gtkrecentchooserdefault.c:1129 ../gtk/gtkrecentchooserdefault.c:1166 #, c-format msgid "No item for URI '%s' found" msgstr "Es konnte kein Eintrag für die Adresse »%s« gefunden werden" @@ -2627,11 +2641,12 @@ msgstr "_Private Ressourcen anzeigen" msgid "No items found" msgstr "Keine Einträge gefunden" -#: ../gtk/gtkrecentchoosermenu.c:526 -#: ../gtk/gtkrecentchoosermenu.c:582 +#: ../gtk/gtkrecentchoosermenu.c:526 ../gtk/gtkrecentchoosermenu.c:582 #, c-format msgid "No recently used resource found with URI `%s'" -msgstr "Es konnte keine vor kurzem geöffnete Ressource mit der Adresse »%s« gefunden werden" +msgstr "" +"Es konnte keine vor kurzem geöffnete Ressource mit der Adresse »%s« gefunden " +"werden" #: ../gtk/gtkrecentchoosermenu.c:792 #, c-format @@ -2662,12 +2677,9 @@ msgctxt "recent menu label" msgid "%d. %s" msgstr "%d. %s" -#: ../gtk/gtkrecentmanager.c:1010 -#: ../gtk/gtkrecentmanager.c:1023 -#: ../gtk/gtkrecentmanager.c:1160 -#: ../gtk/gtkrecentmanager.c:1170 -#: ../gtk/gtkrecentmanager.c:1222 -#: ../gtk/gtkrecentmanager.c:1231 +#: ../gtk/gtkrecentmanager.c:1010 ../gtk/gtkrecentmanager.c:1023 +#: ../gtk/gtkrecentmanager.c:1160 ../gtk/gtkrecentmanager.c:1170 +#: ../gtk/gtkrecentmanager.c:1222 ../gtk/gtkrecentmanager.c:1231 #: ../gtk/gtkrecentmanager.c:1246 #, c-format msgid "Unable to find an item with URI '%s'" @@ -2676,7 +2688,8 @@ msgstr "Es konnte kein Eintrag mit der Adresse »%s« gefunden werden" #: ../gtk/gtkrecentmanager.c:2446 #, c-format msgid "No registered application with name '%s' for item with URI '%s' found" -msgstr "Keine registrierte Anwendung namens »%s« für Objektadresse »%s« gefunden" +msgstr "" +"Keine registrierte Anwendung namens »%s« für Objektadresse »%s« gefunden" #. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate #: ../gtk/gtkstock.c:324 @@ -3191,9 +3204,7 @@ msgstr "_Wegzoomen" #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for #. * the state #. -#: ../gtk/gtkswitch.c:337 -#: ../gtk/gtkswitch.c:392 -#: ../gtk/gtkswitch.c:583 +#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:583 msgctxt "switch" msgid "ON" msgstr "AN" @@ -3201,9 +3212,7 @@ msgstr "AN" #. Translators: if the "off" state label requires more than three #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state #. -#: ../gtk/gtkswitch.c:345 -#: ../gtk/gtkswitch.c:393 -#: ../gtk/gtkswitch.c:598 +#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:598 msgctxt "switch" msgid "OFF" msgstr "AUS" @@ -3218,14 +3227,12 @@ msgstr "Unbekannter Fehler beim Deserialisieren von %s" msgid "No deserialize function found for format %s" msgstr "Es konnte keine Deserialisierungs-Funktion für %s gefunden werden" -#: ../gtk/gtktextbufferserialize.c:798 -#: ../gtk/gtktextbufferserialize.c:824 +#: ../gtk/gtktextbufferserialize.c:798 ../gtk/gtktextbufferserialize.c:824 #, c-format msgid "Both \"id\" and \"name\" were found on the <%s> element" msgstr "Es wurde sowohl »id« als auch »name« im <%s>-Element gefunden" -#: ../gtk/gtktextbufferserialize.c:808 -#: ../gtk/gtktextbufferserialize.c:834 +#: ../gtk/gtktextbufferserialize.c:808 ../gtk/gtktextbufferserialize.c:834 #, c-format msgid "The attribute \"%s\" was found twice on the <%s> element" msgstr "Das Attribut »%s« wurde zwei Mal im <%s>-Element gefunden" @@ -3245,8 +3252,7 @@ msgstr "<%s>-Element hat weder ein »name«- noch ein »id«-Attribut" msgid "Attribute \"%s\" repeated twice on the same <%s> element" msgstr "Attribut »%s« wurde zwei Mal im selben <%s>-Element verwendet" -#: ../gtk/gtktextbufferserialize.c:965 -#: ../gtk/gtktextbufferserialize.c:990 +#: ../gtk/gtktextbufferserialize.c:965 ../gtk/gtktextbufferserialize.c:990 #, c-format msgid "Attribute \"%s\" is invalid on <%s> element in this context" msgstr "Attribut »%s« ist in diesem Kontext ungültig im <%s>-Element" @@ -3263,12 +3269,11 @@ msgstr "Anonymer Tag wurde gefunden und Tags können nicht erstellt werden." #: ../gtk/gtktextbufferserialize.c:1052 #, c-format msgid "Tag \"%s\" does not exist in buffer and tags can not be created." -msgstr "Tag »%s« existiert nicht im Puffer und Tags können nicht erstellt werden." +msgstr "" +"Tag »%s« existiert nicht im Puffer und Tags können nicht erstellt werden." -#: ../gtk/gtktextbufferserialize.c:1151 -#: ../gtk/gtktextbufferserialize.c:1226 -#: ../gtk/gtktextbufferserialize.c:1331 -#: ../gtk/gtktextbufferserialize.c:1405 +#: ../gtk/gtktextbufferserialize.c:1151 ../gtk/gtktextbufferserialize.c:1226 +#: ../gtk/gtktextbufferserialize.c:1331 ../gtk/gtktextbufferserialize.c:1405 #, c-format msgid "Element <%s> is not allowed below <%s>" msgstr "Element »%s« ist unterhalb von »%s« nicht erlaubt" @@ -3285,8 +3290,11 @@ msgstr "»%s« ist kein gültiger Attributsname" #: ../gtk/gtktextbufferserialize.c:1200 #, c-format -msgid "\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\"" -msgstr "»%s« konnte für das Attribut »%s« nicht in einen Wert vom Typ »%s« konvertiert werden" +msgid "" +"\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\"" +msgstr "" +"»%s« konnte für das Attribut »%s« nicht in einen Wert vom Typ »%s« " +"konvertiert werden" #: ../gtk/gtktextbufferserialize.c:1209 #, c-format @@ -3308,8 +3316,7 @@ msgstr "Tag »%s« hat ungültige Priorität »%s«" msgid "Outermost element in text must be not <%s>" msgstr "Äußerstes Element im Text muss sein, nicht <%s>" -#: ../gtk/gtktextbufferserialize.c:1369 -#: ../gtk/gtktextbufferserialize.c:1385 +#: ../gtk/gtktextbufferserialize.c:1369 ../gtk/gtktextbufferserialize.c:1385 #, c-format msgid "A <%s> element has already been specified" msgstr "Ein <%s>-Element wurde bereits festgelegt" @@ -3323,8 +3330,11 @@ msgid "Serialized data is malformed" msgstr "Serialisierte Daten sind fehlerhaft" #: ../gtk/gtktextbufferserialize.c:1868 -msgid "Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001" -msgstr "Serialisierte Daten sind fehlerhaft. Erste Sektion ist nicht GTKTEXTBUFFERCONTENTS-0001" +msgid "" +"Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001" +msgstr "" +"Serialisierte Daten sind fehlerhaft. Erste Sektion ist nicht " +"GTKTEXTBUFFERCONTENTS-0001" #: ../gtk/gtktextutil.c:58 msgid "LRM _Left-to-right mark" @@ -3392,8 +3402,7 @@ msgstr "Ändert die Lautstärke" msgid "Adjusts the volume" msgstr "Passt die Lautstärke an" -#: ../gtk/gtkvolumebutton.c:180 -#: ../gtk/gtkvolumebutton.c:183 +#: ../gtk/gtkvolumebutton.c:180 ../gtk/gtkvolumebutton.c:183 msgid "Volume Down" msgstr "Leiser" @@ -3401,8 +3410,7 @@ msgstr "Leiser" msgid "Decreases the volume" msgstr "Verringert die Lautstärke" -#: ../gtk/gtkvolumebutton.c:186 -#: ../gtk/gtkvolumebutton.c:189 +#: ../gtk/gtkvolumebutton.c:186 ../gtk/gtkvolumebutton.c:189 msgid "Volume Up" msgstr "Lauter" @@ -3884,8 +3892,7 @@ msgctxt "paper size" msgid "10x14" msgstr "10x14" -#: ../gtk/paper_names_offsets.c:95 -#: ../gtk/paper_names_offsets.c:96 +#: ../gtk/paper_names_offsets.c:95 ../gtk/paper_names_offsets.c:96 msgctxt "paper size" msgid "10x15" msgstr "10x15" @@ -4276,8 +4283,7 @@ msgstr "Header konnte nicht überschrieben werden\n" msgid "Failed to open file %s : %s\n" msgstr "Datei %s konnte nicht geöffnet werden: %s\n" -#: ../gtk/updateiconcache.c:1490 -#: ../gtk/updateiconcache.c:1520 +#: ../gtk/updateiconcache.c:1490 ../gtk/updateiconcache.c:1520 #, c-format msgid "Failed to write cache file: %s\n" msgstr "Cache-Datei konnte nicht gespeichert werden: %s\n" @@ -4290,7 +4296,9 @@ msgstr "Der erstellte Cache war ungültig.\n" #: ../gtk/updateiconcache.c:1544 #, c-format msgid "Could not rename %s to %s: %s, removing %s then.\n" -msgstr "»%s« konnte nicht in »%s« umbenannt werden: %s; »%s« wird deswegen entfernt.\n" +msgstr "" +"»%s« konnte nicht in »%s« umbenannt werden: %s; »%s« wird deswegen " +"entfernt.\n" #: ../gtk/updateiconcache.c:1558 #, c-format @@ -4353,7 +4361,8 @@ msgid "" "If you really want to create an icon cache here, use --ignore-theme-index.\n" msgstr "" "Keine Themenindex-Datei in »%s«.\n" -"Wenn Sie hier wirklich einen Symbol-Cache erstellen möchten, verwenden Sie bitte --ignore-theme-index.\n" +"Wenn Sie hier wirklich einen Symbol-Cache erstellen möchten, verwenden Sie " +"bitte --ignore-theme-index.\n" #. ID #: ../modules/input/imam-et.c:452 @@ -4435,7 +4444,8 @@ msgstr "Das Drucken eines Dokuments auf %s erfordert Legitimation" #: ../modules/printbackends/cups/gtkprintbackendcups.c:904 #, c-format msgid "Authentication is required to get attributes of job '%s'" -msgstr "Das Auslesen von Attributen des Druckauftrags »%s« erfordert Legitimation" +msgstr "" +"Das Auslesen von Attributen des Druckauftrags »%s« erfordert Legitimation" #: ../modules/printbackends/cups/gtkprintbackendcups.c:906 msgid "Authentication is required to get attributes of a job" @@ -4514,7 +4524,8 @@ msgstr "Drucker »%s« hat keinen Entwickler mehr." #: ../modules/printbackends/cups/gtkprintbackendcups.c:1673 #, c-format msgid "Printer '%s' is low on at least one marker supply." -msgstr "Drucker »%s« hat nur noch wenig Farbe für mindestens einen Farbbehälter." +msgstr "" +"Drucker »%s« hat nur noch wenig Farbe für mindestens einen Farbbehälter." #. Translators: "marker" is one color bin of the printer #: ../modules/printbackends/cups/gtkprintbackendcups.c:1675 @@ -5067,7 +5078,6 @@ msgstr "Mit Test-Drucke drucken" #~ msgstr "Bild-Pixeldaten unbrauchbar" #~ msgid "failed to allocate image buffer of %u byte" - #~ msgid_plural "failed to allocate image buffer of %u bytes" #~ msgstr[0] "Bildpuffer von %u Byte konnte nicht bereitgestellt werden" #~ msgstr[1] "Bildpuffer von %u Bytes konnte nicht bereitgestellt werden" @@ -5160,361 +5170,516 @@ msgstr "Mit Test-Drucke drucken" #~ msgstr "" #~ "Das GIF-Bild hat keine globale Farbtabelle, und ein Einzelbild darin hat " #~ "keine lokale Farbtabelle." + #~ msgid "GIF image was truncated or incomplete." #~ msgstr "GIF-Bild wurde verstümmelt oder ist unvollständig." + #~ msgid "The GIF image format" #~ msgstr "Das GIF-Bildformat" + #~ msgid "Invalid header in icon" #~ msgstr "Ungültiger Vorspann in Symbol" + #~ msgid "Not enough memory to load icon" #~ msgstr "Nicht genug Speicher, um Symbol zu laden" + #~ msgid "Icon has zero width" #~ msgstr "Symbolbreite beträgt null" + #~ msgid "Icon has zero height" #~ msgstr "Symbolhöhe beträgt null" + #~ msgid "Compressed icons are not supported" #~ msgstr "Komprimierte Symbole werden nicht unterstützt" + #~ msgid "Unsupported icon type" #~ msgstr "Nicht unterstützter Symboltyp" + #~ msgid "Not enough memory to load ICO file" #~ msgstr "Nicht genug Speicher, um ICO-Bild zu laden" + #~ msgid "Image too large to be saved as ICO" #~ msgstr "Bild zu groß, um als ICO gespeichert zu werden" + #~ msgid "Cursor hotspot outside image" #~ msgstr "Zeiger-Hotspot außerhalb des Bilds" + #~ msgid "Unsupported depth for ICO file: %d" #~ msgstr "Nicht unterstützte Farbtiefe der ICO-Datei: %d" + #~ msgid "The ICO image format" #~ msgstr "Das ICO-Bildformat" + #~ msgid "Error reading ICNS image: %s" #~ msgstr "Fehler beim Lesen einer ICNS-Bilddatei: %s" + #~ msgid "Could not decode ICNS file" #~ msgstr "ICNS-Datei konnte nicht dekodiert werden" + #~ msgid "The ICNS image format" #~ msgstr "Das ICNS-Bildformat" + #~ msgid "Couldn't allocate memory for stream" #~ msgstr "Speicher für Datenstrom konnte nicht bereitgestellt werden" + #~ msgid "Couldn't decode image" #~ msgstr "Bild konnte nicht dekodiert werden" + #~ msgid "Transformed JPEG2000 has zero width or height" #~ msgstr "Höhe oder Breite des transformierten JPEG2000 beträgt null" + #~ msgid "Image type currently not supported" #~ msgstr "Bildtyp wird derzeit nicht unterstützt" + #~ msgid "Couldn't allocate memory for color profile" #~ msgstr "" #~ "Speicher zum Laden des Farbprofils konnte nicht bereit gestellt werden" + #~ msgid "Insufficient memory to open JPEG 2000 file" #~ msgstr "Nicht genug Speicher, um JPEG2000-Datei zu öffnen" + #~ msgid "Couldn't allocate memory to buffer image data" #~ msgstr "Speicher für Bilddatenpuffer konnte nicht bereitgestellt werden" + #~ msgid "The JPEG 2000 image format" #~ msgstr "Das JPEG2000-Bildformat" + #~ msgid "Error interpreting JPEG image file (%s)" #~ msgstr "Fehler beim Lesen einer JPEG-Bilddatei (%s)" + #~ msgid "" #~ "Insufficient memory to load image, try exiting some applications to free " #~ "memory" #~ msgstr "" #~ "Nicht genug Speicher, um das Bild zu laden. Versuchen Sie, einige " #~ "Anwendungen zu beenden, um Speicher frei zu machen" + #~ msgid "Unsupported JPEG color space (%s)" #~ msgstr "Nicht unterstützter JPEG-Farbraum (%s)" + #~ msgid "Couldn't allocate memory for loading JPEG file" #~ msgstr "" #~ "Speicher zum Laden von JPEG-Datei konnte nicht bereit gestellt werden" + #~ msgid "Transformed JPEG has zero width or height." #~ msgstr "Höhe oder Breite des transformierten JPEGs beträgt null." + #~ msgid "" #~ "JPEG quality must be a value between 0 and 100; value '%s' could not be " #~ "parsed." #~ msgstr "" #~ "JPEG-Qualität muss ein Wert zwischen 0 und 100 sein; Wert »%s« konnte " #~ "nicht verarbeitet werden." + #~ msgid "" #~ "JPEG quality must be a value between 0 and 100; value '%d' is not allowed." #~ msgstr "" #~ "JPEG-Qualität muss ein Wert zwischen 0 und 100 sein; Wert »%d« ist nicht " #~ "erlaubt." + #~ msgid "The JPEG image format" #~ msgstr "Das JPEG-Bildformat" + #~ msgid "Couldn't allocate memory for header" #~ msgstr "Speicher für Kopfzeilen konnte nicht bereitgestellt werden" + #~ msgid "Couldn't allocate memory for context buffer" #~ msgstr "Speicher für Kontextpuffer konnte nicht bereitgestellt werden" + #~ msgid "Image has invalid width and/or height" #~ msgstr "Bildhöhe und/oder -breite ungültig" + # CHECK #~ msgid "Image has unsupported bpp" #~ msgstr "BPP-Anzahl des Bildes nicht unterstützt" + #~ msgid "Image has unsupported number of %d-bit planes" #~ msgstr "Bild hat eine nicht unterstützte Anzahl von %d-Bit-Flächen" + #~ msgid "Couldn't create new pixbuf" #~ msgstr "Neuer Pixbuf konnte nicht angelegt werden" + #~ msgid "Couldn't allocate memory for line data" #~ msgstr "Speicher für Zeilendaten konnte nicht bereitgestellt werden" + #~ msgid "Couldn't allocate memory for paletted data" #~ msgstr "Speicher für Palettendaten konnte nicht bereitgestellt werden" + #~ msgid "Didn't get all lines of PCX image" #~ msgstr "Es wurden nicht alle Zeilen des PCX-Bilds abgerufen" + #~ msgid "No palette found at end of PCX data" #~ msgstr "Keine Palette am Ende der PCX-Daten gefunden" + #~ msgid "The PCX image format" #~ msgstr "Das PCX-Bildformat" + #~ msgid "Bits per channel of PNG image is invalid." #~ msgstr "Die Bitanzahl pro Kanal des PNG-Bildes ist ungültig." + #~ msgid "Transformed PNG has zero width or height." #~ msgstr "Höhe oder Breite des transformierten PNGs beträgt null." + #~ msgid "Bits per channel of transformed PNG is not 8." #~ msgstr "Bits pro Kanal des transformierten PNGs sind nicht 8." + #~ msgid "Transformed PNG not RGB or RGBA." #~ msgstr "Das transformierte PNG ist weder RGB noch RGBA." + #~ msgid "Transformed PNG has unsupported number of channels, must be 3 or 4." #~ msgstr "" #~ "Die Anzahl der Kanäle des transformierten PNGs werden nicht unterstützt, " #~ "muss 3 oder 4 sein." + #~ msgid "Fatal error in PNG image file: %s" #~ msgstr "Schwerer Fehler in PNG-Bilddatei: %s" + #~ msgid "Insufficient memory to load PNG file" #~ msgstr "Nicht genug Speicher, um PNG-Datei zu laden" + #~ msgid "" #~ "Insufficient memory to store a %ld by %ld image; try exiting some " #~ "applications to reduce memory usage" #~ msgstr "" #~ "Nicht genug Speicher, um ein %ldx%ld-Bild zu speichern; versuchen Sie, " #~ "einige Anwendungen zu beenden, um den Speicherverbrauch zu reduzieren" + #~ msgid "Fatal error reading PNG image file" #~ msgstr "Schwerer Fehler beim Lesen einer PNG-Bilddatei" + #~ msgid "Fatal error reading PNG image file: %s" #~ msgstr "Schwerer Fehler beim Lesen einer PNG-Bilddatei: %s" + #~ msgid "" #~ "Keys for PNG text chunks must have at least 1 and at most 79 characters." #~ msgstr "" #~ "Schlüssel für PNG-Text-Chunks müssen mindestens eines und dürfen maximal " #~ "79 Zeichen lang sein." + #~ msgid "Keys for PNG text chunks must be ASCII characters." #~ msgstr "Schlüssel für PNG-Text-Chunks müssen ASCII-Zeichen sein." + #~ msgid "Color profile has invalid length %d." #~ msgstr "Farbprofil hat die ungültige Länge %d." + #~ msgid "" #~ "PNG compression level must be a value between 0 and 9; value '%s' could " #~ "not be parsed." #~ msgstr "" #~ "Die PNG-Kompressionsstufe muss ein Wert zwischen 0 und 9 sein; Wert »%s« " #~ "konnte nicht verarbeitet werden." + #~ msgid "" #~ "PNG compression level must be a value between 0 and 9; value '%d' is not " #~ "allowed." #~ msgstr "" #~ "Die PNG-Kompressionsstufe muss ein Wert zwischen 0 und 9 sein; Wert »%d« " #~ "ist nicht erlaubt." + #~ msgid "" #~ "Value for PNG text chunk %s cannot be converted to ISO-8859-1 encoding." #~ msgstr "" #~ "Wert für PNG-Text-Chunk %s konnte nicht in ISO-8859-1-Zeichenkodierung " #~ "umgewandelt werden." + #~ msgid "The PNG image format" #~ msgstr "Das PNG-Bildformat" + #~ msgid "PNM loader expected to find an integer, but didn't" #~ msgstr "PNM-Lader erwartete eine Ganzzahl und fand keine" + #~ msgid "PNM file has an incorrect initial byte" #~ msgstr "Startbyte der PNM-Datei ungültig" + #~ msgid "PNM file is not in a recognized PNM subformat" #~ msgstr "PNM-Datei liegt nicht in einem unterstützten PNM-Unterformat vor" + #~ msgid "PNM file has an image width of 0" #~ msgstr "Bildbreite der PNM-Datei beträgt 0" + #~ msgid "PNM file has an image height of 0" #~ msgstr "Bildhöhe der PNM-Datei beträgt 0" + #~ msgid "Maximum color value in PNM file is 0" #~ msgstr "Maximaler Farbwert in der PNM-Datei ist 0" + #~ msgid "Maximum color value in PNM file is too large" #~ msgstr "Maximaler Farbwert in der PNM-Datei zu groß" + #~ msgid "Raw PNM image type is invalid" #~ msgstr "Roher PNM-Bildtyp ist ungültig" + #~ msgid "PNM image loader does not support this PNM subformat" #~ msgstr "PNM-Bildlader unterstützt dieses PNM-Unterformat nicht" + #~ msgid "Raw PNM formats require exactly one whitespace before sample data" #~ msgstr "" #~ "Rohe PNM-Formate verlangen genau einen Leerraum vor den Sample-Daten" + #~ msgid "Cannot allocate memory for loading PNM image" #~ msgstr "" #~ "Speicher zum Laden eines PNM-Bildes konnte nicht bereitgestellt werden" + #~ msgid "Insufficient memory to load PNM context struct" #~ msgstr "Nicht genug Speicher, um PNM-Kontextstruktur zu laden" + #~ msgid "Unexpected end of PNM image data" #~ msgstr "Unerwartetes Ende der PNM-Bilddaten" + #~ msgid "Insufficient memory to load PNM file" #~ msgstr "Nicht genug Speicher, um PNM-Datei zu laden" + #~ msgid "The PNM/PBM/PGM/PPM image format family" #~ msgstr "Die PNM/PBM/PGM/PPM-Bildformat-Familie" + #~ msgid "Input file descriptor is NULL." #~ msgstr "Deskriptor der Eingabedatei ist NULL." + #~ msgid "Failed to read QTIF header" #~ msgstr "QTIF-Header konnte nicht gelesen werden" + #~ msgid "QTIF atom size too large (%d bytes)" #~ msgstr "QTIF-Elemente sind zu groß (%d Bytes)" + #~ msgid "Failed to allocate %d bytes for file read buffer" #~ msgstr "Anforderung von %d Bytes für den Bildlesepuffer ist fehlgeschlagen" + #~ msgid "File error when reading QTIF atom: %s" #~ msgstr "Fehler beim Lesen des QTIF-Elements: %s" + #~ msgid "Failed to skip the next %d bytes with seek()." #~ msgstr "Überspringen der nächsten %d Bytes mit seek() ist fehlgeschlagen." + #~ msgid "Failed to allocate QTIF context structure." #~ msgstr "Zuweisen der QTIF-Kontextstruktur ist fehlgeschlagen." + #~ msgid "Failed to create GdkPixbufLoader object." #~ msgstr "GdkPixbufLoader-Objekt konnte nicht erstellt werden" + #~ msgid "Failed to find an image data atom." #~ msgstr "Bilddatenelement konnte nicht gefunden werden." + #~ msgid "The QTIF image format" #~ msgstr "Das QTIF-Bildformat" + #~ msgid "RAS image has bogus header data" #~ msgstr "Die Vorspanndaten des RAS-Bildes sind ungültig" + #~ msgid "RAS image has unknown type" #~ msgstr "Typ des RAS-Bilds unbekannt" + #~ msgid "unsupported RAS image variation" #~ msgstr "Nicht unterstützte RAS-Bildvariation" + #~ msgid "Not enough memory to load RAS image" #~ msgstr "Nicht genug Speicher, um das RAS-Bild zu laden" + #~ msgid "The Sun raster image format" #~ msgstr "Das Bildformat »Sun Raster Image«" + #~ msgid "Cannot allocate memory for IOBuffer struct" #~ msgstr "" #~ "Speicher für Struktur des E/A-Puffers konnte nicht bereitgestellt werden" + #~ msgid "Cannot allocate memory for IOBuffer data" #~ msgstr "" #~ "Speicher für Daten des E/A-Puffers konnte nicht bereitgestellt werden" + #~ msgid "Cannot realloc IOBuffer data" #~ msgstr "" #~ "Datenbereich des E/A-Puffers konnte nicht mit realloc() geändert werden" + #~ msgid "Cannot allocate temporary IOBuffer data" #~ msgstr "" #~ "Speicher für temporäre Daten des E/A-Puffers konnte nicht bereitgestellt " #~ "werden" + #~ msgid "Cannot allocate new pixbuf" #~ msgstr "Neuer Pixbuf konnte nicht angelegt werden" + #~ msgid "Image is corrupted or truncated" #~ msgstr "Bild wurde verstümmelt oder ist unvollständig." + #~ msgid "Cannot allocate colormap structure" #~ msgstr "Farbtabellenstruktur konnte nicht angelegt werden" + #~ msgid "Cannot allocate colormap entries" #~ msgstr "Farbtabelleneinträge konnten nicht bereitgestellt werden" + #~ msgid "Unexpected bitdepth for colormap entries" #~ msgstr "Unerwartete Farbtiefe der Farbtabellen-Einträge" + #~ msgid "Cannot allocate TGA header memory" #~ msgstr "TGA-Vorspannspeicher konnte nicht bereitgestellt werden" + #~ msgid "TGA image has invalid dimensions" #~ msgstr "TGA-Bild hat ungültige Abmessungen" + #~ msgid "TGA image type not supported" #~ msgstr "TGA-Bildtyp nicht unterstützt" + #~ msgid "Cannot allocate memory for TGA context struct" #~ msgstr "Speicher für TGA-Kontextstruktur konnte nicht bereitgestellt werden" + #~ msgid "Excess data in file" #~ msgstr "Überschüssige Daten in der Datei" + #~ msgid "The Targa image format" #~ msgstr "Das Targa-Bildformat" + #~ msgid "Could not get image width (bad TIFF file)" #~ msgstr "Bildbreite konnte nicht ermittelt werden (ungültige TIFF-Datei)" + #~ msgid "Could not get image height (bad TIFF file)" #~ msgstr "Bildhöhe konnte nicht ermittelt werden (ungültige TIFF-Datei)" + #~ msgid "Width or height of TIFF image is zero" #~ msgstr "Breite oder Höhe des TIFF-Bildes beträgt null" + #~ msgid "Dimensions of TIFF image too large" #~ msgstr "Abmessungen des TIFF-Bilds zu groß" + #~ msgid "Insufficient memory to open TIFF file" #~ msgstr "Nicht genug Speicher, um TIFF-Datei zu öffnen" + #~ msgid "Failed to load RGB data from TIFF file" #~ msgstr "RGB-Daten konnten nicht aus TIFF-Datei geladen werden" + #~ msgid "Failed to open TIFF image" #~ msgstr "TIFF-Bild konnte nicht geöffnet werden" + #~ msgid "TIFFClose operation failed" #~ msgstr "Aktion »TIFFClose« gescheitert" + #~ msgid "Failed to load TIFF image" #~ msgstr "TIFF-Bild konnte nicht geladen werden" + #~ msgid "Failed to save TIFF image" #~ msgstr "TIFF-Bild konnte nicht gespeichert werden" + #~ msgid "TIFF compression doesn't refer to a valid codec." #~ msgstr "TIFF-Kompression bezieht sich nicht auf einen gültigen Codec." + #~ msgid "Failed to write TIFF data" #~ msgstr "TIFF-Daten konnten nicht gespeichert werden" + #~ msgid "Couldn't write to TIFF file" #~ msgstr "TIFF-Datei konnte nicht geschrieben werden" + #~ msgid "The TIFF image format" #~ msgstr "Das TIFF-Bildformat" + #~ msgid "Image has zero width" #~ msgstr "Bild hat Breite null" + #~ msgid "Image has zero height" #~ msgstr "Bild hat Höhe null" + #~ msgid "Not enough memory to load image" #~ msgstr "Nicht genug Speicher, um Bild zu laden" + #~ msgid "Couldn't save the rest" #~ msgstr "Der Rest konnte nicht gespeichert werden" + #~ msgid "The WBMP image format" #~ msgstr "Das WBMP-Bildformat" + #~ msgid "Invalid XBM file" #~ msgstr "Ungültige XBM-Datei" + #~ msgid "Insufficient memory to load XBM image file" #~ msgstr "Nicht genug Speicher, um XBM-Bilddatei zu laden" + #~ msgid "Failed to write to temporary file when loading XBM image" #~ msgstr "" #~ "Beim Laden eines XBM-Bildes konnte nicht in eine temporäre Datei " #~ "geschrieben werden" + #~ msgid "The XBM image format" #~ msgstr "Das XBM-Bildformat" + #~ msgid "No XPM header found" #~ msgstr "Keine XPM-Vorspannzeilen gefunden" + #~ msgid "Invalid XPM header" #~ msgstr "Ungültige XBM-Dateikopf" + #~ msgid "XPM file has image width <= 0" #~ msgstr "Breite der XPM-Bilddatei <= 0" + #~ msgid "XPM file has image height <= 0" #~ msgstr "Höhe der XPM-Bilddatei <= 0" + #~ msgid "XPM has invalid number of chars per pixel" #~ msgstr "XPM hat eine ungültige Anzahl von Zeichen pro Pixel" + #~ msgid "XPM file has invalid number of colors" #~ msgstr "Farbanzahl der XPM-Datei ungültig" + #~ msgid "Cannot allocate memory for loading XPM image" #~ msgstr "" #~ "Der zum Laden eines XPM-Bildes verwendete Speicher konnte nicht " #~ "zugewiesen werden" + #~ msgid "Cannot read XPM colormap" #~ msgstr "XPM-Farbtabelle konnte nicht gelesen werden" + #~ msgid "Failed to write to temporary file when loading XPM image" #~ msgstr "" #~ "Beim Laden eines XPM-Bildes konnte nicht in eine temporäre Datei " #~ "geschrieben werden" + #~ msgid "The XPM image format" #~ msgstr "Das XPM-Bildformat" + #~ msgid "The EMF image format" #~ msgstr "Das EMF-Bildformat" + #~ msgid "Could not allocate memory: %s" #~ msgstr "Speicher konnte nicht bereitgestellt werden: %s" + #~ msgid "Could not create stream: %s" #~ msgstr "Datenstrom konnte nicht angelegt werden: %s" + #~ msgid "Could not seek stream: %s" #~ msgstr "Im Datenstrom konnte nicht gesucht werden: %s" + #~ msgid "Could not read from stream: %s" #~ msgstr "Datenstrom konnte nicht gelesen werden: %s" + #~ msgid "Couldn't load bitmap" #~ msgstr "Bitmap konnte nicht geladen werden" + #~ msgid "Couldn't load metafile" #~ msgstr "Metadatei konnte nicht geladen werden" + #~ msgid "Unsupported image format for GDI+" #~ msgstr "Nicht unterstütztes Bildformat für GDI+" + #~ msgid "Couldn't save" #~ msgstr "Es konnte nicht gespeichert werden" + #~ msgid "The WMF image format" #~ msgstr "Das WMF-Bildformat" + #~ msgid "\"Deepness\" of the color." #~ msgstr "Die »Tiefe« der Farbe." + #~ msgid "Error printing" #~ msgstr "Fehler beim Drucken" + #~ msgid "Printer '%s' may not be connected." #~ msgstr "Der Drucker »%s« ist gegebenenfalls nicht angeschlossen." + #~ msgid "Folders" #~ msgstr "Ordner" + #~ msgid "Fol_ders" #~ msgstr "O_rdner" + #~ msgid "Folder unreadable: %s" #~ msgstr "Ordner nicht lesbar: %s" + #~ msgid "" #~ "The file \"%s\" resides on another machine (called %s) and may not be " #~ "available to this program.\n" @@ -5523,658 +5688,974 @@ msgstr "Mit Test-Drucke drucken" #~ "Die Datei »%s« liegt auf einer anderen Maschine (namens %s) und könnte " #~ "für dieses Programm nicht verfügbar sein.\n" #~ "Sind Sie sicher, dass Sie sie markieren wollen?" + #~ msgid "_New Folder" #~ msgstr "Ordner a_nlegen" + #~ msgid "De_lete File" #~ msgstr "Datei _löschen" + #~ msgid "_Rename File" #~ msgstr "Datei _umbenennen" + #~ msgid "" #~ "The folder name \"%s\" contains symbols that are not allowed in filenames" #~ msgstr "" #~ "Der Ordnername »%s« enthält Symbole, die in Dateinamen nicht erlaubt sind" + #~ msgid "New Folder" #~ msgstr "Ordner anlegen" + #~ msgid "_Folder name:" #~ msgstr "_Ordnername:" + #~ msgid "" #~ "The filename \"%s\" contains symbols that are not allowed in filenames" #~ msgstr "" #~ "Der Dateiname »%s« enthält Symbole, die in Dateinamen nicht erlaubt sind" + #~ msgid "Error deleting file '%s': %s" #~ msgstr "Fehler beim Löschen der Datei »%s«: %s" + #~ msgid "Really delete file \"%s\"?" #~ msgstr "Datei »%s« wirklich löschen?" + #~ msgid "Delete File" #~ msgstr "Datei löschen" + #~ msgid "Error renaming file to \"%s\": %s" #~ msgstr "Fehler beim Umbenennen der Datei in »%s«: %s" + #~ msgid "Error renaming file \"%s\": %s" #~ msgstr "Fehler beim Umbenennen der Datei »%s«: %s" + #~ msgid "Error renaming file \"%s\" to \"%s\": %s" #~ msgstr "Fehler beim Umbenennen der Datei »%s« in »%s«: %s" + #~ msgid "Rename File" #~ msgstr "Datei umbenennen" + #~ msgid "Rename file \"%s\" to:" #~ msgstr "Datei »%s« umbenennen in:" + #~ msgid "" #~ "The filename \"%s\" couldn't be converted to UTF-8. (try setting the " #~ "environment variable G_FILENAME_ENCODING): %s" #~ msgstr "" #~ "Der Dateiname »%s« konnte nicht in UTF-8 umgewandelt werden (versuchen " #~ "Sie, die Umgebungsvariable G_BROKEN_FILENAMES zu setzen): %s" + #~ msgid "Invalid UTF-8" #~ msgstr "Ungültiges UTF-8" + #~ msgid "Name too long" #~ msgstr "Name zu lang" + #~ msgid "Couldn't convert filename" #~ msgstr "Dateiname konnte nicht umgewandelt werden" + #~ msgid "Gamma" #~ msgstr "Gamma" + #~ msgid "_Gamma value" #~ msgstr "_Gamma-Wert" + #~ msgid "Input" #~ msgstr "Eingabe" + #~ msgid "No extended input devices" #~ msgstr "Keine erweiterten Eingabegeräte" + #~ msgid "_Device:" #~ msgstr "_Gerät:" + #~ msgid "Disabled" #~ msgstr "Deaktiviert" + #~ msgid "Screen" #~ msgstr "Bildschirm" + #~ msgid "Window" #~ msgstr "Fenster" + #~ msgid "_Mode:" #~ msgstr "_Modus: " + #~ msgid "Axes" #~ msgstr "Achsen" + #~ msgid "Keys" #~ msgstr "Tasten" + #~ msgid "_X:" #~ msgstr "_X:" + #~ msgid "_Y:" #~ msgstr "_Y:" + #~ msgid "_Pressure:" #~ msgstr "_Druck:" + #~ msgid "X _tilt:" #~ msgstr "X-_Neigun:g" + #~ msgid "Y t_ilt:" #~ msgstr "Y-Ne_igung:" + #~ msgid "_Wheel:" #~ msgstr "_Rad:" + #~ msgid "none" #~ msgstr "keine" + #~ msgid "(disabled)" #~ msgstr "(ausgeschaltet)" + #~ msgid "(unknown)" #~ msgstr "(unbekannt)" + # CHECK - _Löschen haben wir schon und ist unangebracht #~ msgid "Cl_ear" #~ msgstr "_Leeren" + #~ msgid "--- No Tip ---" #~ msgstr "--- Kein Tipp ---" + #~ msgid "(Empty)" #~ msgstr "(Leer)" + #~ msgid "_Search:" #~ msgstr "_Suchen:" + #~ msgid "Recently Used" #~ msgstr "Zuletzt verwendet" + #~ msgid "directfb arg" #~ msgstr "directfb arg" + #~ msgid "sdl|system" #~ msgstr "System" + #~ msgid "keyboard label|BackSpace" #~ msgstr "Löschen" + #~ msgid "keyboard label|Tab" #~ msgstr "Tabulator" + #~ msgid "keyboard label|Return" #~ msgstr "Eingabe" + #~ msgid "keyboard label|Pause" #~ msgstr "Pause" + #~ msgid "keyboard label|Scroll_Lock" #~ msgstr "Rollen" + #~ msgid "keyboard label|Sys_Req" #~ msgstr "Sys_Req" + #~ msgid "keyboard label|Escape" #~ msgstr "Esc" + #~ msgid "keyboard label|Multi_key" #~ msgstr "Multifunktionstaste" + #~ msgid "keyboard label|Home" #~ msgstr "Pos1" + #~ msgid "keyboard label|Left" #~ msgstr "Links" + #~ msgid "keyboard label|Up" #~ msgstr "Hoch" + #~ msgid "keyboard label|Right" #~ msgstr "Rechts" + #~ msgid "keyboard label|Down" #~ msgstr "Runter" + #~ msgid "keyboard label|Page_Up" #~ msgstr "Bild_Auf" + #~ msgid "keyboard label|Page_Down" #~ msgstr "Bild_Ab" + #~ msgid "keyboard label|End" #~ msgstr "Ende" + #~ msgid "keyboard label|Begin" #~ msgstr "Pos1" + #~ msgid "keyboard label|Print" #~ msgstr "Druck" + #~ msgid "keyboard label|Insert" #~ msgstr "Einfg" + #~ msgid "keyboard label|Num_Lock" #~ msgstr "Num_Lock" + #~ msgid "keyboard label|KP_Space" #~ msgstr "NB_Leertaste" + #~ msgid "keyboard label|KP_Tab" #~ msgstr "NB_Tabulator" + #~ msgid "keyboard label|KP_Enter" #~ msgstr "NB_Eingabe" + #~ msgid "keyboard label|KP_Home" #~ msgstr "NB_Pos1" + #~ msgid "keyboard label|KP_Left" #~ msgstr "NB_Links" + #~ msgid "keyboard label|KP_Up" #~ msgstr "NB_Hoch" + #~ msgid "keyboard label|KP_Right" #~ msgstr "NB_Rechts" + #~ msgid "keyboard label|KP_Down" #~ msgstr "NB_Runter" + #~ msgid "keyboard label|KP_Page_Up" #~ msgstr "NB_Bild_Auf" + #~ msgid "keyboard label|KP_Prior" #~ msgstr "NB_Zurück" + #~ msgid "keyboard label|KP_Next" #~ msgstr "NB_Vor" + #~ msgid "keyboard label|KP_End" #~ msgstr "NB_Ende" + #~ msgid "keyboard label|KP_Begin" #~ msgstr "NB_Anfang" + #~ msgid "keyboard label|KP_Insert" #~ msgstr "NB_Einfügen" + #~ msgid "keyboard label|KP_Delete" #~ msgstr "NB_Entfernen" + #~ msgid "keyboard label|Delete" #~ msgstr "Entf" + #~ msgid "keyboard label|Shift" #~ msgstr "Umschalt" + #~ msgid "keyboard label|Ctrl" #~ msgstr "Strg" + #~ msgid "keyboard label|Alt" #~ msgstr "Alt" + #~ msgid "keyboard label|Super" #~ msgstr "Super" + #~ msgid "keyboard label|Hyper" #~ msgstr "Hyper" + #~ msgid "keyboard label|Meta" #~ msgstr "Meta" + #~ msgid "keyboard label|Space" #~ msgstr "Leertaste" + #~ msgid "keyboard label|Backslash" #~ msgstr "Backslash" + #~ msgid "year measurement template|2000" #~ msgstr "2000" + #~ msgid "calendar:day:digits|%d" #~ msgstr "%d" + #~ msgid "calendar:week:digits|%d" #~ msgstr "%d" + #~ msgid "calendar year format|%Y" #~ msgstr "%Y" + #~ msgid "Accelerator|Disabled" #~ msgstr "Deaktiviert" + #~ msgid "progress bar label|%d %%" #~ msgstr "%d %%" + #~ msgid "input method menu|System" #~ msgstr "System" + #~ msgid "print operation status|Initial state" #~ msgstr "Ausgangszustand" + #~ msgid "print operation status|Preparing to print" #~ msgstr "Drucken wird vorbereitet" + #~ msgid "print operation status|Generating data" #~ msgstr "Daten werden erstellt" + #~ msgid "print operation status|Sending data" #~ msgstr "Daten werden gesendet" + #~ msgid "print operation status|Waiting" #~ msgstr "Warten" + #~ msgid "print operation status|Blocking on issue" #~ msgstr "Blockiert wegen Problem" + #~ msgid "print operation status|Printing" #~ msgstr "Drucken" + #~ msgid "print operation status|Finished" #~ msgstr "Abgeschlossen" + #~ msgid "recent menu label|_%d. %s" #~ msgstr "_%d. %s" + #~ msgid "recent menu label|%d. %s" #~ msgstr "%d. %s" + #~ msgid "Navigation|_Bottom" #~ msgstr "_Unten" + #~ msgid "Navigation|_First" #~ msgstr "_Erster" + #~ msgid "Navigation|_Last" #~ msgstr "_Letzter" + #~ msgid "Navigation|_Top" #~ msgstr "_Oben" + #~ msgid "Navigation|_Back" #~ msgstr "_Zurück" + #~ msgid "Navigation|_Down" #~ msgstr "_Runter" + #~ msgid "Navigation|_Forward" #~ msgstr "_Vor" + #~ msgid "Navigation|_Up" #~ msgstr "_Hoch" + #~ msgid "Justify|_Center" #~ msgstr "_Zentrieren" + #~ msgid "Justify|_Fill" #~ msgstr "_Blocksatz" + #~ msgid "Justify|_Left" #~ msgstr "_Links" + #~ msgid "Justify|_Right" #~ msgstr "_Rechts" + # CHECK #~ msgid "Media|_Next" #~ msgstr "_Nächster" + #~ msgid "Media|P_ause" #~ msgstr "P_ause" + #~ msgid "Media|_Play" #~ msgstr "_Wiedergabe" + #~ msgid "Media|_Stop" #~ msgstr "_Stopp" + #~ msgid "volume percentage|%d %%" #~ msgstr "%d %%" + #~ msgid "paper size|asme_f" #~ msgstr "asme_f" + #~ msgid "paper size|A0x2" #~ msgstr "1/2 A0" + #~ msgid "paper size|A0" #~ msgstr "A0" + #~ msgid "paper size|A0x3" #~ msgstr "1/3 A0" + #~ msgid "paper size|A1" #~ msgstr "A1" + #~ msgid "paper size|A10" #~ msgstr "A10" + #~ msgid "paper size|A1x3" #~ msgstr "1/3 A1" + #~ msgid "paper size|A1x4" #~ msgstr "1/4 A1" + #~ msgid "paper size|A2" #~ msgstr "A2" + #~ msgid "paper size|A2x3" #~ msgstr "1/3 A2" + #~ msgid "paper size|A2x4" #~ msgstr "1/4 A2" + #~ msgid "paper size|A2x5" #~ msgstr "1/5 A2" + #~ msgid "paper size|A3" #~ msgstr "A3" + #~ msgid "paper size|A3 Extra" #~ msgstr "A3 Extra" + #~ msgid "paper size|A3x3" #~ msgstr "1/3 A3" + #~ msgid "paper size|A3x4" #~ msgstr "1/4 A3" + #~ msgid "paper size|A3x5" #~ msgstr "1/5 A3" + #~ msgid "paper size|A3x6" #~ msgstr "1/6 A3" + #~ msgid "paper size|A3x7" #~ msgstr "1/7 A3" + #~ msgid "paper size|A4" #~ msgstr "A4" + #~ msgid "paper size|A4 Extra" #~ msgstr "A4 Extra" + #~ msgid "paper size|A4 Tab" #~ msgstr "A4 Tab" + #~ msgid "paper size|A4x3" #~ msgstr "1/3 A4" + #~ msgid "paper size|A4x4" #~ msgstr "1/4 A4" + #~ msgid "paper size|A4x5" #~ msgstr "1/5 A4" + #~ msgid "paper size|A4x6" #~ msgstr "1/6 A4" + #~ msgid "paper size|A4x7" #~ msgstr "1/7 A4" + #~ msgid "paper size|A4x8" #~ msgstr "!78 A4" + #~ msgid "paper size|A4x9" #~ msgstr "1/9 A4" + #~ msgid "paper size|A5" #~ msgstr "A5" + #~ msgid "paper size|A5 Extra" #~ msgstr "A5 Extra" + #~ msgid "paper size|A6" #~ msgstr "A6" + #~ msgid "paper size|A7" #~ msgstr "A7" + #~ msgid "paper size|A8" #~ msgstr "A8" + #~ msgid "paper size|A9" #~ msgstr "A9" + #~ msgid "paper size|B0" #~ msgstr "B0" + #~ msgid "paper size|B1" #~ msgstr "B1" + #~ msgid "paper size|B10" #~ msgstr "B10" + #~ msgid "paper size|B2" #~ msgstr "B2" + #~ msgid "paper size|B3" #~ msgstr "B3" + #~ msgid "paper size|B4" #~ msgstr "B4" + #~ msgid "paper size|B5" #~ msgstr "B5" + #~ msgid "paper size|B5 Extra" #~ msgstr "B5 Extra" + #~ msgid "paper size|B6" #~ msgstr "B6" + #~ msgid "paper size|B6/C4" #~ msgstr "B6/C4" + #~ msgid "paper size|B7" #~ msgstr "B7" + #~ msgid "paper size|B8" #~ msgstr "B8" + #~ msgid "paper size|B9" #~ msgstr "B9" + #~ msgid "paper size|C0" #~ msgstr "C0" + #~ msgid "paper size|C1" #~ msgstr "C1" + #~ msgid "paper size|C10" #~ msgstr "C10" + #~ msgid "paper size|C2" #~ msgstr "C2" + #~ msgid "paper size|C3" #~ msgstr "C3" + #~ msgid "paper size|C4" #~ msgstr "C4" + #~ msgid "paper size|C5" #~ msgstr "C5" + #~ msgid "paper size|C6" #~ msgstr "C6" + #~ msgid "paper size|C6/C5" #~ msgstr "C6/C5" + #~ msgid "paper size|C7" #~ msgstr "C7" + #~ msgid "paper size|C7/C6" #~ msgstr "C7/C6" + #~ msgid "paper size|C8" #~ msgstr "C8" + #~ msgid "paper size|C9" #~ msgstr "C9" + #~ msgid "paper size|DL Envelope" #~ msgstr "DL-Umschlag" + #~ msgid "paper size|RA0" #~ msgstr "RA0" + #~ msgid "paper size|RA1" #~ msgstr "RA1" + #~ msgid "paper size|RA2" #~ msgstr "RA2" + #~ msgid "paper size|SRA0" #~ msgstr "SRA0" + #~ msgid "paper size|SRA1" #~ msgstr "SRA1" + #~ msgid "paper size|SRA2" #~ msgstr "SRA2" + #~ msgid "paper size|JB0" #~ msgstr "JB0" + #~ msgid "paper size|JB1" #~ msgstr "JB1" + #~ msgid "paper size|JB10" #~ msgstr "JB10" + #~ msgid "paper size|JB2" #~ msgstr "JB2" + #~ msgid "paper size|JB3" #~ msgstr "JB3" + #~ msgid "paper size|JB4" #~ msgstr "JB4" + #~ msgid "paper size|JB5" #~ msgstr "JB5" + #~ msgid "paper size|JB6" #~ msgstr "JB6" + #~ msgid "paper size|JB7" #~ msgstr "JB7" + #~ msgid "paper size|JB8" #~ msgstr "JB8" + #~ msgid "paper size|JB9" #~ msgstr "JB9" + #~ msgid "paper size|jis exec" #~ msgstr "jis exec" + #~ msgid "paper size|Choukei 2 Envelope" #~ msgstr "Choukei 2-Umschlag" + #~ msgid "paper size|Choukei 3 Envelope" #~ msgstr "Choukei 3-Umschlag" + #~ msgid "paper size|Choukei 4 Envelope" #~ msgstr "Choukei 4-Umschlag" + #~ msgid "paper size|hagaki (postcard)" #~ msgstr "hagaki (Postkarte)" + #~ msgid "paper size|kahu Envelope" #~ msgstr "kahu-Umschlag" + #~ msgid "paper size|kaku2 Envelope" #~ msgstr "kaku2-Umschlag" + #~ msgid "paper size|oufuku (reply postcard)" #~ msgstr "oufuku (Anwortpostkarte)" + #~ msgid "paper size|you4 Envelope" #~ msgstr "you4-Umschlag" + #~ msgid "paper size|10x11" #~ msgstr "10x11" + #~ msgid "paper size|10x13" #~ msgstr "10x13" + #~ msgid "paper size|10x14" #~ msgstr "10x14" + #~ msgid "paper size|10x15" #~ msgstr "10x15" + #~ msgid "paper size|11x12" #~ msgstr "11x12" + #~ msgid "paper size|11x15" #~ msgstr "11x15" + #~ msgid "paper size|12x19" #~ msgstr "12x19" + #~ msgid "paper size|5x7" #~ msgstr "5x7" + #~ msgid "paper size|6x9 Envelope" #~ msgstr "6x9-Umschlag" + #~ msgid "paper size|7x9 Envelope" #~ msgstr "7x9-Umschlag" + #~ msgid "paper size|9x11 Envelope" #~ msgstr "9x11-Umschlag" + #~ msgid "paper size|a2 Envelope" #~ msgstr "a2-Umschlag" + #~ msgid "paper size|Arch A" #~ msgstr "Arch A" + #~ msgid "paper size|Arch B" #~ msgstr "Arch B" + #~ msgid "paper size|Arch C" #~ msgstr "Arch C" + #~ msgid "paper size|Arch D" #~ msgstr "Arch D" + #~ msgid "paper size|Arch E" #~ msgstr "Arch E" + #~ msgid "paper size|b-plus" #~ msgstr "b-plus" + #~ msgid "paper size|c" #~ msgstr "c" + #~ msgid "paper size|c5 Envelope" #~ msgstr "c5-Umschlag" + #~ msgid "paper size|d" #~ msgstr "d" + #~ msgid "paper size|e" #~ msgstr "e" + #~ msgid "paper size|edp" #~ msgstr "edp" + #~ msgid "paper size|European edp" #~ msgstr "Europäisches edp" + #~ msgid "paper size|Executive" #~ msgstr "Executive" + #~ msgid "paper size|f" #~ msgstr "f" + #~ msgid "paper size|FanFold European" #~ msgstr "FanFold Europäisch" + #~ msgid "paper size|FanFold US" #~ msgstr "FanFold US" + #~ msgid "paper size|FanFold German Legal" #~ msgstr "FanFold Deutsch-Legal" + #~ msgid "paper size|Government Legal" #~ msgstr "Government-Legal" + #~ msgid "paper size|Government Letter" #~ msgstr "Government-Letter" + #~ msgid "paper size|Index 3x5" #~ msgstr "Index 3x5" + #~ msgid "paper size|Index 4x6 (postcard)" #~ msgstr "Index 4x6 (Postkarte)" + #~ msgid "paper size|Index 4x6 ext" #~ msgstr "Index 4x6 ext" + #~ msgid "paper size|Index 5x8" #~ msgstr "Index 5x8" + # CHECK #~ msgid "paper size|Invoice" #~ msgstr "Rechnung" + #~ msgid "paper size|Tabloid" #~ msgstr "Tabloid" + #~ msgid "paper size|US Legal" #~ msgstr "US-Legal" + #~ msgid "paper size|US Legal Extra" #~ msgstr "US-Legal Extra" + #~ msgid "paper size|US Letter" #~ msgstr "US-Letter" + #~ msgid "paper size|US Letter Extra" #~ msgstr "US-Letter Extra" + #~ msgid "paper size|US Letter Plus" #~ msgstr "US-Letter Plus" + #~ msgid "paper size|Monarch Envelope" #~ msgstr "Monarch-Umschlag" + #~ msgid "paper size|#10 Envelope" #~ msgstr "#10-Umschlag" + #~ msgid "paper size|#11 Envelope" #~ msgstr "#11-Umschlag" + #~ msgid "paper size|#12 Envelope" #~ msgstr "#12-Umschlag" + #~ msgid "paper size|#14 Envelope" #~ msgstr "#14-Umschlag" + #~ msgid "paper size|#9 Envelope" #~ msgstr "#9-Umschlag" + #~ msgid "paper size|Personal Envelope" #~ msgstr "Personal-Umschlag" + #~ msgid "paper size|Quarto" #~ msgstr "Quarto" + #~ msgid "paper size|Super A" #~ msgstr "Super A" + #~ msgid "paper size|Super B" #~ msgstr "Super B" + #~ msgid "paper size|Wide Format" #~ msgstr "Weites Format" + #~ msgid "paper size|Dai-pa-kai" #~ msgstr "Dai-pa-kai" + #~ msgid "paper size|Folio" #~ msgstr "Folio" + #~ msgid "paper size|Folio sp" #~ msgstr "Folio sp" + #~ msgid "paper size|Invite Envelope" #~ msgstr "Invite-Umschlag" + #~ msgid "paper size|Italian Envelope" #~ msgstr "Italien-Umschlag" + #~ msgid "paper size|juuro-ku-kai" #~ msgstr "juuro-ku-kai" + #~ msgid "paper size|pa-kai" #~ msgstr "pa-kai" + #~ msgid "paper size|Postfix Envelope" #~ msgstr "Postfix-Umschlag" + #~ msgid "paper size|Small Photo" #~ msgstr "Kleines Foto" + #~ msgid "paper size|prc1 Envelope" #~ msgstr "prc1-Umschlag" + #~ msgid "paper size|prc10 Envelope" #~ msgstr "prc10-Umschlag" + #~ msgid "paper size|prc 16k" #~ msgstr "prc 16k" + #~ msgid "paper size|prc2 Envelope" #~ msgstr "prc2-Umschlag" + #~ msgid "paper size|prc3 Envelope" #~ msgstr "prc3-Umschlag" + #~ msgid "paper size|prc 32k" #~ msgstr "prc 32k" + #~ msgid "paper size|prc4 Envelope" #~ msgstr "prc4-Umschlag" + #~ msgid "paper size|prc5 Envelope" #~ msgstr "prc5-Umschlag" + #~ msgid "paper size|prc6 Envelope" #~ msgstr "prc6-Umschlag" + #~ msgid "paper size|prc7 Envelope" #~ msgstr "prc7-Umschlag" + #~ msgid "paper size|prc8 Envelope" #~ msgstr "prc8-Umschlag" + #~ msgid "paper size|ROC 16k" #~ msgstr "ROC 16k" + #~ msgid "paper size|ROC 8k" #~ msgstr "ROC 8k" + #~ msgid "Couldn't create pixbuf" #~ msgstr "Pixbuf konnte nicht angelegt werden" + #~ msgid "%.1f KB" #~ msgstr "%.1f K" + #~ msgid "%.1f MB" #~ msgstr "%.1f MB" + #~ msgid "%.1f GB" #~ msgstr "%.1f GB" + #~ msgid "URI" #~ msgstr "URI" + #~ msgid "The URI bound to this button" #~ msgstr "Der an diesen Knopf gebundene URI" + #~ msgid "Arrow spacing" #~ msgstr "Pfeilabstand" + #~ msgid "Scroll arrow spacing" #~ msgstr "Abstand der Pfeile zum Rollen" + #~ msgid "Group" #~ msgstr "Gruppe" + #~ msgid "The radio tool button whose group this button belongs to." #~ msgstr "Der Radio-Werkzeugknopf, zu dessen Gruppe dieser Knopf gehört." + #~ msgid "Invalid filename: %s" #~ msgstr "Ungültiger Dateiname: %s" + #~ msgid "" #~ "Could not add a bookmark for '%s' because it is an invalid path name." #~ msgstr "" #~ "Es konnte kein Lesezeichen für »%s« hinzugefügt werden, da dies ein " #~ "ungültiger Pfadname ist." + #~ msgid "Could not select file '%s' because it is an invalid path name." #~ msgstr "" #~ "Datei »%s« konnte nicht ausgewählt werden, da dies ein ungültiger " #~ "Pfadname ist." + #~ msgid "%d byte" #~ msgid_plural "%d bytes" #~ msgstr[0] "%d Byte" #~ msgstr[1] "%d Bytes" + #~ msgid "Could not get a stock icon for %s\n" #~ msgstr "Aus dem Repertoire konnte kein Symbol für »%s« aufgerufen werden\n" + #~ msgid "Error getting information for '%s': %s" #~ msgstr "Fehler beim Abrufen der Informationen zu »%s«: %s" + #~ msgid "This file system does not support mounting" #~ msgstr "Dieses Dateisystem unterstützt das Einbinden nicht" + #~ msgid "" #~ "The name \"%s\" is not valid because it contains the character \"%s\". " #~ "Please use a different name." #~ msgstr "" #~ "Der Name »%s« ist ungültig, da er das Zeichen »%s« enthält. Bitte " #~ "verwenden Sie einen anderen Namen." + #~ msgid "Bookmark saving failed: %s" #~ msgstr "Speichern des Lesezeichens gescheitert: %s" + #~ msgid "'%s' already exists in the bookmarks list" #~ msgstr "»%s« existiert bereits in der Lesezeichenliste" + #~ msgid "'%s' does not exist in the bookmarks list" #~ msgstr "»%s« existiert noch nicht in der Lesezeichenliste" + #~ msgid "Path is not a folder: '%s'" #~ msgstr "Pfad ist kein Ordner: »%s«" + #~ msgid "Network Drive (%s)" #~ msgstr "Netzwerklaufwerk (%s)" + #~ msgid "Unknown attribute '%s' on line %d char %d" #~ msgstr "Unbekanntes Attribut »%s« in Zeile %d, Zeichen %d" + #~ msgid "Today at %H:%M" #~ msgstr "Heute um %H:%M" + #~ msgid "Default" #~ msgstr "Vorgabe" + #~ msgid "_All" #~ msgstr "_Alle" + #~ msgid "Today" #~ msgstr "Heute" + #, fuzzy #~ msgid "Location:" #~ msgstr "_Ort:" From 76670734f4330acc28c3c1d885ef944e85beb36e Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 20 Feb 2013 02:42:50 +0100 Subject: [PATCH 155/208] a11y: Only emit expandable/expanded for expander column We don't want to emit state changes for all the cells in a row, just for the cell in the expander column. It's the only one that reports EXPANDED or EXPANDABLE states, after all. Also, contains refactoring of the affected functions for all the special cases. https://bugzilla.gnome.org/show_bug.cgi?id=694059 --- gtk/a11y/gtktreeviewaccessible.c | 95 +++++++++++++++++--------------- 1 file changed, 52 insertions(+), 43 deletions(-) diff --git a/gtk/a11y/gtktreeviewaccessible.c b/gtk/a11y/gtktreeviewaccessible.c index a25fba5d04..09bb72fde7 100644 --- a/gtk/a11y/gtktreeviewaccessible.c +++ b/gtk/a11y/gtktreeviewaccessible.c @@ -1896,6 +1896,7 @@ _gtk_tree_view_accessible_add_state (GtkTreeView *treeview, GtkCellRendererState state) { GtkTreeViewAccessible *accessible; + GtkTreeViewColumn *single_column; AtkObject *obj; guint i; @@ -1907,36 +1908,38 @@ _gtk_tree_view_accessible_add_state (GtkTreeView *treeview, if (state == GTK_CELL_RENDERER_FOCUSED) { - GtkTreeViewColumn *focus_column; - - focus_column = get_effective_focus_column (treeview, _gtk_tree_view_get_focus_column (treeview)); - - if (focus_column) - { - GtkCellAccessible *cell; - - cell = peek_cell (accessible, tree, node, focus_column); - if (cell != NULL) - _gtk_cell_accessible_state_changed (cell, 0, state); - else - cell = create_cell (treeview, accessible, tree, node, focus_column); - - g_signal_emit_by_name (accessible, "active-descendant-changed", cell); - } - - return; + single_column = get_effective_focus_column (treeview, _gtk_tree_view_get_focus_column (treeview)); } + else if (state == GTK_CELL_RENDERER_EXPANDED || + state == GTK_CELL_RENDERER_EXPANDABLE) + { + single_column = gtk_tree_view_get_expander_column (treeview); + } + else + single_column = NULL; - for (i = 0; i < gtk_tree_view_get_n_columns (treeview); i++) + if (single_column) { GtkCellAccessible *cell = peek_cell (accessible, tree, node, - gtk_tree_view_get_column (treeview, i)); + single_column); - if (cell == NULL) - continue; + if (cell != NULL) + _gtk_cell_accessible_state_changed (cell, state, 0); + } + else + { + for (i = 0; i < gtk_tree_view_get_n_columns (treeview); i++) + { + GtkCellAccessible *cell = peek_cell (accessible, + tree, node, + gtk_tree_view_get_column (treeview, i)); - _gtk_cell_accessible_state_changed (cell, state, 0); + if (cell == NULL) + continue; + + _gtk_cell_accessible_state_changed (cell, state, 0); + } } if (state == GTK_CELL_RENDERER_SELECTED) @@ -1950,6 +1953,7 @@ _gtk_tree_view_accessible_remove_state (GtkTreeView *treeview, GtkCellRendererState state) { GtkTreeViewAccessible *accessible; + GtkTreeViewColumn *single_column; AtkObject *obj; guint i; @@ -1961,33 +1965,38 @@ _gtk_tree_view_accessible_remove_state (GtkTreeView *treeview, if (state == GTK_CELL_RENDERER_FOCUSED) { - GtkTreeViewColumn *focus_column; - - focus_column = get_effective_focus_column (treeview, _gtk_tree_view_get_focus_column (treeview)); - - if (focus_column) - { - GtkCellAccessible *cell = peek_cell (accessible, - tree, node, - focus_column); - - if (cell != NULL) - _gtk_cell_accessible_state_changed (cell, 0, state); - } - - return; + single_column = get_effective_focus_column (treeview, _gtk_tree_view_get_focus_column (treeview)); } + else if (state == GTK_CELL_RENDERER_EXPANDED || + state == GTK_CELL_RENDERER_EXPANDABLE) + { + single_column = gtk_tree_view_get_expander_column (treeview); + } + else + single_column = NULL; - for (i = 0; i < gtk_tree_view_get_n_columns (treeview); i++) + if (single_column) { GtkCellAccessible *cell = peek_cell (accessible, tree, node, - gtk_tree_view_get_column (treeview, i)); + single_column); - if (cell == NULL) - continue; + if (cell != NULL) + _gtk_cell_accessible_state_changed (cell, 0, state); + } + else + { + for (i = 0; i < gtk_tree_view_get_n_columns (treeview); i++) + { + GtkCellAccessible *cell = peek_cell (accessible, + tree, node, + gtk_tree_view_get_column (treeview, i)); - _gtk_cell_accessible_state_changed (cell, 0, state); + if (cell == NULL) + continue; + + _gtk_cell_accessible_state_changed (cell, 0, state); + } } if (state == GTK_CELL_RENDERER_SELECTED) From 0f67bd7cfe1066403fb7e5acf209d7b24d170b25 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Wed, 20 Feb 2013 18:17:14 +0900 Subject: [PATCH 156/208] GtkUIManager Buildable implementation: Fixing leaked reference count Committing this on behalf of Milan Crha, bug: 694162 --- gtk/gtkuimanager.c | 1 - 1 file changed, 1 deletion(-) diff --git a/gtk/gtkuimanager.c b/gtk/gtkuimanager.c index 9d93046bcd..75189aac3e 100644 --- a/gtk/gtkuimanager.c +++ b/gtk/gtkuimanager.c @@ -714,7 +714,6 @@ gtk_ui_manager_buildable_add_child (GtkBuildable *buildable, pos = g_list_length (manager->private_data->action_groups); - g_object_ref (child); gtk_ui_manager_insert_action_group (manager, GTK_ACTION_GROUP (child), pos); From 039cc929ad6e65c9d2b7fb3f9d6a48347fe4c46e Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Wed, 20 Feb 2013 17:14:20 -0600 Subject: [PATCH 157/208] filechooser: Tighten up some assertions when actually selecting files in the treeview The model must be fully loaded, and it must be inserted in the treeview. Signed-off-by: Federico Mena Quintero --- gtk/gtkfilechooserdefault.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index 45d53b09cb..3a49bdf8e2 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -6404,9 +6404,14 @@ show_and_select_files (GtkFileChooserDefault *impl, gboolean selected_a_file; GSList *walk; + g_assert (impl->load_state == LOAD_FINISHED); + g_assert (impl->browse_files_model != NULL); + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (impl->browse_files_tree_view)); fsmodel = GTK_FILE_SYSTEM_MODEL (gtk_tree_view_get_model (GTK_TREE_VIEW (impl->browse_files_tree_view))); + g_assert (fsmodel == impl->browse_files_model); + enabled_hidden = impl->show_hidden; removed_filters = (impl->current_filter == NULL); From 2deb41fe63d7b03e1fe5a8cc909acfdde68d5c7e Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Wed, 20 Feb 2013 18:02:24 -0600 Subject: [PATCH 158/208] filechooser: When stopping/clearing BROWSE model, really ensure that we end up in LOAD_EMPTY state Previously we could end up in a situation where browse_list_model==NULL, and yet load_state==LOAD_FINISHED. This is not a valid state. So, when we get rid of the list model, really ensure that we end up in LOAD_EMPTY so nothing assumes that there is a valid list model around. Signed-off-by: Federico Mena Quintero --- gtk/gtkfilechooserdefault.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index 3a49bdf8e2..498efd135d 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -392,7 +392,7 @@ static void remove_bookmark_button_clicked_cb (GtkButton *button, static void update_cell_renderer_attributes (GtkFileChooserDefault *impl); -static void load_remove_timer (GtkFileChooserDefault *impl); +static void load_remove_timer (GtkFileChooserDefault *impl, LoadState new_load_state); static void browse_files_center_selected_row (GtkFileChooserDefault *impl); static void location_button_toggled_cb (GtkToggleButton *toggle, @@ -6316,9 +6316,9 @@ load_setup_timer (GtkFileChooserDefault *impl) impl->load_state = LOAD_PRELOAD; } -/* Removes the load timeout and switches to the LOAD_FINISHED state */ +/* Removes the load timeout; changes the impl->load_state to the specified value. */ static void -load_remove_timer (GtkFileChooserDefault *impl) +load_remove_timer (GtkFileChooserDefault *impl, LoadState new_load_state) { if (impl->load_timeout_id != 0) { @@ -6326,12 +6326,16 @@ load_remove_timer (GtkFileChooserDefault *impl) g_source_remove (impl->load_timeout_id); impl->load_timeout_id = 0; - impl->load_state = LOAD_EMPTY; } else g_assert (impl->load_state == LOAD_EMPTY || impl->load_state == LOAD_LOADING || impl->load_state == LOAD_FINISHED); + + g_assert (new_load_state == LOAD_EMPTY || + new_load_state == LOAD_LOADING || + new_load_state == LOAD_FINISHED); + impl->load_state = new_load_state; } /* Selects the first row in the file list */ @@ -6546,7 +6550,7 @@ browse_files_model_finished_loading_cb (GtkFileSystemModel *model, if (impl->load_state == LOAD_PRELOAD) { - load_remove_timer (impl); + load_remove_timer (impl, LOAD_FINISHED); load_set_model (impl); } else if (impl->load_state == LOAD_LOADING) @@ -6579,7 +6583,7 @@ static void stop_loading_and_clear_list_model (GtkFileChooserDefault *impl, gboolean remove_from_treeview) { - load_remove_timer (impl); /* This changes the state to LOAD_EMPTY */ + load_remove_timer (impl, LOAD_EMPTY); if (impl->browse_files_model) { From ac5cc198369950a9fddc8e08a5227dce8fc2aabf Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Wed, 20 Feb 2013 18:14:15 -0600 Subject: [PATCH 159/208] filechooserbutton: Add tests for cancelling the dialog via closing it (delete-event), instead of by simulating the Cancel button (response cancel) Signed-off-by: Federico Mena Quintero --- gtk/tests/filechooser.c | 176 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 175 insertions(+), 1 deletion(-) diff --git a/gtk/tests/filechooser.c b/gtk/tests/filechooser.c index 113b219b08..8e5ffc9b77 100644 --- a/gtk/tests/filechooser.c +++ b/gtk/tests/filechooser.c @@ -702,6 +702,81 @@ static FileChooserButtonTest button_tests[] = NULL /* final_filename */ }, + /* OPEN tests with dialog, cancelled via closing the dialog (not by selecting the Cancel button) */ + + { + "open-dialog-close-1", + GTK_FILE_CHOOSER_ACTION_OPEN, + NULL, /* initial_current_folder */ + NULL, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + NULL, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + NULL, /* final_current_folder */ + NULL /* final_filename */ + }, + { + "open-dialog-close-2", + GTK_FILE_CHOOSER_ACTION_OPEN, + NULL, /* initial_current_folder */ + FILE_NAME, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + NULL, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + NULL, /* final_current_folder */ + FILE_NAME /* final_filename */ + }, + { + "open-dialog-close-3", + GTK_FILE_CHOOSER_ACTION_OPEN, + FOLDER_NAME, /* initial_current_folder */ + NULL, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + NULL, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + FOLDER_NAME, /* final_current_folder */ + NULL /* final_filename */ + }, + { + "open-dialog-close-4", + GTK_FILE_CHOOSER_ACTION_OPEN, + NULL, /* initial_current_folder */ + NULL, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + FILE_NAME, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + NULL, /* final_current_folder */ + NULL /* final_filename */ + }, + { + "open-dialog-close-5", + GTK_FILE_CHOOSER_ACTION_OPEN, + NULL, /* initial_current_folder */ + FILE_NAME, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + FILE_NAME_2, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + NULL, /* final_current_folder */ + FILE_NAME /* final_filename */ + }, + { + "open-dialog-close-6", + GTK_FILE_CHOOSER_ACTION_OPEN, + FOLDER_NAME, /* initial_current_folder */ + NULL, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + FILE_NAME_2, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + FOLDER_NAME, /* final_current_folder */ + NULL /* final_filename */ + }, + /* SELECT_FOLDER tests with dialog, cancelled */ { @@ -774,7 +849,7 @@ static FileChooserButtonTest button_tests[] = FOLDER_NAME_2, /* tweak_filename */ GTK_RESPONSE_CANCEL, /* dialog_response */ NULL, /* final_current_folder */ - FOLDER_NAME /* final_filename */ + FOLDER_NAME /* final_filename */ }, { "select-folder-dialog-cancel-7", @@ -801,6 +876,105 @@ static FileChooserButtonTest button_tests[] = FOLDER_NAME /* final_filename */ }, + /* SELECT_FOLDER tests with dialog, cancelled via closing the dialog (not selecting the Cancel button) */ + + { + "select-folder-dialog-close-1", + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, + NULL, /* initial_current_folder */ + NULL, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + NULL, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + NULL, /* final_current_folder */ + NULL /* final_filename */ + }, + { + "select-folder-dialog-close-2", + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, + NULL, /* initial_current_folder */ + FOLDER_NAME, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + NULL, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + NULL, /* final_current_folder */ + FOLDER_NAME /* final_filename */ + }, + { + "select-folder-dialog-close-3", + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, + FOLDER_NAME, /* initial_current_folder */ + NULL, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + NULL, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + FOLDER_NAME, /* final_current_folder */ + NULL /* final_filename */ + }, + { + "select-folder-dialog-close-4", + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, + FOLDER_NAME, /* initial_current_folder */ + NULL, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + NULL, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + NULL, /* final_current_folder */ + FOLDER_NAME /* final_filename */ + }, + { + "select-folder-dialog-close-5", + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, + NULL, /* initial_current_folder */ + NULL, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + FOLDER_NAME, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + NULL, /* final_current_folder */ + NULL /* final_filename */ + }, + { + "select-folder-dialog-close-6", + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, + NULL, /* initial_current_folder */ + FOLDER_NAME, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + FOLDER_NAME_2, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + NULL, /* final_current_folder */ + FOLDER_NAME /* final_filename */ + }, + { + "select-folder-dialog-close-7", + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, + FOLDER_NAME, /* initial_current_folder */ + NULL, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + FOLDER_NAME_2, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + FOLDER_NAME, /* final_current_folder */ + NULL /* final_filename */ + }, + { + "select-folder-dialog-close-8", + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, + FOLDER_NAME, /* initial_current_folder */ + NULL, /* initial_filename */ + TRUE, /* open_dialog */ + NULL, /* tweak_current_folder */ + FOLDER_NAME_2, /* tweak_filename */ + GTK_RESPONSE_DELETE_EVENT,/* dialog_response */ + NULL, /* final_current_folder */ + FOLDER_NAME /* final_filename */ + }, + /* OPEN tests with dialog */ { From cefcafc5087cfbc627d2ad719e85b9a0b7a96232 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Wed, 20 Feb 2013 18:28:59 -0600 Subject: [PATCH 160/208] filechooserbutton: In the tests, run through the dialog more than one time This ensures that data maintained by the button while the dialog opens/closes remains consistent. Signed-off-by: Federico Mena Quintero --- gtk/tests/filechooser.c | 82 ++++++++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 34 deletions(-) diff --git a/gtk/tests/filechooser.c b/gtk/tests/filechooser.c index 8e5ffc9b77..399e8e7ccb 100644 --- a/gtk/tests/filechooser.c +++ b/gtk/tests/filechooser.c @@ -382,6 +382,8 @@ test_file_chooser_button (gconstpointer data) GtkWidget *window; GtkWidget *fc_button; GtkWidget *fc_dialog; + int iterations; + int i; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); @@ -398,54 +400,66 @@ test_file_chooser_button (gconstpointer data) gtk_widget_show_all (window); wait_for_idle (); + /* If there is a dialog to be opened, we actually test going through it a + * couple of times. This ensures that any state that the button frobs for + * each appearance of the dialog will make sense. + */ if (setup->open_dialog) + iterations = 2; + else + iterations = 1; + + for (i = 0; i < iterations; i++) { - GList *children; + if (setup->open_dialog) + { + GList *children; - /* Hack our way into the file chooser button; get its GtkButton child and click it */ - children = gtk_container_get_children (GTK_CONTAINER (fc_button)); - g_assert (children && GTK_IS_BUTTON (children->data)); - gtk_button_clicked (GTK_BUTTON (children->data)); - g_list_free (children); + /* Hack our way into the file chooser button; get its GtkButton child and click it */ + children = gtk_container_get_children (GTK_CONTAINER (fc_button)); + g_assert (children && GTK_IS_BUTTON (children->data)); + gtk_button_clicked (GTK_BUTTON (children->data)); + g_list_free (children); - wait_for_idle (); + wait_for_idle (); - /* Give me the internal dialog, damnit */ - fc_dialog = g_object_get_qdata (G_OBJECT (fc_button), delegate_get_quark ()); - g_assert (GTK_IS_FILE_CHOOSER (fc_dialog)); - g_assert (GTK_IS_DIALOG (fc_dialog)); - } + /* Give me the internal dialog, damnit */ + fc_dialog = g_object_get_qdata (G_OBJECT (fc_button), delegate_get_quark ()); + g_assert (GTK_IS_FILE_CHOOSER (fc_dialog)); + g_assert (GTK_IS_DIALOG (fc_dialog)); + } - /* Okay, now frob the button and its optional dialog */ + /* Okay, now frob the button and its optional dialog */ - if (setup->tweak_current_folder) - gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc_button), setup->tweak_current_folder); + if (setup->tweak_current_folder) + gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc_button), setup->tweak_current_folder); - if (setup->tweak_filename) - gtk_file_chooser_select_filename (GTK_FILE_CHOOSER (fc_button), setup->tweak_filename); + if (setup->tweak_filename) + gtk_file_chooser_select_filename (GTK_FILE_CHOOSER (fc_button), setup->tweak_filename); - sleep_in_main_loop (); + sleep_in_main_loop (); - if (setup->open_dialog) - { - gtk_dialog_response (GTK_DIALOG (fc_dialog), setup->dialog_response); - wait_for_idle (); - } + if (setup->open_dialog) + { + gtk_dialog_response (GTK_DIALOG (fc_dialog), setup->dialog_response); + wait_for_idle (); + } - if (setup->final_current_folder) - { - char *folder = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (fc_button)); + if (setup->final_current_folder) + { + char *folder = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (fc_button)); - g_assert_cmpstr (folder, ==, setup->final_current_folder); - g_free (folder); - } + g_assert_cmpstr (folder, ==, setup->final_current_folder); + g_free (folder); + } - if (setup->final_filename) - { - char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fc_button)); + if (setup->final_filename) + { + char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fc_button)); - g_assert_cmpstr (filename, ==, setup->final_filename); - g_free (filename); + g_assert_cmpstr (filename, ==, setup->final_filename); + g_free (filename); + } } gtk_widget_destroy (window); From 158d74d25733283ff396eb6246143d099cf0bbce Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Wed, 20 Feb 2013 18:30:30 -0600 Subject: [PATCH 161/208] filechooserbutton: Don't emit file-set signal when the change is not the result of a user action We only emit that signal when the user confirms the button's internal GtkFileChooserDialog, or when he drags-and-drops stuff into the button. Signed-off-by: Federico Mena Quintero --- gtk/gtkfilechooserbutton.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/gtk/gtkfilechooserbutton.c b/gtk/gtkfilechooserbutton.c index 252cd64e1a..47f5240237 100644 --- a/gtk/gtkfilechooserbutton.c +++ b/gtk/gtkfilechooserbutton.c @@ -652,8 +652,6 @@ gtk_file_chooser_button_select_file (GtkFileChooser *chooser, priv->selection_while_inactive = g_object_ref (file); - g_signal_emit (button, file_chooser_button_signals[FILE_SET], 0); - return TRUE; } } @@ -680,8 +678,6 @@ gtk_file_chooser_button_unselect_file (GtkFileChooser *chooser, g_object_unref (priv->selection_while_inactive); priv->selection_while_inactive = NULL; } - - g_signal_emit (button, file_chooser_button_signals[FILE_SET], 0); } } } @@ -705,8 +701,6 @@ gtk_file_chooser_button_unselect_all (GtkFileChooser *chooser) g_object_unref (priv->selection_while_inactive); priv->selection_while_inactive = NULL; } - - g_signal_emit (button, file_chooser_button_signals[FILE_SET], 0); } } From 77154f295f863b85e5c0f42c6dc3cc7b3fea3622 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Wed, 20 Feb 2013 18:52:23 -0600 Subject: [PATCH 162/208] filechooserbutton: In tests, sleep after opening the dialog This may ensure that the dialog is actually done initializing. We need to kill this sleeping business and really use signals, sigh... Signed-off-by: Federico Mena Quintero --- gtk/tests/filechooser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtk/tests/filechooser.c b/gtk/tests/filechooser.c index 399e8e7ccb..8aa5993793 100644 --- a/gtk/tests/filechooser.c +++ b/gtk/tests/filechooser.c @@ -421,7 +421,7 @@ test_file_chooser_button (gconstpointer data) gtk_button_clicked (GTK_BUTTON (children->data)); g_list_free (children); - wait_for_idle (); + sleep_in_main_loop (); /* Give me the internal dialog, damnit */ fc_dialog = g_object_get_qdata (G_OBJECT (fc_button), delegate_get_quark ()); From 332a7c9c6e20b581ee638ba08b58c35b092f4bed Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Thu, 21 Feb 2013 15:14:25 +0800 Subject: [PATCH 163/208] Update GDK Visual Studio projects Link to winmm.lib as well, as we are now using timeEndPeriod() and timeBeginPeriod() since commit 5dbf814f (win32: Request higher precision timers during animations). --- build/win32/vs10/gdk.vcxprojin | 8 ++++---- build/win32/vs9/gdk.vcprojin | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build/win32/vs10/gdk.vcxprojin b/build/win32/vs10/gdk.vcxprojin index 11f47c4fa0..4eb739b9cf 100644 --- a/build/win32/vs10/gdk.vcxprojin +++ b/build/win32/vs10/gdk.vcxprojin @@ -86,7 +86,7 @@ EditAndContinue - imm32.lib;%(AdditionalDependencies) + imm32.lib;winmm.lib;%(AdditionalDependencies) $(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll $(IntDir)gdk.def true @@ -106,7 +106,7 @@ ProgramDatabase - imm32.lib;%(AdditionalDependencies) + imm32.lib;winmm.lib;%(AdditionalDependencies) $(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll $(IntDir)gdk.def true @@ -131,7 +131,7 @@ ProgramDatabase - imm32.lib;%(AdditionalDependencies) + imm32.lib;winmm.lib;%(AdditionalDependencies) $(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll $(IntDir)gdk.def true @@ -151,7 +151,7 @@ ProgramDatabase - imm32.lib;%(AdditionalDependencies) + imm32.lib;winmm.lib;%(AdditionalDependencies) $(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll $(IntDir)gdk.def true diff --git a/build/win32/vs9/gdk.vcprojin b/build/win32/vs9/gdk.vcprojin index e41cd7c20f..dffea3c3dc 100644 --- a/build/win32/vs9/gdk.vcprojin +++ b/build/win32/vs9/gdk.vcprojin @@ -42,7 +42,7 @@ /> Date: Thu, 21 Feb 2013 15:30:41 +0800 Subject: [PATCH 164/208] Fix gtk-demo projects There isn't a custom CSS demo anymore, so remove that from the projects --- build/win32/vs10/gtk3-demo.vcxproj | 1 - build/win32/vs10/gtk3-demo.vcxproj.filters | 3 --- build/win32/vs9/gtk3-demo.vcproj | 1 - 3 files changed, 5 deletions(-) diff --git a/build/win32/vs10/gtk3-demo.vcxproj b/build/win32/vs10/gtk3-demo.vcxproj index 6f2a80d589..86839f0eec 100644 --- a/build/win32/vs10/gtk3-demo.vcxproj +++ b/build/win32/vs10/gtk3-demo.vcxproj @@ -211,7 +211,6 @@ - diff --git a/build/win32/vs10/gtk3-demo.vcxproj.filters b/build/win32/vs10/gtk3-demo.vcxproj.filters index cfbb17b8aa..e3ca1c0779 100644 --- a/build/win32/vs10/gtk3-demo.vcxproj.filters +++ b/build/win32/vs10/gtk3-demo.vcxproj.filters @@ -143,9 +143,6 @@ Source Files - - Source Files - Source Files diff --git a/build/win32/vs9/gtk3-demo.vcproj b/build/win32/vs9/gtk3-demo.vcproj index 37026f8fee..1b01ea3103 100644 --- a/build/win32/vs9/gtk3-demo.vcproj +++ b/build/win32/vs9/gtk3-demo.vcproj @@ -204,7 +204,6 @@ - From d861779b692412691717871d4e6c7ffeae07d1c5 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Thu, 21 Feb 2013 15:48:04 +0800 Subject: [PATCH 165/208] Redo Completion of Visual Studio projects for gtka11y Update the Visual Studio projects for gtka11y and the completion of the projects that go along with it. This have been distcheck'ed on my Ubuntu 12.04 system. --- build/win32/vs10/Makefile.am | 8 ++--- build/win32/vs10/gtk+.sln | 2 +- build/win32/vs10/gtk.vcxprojin | 2 +- ...oj.filtersin => gtka11y.vcxproj.filtersin} | 4 +-- .../{libgail.vcxprojin => gtka11y.vcxprojin} | 6 ++-- build/win32/vs9/Makefile.am | 4 +-- build/win32/vs9/gtk+.sln | 2 +- .../{libgail.vcprojin => gtka11y.vcprojin} | 6 ++-- gtk/a11y/Makefile.am | 32 +++++++++---------- 9 files changed, 33 insertions(+), 33 deletions(-) rename build/win32/vs10/{libgail.vcxproj.filtersin => gtka11y.vcxproj.filtersin} (91%) rename build/win32/vs10/{libgail.vcxprojin => gtka11y.vcxprojin} (96%) rename build/win32/vs9/{libgail.vcprojin => gtka11y.vcprojin} (93%) diff --git a/build/win32/vs10/Makefile.am b/build/win32/vs10/Makefile.am index e5548ab982..ac7c43b1d7 100644 --- a/build/win32/vs10/Makefile.am +++ b/build/win32/vs10/Makefile.am @@ -16,10 +16,10 @@ EXTRA_DIST += \ gtk.vcxproj.filtersin \ gtk3-demo.vcxproj \ gtk3-demo.vcxproj.filters \ - libgail.vcxproj \ - libgail.vcxproj.filters \ - libgail.vcxprojin \ - libgail.vcxproj.filtersin \ + gtka11y.vcxproj \ + gtka11y.vcxproj.filters \ + gtka11y.vcxprojin \ + gtka11y.vcxproj.filtersin \ gailutil.vcxproj \ gailutil.vcxproj.filters \ install.vcxproj diff --git a/build/win32/vs10/gtk+.sln b/build/win32/vs10/gtk+.sln index 4350f89a93..25fe37c347 100644 --- a/build/win32/vs10/gtk+.sln +++ b/build/win32/vs10/gtk+.sln @@ -8,7 +8,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk", "gtk.vcxproj", "{FC5A EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcxproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgail", "libgail.vcxproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtka11y", "gtka11y.vcxproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gailutil", "gailutil.vcxproj", "{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}" EndProject diff --git a/build/win32/vs10/gtk.vcxprojin b/build/win32/vs10/gtk.vcxprojin index a47e12e14a..09d1b3b684 100644 --- a/build/win32/vs10/gtk.vcxprojin +++ b/build/win32/vs10/gtk.vcxprojin @@ -204,7 +204,7 @@ {fc5aadb5-95cd-4bf0-ba8b-0c16fe7073f7} false - + {f756b0db-40a1-4e9f-be1f-8f02cb86ea46} false diff --git a/build/win32/vs10/libgail.vcxproj.filtersin b/build/win32/vs10/gtka11y.vcxproj.filtersin similarity index 91% rename from build/win32/vs10/libgail.vcxproj.filtersin rename to build/win32/vs10/gtka11y.vcxproj.filtersin index 636f826a21..5929b8c1d8 100644 --- a/build/win32/vs10/libgail.vcxproj.filtersin +++ b/build/win32/vs10/gtka11y.vcxproj.filtersin @@ -15,6 +15,6 @@ -#include "libgail.vs10.sourcefiles.filters" +#include "gtka11y.vs10.sourcefiles.filters" - \ No newline at end of file + diff --git a/build/win32/vs10/libgail.vcxprojin b/build/win32/vs10/gtka11y.vcxprojin similarity index 96% rename from build/win32/vs10/libgail.vcxprojin rename to build/win32/vs10/gtka11y.vcxprojin index 1f1ad36e67..1a309efd54 100644 --- a/build/win32/vs10/libgail.vcxprojin +++ b/build/win32/vs10/gtka11y.vcxprojin @@ -20,7 +20,7 @@ {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46} - libgail + gtka11y Win32Proj @@ -120,9 +120,9 @@ -#include "libgail.vs10.sourcefiles" +#include "gtka11y.vs10.sourcefiles" - \ No newline at end of file + diff --git a/build/win32/vs9/Makefile.am b/build/win32/vs9/Makefile.am index c0c1500bc7..10bdd326aa 100644 --- a/build/win32/vs9/Makefile.am +++ b/build/win32/vs9/Makefile.am @@ -10,8 +10,8 @@ EXTRA_DIST += \ gtk.vcproj \ gtk.vcprojin \ gtk3-demo.vcproj \ - libgail.vcproj \ - libgail.vcprojin \ + gtka11y.vcproj \ + gtka11y.vcprojin \ gailutil.vcproj \ install.vcproj diff --git a/build/win32/vs9/gtk+.sln b/build/win32/vs9/gtk+.sln index 2620e17888..13c22f9d87 100644 --- a/build/win32/vs9/gtk+.sln +++ b/build/win32/vs9/gtk+.sln @@ -19,7 +19,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcpr {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgail", "libgail.vcproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtka11y", "gtka11y.vcproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gailutil", "gailutil.vcproj", "{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}" ProjectSection(ProjectDependencies) = postProject diff --git a/build/win32/vs9/libgail.vcprojin b/build/win32/vs9/gtka11y.vcprojin similarity index 93% rename from build/win32/vs9/libgail.vcprojin rename to build/win32/vs9/gtka11y.vcprojin index a9dbea6ef2..1943de1f53 100644 --- a/build/win32/vs9/libgail.vcprojin +++ b/build/win32/vs9/gtka11y.vcprojin @@ -2,9 +2,9 @@ @@ -115,7 +115,7 @@ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" > -#include "libgail.sourcefiles" +#include "gtka11y.sourcefiles" ' \ ;; \ esac; \ - done >libgail.sourcefiles - $(CPP) -P - <$(top_srcdir)/build/win32/vs9/libgail.vcprojin >$@ - rm libgail.sourcefiles + done >gtka11y.sourcefiles + $(CPP) -P - <$(top_srcdir)/build/win32/vs9/gtka11y.vcprojin >$@ + rm gtka11y.sourcefiles -../../build/win32/vs10/libgail.vcxproj: ../../build/win32/vs10/libgail.vcxprojin - for F in $(libgail_la_SOURCES); do \ +$(top_builddir)/build/win32/vs10/gtka11y.vcxproj: $(top_srcdir)/build/win32/vs10/gtka11y.vcxprojin + for F in $(gtka11y_c_sources); do \ case $$F in \ *.c) echo ' ' \ ;; \ esac; \ - done >libgail.vs10.sourcefiles - $(CPP) -P - <$(top_srcdir)/build/win32/vs10/libgail.vcxprojin >$@ - rm libgail.vs10.sourcefiles + done >gtka11y.vs10.sourcefiles + $(CPP) -P - <$(top_srcdir)/build/win32/vs10/gtka11y.vcxprojin >$@ + rm gtka11y.vs10.sourcefiles -../../build/win32/vs10/libgail.vcxproj.filters: ../../build/win32/vs10/libgail.vcxproj.filtersin - for F in $(libgail_la_SOURCES); do \ +$(top_builddir)/build/win32/vs10/gtka11y.vcxproj.filters: $(top_srcdir)/build/win32/vs10/gtka11y.vcxproj.filtersin + for F in $(gtka11y_c_sources); do \ case $$F in \ *.c) echo ' Source Files' \ ;; \ esac; \ - done >libgail.vs10.sourcefiles.filters - $(CPP) -P - <$(top_srcdir)/build/win32/vs10/libgail.vcxproj.filtersin >$@ - rm libgail.vs10.sourcefiles.filters + done >gtka11y.vs10.sourcefiles.filters + $(CPP) -P - <$(top_srcdir)/build/win32/vs10/gtka11y.vcxproj.filtersin >$@ + rm gtka11y.vs10.sourcefiles.filters -include $(top_srcdir)/git.mk From 919a5e3e24fb347e2f59b3c4192f73b94d8e0b28 Mon Sep 17 00:00:00 2001 From: Yuri Myasoedov Date: Thu, 21 Feb 2013 16:13:56 +0400 Subject: [PATCH 166/208] Updated Russian translation --- po/ru.po | 418 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 213 insertions(+), 205 deletions(-) diff --git a/po/ru.po b/po/ru.po index f543e11482..4bcde827fe 100644 --- a/po/ru.po +++ b/po/ru.po @@ -15,15 +15,15 @@ # Anton Shestakov , 2008. # Lebedev Roman , 2009. # Yuri Kozlov , 2010, 2012. -# Yuri Myasoedov , 2012. +# Yuri Myasoedov , 2012, 2013. # msgid "" msgstr "" "Project-Id-Version: gtk+.master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" "%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-09-18 11:52+0000\n" -"PO-Revision-Date: 2012-10-13 14:31+0400\n" +"POT-Creation-Date: 2013-01-19 19:42+0000\n" +"PO-Revision-Date: 2013-02-21 16:13+0400\n" "Last-Translator: Yuri Myasoedov \n" "Language-Team: русский \n" "Language: ru\n" @@ -469,21 +469,21 @@ msgstr[0] "Открывается %d элемент" msgstr[1] "Открывается %d элемента" msgstr[2] "Открывается %d элементов" -#: ../gtk/a11y/gtkspinneraccessible.c:40 +#: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" msgstr "Вертушка" -#: ../gtk/a11y/gtkspinneraccessible.c:41 +#: ../gtk/a11y/gtkspinneraccessible.c:40 msgid "Provides visual indication of progress" msgstr "Наглядно отображает ход работы" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:62 msgctxt "light switch widget" msgid "Switch" msgstr "Переключить" -#: ../gtk/a11y/gtkswitchaccessible.c:64 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgid "Switches between on and off states" msgstr "Переключает состояние (вкл/выкл)" @@ -695,27 +695,27 @@ msgid "Could not show link" msgstr "Не удалось показать ссылку" #: ../gtk/gtkaboutdialog.c:1017 -msgid "Homepage" -msgstr "Домашняя страница" +msgid "Website" +msgstr "Веб-страница" #: ../gtk/gtkaboutdialog.c:1071 #, c-format msgid "About %s" msgstr "О программе %s" -#: ../gtk/gtkaboutdialog.c:2399 +#: ../gtk/gtkaboutdialog.c:2398 msgid "Created by" msgstr "Автор" -#: ../gtk/gtkaboutdialog.c:2402 +#: ../gtk/gtkaboutdialog.c:2401 msgid "Documented by" msgstr "Документация" -#: ../gtk/gtkaboutdialog.c:2412 +#: ../gtk/gtkaboutdialog.c:2411 msgid "Translated by" msgstr "Перевод" -#: ../gtk/gtkaboutdialog.c:2417 +#: ../gtk/gtkaboutdialog.c:2416 msgid "Artwork by" msgstr "Графический дизайн" @@ -790,7 +790,8 @@ msgid "Backslash" msgstr "Backslash" #: ../gtk/gtkappchooserbutton.c:290 -msgid "Other application..." +#| msgid "Other application..." +msgid "Other application…" msgstr "Другое приложение…" #: ../gtk/gtkappchooserdialog.c:137 @@ -798,7 +799,6 @@ msgid "Failed to look for applications online" msgstr "Не удалось найти приложения в Интернете" #: ../gtk/gtkappchooserdialog.c:188 -#| msgid "Find applications online" msgid "_Find applications online" msgstr "_Найти приложения в Интернете" @@ -821,7 +821,7 @@ msgstr "Не удалось найти приложение" msgid "Select an application to open \"%s\"" msgstr "Выберите приложение, чтобы открыть «%s»" -#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:654 +#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:657 #, c-format msgid "No applications available to open \"%s\"" msgstr "Нет доступных приложений для открытия «%s»" @@ -854,23 +854,23 @@ msgstr "Забыть ассоциацию" msgid "Show other applications" msgstr "Показать другие приложения" -#: ../gtk/gtkappchooserwidget.c:603 +#: ../gtk/gtkappchooserwidget.c:606 msgid "Default Application" msgstr "Приложение по умолчанию" -#: ../gtk/gtkappchooserwidget.c:741 +#: ../gtk/gtkappchooserwidget.c:744 msgid "Recommended Applications" msgstr "Рекомендуемые приложения" -#: ../gtk/gtkappchooserwidget.c:756 +#: ../gtk/gtkappchooserwidget.c:759 msgid "Related Applications" msgstr "Связанные приложения" -#: ../gtk/gtkappchooserwidget.c:770 +#: ../gtk/gtkappchooserwidget.c:773 msgid "Other Applications" msgstr "Другие приложения" -#: ../gtk/gtkapplication.c:1558 +#: ../gtk/gtkapplication.c:1557 #, c-format msgid "" "%s cannot quit at this time:\n" @@ -1034,9 +1034,10 @@ msgstr "Неверный" #. * an accelerator when the cell is clicked to change the #. * acelerator. #. -#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:745 -msgid "New accelerator..." -msgstr "Новая комбинация клавиш..." +#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 +#| msgid "New accelerator..." +msgid "New accelerator…" +msgstr "Создать ускоритель…" #: ../gtk/gtkcellrendererprogress.c:372 ../gtk/gtkcellrendererprogress.c:462 #, c-format @@ -1337,8 +1338,9 @@ msgid "mm" msgstr "мм" #: ../gtk/gtkcustompaperunixdialog.c:605 -msgid "Margins from Printer..." -msgstr "Поля из принтера..." +#| msgid "Margins from Printer..." +msgid "Margins from Printer…" +msgstr "Поля из принтера…" #: ../gtk/gtkcustompaperunixdialog.c:771 #, c-format @@ -1377,16 +1379,16 @@ msgstr "_Правое:" msgid "Paper Margins" msgstr "Поля страницы" -#: ../gtk/gtkentry.c:9140 ../gtk/gtktextview.c:8583 +#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8591 msgid "Input _Methods" msgstr "_Методы ввода" # длинный перевод слишком сильно растягивает контекстное меню -#: ../gtk/gtkentry.c:9154 ../gtk/gtktextview.c:8597 +#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8605 msgid "_Insert Unicode Control Character" msgstr "Вст_авить управляющий символ Юникод" -#: ../gtk/gtkentry.c:10107 +#: ../gtk/gtkentry.c:10094 msgid "Caps Lock is on" msgstr "Включён режим Caps Lock" @@ -1435,7 +1437,7 @@ msgstr "Включён режим Caps Lock" msgid "Select a File" msgstr "Выберите файл" -#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1817 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1820 msgid "Desktop" msgstr "Рабочий стол" @@ -1444,30 +1446,31 @@ msgid "(None)" msgstr "(Нет)" #: ../gtk/gtkfilechooserbutton.c:2046 -msgid "Other..." -msgstr "Другой..." +#| msgid "Other..." +msgid "Other…" +msgstr "Другой…" #: ../gtk/gtkfilechooserdefault.c:152 msgid "Type name of new folder" msgstr "Введите имя новой папки" -#: ../gtk/gtkfilechooserdefault.c:968 +#: ../gtk/gtkfilechooserdefault.c:971 msgid "Could not retrieve information about the file" msgstr "Не удалось получить информацию о файле" -#: ../gtk/gtkfilechooserdefault.c:979 +#: ../gtk/gtkfilechooserdefault.c:982 msgid "Could not add a bookmark" msgstr "Не удалось добавить закладку" -#: ../gtk/gtkfilechooserdefault.c:990 +#: ../gtk/gtkfilechooserdefault.c:993 msgid "Could not remove bookmark" msgstr "Не удалось удалить закладку" -#: ../gtk/gtkfilechooserdefault.c:1001 +#: ../gtk/gtkfilechooserdefault.c:1004 msgid "The folder could not be created" msgstr "Не удалось создать папку" -#: ../gtk/gtkfilechooserdefault.c:1014 +#: ../gtk/gtkfilechooserdefault.c:1017 msgid "" "The folder could not be created, as a file with the same name already " "exists. Try using a different name for the folder, or rename the file first." @@ -1475,16 +1478,16 @@ msgstr "" "Папка не может быть создана, так как файл с таким именем уже существует. " "Выберите другое имя для папки, или переименуйте файл." -#: ../gtk/gtkfilechooserdefault.c:1028 +#: ../gtk/gtkfilechooserdefault.c:1031 msgid "You need to choose a valid filename." msgstr "Необходимо выбрать корректное имя файла." -#: ../gtk/gtkfilechooserdefault.c:1031 +#: ../gtk/gtkfilechooserdefault.c:1034 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "Невозможно создать файл в %s, т. к. это не папка" -#: ../gtk/gtkfilechooserdefault.c:1043 +#: ../gtk/gtkfilechooserdefault.c:1046 msgid "" "You may only select folders. The item that you selected is not a folder; " "try using a different item." @@ -1492,11 +1495,11 @@ msgstr "" "Вы можете выбрать только папки. Выбранный элемент не является папкой; " "попробуйте выбрать другой элемент." -#: ../gtk/gtkfilechooserdefault.c:1053 +#: ../gtk/gtkfilechooserdefault.c:1056 msgid "Invalid file name" msgstr "Недопустимое имя файла" -#: ../gtk/gtkfilechooserdefault.c:1063 +#: ../gtk/gtkfilechooserdefault.c:1066 msgid "The folder contents could not be displayed" msgstr "Не удалось отобразить содержимое папки" @@ -1504,209 +1507,210 @@ msgstr "Не удалось отобразить содержимое папки #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1589 +#: ../gtk/gtkfilechooserdefault.c:1592 #, c-format msgid "%1$s on %2$s" msgstr "%1$s на %2$s" -#: ../gtk/gtkfilechooserdefault.c:1738 +#: ../gtk/gtkfilechooserdefault.c:1741 msgid "Search" msgstr "Поиск" -#: ../gtk/gtkfilechooserdefault.c:1762 ../gtk/gtkfilechooserdefault.c:4988 +#: ../gtk/gtkfilechooserdefault.c:1765 ../gtk/gtkfilechooserdefault.c:4991 msgid "Recently Used" msgstr "Недавние документы" -#: ../gtk/gtkfilechooserdefault.c:2361 +#: ../gtk/gtkfilechooserdefault.c:2364 msgid "Select which types of files are shown" msgstr "Выбрать отображаемые типы файлов" -#: ../gtk/gtkfilechooserdefault.c:2720 +#: ../gtk/gtkfilechooserdefault.c:2723 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "Создать закладку для папки «%s»" -#: ../gtk/gtkfilechooserdefault.c:2764 +#: ../gtk/gtkfilechooserdefault.c:2767 #, c-format msgid "Add the current folder to the bookmarks" msgstr "Создать закладку для текущей папки" -#: ../gtk/gtkfilechooserdefault.c:2766 +#: ../gtk/gtkfilechooserdefault.c:2769 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "Создать закладки для выделенных папок" -#: ../gtk/gtkfilechooserdefault.c:2804 +#: ../gtk/gtkfilechooserdefault.c:2807 #, c-format msgid "Remove the bookmark '%s'" msgstr "Удалить закладку «%s»" -#: ../gtk/gtkfilechooserdefault.c:2806 +#: ../gtk/gtkfilechooserdefault.c:2809 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "Закладка '%s' не может быть удалена" -#: ../gtk/gtkfilechooserdefault.c:2813 ../gtk/gtkfilechooserdefault.c:3699 +#: ../gtk/gtkfilechooserdefault.c:2816 ../gtk/gtkfilechooserdefault.c:3702 msgid "Remove the selected bookmark" msgstr "Удалить выделенную закладку" -#: ../gtk/gtkfilechooserdefault.c:3377 +#: ../gtk/gtkfilechooserdefault.c:3380 msgid "Remove" msgstr "Удалить" -#: ../gtk/gtkfilechooserdefault.c:3386 -msgid "Rename..." -msgstr "Переименовать..." +#: ../gtk/gtkfilechooserdefault.c:3389 +#| msgid "Rename..." +msgid "Rename…" +msgstr "Переименовать…" #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3550 +#: ../gtk/gtkfilechooserdefault.c:3553 msgid "Places" msgstr "Места" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3607 +#: ../gtk/gtkfilechooserdefault.c:3610 msgid "_Places" msgstr "_Места" -#: ../gtk/gtkfilechooserdefault.c:3687 +#: ../gtk/gtkfilechooserdefault.c:3690 msgid "Add the selected folder to the Bookmarks" msgstr "Создать закладку для выделенной папки" -#: ../gtk/gtkfilechooserdefault.c:3948 +#: ../gtk/gtkfilechooserdefault.c:3951 msgid "Could not select file" msgstr "Не удалось выделить файл" -#: ../gtk/gtkfilechooserdefault.c:4173 +#: ../gtk/gtkfilechooserdefault.c:4176 msgid "_Visit this file" msgstr "_Перейти к файлу" -#: ../gtk/gtkfilechooserdefault.c:4176 +#: ../gtk/gtkfilechooserdefault.c:4179 msgid "_Copy file’s location" msgstr "_Копировать адрес файла" -#: ../gtk/gtkfilechooserdefault.c:4179 +#: ../gtk/gtkfilechooserdefault.c:4182 msgid "_Add to Bookmarks" msgstr "_Добавить в закладки" -#: ../gtk/gtkfilechooserdefault.c:4186 +#: ../gtk/gtkfilechooserdefault.c:4189 msgid "Show _Hidden Files" msgstr "Показывать _скрытые файлы" -#: ../gtk/gtkfilechooserdefault.c:4189 +#: ../gtk/gtkfilechooserdefault.c:4192 msgid "Show _Size Column" msgstr "Показывать _размер" -#: ../gtk/gtkfilechooserdefault.c:4414 +#: ../gtk/gtkfilechooserdefault.c:4417 msgid "Files" msgstr "Файлы" -#: ../gtk/gtkfilechooserdefault.c:4465 +#: ../gtk/gtkfilechooserdefault.c:4468 msgid "Name" msgstr "Имя" -#: ../gtk/gtkfilechooserdefault.c:4488 +#: ../gtk/gtkfilechooserdefault.c:4491 msgid "Size" msgstr "Размер" -#: ../gtk/gtkfilechooserdefault.c:4502 +#: ../gtk/gtkfilechooserdefault.c:4505 msgid "Modified" msgstr "Изменён" #. Label -#: ../gtk/gtkfilechooserdefault.c:4595 +#: ../gtk/gtkfilechooserdefault.c:4598 msgid "_Name:" msgstr "_Имя:" -#: ../gtk/gtkfilechooserdefault.c:4826 +#: ../gtk/gtkfilechooserdefault.c:4829 msgid "Type a file name" msgstr "Введите имя файла" -#: ../gtk/gtkfilechooserdefault.c:4873 ../gtk/gtkfilechooserdefault.c:4884 +#: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887 msgid "Please select a folder below" msgstr "Выберите папку" -#: ../gtk/gtkfilechooserdefault.c:4879 +#: ../gtk/gtkfilechooserdefault.c:4882 msgid "Please type a file name" msgstr "Введите имя файла" #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4950 +#: ../gtk/gtkfilechooserdefault.c:4953 msgid "Create Fo_lder" msgstr "Создать п_апку" -#: ../gtk/gtkfilechooserdefault.c:4998 +#: ../gtk/gtkfilechooserdefault.c:5001 msgid "Search:" msgstr "Поиск:" -#: ../gtk/gtkfilechooserdefault.c:5049 +#: ../gtk/gtkfilechooserdefault.c:5052 msgid "_Location:" msgstr "_Расположение:" -#: ../gtk/gtkfilechooserdefault.c:5500 +#: ../gtk/gtkfilechooserdefault.c:5502 msgid "Save in _folder:" msgstr "Сохранить в _папке" -#: ../gtk/gtkfilechooserdefault.c:5502 +#: ../gtk/gtkfilechooserdefault.c:5504 msgid "Create in _folder:" msgstr "Создать в _папке:" -#: ../gtk/gtkfilechooserdefault.c:6589 +#: ../gtk/gtkfilechooserdefault.c:6597 #, c-format msgid "Could not read the contents of %s" msgstr "Не удалось прочитать содержимое %s" -#: ../gtk/gtkfilechooserdefault.c:6593 +#: ../gtk/gtkfilechooserdefault.c:6601 msgid "Could not read the contents of the folder" msgstr "Не удалось прочитать содержимое папки" -#: ../gtk/gtkfilechooserdefault.c:6686 ../gtk/gtkfilechooserdefault.c:6754 -#: ../gtk/gtkfilechooserdefault.c:6934 +#: ../gtk/gtkfilechooserdefault.c:6694 ../gtk/gtkfilechooserdefault.c:6762 +#: ../gtk/gtkfilechooserdefault.c:6942 msgid "Unknown" msgstr "Неизвестен" -#: ../gtk/gtkfilechooserdefault.c:6701 +#: ../gtk/gtkfilechooserdefault.c:6709 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6703 +#: ../gtk/gtkfilechooserdefault.c:6711 msgid "Yesterday at %H:%M" msgstr "Вчера в %H:%M" -#: ../gtk/gtkfilechooserdefault.c:7405 +#: ../gtk/gtkfilechooserdefault.c:7413 msgid "Cannot change to folder because it is not local" msgstr "Не удалось перейти в папку, так как она не является локальной" -#: ../gtk/gtkfilechooserdefault.c:8009 ../gtk/gtkfilechooserdefault.c:8030 +#: ../gtk/gtkfilechooserdefault.c:8020 ../gtk/gtkfilechooserdefault.c:8041 #, c-format msgid "Shortcut %s already exists" msgstr "Комбинация %s уже существует" -#: ../gtk/gtkfilechooserdefault.c:8120 +#: ../gtk/gtkfilechooserdefault.c:8131 #, c-format msgid "Shortcut %s does not exist" msgstr "Комбинация %s не существует" -#: ../gtk/gtkfilechooserdefault.c:8366 ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8377 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "Файл с именем «%s» уже существует. Заменить его?" -#: ../gtk/gtkfilechooserdefault.c:8369 ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8380 ../gtk/gtkprintunixdialog.c:552 #, c-format msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "" "Файл уже существует в «%s». Его замена приведёт к перезаписи содержимого." -#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "_Заменить" -#: ../gtk/gtkfilechooserdefault.c:9181 +#: ../gtk/gtkfilechooserdefault.c:9192 msgid "Could not start the search process" msgstr "Не удалось начать поиск" -#: ../gtk/gtkfilechooserdefault.c:9182 +#: ../gtk/gtkfilechooserdefault.c:9193 msgid "" "The program was not able to create a connection to the indexer daemon. " "Please make sure it is running." @@ -1714,11 +1718,11 @@ msgstr "" "Не удалось соединиться с сервисом индексированного поиска. Проверьте, что " "сервис запущен." -#: ../gtk/gtkfilechooserdefault.c:9196 +#: ../gtk/gtkfilechooserdefault.c:9207 msgid "Could not send the search request" msgstr "Не удалось послать запрос на поиск" -#: ../gtk/gtkfilechooserdefault.c:9806 +#: ../gtk/gtkfilechooserdefault.c:9817 #, c-format msgid "Could not mount %s" msgstr "Не удалось подключить %s" @@ -1758,12 +1762,12 @@ msgstr "Найти название шрифта" msgid "Font Family" msgstr "Гарнитура шрифта" -#: ../gtk/gtkicontheme.c:1627 +#: ../gtk/gtkicontheme.c:1931 #, c-format msgid "Icon '%s' not present in theme" msgstr "Значок «%s» не присутствует в теме" -#: ../gtk/gtkicontheme.c:3137 +#: ../gtk/gtkicontheme.c:3462 msgid "Failed to load icon" msgstr "Не удалось загрузить значок" @@ -1788,22 +1792,23 @@ msgid "System (%s)" msgstr "Системный (%s)" #. Open Link -#: ../gtk/gtklabel.c:6224 +#: ../gtk/gtklabel.c:6139 msgid "_Open Link" msgstr "_Открыть ссылку" #. Copy Link Address -#: ../gtk/gtklabel.c:6236 +#: ../gtk/gtklabel.c:6151 msgid "Copy _Link Address" msgstr "_Скопировать адрес ссылки" -#: ../gtk/gtk-launch.c:69 -msgid "APPLICATION [URI...] - launch an APPLICATION with URI." -msgstr "ПРИЛОЖЕНИЕ [URI...] — запустить ПРИЛОЖЕНИЕ по URI." +#: ../gtk/gtk-launch.c:71 +#| msgid "APPLICATION [URI...] - launch an APPLICATION with URI." +msgid "APPLICATION [URI…] — launch an APPLICATION with URI." +msgstr "ПРИЛОЖЕНИЕ [URI…] — запустить ПРИЛОЖЕНИЕ по URI." #. Translators: this message will appear after the usage string #. and before the list of options. -#: ../gtk/gtk-launch.c:73 +#: ../gtk/gtk-launch.c:75 msgid "" "Launch specified application by its desktop file info\n" "optionally passing list of URIs as arguments." @@ -1811,36 +1816,38 @@ msgstr "" "Запустить указанное приложение по его файлу desktop,\n" "передав необязательный список URI в качестве аргументов." -#: ../gtk/gtk-launch.c:85 +#: ../gtk/gtk-launch.c:87 #, c-format -#| msgid "Error parsing option --gdk-debug" msgid "Error parsing commandline options: %s\n" msgstr "Ошибка при разборе параметров командной строки: %s\n" -#: ../gtk/gtk-launch.c:87 ../gtk/gtk-launch.c:100 +#: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Попробуйте «%s --help» для дополнительной информации." #. Translators: the %s is the program name. This error message #. means the user is calling gtk-launch without any argument. -#: ../gtk/gtk-launch.c:98 +#: ../gtk/gtk-launch.c:100 #, c-format -#| msgid "Find applications online" msgid "%s: missing application name" msgstr "%s: отсутствует название приложения" +#: ../gtk/gtk-launch.c:121 +#, c-format +msgid "Creating AppInfo from id not supported on non unix operating systems" +msgstr "Создание AppInfo из id поддерживается только в системах UNIX" + #. Translators: the first %s is the program name, the second one #. is the application name. -#: ../gtk/gtk-launch.c:122 +#: ../gtk/gtk-launch.c:129 #, c-format -#| msgid "Could not run application" msgid "%s: no such application %s" msgstr "%s: отсутствует приложение %s" #. Translators: the first %s is the program name, the second one #. is the error message. -#: ../gtk/gtk-launch.c:140 +#: ../gtk/gtk-launch.c:147 #, c-format msgid "%s: error launching application: %s\n" msgstr "%s: ошибка запуска приложения: %s\n" @@ -1915,78 +1922,73 @@ msgstr "Сбросить указанные отладочные флаги GTK+ #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: ../gtk/gtkmain.c:707 +#: ../gtk/gtkmain.c:703 msgid "default:LTR" msgstr "default:LTR" -#: ../gtk/gtkmain.c:775 +#: ../gtk/gtkmain.c:768 #, c-format msgid "Cannot open display: %s" msgstr "Не удалось открыть дисплей: %s" -#: ../gtk/gtkmain.c:841 +#: ../gtk/gtkmain.c:834 msgid "GTK+ Options" msgstr "Параметры GTK+" -#: ../gtk/gtkmain.c:841 +#: ../gtk/gtkmain.c:834 msgid "Show GTK+ Options" msgstr "Показать параметры GTK+" -#: ../gtk/gtkmountoperation.c:532 +#: ../gtk/gtkmountoperation.c:535 msgid "Co_nnect" msgstr "_Подключиться" -#: ../gtk/gtkmountoperation.c:606 -#| msgid "Co_nnect" +#: ../gtk/gtkmountoperation.c:609 msgid "Connect As" msgstr "Подключиться как" -#: ../gtk/gtkmountoperation.c:615 -#| msgid "Connect _anonymously" +#: ../gtk/gtkmountoperation.c:618 msgid "_Anonymous" msgstr "Подключиться _анонимно" -#: ../gtk/gtkmountoperation.c:624 +#: ../gtk/gtkmountoperation.c:627 msgid "Registered U_ser" msgstr "_Зарегистрированный пользователь" -#: ../gtk/gtkmountoperation.c:635 -#| msgid "_Username:" +#: ../gtk/gtkmountoperation.c:638 msgid "_Username" msgstr "_Имя пользователя" -#: ../gtk/gtkmountoperation.c:640 -#| msgid "_Domain:" +#: ../gtk/gtkmountoperation.c:643 msgid "_Domain" msgstr "_Домен" -#: ../gtk/gtkmountoperation.c:646 -#| msgid "_Password:" +#: ../gtk/gtkmountoperation.c:649 msgid "_Password" msgstr "_Пароль" -#: ../gtk/gtkmountoperation.c:668 +#: ../gtk/gtkmountoperation.c:671 msgid "Forget password _immediately" msgstr "_Забыть пароль немедленно" -#: ../gtk/gtkmountoperation.c:678 +#: ../gtk/gtkmountoperation.c:681 msgid "Remember password until you _logout" msgstr "Запомнить пароль _до выхода из сеанса" -#: ../gtk/gtkmountoperation.c:688 +#: ../gtk/gtkmountoperation.c:691 msgid "Remember _forever" msgstr "Запомнить _навсегда" -#: ../gtk/gtkmountoperation.c:1077 +#: ../gtk/gtkmountoperation.c:1080 #, c-format msgid "Unknown Application (PID %d)" msgstr "Неизвестное приложение (PID %d)" -#: ../gtk/gtkmountoperation.c:1260 +#: ../gtk/gtkmountoperation.c:1263 msgid "Unable to end process" msgstr "Не удается завершить процесс" -#: ../gtk/gtkmountoperation.c:1297 +#: ../gtk/gtkmountoperation.c:1300 msgid "_End Process" msgstr "_Завершить процесс" @@ -2021,7 +2023,7 @@ msgstr "Z Shell" msgid "Cannot end process with PID %d: %s" msgstr "Не удалось завершить процесс с PID %d: %s" -#: ../gtk/gtknotebook.c:5051 ../gtk/gtknotebook.c:7705 +#: ../gtk/gtknotebook.c:5069 ../gtk/gtknotebook.c:7723 #, c-format msgid "Page %u" msgstr "Страница %u" @@ -2029,14 +2031,14 @@ msgstr "Страница %u" #. Translators: the format here is used to build the string that will be rendered #. * in the number emblem. #. -#: ../gtk/gtknumerableicon.c:481 +#: ../gtk/gtknumerableicon.c:482 #, c-format msgctxt "Number format" msgid "%d" msgstr "%d" -#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:846 -#: ../gtk/gtkpapersize.c:886 +#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:848 +#: ../gtk/gtkpapersize.c:888 msgid "Not a valid page setup file" msgstr "Некорректный файл настройки печати" @@ -2064,8 +2066,9 @@ msgstr "" " нижнее: %s %s" #: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 -msgid "Manage Custom Sizes..." -msgstr "Управление пользовательскими размерами..." +#| msgid "Manage Custom Sizes" +msgid "Manage Custom Sizes…" +msgstr "Управление размерами…" #: ../gtk/gtkpagesetupunixdialog.c:896 msgid "_Format for:" @@ -2095,12 +2098,11 @@ msgstr "Вниз по дереву" msgid "File System Root" msgstr "Корень файловой системы" -#: ../gtk/gtkprintbackend.c:748 +#: ../gtk/gtkprintbackend.c:750 msgid "Authentication" msgstr "Проверка доступа" #: ../gtk/gtkprinteroptionwidget.c:546 -#| msgid "Select a File" msgid "Select a filename" msgstr "Выберите имя файла" @@ -2248,8 +2250,9 @@ msgid "Getting printer information failed" msgstr "Не удалось получить информацию о принтере" #: ../gtk/gtkprintunixdialog.c:1916 -msgid "Getting printer information..." -msgstr "Получение информации о принтере..." +#| msgid "Getting printer information..." +msgid "Getting printer information…" +msgstr "Получение информации о принтере…" #: ../gtk/gtkprintunixdialog.c:2184 msgid "Printer" @@ -2325,42 +2328,42 @@ msgstr "Общие" #. * multiple pages on a sheet when printing #. #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, top to bottom" msgstr "Слева направо, сверху вниз" #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, bottom to top" msgstr "Слева направо, снизу вверх" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, top to bottom" msgstr "Справа налево, сверху вниз" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, bottom to top" msgstr "Справа налево, снизу вверх" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, left to right" msgstr "Сверху вниз, слева направо" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, right to left" msgstr "Сверху вниз, справа налево" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, left to right" msgstr "Снизу вверх, слева направо" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, right to left" msgstr "Снизу вверх, справа налево" @@ -2368,7 +2371,7 @@ msgstr "Снизу вверх, справа налево" #. * dialog that controls in what order multiple pages are arranged #. #: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3766 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772 msgid "Page Ordering" msgstr "Порядок страниц" @@ -2570,36 +2573,36 @@ msgstr "Печать" msgid "Select which type of documents are shown" msgstr "Выберите типы отображаемых документов" -#: ../gtk/gtkrecentchooserdefault.c:1130 ../gtk/gtkrecentchooserdefault.c:1167 +#: ../gtk/gtkrecentchooserdefault.c:1129 ../gtk/gtkrecentchooserdefault.c:1166 #, c-format msgid "No item for URI '%s' found" msgstr "Не найден элемент для URI «%s»" -#: ../gtk/gtkrecentchooserdefault.c:1294 +#: ../gtk/gtkrecentchooserdefault.c:1293 msgid "Untitled filter" msgstr "Неозаглавленный фильтр" -#: ../gtk/gtkrecentchooserdefault.c:1647 +#: ../gtk/gtkrecentchooserdefault.c:1646 msgid "Could not remove item" msgstr "Не удалось удалить элемент" -#: ../gtk/gtkrecentchooserdefault.c:1691 +#: ../gtk/gtkrecentchooserdefault.c:1690 msgid "Could not clear list" msgstr "Не удалось очистить список" -#: ../gtk/gtkrecentchooserdefault.c:1775 +#: ../gtk/gtkrecentchooserdefault.c:1774 msgid "Copy _Location" msgstr "Копировать _адрес" -#: ../gtk/gtkrecentchooserdefault.c:1788 +#: ../gtk/gtkrecentchooserdefault.c:1787 msgid "_Remove From List" msgstr "_Удалить из списка" -#: ../gtk/gtkrecentchooserdefault.c:1797 +#: ../gtk/gtkrecentchooserdefault.c:1796 msgid "_Clear List" msgstr "О_чистить список" -#: ../gtk/gtkrecentchooserdefault.c:1811 +#: ../gtk/gtkrecentchooserdefault.c:1810 msgid "Show _Private Resources" msgstr "_Показать личные ресурсы" @@ -3174,7 +3177,7 @@ msgstr "У_меньшить" #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for #. * the state #. -#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:586 +#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:583 msgctxt "switch" msgid "ON" msgstr "❙ " @@ -3182,7 +3185,7 @@ msgstr "❙ " #. Translators: if the "off" state label requires more than three #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state #. -#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:615 +#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:598 msgctxt "switch" msgid "OFF" msgstr "○" @@ -3356,7 +3359,7 @@ msgstr "Начальный тег «%s» является непредвиден msgid "Unexpected character data on line %d char %d" msgstr "Непредвиденные символьные данные (строка %d, символ %d)" -#: ../gtk/gtkuimanager.c:2738 +#: ../gtk/gtkuimanager.c:2694 msgid "Empty" msgstr "Пусто" @@ -4541,169 +4544,169 @@ msgstr "Приостановлено ; отмена заданий" msgid "Rejecting Jobs" msgstr "Отмена заданий" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2909 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2915 msgid "Two Sided" msgstr "С двух сторон" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2910 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2916 msgid "Paper Type" msgstr "Тип бумаги" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2911 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2917 msgid "Paper Source" msgstr "Источник бумаги" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2912 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2918 msgid "Output Tray" msgstr "Лоток вывода" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2913 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2919 msgid "Resolution" msgstr "Разрешение" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2914 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2920 msgid "GhostScript pre-filtering" msgstr "Фильтрация GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2923 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 msgid "One Sided" msgstr "С одной стороны" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2925 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 msgid "Long Edge (Standard)" msgstr "По длинной стороне" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2927 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 msgid "Short Edge (Flip)" msgstr "По короткой стороне" #. Translators: this is an option of "Paper Source" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 msgid "Auto Select" msgstr "Автовыбор" #. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Resolution" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2941 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3429 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3435 msgid "Printer Default" msgstr "Умолчания принтера" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 msgid "Embed GhostScript fonts only" msgstr "Встраивать только шрифты GhostScript" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2951 msgid "Convert to PS level 1" msgstr "Преобразовать в формат PS уровень 1" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2953 msgid "Convert to PS level 2" msgstr "Преобразовать в формат PS уровень 2" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2955 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/cups/gtkprintbackendcups.c:2958 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2964 msgid "Miscellaneous" msgstr "Дополнительно" #. Translators: These strings name the possible values of the #. * job priority option in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Urgent" msgstr "Срочно" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "High" msgstr "Высокий" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Medium" msgstr "Средний" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Low" msgstr "Низкий" #. Translators, this string is used to label the job priority option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3711 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3717 msgid "Job Priority" msgstr "Приоритет" #. Translators, this string is used to label the billing info entry #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3722 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3728 msgid "Billing Info" msgstr "Расположение" #. Translators, these strings are names for various 'standard' cover #. * pages that the printing system may support. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "None" msgstr "Нет" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Classified" msgstr "Классифицировано" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Confidential" msgstr "Конфиденциально" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Secret" msgstr "Секретно" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Standard" msgstr "Стандарт" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Top Secret" msgstr "Совершенно секретно" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Unclassified" msgstr "Не классифицировано" #. Translators, this string is used to label the pages-per-sheet option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3748 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3754 msgid "Pages per Sheet" msgstr "Страниц на лист" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3808 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3814 msgid "Before" msgstr "До" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3823 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3829 msgid "After" msgstr "После" @@ -4711,14 +4714,14 @@ msgstr "После" #. * a print job is printed. Possible values are 'now', a specified time, #. * or 'on hold' #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3843 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849 msgid "Print at" 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/cups/gtkprintbackendcups.c:3854 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860 msgid "Print at time" msgstr "Время начала печати" @@ -4726,17 +4729,17 @@ msgstr "Время начала печати" #. * size. The two placeholders are replaced with the width and height #. * in points. E.g: "Custom 230.4x142.9" #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895 #, c-format msgid "Custom %sx%s" msgstr "Особый %sx%s" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3970 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3976 msgid "Printer Profile" msgstr "Профиль принтера" #. TRANSLATORS: this is when color profile information is unavailable -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3977 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3983 msgid "Unavailable" msgstr "Недоступно" @@ -4757,7 +4760,6 @@ msgid "Unspecified profile" msgstr "Неопределённый профиль" #: ../modules/printbackends/file/gtkprintbackendfile.c:249 -#| msgid "output.%s" msgid "output" msgstr "вывод" @@ -4837,6 +4839,12 @@ msgstr "тест-печати.%s" msgid "Print to Test Printer" msgstr "Печатать на тестовый принтер" +#~ msgid "Homepage" +#~ msgstr "Домашняя страница" + +#~ msgid "Manage Custom Sizes..." +#~ msgstr "Управление пользовательскими размерами..." + #~ msgid "Caps Lock and Num Lock are on" #~ msgstr "Включены режимы Caps Lock и Num Lock" From 00a107cc4c16ed95142468735969fa82b2b8588f Mon Sep 17 00:00:00 2001 From: Thomas Wood Date: Wed, 20 Feb 2013 13:53:59 +0000 Subject: [PATCH 167/208] wayland: don't attempt to unqueue events when events are paused When events are paused, we should not return TRUE from prepare() or check(). GTK+ handles this for events that are already in the GTK+ queue, but we also need suppress checks for events that are in the system queue - if we return TRUE indicating that there are events in the system queue, then we'll call dispatch(), and do nothing. The event source will spin, and will never run the other phases of the paint clock. https://bugzilla.gnome.org/show_bug.cgi?id=694274 --- gdk/wayland/gdkeventsource.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gdk/wayland/gdkeventsource.c b/gdk/wayland/gdkeventsource.c index 1eff3fbb94..93f68dc3b6 100644 --- a/gdk/wayland/gdkeventsource.c +++ b/gdk/wayland/gdkeventsource.c @@ -37,6 +37,9 @@ gdk_event_source_prepare(GSource *base, gint *timeout) *timeout = -1; + if (source->display->event_pause_count > 0) + return FALSE; + /* We have to add/remove the GPollFD if we want to update our * poll event mask dynamically. Instead, let's just flush all * write on idle instead, which is what this amounts to. */ @@ -57,6 +60,9 @@ gdk_event_source_check(GSource *base) if (source->pfd.revents & (G_IO_ERR | G_IO_HUP)) g_error ("Lost connection to wayland compositor"); + if (source->display->event_pause_count > 0) + return FALSE; + return _gdk_event_queue_find_first (source->display) != NULL || source->pfd.revents; } From df3e19b449815911acb73ead93a0063a9cfeb3bb Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 20 Feb 2013 12:27:07 -0500 Subject: [PATCH 168/208] Broadway/Quartz/Win32: make event source prepare()/check() note paused status When events are paused, we should not return TRUE from prepare() or check(). GTK+ handles this for events that are already in the GTK+ queue, but we also need suppress checks for events that are in the system queue - if we return TRUE indicating that there are events in the system queue, then we'll call dispatch(), and do nothing. The event source will spin, and will never run the other phases of the paint clock. (Broadway doesn't have a window system queue separate from the GDK event queue, but we write the function the same way for consistency.) https://bugzilla.gnome.org/show_bug.cgi?id=694274 --- gdk/broadway/gdkeventsource.c | 10 ++++++++-- gdk/quartz/gdkeventloop-quartz.c | 14 ++++++++++---- gdk/win32/gdkevents-win32.c | 25 +++++++++++++------------ 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/gdk/broadway/gdkeventsource.c b/gdk/broadway/gdkeventsource.c index e9aa2c86b3..a4399c431e 100644 --- a/gdk/broadway/gdkeventsource.c +++ b/gdk/broadway/gdkeventsource.c @@ -61,7 +61,11 @@ gdk_event_source_prepare (GSource *source, gdk_threads_enter (); *timeout = -1; - retval = (_gdk_event_queue_find_first (display) != NULL); + + if (display->event_pause_count > 0) + retval = FALSE; + else + retval = (_gdk_event_queue_find_first (display) != NULL); gdk_threads_leave (); @@ -76,7 +80,9 @@ gdk_event_source_check (GSource *source) gdk_threads_enter (); - if (event_source->event_poll_fd.revents & G_IO_IN) + if (event_source->display->event_pause_count > 0) + retval = FALSE; + else if (event_source->event_poll_fd.revents & G_IO_IN) retval = (_gdk_event_queue_find_first (event_source->display) != NULL); else retval = FALSE; diff --git a/gdk/quartz/gdkeventloop-quartz.c b/gdk/quartz/gdkeventloop-quartz.c index 479cd72a7e..6691744f2c 100644 --- a/gdk/quartz/gdkeventloop-quartz.c +++ b/gdk/quartz/gdkeventloop-quartz.c @@ -620,8 +620,11 @@ gdk_event_prepare (GSource *source, *timeout = -1; - retval = (_gdk_event_queue_find_first (_gdk_display) != NULL || - _gdk_quartz_event_loop_check_pending ()); + if (display->event_pause_count > 0) + retval = FALSE; + else + retval = (_gdk_event_queue_find_first (_gdk_display) != NULL || + _gdk_quartz_event_loop_check_pending ()); gdk_threads_leave (); @@ -635,8 +638,11 @@ gdk_event_check (GSource *source) gdk_threads_enter (); - retval = (_gdk_event_queue_find_first (_gdk_display) != NULL || - _gdk_quartz_event_loop_check_pending ()); + if (display->event_pause_count > 0) + retval = FALSE; + else + retval = (_gdk_event_queue_find_first (_gdk_display) != NULL || + _gdk_quartz_event_loop_check_pending ()); gdk_threads_leave (); diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 962daf2d09..7866f31771 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -3330,9 +3330,12 @@ gdk_event_prepare (GSource *source, *timeout = -1; - retval = (_gdk_event_queue_find_first (_gdk_display) != NULL || - (modal_win32_dialog == NULL && - GetQueueStatus (QS_ALLINPUT) != 0)); + if (display->event_pause_count > 0) + retval = FALSE; + else + retval = (_gdk_event_queue_find_first (_gdk_display) != NULL || + (modal_win32_dialog == NULL && + GetQueueStatus (QS_ALLINPUT) != 0)); gdk_threads_leave (); @@ -3346,16 +3349,14 @@ gdk_event_check (GSource *source) gdk_threads_enter (); - if (event_poll_fd.revents & G_IO_IN) - { - retval = (_gdk_event_queue_find_first (_gdk_display) != NULL || - (modal_win32_dialog == NULL && - GetQueueStatus (QS_ALLINPUT) != 0)); - } + if (display->event_pause_count > 0) + retval = FALSE; + else if (event_poll_fd.revents & G_IO_IN) + retval = (_gdk_event_queue_find_first (_gdk_display) != NULL || + (modal_win32_dialog == NULL && + GetQueueStatus (QS_ALLINPUT) != 0)); else - { - retval = FALSE; - } + retval = FALSE; gdk_threads_leave (); From 983e266fad20e08eff2844bc7573d3d59fea2835 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 20 Feb 2013 14:46:11 -0500 Subject: [PATCH 169/208] Convert pixbuf animation demo (both copies) to GdkFrameClock Use the frame clock instead of a 50ms timeout to animate the spinning pixbufs. https://bugzilla.gnome.org/show_bug.cgi?id=694302 --- demos/gtk-demo/pixbufs.c | 36 +++++++++++++-------------------- demos/pixbuf-demo/pixbuf-demo.c | 31 ++++++++++++++-------------- 2 files changed, 29 insertions(+), 38 deletions(-) diff --git a/demos/gtk-demo/pixbufs.c b/demos/gtk-demo/pixbufs.c index e46abc2d82..d220b7557f 100644 --- a/demos/gtk-demo/pixbufs.c +++ b/demos/gtk-demo/pixbufs.c @@ -16,8 +16,6 @@ #include #include -#define FRAME_DELAY 50 - #define BACKGROUND_NAME "/pixbufs/background.jpg" static const char *image_names[] = { @@ -88,14 +86,17 @@ draw_cb (GtkWidget *widget, return TRUE; } -#define CYCLE_LEN 60 +#define CYCLE_TIME 3000000 /* 3 seconds */ -static int frame_num; +static gint64 start_time; -/* Timeout handler to regenerate the frame */ -static gint -timeout (gpointer data) +/* Handler to regenerate the frame */ +static gboolean +on_tick (GtkWidget *widget, + GdkFrameClock *frame_clock, + gpointer data) { + gint64 current_time; double f; int i; double xmid, ymid; @@ -104,7 +105,11 @@ timeout (gpointer data) gdk_pixbuf_copy_area (background, 0, 0, back_width, back_height, frame, 0, 0); - f = (double) (frame_num % CYCLE_LEN) / CYCLE_LEN; + if (start_time == 0) + start_time = gdk_frame_clock_get_frame_time (frame_clock); + + current_time = gdk_frame_clock_get_frame_time (frame_clock); + f = ((current_time - start_time) % CYCLE_TIME) / (double)CYCLE_TIME; xmid = back_width / 2.0; ymid = back_height / 2.0; @@ -159,20 +164,9 @@ timeout (gpointer data) gtk_widget_queue_draw (da); - frame_num++; return G_SOURCE_CONTINUE; } -static guint timeout_id; - -static void -cleanup_callback (GObject *object, - gpointer data) -{ - g_source_remove (timeout_id); - timeout_id = 0; -} - GtkWidget * do_pixbufs (GtkWidget *do_widget) { @@ -188,8 +182,6 @@ do_pixbufs (GtkWidget *do_widget) g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); - g_signal_connect (window, "destroy", - G_CALLBACK (cleanup_callback), NULL); error = NULL; @@ -224,7 +216,7 @@ do_pixbufs (GtkWidget *do_widget) gtk_container_add (GTK_CONTAINER (window), da); - timeout_id = g_timeout_add (FRAME_DELAY, timeout, NULL); + gtk_widget_add_tick_callback (da, on_tick, NULL, NULL); } } diff --git a/demos/pixbuf-demo/pixbuf-demo.c b/demos/pixbuf-demo/pixbuf-demo.c index 2f1e21f19a..fc8027ed20 100644 --- a/demos/pixbuf-demo/pixbuf-demo.c +++ b/demos/pixbuf-demo/pixbuf-demo.c @@ -25,8 +25,6 @@ -#define FRAME_DELAY 50 - #define BACKGROUND_NAME "background.jpg" static const char *image_names[] = { @@ -93,14 +91,17 @@ draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data) return TRUE; } -#define CYCLE_LEN 60 +#define CYCLE_TIME 3000000 /* 3 seconds */ -static int frame_num; +static gint64 start_time; -/* Timeout handler to regenerate the frame */ -static gint -timeout (gpointer data) +/* Handler to regenerate the frame */ +static gboolean +on_tick (GtkWidget *widget, + GdkFrameClock *frame_clock, + gpointer data) { + gint64 current_time; double f; int i; double xmid, ymid; @@ -109,7 +110,11 @@ timeout (gpointer data) gdk_pixbuf_copy_area (background, 0, 0, back_width, back_height, frame, 0, 0); - f = (double) (frame_num % CYCLE_LEN) / CYCLE_LEN; + if (start_time == 0) + start_time = gdk_frame_clock_get_frame_time (frame_clock); + + current_time = gdk_frame_clock_get_frame_time (frame_clock); + f = ((current_time - start_time) % CYCLE_TIME) / (double)CYCLE_TIME; xmid = back_width / 2.0; ymid = back_height / 2.0; @@ -163,19 +168,13 @@ timeout (gpointer data) gtk_widget_queue_draw (da); - frame_num++; - return TRUE; + return G_SOURCE_CONTINUE; } -static guint timeout_id; - /* Destroy handler for the window */ static void destroy_cb (GObject *object, gpointer data) { - g_source_remove (timeout_id); - timeout_id = 0; - gtk_main_quit (); } @@ -208,7 +207,7 @@ main (int argc, char **argv) gtk_container_add (GTK_CONTAINER (window), da); - timeout_id = gdk_threads_add_timeout (FRAME_DELAY, timeout, NULL); + gtk_widget_add_tick_callback (da, on_tick, NULL, NULL); gtk_widget_show_all (window); gtk_main (); From 8e80fd1ab9eb3c6389b0582eab21b637141e7f92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1?= =?UTF-8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= Date: Thu, 21 Feb 2013 22:25:21 +0400 Subject: [PATCH 170/208] Make sure icon cache has /-separated subdirs only (v2 - use g_build_path) https://bugzilla.gnome.org/show_bug.cgi?id=692955 --- gtk/updateiconcache.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/gtk/updateiconcache.c b/gtk/updateiconcache.c index d3ebd2c117..effea7c6c6 100644 --- a/gtk/updateiconcache.c +++ b/gtk/updateiconcache.c @@ -574,6 +574,23 @@ maybe_cache_icon_data (Image *image, } } +/** + * Finds all dir separators and replaces them with '/'. + * This makes sure that only /-separated paths are written in cache files, + * maintaining compatibility with theme index files that use slashes as + * directory separators on all platforms. + */ +static void +replace_backslashes_with_slashes (gchar *path) +{ + size_t i; + if (path == NULL) + return; + for (i = 0; path[i]; i++) + if (G_IS_DIR_SEPARATOR (path[i])) + path[i] = '/'; +} + static GList * scan_directory (const gchar *base_path, const gchar *subdir, @@ -588,7 +605,7 @@ scan_directory (const gchar *base_path, gboolean dir_added = FALSE; guint dir_index = 0xffff; - dir_path = g_build_filename (base_path, subdir, NULL); + dir_path = g_build_path ("/", base_path, subdir, NULL); /* FIXME: Use the gerror */ dir = g_dir_open (dir_path, 0, NULL); @@ -607,13 +624,14 @@ scan_directory (const gchar *base_path, gchar *basename, *dot; path = g_build_filename (dir_path, name, NULL); + retval = g_file_test (path, G_FILE_TEST_IS_DIR); if (retval) { gchar *subsubdir; if (subdir) - subsubdir = g_build_filename (subdir, name, NULL); + subsubdir = g_build_path ("/", subdir, name, NULL); else subsubdir = g_strdup (name); directories = scan_directory (base_path, subsubdir, files, @@ -1736,6 +1754,7 @@ main (int argc, char **argv) if (!force_update && is_cache_up_to_date (path)) return 0; + replace_backslashes_with_slashes (path); build_cache (path); if (strcmp (var_name, "-") != 0) From a41b73fbc71f613e4ca90ae8b9dd3bd317d026d6 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Thu, 21 Feb 2013 12:55:50 -0600 Subject: [PATCH 171/208] GtkWidget::draw() - Document how to get the dirty region Signed-off-by: Federico Mena Quintero --- gtk/gtkwidget.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index a0301e8ba3..6cbe0ffb62 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -1805,6 +1805,13 @@ gtk_widget_class_init (GtkWidgetClass *klass) * restore it. The signal emission takes care of calling cairo_save() * before and cairo_restore() after invoking the handler. * + * The signal handler will get a @cr with a clip region already set to the + * widget's dirty region, i.e. to the area that needs repainting. Complicated + * widgets that want to avoid redrawing themselves completely can get the full + * extents of the clip region with gdk_cairo_get_clip_rectangle(), or they can + * get a finer-grained representation of the dirty region with + * cairo_copy_clip_rectangle_list(). + * * Returns: %TRUE to stop other handlers from being invoked for the event. % %FALSE to propagate the event further. * From 1708ae3f1a962d3bbfcc0e673c5fa9f629d16eae Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Thu, 21 Feb 2013 18:44:38 -0600 Subject: [PATCH 172/208] filechooserbutton: Don't ever use gtk_file_chooser_get_files() The file chooser button only supports single-selection modes, so switch the code to a simpler gtk_file_chooser_get_file() to avoid dealing with GSLists of a single file. Signed-off-by: Federico Mena Quintero --- gtk/gtkfilechooserbutton.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/gtk/gtkfilechooserbutton.c b/gtk/gtkfilechooserbutton.c index 47f5240237..c66769382c 100644 --- a/gtk/gtkfilechooserbutton.c +++ b/gtk/gtkfilechooserbutton.c @@ -2346,13 +2346,13 @@ static void update_combo_box (GtkFileChooserButton *button) { GtkFileChooserButtonPrivate *priv = button->priv; - GSList *files; + GFile *file; GtkTreeIter iter; gboolean row_found; gtk_tree_model_get_iter_first (priv->filter_model, &iter); - files = gtk_file_chooser_get_files (GTK_FILE_CHOOSER (priv->dialog)); + file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (priv->dialog)); row_found = FALSE; @@ -2375,9 +2375,7 @@ update_combo_box (GtkFileChooserButton *button) case ROW_TYPE_SHORTCUT: case ROW_TYPE_BOOKMARK: case ROW_TYPE_CURRENT_FOLDER: - row_found = (files && - files->data && - g_file_equal (data, files->data)); + row_found = (file && g_file_equal (data, file)); break; case ROW_TYPE_VOLUME: { @@ -2386,9 +2384,7 @@ update_combo_box (GtkFileChooserButton *button) base_file = _gtk_file_system_volume_get_root (data); if (base_file) { - row_found = (files && - files->data && - g_file_equal (base_file, files->data)); + row_found = (file && g_file_equal (base_file, file)); g_object_unref (base_file); } } @@ -2410,12 +2406,12 @@ update_combo_box (GtkFileChooserButton *button) while (!row_found && gtk_tree_model_iter_next (priv->filter_model, &iter)); /* If it hasn't been found already, update & select the current-folder row. */ - if (!row_found && files && files->data) + if (!row_found && file) { GtkTreeIter filter_iter; gint pos; - model_update_current_folder (button, files->data); + model_update_current_folder (button, file); gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (priv->filter_model)); pos = model_get_type_position (button, ROW_TYPE_CURRENT_FOLDER); @@ -2429,8 +2425,8 @@ update_combo_box (GtkFileChooserButton *button) g_signal_handler_unblock (priv->combo_box, priv->combo_box_changed_id); } - g_slist_foreach (files, (GFunc) g_object_unref, NULL); - g_slist_free (files); + if (file) + g_object_unref (file); } /* Button */ @@ -2476,9 +2472,9 @@ update_label_and_image (GtkFileChooserButton *button) { GtkFileChooserButtonPrivate *priv = button->priv; gchar *label_text; - GSList *files; + GFile *file; - files = gtk_file_chooser_get_files (GTK_FILE_CHOOSER (priv->dialog)); + file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (priv->dialog)); label_text = NULL; if (priv->update_button_cancellable) @@ -2487,13 +2483,10 @@ update_label_and_image (GtkFileChooserButton *button) priv->update_button_cancellable = NULL; } - if (files && files->data) + if (file) { - GFile *file; GtkFileSystemVolume *volume = NULL; - file = files->data; - volume = _gtk_file_system_get_volume_for_file (priv->fs, file); if (volume) { @@ -2543,10 +2536,10 @@ update_label_and_image (GtkFileChooserButton *button) if (pixbuf) g_object_unref (pixbuf); } + + g_object_unref (file); } out: - g_slist_foreach (files, (GFunc) g_object_unref, NULL); - g_slist_free (files); if (label_text) { From 89338dff4ec803e63aefe984aa66a52f37ecc195 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Fri, 22 Feb 2013 13:09:50 +0800 Subject: [PATCH 173/208] Add Visual Studio project for gtk3-demo-application This is used by the "Application Class" demo... so this should be built as well especially as we are getting gspawn-win{32|64}-helper.exe fixed on Visual Studio 2005 (and later) builds. --- build/win32/vs10/Makefile.am | 2 + build/win32/vs10/gtk+.sln | 10 ++ .../win32/vs10/gtk3-demo-application.vcxproj | 170 ++++++++++++++++++ .../gtk3-demo-application.vcxproj.filters | 25 +++ build/win32/vs10/install.vcxproj | 4 + build/win32/vs9/Makefile.am | 1 + build/win32/vs9/gtk+.sln | 15 ++ build/win32/vs9/gtk3-demo-application.vcproj | 169 +++++++++++++++++ 8 files changed, 396 insertions(+) create mode 100644 build/win32/vs10/gtk3-demo-application.vcxproj create mode 100644 build/win32/vs10/gtk3-demo-application.vcxproj.filters create mode 100644 build/win32/vs9/gtk3-demo-application.vcproj diff --git a/build/win32/vs10/Makefile.am b/build/win32/vs10/Makefile.am index ac7c43b1d7..9f93d4c35d 100644 --- a/build/win32/vs10/Makefile.am +++ b/build/win32/vs10/Makefile.am @@ -16,6 +16,8 @@ EXTRA_DIST += \ gtk.vcxproj.filtersin \ gtk3-demo.vcxproj \ gtk3-demo.vcxproj.filters \ + gtk3-demo-application.vcxproj \ + gtk3-demo-application.vcxproj.filters \ gtka11y.vcxproj \ gtka11y.vcxproj.filters \ gtka11y.vcxprojin \ diff --git a/build/win32/vs10/gtk+.sln b/build/win32/vs10/gtk+.sln index 25fe37c347..de9744f620 100644 --- a/build/win32/vs10/gtk+.sln +++ b/build/win32/vs10/gtk+.sln @@ -8,6 +8,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk", "gtk.vcxproj", "{FC5A EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcxproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo-application", "gtk3-demo-application.vcxproj", "{3281202A-CD26-4C67-B892-EB34BDBC612F}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtka11y", "gtka11y.vcxproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gailutil", "gailutil.vcxproj", "{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}" @@ -78,6 +80,14 @@ Global {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FB}.Release|Win32.Build.0 = Release|Win32 {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FB}.Release|x64.ActiveCfg = Release|x64 {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FB}.Release|x64.Build.0 = Release|x64 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|Win32.ActiveCfg = Debug|Win32 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|Win32.Build.0 = Debug|Win32 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|x64.ActiveCfg = Debug|x64 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|x64.Build.0 = Debug|x64 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|Win32.ActiveCfg = Release|Win32 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|Win32.Build.0 = Release|Win32 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|x64.ActiveCfg = Release|x64 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/build/win32/vs10/gtk3-demo-application.vcxproj b/build/win32/vs10/gtk3-demo-application.vcxproj new file mode 100644 index 0000000000..5550650e5f --- /dev/null +++ b/build/win32/vs10/gtk3-demo-application.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {3281202A-CD26-4C67-B892-EB34BDBC612F} + gtk3demoapplication + Win32Proj + + + + Application + Unicode + true + + + Application + Unicode + + + Application + Unicode + true + + + Application + Unicode + + + + + + + + + + + + + + + + + + + + + + + true + false + true + false + + + + Disabled + _DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + + + true + Console + MachineX86 + + + + + MaxSpeed + true + %(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + true + Console + true + true + MachineX86 + + + + + X64 + + + Disabled + _DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + ProgramDatabase + + + true + Console + MachineX64 + + + + + X64 + + + MaxSpeed + true + %(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + true + Console + true + true + MachineX64 + + + + + + + + + {fc5aadb5-95cd-4bf0-ba8b-0c16fe7073f7} + false + + + {fc5aadb5-95cd-4bf0-ba8b-0c16fe7073f5} + false + + + + + + \ No newline at end of file diff --git a/build/win32/vs10/gtk3-demo-application.vcxproj.filters b/build/win32/vs10/gtk3-demo-application.vcxproj.filters new file mode 100644 index 0000000000..15cf8f362e --- /dev/null +++ b/build/win32/vs10/gtk3-demo-application.vcxproj.filters @@ -0,0 +1,25 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Sources + + + Sources + + + \ No newline at end of file diff --git a/build/win32/vs10/install.vcxproj b/build/win32/vs10/install.vcxproj index 3b345edd31..0e48da42fd 100644 --- a/build/win32/vs10/install.vcxproj +++ b/build/win32/vs10/install.vcxproj @@ -113,6 +113,10 @@ {29e3e814-1ba3-4ad7-a3a7-3669cb80a942} false + + {3281202a-cd26-4c67-b892-eb34bdbc612f} + false + diff --git a/build/win32/vs9/Makefile.am b/build/win32/vs9/Makefile.am index 10bdd326aa..02437aaf63 100644 --- a/build/win32/vs9/Makefile.am +++ b/build/win32/vs9/Makefile.am @@ -10,6 +10,7 @@ EXTRA_DIST += \ gtk.vcproj \ gtk.vcprojin \ gtk3-demo.vcproj \ + gtk3-demo-application.vcproj \ gtka11y.vcproj \ gtka11y.vcprojin \ gailutil.vcproj \ diff --git a/build/win32/vs9/gtk+.sln b/build/win32/vs9/gtk+.sln index 13c22f9d87..6de8d3ccd7 100644 --- a/build/win32/vs9/gtk+.sln +++ b/build/win32/vs9/gtk+.sln @@ -19,6 +19,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcpr {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo-application", "gtk3-demo-application.vcproj", "{3281202A-CD26-4C67-B892-EB34BDBC612F}" + ProjectSection(ProjectDependencies) = postProject + {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7} + {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtka11y", "gtka11y.vcproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gailutil", "gailutil.vcproj", "{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}" @@ -33,6 +39,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcproj", {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC} {29E3E814-1BA3-4AD7-A3A7-3669CB80A942} = {29E3E814-1BA3-4AD7-A3A7-3669CB80A942} + {3281202A-CD26-4C67-B892-EB34BDBC612F} = {3281202A-CD26-4C67-B892-EB34BDBC612F} EndProjectSection EndProject Global @@ -99,6 +106,14 @@ Global {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|Win32.Build.0 = Release|Win32 {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|x64.ActiveCfg = Release|x64 {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|x64.Build.0 = Release|x64 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|Win32.ActiveCfg = Debug|Win32 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|Win32.Build.0 = Debug|Win32 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|x64.ActiveCfg = Debug|x64 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|x64.Build.0 = Debug|x64 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|Win32.ActiveCfg = Release|Win32 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|Win32.Build.0 = Release|Win32 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|x64.ActiveCfg = Release|x64 + {3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/build/win32/vs9/gtk3-demo-application.vcproj b/build/win32/vs9/gtk3-demo-application.vcproj new file mode 100644 index 0000000000..f6ba10a73b --- /dev/null +++ b/build/win32/vs9/gtk3-demo-application.vcproj @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From f50ce1f7aadae5dbd05ea93bfca2a586f60ed5fe Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Fri, 22 Feb 2013 13:13:54 +0800 Subject: [PATCH 174/208] Re-organize Visual Studio property sheets a bit -Use ApiVersion instead of GtkApiVersion for consistency's sake across the board -Add placeholder directives in the property sheets for building introspection files using .bat files directly from the Visual Studio IDE. --- build/win32/vs10/gailutil.vcxproj | 8 +- build/win32/vs10/gdk.vcxprojin | 8 +- build/win32/vs10/gtk+.props | 713 ++++++++++++++++-------------- build/win32/vs10/gtk.vcxprojin | 8 +- build/win32/vs9/gailutil.vcproj | 8 +- build/win32/vs9/gdk.vcprojin | 8 +- build/win32/vs9/gtk+.vsprops | 700 +++++++++++++++-------------- build/win32/vs9/gtk.vcprojin | 8 +- 8 files changed, 758 insertions(+), 703 deletions(-) diff --git a/build/win32/vs10/gailutil.vcxproj b/build/win32/vs10/gailutil.vcxproj index 6cb4341a60..c41bdfb613 100644 --- a/build/win32/vs10/gailutil.vcxproj +++ b/build/win32/vs10/gailutil.vcxproj @@ -90,7 +90,7 @@ $(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll true ..\..\..\libgail-util\gailutil.def - $(TargetDir)$(ProjectName)-$(GtkApiVersion).lib + $(TargetDir)$(ProjectName)-$(ApiVersion).lib Windows MachineX86 @@ -114,7 +114,7 @@ ..\..\..\libgail-util\gailutil.def true Windows - $(TargetDir)$(ProjectName)-$(GtkApiVersion).lib + $(TargetDir)$(ProjectName)-$(ApiVersion).lib MachineX64 @@ -136,7 +136,7 @@ $(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll true ..\..\..\libgail-util\gailutil.def - $(TargetDir)$(ProjectName)-$(GtkApiVersion).lib + $(TargetDir)$(ProjectName)-$(ApiVersion).lib Windows true true @@ -161,7 +161,7 @@ Windows true true - $(TargetDir)$(ProjectName)-$(GtkApiVersion).lib + $(TargetDir)$(ProjectName)-$(ApiVersion).lib MachineX64 diff --git a/build/win32/vs10/gdk.vcxprojin b/build/win32/vs10/gdk.vcxprojin index 4eb739b9cf..414c34210a 100644 --- a/build/win32/vs10/gdk.vcxprojin +++ b/build/win32/vs10/gdk.vcxprojin @@ -91,7 +91,7 @@ $(IntDir)gdk.def true Windows - $(TargetDir)$(ProjectName)-$(GtkApiVersion).lib + $(TargetDir)$(ProjectName)-$(ApiVersion).lib MachineX86 @@ -113,7 +113,7 @@ Windows true true - $(TargetDir)$(ProjectName)-$(GtkApiVersion).lib + $(TargetDir)$(ProjectName)-$(ApiVersion).lib MachineX86 @@ -136,7 +136,7 @@ $(IntDir)gdk.def true Windows - $(TargetDir)$(ProjectName)-$(GtkApiVersion).lib + $(TargetDir)$(ProjectName)-$(ApiVersion).lib MachineX64 @@ -158,7 +158,7 @@ Windows true true - $(TargetDir)$(ProjectName)-$(GtkApiVersion).lib + $(TargetDir)$(ProjectName)-$(ApiVersion).lib MachineX64 diff --git a/build/win32/vs10/gtk+.props b/build/win32/vs10/gtk+.props index 15c5133a11..89352632c9 100644 --- a/build/win32/vs10/gtk+.props +++ b/build/win32/vs10/gtk+.props @@ -1,16 +1,18 @@  - ..\..\..\..\vs10\$(Platform) + 10 + ..\..\..\..\vs$(VSVer)\$(Platform) + ..\..\..\vs$(VSVer)\$(Platform) $(GlibEtcInstallRoot) $(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName) - 3.0 + 3.0 3.0.0 \"/dummy\" GTK_PREFIX="\"$(GtkDummyPrefix)\"" GDK_COMPILATION;G_LOG_DOMAIN="\"Gdk\"" INCLUDE_IM_am_et;INCLUDE_IM_cedilla;INCLUDE_IM_cyrillic_translit;INCLUDE_IM_ime;INCLUDE_IM_inuktitut;INCLUDE_IM_ipa;INCLUDE_IM_multipress;INCLUDE_IM_thai;INCLUDE_IM_ti_er;INCLUDE_IM_ti_et;INCLUDE_IM_viqr - GTK_COMPILATION;G_LOG_DOMAIN="\"Gtk\"";GTK_HOST="\"i686-pc-vs10\"";GTK_PRINT_BACKENDS="\"file\"";GTK_PRINT_PREVIEW_COMMAND="\"undefined-gtk-print-preview-command\"";$(GtkIncludedImmodulesDefines);GTK_LIBDIR="\"$(GtkDummyPrefix)/lib\"";GTK_DATADIR="\"$(GtkDummyPrefix)/share\"";GTK_DATA_PREFIX="\"$(GtkDummyPrefix)\"";GTK_SYSCONFDIR="\"$(GtkDummyPrefix)/etc\"";MULTIPRESS_CONFDIR="\"$(GtkDummyPrefix)/etc/gtk-$(GtkApiVersion)\"";MULTIPRESS_LOCALEDIR="\"$(GtkDummyPrefix)/share/locale\"";GTK_VERSION="\"$(GtkVersion)/etc\"";GTK_BINARY_VERSION="\"$(GtkBinaryVersion)/etc\"";GDK_DISABLE_DEPRECATED + GTK_COMPILATION;G_LOG_DOMAIN="\"Gtk\"";GTK_HOST="\"i686-pc-vs$(VSVer)\"";GTK_PRINT_BACKENDS="\"file\"";GTK_PRINT_PREVIEW_COMMAND="\"undefined-gtk-print-preview-command\"";$(GtkIncludedImmodulesDefines);GTK_LIBDIR="\"$(GtkDummyPrefix)/lib\"";GTK_DATADIR="\"$(GtkDummyPrefix)/share\"";GTK_DATA_PREFIX="\"$(GtkDummyPrefix)\"";GTK_SYSCONFDIR="\"$(GtkDummyPrefix)/etc\"";MULTIPRESS_CONFDIR="\"$(GtkDummyPrefix)/etc/gtk-$(ApiVersion)\"";MULTIPRESS_LOCALEDIR="\"$(GtkDummyPrefix)/share/locale\"";GTK_VERSION="\"$(GtkVersion)/etc\"";GTK_BINARY_VERSION="\"$(GtkBinaryVersion)/etc\"";GDK_DISABLE_DEPRECATED echo on @@ -21,676 +23,682 @@ copy $(Configuration)\$(Platform)\bin\*.dll $(CopyDir)\bin copy $(Configuration)\$(Platform)\bin\*.exe $(CopyDir)\bin -mkdir $(CopyDir)\share\gtk-$(GtkApiVersion)\demo +mkdir $(CopyDir)\share\gtk-$(ApiVersion)\demo -copy ..\..\..\demos\gtk-demo\*.c $(CopyDir)\share\gtk-$(GtkApiVersion)\demo +copy ..\..\..\demos\gtk-demo\*.c $(CopyDir)\share\gtk-$(ApiVersion)\demo -copy ..\..\..\demos\gtk-demo\*.css $(CopyDir)\share\gtk-$(GtkApiVersion)\demo +copy ..\..\..\demos\gtk-demo\*.css $(CopyDir)\share\gtk-$(ApiVersion)\demo -copy ..\..\..\demos\gtk-demo\*.h $(CopyDir)\share\gtk-$(GtkApiVersion)\demo +copy ..\..\..\demos\gtk-demo\*.h $(CopyDir)\share\gtk-$(ApiVersion)\demo -copy ..\..\..\demos\gtk-demo\*.ui $(CopyDir)\share\gtk-$(GtkApiVersion)\demo +copy ..\..\..\demos\gtk-demo\*.ui $(CopyDir)\share\gtk-$(ApiVersion)\demo -copy ..\..\..\demos\gtk-demo\*.jpg $(CopyDir)\share\gtk-$(GtkApiVersion)\demo +copy ..\..\..\demos\gtk-demo\*.jpg $(CopyDir)\share\gtk-$(ApiVersion)\demo -copy ..\..\..\demos\gtk-demo\*.png $(CopyDir)\share\gtk-$(GtkApiVersion)\demo +copy ..\..\..\demos\gtk-demo\*.png $(CopyDir)\share\gtk-$(ApiVersion)\demo -copy ..\..\..\demos\gtk-demo\*.gif $(CopyDir)\share\gtk-$(GtkApiVersion)\demo +copy ..\..\..\demos\gtk-demo\*.gif $(CopyDir)\share\gtk-$(ApiVersion)\demo mkdir $(CopyDir)\lib -copy $(Configuration)\$(Platform)\bin\*-$(GtkApiVersion).lib $(CopyDir)\lib +copy $(Configuration)\$(Platform)\bin\*-$(ApiVersion).lib $(CopyDir)\lib -mkdir $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdk.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdk.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkapplaunchcontext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkapplaunchcontext.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkcairo.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkcairo.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkcolor.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkcolor.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkcursor.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkcursor.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkdevice.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkdevice.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkdevicemanager.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkdevicemanager.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkdisplay.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkdisplay.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkdisplaymanager.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkdisplaymanager.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkdnd.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkdnd.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkenumtypes.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkenumtypes.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkevents.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkevents.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkkeys.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkframeclock.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkkeysyms.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkframetimings.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkmain.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkkeys.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkpango.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkkeysyms.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkpixbuf.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkmain.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkprivate.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkpango.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkproperty.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkpixbuf.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkrectangle.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkprivate.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkrgba.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkproperty.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkscreen.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkrectangle.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkselection.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkrgba.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdktestutils.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkscreen.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkthreads.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkselection.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdktypes.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdktestutils.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkversionmacros.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkthreads.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkvisual.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdktypes.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\win32\gdkwin32.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkversionmacros.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\gdkwindow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk +copy ..\..\..\gdk\gdkvisual.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk +copy ..\..\..\gdk\win32\gdkwin32.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -mkdir $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32 +copy ..\..\..\gdk\gdkwindow.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk -copy ..\..\..\gdk\win32\gdkwin32cursor.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32 -copy ..\..\..\gdk\win32\gdkwin32display.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32 +mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32 -copy ..\..\..\gdk\win32\gdkwin32displaymanager.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32 +copy ..\..\..\gdk\win32\gdkwin32cursor.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32 -copy ..\..\..\gdk\win32\gdkwin32dnd.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32 +copy ..\..\..\gdk\win32\gdkwin32display.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32 -copy ..\..\..\gdk\win32\gdkwin32keys.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32 +copy ..\..\..\gdk\win32\gdkwin32displaymanager.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32 -copy ..\..\..\gdk\win32\gdkwin32screen.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32 +copy ..\..\..\gdk\win32\gdkwin32dnd.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32 -copy ..\..\..\gdk\win32\gdkwin32window.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32 +copy ..\..\..\gdk\win32\gdkwin32keys.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32 +copy ..\..\..\gdk\win32\gdkwin32screen.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32 -mkdir $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gdk\win32\gdkwin32window.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32 -copy ..\..\..\gtk\gtk.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk -copy ..\..\..\gtk\gtkx.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtk-a11y.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtk.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkaboutdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkx.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkaccelgroup.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtk-a11y.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkaccelgroupprivate.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkaboutdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkaccellabel.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkaccelgroup.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkaccelmap.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkaccelgroupprivate.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkaccellabel.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkaction.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkaccelmap.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkactiongroup.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkactionable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkaction.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkactivatable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkactiongroup.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkadjustment.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkactionable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkalignment.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkactivatable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkappchooser.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkadjustment.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkappchooserbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkalignment.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkappchooserdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkappchooser.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkappchooserwidget.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkappchooserbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkapplication.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkappchooserdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkapplicationwindow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkappchooserwidget.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkarrow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkapplication.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkaspectframe.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkapplicationwindow.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkassistant.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkarrow.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkbbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkaspectframe.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkbin.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkassistant.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkbindings.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkbbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkbin.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkborder.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkbindings.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkbuildable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkbuilder.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkborder.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkbuildable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcalendar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkbuilder.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellarea.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellareabox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcalendar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellareacontext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellarea.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcelleditable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellareabox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcelllayout.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellareacontext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellrenderer.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcelleditable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellrendereraccel.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcelllayout.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellrenderercombo.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellrenderer.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellrendererpixbuf.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellrendereraccel.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellrendererprogress.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellrenderercombo.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellrendererspin.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellrendererpixbuf.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellrendererspinner.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellrendererprogress.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellrenderertext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellrendererspin.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellrenderertoggle.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellrendererspinner.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcellview.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellrenderertext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcheckbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellrenderertoggle.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcheckmenuitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcellview.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkclipboard.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcheckbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcolorbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcheckmenuitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcolorchooser.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkclipboard.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcolorchooserwidget.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcolorbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcolorchooserdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcolorchooser.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcolorutils.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcolorchooserwidget.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcombobox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcolorchooserdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcomboboxtext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcolorutils.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcontainer.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcombobox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcssprovider.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcomboboxtext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkcsssection.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcontainer.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkdebug.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcssprovider.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkcsssection.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkdnd.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkdebug.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkdrawingarea.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkeditable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkdnd.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkentry.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkdrawingarea.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkentrybuffer.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkeditable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkentrycompletion.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkentry.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkenums.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkentrybuffer.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkeventbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkentrycompletion.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkexpander.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkenums.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkfilechooser.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkeventbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkfilechooserbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkexpander.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkfilechooserdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkfilechooser.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkfilechooserwidget.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkfilechooserbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkfilefilter.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkfilechooserdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkfixed.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkfilechooserwidget.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkfontbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkfilefilter.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkfontchooser.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkfixed.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkfontchooserdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkfontbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkfontchooserwidget.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkfontchooser.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkframe.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkfontchooserdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkgrid.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkfontchooserwidget.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkiconfactory.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkframe.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkicontheme.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkgrid.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkiconview.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkiconfactory.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkimage.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkicontheme.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkimagemenuitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkiconview.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkimcontext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkimage.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkimcontextinfo.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkimagemenuitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkimcontextsimple.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkimcontext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkimmodule.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkimcontextinfo.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkimmulticontext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkimcontextsimple.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkinfobar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkimmodule.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkinvisible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkimmulticontext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtklabel.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkinfobar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtklayout.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkinvisible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtklevelbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtklabel.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtklinkbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtklayout.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkliststore.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtklevelbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtklockbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtklinkbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkmain.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkliststore.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkmenu.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtklockbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkmenubar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkmain.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkmenubutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkmenu.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkmenuitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkmenubar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkmenushell.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkmenubutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkmenutoolbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkmenuitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkmessagedialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkmenushell.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkmisc.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkmenutoolbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkmodules.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkmessagedialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkmountoperation.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkmisc.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtknotebook.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkmodules.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtknumerableicon.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkmountoperation.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkoffscreenwindow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtknotebook.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkorientable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtknumerableicon.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkoverlay.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkoffscreenwindow.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkpagesetup.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkorientable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkpaned.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkoverlay.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkpapersize.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkpagesetup.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkplug.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkpaned.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkprintcontext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkpapersize.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkprintoperation.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkplug.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkprintoperationpreview.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkprintcontext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkprintsettings.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkprintoperation.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkprivate.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkprintoperationpreview.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkprivatetypebuiltins.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkprintsettings.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkprogressbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkprivate.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkradioaction.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkprivatetypebuiltins.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkradiobutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkprogressbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkradiomenuitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkradioaction.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkradiotoolbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkradiobutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkrange.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkradiomenuitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkrecentaction.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkradiotoolbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkrecentchooser.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkrange.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkrecentchooserdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkrecentaction.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkrecentchoosermenu.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkrecentchooser.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkrecentchooserwidget.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkrecentchooserdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkrecentfilter.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkrecentchoosermenu.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkrecentmanager.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkrecentchooserwidget.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkscale.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkrecentfilter.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkscalebutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkrecentmanager.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkscrollable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkscale.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkscrollbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkscalebutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkscrolledwindow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkscrollable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtksearchentry.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkscrollbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkselection.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkscrolledwindow.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkseparator.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtksearchentry.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkseparatormenuitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkselection.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkseparatortoolitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkseparator.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtksettings.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkseparatormenuitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkshow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkseparatortoolitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtksizegroup.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtksettings.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtksizerequest.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkshow.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtksocket.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtksizegroup.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkspinbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtksizerequest.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkspinner.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtksocket.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkstatusbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkspinbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkstatusicon.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkspinner.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkstock.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkstatusbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkstylecontext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkstatusicon.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkstyleproperties.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkstock.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkstyleprovider.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkstylecontext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkswitch.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkstyleproperties.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktestutils.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkstyleprovider.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktextattributes.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkswitch.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktextbuffer.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktestutils.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktextbufferrichtext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktextattributes.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktextchild.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktextbuffer.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktextdisplay.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktextbufferrichtext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktextiter.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktextchild.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktextlayout.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktextdisplay.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktextmark.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktextiter.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktexttag.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktextlayout.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktexttagtable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktextmark.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktextview.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktexttag.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkthemingengine.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktexttagtable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktoggleaction.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktextview.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktogglebutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkthemingengine.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktoggletoolbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktoggleaction.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktoolbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktogglebutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktoolbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktoggletoolbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktoolitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktoolbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktoolitemgroup.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktoolbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktoolpalette.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktoolitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktoolshell.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktoolitemgroup.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktooltip.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktoolpalette.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktreednd.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktoolshell.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktreemodel.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktooltip.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktreemodelfilter.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktreednd.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktreemodelsort.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktreemodel.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktreeselection.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktreemodelfilter.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktreesortable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktreemodelsort.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktreestore.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktreeselection.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktreeview.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktreesortable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktreeviewcolumn.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktreestore.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktypebuiltins.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktreeview.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtktypes.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktreeviewcolumn.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkuimanager.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktypebuiltins.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkversion.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtktypes.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkviewport.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkuimanager.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkvolumebutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkversion.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkwidget.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkviewport.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkwidgetpath.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkvolumebutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\gtkwindow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk +copy ..\..\..\gtk\gtkwidget.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk +copy ..\..\..\gtk\gtkwidgetpath.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -mkdir $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\gtkwindow.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk -copy ..\..\..\gtk\deprecated\gtkcolorsel.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkcolorseldialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkfontsel.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkcolorsel.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkgradient.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkcolorseldialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkhandlebox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkfontsel.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkhbbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkgradient.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkhbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkhandlebox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkhpaned.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkhbbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkhscale.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkhbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkhsv.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkhpaned.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkhscrollbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkhscale.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkhseparator.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkhsv.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkrc.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkhscrollbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkstyle.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkhseparator.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtksymboliccolor.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkrc.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtktable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkstyle.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtktearoffmenuitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtksymboliccolor.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkvbbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtktable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkvbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtktearoffmenuitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkvscale.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkvbbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkvscrollbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkvbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkvseparator.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkvscale.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\deprecated\gtkvpaned.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkvscrollbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated +copy ..\..\..\gtk\deprecated\gtkvseparator.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -mkdir $(CopyDir)\include\gtk-$(GtkApiVersion)\a11y +copy ..\..\..\gtk\deprecated\gtkvpaned.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated -copy ..\..\..\gtk\a11y\gtkarrowaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +mkdir $(CopyDir)\include\gtk-$(ApiVersion)\a11y -copy ..\..\..\gtk\a11y\gtkbooleancellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkbuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkarrowaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkcellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkbooleancellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkcellaccessibleparent.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkbuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkcheckmenuitemaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkcellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkcomboboxaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkcellaccessibleparent.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkcontaineraccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkcheckmenuitemaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkcontainercellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkcomboboxaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkentryaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkcontaineraccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkexpanderaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkcontainercellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkframeaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkentryaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkiconviewaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkexpanderaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkimageaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkframeaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkimagecellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkiconviewaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtklabelaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkimageaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtklinkbuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkimagecellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtklockbuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtklabelaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkmenuaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtklevelbaraccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkmenuitemaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtklinkbuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkmenushellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtklockbuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtknotebookaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkmenuaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtknotebookpageaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkmenuitemaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkpanedaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkmenushellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkprogressbaraccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtknotebookaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkradiobuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtknotebookpageaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkradiomenuitemaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkpanedaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkrangeaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkprogressbaraccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkrenderercellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkradiobuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkscaleaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkradiomenuitemaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkscalebuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkrangeaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkscrolledwindowaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkrenderercellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkspinbuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkscaleaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkspinneraccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkscalebuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkstatusbaraccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkscrolledwindowaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkswitchaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkspinbuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtktextcellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkspinneraccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtktextviewaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkstatusbaraccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtktogglebuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkswitchaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtktoplevelaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtktextcellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtktreeviewaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtktextviewaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkwidgetaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtktogglebuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\gtk\a11y\gtkwindowaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtktoplevelaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtktreeviewaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y +copy ..\..\..\gtk\a11y\gtkwidgetaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -mkdir $(CopyDir)\include\gail-$(GtkApiVersion)\libgail-util +copy ..\..\..\gtk\a11y\gtkwindowaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y -copy ..\..\..\libgail-util\gail-util.h $(CopyDir)\include\gail-$(GtkApiVersion)\libgail-util -copy ..\..\..\libgail-util\gailmisc.h $(CopyDir)\include\gail-$(GtkApiVersion)\libgail-util -copy ..\..\..\libgail-util\gailtextutil.h $(CopyDir)\include\gail-$(GtkApiVersion)\libgail-util +mkdir $(CopyDir)\include\gail-$(ApiVersion)\libgail-util + +copy ..\..\..\libgail-util\gail-util.h $(CopyDir)\include\gail-$(ApiVersion)\libgail-util + +copy ..\..\..\libgail-util\gailmisc.h $(CopyDir)\include\gail-$(ApiVersion)\libgail-util + +copy ..\..\..\libgail-util\gailtextutil.h $(CopyDir)\include\gail-$(ApiVersion)\libgail-util copy ..\..\..\gdk\gdkconfig.h $(CopyDir)\include\gtk-3.0\gdk -copy $(Configuration)\$(Platform)\bin\*-$(GtkApiVersion).lib $(CopyDir)\lib +copy $(Configuration)\$(Platform)\bin\*-$(ApiVersion).lib $(CopyDir)\lib mkdir $(CopyDir)\share\glib-2.0\schemas @@ -699,20 +707,32 @@ copy ..\..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(CopyDir)\share\glib copy ..\..\..\gtk\org.gtk.Settings.ColorChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas +copy ..\..\..\demos\gtk-demo\org.gtk.Demo.gschema.xml $(CopyDir)\share\glib-2.0\schemas + echo "Compiling gsettings XML Files..." $(CopyDir)\bin\glib-compile-schemas.exe $(CopyDir)\share\glib-2.0\schemas + +set VSVER=$(VSVer) +set CONF=$(Configuration) +set PLAT=$(Platform) +set BASEDIR=$(GlibEtcInstallRootFromBuildWin32) +cd .. +call gengir_gtk.bat + +cd vs$(VSVer) + echo EXPORTS >"$(DefDir)\gdk.def" && cl /EP -DGDK_WINDOWING_WIN32 -DALL_FILES -DG_GNUC_CONST= ..\..\..\gdk\gdk.symbols >>"$(DefDir)\gdk.def" echo EXPORTS >"$(DefDir)\gtk.def" && cl /EP -DGDK_WINDOWING_WIN32 -DINCLUDE_VARIABLES -DG_OS_WIN32 -DALL_FILES -DG_GNUC_MALLOC= -DG_GNUC_CONST= -DG_GNUC_NULL_TERMINATED= -DG_GNUC_PRINTF=;G_GNUC_PRINTF ..\..\..\gtk\gtk.symbols >>"$(DefDir)\gtk.def" lib - -$(GtkApiVersion)-0 - - -3-vs10 - $(GtkSeparateVS10DllPrefix) - $(GtkSeparateVS10DllSuffix) + -$(ApiVersion)-0 + + -3-vs$(VSVer) + $(GtkSeparateVSDllPrefix) + $(GtkSeparateVSDllSuffix) <_PropertySheetDisplayName>gtk+props @@ -744,17 +764,23 @@ copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\gdk\gdkconfig.h + + $(VSVer) + $(GlibEtcInstallRoot) + + $(GlibEtcInstallRootFromBuildWin32) + $(CopyDir) $(DefDir) - - $(GtkApiVersion) + + $(ApiVersion) $(GtkBinaryVersion) @@ -777,6 +803,9 @@ copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\gdk\gdkconfig.h $(GtkDoInstall) + + $(DoGenGir) + $(GtkGenerateGdkDef) @@ -789,11 +818,11 @@ copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\gdk\gdkconfig.h $(GtkLibtoolCompatibleDllSuffix) - - $(GtkSeparateVS10DllPrefix) + + $(GtkSeparateVSDllPrefix) - - $(GtkSeparateVS10DllSuffix) + + $(GtkSeparateVSDllSuffix) $(GtkDllPrefix) diff --git a/build/win32/vs10/gtk.vcxprojin b/build/win32/vs10/gtk.vcxprojin index 09d1b3b684..dd7bfc7125 100644 --- a/build/win32/vs10/gtk.vcxprojin +++ b/build/win32/vs10/gtk.vcxprojin @@ -91,7 +91,7 @@ $(IntDir)gtk.def true Windows - $(TargetDir)$(ProjectName)-$(GtkApiVersion).lib + $(TargetDir)$(ProjectName)-$(ApiVersion).lib MachineX86 @@ -113,7 +113,7 @@ Windows true true - $(TargetDir)$(ProjectName)-$(GtkApiVersion).lib + $(TargetDir)$(ProjectName)-$(ApiVersion).lib MachineX86 @@ -136,7 +136,7 @@ $(IntDir)gtk.def true Windows - $(TargetDir)$(ProjectName)-$(GtkApiVersion).lib + $(TargetDir)$(ProjectName)-$(ApiVersion).lib MachineX64 @@ -158,7 +158,7 @@ Windows true true - $(TargetDir)$(ProjectName)-$(GtkApiVersion).lib + $(TargetDir)$(ProjectName)-$(ApiVersion).lib MachineX64 diff --git a/build/win32/vs9/gailutil.vcproj b/build/win32/vs9/gailutil.vcproj index d66cb61d30..3560e59d14 100644 --- a/build/win32/vs9/gailutil.vcproj +++ b/build/win32/vs9/gailutil.vcproj @@ -47,7 +47,7 @@ OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll" GenerateDebugInformation="true" ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def" - ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib" + ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib" SubSystem="2" TargetMachine="1" /> @@ -81,7 +81,7 @@ ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def" GenerateDebugInformation="true" SubSystem="2" - ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib" + ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib" TargetMachine="17" /> @@ -114,7 +114,7 @@ OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll" GenerateDebugInformation="true" ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def" - ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib" + ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib" SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" @@ -150,7 +150,7 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib" + ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib" TargetMachine="17" /> diff --git a/build/win32/vs9/gdk.vcprojin b/build/win32/vs9/gdk.vcprojin index dffea3c3dc..06125d4668 100644 --- a/build/win32/vs9/gdk.vcprojin +++ b/build/win32/vs9/gdk.vcprojin @@ -48,7 +48,7 @@ ModuleDefinitionFile="$(IntDir)\gdk.def" GenerateDebugInformation="true" SubSystem="2" - ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib" + ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib" TargetMachine="1" /> @@ -81,7 +81,7 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib" + ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib" TargetMachine="1" /> @@ -114,7 +114,7 @@ ModuleDefinitionFile="$(IntDir)\gdk.def" GenerateDebugInformation="true" SubSystem="2" - ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib" + ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib" TargetMachine="17" /> @@ -147,7 +147,7 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib" + ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib" TargetMachine="17" /> diff --git a/build/win32/vs9/gtk+.vsprops b/build/win32/vs9/gtk+.vsprops index 18fc7a9e29..d8f923492d 100644 --- a/build/win32/vs9/gtk+.vsprops +++ b/build/win32/vs9/gtk+.vsprops @@ -27,16 +27,24 @@ copy ..\..\..\config.h.win32 ..\..\..\config.h copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\gdk\gdkconfig.h " /> + + + diff --git a/build/win32/vs9/gtk.vcprojin b/build/win32/vs9/gtk.vcprojin index db6ffebf51..2d4c28970c 100644 --- a/build/win32/vs9/gtk.vcprojin +++ b/build/win32/vs9/gtk.vcprojin @@ -48,7 +48,7 @@ ModuleDefinitionFile="$(IntDir)\gtk.def" GenerateDebugInformation="true" SubSystem="2" - ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib" + ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib" TargetMachine="1" /> @@ -81,7 +81,7 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib" + ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib" TargetMachine="1" /> @@ -114,7 +114,7 @@ ModuleDefinitionFile="$(IntDir)\gtk.def" GenerateDebugInformation="true" SubSystem="2" - ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib" + ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib" TargetMachine="17" /> @@ -147,7 +147,7 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib" + ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib" TargetMachine="17" /> From d85d3a5a964e6be8cfbfe767cca9e12eb7b2e9fe Mon Sep 17 00:00:00 2001 From: A S Alam Date: Fri, 22 Feb 2013 08:49:05 +0000 Subject: [PATCH 175/208] Punjabi: Translation updated (aalam) --- po-properties/pa.po | 1474 ++++++++++++++++++++++--------------------- 1 file changed, 748 insertions(+), 726 deletions(-) diff --git a/po-properties/pa.po b/po-properties/pa.po index f045dea15a..b5a13d3de5 100644 --- a/po-properties/pa.po +++ b/po-properties/pa.po @@ -5,21 +5,21 @@ # Amanpreet Singh Alam , 2004. # A S Alam , 2005, 2006, 2007, 2009, 2010, 2011. # ASB , 2007. -# Amanpreet Singh Alam , 2009, 2012. +# Amanpreet Singh Alam , 2009, 2012, 2013. msgid "" msgstr "" "Project-Id-Version: gtk+-properties.HEAD\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" "%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-09-18 11:54+0000\n" -"PO-Revision-Date: 2012-09-19 19:17+0530\n" +"POT-Creation-Date: 2012-12-15 20:08+0000\n" +"PO-Revision-Date: 2013-02-22 08:45+0000\n" "Last-Translator: A S Alam \n" "Language-Team: Punjabi/Panjabi \n" "Language: pa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.4\n" +"X-Generator: Lokalize 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../gdk/gdkapplaunchcontext.c:129 ../gdk/gdkcursor.c:134 @@ -111,23 +111,23 @@ msgstr "ਡਿਫਾਲਟ ਡਿਸਪਲੇਅ" msgid "The default display for GDK" msgstr "GDK ਲਈ ਡਿਫਾਲਟ ਡਿਸਪਲੇਅ" -#: ../gdk/gdkscreen.c:90 +#: ../gdk/gdkscreen.c:91 msgid "Font options" msgstr "ਫੋਂਟ ਚੋਣਾਂ" -#: ../gdk/gdkscreen.c:91 +#: ../gdk/gdkscreen.c:92 msgid "The default font options for the screen" msgstr "ਸਕਰੀਨ ਲਈ ਡਿਫਾਲਟ ਫੋਂਟ ਚੋਣਾਂ" -#: ../gdk/gdkscreen.c:98 +#: ../gdk/gdkscreen.c:99 msgid "Font resolution" msgstr "ਫੋਂਟ ਰੈਜ਼ੋਲੂਸ਼ਨ" -#: ../gdk/gdkscreen.c:99 +#: ../gdk/gdkscreen.c:100 msgid "The resolution for fonts on the screen" msgstr "ਸਕਰੀਨ ਉੱਤੇ ਫੋਂਟਾਂ ਲਈ ਰੈਜ਼ੋਲੂਸ਼ਨ ਹੈ" -#: ../gdk/gdkwindow.c:403 ../gdk/gdkwindow.c:404 +#: ../gdk/gdkwindow.c:384 ../gdk/gdkwindow.c:385 msgid "Cursor" msgstr "ਕਰਸਰ" @@ -163,11 +163,11 @@ msgstr "ਜੰਤਰ ID" msgid "Device identifier" msgstr "ਜੰਤਰ ਪਛਾਣਕਰਤਾ" -#: ../gtk/a11y/gtkrenderercellaccessible.c:93 +#: ../gtk/a11y/gtkrenderercellaccessible.c:97 msgid "Cell renderer" msgstr "ਸੈੱਲ ਰੈਂਡਰਰ" -#: ../gtk/a11y/gtkrenderercellaccessible.c:94 +#: ../gtk/a11y/gtkrenderercellaccessible.c:98 msgid "The cell renderer represented by this accessible" msgstr "ਇਹ ਵਰਤੋਂ ਵਾਲੇ ਵਲੋਂ ਪੇਸ਼ ਕੀਤਾ ਸੈੱਲ ਰੈਂਡਰਰ" @@ -261,8 +261,8 @@ msgid "The text to display in order to demonstrate the selected font" msgstr "ਚੁਣੇ ਫੋਟਾਂ ਲਈ ਝਲਕ ਵੇਖਾਉਣ ਲਈ ਟੈਕਸਟ" #: ../gtk/deprecated/gtkhandlebox.c:224 ../gtk/gtkcombobox.c:1067 -#: ../gtk/gtkentry.c:890 ../gtk/gtkmenubar.c:216 ../gtk/gtkstatusbar.c:182 -#: ../gtk/gtktoolbar.c:630 ../gtk/gtkviewport.c:155 +#: ../gtk/gtkentry.c:890 ../gtk/gtkmenubar.c:213 ../gtk/gtkstatusbar.c:182 +#: ../gtk/gtktoolbar.c:631 ../gtk/gtkviewport.c:155 msgid "Shadow type" msgstr "ਛਾਂ ਕਿਸਮ" @@ -350,7 +350,7 @@ msgid "The amount of space between two consecutive columns" msgstr "ਖਾਲੀ ਥਾਂ, ਦੋ ਲਗਾਤਾਰ ਕਾਲਮਾਂ ਵਿਚਕਾਰ" #: ../gtk/deprecated/gtktable.c:227 ../gtk/gtkbox.c:253 -#: ../gtk/gtktoolbar.c:562 ../gtk/gtktoolitemgroup.c:1650 +#: ../gtk/gtktoolbar.c:563 ../gtk/gtktoolitemgroup.c:1650 msgid "Homogeneous" msgstr "ਸਮਰੂਪ" @@ -363,7 +363,7 @@ msgstr "" msgid "Left attachment" msgstr "ਖੱਬਾ ਨੱਥੀ" -#: ../gtk/deprecated/gtktable.c:236 ../gtk/gtkgrid.c:1421 ../gtk/gtkmenu.c:727 +#: ../gtk/deprecated/gtktable.c:236 ../gtk/gtkgrid.c:1421 ../gtk/gtkmenu.c:747 msgid "The column number to attach the left side of the child to" msgstr "ਚਲਾਇਡ ਨਾਲ ਖੱਬੇ ਪਾਸੇ ਜੋੜਨ ਲਈ ਕਾਲਮ ਦਾ ਨੰਬਰ" @@ -387,7 +387,7 @@ msgstr "ਕਤਾਰ ਗਿਣਤੀ ਜੋ ਕਿ ਚਲਾਇਡ ਵਿਦਗ msgid "Bottom attachment" msgstr "ਥੱਲੇ ਨੱਥੀ" -#: ../gtk/deprecated/gtktable.c:257 ../gtk/gtkmenu.c:751 +#: ../gtk/deprecated/gtktable.c:257 ../gtk/gtkmenu.c:771 msgid "The row number to attach the bottom of the child to" msgstr "ਚਲਾਇਡ ਨਾਲ ਹੇਠਲੇ ਪਾਸੇ ਜੋੜਨ ਲਈ ਸਤਰ ਦਾ ਨੰਬਰ" @@ -589,7 +589,7 @@ msgid "The parameter for action invocations" msgstr "ਸਰਗਰਮ ਕਾਲ ਲਈ ਪੈਰਾਮੀਟਰ" #: ../gtk/gtkaction.c:220 ../gtk/gtkactiongroup.c:228 ../gtk/gtkprinter.c:123 -#: ../gtk/gtktextmark.c:126 ../gtk/gtkthemingengine.c:255 +#: ../gtk/gtktextmark.c:126 ../gtk/gtkthemingengine.c:258 msgid "Name" msgstr "ਨਾਂ" @@ -598,7 +598,7 @@ msgid "A unique name for the action." msgstr "ਕਾਰਵਾਈ ਲਈ ਸ਼ਨਾਖਤੀ ਨਾਂ ਹੈ।" #: ../gtk/gtkaction.c:239 ../gtk/gtkbutton.c:232 ../gtk/gtkexpander.c:288 -#: ../gtk/gtkframe.c:170 ../gtk/gtklabel.c:726 ../gtk/gtkmenuitem.c:429 +#: ../gtk/gtkframe.c:170 ../gtk/gtklabel.c:721 ../gtk/gtkmenuitem.c:430 #: ../gtk/gtktoolbutton.c:239 ../gtk/gtktoolitemgroup.c:1597 msgid "Label" msgstr "ਲੇਬਲ" @@ -644,7 +644,7 @@ msgstr "ਗਲਕੋਨ ਵੇਖਾਇਆ ਜਾ ਰਿਹਾ ਹੈ" #: ../gtk/gtkaction.c:323 ../gtk/gtkcellrendererpixbuf.c:211 #: ../gtk/gtkimage.c:291 ../gtk/gtkprinter.c:172 ../gtk/gtkstatusicon.c:247 -#: ../gtk/gtkwindow.c:783 +#: ../gtk/gtkwindow.c:773 msgid "Icon Name" msgstr "ਆਈਕਾਨ ਨਾਂ" @@ -707,7 +707,7 @@ msgid "When TRUE, empty menu proxies for this action are hidden." msgstr "ਜੇਕਰ ਸਹੀ ਹੈ ਤਾਂ ਇਸ ਕਾਰਵਾਈ ਵਿੱਚ ਖਾਲੀ ਲਿਸਟ ਪਰਾਕਸੀਆਂ ਨੂੰ ਉਹਲੇ ਕਰ ਦਿਓ" #: ../gtk/gtkaction.c:379 ../gtk/gtkactiongroup.c:235 -#: ../gtk/gtkcellrenderer.c:296 ../gtk/gtkwidget.c:1025 +#: ../gtk/gtkcellrenderer.c:296 ../gtk/gtkwidget.c:1024 msgid "Sensitive" msgstr "ਸੰਵੇਦਨਸ਼ੀਲ" @@ -717,7 +717,7 @@ msgstr "ਕੀ ਕਾਰਵਾਈ ਯੋਗ ਹੈ" #: ../gtk/gtkaction.c:386 ../gtk/gtkactiongroup.c:242 #: ../gtk/gtkstatusicon.c:298 ../gtk/gtktreeviewcolumn.c:247 -#: ../gtk/gtkwidget.c:1018 +#: ../gtk/gtkwidget.c:1017 msgid "Visible" msgstr "ਦਿੱਖ" @@ -757,7 +757,6 @@ msgid "Whether the action group is visible." msgstr "ਕੀ ਕਾਰਵਾਈ ਗਰੁੱਪ ਦਿੱਸ ਰਿਹਾ ਹੈ।" #: ../gtk/gtkactiongroup.c:249 -#| msgid "Accelerator Mode" msgid "Accelerator Group" msgstr "ਐਕਸਰਲੇਟਰ ਗਰੁੱਪ" @@ -911,8 +910,9 @@ msgid "The padding to insert at the right of the widget." msgstr "ਵਿਡਗਿਟ ਦੇ ਸੱਜੇ ਚਿਣ ਦਿਓ" #: ../gtk/gtkappchooserbutton.c:614 -msgid "Include an 'Other...' item" -msgstr "'ਹੋਰ...' ਆਈਟਮ ਸਮੇਤ" +#| msgid "Include an 'Other...' item" +msgid "Include an 'Other…' item" +msgstr "'ਹੋਰ…' ਆਈਟਮ ਸਮੇਤ" #: ../gtk/gtkappchooserbutton.c:615 msgid "" @@ -953,83 +953,83 @@ msgstr "ਜੀਫਾਇਲ" msgid "The GFile used by the app chooser dialog" msgstr "ਫਾਇਲ ਚੋਣਕਾਰ ਡਾਈਲਾਗ ਵਲੋਂ ਵਰਤੀ ਜੀਫਾਇਲ" -#: ../gtk/gtkappchooserwidget.c:1023 +#: ../gtk/gtkappchooserwidget.c:1026 msgid "Show default app" msgstr "ਡਿਫਾਲਟ ਐਪਲੀਕੇਸ਼ਨ ਵੇਖੋ" -#: ../gtk/gtkappchooserwidget.c:1024 +#: ../gtk/gtkappchooserwidget.c:1027 msgid "Whether the widget should show the default application" msgstr "ਕੀ ਵਿਦਜੈੱਟ ਡਿਫਾਲਟ ਐਪਲੀਕੇਸ਼ਨ ਵੇਖਾਏ" -#: ../gtk/gtkappchooserwidget.c:1038 +#: ../gtk/gtkappchooserwidget.c:1041 msgid "Show recommended apps" msgstr "ਸਿਫਾਰਸ਼ੀ ਐਪਲੀਕੇਸ਼ਨ ਵੇਖਾਓ" -#: ../gtk/gtkappchooserwidget.c:1039 +#: ../gtk/gtkappchooserwidget.c:1042 msgid "Whether the widget should show recommended applications" msgstr "ਕੀ ਵਿਦਜੈੱਟ ਸਿਫਾਰਸ਼ੀ ਐਪਲੀਕੇਸ਼ਨ ਵੇਖਾਏ" -#: ../gtk/gtkappchooserwidget.c:1053 +#: ../gtk/gtkappchooserwidget.c:1056 msgid "Show fallback apps" msgstr "ਫਾਲਬੈਕ ਐਪਲੀਕੇਸ਼ਨ ਵੇਖਾਓ" -#: ../gtk/gtkappchooserwidget.c:1054 +#: ../gtk/gtkappchooserwidget.c:1057 msgid "Whether the widget should show fallback applications" msgstr "ਕੀ ਵਿਦਜੈੱਟ ਫਾਲਬੈਕ ਐਪਲੀਕੇਸ਼ਨ ਵੇਖਾਏ" -#: ../gtk/gtkappchooserwidget.c:1066 +#: ../gtk/gtkappchooserwidget.c:1069 msgid "Show other apps" msgstr "ਹੋਰ ਐਪਲੀਕੇਸ਼ਨ ਵੇਖਾਓ" -#: ../gtk/gtkappchooserwidget.c:1067 +#: ../gtk/gtkappchooserwidget.c:1070 msgid "Whether the widget should show other applications" msgstr "ਕੀ ਵਿਦਜੈੱਟ ਹੋਰ ਐਪਲੀਕੇਸ਼ਨ ਵੇਖਾਏ" -#: ../gtk/gtkappchooserwidget.c:1080 +#: ../gtk/gtkappchooserwidget.c:1083 msgid "Show all apps" msgstr "ਸਭ ਐਪਲੀਕੇਸ਼ਨ ਵੇਖਾਓ" -#: ../gtk/gtkappchooserwidget.c:1081 +#: ../gtk/gtkappchooserwidget.c:1084 msgid "Whether the widget should show all applications" msgstr "ਕੀ ਵਿਦਜੈੱਟ ਸਭ ਐਪਲੀਕੇਸ਼ਨ ਵੇਖਾਏ" -#: ../gtk/gtkappchooserwidget.c:1095 +#: ../gtk/gtkappchooserwidget.c:1098 msgid "Widget's default text" msgstr "ਵਿਦਜੈੱਟ ਦਾ ਮੂਲ ਟੈਕਸਟ" -#: ../gtk/gtkappchooserwidget.c:1096 +#: ../gtk/gtkappchooserwidget.c:1099 msgid "The default text appearing when there are no applications" msgstr "ਜਦੋਂ ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਨਾ ਹੋਵੇ ਤਾਂ ਵੇਖਾਉਣ ਲਈ ਡਿਫਾਲਟ ਟੈਕਸਟ" -#: ../gtk/gtkapplication.c:740 +#: ../gtk/gtkapplication.c:738 msgid "Register session" msgstr "ਸ਼ੈਸ਼ਨ ਰਜਿਸਟਰ ਕਰੋ" -#: ../gtk/gtkapplication.c:741 +#: ../gtk/gtkapplication.c:739 msgid "Register with the session manager" msgstr "ਸ਼ੈਸ਼ਨ ਮੈਨੇਜਰ ਨਾਲ ਰਜਿਸਟਰ ਕਰੋ" -#: ../gtk/gtkapplication.c:746 +#: ../gtk/gtkapplication.c:744 msgid "Application menu" msgstr "ਐਪਲੀਕੇਸ਼ਨ ਮੇਨੂ" -#: ../gtk/gtkapplication.c:747 +#: ../gtk/gtkapplication.c:745 msgid "The GMenuModel for the application menu" msgstr "ਐਪਲੀਕੇਸ਼ਨ ਮੇਨੂ ਲਈ GMenuModel" -#: ../gtk/gtkapplication.c:753 +#: ../gtk/gtkapplication.c:751 msgid "Menubar" msgstr "ਮੇਨੂ-ਪੱਟੀ" -#: ../gtk/gtkapplication.c:754 +#: ../gtk/gtkapplication.c:752 msgid "The GMenuModel for the menubar" msgstr "ਮੇਨੂ-ਪੱਟੀ ਲਈ GMenuModel" -#: ../gtk/gtkapplication.c:760 +#: ../gtk/gtkapplication.c:758 msgid "Active window" msgstr "ਸਰਗਰਮ ਵਿੰਡੋ" -#: ../gtk/gtkapplication.c:761 +#: ../gtk/gtkapplication.c:759 msgid "The window which most recently had focus" msgstr "ਵਿੰਡੋ, ਜੋ ਤਾਜ਼ਾ ਫੋਕਸ ਸੀ" @@ -1057,8 +1057,8 @@ msgstr "ਤੀਰ ਛਾਂ" msgid "Appearance of the shadow surrounding the arrow" msgstr "ਤੀਰ ਦੇ ਆਲੇ ਦੁਆਲੇ ਛਾਂ ਵੇਖਾਓ" -#: ../gtk/gtkarrow.c:127 ../gtk/gtkcombobox.c:1051 ../gtk/gtkmenu.c:764 -#: ../gtk/gtkmenuitem.c:495 +#: ../gtk/gtkarrow.c:127 ../gtk/gtkcombobox.c:1051 ../gtk/gtkmenu.c:784 +#: ../gtk/gtkmenuitem.c:506 msgid "Arrow Scaling" msgstr "ਤੀਰ ਸਕੇਲਿੰਗ" @@ -1066,7 +1066,7 @@ msgstr "ਤੀਰ ਸਕੇਲਿੰਗ" msgid "Amount of space used up by arrow" msgstr "ਤੀਰ ਵਲੋਂ ਵਰਤੀ ਗਈ ਥਾਂ ਦੀ ਮਾਤਰਾ" -#: ../gtk/gtkaspectframe.c:107 ../gtk/gtkwidget.c:1213 +#: ../gtk/gtkaspectframe.c:107 ../gtk/gtkwidget.c:1212 msgid "Horizontal Alignment" msgstr "ਲੇਟਵੀਂ ਸਫਬੰਦੀ" @@ -1074,7 +1074,7 @@ msgstr "ਲੇਟਵੀਂ ਸਫਬੰਦੀ" msgid "X alignment of the child" msgstr "ਚਾਇਲਡ ਦੀ X ਕਤਾਰਬੰਦੀ" -#: ../gtk/gtkaspectframe.c:114 ../gtk/gtkwidget.c:1229 +#: ../gtk/gtkaspectframe.c:114 ../gtk/gtkwidget.c:1228 msgid "Vertical Alignment" msgstr "ਲੰਬਕਾਰੀ ਸਫਬੰਦੀ" @@ -1219,7 +1219,7 @@ msgid "If TRUE, the child will not be subject to homogeneous sizing" msgstr "ਜੇਕਰ ਸੱਚ ਹੈ ਤਾਂ, ਚਲਾਇਡ ਸਮਰੂਪ ਆਕਾਰ ਲਈ ਮਜ਼ਬੂਰ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ" #: ../gtk/gtkbox.c:243 ../gtk/gtkcellareabox.c:315 ../gtk/gtkexpander.c:312 -#: ../gtk/gtkiconview.c:517 ../gtk/gtktreeviewcolumn.c:282 +#: ../gtk/gtkiconview.c:512 ../gtk/gtktreeviewcolumn.c:282 msgid "Spacing" msgstr "ਖਾਲੀ ਥਾਂ" @@ -1231,7 +1231,7 @@ msgstr "ਚੈਲਡਰਨ ਵਿੱਚ ਕਿੰਨੀ ਥਾਂ ਹੈ" msgid "Whether the children should all be the same size" msgstr "ਕੀ ਚੈਲਰਨ ਇੱਕੋ ਆਕਾਰ ਦੇ ਹੋਣ" -#: ../gtk/gtkbox.c:274 ../gtk/gtkcellareabox.c:335 ../gtk/gtktoolbar.c:554 +#: ../gtk/gtkbox.c:274 ../gtk/gtkcellareabox.c:335 ../gtk/gtktoolbar.c:555 #: ../gtk/gtktoolitemgroup.c:1657 ../gtk/gtktoolpalette.c:1075 #: ../gtk/gtktreeviewcolumn.c:338 msgid "Expand" @@ -1271,20 +1271,20 @@ msgstr "" "ਇਹ GtkPackType ਵੇਖਾ ਰਿਹਾ ਹੈ ਕਿ ਚਲਾਇਡ ਨੂੰ ਪੇਰੈਟ ਦੇ ਸ਼ੁਰੂ ਜ਼ਾਂ ਅਖੀਰ ਵਿੱਚ ਪੈਕ " "ਕੀਤਾ ਜਾਏ" -#: ../gtk/gtkbox.c:313 ../gtk/gtknotebook.c:767 ../gtk/gtkpaned.c:348 +#: ../gtk/gtkbox.c:313 ../gtk/gtknotebook.c:768 ../gtk/gtkpaned.c:348 #: ../gtk/gtktoolitemgroup.c:1678 msgid "Position" msgstr "ਟਿਕਾਣਾ" -#: ../gtk/gtkbox.c:314 ../gtk/gtknotebook.c:768 +#: ../gtk/gtkbox.c:314 ../gtk/gtknotebook.c:769 msgid "The index of the child in the parent" msgstr "ਪੇਰੈਟ ਵਿੱਚ ਚਾਇਲਡ ਦਾ ਇੰਡੈਕਸ" -#: ../gtk/gtkbuilder.c:305 +#: ../gtk/gtkbuilder.c:307 msgid "Translation Domain" msgstr "ਟਰਾਂਸਲੇਟ ਡੋਮੇਨ" -#: ../gtk/gtkbuilder.c:306 +#: ../gtk/gtkbuilder.c:308 msgid "The translation domain used by gettext" msgstr "gettext ਵਲੋਂ ਵਰਤੀ ਟਰਾਂਸਲੇਟ ਡੋਮੇਨ" @@ -1294,13 +1294,13 @@ msgid "" "widget" msgstr "ਬਟਨ ਵਿੱਚ ਲੇਬਲ ਵਿਦਗਿਟ ਦੇ ਸ਼ਬਦ, ਜੇਕਰ ਬਟਨ ਵਿੱਚ ਲੇਬਲ ਵਿਦਗਿਟ ਹੈ" -#: ../gtk/gtkbutton.c:240 ../gtk/gtkexpander.c:296 ../gtk/gtklabel.c:747 -#: ../gtk/gtkmenuitem.c:444 ../gtk/gtktoolbutton.c:246 +#: ../gtk/gtkbutton.c:240 ../gtk/gtkexpander.c:296 ../gtk/gtklabel.c:742 +#: ../gtk/gtkmenuitem.c:445 ../gtk/gtktoolbutton.c:246 msgid "Use underline" msgstr "ਹੇਠਾਂ-ਲਾਈਨ ਵਰਤੋਂ" -#: ../gtk/gtkbutton.c:241 ../gtk/gtkexpander.c:297 ../gtk/gtklabel.c:748 -#: ../gtk/gtkmenuitem.c:445 +#: ../gtk/gtkbutton.c:241 ../gtk/gtkexpander.c:297 ../gtk/gtklabel.c:743 +#: ../gtk/gtkmenuitem.c:446 msgid "" "If set, an underline in the text indicates the next character should be used " "for the mnemonic accelerator key" @@ -1862,7 +1862,7 @@ msgid "Whether the rendered pixbuf should be colorized according to the state" msgstr "ਕੀ ਪੇਸ਼ਕਾਰੀ ਪਿਕਬਫ਼ਰ ਨੂੰ ਹਾਲਤ ਦੇ ਅਨੁਸਾਰ ਰੰਗਦਾਰ ਬਣਾਉਣਾ ਹੈ" #: ../gtk/gtkcellrendererpixbuf.c:245 ../gtk/gtkimage.c:308 -#: ../gtk/gtkwindow.c:729 +#: ../gtk/gtkwindow.c:719 msgid "Icon" msgstr "ਆਈਕਾਨ" @@ -1912,8 +1912,8 @@ msgstr "ਪਾਠ y -ਸ਼ਫ਼ਬੰਦੀ" msgid "The vertical text alignment, from 0 (top) to 1 (bottom)." msgstr "ਲੰਬਕਾਰੀ ਸ਼ਫ਼ਬੰਦੀ, 0 (ਉਤੋਂ) ਤੋਂ 1 (ਹੇਠਾਂ) ਹੈ।" -#: ../gtk/gtkcellrendererprogress.c:224 ../gtk/gtkprogressbar.c:150 -#: ../gtk/gtkrange.c:432 +#: ../gtk/gtkcellrendererprogress.c:224 ../gtk/gtklevelbar.c:991 +#: ../gtk/gtkprogressbar.c:150 ../gtk/gtkrange.c:432 msgid "Inverted" msgstr "ਬਦਲਵਾਂ" @@ -1938,7 +1938,7 @@ msgstr "ਚੜ੍ਹਨ ਦਰ" msgid "The acceleration rate when you hold down a button" msgstr "ਬਟਨ ਨੂੰ ਦਬਾਕੇ ਰੱਖਣ ਤੇ ਐਕਸਲੇਸ਼ਨ" -#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:294 +#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:309 #: ../gtk/gtkspinbutton.c:354 msgid "Digits" msgstr "ਅੰਕ" @@ -1948,7 +1948,7 @@ msgid "The number of decimal places to display" msgstr "ਵੇਖਾਉਣ ਲਈ ਦਸ਼ਮਲਵ ਅੰਕਾਂ ਦੀ ਗਿਣਤੀ" #: ../gtk/gtkcellrendererspinner.c:125 ../gtk/gtkcheckmenuitem.c:120 -#: ../gtk/gtkmenu.c:554 ../gtk/gtkspinner.c:114 ../gtk/gtkswitch.c:834 +#: ../gtk/gtkmenu.c:554 ../gtk/gtkspinner.c:114 ../gtk/gtkswitch.c:814 #: ../gtk/gtktoggleaction.c:131 ../gtk/gtktogglebutton.c:173 #: ../gtk/gtktoggletoolbutton.c:125 msgid "Active" @@ -1979,7 +1979,7 @@ msgid "Marked up text to render" msgstr "ਪੇਸ਼ਕਾਰੀ ਲਈ ਟੈਕਸਟ ਦੀ ਨਿਸ਼ਾਨਬੰਦੀ" #: ../gtk/gtkcellrenderertext.c:271 ../gtk/gtkentry.c:1410 -#: ../gtk/gtklabel.c:733 +#: ../gtk/gtklabel.c:728 msgid "Attributes" msgstr "ਗੁਣ" @@ -2050,12 +2050,12 @@ msgid "Foreground color as a GdkRGBA" msgstr "ਫਾਰਗਰਾਊਂਡ GdkRGBA ਵਾਂਗ" #: ../gtk/gtkcellrenderertext.c:364 ../gtk/gtkentry.c:755 -#: ../gtk/gtktexttag.c:296 ../gtk/gtktextview.c:702 +#: ../gtk/gtktexttag.c:296 ../gtk/gtktextview.c:704 msgid "Editable" msgstr "ਸੋਧਯੋਗ" #: ../gtk/gtkcellrenderertext.c:365 ../gtk/gtktexttag.c:297 -#: ../gtk/gtktextview.c:703 +#: ../gtk/gtktextview.c:705 msgid "Whether the text can be modified by the user" msgstr "ਕੀ ਟੈਕਸਟ ਵਰਤਣਵਾਲਾ ਸੋਧ ਸਕੇ ਜਾਂ ਨਾ" @@ -2163,7 +2163,7 @@ msgstr "" "ਸਕਦੀ ਹੈ, ਜੇਕਰ ਤੁਸੀਂ ਇਸ ਪੈਰਾਮੀਟਰ ਨੂੰ ਨਹੀਂ ਸਮਝ ਸਕੇ ਤਾਂ ਤੁਹਾਨੂੰ ਇਸ ਦੀ ਲੋੜ ਵੀ " "ਨਹੀਂ ਹੈ " -#: ../gtk/gtkcellrenderertext.c:514 ../gtk/gtklabel.c:858 +#: ../gtk/gtkcellrenderertext.c:514 ../gtk/gtklabel.c:853 #: ../gtk/gtkprogressbar.c:218 msgid "Ellipsize" msgstr "ਅੰਡਕਾਰ-ਅਕਾਰ" @@ -2177,15 +2177,15 @@ msgstr "" "ਥਾਂ ਨਾ ਹੋਵੇ" #: ../gtk/gtkcellrenderertext.c:534 ../gtk/gtkfilechooserbutton.c:453 -#: ../gtk/gtklabel.c:879 +#: ../gtk/gtklabel.c:874 msgid "Width In Characters" msgstr "ਅੱਖਰਾਂ ਵਿੱਚ ਚੌੜਾਈ" -#: ../gtk/gtkcellrenderertext.c:535 ../gtk/gtklabel.c:880 +#: ../gtk/gtkcellrenderertext.c:535 ../gtk/gtklabel.c:875 msgid "The desired width of the label, in characters" msgstr "ਲੇਬਲ ਦੀ ਲੋੜੀਦੀ ਚੌੜਾਈ, ਅੱਖਰਾਂ ਵਿੱਚ" -#: ../gtk/gtkcellrenderertext.c:559 ../gtk/gtklabel.c:940 +#: ../gtk/gtkcellrenderertext.c:559 ../gtk/gtklabel.c:935 msgid "Maximum Width In Characters" msgstr "ਵੱਧ ਤੋਂ ਵੱਧ ਚੌੜਾਈ ਅੱਖਰਾਂ ਵਿੱਚ" @@ -2414,13 +2414,13 @@ msgid "The model for cell view" msgstr "ਸੈੱਲ ਝਲਕ ਲਈ ਮਾਡਲ" #: ../gtk/gtkcellview.c:252 ../gtk/gtkcombobox.c:1010 -#: ../gtk/gtkentrycompletion.c:451 ../gtk/gtkiconview.c:642 +#: ../gtk/gtkentrycompletion.c:451 ../gtk/gtkiconview.c:637 #: ../gtk/gtktreemenu.c:332 ../gtk/gtktreeviewcolumn.c:426 msgid "Cell Area" msgstr "ਸੈੱਲ ਖੇਤਰ" #: ../gtk/gtkcellview.c:253 ../gtk/gtkcombobox.c:1011 -#: ../gtk/gtkentrycompletion.c:452 ../gtk/gtkiconview.c:643 +#: ../gtk/gtkentrycompletion.c:452 ../gtk/gtkiconview.c:638 #: ../gtk/gtktreemenu.c:333 ../gtk/gtktreeviewcolumn.c:427 msgid "The GtkCellArea used to layout cells" msgstr "ਸੈੱਲ ਲੇਆਉਟ ਲਈ ਵਰਤਣ ਵਾਸਤੇ GtkCellArea" @@ -2543,7 +2543,7 @@ msgstr "RGBA ਰੰਗ" msgid "Color as RGBA" msgstr "RGBA ਵਜੋਂ ਰੰਗ" -#: ../gtk/gtkcolorswatch.c:778 ../gtk/gtklabel.c:796 +#: ../gtk/gtkcolorswatch.c:778 ../gtk/gtklabel.c:791 msgid "Selectable" msgstr "ਚੋਣ-ਯੋਗ" @@ -2702,27 +2702,27 @@ msgstr "ਤੀਰ ਵਲੋਂ ਵਰਤੀ ਗਈ ਥਾਂ ਦੀ ਮਾਤਰ msgid "Which kind of shadow to draw around the combo box" msgstr "ਕੰਬੋ ਬਾਕਸ ਦੁਆਲੇ ਕਿਸ ਕਿਸਮ ਦੀ ਛਾਂ ਖਿੱਚੀ ਜਾਵੇ" -#: ../gtk/gtkcontainer.c:460 +#: ../gtk/gtkcontainer.c:461 msgid "Resize mode" msgstr "ਮੁੜ-ਅਕਾਰ ਮੋਡ" -#: ../gtk/gtkcontainer.c:461 +#: ../gtk/gtkcontainer.c:462 msgid "Specify how resize events are handled" msgstr "ਦੱਸੋ ਕਿ ਮੁੜ-ਅਕਾਰ ਘਟਨਾ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਿਆ ਜਾਵੇਗਾ" -#: ../gtk/gtkcontainer.c:468 +#: ../gtk/gtkcontainer.c:469 msgid "Border width" msgstr "ਕਿਨਾਰੇ ਦੀ ਚੌੜਾਈ" -#: ../gtk/gtkcontainer.c:469 +#: ../gtk/gtkcontainer.c:470 msgid "The width of the empty border outside the containers children" msgstr "ਕੰਨਟੇਨਰ ਚਲਾਇਡਰਨ ਦੇ ਬਾਹਰ ਖਾਲੀ ਹਾਸ਼ੀਏ ਦੀ ਚੌੜਾਈ" -#: ../gtk/gtkcontainer.c:477 +#: ../gtk/gtkcontainer.c:478 msgid "Child" msgstr "ਚਲਾਇਡ" -#: ../gtk/gtkcontainer.c:478 +#: ../gtk/gtkcontainer.c:479 msgid "Can be used to add a new child to the container" msgstr "ਕੰਨਟੇਨਰ ਵਿੱਚ ਨਵਾਂ ਚਲਾਇਡ ਨੂੰ ਜੋੜਨ ਦੇ ਕੰਮ ਆਉਦੀ ਹੈ" @@ -2734,35 +2734,53 @@ msgstr "ਸਬ-ਵਿਸ਼ੇਸ਼ਤਾ" msgid "The list of subproperties" msgstr "ਸਬ-ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਸੂਚੀ" -#: ../gtk/gtkcssstyleproperty.c:188 +#: ../gtk/gtkcssstyleproperty.c:275 msgid "Animated" msgstr "ਐਨੀਮੇਟ ਕੀਤਾ" -#: ../gtk/gtkcssstyleproperty.c:189 +#: ../gtk/gtkcssstyleproperty.c:276 msgid "Set if the value can be animated" msgstr "ਸੈੱਟ ਕਰੋ, ਜੇ ਮੁੱਲ ਨੂੰ ਐਨੀਮੇਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ" -#: ../gtk/gtkcssstyleproperty.c:195 +#: ../gtk/gtkcssstyleproperty.c:282 +msgid "Affects size" +msgstr "ਆਕਾਰ ਪ੍ਰਭਾਵ" + +#: ../gtk/gtkcssstyleproperty.c:283 +#| msgid "Set if the value is inherited by default" +msgid "Set if the value affects the sizing of elements" +msgstr "ਸੈੱਟ ਕਰੋ ਕਿ ਕੀ ਮੁੱਲ ਐਲੀਮੈਂਟ ਦੇ ਆਕਾਰ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰੋ" + +#: ../gtk/gtkcssstyleproperty.c:289 +msgid "Affects font" +msgstr "ਫੋਂਟ ਪ੍ਰਭਾਵ" + +#: ../gtk/gtkcssstyleproperty.c:290 +#| msgid "Set if the value can be animated" +msgid "Set if the value affects the font" +msgstr "ਸੈੱਟ ਕਰੋ, ਜੇ ਮੁੱਲ ਫੋਂਟ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰੇ" + +#: ../gtk/gtkcssstyleproperty.c:296 msgid "ID" msgstr "ID" -#: ../gtk/gtkcssstyleproperty.c:196 +#: ../gtk/gtkcssstyleproperty.c:297 msgid "The numeric id for quick access" msgstr "ਤੁਰੰਤ ਵਰਤੋਂ ਲਈ ਅੰਕੀ id" -#: ../gtk/gtkcssstyleproperty.c:202 +#: ../gtk/gtkcssstyleproperty.c:303 msgid "Inherit" msgstr "ਇੰਹੈਰੀਂਟ" -#: ../gtk/gtkcssstyleproperty.c:203 +#: ../gtk/gtkcssstyleproperty.c:304 msgid "Set if the value is inherited by default" msgstr "ਸੈੱਟ ਕਰੋ ਕਿ ਕੀ ਮੁੱਲ ਨੂੰ ਡਿਫਾਲਟ ਮੂਲ ਤੋਂ ਲਿਆ ਜਾਵੇ" -#: ../gtk/gtkcssstyleproperty.c:209 +#: ../gtk/gtkcssstyleproperty.c:310 msgid "Initial value" msgstr "ਮੁੱਢਲਾ ਮੁੱਲ" -#: ../gtk/gtkcssstyleproperty.c:210 +#: ../gtk/gtkcssstyleproperty.c:311 msgid "The initial specified value used for this property" msgstr "ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਲਈ ਵਰਤਣ ਵਾਸਤੇ ਮੁੱਢਲਾ ਮੁੱਲ" @@ -2827,19 +2845,19 @@ msgstr "ਟੈਕਸਟ ਬਫਰ" msgid "Text buffer object which actually stores entry text" msgstr "ਟੈਕਸਟ ਬਫ਼ਰ ਆਬਜੈਕਟ, ਜੋ ਕਿ ਅਸਲ ਵਿੱਚ ਐਂਟਰੀ ਟੈਕਸਟ ਸਟੋਰ ਕਰਦਾ ਹੈ" -#: ../gtk/gtkentry.c:735 ../gtk/gtklabel.c:821 +#: ../gtk/gtkentry.c:735 ../gtk/gtklabel.c:816 msgid "Cursor Position" msgstr "ਕਰਸਰ ਦੀ ਸਥਿਤੀ" -#: ../gtk/gtkentry.c:736 ../gtk/gtklabel.c:822 +#: ../gtk/gtkentry.c:736 ../gtk/gtklabel.c:817 msgid "The current position of the insertion cursor in chars" msgstr "ਅੱਖਰਾਂ ਵਿੱਚ ਵਿਚਕਾਰਲੀ ਕਰਸਰ ਦੀ ਮੌਜੂਦਾ ਸਥਿਤੀ" -#: ../gtk/gtkentry.c:745 ../gtk/gtklabel.c:831 +#: ../gtk/gtkentry.c:745 ../gtk/gtklabel.c:826 msgid "Selection Bound" msgstr "ਚੋਣ ਸੀਮਾ" -#: ../gtk/gtkentry.c:746 ../gtk/gtklabel.c:832 +#: ../gtk/gtkentry.c:746 ../gtk/gtklabel.c:827 msgid "" "The position of the opposite end of the selection from the cursor in chars" msgstr "ਕਰਸਰ ਤੋਂ ਚੋਣ ਦੀ ਵਿਰੋਧੀ ਸਿਰਿਆ ਤੱਕ ਦੀ ਸਥਿਤੀ ਅੱਖਰਾਂ ਵਿੱਚ" @@ -2934,7 +2952,7 @@ msgstr "ਕੀ ਇੱਕ ਲਾਈਨ ਵਿੱਚ ਛਾਂਟੀਆਂ ਬਹ msgid "Which kind of shadow to draw around the entry when has-frame is set" msgstr "ਐਂਟਰੀ ਦੁਆਲੇ ਕਿਸ ਕਿਸਮ ਦੀ ਸ਼ੈਡੋ ਬਣਾਉਣੀ ਹੈ, ਜਦੋਂ ਕਿ ਫਰੇਮ ਸੈੱਟ ਹੋਵੇ" -#: ../gtk/gtkentry.c:906 ../gtk/gtktextview.c:782 +#: ../gtk/gtkentry.c:906 ../gtk/gtktextview.c:784 msgid "Overwrite mode" msgstr "ਉੱਤੇ ਵੇਖਾਉਣ ਦਾ ਢੰਗ" @@ -3123,11 +3141,11 @@ msgstr "ਪ੍ਰਾਇਮਰੀ ਆਈਕਾਨ ਟੂਲ-ਟਿੱਪ ਨਿ msgid "Secondary icon tooltip markup" msgstr "ਸੈਕੰਡਰੀ ਆਈਕਾਨ ਟੂਲ-ਟਿੱਪ ਨਿਸ਼ਾਨਬੱਧ" -#: ../gtk/gtkentry.c:1338 ../gtk/gtktextview.c:810 +#: ../gtk/gtkentry.c:1338 ../gtk/gtktextview.c:812 msgid "IM module" msgstr "IM ਮੋਡੀਊਲ" -#: ../gtk/gtkentry.c:1339 ../gtk/gtktextview.c:811 +#: ../gtk/gtkentry.c:1339 ../gtk/gtktextview.c:813 msgid "Which IM module should be used" msgstr "ਕਿਹੜਾ IM ਮੋਡੀਊਲ ਵਰਤਿਆ ਜਾਵੇ" @@ -3139,23 +3157,23 @@ msgstr "ਸਮਾਪਤੀ" msgid "The auxiliary completion object" msgstr "ਵਾਧੂ ਪੂਰਤੀ ਆਬਜੈਕਟ" -#: ../gtk/gtkentry.c:1375 ../gtk/gtkimcontext.c:332 ../gtk/gtktextview.c:828 +#: ../gtk/gtkentry.c:1375 ../gtk/gtkimcontext.c:332 ../gtk/gtktextview.c:830 msgid "Purpose" msgstr "ਮਕਸਦ" -#: ../gtk/gtkentry.c:1376 ../gtk/gtkimcontext.c:333 ../gtk/gtktextview.c:829 +#: ../gtk/gtkentry.c:1376 ../gtk/gtkimcontext.c:333 ../gtk/gtktextview.c:831 msgid "Purpose of the text field" msgstr "ਟੈਕਸਟ ਖੇਤਰ ਦਾ ਮਕਸਦ" -#: ../gtk/gtkentry.c:1392 ../gtk/gtkimcontext.c:340 ../gtk/gtktextview.c:845 +#: ../gtk/gtkentry.c:1392 ../gtk/gtkimcontext.c:340 ../gtk/gtktextview.c:847 msgid "hints" msgstr "ਇਸ਼ਾਰੇ" -#: ../gtk/gtkentry.c:1393 ../gtk/gtkimcontext.c:341 ../gtk/gtktextview.c:846 +#: ../gtk/gtkentry.c:1393 ../gtk/gtkimcontext.c:341 ../gtk/gtktextview.c:848 msgid "Hints for the text field behaviour" msgstr "ਟੈਕਸਟ ਖੇਤਰ ਰਵੱਈਏ ਲਈ ਇਸ਼ਾਰੇ" -#: ../gtk/gtkentry.c:1411 ../gtk/gtklabel.c:734 +#: ../gtk/gtkentry.c:1411 ../gtk/gtklabel.c:729 msgid "A list of style attributes to apply to the text of the label" msgstr "ਲੇਬਲ ਦੇ ਟੈਕਸਟ ਤੇ ਲਾਗੂ ਕਰਨ ਲਈ ਸਟਾਇਲ ਗੁਣਾਂ ਦੀ ਲਿਸਟ" @@ -3195,7 +3213,7 @@ msgstr "ਘੱਟੋ-ਘੱਟ ਕੁੰਜੀ ਲੰਬਾਈ" msgid "Minimum length of the search key in order to look up matches" msgstr "ਮੇਲ ਲੱਭਣ ਲਈ ਖੋਜ ਕੁੰਜੀ ਦੀ ਘੱਟੋ-ਘੱਟ ਲੰਬਾਈ" -#: ../gtk/gtkentrycompletion.c:347 ../gtk/gtkiconview.c:438 +#: ../gtk/gtkentrycompletion.c:347 ../gtk/gtkiconview.c:433 msgid "Text column" msgstr "ਟੈਕਸਟ ਕਾਲਮ" @@ -3279,11 +3297,11 @@ msgstr "ਕੀ ਫੈਲਾਣਵਾਲੇ ਨੂੰ ਚਲਾਇਡ ਵਿਦ msgid "Text of the expander's label" msgstr "ਫੈਲੇ ਲੇਬਲ ਦਾ ਪਾਠ" -#: ../gtk/gtkexpander.c:304 ../gtk/gtklabel.c:740 +#: ../gtk/gtkexpander.c:304 ../gtk/gtklabel.c:735 msgid "Use markup" msgstr "ਨਿਸ਼ਾਨਬੰਦੀ ਵਰਤੋਂ" -#: ../gtk/gtkexpander.c:305 ../gtk/gtklabel.c:741 +#: ../gtk/gtkexpander.c:305 ../gtk/gtklabel.c:736 msgid "The text of the label includes XML markup. See pango_parse_markup()" msgstr "ਲੇਬਲ ਦੇ ਟੈਕਸਟ ਵਿੱਚ XML ਮਾਰਕਅੱਪ ਹੋਵੇ ਵੇਖੋ pango_parse_markup()" @@ -3319,12 +3337,12 @@ msgid "" msgstr "ਕੀ ਐਕਸਪੈਂਡਰ ਟਾਪਲੈਵਲ ਵਿੰਡੋ ਨੂੰ ਫੈਲਣ ਤੇ ਸਮੇਟੋਣ ਮੁਤਾਬਕ ਮੁੜ-ਆਕਾਰ ਕਰੇ" #: ../gtk/gtkexpander.c:353 ../gtk/gtktoolitemgroup.c:1632 -#: ../gtk/gtktreeview.c:1194 +#: ../gtk/gtktreeview.c:1195 msgid "Expander Size" msgstr "ਫੈਲਾ ਦਾ ਅਕਾਰ" #: ../gtk/gtkexpander.c:354 ../gtk/gtktoolitemgroup.c:1633 -#: ../gtk/gtktreeview.c:1195 +#: ../gtk/gtktreeview.c:1196 msgid "Size of the expander arrow" msgstr "ਫੈਲਾ ਵਾਲੇ ਤੀਰ ਦਾ ਅਕਾਰ" @@ -3585,133 +3603,133 @@ msgstr "ਉਚਾਈ" msgid "The number of rows that a child spans" msgstr "ਚਲਾਈਡ ਸਪੇਨਸ ਲਈ ਕਤਾਰਾਂ ਦੀ ਗਿਣਤੀ" -#: ../gtk/gtkiconview.c:401 ../gtk/gtktreeselection.c:130 +#: ../gtk/gtkiconview.c:396 ../gtk/gtktreeselection.c:130 msgid "Selection mode" msgstr "ਚੋਣ ਢੰਗ" -#: ../gtk/gtkiconview.c:402 +#: ../gtk/gtkiconview.c:397 msgid "The selection mode" msgstr "ਚੋਣ ਢੰਗ" -#: ../gtk/gtkiconview.c:420 +#: ../gtk/gtkiconview.c:415 msgid "Pixbuf column" msgstr "ਪਿਕਬਫ਼ ਕਾਲਮ" -#: ../gtk/gtkiconview.c:421 +#: ../gtk/gtkiconview.c:416 msgid "Model column used to retrieve the icon pixbuf from" msgstr "ਆਈਕਾਨ ਪਿਕਬਫ਼ ਤੋਂ ਮਾਡਲ ਕਾਲਮ ਵਰਤਣ ਲਈ" -#: ../gtk/gtkiconview.c:439 +#: ../gtk/gtkiconview.c:434 msgid "Model column used to retrieve the text from" msgstr "ਟੈਕਸਟ ਤੋਂ ਪਰਾਪਤ ਕਰਨ ਲਈ ਮਾਡਲ ਕਾਲਮ" -#: ../gtk/gtkiconview.c:458 +#: ../gtk/gtkiconview.c:453 msgid "Markup column" msgstr "ਨਿਸ਼ਾਨਬੰਦੀ ਕਾਲਮ" -#: ../gtk/gtkiconview.c:459 +#: ../gtk/gtkiconview.c:454 msgid "Model column used to retrieve the text if using Pango markup" msgstr "ਜੇਕਰ ਪੈਂਗੋ ਨਿਸ਼ਾਨ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਵੇ ਤਾਂ ਮਾਡਲ ਕਾਲਮ ਵਰਤਣ ਲਈ ਪਰਾਪਤ ਪਾਠ" -#: ../gtk/gtkiconview.c:466 +#: ../gtk/gtkiconview.c:461 msgid "Icon View Model" msgstr "ਆਈਕਾਨ ਵੇਖਣ ਮਾਡਲ" -#: ../gtk/gtkiconview.c:467 +#: ../gtk/gtkiconview.c:462 msgid "The model for the icon view" msgstr "ਆਈਕਾਨ ਵੇਖਣ ਲਈ ਮਾਡਲ" -#: ../gtk/gtkiconview.c:483 +#: ../gtk/gtkiconview.c:478 msgid "Number of columns" msgstr "ਕਾਲਮਾਂ ਦੀ ਗਿਣਤੀ" -#: ../gtk/gtkiconview.c:484 +#: ../gtk/gtkiconview.c:479 msgid "Number of columns to display" msgstr "ਵੇਖਾਉਣ ਲਈ ਕਾਲਮਾਂ ਦੀ ਗਿਣਤੀ" -#: ../gtk/gtkiconview.c:501 +#: ../gtk/gtkiconview.c:496 msgid "Width for each item" msgstr "ਹਰੇਕ ਆਈਟਮ ਲਈ ਚੌੜਾਈ" -#: ../gtk/gtkiconview.c:502 +#: ../gtk/gtkiconview.c:497 msgid "The width used for each item" msgstr "ਹਰ ਆਈਟਮ ਲਈ ਵਰਤਨ ਲਈ ਚੌੜਾਈ" -#: ../gtk/gtkiconview.c:518 +#: ../gtk/gtkiconview.c:513 msgid "Space which is inserted between cells of an item" msgstr "ਇੱਕ ਆਈਟਮ ਦੇ ਸੈੱਲਾਂ ਵਿੱਚ ਦਿੱਤੀ ਜਾਣ ਵਾਲੀ ਖਾਲੀ ਥਾਂ" -#: ../gtk/gtkiconview.c:533 +#: ../gtk/gtkiconview.c:528 msgid "Row Spacing" msgstr "ਕਤਾਰ ਫਾਸਲਾ" -#: ../gtk/gtkiconview.c:534 +#: ../gtk/gtkiconview.c:529 msgid "Space which is inserted between grid rows" msgstr "ਗਰਿੱਡ ਕਤਾਰਾਂ ਵਿੱਚ ਦਿੱਤੀ ਜਾਣ ਵਾਲੀ ਖਾਲੀ ਥਾਂ" -#: ../gtk/gtkiconview.c:549 +#: ../gtk/gtkiconview.c:544 msgid "Column Spacing" msgstr "ਕਾਲਮ ਖਾਲੀ ਥਾਂ" -#: ../gtk/gtkiconview.c:550 +#: ../gtk/gtkiconview.c:545 msgid "Space which is inserted between grid columns" msgstr "ਖਾਲੀ ਥਾਂ, ਜੋ ਕਿ ਗਰਿੱਡ ਕਾਲਮ ਵਿੱਚ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ" -#: ../gtk/gtkiconview.c:565 +#: ../gtk/gtkiconview.c:560 msgid "Margin" msgstr "ਫਾਸਲਾ" -#: ../gtk/gtkiconview.c:566 +#: ../gtk/gtkiconview.c:561 msgid "Space which is inserted at the edges of the icon view" msgstr "ਆਈਕਾਨ ਝਲਕ ਦੇ ਕਿਨਾਰੇ ਤੇ ਦਿੱਤੀ ਜਾਣ ਵਾਲੀ ਖਾਲੀ ਥਾਂ" -#: ../gtk/gtkiconview.c:581 +#: ../gtk/gtkiconview.c:576 msgid "Item Orientation" msgstr "ਆਈਟਮ ਸਥਿਤੀ" -#: ../gtk/gtkiconview.c:582 +#: ../gtk/gtkiconview.c:577 msgid "" "How the text and icon of each item are positioned relative to each other" msgstr "ਇੱਕ ਆਈਕਾਨ ਲਈ ਉਸਦਾ ਟੈਕਸਟ ਅਤੇ ਆਈਕਾਨ ਨੂੰ ਕਿਵੇਂ ਟਿਕਾਇਆ ਜਾਵੇ" -#: ../gtk/gtkiconview.c:598 ../gtk/gtktreeview.c:1029 +#: ../gtk/gtkiconview.c:593 ../gtk/gtktreeview.c:1030 #: ../gtk/gtktreeviewcolumn.c:373 msgid "Reorderable" msgstr "ਮੁੜ-ਕਰਮਯੋਗ" -#: ../gtk/gtkiconview.c:599 ../gtk/gtktreeview.c:1030 +#: ../gtk/gtkiconview.c:594 ../gtk/gtktreeview.c:1031 msgid "View is reorderable" msgstr "ਮੁੜ-ਕਰਮਯੋਗ ਦੀ ਤਰਾਂ ਵੇਖੋ" -#: ../gtk/gtkiconview.c:606 ../gtk/gtktreeview.c:1180 +#: ../gtk/gtkiconview.c:601 ../gtk/gtktreeview.c:1181 msgid "Tooltip Column" msgstr "ਟੂਲ-ਟਿੱਪ ਕਾਲਮ" -#: ../gtk/gtkiconview.c:607 +#: ../gtk/gtkiconview.c:602 msgid "The column in the model containing the tooltip texts for the items" msgstr "ਮਾਡਲ ਦੇ ਕਾਲਮ ਵਿੱਚ , ਜੋ ਕਿ ਆਈਟਮਾਂ ਲਈ ਟੂਲ-ਟਿੱਪ ਲਵੇਗਾ।" -#: ../gtk/gtkiconview.c:624 +#: ../gtk/gtkiconview.c:619 msgid "Item Padding" msgstr "ਆਈਟਮ ਚਿਣੋ" -#: ../gtk/gtkiconview.c:625 +#: ../gtk/gtkiconview.c:620 msgid "Padding around icon view items" msgstr "ਆਈਕਾਨ ਝਲਕ ਆਈਟਮਾਂ ਦੁਆਲੇ ਚਿਣੋ" -#: ../gtk/gtkiconview.c:656 +#: ../gtk/gtkiconview.c:651 msgid "Selection Box Color" msgstr "ਚੋਣ ਬਕਸਾ ਰੰਗ" -#: ../gtk/gtkiconview.c:657 +#: ../gtk/gtkiconview.c:652 msgid "Color of the selection box" msgstr "ਚੋਣ ਬਕਸੇ ਦਾ ਰੰਗ" -#: ../gtk/gtkiconview.c:663 +#: ../gtk/gtkiconview.c:658 msgid "Selection Box Alpha" msgstr "ਚੋਣ ਬਕਸਾ ਐਲਫ਼ਾ" -#: ../gtk/gtkiconview.c:664 +#: ../gtk/gtkiconview.c:659 msgid "Opacity of the selection box" msgstr "ਚੋਣ ਬਕਸੇ ਦਾ ਬਲੌਰੀਪਨ" @@ -3744,7 +3762,7 @@ msgstr "ਆਈਕਾਨ ਸੈੱਟ" msgid "Icon set to display" msgstr "ਵੇਖਾਉਣ ਲਈ ਆਈਕਾਨ ਸੈੱਟ" -#: ../gtk/gtkimage.c:249 ../gtk/gtkscalebutton.c:228 ../gtk/gtktoolbar.c:529 +#: ../gtk/gtkimage.c:249 ../gtk/gtkscalebutton.c:228 ../gtk/gtktoolbar.c:530 #: ../gtk/gtktoolpalette.c:1013 msgid "Icon size" msgstr "ਆਈਕਾਨ ਆਕਾਰ" @@ -3823,23 +3841,23 @@ msgstr "ਕਾਰਵਾਈ ਖੇਤਰ ਦੁਆਲੇ ਹਾਸ਼ੀਏ ਦ #: ../gtk/gtkinvisible.c:101 ../gtk/gtkmountoperation.c:179 #: ../gtk/gtkstatusicon.c:290 ../gtk/gtkstylecontext.c:442 -#: ../gtk/gtkwindow.c:791 +#: ../gtk/gtkwindow.c:781 msgid "Screen" msgstr "ਸਕਰੀਨ" -#: ../gtk/gtkinvisible.c:102 ../gtk/gtkwindow.c:792 +#: ../gtk/gtkinvisible.c:102 ../gtk/gtkwindow.c:782 msgid "The screen where this window will be displayed" msgstr "ਸਕਰੀਨ, ਜਿੱਥੇ ਕਿ ਵਿੰਡੋ ਵੇਖਾਈ ਜਾਵੇਗੀ" -#: ../gtk/gtklabel.c:727 +#: ../gtk/gtklabel.c:722 msgid "The text of the label" msgstr "ਲੇਬਲ ਦੇ ਸ਼ਬਦ" -#: ../gtk/gtklabel.c:755 ../gtk/gtktexttag.c:404 ../gtk/gtktextview.c:719 +#: ../gtk/gtklabel.c:750 ../gtk/gtktexttag.c:404 ../gtk/gtktextview.c:721 msgid "Justification" msgstr "ਤਰਕਸੰਗਤ ਕਰੋ" -#: ../gtk/gtklabel.c:756 +#: ../gtk/gtklabel.c:751 msgid "" "The alignment of the lines in the text of the label relative to each other. " "This does NOT affect the alignment of the label within its allocation. See " @@ -3849,11 +3867,11 @@ msgstr "" "ਨੂੰ ਪ੍ਰਭਾਵਿਤ " "ਨਹੀਂ ਕਰਦੀ ਹੈ। ਇਸ ਦੇ ਲਈGtkMisc::xalign ਨੂੰ ਵੇਖੋ।" -#: ../gtk/gtklabel.c:764 +#: ../gtk/gtklabel.c:759 msgid "Pattern" msgstr "ਪੈਟਰਨ" -#: ../gtk/gtklabel.c:765 +#: ../gtk/gtklabel.c:760 msgid "" "A string with _ characters in positions correspond to characters in the text " "to underline" @@ -3861,43 +3879,43 @@ msgstr "" "ਕੀ ਸਤਰਾਂ _ ਅੱਖਰਾਂ ਨਾਲ ਜਿੱਥੇ ਕਿ ਉਹਨਾਂ ਦੀ ਸਥਿਤੀ ਹੈ, ਨੂੰ ਸ਼ਬਦਾਂ ਨੂੰ ਹੇਠਾਂ ਲਾਈਨ " "ਲਾ ਦੇਵੇ" -#: ../gtk/gtklabel.c:772 +#: ../gtk/gtklabel.c:767 msgid "Line wrap" msgstr "ਲਾਈਨ ਸਮੇਟੋ" -#: ../gtk/gtklabel.c:773 +#: ../gtk/gtklabel.c:768 msgid "If set, wrap lines if the text becomes too wide" msgstr "ਜੇ ਦਿੱਤਾ ਤਾਂ, ਲਾਈਨਾਂ ਨੂੰ ਲੇਪਟਿਆ ਜਾਵੇਗਾ ਜੇਕਰ ਟੈਕਸਟ ਜਿਆਦਾ ਹੀ ਚੌੜਾ ਹੋ ਗਿਆ" -#: ../gtk/gtklabel.c:788 +#: ../gtk/gtklabel.c:783 msgid "Line wrap mode" msgstr "ਲਾਈਨ ਲਪੇਟਣ ਮੋਡ" -#: ../gtk/gtklabel.c:789 +#: ../gtk/gtklabel.c:784 msgid "If wrap is set, controls how linewrapping is done" msgstr "ਜੇਕਰ ਲਪੇਟਣਾ ਸੈੱਟ ਹੋਵੇ ਤਾਂ ਲਾਈਨ-ਲਪੇਟਣ ਬਾਰੇ ਕੰਟਰੋਲ ਹੋਇਆ" -#: ../gtk/gtklabel.c:797 +#: ../gtk/gtklabel.c:792 msgid "Whether the label text can be selected with the mouse" msgstr "ਕੀ ਲੇਬਲ ਦੇ ਸ਼ਬਦ ਮਾਊਸ ਨਾਲ ਚੁਣੇ ਜਾ ਸਕਣ" -#: ../gtk/gtklabel.c:803 +#: ../gtk/gtklabel.c:798 msgid "Mnemonic key" msgstr "ਮਨਾਮੈਰਿਕ ਕੀ" -#: ../gtk/gtklabel.c:804 +#: ../gtk/gtklabel.c:799 msgid "The mnemonic accelerator key for this label" msgstr "ਇਸ ਲੇਬਲ ਲਈ ਮਨਾਮੈਰਿਕ -ਤੇਜ਼-ਕੀ" -#: ../gtk/gtklabel.c:812 +#: ../gtk/gtklabel.c:807 msgid "Mnemonic widget" msgstr "ਮਨਾਮੈਰਿਕ ਵਿਦਗਿਟ" -#: ../gtk/gtklabel.c:813 +#: ../gtk/gtklabel.c:808 msgid "The widget to be activated when the label's mnemonic key is pressed" msgstr "ਵਿਦਗਿਟ ਸਰਗਰਮ ਹੋ ਜਾਵੇ ਜਦੋਂ ਕਿ ਲੇਬਲ ਦੀ ਅੰਕੀ ਕੀ ਦਬਾਈ ਜਾਵੇ" -#: ../gtk/gtklabel.c:859 +#: ../gtk/gtklabel.c:854 msgid "" "The preferred place to ellipsize the string, if the label does not have " "enough room to display the entire string" @@ -3905,31 +3923,31 @@ msgstr "" "ਅੰਡਾਕਾਰ ਸਤਰ ਲਈ ਪਸੰਦੀਦਾ ਥਾਂ, ਜੇਕਰ ਲੇਬਲ ਕੋਲ ਲੋੜੀਂਦੀ ਸਤਰ ਵੇਖਾਉਣ ਲਈ ਪੂਰੀ ਥਾਂ ਨਾ " "ਹੋਵੇ" -#: ../gtk/gtklabel.c:900 +#: ../gtk/gtklabel.c:895 msgid "Single Line Mode" msgstr "ਇੱਕਲੀ ਲਾਈਨ ਮੋਡ" -#: ../gtk/gtklabel.c:901 +#: ../gtk/gtklabel.c:896 msgid "Whether the label is in single line mode" msgstr "ਕੀ ਲੇਬਲ ਇੱਕ ਇੱਕਲੇ ਲਾਈਨ ਮੋਡ ਵਿੱਚ ਹੋਵੇ" -#: ../gtk/gtklabel.c:918 +#: ../gtk/gtklabel.c:913 msgid "Angle" msgstr "ਕੋਣ" -#: ../gtk/gtklabel.c:919 +#: ../gtk/gtklabel.c:914 msgid "Angle at which the label is rotated" msgstr "ਕੋਣ, ਜਿਸ ਉੱਤੇ ਲੇਬਲ ਨੂੰ ਘੁੰਮਾਉਣਾ ਹੈ" -#: ../gtk/gtklabel.c:941 +#: ../gtk/gtklabel.c:936 msgid "The desired maximum width of the label, in characters" msgstr "ਲੇਬਲ ਦੀ ਵੱਧ ਤੋਂ ਵੱਧ ਲੋੜੀਦੀ ਚੌੜਾਈ, ਅੱਖਰਾਂ ਵਿੱਚ" -#: ../gtk/gtklabel.c:959 +#: ../gtk/gtklabel.c:954 msgid "Track visited links" msgstr "ਖੋਲ੍ਹੋ ਲਿੰਕ ਵੇਖੋ" -#: ../gtk/gtklabel.c:960 +#: ../gtk/gtklabel.c:955 msgid "Whether visited links should be tracked" msgstr "ਕੀ ਖੋਲ੍ਹੇ ਗਏ ਟਰੈਕਾਂ ਨੂੰ ਟਰੈਕ ਕਰਨਾ ਹੈ" @@ -3941,51 +3959,56 @@ msgstr "ਲੇਆਉਟ ਦੀ ਚੌੜਾਈ" msgid "The height of the layout" msgstr "ਲੇਆਉਟ ਦੀ ਉਚਾਈ" -#: ../gtk/gtklevelbar.c:872 +#: ../gtk/gtklevelbar.c:927 msgid "Currently filled value level" msgstr "ਮੌਜੂਦਾ ਭਰਨ ਮੁੱਲ ਪੱਧਰ" -#: ../gtk/gtklevelbar.c:873 +#: ../gtk/gtklevelbar.c:928 msgid "Currently filled value level of the level bar" msgstr "ਲੈਵਲ ਪੱਟੀ ਲਈ ਮੌਜੂਦਾ ਭਰਨ ਮੁੱਲ ਪੱਧਰ" -#: ../gtk/gtklevelbar.c:886 +#: ../gtk/gtklevelbar.c:941 msgid "Minimum value level for the bar" msgstr "ਪੱਟੀ ਲਈ ਘੱਟੋ-ਘੱਟ ਮੁੱਲ ਲੈਵਲ" -#: ../gtk/gtklevelbar.c:887 +#: ../gtk/gtklevelbar.c:942 msgid "Minimum value level that can be displayed by the bar" msgstr "ਪੱਟੀ ਵਲੋਂ ਵੇਖਾਉਣ ਲਈ ਘੱਟੋ-ਘੱਟ ਮੁੱਲ ਪੱਧਰ" -#: ../gtk/gtklevelbar.c:900 +#: ../gtk/gtklevelbar.c:955 msgid "Maximum value level for the bar" msgstr "ਪੱਟੀ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਮੁੱਲ ਪੱਧਰ" -#: ../gtk/gtklevelbar.c:901 +#: ../gtk/gtklevelbar.c:956 msgid "Maximum value level that can be displayed by the bar" msgstr "ਪੱਟੀ ਵਲੋਂ ਵੇਖਾਉਣ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਮੁੱਲ ਪੱਧਰ" -#: ../gtk/gtklevelbar.c:920 +#: ../gtk/gtklevelbar.c:975 msgid "The mode of the value indicator" msgstr "ਮੁੱਲ ਦਰਸਾਉਣ ਲਈ ਮੋਡ" -#: ../gtk/gtklevelbar.c:921 +#: ../gtk/gtklevelbar.c:976 msgid "The mode of the value indicator displayed by the bar" msgstr "ਪੱਟੀ ਵਲੋਂ ਵੇਖਾਉਣ ਲਈ ਮੁੱਲ ਦਰਸਾਉਣ ਲਈ ਮੋਡ" -#: ../gtk/gtklevelbar.c:936 +#: ../gtk/gtklevelbar.c:992 +#| msgid "Invert the direction in which the progress bar grows" +msgid "Invert the direction in which the level bar grows" +msgstr "ਲੈਵਲ ਪੱਟੀ ਦੇ ਵੱਧਣ ਦੀ ਦਿਸ਼ਾ ਨੂੰ ਉਲਟਾ ਕਰੋ" + +#: ../gtk/gtklevelbar.c:1006 msgid "Minimum height for filling blocks" msgstr "ਡੱਬੇ ਭਰਨ ਲਈ ਘੱਟੋ-ਘੱਟ ਉਚਾਈ" -#: ../gtk/gtklevelbar.c:937 +#: ../gtk/gtklevelbar.c:1007 msgid "Minimum height for blocks that fill the bar" msgstr "ਪੱਟੀ ਵਲੋਂ ਭਰਨ ਲਈ ਡੱਬੇ ਵਾਸਤੇ ਘੱਟੋ-ਘੱਟ ਉਚਾਈ" -#: ../gtk/gtklevelbar.c:950 +#: ../gtk/gtklevelbar.c:1020 msgid "Minimum width for filling blocks" msgstr "ਡੱਬੇ ਭਰਨ ਲਈ ਘੱਟੋ-ਘੱਟ ਚੌੜਾਈ" -#: ../gtk/gtklevelbar.c:951 +#: ../gtk/gtklevelbar.c:1021 msgid "Minimum width for blocks that fill the bar" msgstr "ਪੱਟੀ ਵਲੋਂ ਭਰਨ ਲਈ ਡੱਬੇ ਵਾਸਤੇ ਘੱਟੋ-ਘੱਟ ਚੌੜਾਈ" @@ -4056,67 +4079,63 @@ msgstr "" "ਜਦੋਂ ਯੂਜ਼ਰ ਨੂੰ ਪ੍ਰਮਾਣਕਿਤ ਨਾ ਲੈਣ ਸਕਣ ਦੀ ਜਾਣਕਾਰੀ ਲਈ ਦੱਸਣਾ ਹੋਵੇ ਤਾਂ ਵੇਖਾਉਣ ਲਈ " "ਟੂਲ-ਟਿੱਪ" -#: ../gtk/gtkmenubar.c:190 +#: ../gtk/gtkmenubar.c:187 msgid "Pack direction" msgstr "ਪੈਕ ਦਿਸ਼ਾ" -#: ../gtk/gtkmenubar.c:191 +#: ../gtk/gtkmenubar.c:188 msgid "The pack direction of the menubar" msgstr "ਮੇਨੂ-ਪੱਟੀ ਵਿੱਚ ਪੈਕ ਦੀ ਦਿਸ਼ਾ" -#: ../gtk/gtkmenubar.c:207 +#: ../gtk/gtkmenubar.c:204 msgid "Child Pack direction" msgstr "ਚਾਈਲਡ ਪੈਕ ਦਿਸ਼ਾ" -#: ../gtk/gtkmenubar.c:208 +#: ../gtk/gtkmenubar.c:205 msgid "The child pack direction of the menubar" msgstr "ਮੇਨ-ਪੱਟੀ ਦੀ ਚਾਈਲਡ ਪੈਕ ਦਿਸ਼ਾ" -#: ../gtk/gtkmenubar.c:217 +#: ../gtk/gtkmenubar.c:214 msgid "Style of bevel around the menubar" msgstr "ਮੇਨੂ-ਬਾਰ ਦੇ ਦੁਆਲੇ ਬੀਵਲ ਦਾ ਸਟਾਇਲ" -#: ../gtk/gtkmenubar.c:224 ../gtk/gtktoolbar.c:588 +#: ../gtk/gtkmenubar.c:230 ../gtk/gtktoolbar.c:589 msgid "Internal padding" msgstr "ਅੰਦਰੂਨੀ ਚਿਣਾਈ" -#: ../gtk/gtkmenubar.c:225 +#: ../gtk/gtkmenubar.c:231 msgid "Amount of border space between the menubar shadow and the menu items" msgstr "ਹਾਸ਼ੀਏ ਦੀ ਥਾਂ ਦਾ ਅਕਾਰ ਮੇਨੂ-ਬਾਰ ਦੇ ਪਰਛਾਵੇ ਅਤੇ ਮੇਨੂ ਚੀਜਾਂ ਦੇ ਵਿੱਚਕਾਰ" -#: ../gtk/gtkmenubutton.c:508 +#: ../gtk/gtkmenubutton.c:515 msgid "popup" msgstr "ਪੋਪਅੱਪ" -#: ../gtk/gtkmenubutton.c:509 ../gtk/gtkmenubutton.c:525 +#: ../gtk/gtkmenubutton.c:516 msgid "The dropdown menu." msgstr "ਲਕਟਦਾ ਮੇਨੂ।" -#: ../gtk/gtkmenubutton.c:524 -msgid "menu" -msgstr "ਮੇਨੂ" - -#: ../gtk/gtkmenubutton.c:540 +#: ../gtk/gtkmenubutton.c:532 msgid "menu-model" msgstr "ਮੇਨੂ ਮਾਡਲ" -#: ../gtk/gtkmenubutton.c:541 +#: ../gtk/gtkmenubutton.c:533 msgid "The dropdown menu's model." msgstr "ਲਕਟਦਾ ਮੇਨੂ ਦਾ ਮਾਡਲ।" -#: ../gtk/gtkmenubutton.c:554 +#: ../gtk/gtkmenubutton.c:546 msgid "align-widget" msgstr "ਇਕਸਾਰ-ਵਿਦਗਿਟ" -#: ../gtk/gtkmenubutton.c:555 +#: ../gtk/gtkmenubutton.c:547 msgid "The parent widget which the menu should align with." msgstr "ਮੁੱਢਲਾ ਵਿਦਜੈੱਟ, ਜਿਸ ਨਾਲ ਮੇਨੂ ਇਕਸਾਰ ਹੋਵੇ।" -#: ../gtk/gtkmenubutton.c:569 +#: ../gtk/gtkmenubutton.c:561 msgid "direction" msgstr "ਦਿਸ਼ਾ" -#: ../gtk/gtkmenubutton.c:570 +#: ../gtk/gtkmenubutton.c:562 msgid "The direction the arrow should point." msgstr "ਤੀਰ ਦੀ ਦਿਸ਼ਾ ਨਿਸ਼ਾਨਦੇਹੀ ਕਰੇ।" @@ -4128,7 +4147,7 @@ msgstr "ਮੌਜੂਦਾ ਚੁਣੀ ਮੇਨੂ ਆਈਟਮ ਹੈ।" msgid "The accel group holding accelerators for the menu" msgstr "ਮੇਨੂ ਲਈ ਅਸੈੱਲ ਗਰੁੱਪ ਰੱਖਣ ਵਾਲੇ ਐਕਸਰਲੇਟਰ" -#: ../gtk/gtkmenu.c:584 ../gtk/gtkmenuitem.c:414 +#: ../gtk/gtkmenu.c:584 ../gtk/gtkmenuitem.c:415 msgid "Accel Path" msgstr "ਅਸੈੱਲ ਪਾਥ" @@ -4167,19 +4186,11 @@ msgstr "ਮਾਨੀਟਰ" msgid "The monitor the menu will be popped up on" msgstr "ਮੇਨੂ ਨਿਗਾਰਨ ਖੁੱਲ੍ਹੇਗਾ" -#: ../gtk/gtkmenu.c:646 -msgid "Vertical Padding" -msgstr "ਲੰਬਕਾਰੀ ਚਿਣੋ" - -#: ../gtk/gtkmenu.c:647 -msgid "Extra space at the top and bottom of the menu" -msgstr "ਮੇਨੂ ਦੇ ਉੱਤੇ ਅਤੇ ਹੇਠਾਂ ਵਾਧੂ ਖਾਲੀ ਥਾਂ" - -#: ../gtk/gtkmenu.c:669 +#: ../gtk/gtkmenu.c:660 msgid "Reserve Toggle Size" msgstr "ਉਲਟ ਟਾਗਲ ਆਕਾਰ" -#: ../gtk/gtkmenu.c:670 +#: ../gtk/gtkmenu.c:661 msgid "" "A boolean that indicates whether the menu reserves space for toggles and " "icons" @@ -4193,11 +4204,19 @@ msgstr "ਖਿਤਿਜੀ ਚਿਣੋ" msgid "Extra space at the left and right edges of the menu" msgstr "ਮੇਨੂ ਦੇ ਉੱਪਰਲੇ ਅਤੇ ਹੇਠਲੇ ਕਿਨਾਰੇ ਉੱਤੇ ਵਾਧੂ ਖਾਲੀ ਥਾਂ" -#: ../gtk/gtkmenu.c:685 +#: ../gtk/gtkmenu.c:695 +msgid "Vertical Padding" +msgstr "ਲੰਬਕਾਰੀ ਚਿਣੋ" + +#: ../gtk/gtkmenu.c:696 +msgid "Extra space at the top and bottom of the menu" +msgstr "ਮੇਨੂ ਦੇ ਉੱਤੇ ਅਤੇ ਹੇਠਾਂ ਵਾਧੂ ਖਾਲੀ ਥਾਂ" + +#: ../gtk/gtkmenu.c:705 msgid "Vertical Offset" msgstr "ਲੰਬਕਾਰੀ ਆਫਸੈੱਟ" -#: ../gtk/gtkmenu.c:686 +#: ../gtk/gtkmenu.c:706 msgid "" "When the menu is a submenu, position it this number of pixels offset " "vertically" @@ -4205,95 +4224,95 @@ msgstr "" "ਜਦੋਂ ਮੇਨੂ ਵਿੱਚ ਸਬ-ਮੇਨੂ ਹੋਵੇ ਤਾਂ, ਇਸ ਨੂੰ ਇੰਨੇ ਪਿਕਸਿਲ ਲੰਬਕਾਰ ਦਿਸ਼ਾ ਵਿੱਚ ਸੰਤੁਲਿਤ " "ਕਰੋ" -#: ../gtk/gtkmenu.c:694 +#: ../gtk/gtkmenu.c:714 msgid "Horizontal Offset" msgstr "ਲੇਟਵੀ ਆਫਸੈੱਟ" -#: ../gtk/gtkmenu.c:695 +#: ../gtk/gtkmenu.c:715 msgid "" "When the menu is a submenu, position it this number of pixels offset " "horizontally" msgstr "" "ਜਦੋਂ ਮੇਨੂ ਵਿੱਚ ਸਬ-ਮੇਨੂ ਹੋਵੇ ਤਾਂ, ਇਸ ਨੂੰ ਇੰਨੇ ਪਿਕਸਿਲ ਲੇਟਵੀ ਦਿਸ਼ਾ ਸੰਤੁਲਿਤ ਕਰੋ" -#: ../gtk/gtkmenu.c:703 +#: ../gtk/gtkmenu.c:723 msgid "Double Arrows" msgstr "ਦੋਹਰੇ ਤੀਰ" -#: ../gtk/gtkmenu.c:704 +#: ../gtk/gtkmenu.c:724 msgid "When scrolling, always show both arrows." msgstr "ਸਕਰੋਲ ਕਰਨ ਦੌਰਾਨ, ਹਮੇਸ਼ਾ ਦੋਵੇਂ ਤੀਰ ਵੇਖਾਓ।" -#: ../gtk/gtkmenu.c:717 +#: ../gtk/gtkmenu.c:737 msgid "Arrow Placement" msgstr "ਤੀਰ ਥਾਂ" -#: ../gtk/gtkmenu.c:718 +#: ../gtk/gtkmenu.c:738 msgid "Indicates where scroll arrows should be placed" msgstr "ਵੇਖਾਉਦਾ ਹੈ ਕਿ ਕਿੱਥੇ ਸਕਰੋਲ ਤੀਰ ਰੱਖੇ ਜਾਣਗੇ" -#: ../gtk/gtkmenu.c:726 +#: ../gtk/gtkmenu.c:746 msgid "Left Attach" msgstr "ਖੱਬਾ ਜੋੜੋ" -#: ../gtk/gtkmenu.c:734 +#: ../gtk/gtkmenu.c:754 msgid "Right Attach" msgstr "ਸੱਜੇ ਜੋੜੋ" -#: ../gtk/gtkmenu.c:735 +#: ../gtk/gtkmenu.c:755 msgid "The column number to attach the right side of the child to" msgstr "ਚਲਾਇਡ ਨਾਲ ਸੱਜੇ ਪਾਸੇ ਜੋੜਨ ਲਈ ਕਾਲਮ ਦਾ ਨੰਬਰ" -#: ../gtk/gtkmenu.c:742 +#: ../gtk/gtkmenu.c:762 msgid "Top Attach" msgstr "ਉੱਤੇ ਜੋੜੋ" -#: ../gtk/gtkmenu.c:743 +#: ../gtk/gtkmenu.c:763 msgid "The row number to attach the top of the child to" msgstr "ਚਲਾਇਡ ਨਾਲ ਉਪਰਲੇ ਪਾਸੇ ਜੋੜਨ ਲਈ ਸਤਰ ਦਾ ਨੰਬਰ" -#: ../gtk/gtkmenu.c:750 +#: ../gtk/gtkmenu.c:770 msgid "Bottom Attach" msgstr "ਹੇਠਾਂ ਜੋੜੋ" -#: ../gtk/gtkmenu.c:765 +#: ../gtk/gtkmenu.c:785 msgid "Arbitrary constant to scale down the size of the scroll arrow" msgstr "ਸਕਰੋਲ ਤੀਰ ਦਾ ਸਾਈਜ਼ ਘਟਾਉਣ ਲਈ ਸਥਿਰ ਅੰਕ" -#: ../gtk/gtkmenuitem.c:382 +#: ../gtk/gtkmenuitem.c:383 msgid "Right Justified" msgstr "ਸੱਜੇ ਇਕਸਾਰ" -#: ../gtk/gtkmenuitem.c:383 +#: ../gtk/gtkmenuitem.c:384 msgid "" "Sets whether the menu item appears justified at the right side of a menu bar" msgstr "ਮੇਨ ਬਾਰੇ ਦੇ ਸੱਜੇ ਕੋਨੇ ਉੱਤੇ ਮੇਨੂ ਆਈਟਮ ਵੇਖਾਉਣ ਲਈ ਸੈੱਟ ਕਰੇਗਾ" -#: ../gtk/gtkmenuitem.c:397 +#: ../gtk/gtkmenuitem.c:398 msgid "Submenu" msgstr "ਸਬ-ਮੇਨੂ" -#: ../gtk/gtkmenuitem.c:398 +#: ../gtk/gtkmenuitem.c:399 msgid "The submenu attached to the menu item, or NULL if it has none" msgstr "ਮੇਨ ਆਈਟਮ ਨਾਲ ਜੁੜਿਆ ਸਬ-ਮੇਨੂ, ਜਾਂ ਕੁਝ ਨਾ ਹੋਣ ਦੇ ਰੂਪ ਵਿੱਚ NULL" -#: ../gtk/gtkmenuitem.c:415 +#: ../gtk/gtkmenuitem.c:416 msgid "Sets the accelerator path of the menu item" msgstr "ਮੇਨੂ ਆਈਟਮ ਦਾ ਐਕਸਰਲੇਸ਼ਨ ਪਾਥ ਸੈੱਟ ਕਰਦਾ ਹੈ" -#: ../gtk/gtkmenuitem.c:430 +#: ../gtk/gtkmenuitem.c:431 msgid "The text for the child label" msgstr "ਚਾਈਲਡ ਲੇਬਲ ਲਈ ਟੈਕਸਟ" -#: ../gtk/gtkmenuitem.c:496 +#: ../gtk/gtkmenuitem.c:507 msgid "Amount of space used up by arrow, relative to the menu item's font size" msgstr "ਤੀਰ ਵਲੋਂ ਮੇਨੂ ਆਈਟਮ ਦੇ ਫੋਂਟ ਸਾਈਜ਼ ਮੁਤਾਬਕ ਵਰਤੀ ਥਾਂ ਦੀ ਮਾਤਰਾ" -#: ../gtk/gtkmenuitem.c:509 +#: ../gtk/gtkmenuitem.c:520 msgid "Width in Characters" msgstr "ਅੱਖਰਾਂ ਵਿੱਚ ਚੌੜਾਈ" -#: ../gtk/gtkmenuitem.c:510 +#: ../gtk/gtkmenuitem.c:521 msgid "The minimum desired width of the menu item in characters" msgstr "ਅੱਖਰਾਂ ਵਿੱਚ ਮੇਨੂ ਆਈਟਮਾਂਂ ਦੀ ਘੱਟੋ-ਘੱਟ ਲੋੜੀਦੀ ਚੌੜਾਈ" @@ -4419,51 +4438,51 @@ msgstr "ਕੀ ਅਸੀਂ ਡਾਈਲਾਗ ਵੇਖਾ ਰਹੇ ਹਨ" msgid "The screen where this window will be displayed." msgstr "ਸਕਰੀਨ, ਜਿੱਥੇ ਇਹ ਵਿੰਡੋ ਵੇਖਾਈ ਜਾਵੇਗੀ।" -#: ../gtk/gtknotebook.c:692 +#: ../gtk/gtknotebook.c:693 msgid "Page" msgstr "ਸਫ਼ਾ" -#: ../gtk/gtknotebook.c:693 +#: ../gtk/gtknotebook.c:694 msgid "The index of the current page" msgstr "ਮੌਜੂਦਾ ਸਫ਼ੇ ਦਾ ਇੰਡੈਕਸ" -#: ../gtk/gtknotebook.c:701 +#: ../gtk/gtknotebook.c:702 msgid "Tab Position" msgstr "ਟੈਬ ਦੀ ਸਥਿਤੀ" -#: ../gtk/gtknotebook.c:702 +#: ../gtk/gtknotebook.c:703 msgid "Which side of the notebook holds the tabs" msgstr "ਨੋਟਬੁੱਕ ਦੇ ਕਿਹੜੇ ਪਾਸੇ ਟੈਬਾਂ ਨੂੰ ਸੰਭਾਲਿਆ ਜਾਵੇ" -#: ../gtk/gtknotebook.c:709 +#: ../gtk/gtknotebook.c:710 msgid "Show Tabs" msgstr "ਟੈਬਾਂ ਵੇਖਾਓ" -#: ../gtk/gtknotebook.c:710 +#: ../gtk/gtknotebook.c:711 msgid "Whether tabs should be shown" msgstr "ਕੀ ਟੈਬ ਵੇਖਣੀਆਂ ਹਨ" -#: ../gtk/gtknotebook.c:716 +#: ../gtk/gtknotebook.c:717 msgid "Show Border" msgstr "ਹਾਸ਼ੀਆ ਵੇਖਾਓ" -#: ../gtk/gtknotebook.c:717 +#: ../gtk/gtknotebook.c:718 msgid "Whether the border should be shown" msgstr "ਕੀ ਬਾਰਡਰ ਵੇਖਣਾ ਹੈ" -#: ../gtk/gtknotebook.c:723 +#: ../gtk/gtknotebook.c:724 msgid "Scrollable" msgstr "ਸਲਰੋਲ-ਵੋਗ" -#: ../gtk/gtknotebook.c:724 +#: ../gtk/gtknotebook.c:725 msgid "If TRUE, scroll arrows are added if there are too many tabs to fit" msgstr "ਜੇਕਰ ਸੱਚ ਹੈ ਤਾਂ, ਸਕਰੋਲ ਤੀਰ ਜੋੜੇ ਜਾਣਗੇ ਜੇਕਰ ਜਿਆਦਾ ਟੈਬਾਂ ਆ ਗਈਆ" -#: ../gtk/gtknotebook.c:730 +#: ../gtk/gtknotebook.c:731 msgid "Enable Popup" msgstr "ਉਭਾਰਨ ਨੂੰ ਚਾਲੂ ਕਰੋ" -#: ../gtk/gtknotebook.c:731 +#: ../gtk/gtknotebook.c:732 msgid "" "If TRUE, pressing the right mouse button on the notebook pops up a menu that " "you can use to go to a page" @@ -4472,165 +4491,165 @@ msgstr "" "ਤੁਸੀਂ ਸਫੇ ਤੇ ਜਾਣ " "ਲਈ ਵਰਤ ਸਕਦੇ ਹੋ " -#: ../gtk/gtknotebook.c:745 +#: ../gtk/gtknotebook.c:746 msgid "Group Name" msgstr "ਗਰੁੱਪ ਨਾਂ" -#: ../gtk/gtknotebook.c:746 +#: ../gtk/gtknotebook.c:747 msgid "Group name for tab drag and drop" msgstr "ਟੈਬ ਚੁੱਕਣ ਅਤੇ ਸੁੱਟਣ ਲਈ ਗਰੁੱਪ ਨਾਂ" -#: ../gtk/gtknotebook.c:753 +#: ../gtk/gtknotebook.c:754 msgid "Tab label" msgstr "ਟੈਬ ਲੇਬਲ" -#: ../gtk/gtknotebook.c:754 +#: ../gtk/gtknotebook.c:755 msgid "The string displayed on the child's tab label" msgstr "ਚਾਈਲਡ ਦੇ ਟੈਬ ਲੇਬਲ ਉੱਤੇ ਸਤਰ ਵਿਖਾਈ ਜਾਵੇ" -#: ../gtk/gtknotebook.c:760 +#: ../gtk/gtknotebook.c:761 msgid "Menu label" msgstr "ਮੇਨੂ ਲੇਬਲ" -#: ../gtk/gtknotebook.c:761 +#: ../gtk/gtknotebook.c:762 msgid "The string displayed in the child's menu entry" msgstr "ਚਾਈਲਡ ਦੀ ਮੇਨੂ ਇੰਦਰਾਜ਼ ਵਿੱਚ ਸਤਰ ਵੇਖਾਓ" -#: ../gtk/gtknotebook.c:774 +#: ../gtk/gtknotebook.c:775 msgid "Tab expand" msgstr "ਟੈਬ ਫੈਲਾਓ" -#: ../gtk/gtknotebook.c:775 +#: ../gtk/gtknotebook.c:776 msgid "Whether to expand the child's tab" msgstr "ਕੀ ਚਲਾਇਡ ਟੈਬ ਨੂੰ ਫੈਲਾਉਣਾ ਹੈ" -#: ../gtk/gtknotebook.c:781 +#: ../gtk/gtknotebook.c:782 msgid "Tab fill" msgstr "ਟੈਬ ਭਰੋ" -#: ../gtk/gtknotebook.c:782 +#: ../gtk/gtknotebook.c:783 msgid "Whether the child's tab should fill the allocated area" msgstr "ਕੀ ਚਾਈਲਡ ਦੀ ਟੈਬ ਨੂੰ ਦਿੱਤੇ ਖੇਤਰ ਨੂੰ ਭਰਨ ਲਈ ਵਰਤਿਆ ਜਾਵੇ" -#: ../gtk/gtknotebook.c:789 +#: ../gtk/gtknotebook.c:790 msgid "Tab reorderable" msgstr "ਟੈਬ ਮੁੜ-ਕ੍ਰਮਯੋਗ" -#: ../gtk/gtknotebook.c:790 +#: ../gtk/gtknotebook.c:791 msgid "Whether the tab is reorderable by user action" msgstr "ਕੀ ਟੈਬ ਯੂਜ਼ਰ ਕਾਰਵਾਈ ਰਾਹੀਂ ਮੁੜ-ਕ੍ਰਮਬੱਧ ਹੋਣ ਯੋਗ ਹੋਵੇ" -#: ../gtk/gtknotebook.c:796 +#: ../gtk/gtknotebook.c:797 msgid "Tab detachable" msgstr "ਟੈਬ ਵੱਖ ਹੋਣ ਯੋਗ" -#: ../gtk/gtknotebook.c:797 +#: ../gtk/gtknotebook.c:798 msgid "Whether the tab is detachable" msgstr "ਕੀ ਟੈਬ ਵੱਖ ਹੋਣ ਹੋਵੇ" -#: ../gtk/gtknotebook.c:812 ../gtk/gtkscrollbar.c:102 +#: ../gtk/gtknotebook.c:813 ../gtk/gtkscrollbar.c:102 msgid "Secondary backward stepper" msgstr "ਸੈਕੰਡਰੀ ਪਿੱਛੇਵੱਲ ਜਾਣਵਾਲਾ" -#: ../gtk/gtknotebook.c:813 +#: ../gtk/gtknotebook.c:814 msgid "" "Display a second backward arrow button on the opposite end of the tab area" msgstr "ਟੈਬ ਖੇਤਰ ਦੇ ਵਿਰੋਧੀ ਸਿਰੇ ਤੇ ਦੂਜਾ ਪਿੱਛੇ ਜਾਣ ਵਾਲਾ ਤੀਰ ਵੇਖਾਓ" -#: ../gtk/gtknotebook.c:828 ../gtk/gtkscrollbar.c:109 +#: ../gtk/gtknotebook.c:829 ../gtk/gtkscrollbar.c:109 msgid "Secondary forward stepper" msgstr "ਸੈਕੰਡਰੀ ਅੱਗੇਵੱਲ ਜਾਣਵਾਲਾ" -#: ../gtk/gtknotebook.c:829 +#: ../gtk/gtknotebook.c:830 msgid "" "Display a second forward arrow button on the opposite end of the tab area" msgstr "ਟੈਬ ਖੇਤਰ ਦੇ ਵਿਰੋਧੀ ਸਿਰੇ ਤੇ ਦੂਜਾ ਅੱਗੇ ਜਾਣ ਵਾਲਾ ਤੀਰ ਵੇਖਾਉ" -#: ../gtk/gtknotebook.c:843 ../gtk/gtkscrollbar.c:88 +#: ../gtk/gtknotebook.c:844 ../gtk/gtkscrollbar.c:88 msgid "Backward stepper" msgstr "ਪਿੱਛੇ ਵੱਲ ਜਾਣਵਾਲਾ" -#: ../gtk/gtknotebook.c:844 ../gtk/gtkscrollbar.c:89 +#: ../gtk/gtknotebook.c:845 ../gtk/gtkscrollbar.c:89 msgid "Display the standard backward arrow button" msgstr "ਮਿਆਰੀ ਪਿੱਛੇ ਜਾਣ ਵਾਲਾ ਤੀਰ ਵੇਖਾਉ" -#: ../gtk/gtknotebook.c:858 ../gtk/gtkscrollbar.c:95 +#: ../gtk/gtknotebook.c:859 ../gtk/gtkscrollbar.c:95 msgid "Forward stepper" msgstr "ਅੱਗੇਵੱਲ ਜਾਣਵਾਲਾ" -#: ../gtk/gtknotebook.c:859 ../gtk/gtkscrollbar.c:96 +#: ../gtk/gtknotebook.c:860 ../gtk/gtkscrollbar.c:96 msgid "Display the standard forward arrow button" msgstr "ਸਟੈਂਡਰਡ ਅੱਗੇ ਜਾਣ ਵਾਲਾ ਤੀਰ ਵੇਖਾਓ" -#: ../gtk/gtknotebook.c:873 +#: ../gtk/gtknotebook.c:874 msgid "Tab overlap" msgstr "ਟੈਬ ਢਕਣ" -#: ../gtk/gtknotebook.c:874 +#: ../gtk/gtknotebook.c:875 msgid "Size of tab overlap area" msgstr "ਟੈਬ ਢਕਣ ਖੇਤਰ ਦਾ ਅਕਾਰ" -#: ../gtk/gtknotebook.c:889 +#: ../gtk/gtknotebook.c:890 msgid "Tab curvature" msgstr "ਟੈਬ ਕਰਵੇਚਰ" -#: ../gtk/gtknotebook.c:890 +#: ../gtk/gtknotebook.c:891 msgid "Size of tab curvature" msgstr "ਟੈਬ ਕਰਵੇਚਰ ਦਾ ਆਕਾਰ" -#: ../gtk/gtknotebook.c:906 +#: ../gtk/gtknotebook.c:907 msgid "Arrow spacing" msgstr "ਤੀਰ ਥਾਂ" -#: ../gtk/gtknotebook.c:907 +#: ../gtk/gtknotebook.c:908 msgid "Scroll arrow spacing" msgstr "ਸਕਰੋਲ ਤੀਰ ਥਾਂ" -#: ../gtk/gtknotebook.c:923 +#: ../gtk/gtknotebook.c:924 msgid "Initial gap" msgstr "ਸ਼ੁਰੂਆਤੀ ਫਾਸਲਾ" -#: ../gtk/gtknotebook.c:924 +#: ../gtk/gtknotebook.c:925 msgid "Initial gap before the first tab" msgstr "ਪਹਿਲੀ ਟੈਬ ਤੋਂ ਪਹਿਲਾਂ ਸ਼ੁਰੂਆਤੀ ਫਾਸਲਾ" -#: ../gtk/gtknumerableicon.c:652 +#: ../gtk/gtknumerableicon.c:653 msgid "Icon's count" msgstr "ਆਈਕਾਨ ਦੀ ਗਿਣਤੀ" -#: ../gtk/gtknumerableicon.c:653 +#: ../gtk/gtknumerableicon.c:654 msgid "The count of the emblem currently displayed" msgstr "ਇਸ ਸਮੇਂ ਵੇਖਾਏ ਜਾ ਰਹੇ ਨਿਸ਼ਾਨਾਂ ਦੀ ਗਿਣਤੀ" -#: ../gtk/gtknumerableicon.c:659 +#: ../gtk/gtknumerableicon.c:660 msgid "Icon's label" msgstr "ਆਈਕਾਨ ਦਾ ਲੇਬਲ" -#: ../gtk/gtknumerableicon.c:660 +#: ../gtk/gtknumerableicon.c:661 msgid "The label to be displayed over the icon" msgstr "ਆਈਕਾਨ ਦੇ ਉੱਤੇ ਵੇਖਾਉਣ ਲਈ ਲੇਬਲ" -#: ../gtk/gtknumerableicon.c:666 +#: ../gtk/gtknumerableicon.c:667 msgid "Icon's style context" msgstr "ਆਈਕਾਨ ਦਾ ਸਟਾਈਲ ਪਰਸੰਗ" -#: ../gtk/gtknumerableicon.c:667 +#: ../gtk/gtknumerableicon.c:668 msgid "The style context to theme the icon appearance" msgstr "ਆਈਕਾਨ ਦਿੱਖ ਲਈ ਥੀਮ ਵਾਸਤੇ ਸਟਾਈਲ ਪਰਸੰਗ" -#: ../gtk/gtknumerableicon.c:673 +#: ../gtk/gtknumerableicon.c:674 msgid "Background icon" msgstr "ਬੈਕਗਰਾਊਂਡ ਆਈਕਾਨ" -#: ../gtk/gtknumerableicon.c:674 +#: ../gtk/gtknumerableicon.c:675 msgid "The icon for the number emblem background" msgstr "ਅੰਕ ਨਿਸ਼ਾਨ ਬੈਕਗਰਾਊਂਡ ਲਈ ਆਈਕਾਨ" -#: ../gtk/gtknumerableicon.c:680 +#: ../gtk/gtknumerableicon.c:681 msgid "Background icon name" msgstr "ਬੈਕਗਰਾਊਂਡ ਆਈਕਾਨ ਨਾਂ" -#: ../gtk/gtknumerableicon.c:681 +#: ../gtk/gtknumerableicon.c:682 msgid "The icon name for the number emblem background" msgstr "ਅੰਕ ਨਿਸ਼ਾਨ ਬੈਕਗਰਾਊਂਡ ਲਈ ਆਈਕਾਨ ਨਾਂ" @@ -5228,7 +5247,7 @@ msgstr "ਪੂਰਨ ਅੰਕ" msgid "The number of digits to round the value to." msgstr "ਮੁੱਲ ਪੂਰਾ ਕਰਨ ਲਈ ਅੰਕਾਂ ਦੀ ਗਿਣਤੀ ਹੈ।" -#: ../gtk/gtkrange.c:527 ../gtk/gtkswitch.c:868 +#: ../gtk/gtkrange.c:527 ../gtk/gtkswitch.c:848 msgid "Slider Width" msgstr "ਸਲਾਇਡਰ ਚੌੜਾਈ" @@ -5407,47 +5426,47 @@ msgstr "ਆਈਕਾਨ" msgid "List of icon names" msgstr "ਆਈਕਾਨ ਨਾਂ ਦੀ ਲਿਸਟ" -#: ../gtk/gtkscale.c:295 +#: ../gtk/gtkscale.c:310 msgid "The number of decimal places that are displayed in the value" msgstr "ਦਸ਼ਮਲਵ ਦੀ ਗਿਣਤੀ ਜੋ ਕਿ ਮੁੱਲ ਵਿੱਚ ਦਿੱਸੇਗੀ" -#: ../gtk/gtkscale.c:304 +#: ../gtk/gtkscale.c:319 msgid "Draw Value" msgstr "ਮੁੱਲ ਕੱਢੋ" -#: ../gtk/gtkscale.c:305 +#: ../gtk/gtkscale.c:320 msgid "Whether the current value is displayed as a string next to the slider" msgstr "ਕੀ ਮੌਜੂਦਾ ਮੁੱਲ ਪਗਕਾਰ ਤੇ ਅਗਲ਼ੀ ਸਤਰ ਵੇਖਾ ਰਿਹਾ ਹੈ" -#: ../gtk/gtkscale.c:312 +#: ../gtk/gtkscale.c:327 msgid "Has Origin" msgstr "ਮੁੱਢ ਹੈ" -#: ../gtk/gtkscale.c:313 +#: ../gtk/gtkscale.c:328 msgid "Whether the scale has an origin" msgstr "ਕੀ ਸਕੇਲ ਲਈ ਮੁੱਢ ਹੈ" -#: ../gtk/gtkscale.c:320 +#: ../gtk/gtkscale.c:335 msgid "Value Position" msgstr "ਟਿਕਾਣਾ ਮੁੱਲ" -#: ../gtk/gtkscale.c:321 +#: ../gtk/gtkscale.c:336 msgid "The position in which the current value is displayed" msgstr "ਟਿਕਾਣਾ ਜਿੱਥੇ ਮੌਜੂਦਾ ਮੁੱਲ ਵੇਖਾ ਰਿਹਾ ਹੈ" -#: ../gtk/gtkscale.c:328 +#: ../gtk/gtkscale.c:343 msgid "Slider Length" msgstr "ਪਗਕਾਰ ਲੰਬਾਈ" -#: ../gtk/gtkscale.c:329 +#: ../gtk/gtkscale.c:344 msgid "Length of scale's slider" msgstr "ਪੈਮਾਨੇ ਦੇ ਪਗਕਾਰ ਦੀ ਲੰਬਾਈ" -#: ../gtk/gtkscale.c:337 +#: ../gtk/gtkscale.c:352 msgid "Value spacing" msgstr "ਮੁੱਲ ਦੀ ਥਾਂ" -#: ../gtk/gtkscale.c:338 +#: ../gtk/gtkscale.c:353 msgid "Space between value text and the slider/trough area" msgstr "ਖਾਲ਼ੀ ਥਾਂ, ਸ਼ਬਦ ਅਤੇ ਪਗਕਾਰ/ਕੁੰਡ ਖੇਤਰ ਵਿੱਚ" @@ -5513,43 +5532,43 @@ msgid "" "Display a second forward arrow button on the opposite end of the scrollbar" msgstr "ਸਕਰੋਲਬਾਰ ਦੇ ਉਲਟ ਕਿਨਾਰੇ ਉੱਤੇ ਦੂਜਾ ਅੱਗੇ ਵਾਲਾ ਤੀਰ-ਬਟਨ ਵੇਖਾਓ" -#: ../gtk/gtkscrolledwindow.c:372 +#: ../gtk/gtkscrolledwindow.c:367 msgid "Horizontal Adjustment" msgstr "ਲੇਟਵੀ ਅਡਜੱਸਟਮੈਂਟ" -#: ../gtk/gtkscrolledwindow.c:373 +#: ../gtk/gtkscrolledwindow.c:368 msgid "The GtkAdjustment for the horizontal position" msgstr "ਲੇਟਵੀ ਸਥਿਤੀ ਲਈ GtkAdjustment" -#: ../gtk/gtkscrolledwindow.c:379 +#: ../gtk/gtkscrolledwindow.c:374 msgid "Vertical Adjustment" msgstr "ਲੰਬਕਾਰੀ ਅਡਜੱਸਟਮੈਂਟ" -#: ../gtk/gtkscrolledwindow.c:380 +#: ../gtk/gtkscrolledwindow.c:375 msgid "The GtkAdjustment for the vertical position" msgstr "ਲੰਬਕਾਰੀ ਸਥਿਤੀ ਲਈ GtkAdjustment" -#: ../gtk/gtkscrolledwindow.c:386 +#: ../gtk/gtkscrolledwindow.c:381 msgid "Horizontal Scrollbar Policy" msgstr "ਲੇਟਵਾਂ ਸਕਰੌਲਬਾਰ ਦਾ ਢੰਗ" -#: ../gtk/gtkscrolledwindow.c:387 +#: ../gtk/gtkscrolledwindow.c:382 msgid "When the horizontal scrollbar is displayed" msgstr "ਜਦੋਂ ਲੇਟਵਾਂ ਸਕਰੌਲਬਾਰ ਵਿਖਾਇਆ ਗਿਆ" -#: ../gtk/gtkscrolledwindow.c:394 +#: ../gtk/gtkscrolledwindow.c:389 msgid "Vertical Scrollbar Policy" msgstr "ਲੰਬਕਾਰੀ ਅਡਜੱਸਟਮੈਂਟ ਪਾਲਸੀ" -#: ../gtk/gtkscrolledwindow.c:395 +#: ../gtk/gtkscrolledwindow.c:390 msgid "When the vertical scrollbar is displayed" msgstr "ਜਦੋਂ ਲੰਬਕਾਰੀ ਸਕਰੌਲਬਾਰ ਵਿਖਾਇਆ ਗਿਆ" -#: ../gtk/gtkscrolledwindow.c:403 +#: ../gtk/gtkscrolledwindow.c:398 msgid "Window Placement" msgstr "ਵਿੰਡੋ ਟਿਕਾਣਾ" -#: ../gtk/gtkscrolledwindow.c:404 +#: ../gtk/gtkscrolledwindow.c:399 msgid "" "Where the contents are located with respect to the scrollbars. This property " "only takes effect if \"window-placement-set\" is TRUE." @@ -5558,11 +5577,11 @@ msgstr "" "\"window-placement-set\" ਦੇ " "ਸਹੀਂ ਹੋਣ ਦੀ ਸੂਰਤ ਵਿੱਚ ਹੀ ਪਰਭਾਵੀ ਹੁੰਦੀ ਹੈ।" -#: ../gtk/gtkscrolledwindow.c:421 +#: ../gtk/gtkscrolledwindow.c:416 msgid "Window Placement Set" msgstr "ਵਿੰਡੋ ਟਿਕਾਣਾ ਦਿਓ" -#: ../gtk/gtkscrolledwindow.c:422 +#: ../gtk/gtkscrolledwindow.c:417 msgid "" "Whether \"window-placement\" should be used to determine the location of the " "contents with respect to the scrollbars." @@ -5571,52 +5590,52 @@ msgstr "" "ਵਾਸਤੇ ਵਰਤਿਆ " "ਜਾਵੇ।" -#: ../gtk/gtkscrolledwindow.c:428 +#: ../gtk/gtkscrolledwindow.c:423 msgid "Shadow Type" msgstr "ਛਾਂ ਕਿਸਮ" -#: ../gtk/gtkscrolledwindow.c:429 +#: ../gtk/gtkscrolledwindow.c:424 msgid "Style of bevel around the contents" msgstr "ਹਿੱਸੇ ਦੁਆਲੇ bevel ਦੀ ਕਿਸਮ" -#: ../gtk/gtkscrolledwindow.c:443 +#: ../gtk/gtkscrolledwindow.c:438 msgid "Scrollbars within bevel" msgstr "ਬੀਵਲ ਨਾਲ ਸਕਰੋਲਬਾਰ" -#: ../gtk/gtkscrolledwindow.c:444 +#: ../gtk/gtkscrolledwindow.c:439 msgid "Place scrollbars within the scrolled window's bevel" msgstr "ਸਕਰੋਲ ਕੀਤੇ ਵਿੰਡੋ ਦੇ ਬੀਵਲ ਵਿੱਚ ਸਕਰੋਲਬਾਰ ਰੱਖੋ" -#: ../gtk/gtkscrolledwindow.c:450 +#: ../gtk/gtkscrolledwindow.c:445 msgid "Scrollbar spacing" msgstr "ਸਕਰੌਲਬਾਰ ਵਿੱਥ" -#: ../gtk/gtkscrolledwindow.c:451 +#: ../gtk/gtkscrolledwindow.c:446 msgid "Number of pixels between the scrollbars and the scrolled window" msgstr "ਸਕਰੌਲਬਾਰ ਅਤੇ ਸਕਰੌਲ ਕੀਤੇ ਵਿੰਡੋ ਵਿਚਕਾਰ ਪਿਕਸਲਾਂ ਦੀ ਗਿਣਤੀ" -#: ../gtk/gtkscrolledwindow.c:467 +#: ../gtk/gtkscrolledwindow.c:462 msgid "Minimum Content Width" msgstr "ਘੱਟੋ-ਘੱਟ ਸਮੱਗਰੀ ਚੌੜਾਈ" -#: ../gtk/gtkscrolledwindow.c:468 +#: ../gtk/gtkscrolledwindow.c:463 msgid "The minimum width that the scrolled window will allocate to its content" msgstr "ਘੱਟੋ-ਘੱਟ ਚੌੜਾਈ, ਜੋ ਕਿ ਸਕਰੋਲ ਵਿੰਡੋ ਆਪਣੀ ਸਮੱਗਰੀ ਨੂੰ ਦੇਵੇਗੀ" -#: ../gtk/gtkscrolledwindow.c:482 +#: ../gtk/gtkscrolledwindow.c:477 msgid "Minimum Content Height" msgstr "ਘੱਟੋ-ਘੱਟ ਸਮੱਗਰੀ ਉਚਾਈ" -#: ../gtk/gtkscrolledwindow.c:483 +#: ../gtk/gtkscrolledwindow.c:478 msgid "" "The minimum height that the scrolled window will allocate to its content" msgstr "ਘੱਟੋ-ਘੱਟ ਉਚਾਈ, ਜੋ ਕਿ ਸਕਰੋਲ ਵਿੰਡੋ ਆਪਣੀ ਸਮੱਗਰੀ ਨੂੰ ਦੇਵੇਗੀ" -#: ../gtk/gtkscrolledwindow.c:498 +#: ../gtk/gtkscrolledwindow.c:493 msgid "Kinetic Scrolling" msgstr "ਕਨਾਇਟਿਕ ਸਕਰੋਲਿੰਗ" -#: ../gtk/gtkscrolledwindow.c:499 +#: ../gtk/gtkscrolledwindow.c:494 msgid "Kinetic scrolling mode." msgstr "ਕਨਾਇਟਿਕ ਸਕਰੋਲਿੰਗ ਮੋਡ ਹੈ।" @@ -5628,11 +5647,11 @@ msgstr "ਉਲੀਕੋ" msgid "Whether the separator is drawn, or just blank" msgstr "ਵਖਰੇਵਾਂ ਉਲੀਕਿਆ ਜਾਵੇ ਜਾਂ ਸਿਰਫ ਖਾਲੀ ਛੱਡਿਆ ਜਾਵੇ" -#: ../gtk/gtksettings.c:360 +#: ../gtk/gtksettings.c:354 msgid "Double Click Time" msgstr "ਦੋ-ਵਾਰ ਦਬਾਉਣ ਦਾ ਸਮਾਂ" -#: ../gtk/gtksettings.c:361 +#: ../gtk/gtksettings.c:355 msgid "" "Maximum time allowed between two clicks for them to be considered a double " "click (in milliseconds)" @@ -5641,11 +5660,11 @@ msgstr "" "ਦੋ-ਵਾਰ-" "ਦਬਾਇਆ ਗਿਆ ਹੈ (ਮਿਲੀ-ਸਕਿੰਟਾਂ ਵਿੱਚ)" -#: ../gtk/gtksettings.c:368 +#: ../gtk/gtksettings.c:362 msgid "Double Click Distance" msgstr "ਦੋ-ਵਾਰ ਦਬਾਉਣ ਦਾ ਫਾਸਲਾ" -#: ../gtk/gtksettings.c:369 +#: ../gtk/gtksettings.c:363 msgid "" "Maximum distance allowed between two clicks for them to be considered a " "double click (in pixels)" @@ -5653,35 +5672,35 @@ msgstr "" "ਦੋ ਦਬਾਉਣ ਵਿਚਕਾਰ ਵੱਧ ਤੋਂ ਵੱਧ ਮੰਨਣਯੋਗ ਦੂਰੀ ਜਿਸ ਨੂੰ ਦੋ-ਵਾਰ-ਦਬਾਇਆ ਜਾਵੇ (ਪਿਕਸਲਾਂ " "ਵਿੱਚ)" -#: ../gtk/gtksettings.c:385 +#: ../gtk/gtksettings.c:379 msgid "Cursor Blink" msgstr "ਕਰਸਰ ਝਪਕਣਾ" -#: ../gtk/gtksettings.c:386 +#: ../gtk/gtksettings.c:380 msgid "Whether the cursor should blink" msgstr "ਕੀ ਕਰਸਰ ਝਪਕੇ" -#: ../gtk/gtksettings.c:393 +#: ../gtk/gtksettings.c:387 msgid "Cursor Blink Time" msgstr "ਕਰਸਰ ਝਪਕਣ ਦਾ ਸਮਾਂ" -#: ../gtk/gtksettings.c:394 +#: ../gtk/gtksettings.c:388 msgid "Length of the cursor blink cycle, in milliseconds" msgstr "ਕਰਸਰ ਝਪਕਣ ਦੇ ਸਮਾਂ ਚੱਕਰ ਦੀ ਲੰਬਾਈ, ਮਿਲੀਸਕਿੰਟਾਂ ਵਿੱਚ" -#: ../gtk/gtksettings.c:413 +#: ../gtk/gtksettings.c:407 msgid "Cursor Blink Timeout" msgstr "ਕਰਸਰ ਝਪਕਣ ਦਾ ਸਮਾਂ" -#: ../gtk/gtksettings.c:414 +#: ../gtk/gtksettings.c:408 msgid "Time after which the cursor stops blinking, in seconds" msgstr "ਸਮਾਂ, ਜਿਸ ਉਪਰੰਤ ਕਰਸਰ ਝਪਕਣਾ ਬੰਦ ਹੋਵੇ, ਮਿਲੀਸਕਿੰਟਾਂ ਵਿੱਚ" -#: ../gtk/gtksettings.c:421 +#: ../gtk/gtksettings.c:415 msgid "Split Cursor" msgstr "ਕਰਸਰ ਖਿੰਡਾਓ" -#: ../gtk/gtksettings.c:422 +#: ../gtk/gtksettings.c:416 msgid "" "Whether two cursors should be displayed for mixed left-to-right and right-to-" "left text" @@ -5689,148 +5708,148 @@ msgstr "" "ਕੀ ਦੋ ਕਰਸਰਾਂ ਵੇਖਾਈਆ ਜਾਣ ਜੋ ਕਿ ਖੱਬੇ ਤੋਂ ਸੱਜੇ ਤੇ ਸੱਜੇ ਤੋਂ ਖੱਬੇ ਟੈਕਸਟ ਰੱਲਵੇ ਨੂੰ " "ਵੇਖਾਉਣ" -#: ../gtk/gtksettings.c:429 +#: ../gtk/gtksettings.c:423 msgid "Theme Name" msgstr "ਸਰੂਪ ਨਾਂ" -#: ../gtk/gtksettings.c:430 +#: ../gtk/gtksettings.c:424 msgid "Name of theme to load" msgstr "ਲੋਡ ਕਰਨ ਲਈ ਥੀਮ ਦਾ ਨਾਂ" -#: ../gtk/gtksettings.c:442 +#: ../gtk/gtksettings.c:436 msgid "Icon Theme Name" msgstr "ਆਈਕਾਨ ਸਰੂਪ ਦਾ ਨਾਂ" -#: ../gtk/gtksettings.c:443 +#: ../gtk/gtksettings.c:437 msgid "Name of icon theme to use" msgstr "ਵਰਤਣ ਲਈ ਆਈਕਾਨ ਸਰੂਪ ਦਾ ਨਾਂ" -#: ../gtk/gtksettings.c:451 +#: ../gtk/gtksettings.c:445 msgid "Fallback Icon Theme Name" msgstr "ਵਾਪਸੀ ਆਈਕਾਨ ਸਰੂਪ ਨਾਂ" -#: ../gtk/gtksettings.c:452 +#: ../gtk/gtksettings.c:446 msgid "Name of a icon theme to fall back to" msgstr "ਵਾਪਸ ਪਰਤਣ ਲਈ ਇੱਕ ਆਈਕਾਨ ਸਰੂਪ ਦਾ ਨਾਂ" -#: ../gtk/gtksettings.c:460 +#: ../gtk/gtksettings.c:454 msgid "Key Theme Name" msgstr "ਕੀ-ਸਰੂਪ ਦਾ ਨਾਂ" -#: ../gtk/gtksettings.c:461 +#: ../gtk/gtksettings.c:455 msgid "Name of key theme to load" msgstr "ਲੋਡ ਕਰਨ ਲਈ ਕੁੰਜੀ ਥੀਮ ਦਾ ਨਾਂ" -#: ../gtk/gtksettings.c:469 +#: ../gtk/gtksettings.c:463 msgid "Menu bar accelerator" msgstr "ਮੇਨੂ-ਪੱਟੀ ਤੇਜ਼" -#: ../gtk/gtksettings.c:470 +#: ../gtk/gtksettings.c:464 msgid "Keybinding to activate the menu bar" msgstr "ਮੇਨੂ ਨੂੰ ਸਰਗਰਮ ਕਰਨ ਲਈ ਕੀ-ਬਾਈਡਿੰਗ" -#: ../gtk/gtksettings.c:478 +#: ../gtk/gtksettings.c:472 msgid "Drag threshold" msgstr "ਚੁੱਕਣ ਸਮੱਰਥਾ" -#: ../gtk/gtksettings.c:479 +#: ../gtk/gtksettings.c:473 msgid "Number of pixels the cursor can move before dragging" msgstr "ਖਿੱਚਣ ਤੋਂ ਪਹਿਲਾਂ ਕਰਸਰ ਕਿੰਨੇ ਪਿਕਸਲ ਹਿੱਲੇ" -#: ../gtk/gtksettings.c:487 +#: ../gtk/gtksettings.c:481 msgid "Font Name" msgstr "ਫੋਂਟ-ਨਾਂ" -#: ../gtk/gtksettings.c:488 +#: ../gtk/gtksettings.c:482 msgid "Name of default font to use" msgstr "ਵਰਤਣ ਲਈ ਮੂਲ-ਫੋਂਟ ਦਾ ਨਾਂ" -#: ../gtk/gtksettings.c:510 +#: ../gtk/gtksettings.c:504 msgid "Icon Sizes" msgstr "ਆਈਕਾਨ ਅਕਾਰ" -#: ../gtk/gtksettings.c:511 +#: ../gtk/gtksettings.c:505 msgid "List of icon sizes (gtk-menu=16,16:gtk-button=20,20..." msgstr "ਆਈਕਾਨ ਅਕਾਰ ਦੀ ਸੂਚੀ (gtk-ਸੂਚੀ=16,16;gtk-ਬਟਨ=20,20..." -#: ../gtk/gtksettings.c:519 +#: ../gtk/gtksettings.c:513 msgid "GTK Modules" msgstr "GTK ਮੈਡੀਊਲ" -#: ../gtk/gtksettings.c:520 +#: ../gtk/gtksettings.c:514 msgid "List of currently active GTK modules" msgstr "ਇਸ ਸਮੇਂ ਸਰਗਰਮ GTK ਮੈਡੀਊਲਾਂ ਦੀ ਸੂਚੀ" -#: ../gtk/gtksettings.c:528 +#: ../gtk/gtksettings.c:522 msgid "Xft Antialias" msgstr "Xft ਐਟੀਲਾਈਸਿਕ" -#: ../gtk/gtksettings.c:529 +#: ../gtk/gtksettings.c:523 msgid "Whether to antialias Xft fonts; 0=no, 1=yes, -1=default" msgstr "ਕੀ Xft ਫੋਂਟ ਨੂੰ ਐਟੀਲਾਈਸਿਕ ਕਰਨਾ ਹੈ; 0= ਨਹੀ, 1=ਹਾਂ, -1=ਮੂਲ" -#: ../gtk/gtksettings.c:538 +#: ../gtk/gtksettings.c:532 msgid "Xft Hinting" msgstr "Xft ਸੰਕੇਤ" -#: ../gtk/gtksettings.c:539 +#: ../gtk/gtksettings.c:533 msgid "Whether to hint Xft fonts; 0=no, 1=yes, -1=default" msgstr "ਕੀ ਸੰਕੇਤ ਦੇਣੇ ਹਨ Xft ਫੋਟ; 0=ਨਹੀ, 1=ਹਾਂ, -1=ਮੂਲ" -#: ../gtk/gtksettings.c:548 +#: ../gtk/gtksettings.c:542 msgid "Xft Hint Style" msgstr "Xft ਸੰਕੇਤ ਸਟਾਇਲ" -#: ../gtk/gtksettings.c:549 +#: ../gtk/gtksettings.c:543 msgid "" "What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull" msgstr "ਕਿਸ ਤਰ੍ਹਾਂ ਦੇ ਸੰਕੇਤ ਵਰਤਣੇ ਹਨ ; ਕੋਈ ਨਹੀ, ਥੋੜੇ, ਮੱਧਮ, ਜਾਂ ਲੋੜ ਮੁਤਾਬਕ" -#: ../gtk/gtksettings.c:558 +#: ../gtk/gtksettings.c:552 msgid "Xft RGBA" msgstr "Xft RGBA" -#: ../gtk/gtksettings.c:559 +#: ../gtk/gtksettings.c:553 msgid "Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr" msgstr "ਸਬ-ਪਿਕਸਲ ਐਟੀਲਾਈਸਇੰਗ ਦੀ ਕਿਸਮ; ਕੋਈ ਨਹੀ, rgb, bgr, vrgb, vbgr" -#: ../gtk/gtksettings.c:568 +#: ../gtk/gtksettings.c:562 msgid "Xft DPI" msgstr "Xft DPI" -#: ../gtk/gtksettings.c:569 +#: ../gtk/gtksettings.c:563 msgid "Resolution for Xft, in 1024 * dots/inch. -1 to use default value" msgstr "Xft ਲਈ ਰੈਜ਼ੋਲੂਸ਼ਨ, 1024 * ਬਿੰਦੂ/ਇੰਚ -1 ਮੂਲ ਮੁੱਲ ਦੇ ਰੂਪ ਵਿੱਚ ਵਰਤੋਂ" -#: ../gtk/gtksettings.c:578 +#: ../gtk/gtksettings.c:572 msgid "Cursor theme name" msgstr "ਕਰਸਰ ਸਰੂਪ ਨਾਂ" -#: ../gtk/gtksettings.c:579 +#: ../gtk/gtksettings.c:573 msgid "Name of the cursor theme to use, or NULL to use the default theme" msgstr "ਵਰਤਣ ਲਈ ਆਈਕਾਨ ਸਰੂਪ ਦਾ ਨਾਂ, ਜਾਂ ਮੂਲ ਸਰੂਪ ਲਈ NULL" -#: ../gtk/gtksettings.c:587 +#: ../gtk/gtksettings.c:581 msgid "Cursor theme size" msgstr "ਕਰਸਰ ਸਰੂਪ ਅਕਾਰ" -#: ../gtk/gtksettings.c:588 +#: ../gtk/gtksettings.c:582 msgid "Size to use for cursors, or 0 to use the default size" msgstr "ਵਰਤਣ ਲਈ ਕਰਸਰ ਅਕਾਰ, ਜਾਂ ਮੂਲ ਅਕਾਰ ਲਈ 0 ਦਿਓ" -#: ../gtk/gtksettings.c:597 +#: ../gtk/gtksettings.c:591 msgid "Alternative button order" msgstr "ਬਦਲਵਾਂ ਬਟਨ ਕਰਮ" -#: ../gtk/gtksettings.c:598 +#: ../gtk/gtksettings.c:592 msgid "Whether buttons in dialogs should use the alternative button order" msgstr "ਕੀ ਡਾਈਲਾਗ ਦੇ ਬਟਨ ਲਈ ਬਦਲਵਾਂ ਬਟਨ ਕਰਮ ਵਰਤਣਾ ਚਾਹੀਦਾ ਹੈ" -#: ../gtk/gtksettings.c:615 +#: ../gtk/gtksettings.c:609 msgid "Alternative sort indicator direction" msgstr "ਬਦਲਵੀਂ ਲੜੀਬੱਧ ਸੂਚਕ ਦਿਸ਼ਾ" -#: ../gtk/gtksettings.c:616 +#: ../gtk/gtksettings.c:610 msgid "" "Whether the direction of the sort indicators in list and tree views is " "inverted compared to the default (where down means ascending)" @@ -5839,261 +5858,261 @@ msgstr "" "(ਜਿੱਥੇ ਕਿ " "ਹੇਠਾਂ ਦਾ ਮਤਲਬ ਵੱਧਦਾ ਹੈ)" -#: ../gtk/gtksettings.c:624 +#: ../gtk/gtksettings.c:618 msgid "Show the 'Input Methods' menu" msgstr "'ਇੰਪੁੱਟ ਢੰਗ' ਮੇਨੂ ਵੇਖਾਓ" -#: ../gtk/gtksettings.c:625 +#: ../gtk/gtksettings.c:619 msgid "" "Whether the context menus of entries and text views should offer to change " "the input method" msgstr "ਕੀ ਐਂਟਰੀਆਂ ਦੇ ਸਬੰਧਿਤ ਮੇਨੂ ਅਤੇ ਟੈਕਸਟ ਝਲਕ ਇੰਪੁੱਟ ਢੰਗ ਬਦਲਣ ਨੂੰ ਦਰਸਾਉਣ" -#: ../gtk/gtksettings.c:633 +#: ../gtk/gtksettings.c:627 msgid "Show the 'Insert Unicode Control Character' menu" msgstr "'ਯੂਨੀਕੋਡ ਕੰਟਰੋਲ ਅੱਖਰ ਸ਼ਾਮਲ ਕਰੋ' ਮੇਨੂ ਵੇਖਾਓ" -#: ../gtk/gtksettings.c:634 +#: ../gtk/gtksettings.c:628 msgid "" "Whether the context menus of entries and text views should offer to insert " "control characters" msgstr "" "ਕੀ ਐਂਟਰੀਆਂ ਦੇ ਸਬੰਧਿਤ ਮੇਨੂ ਅਤੇ ਟੈਕਸਟ ਝਲਕ ਕੰਟਰੋਲ ਅੱਖਰ ਸ਼ਾਮਲ ਕਰਨ ਨੂੰ ਦਰਸਾਉਣ" -#: ../gtk/gtksettings.c:642 +#: ../gtk/gtksettings.c:636 msgid "Start timeout" msgstr "ਸ਼ੁਰੂਆਤੀ ਅੰਤਰਾਲ" -#: ../gtk/gtksettings.c:643 +#: ../gtk/gtksettings.c:637 msgid "Starting value for timeouts, when button is pressed" msgstr "ਅੰਤਰਾਲ ਲਈ ਸ਼ੁਰੂਆਤੀ ਮੁੱਲ, ਜਦੋਂ ਕਿ ਬਟਨ ਦਬਾਇਆ ਜਾਵੇ" -#: ../gtk/gtksettings.c:652 +#: ../gtk/gtksettings.c:646 msgid "Repeat timeout" msgstr "ਦੁਹਰਾਉ ਅੰਤਰਾਲ" -#: ../gtk/gtksettings.c:653 +#: ../gtk/gtksettings.c:647 msgid "Repeat value for timeouts, when button is pressed" msgstr "ਅੰਤਰਾਲ ਦੁਹਰਾਉਣ ਮੁੱਲ, ਜਦੋਂ ਇੱਕ ਬਟਨ ਨੂੰ ਦਬਾਇਆ ਜਾਵੇ" -#: ../gtk/gtksettings.c:662 +#: ../gtk/gtksettings.c:656 msgid "Expand timeout" msgstr "ਫੈਲਾ ਸਮਾਂ-ਅੰਤਰਾਲ" -#: ../gtk/gtksettings.c:663 +#: ../gtk/gtksettings.c:657 msgid "Expand value for timeouts, when a widget is expanding a new region" msgstr "" "ਫੈਲਾਉਣ ਲਈ ਅੰਤਰਾਲ ਦਾ ਮੁੱਲ, ਜਦੋਂ ਕਿ ਇੱਕ ਵਿਦਗਿਟ ਇੱਕ ਨਵੇਂ ਖੇਤਰ ਨੂੰ ਫੈਲਾਉਦਾ ਹੋਵੇ" -#: ../gtk/gtksettings.c:698 +#: ../gtk/gtksettings.c:695 msgid "Color scheme" msgstr "ਰੰਗ ਸਕੀਮ" -#: ../gtk/gtksettings.c:699 +#: ../gtk/gtksettings.c:696 msgid "A palette of named colors for use in themes" msgstr "ਸਰੂਪ ਵਿੱਚ ਵਰਤਣ ਲਈ ਨਾਮੀ ਰੰਗ ਦੀ ਇੱਕ ਰੰਗ-ਪੱਟੀ" -#: ../gtk/gtksettings.c:708 +#: ../gtk/gtksettings.c:705 msgid "Enable Animations" msgstr "ਸਜੀਵਤਾ ਯੋਗ" -#: ../gtk/gtksettings.c:709 +#: ../gtk/gtksettings.c:706 msgid "Whether to enable toolkit-wide animations." msgstr "ਕੀ ਟੂਲ-ਕਿੱਟ ਸਜੀਵਤਾ ਯੋਗ" -#: ../gtk/gtksettings.c:730 +#: ../gtk/gtksettings.c:727 msgid "Enable Touchscreen Mode" msgstr "ਟੱਚ-ਸਕਰੀਨ ਢੰਗ ਯੋਗ" -#: ../gtk/gtksettings.c:731 +#: ../gtk/gtksettings.c:728 msgid "When TRUE, there are no motion notify events delivered on this screen" msgstr "ਜੇ ਚੋਣ ਕੀਤੀ ਤਾਂ ਇਸ ਸਕਰੀਨ ਉੱਤੇ ਕੋਈ ਚੱਲਦੇ ਸੂਚਨਾ ਈਵੈਂਟ ਨਹੀਂ ਦਿੱਤੇ ਜਾਣਗੇ।" -#: ../gtk/gtksettings.c:748 +#: ../gtk/gtksettings.c:745 msgid "Tooltip timeout" msgstr "ਟੂਲ-ਟਿੱਪ ਅੰਤਰਾਲ" -#: ../gtk/gtksettings.c:749 +#: ../gtk/gtksettings.c:746 msgid "Timeout before tooltip is shown" msgstr "ਟੂਲ-ਟਿੱਪ ਵੇਖਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਸਮਾਂ" -#: ../gtk/gtksettings.c:774 +#: ../gtk/gtksettings.c:771 msgid "Tooltip browse timeout" msgstr "ਟੂਲ-ਟਿੱਪ ਝਲਕ ਅੰਤਰਾਲ" -#: ../gtk/gtksettings.c:775 +#: ../gtk/gtksettings.c:772 msgid "Timeout before tooltip is shown when browse mode is enabled" msgstr "ਝਲਕ ਮੋਡ ਯੋਗ ਕਰਨ ਦੌਰਾਨ ਟੂਲ-ਟਿੱਪ ਵੇਖਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਟਾਈਮ-ਆਉਟ" -#: ../gtk/gtksettings.c:796 +#: ../gtk/gtksettings.c:793 msgid "Tooltip browse mode timeout" msgstr "ਟੂਲ-ਟਿੱਪ ਝਲਕ ਢੰਗ ਅੰਤਰਾਲ" -#: ../gtk/gtksettings.c:797 +#: ../gtk/gtksettings.c:794 msgid "Timeout after which browse mode is disabled" msgstr "ਅੰਤਰਾਲ, ਜਿਸ ਉਪਰੰਤ ਝਲਕ ਢੰਗ ਨੂੰ ਆਯੋਗ ਕਰ ਦਿੱਤਾ ਜਾਵੇ" -#: ../gtk/gtksettings.c:816 +#: ../gtk/gtksettings.c:813 msgid "Keynav Cursor Only" msgstr "ਕੀ-ਨੇਵੀ ਕਰਸਰ ਹੀ" -#: ../gtk/gtksettings.c:817 +#: ../gtk/gtksettings.c:814 msgid "When TRUE, there are only cursor keys available to navigate widgets" msgstr "" "ਜਦੋਂ ਸਹੀਂ ਹੋਵੇ ਤਾਂ ਕੇਵਲ ਇਹੀ ਕਰਸਰ ਸਵਿੱਚਾਂ ਹੋਣਗੀਆਂ, ਜੋ ਕਿ ਵਿਦਜੈੱਟ ਨੇਵੀਗੇਟ ਲਈ " "ਹੋਣਗੀਆਂ" -#: ../gtk/gtksettings.c:834 +#: ../gtk/gtksettings.c:831 msgid "Keynav Wrap Around" msgstr "ਕੀ-ਨੇਵੀ ਦੁਆਥੇ ਸਮੇਟਣਾ" -#: ../gtk/gtksettings.c:835 +#: ../gtk/gtksettings.c:832 msgid "Whether to wrap around when keyboard-navigating widgets" msgstr "ਕੀ ਪਾਸੇ ਸਮੇਟਣਾ ਹੈ, ਜਦੋਂ ਕਿ ਕੀ-ਬੋਰਡ-ਨੇਵੀਗੇਸ਼ਨ ਵਿਦਗਿਟ ਹੋਵੇ" -#: ../gtk/gtksettings.c:855 +#: ../gtk/gtksettings.c:852 msgid "Error Bell" msgstr "ਗਲਤੀ ਘੰਟੀ" -#: ../gtk/gtksettings.c:856 +#: ../gtk/gtksettings.c:853 msgid "When TRUE, keyboard navigation and other errors will cause a beep" msgstr "ਜਦੋਂ ਸਹੀਂ ਤਾਂ ਕੀਬੋਰਡ ਨੇਵੀਗੇਸ਼ਨ ਅਤੇ ਹੋਰ ਗਲਤੀਆਂ ਲਈ ਬੀਪ ਹੋਵੇਗੀ" -#: ../gtk/gtksettings.c:873 +#: ../gtk/gtksettings.c:872 msgid "Color Hash" msgstr "ਰੰਗ ਹੈਸ਼" -#: ../gtk/gtksettings.c:874 +#: ../gtk/gtksettings.c:873 msgid "A hash table representation of the color scheme." msgstr "ਰੰਗ ਸਕੀਮ ਨੂੰ ਇੱਕ ਹੈਸ਼ ਸਾਰਣੀ ਵਿੱਚ ਵੇਖਾਓ।" -#: ../gtk/gtksettings.c:882 +#: ../gtk/gtksettings.c:881 msgid "Default file chooser backend" msgstr "ਮੂਲ ਫਾਇਲ ਚੋਣ ਬੈਕਐਂਡ" -#: ../gtk/gtksettings.c:883 +#: ../gtk/gtksettings.c:882 msgid "Name of the GtkFileChooser backend to use by default" msgstr "GtkFileChooser ਬੈਕਐਂਡ ਦਾ ਨਾਂ, ਜੋ ਕਿ ਮੂਲ ਰੂਪ ਵਿੱਚ ਵਰਤਣਾ ਹੈ" -#: ../gtk/gtksettings.c:900 +#: ../gtk/gtksettings.c:899 msgid "Default print backend" msgstr "ਮੂਲ ਪਰਿੰਟ ਬੈਕਐਂਡ" -#: ../gtk/gtksettings.c:901 +#: ../gtk/gtksettings.c:900 msgid "List of the GtkPrintBackend backends to use by default" msgstr "ਮੂਲ ਰੂਪ ਵਿੱਚ ਵਰਤਣ ਲਈ GtkPrintBackend ਬੈਕਐਂਡ ਦੀ ਸੂਚੀ" -#: ../gtk/gtksettings.c:924 +#: ../gtk/gtksettings.c:923 msgid "Default command to run when displaying a print preview" msgstr "ਇੱਕ ਪਰਿੰਟ ਝਲਕ ਵੇਖਾਉਣ ਸਮੇਂ ਚਲਾਉਣ ਲਈ ਮੂਲ ਕਮਾਂਡ" -#: ../gtk/gtksettings.c:925 +#: ../gtk/gtksettings.c:924 msgid "Command to run when displaying a print preview" msgstr "ਇੱਕ ਪਰਿੰਟ ਝਲਕ ਵੇਖਾਉਣ ਦੌਰਾਨ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ" -#: ../gtk/gtksettings.c:941 +#: ../gtk/gtksettings.c:940 msgid "Enable Mnemonics" msgstr "ਨੀਮੋਨੀਸ ਯੋਗ" -#: ../gtk/gtksettings.c:942 +#: ../gtk/gtksettings.c:941 msgid "Whether labels should have mnemonics" msgstr "ਕੀ ਲੇਬਲਾਂ ਨਾਲ ਨੀਮੋਨੀਸ ਹੋਣ" -#: ../gtk/gtksettings.c:958 +#: ../gtk/gtksettings.c:957 msgid "Enable Accelerators" msgstr "ਐਕਸਰਲੇਟਰ ਯੋਗ" -#: ../gtk/gtksettings.c:959 +#: ../gtk/gtksettings.c:958 msgid "Whether menu items should have accelerators" msgstr "ਕੀ ਮੇਨ ਆਈਟਮਾਂ ਵਿੱਚ ਐਕਸਲੇਟਰ ਹੋਣ" -#: ../gtk/gtksettings.c:976 +#: ../gtk/gtksettings.c:975 msgid "Recent Files Limit" msgstr "ਤਾਜ਼ਾ ਫਾਇਲ ਲਿਮਟ" -#: ../gtk/gtksettings.c:977 +#: ../gtk/gtksettings.c:976 msgid "Number of recently used files" msgstr "ਤਾਜ਼ਾ ਵਰਤੀਆਂ ਫਾਇਲਾਂ ਦੀ ਗਿਣਤੀ" -#: ../gtk/gtksettings.c:997 +#: ../gtk/gtksettings.c:996 msgid "Default IM module" msgstr "ਮੂਲ IM ਮੋਡੀਊਲ" -#: ../gtk/gtksettings.c:998 +#: ../gtk/gtksettings.c:997 msgid "Which IM module should be used by default" msgstr "ਮੂਲ ਰੂਪ ਵਿੱਚ ਕਿਹੜਾ IM ਮੋਡੀਊਲ ਵਰਤਿਆ ਜਾਵੇ" -#: ../gtk/gtksettings.c:1016 +#: ../gtk/gtksettings.c:1015 msgid "Recent Files Max Age" msgstr "ਤਾਜ਼ਾ ਫਾਇਲਾਂ ਦੀ ਵੱਧੋ-ਵੱਧ ਉਮਰ" -#: ../gtk/gtksettings.c:1017 +#: ../gtk/gtksettings.c:1016 msgid "Maximum age of recently used files, in days" msgstr "ਦਿਨਾਂ ਵਿੱਚ ਤਾਜ਼ਾ ਵਰਤੀਆਂ ਫਾਇਲਾਂ ਦੀ ਵੱਧੋ-ਵੱਧ ਉਮਰ" -#: ../gtk/gtksettings.c:1026 +#: ../gtk/gtksettings.c:1025 msgid "Fontconfig configuration timestamp" msgstr "ਫੋਂਟ-ਸੰਰਚਨਾ ਸੰਰਚਨਾ ਟਾਈਮ-ਸਟੈਂਪ" -#: ../gtk/gtksettings.c:1027 +#: ../gtk/gtksettings.c:1026 msgid "Timestamp of current fontconfig configuration" msgstr "ਮੌਜੂਦਾ ਫੋਂਟ-ਸੰਰਚਨਾ ਸੰਰਚਨਾ ਲਈ ਟਾਈਮ-ਸਟੈਂਪ" -#: ../gtk/gtksettings.c:1049 +#: ../gtk/gtksettings.c:1048 msgid "Sound Theme Name" msgstr "ਸਾਊਂਡ ਥੀਮ ਨਾਂ" -#: ../gtk/gtksettings.c:1050 +#: ../gtk/gtksettings.c:1049 msgid "XDG sound theme name" msgstr "XDG ਸਾਊਂਡ ਥੀਮ ਨਾਂ" #. Translators: this means sounds that are played as feedback to user input -#: ../gtk/gtksettings.c:1072 +#: ../gtk/gtksettings.c:1071 msgid "Audible Input Feedback" msgstr "ਸੁਣਨਯੋਗ ਇੰਪੁੱਟ ਫੀਡਬੈਕ" -#: ../gtk/gtksettings.c:1073 +#: ../gtk/gtksettings.c:1072 msgid "Whether to play event sounds as feedback to user input" msgstr "ਕੀ ਯੂਜ਼ਰ ਇੰਪੁੱਟ ਲਈ ਫੀਬੈੱਕ ਵਜੋਂ ਈਵੈਂਟ ਸਾਊਂਡ ਦਿੱਤੀ ਜਾਵੇ" -#: ../gtk/gtksettings.c:1094 +#: ../gtk/gtksettings.c:1093 msgid "Enable Event Sounds" msgstr "ਈਵੈਂਟ ਸਾਊਂਡ ਯੋਗ" -#: ../gtk/gtksettings.c:1095 +#: ../gtk/gtksettings.c:1094 msgid "Whether to play any event sounds at all" msgstr "ਕੀ ਸਭ ਲਈ ਕਿਸੇ ਵੀ ਈਵੈਂਟ ਲਈ ਸਾਊਂਡ ਚਲਾਈ ਜਾਵੇ" -#: ../gtk/gtksettings.c:1110 +#: ../gtk/gtksettings.c:1109 msgid "Enable Tooltips" msgstr "ਟੂਲ-ਟਿੱਪ ਯੋਗ" -#: ../gtk/gtksettings.c:1111 +#: ../gtk/gtksettings.c:1110 msgid "Whether tooltips should be shown on widgets" msgstr "ਕੀ ਵਿਡਜੈੱਟਾਂ ਉੱਤੇ ਟੂਲ-ਟਿੱਪ ਵੇਖਾਏ ਜਾਣ" -#: ../gtk/gtksettings.c:1124 +#: ../gtk/gtksettings.c:1123 msgid "Toolbar style" msgstr "ਟੂਲਬਾਰ ਸਟਾਇਲ" -#: ../gtk/gtksettings.c:1125 +#: ../gtk/gtksettings.c:1124 msgid "" "Whether default toolbars have text only, text and icons, icons only, etc." msgstr "ਕੀ ਮੂਲ ਟੂਲਬਾਰ ਲਈ ਸ਼ਬਦ ਹੀ, ਸ਼ਬਦ ਤੇ ਆਈਕਾਨ, ਆਈਕਾਨ ਹੀ ਆਦਿ ਹੋਣ" -#: ../gtk/gtksettings.c:1139 +#: ../gtk/gtksettings.c:1138 msgid "Toolbar Icon Size" msgstr "ਟੂਲਬਾਰ ਆਈਕਾਨ ਆਕਾਰ" -#: ../gtk/gtksettings.c:1140 +#: ../gtk/gtksettings.c:1139 msgid "The size of icons in default toolbars." msgstr "ਡਿਫਾਲਟ ਟੂਲਬਾਰ ਵਿੱਚ ਆਈਕਾਨ ਦਾ ਆਕਾਰ ਹੈ।" -#: ../gtk/gtksettings.c:1157 +#: ../gtk/gtksettings.c:1156 msgid "Auto Mnemonics" msgstr "ਆਟੋ ਨੀਮੋਨੀਸ" -#: ../gtk/gtksettings.c:1158 +#: ../gtk/gtksettings.c:1157 msgid "" "Whether mnemonics should be automatically shown and hidden when the user " "presses the mnemonic activator." @@ -6101,20 +6120,20 @@ msgstr "" "ਕੀ ਮਨਾਮੈਰਿਕ ਆਟੋਮੈਟਿਕ ਹੀ ਵੇਖਾਏ ਅਤੇ ਓਹਲੇ ਕੀਤੇ ਜਾਣ, ਜਦੋਂ ਯੂਜ਼ਰ ਮਨਾਮੈਰਿਕ ਐਕਟੀਵੇਟਰ " "ਕੀਤਾ ਜਾਵੇ।" -#: ../gtk/gtksettings.c:1174 +#: ../gtk/gtksettings.c:1173 msgid "Primary button warps slider" msgstr "ਪ੍ਰਾਇਮਰੀ ਬਟਨ ਰੈਪਰ ਸਲਾਈਡਰ" -#: ../gtk/gtksettings.c:1175 +#: ../gtk/gtksettings.c:1174 msgid "" "Whether a primary click on the trough should warp the slider into position" msgstr "ਕੀ ਵਿਚਾਲੇ ਪ੍ਰਾਇਮਰੀ ਕਲਿੱਕ ਸਲਾਈਡਰ ਨੂੰ ਸਥਿਤੀ ਤੱਕ ਸਮੇਟੇ" -#: ../gtk/gtksettings.c:1191 +#: ../gtk/gtksettings.c:1190 msgid "Visible Focus" msgstr "ਦਿੱਖ ਫੋਕਸ" -#: ../gtk/gtksettings.c:1192 +#: ../gtk/gtksettings.c:1191 msgid "" "Whether 'focus rectangles' should be hidden until the user starts to use the " "keyboard." @@ -6122,59 +6141,59 @@ msgstr "" "ਕੀ 'ਫੋਕਸ ਚਤੁਰਭੁਜਾਂ' ਨੂੰ ਲੁਕਵਾਂ ਕੀਤਾ ਜਾਵੇ, ਜਦੋਂ ਤੱਕ ਕਿ ਯੂਜ਼ਰ ਕੀਬੋਰਡ ਵਰਤਣਾ " "ਸ਼ੁਰੂ ਨਾ ਕਰੇ।" -#: ../gtk/gtksettings.c:1218 +#: ../gtk/gtksettings.c:1217 msgid "Application prefers a dark theme" msgstr "ਐਪਲੀਕੇਸ਼ਨ ਗੂੜ੍ਹਾ ਥੀਮ ਚਾਹੁੰਦੀ ਹੈ" -#: ../gtk/gtksettings.c:1219 +#: ../gtk/gtksettings.c:1218 msgid "Whether the application prefers to have a dark theme." msgstr "ਕੀ ਐਪਲੀਕੇਸ਼ਨ ਗੂੜ੍ਹਾ ਥੀਮ ਪਸੰਦ ਕਰੇ" -#: ../gtk/gtksettings.c:1234 +#: ../gtk/gtksettings.c:1233 msgid "Show button images" msgstr "ਬਟਨ-ਚਿੱਤਰ ਵੇਖਾਓ" -#: ../gtk/gtksettings.c:1235 +#: ../gtk/gtksettings.c:1234 msgid "Whether images should be shown on buttons" msgstr "ਕੀ ਬਟਨਾਂ ਉੱਤੇ ਚਿੱਤਰ ਵੇਖਾਏ ਜਾਣ" -#: ../gtk/gtksettings.c:1243 ../gtk/gtksettings.c:1337 +#: ../gtk/gtksettings.c:1242 ../gtk/gtksettings.c:1336 msgid "Select on focus" msgstr "ਫੋਕਸ ਉੱਤੇ ਚੁਣੋ" -#: ../gtk/gtksettings.c:1244 +#: ../gtk/gtksettings.c:1243 msgid "Whether to select the contents of an entry when it is focused" msgstr "ਕੀ ਇੰਦਰਾਜ਼ ਵਿੱਚਲੇ ਹਿੱਸੇ ਨੂੰ ਚੁਣਾ ਹੈ, ਜਦੋਂ ਕਿ ਇਹ ਕੇਦਰਿਤ ਹੋ ਜਾਵੇ" -#: ../gtk/gtksettings.c:1261 +#: ../gtk/gtksettings.c:1260 msgid "Password Hint Timeout" msgstr "ਪਾਸਵਰਡ ਇਸ਼ਾਰਾ ਸਮਾਂ-ਅੰਤਰਾਲ" -#: ../gtk/gtksettings.c:1262 +#: ../gtk/gtksettings.c:1261 msgid "How long to show the last input character in hidden entries" msgstr "ਲੁਕਵੇਂ ਇੰਦਰਾਜ਼ਾਂ ਵਿੱਚ ਆਖਰੀ ਦਿੱਤੇ ਅੱਖਰ ਨੂੰ ਵੇਖਾਉਣ ਨੂੰ ਕਿੰਨਾ ਸਮਾਂ ਲੱਗੇ" -#: ../gtk/gtksettings.c:1271 +#: ../gtk/gtksettings.c:1270 msgid "Show menu images" msgstr "ਮੇਨੂ ਚਿੱਤਰ ਵੇਖੋ" -#: ../gtk/gtksettings.c:1272 +#: ../gtk/gtksettings.c:1271 msgid "Whether images should be shown in menus" msgstr "ਕੀ ਮੇਨੂ ਵਿੱਚ ਚਿੱਤਰ ਵੇਖਾਏ ਜਾਣ" -#: ../gtk/gtksettings.c:1280 +#: ../gtk/gtksettings.c:1279 msgid "Delay before drop down menus appear" msgstr "ਲਟਕਦੇ ਮੇਨੂ ਦੇ ਉਪਲੱਬਧ ਹੋਣ ਦੇਰੀ" -#: ../gtk/gtksettings.c:1281 +#: ../gtk/gtksettings.c:1280 msgid "Delay before the submenus of a menu bar appear" msgstr "ਮੇਨੂ-ਬਾਰ ਦੀ ਸਬ-ਮੇਨੂ ਦੇ ਉਪਲੱਬਧ ਹੋਣ ਦੇਰੀ" -#: ../gtk/gtksettings.c:1298 +#: ../gtk/gtksettings.c:1297 msgid "Scrolled Window Placement" msgstr "ਸਕਰੋਲ ਕੀਤਾ ਵਿੰਡੋ ਟਿਕਾਣਾ" -#: ../gtk/gtksettings.c:1299 +#: ../gtk/gtksettings.c:1298 msgid "" "Where the contents of scrolled windows are located with respect to the " "scrollbars, if not overridden by the scrolled window's own placement." @@ -6183,30 +6202,30 @@ msgstr "" "ਤਾਂ ਸਕਰੋਲ ਕੀਤੀਆਂ " "ਵਿੰਡੋਜ਼ ਦੀ ਆਪਣੀ ਸਥਿਤੀ ਮੁਤਾਬਕ ਵਰਤੀਆਂ ਜਾਣਗੀਆਂ।" -#: ../gtk/gtksettings.c:1308 +#: ../gtk/gtksettings.c:1307 msgid "Can change accelerators" msgstr "ਐਕਸਲੇਟਰ ਬਦਲ ਸਕਦੇ ਹਨ" -#: ../gtk/gtksettings.c:1309 +#: ../gtk/gtksettings.c:1308 msgid "" "Whether menu accelerators can be changed by pressing a key over the menu item" msgstr "ਕੀ ਮੇਨੂ-ਤੇਜ਼ ਲਿਸਟ ਉੱਤੇ ਇੱਕ ਕੀ ਦਬਾਉਣ ਨਾਲ ਤਬਦੀਲ ਹੋ ਜਾਣ" -#: ../gtk/gtksettings.c:1317 +#: ../gtk/gtksettings.c:1316 msgid "Delay before submenus appear" msgstr "ਸਬ-ਮੇਨੂ ਦੇ ਉਭੱਰਨ ਵਿੱਚ ਦੇਰੀ" -#: ../gtk/gtksettings.c:1318 +#: ../gtk/gtksettings.c:1317 msgid "" "Minimum time the pointer must stay over a menu item before the submenu appear" msgstr "" "ਘੱਟੋ-ਘੱਟ ਸਮਾਂ, ਜਿਸ ਲਈ ਸਬ-ਮੇਨੂ ਦੇ ਖੁੱਲਣ ਤੋਂ ਪਹਿਲਾਂ ਸੰਕੇਤਕ ਮੇਨੂ ਆਈਟਮ ਉੱਤੇ ਹੀ ਰਹੇ" -#: ../gtk/gtksettings.c:1327 +#: ../gtk/gtksettings.c:1326 msgid "Delay before hiding a submenu" msgstr "ਇੱਕ ਸਬ-ਮੇਨੂ ਨੂੰ ਉਹਲੇ ਹੋਣ ਵਿੱਚ ਦੇਰੀ" -#: ../gtk/gtksettings.c:1328 +#: ../gtk/gtksettings.c:1327 msgid "" "The time before hiding a submenu when the pointer is moving towards the " "submenu" @@ -6214,39 +6233,39 @@ msgstr "" "ਸਮਾਂ ਇੱਕ ਸਬ-ਮੇਨੂ ਨੂੰ ਉਹਲੇ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ, ਜਦੋਂ ਕਿ ਸੰਕੇਤਕ ਸਬ-ਮੇਨੂ ਵੱਲ ਆ ਰਿਹਾ " "ਹੋਵੇ" -#: ../gtk/gtksettings.c:1338 +#: ../gtk/gtksettings.c:1337 msgid "Whether to select the contents of a selectable label when it is focused" msgstr "ਕੀ ਚੁਣਨਯੋਗ ਲੇਬਲ ਦੀ ਸਮੱਗਰੀ ਚੁਣੀ ਜਾਵੇ, ਜਦੋਂ ਇਹ ਫੋਕਸ ਹੋਵੇ" -#: ../gtk/gtksettings.c:1346 +#: ../gtk/gtksettings.c:1345 msgid "Custom palette" msgstr "ਰੰਗ-ਪੱਟੀ ਦੀ ਚੋਣ" -#: ../gtk/gtksettings.c:1347 +#: ../gtk/gtksettings.c:1346 msgid "Palette to use in the color selector" msgstr "ਰੰਗ ਚੋਣ ਵਿੱਚ ਰੰਗ-ਪੱਟੀ ਵਰਤੋਂ" -#: ../gtk/gtksettings.c:1355 +#: ../gtk/gtksettings.c:1354 msgid "IM Preedit style" msgstr "IM ਪ੍ਰੀ-ਐਡੀਟ ਸਟਾਇਲ" -#: ../gtk/gtksettings.c:1356 +#: ../gtk/gtksettings.c:1355 msgid "How to draw the input method preedit string" msgstr "ਇੰਪੁੱਟ ਢੰਗ ਪ੍ਰੀ-ਐਡੀਟ ਲਾਈਨ ਨੂੰ ਕਿਸ-ਤਰ੍ਹਾਂ ਬਣਾਏ" -#: ../gtk/gtksettings.c:1365 +#: ../gtk/gtksettings.c:1364 msgid "IM Status style" msgstr "IM ਹਾਲਤ ਸਟਾਇਲ" -#: ../gtk/gtksettings.c:1366 +#: ../gtk/gtksettings.c:1365 msgid "How to draw the input method statusbar" msgstr "ਇੰਪੁੱਟ ਢੰਗ ਦੀ ਹਾਲਤ-ਪੱਟੀ ਨੂੰ ਕਿਵੇਂ ਬਣਾਉਣਾ ਹੈ" -#: ../gtk/gtksettings.c:1375 +#: ../gtk/gtksettings.c:1374 msgid "Desktop shell shows app menu" msgstr "ਡੈਸਕਟਾਪ ਸ਼ੈਲ ਐਪ (app) ਮੇਨੂ ਵੇਖਾਏ" -#: ../gtk/gtksettings.c:1376 +#: ../gtk/gtksettings.c:1375 msgid "" "Set to TRUE if the desktop environment is displaying the app menu, FALSE if " "the app should display it itself." @@ -6255,11 +6274,11 @@ msgstr "" "(app) ਇਸ ਨੂੰ ਖੁਦ " "ਵੇਖਾਏਗੀ।" -#: ../gtk/gtksettings.c:1385 +#: ../gtk/gtksettings.c:1384 msgid "Desktop shell shows the menubar" msgstr "ਡੈਸਕਟਾਪ ਸ਼ੈਲ ਮੇਨੂ-ਪੱਟੀ ਵੇਖਾਏ" -#: ../gtk/gtksettings.c:1386 +#: ../gtk/gtksettings.c:1385 msgid "" "Set to TRUE if the desktop environment is displaying the menubar, FALSE if " "the app should display it itself." @@ -6268,11 +6287,11 @@ msgstr "" "ਐਪਲੀਕੇਸ਼ਨ ਇਸ ਨੂੰ ਖੁਦ " "ਵੇਖਾਏਗੀ।" -#: ../gtk/gtksettings.c:1403 +#: ../gtk/gtksettings.c:1402 msgid "Enable primary paste" msgstr "ਪ੍ਰਾਇਮਰੀ ਚੇਪਣ ਯੋਗ" -#: ../gtk/gtksettings.c:1404 +#: ../gtk/gtksettings.c:1403 msgid "" "Whether a middle click on a mouse should paste the 'PRIMARY' clipboard " "content at the cursor location." @@ -6280,21 +6299,21 @@ msgstr "" "ਕੀ ਮਾਊਸ ਦੇ ਮੱਧ ਕਲਿੱਕ ਨਾਲ ਕਰਸਰ ਟਿਕਾਣੇ ਉੱਤੇ 'ਪ੍ਰਾਇਮਰੀ' ਕਲਿੱਪਬੋਰਡ ਸਮੱਗਰੀ ਨੂੰ " "ਚੇਪਣਾ ਹੈ।" -#: ../gtk/gtksizegroup.c:380 ../gtk/gtktreeselection.c:129 +#: ../gtk/gtksizegroup.c:324 ../gtk/gtktreeselection.c:129 msgid "Mode" msgstr "ਢੰਗ" -#: ../gtk/gtksizegroup.c:381 +#: ../gtk/gtksizegroup.c:325 msgid "" "The directions in which the size group affects the requested sizes of its " "component widgets" msgstr "ਦਿਸ਼ਾ, ਜਿਸ ਅਨੁਸਾਰ ਗਰੁੱਪ ਦਾ ਅਕਾਰ ਇਸ ਦੇ ਭਾਗ ਵਿਦਗਿਟਾਂ ਨੂੰ ਪਰਭਾਵਿਤ ਕਰੇ" -#: ../gtk/gtksizegroup.c:397 +#: ../gtk/gtksizegroup.c:341 msgid "Ignore hidden" msgstr "ਲੁਕਵਾਂ ਅਣਡਿੱਠਾ" -#: ../gtk/gtksizegroup.c:398 +#: ../gtk/gtksizegroup.c:342 msgid "" "If TRUE, unmapped widgets are ignored when determining the size of the group" msgstr "" @@ -6376,7 +6395,7 @@ msgstr "ਕੀ ਹਾਲਤ ਆਈਕਾਨ ਸ਼ਾਮਲ ਕੀਤਾ ਹੋ msgid "The orientation of the tray" msgstr "ਟਰੇ ਦੀ ਸਥਿਤੀ" -#: ../gtk/gtkstatusicon.c:358 ../gtk/gtkwidget.c:1126 +#: ../gtk/gtkstatusicon.c:358 ../gtk/gtkwidget.c:1125 msgid "Has tooltip" msgstr "ਟੂਲ-ਟਿੱਪ ਹੋਣ" @@ -6384,15 +6403,15 @@ msgstr "ਟੂਲ-ਟਿੱਪ ਹੋਣ" msgid "Whether this tray icon has a tooltip" msgstr "ਕੀ ਇਹ ਟਰੇ ਆਈਕਾਨ ਲਈ ਟੂਲ-ਟਿੱਪ ਹੋਵੇ" -#: ../gtk/gtkstatusicon.c:384 ../gtk/gtkwidget.c:1147 +#: ../gtk/gtkstatusicon.c:384 ../gtk/gtkwidget.c:1146 msgid "Tooltip Text" msgstr "ਟੂਲ-ਟਿੱਪ ਪਾਠ" -#: ../gtk/gtkstatusicon.c:385 ../gtk/gtkwidget.c:1148 ../gtk/gtkwidget.c:1169 +#: ../gtk/gtkstatusicon.c:385 ../gtk/gtkwidget.c:1147 ../gtk/gtkwidget.c:1168 msgid "The contents of the tooltip for this widget" msgstr "ਇਹ ਵਿਦਗਿਟ ਲਈ ਟੂਲ-ਟਿੱਪ ਦੀ ਸਮੱਗਰੀ ਹੈ" -#: ../gtk/gtkstatusicon.c:408 ../gtk/gtkwidget.c:1168 +#: ../gtk/gtkstatusicon.c:408 ../gtk/gtkwidget.c:1167 msgid "Tooltip markup" msgstr "ਟੂਲ-ਟਿੱਪ ਮਾਰਕਅੱਪ" @@ -6436,11 +6455,11 @@ msgstr "ਮੁੱਲ ਕਿਸਮ" msgid "The value type returned by GtkStyleContext" msgstr "GtkStyleContext ਵਲੋਂ ਦਿੱਤੀ ਮੁੱਲ ਕਿਸਮ" -#: ../gtk/gtkswitch.c:835 +#: ../gtk/gtkswitch.c:815 msgid "Whether the switch is on or off" msgstr "ਕੀ ਸਵਿੱਚ ਚਾਲੂ ਹੈ ਜਾਂ ਬੰਦ" -#: ../gtk/gtkswitch.c:869 +#: ../gtk/gtkswitch.c:849 msgid "The minimum width of the handle" msgstr "ਹੈਂਡਲ ਲਈ ਘੱਟੋ-ਘੱਟ ਚੌੜਾਈ" @@ -6494,16 +6513,16 @@ msgid "" msgstr "" "ਇਸ ਬਫ਼ਰ ਵਲੋਂ ਸਹਾਇਕ ਟਾਰਗੇਟ ਦੀ ਲਿਸਟ, ਜੋ ਕਿ ਕਲਿੱਪਬੋਰਡ ਚੇਪਣ ਅਤੇ DND ਟਿਕਾਣੇ ਲਈ ਹੈ।" -#: ../gtk/gtktexthandle.c:469 ../gtk/gtktexthandle.c:470 -#: ../gtk/gtkwidget.c:992 +#: ../gtk/gtktexthandle.c:470 ../gtk/gtktexthandle.c:471 +#: ../gtk/gtkwidget.c:991 msgid "Parent widget" msgstr "ਪੇਰੈਟ ਵਿਦਗਿਟ" -#: ../gtk/gtktexthandle.c:477 ../gtk/gtkwidget.c:1183 +#: ../gtk/gtktexthandle.c:478 ../gtk/gtkwidget.c:1182 msgid "Window" msgstr "ਵਿੰਡੋ" -#: ../gtk/gtktexthandle.c:478 +#: ../gtk/gtktexthandle.c:479 msgid "Window the coordinates are based upon" msgstr "ਵਿੰਡੋ ਦੇ ਧੁਰੇ ਅਧਾਰਿਤ ਹਨ" @@ -6586,7 +6605,7 @@ msgstr "" "ਜਿਵੇ ਕਿ " "PANGO_SCALE_X_LARGE" -#: ../gtk/gtktexttag.c:405 ../gtk/gtktextview.c:720 +#: ../gtk/gtktexttag.c:405 ../gtk/gtktextview.c:722 msgid "Left, right, or center justification" msgstr "ਖੱਬੇ, ਸੱਜੇ ਜਾਂ ਵਿੱਚਕਾਰ ਤਰਕਸੰਗਤ ਕਰੋ" @@ -6604,7 +6623,7 @@ msgstr "" msgid "Left margin" msgstr "ਖੱਬਾ ਹਾਸ਼ੀਆ" -#: ../gtk/gtktexttag.c:432 ../gtk/gtktextview.c:729 +#: ../gtk/gtktexttag.c:432 ../gtk/gtktextview.c:731 msgid "Width of the left margin in pixels" msgstr "ਖੱਬੇ ਹਾਸ਼ੀਏ ਦੀ ਚੌੜਾਈ ਪਿਕਸਲਾਂ ਵਿੱਚ" @@ -6612,15 +6631,15 @@ msgstr "ਖੱਬੇ ਹਾਸ਼ੀਏ ਦੀ ਚੌੜਾਈ ਪਿਕਸਲ msgid "Right margin" msgstr "ਸੱਜਾ ਹਾਸ਼ੀਆ" -#: ../gtk/gtktexttag.c:442 ../gtk/gtktextview.c:739 +#: ../gtk/gtktexttag.c:442 ../gtk/gtktextview.c:741 msgid "Width of the right margin in pixels" msgstr "ਸੱਜੇ ਹਾਸ਼ੀਏ ਦੀ ਚੌੜਾਈ ਪਿਕਸਲਾਂ ਵਿੱਚ" -#: ../gtk/gtktexttag.c:452 ../gtk/gtktextview.c:748 +#: ../gtk/gtktexttag.c:452 ../gtk/gtktextview.c:750 msgid "Indent" msgstr "ਹਾਸ਼ੀਏ ਤੋਂ ਦੂਰ" -#: ../gtk/gtktexttag.c:453 ../gtk/gtktextview.c:749 +#: ../gtk/gtktexttag.c:453 ../gtk/gtktextview.c:751 msgid "Amount to indent the paragraph, in pixels" msgstr "ਪ੍ਹੈਰੇ ਵਿੱਚ ਹਾਸ਼ੀਏ ਤੋਂ ਦੂਰੀ, ਪਿਕਸਲਾਂ ਵਿੱਚ" @@ -6635,7 +6654,7 @@ msgstr "" msgid "Pixels above lines" msgstr "ਲਾਈਨਾਂ ਤੋਂ ਉੱਤੇ ਪਿਕਸਲ" -#: ../gtk/gtktexttag.c:474 ../gtk/gtktextview.c:673 +#: ../gtk/gtktexttag.c:474 ../gtk/gtktextview.c:675 msgid "Pixels of blank space above paragraphs" msgstr "ਪ੍ਹੈਰੇ ਤੋਂ ਉੱਤੇ ਖਾਲੀ ਥਾਂ ਦੇ ਪਿਕਸਲ" @@ -6643,7 +6662,7 @@ msgstr "ਪ੍ਹੈਰੇ ਤੋਂ ਉੱਤੇ ਖਾਲੀ ਥਾਂ ਦੇ msgid "Pixels below lines" msgstr "ਲਾਈਨਾਂ ਤੋਂ ਹੇਠਾਂ ਪਿਕਸਲ" -#: ../gtk/gtktexttag.c:484 ../gtk/gtktextview.c:683 +#: ../gtk/gtktexttag.c:484 ../gtk/gtktextview.c:685 msgid "Pixels of blank space below paragraphs" msgstr "ਪ੍ਹੈਰੇ ਤੋਂ ਹੇਠਾਂ ਖਾਲੀ ਥਾਂ ਦੇ ਪਿਕਸਲ" @@ -6651,20 +6670,20 @@ msgstr "ਪ੍ਹੈਰੇ ਤੋਂ ਹੇਠਾਂ ਖਾਲੀ ਥਾਂ ਦ msgid "Pixels inside wrap" msgstr "ਲੇਪਟਣ ਵਿੱਚ ਆਏ ਪਿਕਸਲ" -#: ../gtk/gtktexttag.c:494 ../gtk/gtktextview.c:693 +#: ../gtk/gtktexttag.c:494 ../gtk/gtktextview.c:695 msgid "Pixels of blank space between wrapped lines in a paragraph" msgstr "ਪ੍ਹੈਰੇ ਵਿੱਚ ਲੇਪਟੀਆਂ ਗਈਆਂ ਸਤਰਾਂ ਵਿੱਚ ਖਾਲੀ ਥਾਂ ਦੇ ਪਿਕਸਲ" -#: ../gtk/gtktexttag.c:521 ../gtk/gtktextview.c:711 +#: ../gtk/gtktexttag.c:521 ../gtk/gtktextview.c:713 msgid "" "Whether to wrap lines never, at word boundaries, or at character boundaries" msgstr "ਕੀ ਲਾਈਨਾਂ ਕਦੇ ਨਹੀਂ ਲੇਪਟਣੀਆਂ ਹਨ, ਨਾ ਸ਼ਬਦ ਦੀ ਹੱਦ ਤੇ ਨਾ ਅੱਖਰਾਂ ਦੀ ਹੱਦ ਤੇ" -#: ../gtk/gtktexttag.c:530 ../gtk/gtktextview.c:758 +#: ../gtk/gtktexttag.c:530 ../gtk/gtktextview.c:760 msgid "Tabs" msgstr "ਟੈਬ" -#: ../gtk/gtktexttag.c:531 ../gtk/gtktextview.c:759 +#: ../gtk/gtktexttag.c:531 ../gtk/gtktextview.c:761 msgid "Custom tabs for this text" msgstr "ਇਸ ਟੈਕਸਟ ਲਈ ਟੈਬਾਂ ਦੀ ਚੋਣ" @@ -6800,67 +6819,67 @@ msgstr "ਪੈਰਾ ਬੈਕਗਰਾਊਂਡ ਦਿਓ" msgid "Whether this tag affects the paragraph background color" msgstr "ਕੀ ਇਹ ਟੈਗ ਪੈਰਾ ਬੈਕਗਰਾਊਂਡ ਰੰਗ ਨੂੰ ਪਰਭਾਵਿਤ ਕਰੇ" -#: ../gtk/gtktextview.c:672 +#: ../gtk/gtktextview.c:674 msgid "Pixels Above Lines" msgstr "ਲਾਈਨਾਂ ਤੋਂ ਉੱਤੇ ਪਿਕਸਲ" -#: ../gtk/gtktextview.c:682 +#: ../gtk/gtktextview.c:684 msgid "Pixels Below Lines" msgstr "ਲਾਈਨਾਂ ਤੋਂ ਹੇਠਾਂ ਪਿਕਸਲ" -#: ../gtk/gtktextview.c:692 +#: ../gtk/gtktextview.c:694 msgid "Pixels Inside Wrap" msgstr "ਲੇਪਟਣ ਵਿੱਚ ਪਿਕਸਲ" -#: ../gtk/gtktextview.c:710 +#: ../gtk/gtktextview.c:712 msgid "Wrap Mode" msgstr "ਲੇਪਟਣ ਮੋਡ" -#: ../gtk/gtktextview.c:728 +#: ../gtk/gtktextview.c:730 msgid "Left Margin" msgstr "ਖੱਬਾ ਹਾਸ਼ੀਆ" -#: ../gtk/gtktextview.c:738 +#: ../gtk/gtktextview.c:740 msgid "Right Margin" msgstr "ਸੱਜਾ ਹਾਸ਼ੀਆ" -#: ../gtk/gtktextview.c:766 +#: ../gtk/gtktextview.c:768 msgid "Cursor Visible" msgstr "ਕਰਸਰ ਅਦਿੱਖ" -#: ../gtk/gtktextview.c:767 +#: ../gtk/gtktextview.c:769 msgid "If the insertion cursor is shown" msgstr "ਜੇ ਵਿਚਕਾਰ ਕਰਸਰ ਵੇਖਾਈ ਗਈ ਹੈ" -#: ../gtk/gtktextview.c:774 +#: ../gtk/gtktextview.c:776 msgid "Buffer" msgstr "ਬਫਰ" -#: ../gtk/gtktextview.c:775 +#: ../gtk/gtktextview.c:777 msgid "The buffer which is displayed" msgstr "ਬਫਰ, ਜੋ ਵੇਖਾਇਆ ਜਾਵੇਗਾ" -#: ../gtk/gtktextview.c:783 +#: ../gtk/gtktextview.c:785 msgid "Whether entered text overwrites existing contents" msgstr "ਕੀ ਦਿੱਤਾ ਗਿਆ ਟੈਕਸਟ ਮੌਜੂਦਾ ਹਿੱਸੇ ਨੂੰ ਖਤਮ ਕਰ ਦੇਵੇ" -#: ../gtk/gtktextview.c:790 +#: ../gtk/gtktextview.c:792 msgid "Accepts tab" msgstr "ਮਨਜ਼ੂਰ ਟੈਬ" -#: ../gtk/gtktextview.c:791 +#: ../gtk/gtktextview.c:793 msgid "Whether Tab will result in a tab character being entered" msgstr "ਕੀ ਟੈਬ ਨਤੀਜਾ ਹੋਵੇ, ਦਿੱਤੇ ਗਏ ਟੈਬ ਅੱਖਰ ਦਾ" -#: ../gtk/gtktextview.c:862 +#: ../gtk/gtktextview.c:864 msgid "Error underline color" msgstr "ਗਲਤੀ ਹੇਠ ਰੰਗਦਾਰ ਲਾਈਨ" -#: ../gtk/gtktextview.c:863 +#: ../gtk/gtktextview.c:865 msgid "Color with which to draw error-indication underlines" msgstr "ਰੰਗ ਜਿਸ ਨਾਲ ਗਲਤੀ-ਸੰਕੇਤਕ ਲਾਈਨ ਖਿੱਚੀ ਜਾਵੇ" -#: ../gtk/gtkthemingengine.c:256 +#: ../gtk/gtkthemingengine.c:259 msgid "Theming engine name" msgstr "ਥੀਮਿੰਗ ਇੰਜਣ ਨਾਂ" @@ -6892,79 +6911,79 @@ msgstr "ਇੰਡੀਕੇਟਰ ਬਣਾਓ" msgid "If the toggle part of the button is displayed" msgstr "ਕੀ ਬਟਨ ਦਾ ਬਦਲਵਾਂ ਹਿੱਸਾ ਵੇਖਾਇਆ ਜਾਵੇ" -#: ../gtk/gtktoolbar.c:500 ../gtk/gtktoolpalette.c:1043 +#: ../gtk/gtktoolbar.c:501 ../gtk/gtktoolpalette.c:1043 msgid "Toolbar Style" msgstr "ਟੂਲਬਾਰ ਸਟਾਇਲ" -#: ../gtk/gtktoolbar.c:501 +#: ../gtk/gtktoolbar.c:502 msgid "How to draw the toolbar" msgstr "ਟੂਲਬਾਰ ਨੂੰ ਕਿਵੇਂ ਬਣਾਉਣਾ ਹੈ" -#: ../gtk/gtktoolbar.c:508 +#: ../gtk/gtktoolbar.c:509 msgid "Show Arrow" msgstr "ਤੀਰ ਵੇਖਾਓ" -#: ../gtk/gtktoolbar.c:509 +#: ../gtk/gtktoolbar.c:510 msgid "If an arrow should be shown if the toolbar doesn't fit" msgstr "ਕੀ ਤੀਰ ਵੇਖਾਇਆ ਜਾਵੇ ਜਦੋਂ ਕਿ ਟੂਲਬਾਰ ਵਿੱਚ ਸਮਾ ਨਾ ਸਕੇ" -#: ../gtk/gtktoolbar.c:530 +#: ../gtk/gtktoolbar.c:531 msgid "Size of icons in this toolbar" msgstr "ਇਹ ਟੂਲਬਾਰ ਵਿੱਚ ਆਈਕਾਨਾਂ ਦਾ ਅਕਾਰ" -#: ../gtk/gtktoolbar.c:545 ../gtk/gtktoolpalette.c:1029 +#: ../gtk/gtktoolbar.c:546 ../gtk/gtktoolpalette.c:1029 msgid "Icon size set" msgstr "ਆਈਕਾਨ ਅਕਾਰ ਦਿਓ" -#: ../gtk/gtktoolbar.c:546 ../gtk/gtktoolpalette.c:1030 +#: ../gtk/gtktoolbar.c:547 ../gtk/gtktoolpalette.c:1030 msgid "Whether the icon-size property has been set" msgstr "ਕੀ ਆਈਕਾਨ-ਅਕਾਰ ਵਿਸ਼ੇਸ਼ਤਾ ਦਿੱਤੀ ਜਾਵੇ" -#: ../gtk/gtktoolbar.c:555 +#: ../gtk/gtktoolbar.c:556 msgid "Whether the item should receive extra space when the toolbar grows" msgstr "ਕੀ ਆਈਟਮ ਹੋਰ ਵਾਧੂ ਥਾਂ ਲਵੇ ਜਦੋਂ ਕਿ ਟੂਲਬਾਰ ਫੈਲੇ" -#: ../gtk/gtktoolbar.c:563 ../gtk/gtktoolitemgroup.c:1651 +#: ../gtk/gtktoolbar.c:564 ../gtk/gtktoolitemgroup.c:1651 msgid "Whether the item should be the same size as other homogeneous items" msgstr "ਕੀ ਆਈਟਮ ਉਸੇ ਆਕਾਰ ਦੀ ਹੋਵੇ ਜਿਸ ਦੀ ਹੋਰ ਸਮ-ਰੂਪ ਆਈਟਮਾਂ ਹਨ" -#: ../gtk/gtktoolbar.c:570 +#: ../gtk/gtktoolbar.c:571 msgid "Spacer size" msgstr "ਸਪੇਸਰ ਆਕਾਰ" -#: ../gtk/gtktoolbar.c:571 +#: ../gtk/gtktoolbar.c:572 msgid "Size of spacers" msgstr "ਸਪੇਸਰ ਦਾ ਅਕਾਰ" -#: ../gtk/gtktoolbar.c:589 +#: ../gtk/gtktoolbar.c:590 msgid "Amount of border space between the toolbar shadow and the buttons" msgstr "ਟੂਲਬਾਰ ਦੇ ਪਰਛਾਵੇ ਅਤੇ ਬਟਨਾਂ ਵਿਚਕਾਰ ਹਾਸ਼ੀਏ ਦੀ ਥਾਂ ਦੀ ਮਾਤਰਾ" -#: ../gtk/gtktoolbar.c:597 +#: ../gtk/gtktoolbar.c:598 msgid "Maximum child expand" msgstr "ਵੱਧ ਤੋਂ ਵੱਧ ਚਾਈਲਡ ਫੈਲਾ" -#: ../gtk/gtktoolbar.c:598 +#: ../gtk/gtktoolbar.c:599 msgid "Maximum amount of space an expandable item will be given" msgstr "ਇੱਕ ਫੈਲਣਯੋਗ ਆਈਟਮ ਨੂੰ ਦਿੱਤਾ ਜਾਣ ਵਾਲਾ ਵੱਧ ਤੋਂ ਵੱਧ ਫਾਸਲਾ" -#: ../gtk/gtktoolbar.c:606 +#: ../gtk/gtktoolbar.c:607 msgid "Space style" msgstr "ਖਾਲੀ ਸਟਾਇਲ" -#: ../gtk/gtktoolbar.c:607 +#: ../gtk/gtktoolbar.c:608 msgid "Whether spacers are vertical lines or just blank" msgstr "ਕੀ ਵੱਖਰਵੇ ਵਿੱਚ ਲੰਬਕਾਰੀ ਲਾਈਨਾਂ ਹੋਣ ਜਾਂ ਸਿਰਫ ਖਾਲੀ ਹੀ ਹੋਵੇ" -#: ../gtk/gtktoolbar.c:614 +#: ../gtk/gtktoolbar.c:615 msgid "Button relief" msgstr "ਬਟਨ ਛੋਟ" -#: ../gtk/gtktoolbar.c:615 +#: ../gtk/gtktoolbar.c:616 msgid "Type of bevel around toolbar buttons" msgstr "ਟੂਲਬਾਰ ਦੁਆਲੇ bevel ਦੀ ਕਿਸਮ" -#: ../gtk/gtktoolbar.c:631 +#: ../gtk/gtktoolbar.c:632 msgid "Style of bevel around the toolbar" msgstr "ਟੂਲਬਾਰ ਦੁਆਲੇ bevel ਦਾ ਸਟਾਇਲ" @@ -7187,210 +7206,210 @@ msgstr "TreeModelSort ਮਾਡਲ" msgid "The model for the TreeModelSort to sort" msgstr "TreeModelSort ਲੜੀਬੱਧ ਕਰਨ ਲਈ ਮਾਡਲ" -#: ../gtk/gtktreeview.c:992 +#: ../gtk/gtktreeview.c:993 msgid "TreeView Model" msgstr "ਟਰੀ-ਵਿਊ ਮਾਡਲ" -#: ../gtk/gtktreeview.c:993 +#: ../gtk/gtktreeview.c:994 msgid "The model for the tree view" msgstr "ਟਰੀ-ਵਿਊ ਲਈ ਮਾਡਲ" -#: ../gtk/gtktreeview.c:1005 +#: ../gtk/gtktreeview.c:1006 msgid "Headers Visible" msgstr "ਹੈੱਡਰ ਦਿੱਖ" -#: ../gtk/gtktreeview.c:1006 +#: ../gtk/gtktreeview.c:1007 msgid "Show the column header buttons" msgstr "ਕਾਲਮ ਹੈੱਡਰ ਬਟਨ ਵੇਖਾਓ" -#: ../gtk/gtktreeview.c:1013 +#: ../gtk/gtktreeview.c:1014 msgid "Headers Clickable" msgstr "ਹੈੱਡਰ ਦਬਾਉਣਯੋਗ" -#: ../gtk/gtktreeview.c:1014 +#: ../gtk/gtktreeview.c:1015 msgid "Column headers respond to click events" msgstr "ਦਬਾੳਣ ਦੀ ਕਾਰਵਾਈ ਤੇ ਕਾਲਮ ਹੈੱਡਰ ਜਵਾਬਦੇਹ ਹੋਵੇ" -#: ../gtk/gtktreeview.c:1021 +#: ../gtk/gtktreeview.c:1022 msgid "Expander Column" msgstr "ਫੈਲਣਵਾਲਾ ਕਾਲਮ" -#: ../gtk/gtktreeview.c:1022 +#: ../gtk/gtktreeview.c:1023 msgid "Set the column for the expander column" msgstr "ਫੈਲਣਵਾਲਾ ਕਾਲਮ ਲਈ ਕਾਲਮ ਚੁਣੋ" -#: ../gtk/gtktreeview.c:1037 +#: ../gtk/gtktreeview.c:1038 msgid "Rules Hint" msgstr "ਨਿਯਮ ਇਸ਼ਾਰਾ" -#: ../gtk/gtktreeview.c:1038 +#: ../gtk/gtktreeview.c:1039 msgid "Set a hint to the theme engine to draw rows in alternating colors" msgstr "ਬਦਲਵੇ ਰੰਗ ਵਿੱਚ ਕਤਾਰ ਬਣਾਉਣ ਲਈ ਸਰੂਪ-ਇੰਜਣ ਦੇ ਲਈ ਸੰਕੇਤ ਸੈੱਟ ਕਰੋ" -#: ../gtk/gtktreeview.c:1045 +#: ../gtk/gtktreeview.c:1046 msgid "Enable Search" msgstr "ਖੋਜ ਨੂੰ ਯੋਗ ਕਰੋ" -#: ../gtk/gtktreeview.c:1046 +#: ../gtk/gtktreeview.c:1047 msgid "View allows user to search through columns interactively" msgstr "" "ਦਰਿਸ਼ ਵਰਤਣਵਾਲਿਆ ਨੂੰ ਕਾਲਮਾਂ ਵਿੱਚ ਪ੍ਰਭਾਵਸ਼ਾਲ਼ੀ ਤਰੀਕੇ ਨਾਲ ਖੋਜ ਕਰਨ ਦਿੰਦਾ ਹੈ" -#: ../gtk/gtktreeview.c:1053 +#: ../gtk/gtktreeview.c:1054 msgid "Search Column" msgstr "ਕਾਲਮ ਖੋਜ" -#: ../gtk/gtktreeview.c:1054 +#: ../gtk/gtktreeview.c:1055 msgid "Model column to search through during interactive search" msgstr "ਦਿਲਖਿੱਚਵੀਂ ਖੋਜ ਦੌਰਾਨ ਮਾਡਲ ਕਾਲਮ ਦੀ ਖੋਜ" -#: ../gtk/gtktreeview.c:1074 +#: ../gtk/gtktreeview.c:1075 msgid "Fixed Height Mode" msgstr "ਨਿਸ਼ਚਿਤ ਉਚਾਈ ਮੋਡ" -#: ../gtk/gtktreeview.c:1075 +#: ../gtk/gtktreeview.c:1076 msgid "Speeds up GtkTreeView by assuming that all rows have the same height" msgstr "ਸਾਰੀਆ ਕਤਾਰਾਂ ਦੀ ਨਿਸ਼ਚਿਤ ਉਚਾਈ ਮੰਨ ਕੇ GtkTreeView ਦੀ ਗਤੀ ਵਧਾਉ " -#: ../gtk/gtktreeview.c:1095 +#: ../gtk/gtktreeview.c:1096 msgid "Hover Selection" msgstr "ਹੋਵਰ ਚੋਣ" -#: ../gtk/gtktreeview.c:1096 +#: ../gtk/gtktreeview.c:1097 msgid "Whether the selection should follow the pointer" msgstr "ਕੀ ਚੋਣ ਸੂਚਕ ਦਾ ਪਿੱਛਾ ਕਰੇ" -#: ../gtk/gtktreeview.c:1115 +#: ../gtk/gtktreeview.c:1116 msgid "Hover Expand" msgstr "ਹੋਵਰ ਫੈਲਾਓ" -#: ../gtk/gtktreeview.c:1116 +#: ../gtk/gtktreeview.c:1117 msgid "" "Whether rows should be expanded/collapsed when the pointer moves over them" msgstr "ਕੀ ਸੂਚਕ ਕਤਾਰਾਂ ਦੇ ਉੱਪਰ ਹੋਣ ਸਮੇਂ ਸਮੇਟੀਆਂ/ਫੈਲਾਈਆਂ ਜਾਣ" -#: ../gtk/gtktreeview.c:1130 +#: ../gtk/gtktreeview.c:1131 msgid "Show Expanders" msgstr "ਫੈਲਣ ਵਾਲੇ ਵੇਖਾਓ" -#: ../gtk/gtktreeview.c:1131 +#: ../gtk/gtktreeview.c:1132 msgid "View has expanders" msgstr "ਫੈਲਾਉਣ ਵਾਲੇ ਵਾਂਗ ਵੇਖਾਓ" -#: ../gtk/gtktreeview.c:1145 +#: ../gtk/gtktreeview.c:1146 msgid "Level Indentation" msgstr "ਹਾਸ਼ੀਏ ਤੋਂ ਦੂਰੀ ਦਾ ਲੈਵਲ" -#: ../gtk/gtktreeview.c:1146 +#: ../gtk/gtktreeview.c:1147 msgid "Extra indentation for each level" msgstr "ਹਰੇਕ ਲੈਵਲ ਲਈ ਵਾਧੂ ਹਾਸ਼ੀਏ ਤੋਂ ਦੂਰੀ" -#: ../gtk/gtktreeview.c:1155 +#: ../gtk/gtktreeview.c:1156 msgid "Rubber Banding" msgstr "ਰਬਰ ਬੈਂਗਿੰਡ" -#: ../gtk/gtktreeview.c:1156 +#: ../gtk/gtktreeview.c:1157 msgid "" "Whether to enable selection of multiple items by dragging the mouse pointer" msgstr "ਮਾਊਸ ਸੰਕੇਤਕ ਰਾਹੀਂ ਚੁੱਕ ਕੇ ਕਈ ਆਈਟਮਾਂ ਦੀ ਚੋਣ ਨੂੰ ਮਨਜ਼ੂਰ ਕਰਨਾ ਹੈ" -#: ../gtk/gtktreeview.c:1163 +#: ../gtk/gtktreeview.c:1164 msgid "Enable Grid Lines" msgstr "ਗਰਿੱਡ ਲਾਈਨਾਂ ਯੋਗ" -#: ../gtk/gtktreeview.c:1164 +#: ../gtk/gtktreeview.c:1165 msgid "Whether grid lines should be drawn in the tree view" msgstr "ਕੀ ਲੜੀ ਝਲਕ ਵਿੱਚ ਗਰਿੱਡ ਲਾਈਨਾਂ ਵੇਖਾਉਣੀਆਂ ਹਨ" -#: ../gtk/gtktreeview.c:1172 +#: ../gtk/gtktreeview.c:1173 msgid "Enable Tree Lines" msgstr "ਲੜੀ ਲਾਈਨਾਂ ਯੋਗ" -#: ../gtk/gtktreeview.c:1173 +#: ../gtk/gtktreeview.c:1174 msgid "Whether tree lines should be drawn in the tree view" msgstr "ਕੀ ਲੜੀ ਝਲਕ ਵਿੱਚ ਲੜੀ ਲਾਈਨਾਂ ਖਿੱਚੀਆਂ ਜਾਣ" -#: ../gtk/gtktreeview.c:1181 +#: ../gtk/gtktreeview.c:1182 msgid "The column in the model containing the tooltip texts for the rows" msgstr "ਮਾਡਲ ਵਿੱਚ ਕਾਲਮ, ਜੋ ਕਿ ਕਤਾਰਾਂ ਲਈ ਟੂਲ-ਟਿੱਪ ਟੈਕਸਟ ਰੱਖਦਾ ਹੈ" -#: ../gtk/gtktreeview.c:1203 +#: ../gtk/gtktreeview.c:1204 msgid "Vertical Separator Width" msgstr "ਲੰਬਕਾਰੀ ਵੱਖਰੇਵੇ ਦੀ ਚੌੜਈ" -#: ../gtk/gtktreeview.c:1204 +#: ../gtk/gtktreeview.c:1205 msgid "Vertical space between cells. Must be an even number" msgstr "ਸੈੱਲ਼ਾਂ ਵਿੱਚਕਾਰ ਲੰਬਕਾਰੀ ਖਾਲੀ ਚੌੜਾਈ, ਜਿਸਤ ਸੰਖਿਆ ਹੋਣੀ ਜ਼ਰੂਰੀ ਹੈ" -#: ../gtk/gtktreeview.c:1212 +#: ../gtk/gtktreeview.c:1213 msgid "Horizontal Separator Width" msgstr "ਲੇਟਵੇ ਵੱਖਰੇਵੇ ਦੀ ਚੌੜਾਈ" -#: ../gtk/gtktreeview.c:1213 +#: ../gtk/gtktreeview.c:1214 msgid "Horizontal space between cells. Must be an even number" msgstr "ਸੈੱਲ਼ਾਂ ਵਿੱਚਕਾਰ ਲੇਟਵੀ ਖਾਲੀ ਚੌੜਾਈ, ਜਿਸਤ ਸੰਖਿਆ ਹੋਣੀ ਜ਼ਰੂਰੀ ਹੈ" -#: ../gtk/gtktreeview.c:1221 +#: ../gtk/gtktreeview.c:1222 msgid "Allow Rules" msgstr "ਰੂਲ ਮਨਜ਼ੂਰ" -#: ../gtk/gtktreeview.c:1222 +#: ../gtk/gtktreeview.c:1223 msgid "Allow drawing of alternating color rows" msgstr "ਬਦਲਵੇ ਰੰਗ ਦੀਆ ਕਤਾਰਾਂ ਬਣਾਉਣ ਨੂੰ ਚਾਲੂ ਕਰੋ" -#: ../gtk/gtktreeview.c:1228 +#: ../gtk/gtktreeview.c:1229 msgid "Indent Expanders" msgstr "ਹਾਸ਼ੀਏ ਤੋਂ ਦੂਰੀ ਨੂੰ ਫੈਲਾਓ" -#: ../gtk/gtktreeview.c:1229 +#: ../gtk/gtktreeview.c:1230 msgid "Make the expanders indented" msgstr "ਫੈਲਾਉ ਨੂੰ ਹਾਸ਼ੀਏ ਤੋਂ ਦੂਰ ਬਣਾਓ" -#: ../gtk/gtktreeview.c:1235 +#: ../gtk/gtktreeview.c:1236 msgid "Even Row Color" msgstr "ਜਿਸਤ ਕਤਾਰ ਦਾ ਰੰਗ" -#: ../gtk/gtktreeview.c:1236 +#: ../gtk/gtktreeview.c:1237 msgid "Color to use for even rows" msgstr "ਜਿਸਤ ਕਤਾਰ ਲਈ ਵਰਤਣ ਵਾਲਾ ਰੰਗ" -#: ../gtk/gtktreeview.c:1242 +#: ../gtk/gtktreeview.c:1243 msgid "Odd Row Color" msgstr "ਟਾਂਕ ਕਤਾਰ ਦਾ ਰੰਗ" -#: ../gtk/gtktreeview.c:1243 +#: ../gtk/gtktreeview.c:1244 msgid "Color to use for odd rows" msgstr "ਟਾਂਕ ਕਤਾਰ ਲਈ ਵਰਤਣ ਵਾਲਾ ਰੰਗ" -#: ../gtk/gtktreeview.c:1249 +#: ../gtk/gtktreeview.c:1250 msgid "Grid line width" msgstr "ਗਰਿੱਡ ਲਾਈਨ ਚੌੜਾਈ" -#: ../gtk/gtktreeview.c:1250 +#: ../gtk/gtktreeview.c:1251 msgid "Width, in pixels, of the tree view grid lines" msgstr "ਟਰੀ ਝਲਕ ਗਰਿੱਡ ਲਾਈਨਾਂ ਦੀ ਚੌੜਾਈ ਪਿਕਸਲ ਵਿੱਚ" -#: ../gtk/gtktreeview.c:1256 +#: ../gtk/gtktreeview.c:1257 msgid "Tree line width" msgstr "ਟਰੀ ਲਾਈਨ ਚੌੜਾਈ" -#: ../gtk/gtktreeview.c:1257 +#: ../gtk/gtktreeview.c:1258 msgid "Width, in pixels, of the tree view lines" msgstr "ਲੜੀ ਝਲਕ ਲਾਈਨਾਂ ਦੀ ਚੌੜਾਈ ਪਿਕਸਲ ਵਿੱਚ" -#: ../gtk/gtktreeview.c:1263 +#: ../gtk/gtktreeview.c:1264 msgid "Grid line pattern" msgstr "ਗਰਿੱਡ ਲਾਈਨ ਪੈਟਰਨ" -#: ../gtk/gtktreeview.c:1264 +#: ../gtk/gtktreeview.c:1265 msgid "Dash pattern used to draw the tree view grid lines" msgstr "ਲੜੀ ਝਲਕ ਗਰਿੱਡ ਲਾਈਨਾਂ ਖਿੱਚਣ ਲਈ ਵਰਤਣ ਵਾਸਤੇ ਡੈਸ਼ ਪੈਟਰਨ" -#: ../gtk/gtktreeview.c:1270 +#: ../gtk/gtktreeview.c:1271 msgid "Tree line pattern" msgstr "ਟਰੀ ਲਾਈਨ ਪੈਟਰਨ" -#: ../gtk/gtktreeview.c:1271 +#: ../gtk/gtktreeview.c:1272 msgid "Dash pattern used to draw the tree view lines" msgstr "ਲੜੀ ਝਲਕ ਲਾਈਨਾਂ ਖਿੱਚਣ ਲਈ ਵਰਤਣ ਵਾਸਤੇ ਡੈਸ਼ ਪੈਟਰਨ" @@ -7398,7 +7417,7 @@ msgstr "ਲੜੀ ਝਲਕ ਲਾਈਨਾਂ ਖਿੱਚਣ ਲਈ ਵਰਤ msgid "Whether to display the column" msgstr "ਕੀ ਕਾਲਮ ਵੇਖਾਉਣਾ ਹੈ" -#: ../gtk/gtktreeviewcolumn.c:255 ../gtk/gtkwindow.c:661 +#: ../gtk/gtktreeviewcolumn.c:255 ../gtk/gtkwindow.c:651 msgid "Resizable" msgstr "ਮੁੜ-ਆਕਾਰਯੋਗ" @@ -7518,115 +7537,115 @@ msgstr "ਸਿੰਬਲ ਆਈਕਾਨ ਵਰਤੋਂ" msgid "Whether to use symbolic icons" msgstr "ਕੀ ਸਿੰਬਲ ਆਈਕਾਨ ਵਰਤਣੇ ਹਨ" -#: ../gtk/gtkwidget.c:985 +#: ../gtk/gtkwidget.c:984 msgid "Widget name" msgstr "ਵਿਦਗਿਟ ਨਾਂ" -#: ../gtk/gtkwidget.c:986 +#: ../gtk/gtkwidget.c:985 msgid "The name of the widget" msgstr "ਵਿਦਗਿਟ ਦਾ ਨਾਂ" -#: ../gtk/gtkwidget.c:993 +#: ../gtk/gtkwidget.c:992 msgid "The parent widget of this widget. Must be a Container widget" msgstr "ਇਸ ਵਿਦਗਿਟ ਦਾ ਪੇਰੈਟ ਵਿਦਗਿਟ ਇੱਕ ਕੰਨਟੇਨਰ ਵਿਦਗਿਟ ਹੀ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ " -#: ../gtk/gtkwidget.c:1000 +#: ../gtk/gtkwidget.c:999 msgid "Width request" msgstr "ਵਿਦਗਿਟ ਬੇਨਤੀ" -#: ../gtk/gtkwidget.c:1001 +#: ../gtk/gtkwidget.c:1000 msgid "" "Override for width request of the widget, or -1 if natural request should be " "used" msgstr "ਵਿਦਗਿਟ ਲਈ ਚੌੜਾਈ ਦੀ ਮੰਗ ਨੂੰ ਉੱਤੇ ਲਿਖ ਦਿਉ, ਜਾਂ -1 ਕੁਦਰਤੀ ਮੰਗ ਹੀ ਵਰਤਣੀ ਹੈ" -#: ../gtk/gtkwidget.c:1009 +#: ../gtk/gtkwidget.c:1008 msgid "Height request" msgstr "ਉਚਾਈ ਬੇਨਤੀ" -#: ../gtk/gtkwidget.c:1010 +#: ../gtk/gtkwidget.c:1009 msgid "" "Override for height request of the widget, or -1 if natural request should " "be used" msgstr "ਵਿਦਗਿਟ ਲਈ ਉਚਾਈ ਦੀ ਮੰਗ ਨੂੰ ਉੱਤੇ ਲਿਖ ਦਿਉ, ਜਾਂ -1 ਕੁਦਰਤੀ ਮੰਗ ਹੀ ਵਰਤਣੀ ਹੈ " -#: ../gtk/gtkwidget.c:1019 +#: ../gtk/gtkwidget.c:1018 msgid "Whether the widget is visible" msgstr "ਕੀ ਵਿਦਗਿਟ ਵੇਖਣਯੋਗ ਹੈ" -#: ../gtk/gtkwidget.c:1026 +#: ../gtk/gtkwidget.c:1025 msgid "Whether the widget responds to input" msgstr "ਕੀ ਵਿਦਗਿਟ ਇੰਪੁੱਟ ਨੂੰ ਜਵਾਬਦੇਹ ਹੋਵੇ" -#: ../gtk/gtkwidget.c:1032 +#: ../gtk/gtkwidget.c:1031 msgid "Application paintable" msgstr "ਕਾਰਜ ਚਿੱਤਰਯੋਗ" -#: ../gtk/gtkwidget.c:1033 +#: ../gtk/gtkwidget.c:1032 msgid "Whether the application will paint directly on the widget" msgstr "ਕੀ ਕਾਰਜ ਵਿਦਗਿਟ ਤੇ ਸਿੱਧਾ ਹੀ ਚਿੱਤਰਕਾਰੀ ਕਰ ਸਕੇ" -#: ../gtk/gtkwidget.c:1039 +#: ../gtk/gtkwidget.c:1038 msgid "Can focus" msgstr "ਫੋਕਸ ਹੋ ਸਕਦਾ ਹੈ" -#: ../gtk/gtkwidget.c:1040 +#: ../gtk/gtkwidget.c:1039 msgid "Whether the widget can accept the input focus" msgstr "ਕੀ ਵਿਦਗਿਟ ਇੰਪੁੱਟ ਫੋਕਸ ਲਾਗੂ ਕਰ ਸਕੇ" -#: ../gtk/gtkwidget.c:1046 +#: ../gtk/gtkwidget.c:1045 msgid "Has focus" msgstr "ਫੋਕਸ ਹੈ" -#: ../gtk/gtkwidget.c:1047 +#: ../gtk/gtkwidget.c:1046 msgid "Whether the widget has the input focus" msgstr "ਕੀ ਵਿਦਗਿਟ ਇੰਪੁੱਟ ਫੋਕਸ ਨੂੰ ਲਾਗੂ ਕੀਤਾ ਹੈ" -#: ../gtk/gtkwidget.c:1053 +#: ../gtk/gtkwidget.c:1052 msgid "Is focus" msgstr "ਫੋਕਸ ਹੈ" -#: ../gtk/gtkwidget.c:1054 +#: ../gtk/gtkwidget.c:1053 msgid "Whether the widget is the focus widget within the toplevel" msgstr "ਕੀ ਵਿਦਗਿਟ ਸਿਰੇ ਦੀ ਸਥਿਤੀ ਵਿੱਚ ਵਿਦਗਿਟ ਫੋਕਸ ਨੂੰ ਲਾਗੂ ਕੀਤਾ ਹੈ" -#: ../gtk/gtkwidget.c:1060 +#: ../gtk/gtkwidget.c:1059 msgid "Can default" msgstr "ਡਿਫਾਲਟ ਹੋ ਸਕਦਾ ਹੈ" -#: ../gtk/gtkwidget.c:1061 +#: ../gtk/gtkwidget.c:1060 msgid "Whether the widget can be the default widget" msgstr "ਕੀ ਵਿਦਗਿਟ ਮੂਲ ਵਿਦਗਿਟ ਬਣ ਸਕੇ" -#: ../gtk/gtkwidget.c:1067 +#: ../gtk/gtkwidget.c:1066 msgid "Has default" msgstr "ਡਿਫਾਲਟ ਹੈ" -#: ../gtk/gtkwidget.c:1068 +#: ../gtk/gtkwidget.c:1067 msgid "Whether the widget is the default widget" msgstr "ਕੀ ਵਿਦਗਿਟ ਮੂਲ ਵਿਦਗਿਟ ਹੈ" -#: ../gtk/gtkwidget.c:1074 +#: ../gtk/gtkwidget.c:1073 msgid "Receives default" msgstr "ਡਿਫਾਲਟ ਲੈ ਸਕੇ" -#: ../gtk/gtkwidget.c:1075 +#: ../gtk/gtkwidget.c:1074 msgid "If TRUE, the widget will receive the default action when it is focused" msgstr "ਜੇਕਰ ਸੱਚ ਹੈ ਤਾਂ, ਵਿਦਗਿਟ ਮੂਲ ਕਾਰਵਾਈ ਕਰੇਗੇ, ਜਦੋਂ ਕਿ ਇਹ ਕੇਦਰਿਤ ਹੋਵੇਗਾ" -#: ../gtk/gtkwidget.c:1081 +#: ../gtk/gtkwidget.c:1080 msgid "Composite child" msgstr "ਯੋਗਿਕ ਚਲਾਇਡ" -#: ../gtk/gtkwidget.c:1082 +#: ../gtk/gtkwidget.c:1081 msgid "Whether the widget is part of a composite widget" msgstr "ਕੀ ਵਿਦਗਿਟ ਯੋਗਿਕ ਵਿਦਗਿਟ ਦਾ ਹਿੱਸਾ ਹੈ" -#: ../gtk/gtkwidget.c:1088 +#: ../gtk/gtkwidget.c:1087 msgid "Style" msgstr "ਸਟਾਇਲ" -#: ../gtk/gtkwidget.c:1089 +#: ../gtk/gtkwidget.c:1088 msgid "" "The style of the widget, which contains information about how it will look " "(colors etc)" @@ -7634,173 +7653,173 @@ msgstr "" "ਵਿਦਗਿਟ ਦਾ ਸਟਾਇਲ, ਜੋ ਕਿ ਇਹ ਜਾਣਕਾਰੀ ਰੱਖਦਾ ਹੈ ਇਹ ਕਿਸਤਰਾਂ ਦਾ ਦਿੱਸੇਗਾ (ਜਿਵੇਂ ਰੰਗ " "ਆਦਿ)" -#: ../gtk/gtkwidget.c:1095 +#: ../gtk/gtkwidget.c:1094 msgid "Events" msgstr "ਘਟਨਾਵਾਂ" -#: ../gtk/gtkwidget.c:1096 +#: ../gtk/gtkwidget.c:1095 msgid "The event mask that decides what kind of GdkEvents this widget gets" msgstr "" "ਘਟਨਾ-ਮਖੌਟਾ, ਜੋ ਕਿ ਇਹ ਸੈੱਟ ਕਰਦੇ ਹਨ ਕਿ ਇਹ ਵਿਦਗਿਟ ਕਿਸਤਰ੍ਹਾਂ ਦਾ GdkEvents ਨੂੰ " "ਪਰਾਪਤ ਕਰਦਾ ਹੈ" -#: ../gtk/gtkwidget.c:1103 +#: ../gtk/gtkwidget.c:1102 msgid "No show all" msgstr "ਸਭ ਨਾ ਵੇਖਾਓ" -#: ../gtk/gtkwidget.c:1104 +#: ../gtk/gtkwidget.c:1103 msgid "Whether gtk_widget_show_all() should not affect this widget" msgstr "ਕੀ gtk_widget_show_all() ਸਾਰੇ ਵਿਦਗਿਟ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਨਾ ਕਰੇ" -#: ../gtk/gtkwidget.c:1127 +#: ../gtk/gtkwidget.c:1126 msgid "Whether this widget has a tooltip" msgstr "ਕੀ ਇਹ ਵਿਦਗਿਟ ਉੱਤੇ ਟੂਲ-ਟਿੱਪ ਹੋਣ" -#: ../gtk/gtkwidget.c:1184 +#: ../gtk/gtkwidget.c:1183 msgid "The widget's window if it is realized" msgstr "ਜੇ ਮੰਨਿਆ ਜਾਵੇ ਤਾਂ ਵਿਡਜੈੱਟ ਦੀ ਵਿੰਡੋ" -#: ../gtk/gtkwidget.c:1198 +#: ../gtk/gtkwidget.c:1197 msgid "Double Buffered" msgstr "ਦੂਹਰਾ ਬਫਰ" -#: ../gtk/gtkwidget.c:1199 +#: ../gtk/gtkwidget.c:1198 msgid "Whether the widget is double buffered" msgstr "ਕੀ ਵਿਦਗਿਟ ਦੂਹਰਾ ਬਫ਼ਰ ਹੋਵੇ" -#: ../gtk/gtkwidget.c:1214 +#: ../gtk/gtkwidget.c:1213 msgid "How to position in extra horizontal space" msgstr "ਵਾਧੂ ਹਰੀਜੱਟਲ ਥਾਂ ਵਿੱਚ ਸਥਿਤੀ ਕਿਵੇਂ" -#: ../gtk/gtkwidget.c:1230 +#: ../gtk/gtkwidget.c:1229 msgid "How to position in extra vertical space" msgstr "ਵਾਧੂ ਵਰਟੀਕਲ ਥਾਂ ਵਿੱਚ ਸਥਿਤੀ ਕਿਵੇਂ" -#: ../gtk/gtkwidget.c:1249 +#: ../gtk/gtkwidget.c:1248 msgid "Margin on Left" msgstr "ਖੱਬੇ ਤੋਂ ਫਾਸਲਾ" -#: ../gtk/gtkwidget.c:1250 +#: ../gtk/gtkwidget.c:1249 msgid "Pixels of extra space on the left side" msgstr "ਖੱਬੇ ਪਾਸੇ ਉੱਤੇ ਵਾਧੂ ਥਾਂ ਪਿਕਸਲਾਂ 'ਚ" -#: ../gtk/gtkwidget.c:1270 +#: ../gtk/gtkwidget.c:1269 msgid "Margin on Right" msgstr "ਸੱਜੇ ਤੋਂ ਫਾਸਲਾ" -#: ../gtk/gtkwidget.c:1271 +#: ../gtk/gtkwidget.c:1270 msgid "Pixels of extra space on the right side" msgstr "ਸੱਜੇ ਪਾਸੇ ਉੱਤੇ ਵਾਧੂ ਥਾਂ ਪਿਕਸਲਾਂ 'ਚ" -#: ../gtk/gtkwidget.c:1291 +#: ../gtk/gtkwidget.c:1290 msgid "Margin on Top" msgstr "ਉੱਤੇ ਤੋਂ ਫਾਸਲਾ" -#: ../gtk/gtkwidget.c:1292 +#: ../gtk/gtkwidget.c:1291 msgid "Pixels of extra space on the top side" msgstr "ਉੱਤਲੇ ਪਾਸੇ ਉੱਤੇ ਵਾਧੂ ਥਾਂ ਪਿਕਸਲਾਂ 'ਚ" -#: ../gtk/gtkwidget.c:1312 +#: ../gtk/gtkwidget.c:1311 msgid "Margin on Bottom" msgstr "ਹੇਠਾਂ ਤੋਂ ਫਾਸਲਾ" -#: ../gtk/gtkwidget.c:1313 +#: ../gtk/gtkwidget.c:1312 msgid "Pixels of extra space on the bottom side" msgstr "ਹੇਠਲੇ ਪਾਸੇ ਉੱਤੇ ਵਾਧੂ ਥਾਂ ਪਿਕਸਲਾਂ 'ਚ" -#: ../gtk/gtkwidget.c:1330 +#: ../gtk/gtkwidget.c:1329 msgid "All Margins" msgstr "ਸਭ ਫਾਸਲੇ" -#: ../gtk/gtkwidget.c:1331 +#: ../gtk/gtkwidget.c:1330 msgid "Pixels of extra space on all four sides" msgstr "ਸਭ ਚਾਰੇ ਪਾਸੇ ਉੱਤੇ ਵਾਧੂ ਥਾਂ ਪਿਕਸਲਾਂ 'ਚ" -#: ../gtk/gtkwidget.c:1364 +#: ../gtk/gtkwidget.c:1363 msgid "Horizontal Expand" msgstr "ਹਰੀਜੱਟਲ ਫੈਲਾਉ" -#: ../gtk/gtkwidget.c:1365 +#: ../gtk/gtkwidget.c:1364 msgid "Whether widget wants more horizontal space" msgstr "ਕੀ ਵਿਦਜੈੱਟ ਨੂੰ ਹੋਰ ਹਰੀਜੱਟਲ ਥਾਂ ਚਾਹੀਦੀ ਹੈ" -#: ../gtk/gtkwidget.c:1379 +#: ../gtk/gtkwidget.c:1378 msgid "Horizontal Expand Set" msgstr "ਹਰੀਜੱਟਲ ਫੈਲਾਉ ਸੈੱਟ" -#: ../gtk/gtkwidget.c:1380 +#: ../gtk/gtkwidget.c:1379 msgid "Whether to use the hexpand property" msgstr "ਕੀ ਹੈਕਸਾਪੈਂਡ ਵਿਸ਼ੇਸ਼ਤਾ ਵਰਤਣੀ ਹੈ" -#: ../gtk/gtkwidget.c:1394 +#: ../gtk/gtkwidget.c:1393 msgid "Vertical Expand" msgstr "ਵਰਟੀਕਲ ਫੈਲਾਓ" -#: ../gtk/gtkwidget.c:1395 +#: ../gtk/gtkwidget.c:1394 msgid "Whether widget wants more vertical space" msgstr "ਕੀ ਵਿਦਜੈੱਟ ਨੂੰ ਹੋਰ ਵਰਟੀਕਲ ਥਾਂ ਚਾਹੀਦੀ ਹੈ" -#: ../gtk/gtkwidget.c:1409 +#: ../gtk/gtkwidget.c:1408 msgid "Vertical Expand Set" msgstr "ਵਰਟੀਕਲ ਫੈਲਾਉ ਸੈੱਟ" -#: ../gtk/gtkwidget.c:1410 +#: ../gtk/gtkwidget.c:1409 msgid "Whether to use the vexpand property" msgstr "ਕੀ ਵੈਕਸਪੈਂਡ ਵਿਸ਼ੇਸ਼ਤਾ ਵਰਤਣੀ ਹੈ" -#: ../gtk/gtkwidget.c:1424 +#: ../gtk/gtkwidget.c:1423 msgid "Expand Both" msgstr "ਦੋਵੇਂ ਫੈਲਾਓ" -#: ../gtk/gtkwidget.c:1425 +#: ../gtk/gtkwidget.c:1424 msgid "Whether widget wants to expand in both directions" msgstr "ਕੀ ਵਿਦਜੈਟ ਨੂੰ ਦੋਵੇਂ ਦਿਸ਼ਾਵਾਂ ਫੈਲਣ ਦੀ ਲੋੜ ਹੈ" -#: ../gtk/gtkwidget.c:3146 +#: ../gtk/gtkwidget.c:3145 msgid "Interior Focus" msgstr "ਅੰਦਰੂਨੀ ਫੋਕਸ" -#: ../gtk/gtkwidget.c:3147 +#: ../gtk/gtkwidget.c:3146 msgid "Whether to draw the focus indicator inside widgets" msgstr "ਕੀ ਵਿਦਗਿਟ ਵਿੱਚ ਫੋਕਸ ਸੰਕੇਤਕ ਬਣਾਉਣਾ ਹੈ" -#: ../gtk/gtkwidget.c:3153 +#: ../gtk/gtkwidget.c:3152 msgid "Focus linewidth" msgstr "ਫੋਕਸ ਰੇਖਾ-ਚੌੜਾਈ" -#: ../gtk/gtkwidget.c:3154 +#: ../gtk/gtkwidget.c:3153 msgid "Width, in pixels, of the focus indicator line" msgstr "ਫੋਕਸ ਸੰਕੇਤਕ ਲਾਈਨ ਦੀ ਚੌੜਾਈ (ਪਿਕਸਲਾਂ ਵਿੱਚ)" -#: ../gtk/gtkwidget.c:3160 +#: ../gtk/gtkwidget.c:3159 msgid "Focus line dash pattern" msgstr "ਫੋਕਸ ਲਾਈਨ ਡੈਸ ਪੈਟਰਨ" -#: ../gtk/gtkwidget.c:3161 +#: ../gtk/gtkwidget.c:3160 msgid "Dash pattern used to draw the focus indicator" msgstr "ਫੋਕਸ ਸੰਕੇਤਕ ਨੂੰ ਬਣਾਉਣ ਲਈ ਡੱਬੀਦਾਰ ਪੈਟਰਨ" -#: ../gtk/gtkwidget.c:3166 +#: ../gtk/gtkwidget.c:3165 msgid "Focus padding" msgstr "ਫੋਕਸ ਪੈਡਿੰਗ" -#: ../gtk/gtkwidget.c:3167 +#: ../gtk/gtkwidget.c:3166 msgid "Width, in pixels, between focus indicator and the widget 'box'" msgstr "ਫੋਕਸ ਸੰਕੇਤਕ ਅਤੇ ਵਿਦਗਿਟ 'ਡੱਬੇ' ਵਿਚਕਾਰ ਦੀ ਚੌੜਾਈ (ਪਿਕਸਲਾਂ ਵਿੱਚ)" -#: ../gtk/gtkwidget.c:3172 +#: ../gtk/gtkwidget.c:3171 msgid "Cursor color" msgstr "ਕਰਸਰ ਰੰਗ" -#: ../gtk/gtkwidget.c:3173 +#: ../gtk/gtkwidget.c:3172 msgid "Color with which to draw insertion cursor" msgstr "ਵਿਚਕਾਰਲੀ ਕਰਸਰ ਬਣਾਉਣ ਵਾਲਾ ਰੰਗ" -#: ../gtk/gtkwidget.c:3178 +#: ../gtk/gtkwidget.c:3177 msgid "Secondary cursor color" msgstr "ਸੈਕੰਡਰੀ ਕਰਸਰ ਰੰਗ" -#: ../gtk/gtkwidget.c:3179 +#: ../gtk/gtkwidget.c:3178 msgid "" "Color with which to draw the secondary insertion cursor when editing mixed " "right-to-left and left-to-right text" @@ -7809,43 +7828,43 @@ msgstr "" "ਤੋਂ ਸੱਜੇ ਟੈਕਸਟ ਦੇ " "ਰਲਵੇ ਨੂੰ ਸੋਧਣਾ ਹੈ" -#: ../gtk/gtkwidget.c:3184 +#: ../gtk/gtkwidget.c:3183 msgid "Cursor line aspect ratio" msgstr "ਕਰਸਰ ਲਾਈਨ ਅਕਾਰ ਅਨੁਪਾਤ" -#: ../gtk/gtkwidget.c:3185 +#: ../gtk/gtkwidget.c:3184 msgid "Aspect ratio with which to draw insertion cursor" msgstr "ਵਿਚਕਾਰਲੀ ਕਰਸਰ ਖਿੱਚਣ ਲਈ ਅਕਾਰ ਅਨੁਪਾਤ" -#: ../gtk/gtkwidget.c:3191 +#: ../gtk/gtkwidget.c:3190 msgid "Window dragging" msgstr "ਵਿੰਡੋ ਡਰੈਗਿੰਗ" -#: ../gtk/gtkwidget.c:3192 +#: ../gtk/gtkwidget.c:3191 msgid "Whether windows can be dragged by clicking on empty areas" msgstr "ਕੀ ਵਿੰਡੋ ਨੂੰ ਖਾਲੀ ਖੇਤਰਾਂ 'ਚ ਕਲਿੱਕ ਕਰਨ ਨਾਲ ਡਰੈਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ" -#: ../gtk/gtkwidget.c:3205 +#: ../gtk/gtkwidget.c:3204 msgid "Unvisited Link Color" msgstr "ਨਾ-ਖੋਲ੍ਹੇ ਲਿੰਕ ਰੰਗ" -#: ../gtk/gtkwidget.c:3206 +#: ../gtk/gtkwidget.c:3205 msgid "Color of unvisited links" msgstr "ਨਾ-ਖੋਲ੍ਹੇ ਲਿੰਕਾਂ ਦਾ ਰੰਗ ਹੈ" -#: ../gtk/gtkwidget.c:3219 +#: ../gtk/gtkwidget.c:3218 msgid "Visited Link Color" msgstr "ਖੋਲ੍ਹੇ ਲਿੰਕ ਰੰਗ" -#: ../gtk/gtkwidget.c:3220 +#: ../gtk/gtkwidget.c:3219 msgid "Color of visited links" msgstr "ਖੋਲ੍ਹੇ ਗਏ ਲਿੰਕਦਾ ਰੰਗ" -#: ../gtk/gtkwidget.c:3234 +#: ../gtk/gtkwidget.c:3233 msgid "Wide Separators" msgstr "ਖੁੱਲ੍ਹੇ ਵੱਖਰੇਵੇਂ" -#: ../gtk/gtkwidget.c:3235 +#: ../gtk/gtkwidget.c:3234 msgid "" "Whether separators have configurable width and should be drawn using a box " "instead of a line" @@ -7853,88 +7872,88 @@ msgstr "" "ਕੀ ਵੱਖਰੇਵੇ ਦੀ ਚੌੜਾਈ ਸੰਰਚਨਾ ਯੋਗ ਹੋਵੇ ਅਤੇ ਇੱਕ ਸਤਰ ਦੀ ਬਜਾਏ ਇੱਕ ਬਕਸਾ ਖਿੱਚਣ ਦੇ ਯੋਗ " "ਹੋਵੇ" -#: ../gtk/gtkwidget.c:3249 +#: ../gtk/gtkwidget.c:3248 msgid "Separator Width" msgstr "ਵੱਖਰੇਵਾ ਚੌੜਾਈ" -#: ../gtk/gtkwidget.c:3250 +#: ../gtk/gtkwidget.c:3249 msgid "The width of separators if wide-separators is TRUE" msgstr "ਵੱਖਰੇਵੇ ਦੀ ਚੌੜਾਈ, ਜੇਕਰ ਖੁੱਲ੍ਹਾ-ਵੱਖਰੇਵਾ ਸੱਚ ਹੋਵੇ" -#: ../gtk/gtkwidget.c:3264 +#: ../gtk/gtkwidget.c:3263 msgid "Separator Height" msgstr "ਵੱਖਰੇਵਾ ਉਚਾਈ" -#: ../gtk/gtkwidget.c:3265 +#: ../gtk/gtkwidget.c:3264 msgid "The height of separators if \"wide-separators\" is TRUE" msgstr "ਵੱਖਰੇਵੇ ਦੀ ਉਚਾਈ, ਜੇਕਰ \"ਖੁੱਲ੍ਹਾ-ਵੱਖਰੇਵਾ\" ਸੱਚ ਹੋਵੇ" -#: ../gtk/gtkwidget.c:3279 +#: ../gtk/gtkwidget.c:3278 msgid "Horizontal Scroll Arrow Length" msgstr "ਖਿਤਿਜੀ ਸਰਕੋਲ ਤੀਰ ਲੰਬਾਈ" -#: ../gtk/gtkwidget.c:3280 +#: ../gtk/gtkwidget.c:3279 msgid "The length of horizontal scroll arrows" msgstr "ਖਿਤਿਜੀ ਸਕਰੋਲ ਤੀਰਾਂ ਦੀ ਲੰਬਾਈ" -#: ../gtk/gtkwidget.c:3294 +#: ../gtk/gtkwidget.c:3293 msgid "Vertical Scroll Arrow Length" msgstr "ਲੰਬਕਾਰੀ ਸਕਰੋਲ ਤੀਰ ਲੰਬਾਈ" -#: ../gtk/gtkwidget.c:3295 +#: ../gtk/gtkwidget.c:3294 msgid "The length of vertical scroll arrows" msgstr "ਲੰਬਕਾਰੀ ਸਕਰੋਲ ਤੀਰਾਂ ਦੀ ਲੰਬਾਈ" -#: ../gtk/gtkwidget.c:3301 ../gtk/gtkwidget.c:3302 +#: ../gtk/gtkwidget.c:3300 ../gtk/gtkwidget.c:3301 msgid "Width of text selection handles" msgstr "ਟੈਕਸਟ ਚੋਣ ਹੈਡਲ ਦੀ ਚੌੜਾਈ" -#: ../gtk/gtkwidget.c:3307 ../gtk/gtkwidget.c:3308 +#: ../gtk/gtkwidget.c:3306 ../gtk/gtkwidget.c:3307 msgid "Height of text selection handles" msgstr "ਟੈਕਸਟ ਚੋਣ ਹੈਡਲ ਦੀ ਉਚਾਈ" -#: ../gtk/gtkwindow.c:619 +#: ../gtk/gtkwindow.c:609 msgid "Window Type" msgstr "ਵਿੰਡੋ ਟਾਈਪ" -#: ../gtk/gtkwindow.c:620 +#: ../gtk/gtkwindow.c:610 msgid "The type of the window" msgstr "ਵਿੰਡੋ ਦੀ ਕਿਸਮ" -#: ../gtk/gtkwindow.c:628 +#: ../gtk/gtkwindow.c:618 msgid "Window Title" msgstr "ਵਿੰਡੋ ਟਾਈਟਲ" -#: ../gtk/gtkwindow.c:629 +#: ../gtk/gtkwindow.c:619 msgid "The title of the window" msgstr "ਵਿੰਡੋ ਦਾ ਟਾਈਟਲ" -#: ../gtk/gtkwindow.c:636 +#: ../gtk/gtkwindow.c:626 msgid "Window Role" msgstr "ਵਿੰਡੋ ਰੂਲ" -#: ../gtk/gtkwindow.c:637 +#: ../gtk/gtkwindow.c:627 msgid "Unique identifier for the window to be used when restoring a session" msgstr "ਵਿੰਡੋ ਲਈ ਇਕਸਾਰ ਸ਼ਨਾਖਤੀ ਜੋ ਕਿ ਸ਼ੈਸ਼ਨ ਨੁੰ ਮੁੜ-ਸੰਭਾਲਣ ਸਮੇ ਵਰਤਿਆ ਜਾ ਸਕੇ" -#: ../gtk/gtkwindow.c:653 +#: ../gtk/gtkwindow.c:643 msgid "Startup ID" msgstr "ਸ਼ੁਰੂਆਤੀ ID" -#: ../gtk/gtkwindow.c:654 +#: ../gtk/gtkwindow.c:644 msgid "Unique startup identifier for the window used by startup-notification" msgstr "" "ਵਿੰਡੋ ਲਈ ਵਿਲੱਖਣ ਸ਼ੁਰੂਆਤੀ ਸ਼ਨਾਖਤੀ, ਜੋ ਕਿ ਸ਼ੁਰੂਆਤੀ ਸੂਚਨਾ ਵਜੋਂ ਵਰਤਿਆ ਜਾਵੇ।" -#: ../gtk/gtkwindow.c:662 +#: ../gtk/gtkwindow.c:652 msgid "If TRUE, users can resize the window" msgstr "ਜੇਕਰ ਸੱਚ ਹੈ ਤਾਂ, ਯੂਜ਼ਰ ਵਿੰਡ ਦਾ ਮੁੜ-ਅਕਾਰ ਕਰ ਸਕਦਾ ਹੈ" -#: ../gtk/gtkwindow.c:669 +#: ../gtk/gtkwindow.c:659 msgid "Modal" msgstr "ਮਾਡਲ" -#: ../gtk/gtkwindow.c:670 +#: ../gtk/gtkwindow.c:660 msgid "" "If TRUE, the window is modal (other windows are not usable while this one is " "up)" @@ -7942,92 +7961,92 @@ msgstr "" "ਜੇਕਰ ਸਹੀ ਹੈ ਤਾਂ, ਵਿੰਡੋ ਮਾਡਲ ਹੋਵੇਗੀ (ਹੋਰ ਵਿੰਡੋ ਉਪਲੱਬਧ ਨਹੀਂ ਹੋ ਸਕਣਗੇ, ਜਦੋਂ ਕਿ " "ਇੱਕ ਨੂੰ ਵਰਤ ਰਹੇ ਹੋ)" -#: ../gtk/gtkwindow.c:677 +#: ../gtk/gtkwindow.c:667 msgid "Window Position" msgstr "ਵਿੰਡੋ ਸਥਿਤੀ" -#: ../gtk/gtkwindow.c:678 +#: ../gtk/gtkwindow.c:668 msgid "The initial position of the window" msgstr "ਵਿੰਡੋ ਦੀ ਮੁੱਢਲੀ ਸਥਿਤੀ" -#: ../gtk/gtkwindow.c:686 +#: ../gtk/gtkwindow.c:676 msgid "Default Width" msgstr "ਮੂਲ ਚੌੜਾਈ" -#: ../gtk/gtkwindow.c:687 +#: ../gtk/gtkwindow.c:677 msgid "The default width of the window, used when initially showing the window" msgstr "ਵਿੰਡੋ ਦੀ ਡਿਫਾਲਟ ਚੌੜਾਈ, ਜੋ ਕਿ ਵਿੰਡੋ ਦੇ ਸ਼ੁਰੂ ਵੇਲੇ ਵੇਖਾਈ ਜਾਵੇਗੀ" -#: ../gtk/gtkwindow.c:696 +#: ../gtk/gtkwindow.c:686 msgid "Default Height" msgstr "ਮੂਲ ਉਚਾਈ" -#: ../gtk/gtkwindow.c:697 +#: ../gtk/gtkwindow.c:687 msgid "" "The default height of the window, used when initially showing the window" msgstr "ਵਿੰਡੋ ਦੀ ਡਿਫਾਲਟ ਉਚਾਈ, ਜੋ ਕਿ ਵਿੰਡੋ ਦੇ ਸ਼ੁਰੂ ਵੇਲੇ ਵੇਖਾਈ ਜਾਵੇਗੀ" -#: ../gtk/gtkwindow.c:706 +#: ../gtk/gtkwindow.c:696 msgid "Destroy with Parent" msgstr "ਪੇਰੈਟ ਨੂੰ ਖਤਮ ਕਰ ਦਿਉ" -#: ../gtk/gtkwindow.c:707 +#: ../gtk/gtkwindow.c:697 msgid "If this window should be destroyed when the parent is destroyed" msgstr "ਜੇਕਰ ਇਹ ਵਿੰਡੋ ਨੂੰ ਖਤਮ ਕੀਤਾ ਤਾਂ ਪੈਰੈਟ ਵੀ ਖਤਮ ਹੋ ਜਾਏਗਾ" -#: ../gtk/gtkwindow.c:721 +#: ../gtk/gtkwindow.c:711 msgid "Hide the titlebar during maximization" msgstr "ਵੱਧ ਤੋਂ ਵੱਧ ਕਰਨ ਦੌਰਾਨ ਟਾਈਟਲ-ਪੱਟੀ ਓਹਲੇ" -#: ../gtk/gtkwindow.c:722 +#: ../gtk/gtkwindow.c:712 msgid "If this window's titlebar should be hidden when the window is maximized" msgstr "ਕੀ ਵਿੰਡੋ ਨੂੰ ਵੱਧ ਤੋਂ ਵੱਧ ਕਰਨ ਸਮੇਂ ਇਹ ਵਿੰਡੋ ਲਈ ਟਾਈਟਲ-ਬਾਰ ਲੁਕਵਾਂ ਹੋਵੇ" -#: ../gtk/gtkwindow.c:730 +#: ../gtk/gtkwindow.c:720 msgid "Icon for this window" msgstr "ਇਸ ਵਿੰਡੋ ਲਈ ਆਈਕਾਨ" -#: ../gtk/gtkwindow.c:748 +#: ../gtk/gtkwindow.c:738 msgid "Mnemonics Visible" msgstr "ਮਨਾਮੈਰਿਕ ਦਿੱਖ" -#: ../gtk/gtkwindow.c:749 +#: ../gtk/gtkwindow.c:739 msgid "Whether mnemonics are currently visible in this window" msgstr "ਕੀ ਇਸ ਵਿੰਡੋ ਵਿੱਚ ਮਨਾਮੈਰਿਕ ਇਸ ਸਮੇਂ ਉਪਲੱਬਧ ਹੋਵੇ" -#: ../gtk/gtkwindow.c:767 +#: ../gtk/gtkwindow.c:757 msgid "Focus Visible" msgstr "ਫੋਕਸ ਦਿੱਖ" -#: ../gtk/gtkwindow.c:768 +#: ../gtk/gtkwindow.c:758 msgid "Whether focus rectangles are currently visible in this window" msgstr "ਕੀ ਇਸ ਵਿੰਡੋ ਵਿੱਚ ਫੋਕਸ ਚਤੁਰਭੁਜਾਂ ਇਸ ਸਮੇਂ ਉਪਲੱਬਧ ਹੋਣ" -#: ../gtk/gtkwindow.c:784 +#: ../gtk/gtkwindow.c:774 msgid "Name of the themed icon for this window" msgstr "ਇਸ ਵਿੰਡੋ ਲਈ ਥੀਮ ਆਈਕਾਨ ਦਾ ਨਾਂ" -#: ../gtk/gtkwindow.c:799 +#: ../gtk/gtkwindow.c:789 msgid "Is Active" msgstr "ਸਰਗਰਮ ਹੈ" -#: ../gtk/gtkwindow.c:800 +#: ../gtk/gtkwindow.c:790 msgid "Whether the toplevel is the current active window" msgstr "ਕੀ ਉੱਤਲਾ ਮੌਜੂਦਾ ਸਰਗਰਮ ਵਿੰਡੋ ਹੈ" -#: ../gtk/gtkwindow.c:807 +#: ../gtk/gtkwindow.c:797 msgid "Focus in Toplevel" msgstr "ਉਪਰਲੇ ਨੂੰ ਕੇਦਰਿਤ ਕਰੋ" -#: ../gtk/gtkwindow.c:808 +#: ../gtk/gtkwindow.c:798 msgid "Whether the input focus is within this GtkWindow" msgstr "ਕੀ ਇਸ GtkWindow ਵਿੱਚ ਇੰਪੁੱਟ ਕੇਦਰ ਹੋਵੇ" -#: ../gtk/gtkwindow.c:815 +#: ../gtk/gtkwindow.c:805 msgid "Type hint" msgstr "ਸੰਕੇਤ ਲਿਖੋ" -#: ../gtk/gtkwindow.c:816 +#: ../gtk/gtkwindow.c:806 msgid "" "Hint to help the desktop environment understand what kind of window this is " "and how to treat it." @@ -8036,123 +8055,123 @@ msgstr "" "ਇਸ ਨੂੰ ਕਿਵੇਂ " "ਵਰਤਣਾ ਹੈ।" -#: ../gtk/gtkwindow.c:824 +#: ../gtk/gtkwindow.c:814 msgid "Skip taskbar" msgstr "ਕਾਰਜ-ਪੱਟੀ ਨੂੰ ਛੱਡੋ" -#: ../gtk/gtkwindow.c:825 +#: ../gtk/gtkwindow.c:815 msgid "TRUE if the window should not be in the task bar." msgstr "ਸਹੀ, ਜੇਕਰ ਵਿੰਡੋ ਟਾਸਕਬਾਰ ਵਿੱਚ ਨਹੀਂ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ" -#: ../gtk/gtkwindow.c:832 +#: ../gtk/gtkwindow.c:822 msgid "Skip pager" msgstr "ਪੇਜ਼ਰ ਨੂੰ ਛੱਡੋ" -#: ../gtk/gtkwindow.c:833 +#: ../gtk/gtkwindow.c:823 msgid "TRUE if the window should not be in the pager." msgstr "ਸਹੀ, ਜੇਕਰ ਵਿੰਡੋ ਪੇਜ਼ਰ ਵਿੱਚ ਨਹੀਂ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ" -#: ../gtk/gtkwindow.c:840 +#: ../gtk/gtkwindow.c:830 msgid "Urgent" msgstr "ਲਾਜ਼ਮੀ" -#: ../gtk/gtkwindow.c:841 +#: ../gtk/gtkwindow.c:831 msgid "TRUE if the window should be brought to the user's attention." msgstr "ਸੱਚ, ਜੇਕਰ ਵਿੰਡੋ ਯੂਜ਼ਰ ਦਾ ਧਿਆਨ ਖਿੱਚੇ" -#: ../gtk/gtkwindow.c:855 +#: ../gtk/gtkwindow.c:845 msgid "Accept focus" msgstr "ਫੋਕਸ ਮਨਜ਼ੂਰ" -#: ../gtk/gtkwindow.c:856 +#: ../gtk/gtkwindow.c:846 msgid "TRUE if the window should receive the input focus." msgstr "ਸਹੀ, ਜੇਕਰ ਵਿੰਡੋ ਇੰਪੁੱਟ ਫੋਕਸ ਲੈ ਸਕੇ।" -#: ../gtk/gtkwindow.c:870 +#: ../gtk/gtkwindow.c:860 msgid "Focus on map" msgstr "ਨਕਸ਼ੇ ਉੱਤੇ ਫੋਕਸ" -#: ../gtk/gtkwindow.c:871 +#: ../gtk/gtkwindow.c:861 msgid "TRUE if the window should receive the input focus when mapped." msgstr "ਸੱਚ, ਜੇਕਰ ਵਿੰਡੋ ਇੰਪੁੱਟ ਧਿਆਨ ਲਵੇ, ਜਦੋਂ ਮਿਲਾਇਆ ਗਿਆ ਹੋਵੇ।" -#: ../gtk/gtkwindow.c:885 +#: ../gtk/gtkwindow.c:875 msgid "Decorated" msgstr "ਸਜਾਇਆ" -#: ../gtk/gtkwindow.c:886 +#: ../gtk/gtkwindow.c:876 msgid "Whether the window should be decorated by the window manager" msgstr "ਕੀ ਵਿੰਡੋ, ਵਿੰਡੋ ਮੈਨੇਜਰ ਰਾਹੀਂ ਸਜਾਈ ਜਾ ਸਕੇ" -#: ../gtk/gtkwindow.c:900 +#: ../gtk/gtkwindow.c:890 msgid "Deletable" msgstr "ਵੱਖ-ਹੋਣ ਯੋਗ" -#: ../gtk/gtkwindow.c:901 +#: ../gtk/gtkwindow.c:891 msgid "Whether the window frame should have a close button" msgstr "ਕੀ ਵਿੰਡੋ ਫਰੇਮ ਉੱਤੇ ਇੱਕ ਬੰਦ ਕਰਨ ਦਾ ਬਟਨ ਹੋਵੇ" -#: ../gtk/gtkwindow.c:920 +#: ../gtk/gtkwindow.c:910 msgid "Resize grip" msgstr "ਮੁੜ-ਆਕਾਰ ਗਰਿੱਪ" -#: ../gtk/gtkwindow.c:921 +#: ../gtk/gtkwindow.c:911 msgid "Specifies whether the window should have a resize grip" msgstr "ਦੱਸੋ ਕਿ ਕੀ ਵਿੰਡੋ ਕੋਲ ਮੁੜ-ਆਕਾਰ ਗਰਿੱਪ ਹੋਵੇ" -#: ../gtk/gtkwindow.c:935 +#: ../gtk/gtkwindow.c:925 msgid "Resize grip is visible" msgstr "ਮੁੜ-ਆਕਾਰ ਗਰਿੱਪ ਵੇਖੋ" -#: ../gtk/gtkwindow.c:936 +#: ../gtk/gtkwindow.c:926 msgid "Specifies whether the window's resize grip is visible." msgstr "ਦੱਸੋ ਕਿ ਕੀ ਵਿੰਡੋ ਦਾ ਮੁੜ-ਆਕਾਰ ਗਰਿੱਪ ਦਿੱਖ ਹੋਵੇ।" -#: ../gtk/gtkwindow.c:952 +#: ../gtk/gtkwindow.c:942 msgid "Gravity" msgstr "ਗਰੇਵਿਟੀ" -#: ../gtk/gtkwindow.c:953 +#: ../gtk/gtkwindow.c:943 msgid "The window gravity of the window" msgstr "ਵਿੰਡੋ ਦੀ ਵਿੰਡੋ ਗਰੇਵਿਟੀ" -#: ../gtk/gtkwindow.c:970 +#: ../gtk/gtkwindow.c:960 msgid "Transient for Window" msgstr "ਵਿੰਡੋ ਲਈ ਟਰਾਂਸੀਨੇਟ" -#: ../gtk/gtkwindow.c:971 +#: ../gtk/gtkwindow.c:961 msgid "The transient parent of the dialog" msgstr "ਡਾਈਲਾਗ ਦੀ ਟਰਾਂਸਟ ਮੁੱਢਲਾ" -#: ../gtk/gtkwindow.c:991 +#: ../gtk/gtkwindow.c:981 msgid "Attached to Widget" msgstr "ਵਿਦਜੈੱਟ ਨਾਲ ਅਟੈਚ ਹੈ" -#: ../gtk/gtkwindow.c:992 +#: ../gtk/gtkwindow.c:982 msgid "The widget where the window is attached" msgstr "ਵਿਦਜੈਟ, ਜਿਸ ਨਾਲ ਵਿੰਡੋ ਅਟੈਚ ਹੈ" -#: ../gtk/gtkwindow.c:1007 +#: ../gtk/gtkwindow.c:997 msgid "Opacity for Window" msgstr "ਵਿੰਡੋ ਲਈ ਧੁੰਦਲਾਪਨ" -#: ../gtk/gtkwindow.c:1008 +#: ../gtk/gtkwindow.c:998 msgid "The opacity of the window, from 0 to 1" msgstr "ਵਿੰਡੋ ਦਾ ਧੁੰਦਲਾਪਨ, 0 ਤੋਂ 1" -#: ../gtk/gtkwindow.c:1018 ../gtk/gtkwindow.c:1019 +#: ../gtk/gtkwindow.c:1008 ../gtk/gtkwindow.c:1009 msgid "Width of resize grip" msgstr "ਮੁੜ-ਆਕਾਰ ਗਰਿੱਪ ਦੀ ਚੌੜਾਈ" -#: ../gtk/gtkwindow.c:1024 ../gtk/gtkwindow.c:1025 +#: ../gtk/gtkwindow.c:1014 ../gtk/gtkwindow.c:1015 msgid "Height of resize grip" msgstr "ਮੁੜ-ਆਕਾਰ ਗਰਿੱਪ ਦੀ ਉਚਾਈ" -#: ../gtk/gtkwindow.c:1047 +#: ../gtk/gtkwindow.c:1037 msgid "GtkApplication" msgstr "GtkApplication" -#: ../gtk/gtkwindow.c:1048 +#: ../gtk/gtkwindow.c:1038 msgid "The GtkApplication for the window" msgstr "ਵਿੰਡੋ ਲਈ GtkApplication" @@ -8164,6 +8183,9 @@ msgstr "ਰੰਗ ਪ੍ਰੋਫਾਇਲ ਨਾਂ" msgid "The title of the color profile to use" msgstr "ਵਰਤਣ ਲਈ ਰੰਗ ਪਰੋਫਾਇਲ ਦਾ ਨਾਂ" +#~ msgid "menu" +#~ msgstr "ਮੇਨੂ" + #~ msgid "Specified type" #~ msgstr "ਦਿੱਤੀ ਕਿਸਮ" From 67d557b53f44b484b3a84f0423fcc543f4609a28 Mon Sep 17 00:00:00 2001 From: A S Alam Date: Fri, 22 Feb 2013 08:49:11 +0000 Subject: [PATCH 176/208] Punjabi: Translation updated (aalam) --- po/pa.po | 467 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 237 insertions(+), 230 deletions(-) diff --git a/po/pa.po b/po/pa.po index 1a210bab7e..9c2def9974 100644 --- a/po/pa.po +++ b/po/pa.po @@ -4,21 +4,21 @@ # # Amanpreet Singh Alam , 2004. # Amanpreet Singh Alam , 2005,2006,2007, 2008, 2009. -# A S Alam , 2009, 2010, 2011, 2012. +# A S Alam , 2009, 2010, 2011, 2012, 2013. msgid "" msgstr "" "Project-Id-Version: gtk+.HEAD\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" "%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-09-01 02:50+0000\n" -"PO-Revision-Date: 2012-09-02 10:19+0530\n" +"POT-Creation-Date: 2013-01-19 19:42+0000\n" +"PO-Revision-Date: 2013-02-22 08:48+0000\n" "Last-Translator: A S Alam \n" "Language-Team: Punjabi/Panjabi \n" "Language: pa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.4\n" +"X-Generator: Lokalize 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../gdk/gdk.c:155 @@ -455,21 +455,21 @@ msgid_plural "Opening %d Items" msgstr[0] "%d ਇਕਾਈ ਖੋਲ੍ਹੀ ਜਾ ਰਹੀ ਹੈ" msgstr[1] "%d ਇਕਾਈਆਂ ਖੋਲ੍ਹੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ" -#: ../gtk/a11y/gtkspinneraccessible.c:40 +#: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" msgstr "ਸਪਿੰਨਰ" -#: ../gtk/a11y/gtkspinneraccessible.c:41 +#: ../gtk/a11y/gtkspinneraccessible.c:40 msgid "Provides visual indication of progress" msgstr "ਤਰੱਕੀ ਲਈ ਦਿੱਖ ਇੰਡੀਕੇਟਰ ਦਿੰਦਾ ਹੈ" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:62 msgctxt "light switch widget" msgid "Switch" msgstr "ਬਦਲੋ" -#: ../gtk/a11y/gtkswitchaccessible.c:64 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgid "Switches between on and off states" msgstr "ਚਾਲੂ ਤੇ ਬੰਦ ਹਾਲਤ ਵਿੱਚ ਬਦਲੋ" @@ -682,27 +682,27 @@ msgid "Could not show link" msgstr "ਲਿੰਕ ਵੇਖਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" #: ../gtk/gtkaboutdialog.c:1017 -msgid "Homepage" -msgstr "ਮੁੱਖ ਪੇਜ਼" +msgid "Website" +msgstr "ਵੈੱਬਸਾਈਟ" #: ../gtk/gtkaboutdialog.c:1071 #, c-format msgid "About %s" msgstr "%s ਬਾਰੇ" -#: ../gtk/gtkaboutdialog.c:2399 +#: ../gtk/gtkaboutdialog.c:2398 msgid "Created by" msgstr "ਬਣਾਇਆ" -#: ../gtk/gtkaboutdialog.c:2402 +#: ../gtk/gtkaboutdialog.c:2401 msgid "Documented by" msgstr "ਦਸਤਾਵੇਜ਼ ਲਿਖੇ" -#: ../gtk/gtkaboutdialog.c:2412 +#: ../gtk/gtkaboutdialog.c:2411 msgid "Translated by" msgstr "ਅਨੁਵਾਦ ਕੀਤਾ" -#: ../gtk/gtkaboutdialog.c:2417 +#: ../gtk/gtkaboutdialog.c:2416 msgid "Artwork by" msgstr "ਕਲਾਕਾਰੀ" @@ -711,7 +711,7 @@ msgstr "ਕਲਾਕਾਰੀ" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:156 +#: ../gtk/gtkaccellabel.c:159 msgctxt "keyboard label" msgid "Shift" msgstr "ਸਿਫਟ" @@ -721,7 +721,7 @@ msgstr "ਸਿਫਟ" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:162 +#: ../gtk/gtkaccellabel.c:165 msgctxt "keyboard label" msgid "Ctrl" msgstr "ਕੰਟਰੋਲ" @@ -731,7 +731,7 @@ msgstr "ਕੰਟਰੋਲ" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:168 +#: ../gtk/gtkaccellabel.c:171 msgctxt "keyboard label" msgid "Alt" msgstr "ਆਲਟ" @@ -741,7 +741,7 @@ msgstr "ਆਲਟ" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:802 +#: ../gtk/gtkaccellabel.c:805 msgctxt "keyboard label" msgid "Super" msgstr "ਸੁਪਰ" @@ -751,7 +751,7 @@ msgstr "ਸੁਪਰ" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:815 +#: ../gtk/gtkaccellabel.c:818 msgctxt "keyboard label" msgid "Hyper" msgstr "ਹਾਈਪਰ" @@ -761,31 +761,31 @@ msgstr "ਹਾਈਪਰ" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:829 +#: ../gtk/gtkaccellabel.c:832 msgctxt "keyboard label" msgid "Meta" msgstr "ਮੇਟਾ" -#: ../gtk/gtkaccellabel.c:845 +#: ../gtk/gtkaccellabel.c:848 msgctxt "keyboard label" msgid "Space" msgstr "ਖਾਲੀ ਥਾਂ" -#: ../gtk/gtkaccellabel.c:848 +#: ../gtk/gtkaccellabel.c:851 msgctxt "keyboard label" msgid "Backslash" msgstr "ਪਿੱਛੇ ਡੰਡਾ" #: ../gtk/gtkappchooserbutton.c:290 -msgid "Other application..." -msgstr "...ਹੋਰ ਐਪਲੀਕੇਸ਼ਨ" +#| msgid "Other application..." +msgid "Other application…" +msgstr "…ਹੋਰ ਐਪਲੀਕੇਸ਼ਨ" #: ../gtk/gtkappchooserdialog.c:137 msgid "Failed to look for applications online" msgstr "ਆਨਲਾਈਨ ਐਪਲੀਕੇਸ਼ਨ ਲੱਭਣ ਲਈ ਫੇਲ੍ਹ ਹੈ" #: ../gtk/gtkappchooserdialog.c:188 -#| msgid "Find applications online" msgid "_Find applications online" msgstr "ਆਨਲਾਈਨ ਐਪਲੀਕੇਸ਼ਨ ਲੱਭੋ(_F)" @@ -808,7 +808,7 @@ msgstr "ਐਪਲੀਕੇਸ਼ਨ ਲੱਭੀ ਨਹੀਂ ਜਾ ਸਕੀ" msgid "Select an application to open \"%s\"" msgstr "\"%s\" ਖੋਲ੍ਹਣ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਚੁਣੋ ਜੀ" -#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:654 +#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:657 #, c-format msgid "No applications available to open \"%s\"" msgstr "\"%s\" ਖੋਲ੍ਹਣ ਲਈ ਕੋਈ ਵੀ ਐਪਲੀਕੇਸ਼ਨ ਨਹੀਂ ਹੈ" @@ -841,23 +841,23 @@ msgstr "ਸਬੰਧ ਭੁੱਲ ਜਾਓ" msgid "Show other applications" msgstr "ਹੋਰ ਐਪਲੀਕੇਸ਼ਨ ਵੇਖੋ" -#: ../gtk/gtkappchooserwidget.c:603 +#: ../gtk/gtkappchooserwidget.c:606 msgid "Default Application" msgstr "ਡਿਫਾਲਟ ਐਪਲੀਕੇਸ਼ਨ" -#: ../gtk/gtkappchooserwidget.c:741 +#: ../gtk/gtkappchooserwidget.c:744 msgid "Recommended Applications" msgstr "ਸਿਫਾਰਸ਼ੀ ਐਪਲੀਕੇਸ਼ਨ" -#: ../gtk/gtkappchooserwidget.c:756 +#: ../gtk/gtkappchooserwidget.c:759 msgid "Related Applications" msgstr "ਸਬੰਧਿਤ ਐਪਲੀਕੇਸ਼ਨ" -#: ../gtk/gtkappchooserwidget.c:770 +#: ../gtk/gtkappchooserwidget.c:773 msgid "Other Applications" msgstr "ਹੋਰ ਐਪਲੀਕੇਸ਼ਨ" -#: ../gtk/gtkapplication.c:1552 +#: ../gtk/gtkapplication.c:1557 #, c-format msgid "" "%s cannot quit at this time:\n" @@ -868,20 +868,20 @@ msgstr "" "\n" "%s" -#: ../gtk/gtkapplicationwindow.c:333 ../gtk/gtkprintoperation-unix.c:475 +#: ../gtk/gtkapplicationwindow.c:333 ../gtk/gtkprintoperation-unix.c:480 #: ../gtk/gtkprintoperation-win32.c:1445 msgid "Application" msgstr "ਐਪਲੀਕੇਸ਼ਨ" -#: ../gtk/gtkassistant.c:1004 +#: ../gtk/gtkassistant.c:1008 msgid "C_ontinue" msgstr "ਜਾਰੀ ਰੱਖੋ(_o)" -#: ../gtk/gtkassistant.c:1007 +#: ../gtk/gtkassistant.c:1011 msgid "Go _Back" msgstr "ਪਿੱਛੇ ਜਾਓ(_B)" -#: ../gtk/gtkassistant.c:1011 +#: ../gtk/gtkassistant.c:1015 msgid "_Finish" msgstr "ਮੁਕੰਮਲ(_F)" @@ -1020,9 +1020,10 @@ msgstr "ਅਢੁੱਕਵਾਂ" #. * an accelerator when the cell is clicked to change the #. * acelerator. #. -#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:745 -msgid "New accelerator..." -msgstr "ਨਵਾਂ ਪਰਵੇਸ਼ਕ..." +#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 +#| msgid "New accelerator..." +msgid "New accelerator…" +msgstr "…ਨਵਾਂ ਪਰਵੇਸ਼ਕ" #: ../gtk/gtkcellrendererprogress.c:372 ../gtk/gtkcellrendererprogress.c:462 #, c-format @@ -1323,8 +1324,9 @@ msgid "mm" msgstr "mm" #: ../gtk/gtkcustompaperunixdialog.c:605 -msgid "Margins from Printer..." -msgstr "ਪਰਿੰਟਰ ਤੋਂ ਹਾਸ਼ੀਆ..." +#| msgid "Margins from Printer..." +msgid "Margins from Printer…" +msgstr "…ਪਰਿੰਟਰ ਤੋਂ ਹਾਸ਼ੀਆ" #: ../gtk/gtkcustompaperunixdialog.c:771 #, c-format @@ -1363,15 +1365,15 @@ msgstr "ਸੱਜੇ(_R):" msgid "Paper Margins" msgstr "ਸਫ਼ਾ ਹਾਸ਼ੀਆ" -#: ../gtk/gtkentry.c:8832 ../gtk/gtktextview.c:8316 +#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8591 msgid "Input _Methods" msgstr "ਇੰਪੁੱਟ ਢੰਗ(_M)" -#: ../gtk/gtkentry.c:8846 ../gtk/gtktextview.c:8330 +#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8605 msgid "_Insert Unicode Control Character" msgstr "ਯੂਨੀਕੋਡ ਕੰਟਰੋਲ ਅੱਖਰ ਸ਼ਾਮਲ(_I)" -#: ../gtk/gtkentry.c:9799 +#: ../gtk/gtkentry.c:10094 msgid "Caps Lock is on" msgstr "ਕੈਪਸ ਤਾਲਾ ਚਾਲੂ ਹੈ" @@ -1420,7 +1422,7 @@ msgstr "ਕੈਪਸ ਤਾਲਾ ਚਾਲੂ ਹੈ" msgid "Select a File" msgstr "ਫਾਇਲ ਚੁਣੋ" -#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1817 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1820 msgid "Desktop" msgstr "ਡੈਸਕਟਾਪ" @@ -1429,30 +1431,31 @@ msgid "(None)" msgstr "(ਕੋਈ ਨਹੀਂ)" #: ../gtk/gtkfilechooserbutton.c:2046 -msgid "Other..." -msgstr "ਹੋਰ..." +#| msgid "Other..." +msgid "Other…" +msgstr "…ਹੋਰ" #: ../gtk/gtkfilechooserdefault.c:152 msgid "Type name of new folder" msgstr "ਨਵੇਂ ਫੋਲਡਰ ਦਾ ਨਾਂ ਲਿਖੋ" -#: ../gtk/gtkfilechooserdefault.c:968 +#: ../gtk/gtkfilechooserdefault.c:971 msgid "Could not retrieve information about the file" msgstr "ਫਾਇਲ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪਰਾਪਤ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ" -#: ../gtk/gtkfilechooserdefault.c:979 +#: ../gtk/gtkfilechooserdefault.c:982 msgid "Could not add a bookmark" msgstr "ਬੁੱਕਮਾਰਕ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ" -#: ../gtk/gtkfilechooserdefault.c:990 +#: ../gtk/gtkfilechooserdefault.c:993 msgid "Could not remove bookmark" msgstr "ਬੁੱਕਮਾਰਕ ਹਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" -#: ../gtk/gtkfilechooserdefault.c:1001 +#: ../gtk/gtkfilechooserdefault.c:1004 msgid "The folder could not be created" msgstr "ਫੋਲਡਰ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" -#: ../gtk/gtkfilechooserdefault.c:1014 +#: ../gtk/gtkfilechooserdefault.c:1017 msgid "" "The folder could not be created, as a file with the same name already " "exists. Try using a different name for the folder, or rename the file first." @@ -1461,16 +1464,16 @@ msgstr "" "ਵਰਤੋਂ ਜਾਂ " "ਫਾਇਲ ਦਾ ਨਾਂ ਪਹਿਲਾਂ ਬਦਲ ਦਿਓ।" -#: ../gtk/gtkfilechooserdefault.c:1028 +#: ../gtk/gtkfilechooserdefault.c:1031 msgid "You need to choose a valid filename." msgstr "ਤੁਹਾਨੂੰ ਢੁੱਕਵਾਂ ਫਾਇਲ-ਨਾਂ ਚੁਣਨਾ ਦੀ ਲੋੜ ਹੈ।" -#: ../gtk/gtkfilechooserdefault.c:1031 +#: ../gtk/gtkfilechooserdefault.c:1034 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "%s ਵਿੱਚ ਫਾਇਲ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ, ਕਿਉਂਕਿ ਇਹ ਫੋਲਡਰ ਨਹੀਂ ਹੈ" -#: ../gtk/gtkfilechooserdefault.c:1043 +#: ../gtk/gtkfilechooserdefault.c:1046 msgid "" "You may only select folders. The item that you selected is not a folder; " "try using a different item." @@ -1479,11 +1482,11 @@ msgstr "" "ਨਹੀਂ ਹੈ; ਵੱਖਰੀ " "ਆਈਟਮ ਦੀ ਚੋਣ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" -#: ../gtk/gtkfilechooserdefault.c:1053 +#: ../gtk/gtkfilechooserdefault.c:1056 msgid "Invalid file name" msgstr "ਗਲਤ ਫਾਇਲ ਨਾਂ" -#: ../gtk/gtkfilechooserdefault.c:1063 +#: ../gtk/gtkfilechooserdefault.c:1066 msgid "The folder contents could not be displayed" msgstr "ਫੋਲਡਰ ਦੀ ਸਮੱਗਰੀ ਵੇਖਾਈ ਨਹੀਂ ਜਾ ਸਕੀ" @@ -1491,195 +1494,196 @@ msgstr "ਫੋਲਡਰ ਦੀ ਸਮੱਗਰੀ ਵੇਖਾਈ ਨਹੀਂ #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1589 +#: ../gtk/gtkfilechooserdefault.c:1592 #, c-format msgid "%1$s on %2$s" msgstr "%2$s ਉੱਤੇ %1$s" -#: ../gtk/gtkfilechooserdefault.c:1738 +#: ../gtk/gtkfilechooserdefault.c:1741 msgid "Search" msgstr "ਖੋਜ" -#: ../gtk/gtkfilechooserdefault.c:1762 ../gtk/gtkfilechooserdefault.c:4988 +#: ../gtk/gtkfilechooserdefault.c:1765 ../gtk/gtkfilechooserdefault.c:4991 msgid "Recently Used" msgstr "ਤਾਜ਼ਾ ਵਰਤੇ" -#: ../gtk/gtkfilechooserdefault.c:2361 +#: ../gtk/gtkfilechooserdefault.c:2364 msgid "Select which types of files are shown" msgstr "ਚੁਣੋ ਕਿ ਕਿਸ ਕਿਸਮ ਦੀਆਂ ਫਾਇਲਾਂ ਵੇਖਾਈਆਂ ਜਾਣ" -#: ../gtk/gtkfilechooserdefault.c:2720 +#: ../gtk/gtkfilechooserdefault.c:2723 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "ਫੋਲਡਰ '%s' ਨੂੰ ਬੁੱਕਮਾਰਕ ਵਿੱਚ ਸ਼ਾਮਲ" -#: ../gtk/gtkfilechooserdefault.c:2764 +#: ../gtk/gtkfilechooserdefault.c:2767 #, c-format msgid "Add the current folder to the bookmarks" msgstr "ਮੌਜੂਦਾ ਫੋਲਡਰ ਨੂੰ ਬੁੱਕਮਾਰਕ ਵਿੱਚ ਸ਼ਾਮਲ" -#: ../gtk/gtkfilechooserdefault.c:2766 +#: ../gtk/gtkfilechooserdefault.c:2769 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "ਚੁਣੇ ਫੋਲਡਰਾਂ ਨੂੰ ਬੁੱਕਮਾਰਕ ਵਿੱਚ ਸ਼ਾਮਲ" -#: ../gtk/gtkfilechooserdefault.c:2804 +#: ../gtk/gtkfilechooserdefault.c:2807 #, c-format msgid "Remove the bookmark '%s'" msgstr "ਬੁੱਕਮਾਰਕ '%s' ਹਟਾਓ" -#: ../gtk/gtkfilechooserdefault.c:2806 +#: ../gtk/gtkfilechooserdefault.c:2809 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "ਬੁੱਕਮਾਰਕ '%s' ਹਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ" -#: ../gtk/gtkfilechooserdefault.c:2813 ../gtk/gtkfilechooserdefault.c:3699 +#: ../gtk/gtkfilechooserdefault.c:2816 ../gtk/gtkfilechooserdefault.c:3702 msgid "Remove the selected bookmark" msgstr "ਚੁਣੇ ਬੁੱਕਮਾਰਕ ਹਟਾਓ" -#: ../gtk/gtkfilechooserdefault.c:3377 +#: ../gtk/gtkfilechooserdefault.c:3380 msgid "Remove" msgstr "ਹਟਾਓ" -#: ../gtk/gtkfilechooserdefault.c:3386 -msgid "Rename..." -msgstr "...ਨਾਂ-ਬਦਲੋ" +#: ../gtk/gtkfilechooserdefault.c:3389 +#| msgid "_Rename" +msgid "Rename…" +msgstr "…ਨਾਂ-ਬਦਲੋ" #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3550 +#: ../gtk/gtkfilechooserdefault.c:3553 msgid "Places" msgstr "ਥਾਵਾਂ" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3607 +#: ../gtk/gtkfilechooserdefault.c:3610 msgid "_Places" msgstr "ਥਾਵਾਂ(_P)" -#: ../gtk/gtkfilechooserdefault.c:3687 +#: ../gtk/gtkfilechooserdefault.c:3690 msgid "Add the selected folder to the Bookmarks" msgstr "ਚੁਣਿਆ ਫੋਲਡਰ ਬੁੱਕਮਾਰਕ ਵਿੱਚ ਸ਼ਾਮਲ" -#: ../gtk/gtkfilechooserdefault.c:3948 +#: ../gtk/gtkfilechooserdefault.c:3951 msgid "Could not select file" msgstr "ਫਾਇਲ ਚੁਣੀ ਨਹੀਂ ਜਾ ਸਕੀ" -#: ../gtk/gtkfilechooserdefault.c:4173 +#: ../gtk/gtkfilechooserdefault.c:4176 msgid "_Visit this file" msgstr "ਇਹ ਫਾਇਲ ਵੇਖੋ(_V)" -#: ../gtk/gtkfilechooserdefault.c:4176 +#: ../gtk/gtkfilechooserdefault.c:4179 msgid "_Copy file’s location" msgstr "ਫਾਇਲ ਦਾ ਟਿਕਾਣਾ ਕਾਪੀ ਕਰੋ(_C)" -#: ../gtk/gtkfilechooserdefault.c:4179 +#: ../gtk/gtkfilechooserdefault.c:4182 msgid "_Add to Bookmarks" msgstr "ਬੁੱਕਮਾਰਕ ਸ਼ਾਮਲ(_A)" -#: ../gtk/gtkfilechooserdefault.c:4186 +#: ../gtk/gtkfilechooserdefault.c:4189 msgid "Show _Hidden Files" msgstr "ਲੁਕਵੀਆਂ ਫਾਇਲਾਂ ਵੇਖੋ(_H)" -#: ../gtk/gtkfilechooserdefault.c:4189 +#: ../gtk/gtkfilechooserdefault.c:4192 msgid "Show _Size Column" msgstr "ਅਕਾਰ ਕਾਲਮ ਵੇਖੋ(_S)" -#: ../gtk/gtkfilechooserdefault.c:4414 +#: ../gtk/gtkfilechooserdefault.c:4417 msgid "Files" msgstr "ਫਾਇਲਾਂ" -#: ../gtk/gtkfilechooserdefault.c:4465 +#: ../gtk/gtkfilechooserdefault.c:4468 msgid "Name" msgstr "ਨਾਂ" -#: ../gtk/gtkfilechooserdefault.c:4488 +#: ../gtk/gtkfilechooserdefault.c:4491 msgid "Size" msgstr "ਅਕਾਰ" -#: ../gtk/gtkfilechooserdefault.c:4502 +#: ../gtk/gtkfilechooserdefault.c:4505 msgid "Modified" msgstr "ਸੋਧੀਆਂ" #. Label -#: ../gtk/gtkfilechooserdefault.c:4595 +#: ../gtk/gtkfilechooserdefault.c:4598 msgid "_Name:" msgstr "ਨਾਂ(_N):" -#: ../gtk/gtkfilechooserdefault.c:4826 +#: ../gtk/gtkfilechooserdefault.c:4829 msgid "Type a file name" -msgstr "ਇੱਕ ਫਾਇਲ ਨਾਂ ਦਿਓ" +msgstr "ਫਾਇਲ ਨਾਂ ਦਿਓ" -#: ../gtk/gtkfilechooserdefault.c:4873 ../gtk/gtkfilechooserdefault.c:4884 +#: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887 msgid "Please select a folder below" msgstr "ਹੇਠਾਂ ਤੋਂ ਫੋਲਡਰ ਚੁਣੋ ਜੀ" -#: ../gtk/gtkfilechooserdefault.c:4879 +#: ../gtk/gtkfilechooserdefault.c:4882 msgid "Please type a file name" msgstr "ਫਾਇਲ ਨਾਂ ਲਿਖੋ ਜੀ" #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4950 +#: ../gtk/gtkfilechooserdefault.c:4953 msgid "Create Fo_lder" msgstr "ਫੋਲਡਰ ਬਣਾਓ(_l)" -#: ../gtk/gtkfilechooserdefault.c:4998 +#: ../gtk/gtkfilechooserdefault.c:5001 msgid "Search:" msgstr "ਖੋਜ:" -#: ../gtk/gtkfilechooserdefault.c:5049 +#: ../gtk/gtkfilechooserdefault.c:5052 msgid "_Location:" msgstr "ਟਿਕਾਣਾ(_L):" -#: ../gtk/gtkfilechooserdefault.c:5500 +#: ../gtk/gtkfilechooserdefault.c:5502 msgid "Save in _folder:" msgstr "ਫੋਲਡਰ ਵਿੱਚ ਸੰਭਾਲੋ(_f):" -#: ../gtk/gtkfilechooserdefault.c:5502 +#: ../gtk/gtkfilechooserdefault.c:5504 msgid "Create in _folder:" msgstr "ਫੋਲਡਰ ਵਿੱਚ ਬਣਾਓ(_f):" -#: ../gtk/gtkfilechooserdefault.c:6589 +#: ../gtk/gtkfilechooserdefault.c:6597 #, c-format msgid "Could not read the contents of %s" msgstr "%s ਦੀ ਸਮੱਗਰੀ ਪੜ੍ਹੀ ਨਹੀਂ ਜਾ ਸਕੀ" -#: ../gtk/gtkfilechooserdefault.c:6593 +#: ../gtk/gtkfilechooserdefault.c:6601 msgid "Could not read the contents of the folder" msgstr "ਫੋਲਡਰ ਦੀ ਸਮੱਗਰੀ ਪੜ੍ਹੀ ਨਹੀਂ ਜਾ ਸਕੀ" -#: ../gtk/gtkfilechooserdefault.c:6686 ../gtk/gtkfilechooserdefault.c:6754 -#: ../gtk/gtkfilechooserdefault.c:6934 +#: ../gtk/gtkfilechooserdefault.c:6694 ../gtk/gtkfilechooserdefault.c:6762 +#: ../gtk/gtkfilechooserdefault.c:6942 msgid "Unknown" msgstr "ਅਣਜਾਣ" -#: ../gtk/gtkfilechooserdefault.c:6701 +#: ../gtk/gtkfilechooserdefault.c:6709 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6703 +#: ../gtk/gtkfilechooserdefault.c:6711 msgid "Yesterday at %H:%M" msgstr "%H:%M ਵਜੇ ਕੱਲ੍ਹ" -#: ../gtk/gtkfilechooserdefault.c:7405 +#: ../gtk/gtkfilechooserdefault.c:7413 msgid "Cannot change to folder because it is not local" msgstr "ਫੋਲਡਰ ਨੂੰ ਬਦਲਿਆ ਨਹੀਂ ਕਰ ਸਕਿਆ, ਕਿਉਂਕਿ ਇਹ ਲੋਕਲ ਨਹੀਂ ਹੈ" -#: ../gtk/gtkfilechooserdefault.c:8009 ../gtk/gtkfilechooserdefault.c:8030 +#: ../gtk/gtkfilechooserdefault.c:8020 ../gtk/gtkfilechooserdefault.c:8041 #, c-format msgid "Shortcut %s already exists" msgstr "ਸ਼ਾਰਟਕੱਟ %s ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ" -#: ../gtk/gtkfilechooserdefault.c:8120 +#: ../gtk/gtkfilechooserdefault.c:8131 #, c-format msgid "Shortcut %s does not exist" msgstr "ਸ਼ਾਰਟਕੱਟ %s ਮੌਜੂਦ ਨਹੀਂ ਹੈ" -#: ../gtk/gtkfilechooserdefault.c:8366 ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8377 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "" "ਇੱਕ ਫਾਇਲ ਨਾਂ \"%s\" ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ। ਕੀ ਤੁਸੀਂ ਇਸ ਨੂੰ ਬਦਲਣਾ ਚਾਹੁੰਦੇ ਹੋ?" -#: ../gtk/gtkfilechooserdefault.c:8369 ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8380 ../gtk/gtkprintunixdialog.c:552 #, c-format msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." @@ -1687,26 +1691,26 @@ msgstr "" "ਫਾਇਲ ਪਹਿਲਾਂ ਹੀ \"%s\" ਵਿੱਚ ਮੌਜੂਦ ਹੈ। ਇਸ ਨੂੰ ਇਸ ਦੇ ਸਭ ਭਾਗਾਂ ਸਮੇਤ ਬਦਲਿਆ ਕੀਤਾ ਜਾ " "ਰਿਹਾ ਹੈ।" -#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "ਬਦਲੋ(_R)" -#: ../gtk/gtkfilechooserdefault.c:9181 +#: ../gtk/gtkfilechooserdefault.c:9192 msgid "Could not start the search process" msgstr "ਖੋਜ ਕਾਰਵਾਈ ਨੂੰ ਸ਼ੁਰੂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ" -#: ../gtk/gtkfilechooserdefault.c:9182 +#: ../gtk/gtkfilechooserdefault.c:9193 msgid "" "The program was not able to create a connection to the indexer daemon. " "Please make sure it is running." msgstr "" "ਪਰੋਗਰਾਮ ਤਤਕਰਾ ਡੈਮਨ ਨਾਲ ਕੁਨੈਕਸ਼ਨ ਬਣਾਉਣ ਲਈ ਅਸਫ਼ਲ ਹੈ। ਜਾਂਚ ਲਵੋ ਕਿ ਇਹ ਚੱਲ ਰਹੀ ਹੈ।" -#: ../gtk/gtkfilechooserdefault.c:9196 +#: ../gtk/gtkfilechooserdefault.c:9207 msgid "Could not send the search request" msgstr "ਖੋਜ ਮੰਗ ਭੇਜੀ ਨਹੀਂ ਜਾ ਸਕੀ" -#: ../gtk/gtkfilechooserdefault.c:9806 +#: ../gtk/gtkfilechooserdefault.c:9817 #, c-format msgid "Could not mount %s" msgstr "%s ਮਾਊਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ" @@ -1746,12 +1750,12 @@ msgstr "ਫੋਂਟ ਨਾਂ ਲੱਭੋ" msgid "Font Family" msgstr "ਫੋਂਟ ਵਰਗ" -#: ../gtk/gtkicontheme.c:1627 +#: ../gtk/gtkicontheme.c:1931 #, c-format msgid "Icon '%s' not present in theme" msgstr "ਥੀਮ ਵਿੱਚ ਆਈਕਾਨ '%s' ਮੌਜੂਦ ਨਹੀਂ ਹੈ" -#: ../gtk/gtkicontheme.c:3137 +#: ../gtk/gtkicontheme.c:3462 msgid "Failed to load icon" msgstr "ਆਈਕਾਨ ਲੋਡ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ" @@ -1776,22 +1780,23 @@ msgid "System (%s)" msgstr "ਸਿਸਟਮ (%s)" #. Open Link -#: ../gtk/gtklabel.c:6224 +#: ../gtk/gtklabel.c:6139 msgid "_Open Link" msgstr "ਲਿੰਕ ਖੋਲ੍ਹੋ(_O)" #. Copy Link Address -#: ../gtk/gtklabel.c:6236 +#: ../gtk/gtklabel.c:6151 msgid "Copy _Link Address" msgstr "ਲਿੰਕ ਐਡਰੈੱਸ ਕਾਪੀ ਕਰੋ(_L)" -#: ../gtk/gtk-launch.c:69 -msgid "APPLICATION [URI...] - launch an APPLICATION with URI." -msgstr "APPLICATION [URI...] - URI ਨਾਲ ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਓ" +#: ../gtk/gtk-launch.c:71 +#| msgid "APPLICATION [URI...] - launch an APPLICATION with URI." +msgid "APPLICATION [URI…] — launch an APPLICATION with URI." +msgstr "APPLICATION [URI...] —URI ਨਾਲ ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਓ" #. Translators: this message will appear after the usage string #. and before the list of options. -#: ../gtk/gtk-launch.c:73 +#: ../gtk/gtk-launch.c:75 msgid "" "Launch specified application by its desktop file info\n" "optionally passing list of URIs as arguments." @@ -1799,38 +1804,39 @@ msgstr "" "ਚੋਣਵੇਂ ਰੂਪ ਵਿੱਚ URI ਦੀ ਸੂਚੀ ਨੂੰ ਆਰਗੂਮੈਂਟ ਵਜੋਂ ਦੇ ਕੇ\n" "ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਡੈਸਕਟਾਪ ਫਾਇਲ ਜਾਣਕਾਰੀ ਨਾਲ ਇਸ ਨੂੰ ਚਲਾਉ।" -#: ../gtk/gtk-launch.c:85 +#: ../gtk/gtk-launch.c:87 #, c-format -#| msgid "Error loading icon: %s" msgid "Error parsing commandline options: %s\n" msgstr "ਕਮਾਂਡਲਾਈਨ ਚੋਣ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s\n" -#: ../gtk/gtk-launch.c:87 ../gtk/gtk-launch.c:100 +#: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102 #, c-format msgid "Try \"%s --help\" for more information." msgstr "ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ \"%s --help\" ਵਰਤੋਂ" #. Translators: the %s is the program name. This error message #. means the user is calling gtk-launch without any argument. -#: ../gtk/gtk-launch.c:98 +#: ../gtk/gtk-launch.c:100 #, c-format -#| msgid "Find applications online" msgid "%s: missing application name" msgstr "%s: ਨਾ-ਮੌਜੂਦਾ ਐਪਲੀਕੇਸ਼ਨ ਨਾਂ" +#: ../gtk/gtk-launch.c:121 +#, c-format +msgid "Creating AppInfo from id not supported on non unix operating systems" +msgstr "ਗੈਰ ਯੂਨੈਕਸ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ ਉੱਤੇ ਆਈਡੀ ਤੋਂ AppInfo ਬਣਾਉਣਾ ਸਹਾਇਕ ਨਹੀਂ" + #. Translators: the first %s is the program name, the second one #. is the application name. -#: ../gtk/gtk-launch.c:122 +#: ../gtk/gtk-launch.c:129 #, c-format -#| msgid "Could not run application" msgid "%s: no such application %s" msgstr "%s: ਕੋਈ %sਐਪਲੀਕੇਸ਼ਨ ਨਹੀਂ ਹੈ" #. Translators: the first %s is the program name, the second one #. is the error message. -#: ../gtk/gtk-launch.c:140 +#: ../gtk/gtk-launch.c:147 #, c-format -#| msgid "Error loading icon: %s" msgid "%s: error launching application: %s\n" msgstr "%s: ਐਪਲੀਕੇਸ਼ਨ ਲਾਂਚ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s\n" @@ -1904,78 +1910,73 @@ msgstr "ਅਣ-ਸੈੱਟ ਕਰਨ ਲਈ GTK+ ਡੀਬੱਗਿੰਗ ਨ #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: ../gtk/gtkmain.c:706 +#: ../gtk/gtkmain.c:703 msgid "default:LTR" msgstr "default:LTR" -#: ../gtk/gtkmain.c:774 +#: ../gtk/gtkmain.c:768 #, c-format msgid "Cannot open display: %s" msgstr "ਦਿੱਖ ਖੋਲ੍ਹੀ ਨਹੀਂ ਜਾ ਸਕੀ: %s" -#: ../gtk/gtkmain.c:840 +#: ../gtk/gtkmain.c:834 msgid "GTK+ Options" msgstr "GTK+ ਚੋਣ" -#: ../gtk/gtkmain.c:840 +#: ../gtk/gtkmain.c:834 msgid "Show GTK+ Options" msgstr "GTK+ ਚੋਣ ਵੇਖੋ" -#: ../gtk/gtkmountoperation.c:532 +#: ../gtk/gtkmountoperation.c:535 msgid "Co_nnect" msgstr "ਕੁਨੈਕਟ ਕਰੋ(_n)" -#: ../gtk/gtkmountoperation.c:606 -#| msgid "Co_nnect" +#: ../gtk/gtkmountoperation.c:609 msgid "Connect As" msgstr "ਇਸ ਵਜੋਂ ਕੁਨੈਕਟ" -#: ../gtk/gtkmountoperation.c:615 -#| msgid "Connect _anonymously" +#: ../gtk/gtkmountoperation.c:618 msgid "_Anonymous" msgstr "ਅਗਿਆਤ(_A)" -#: ../gtk/gtkmountoperation.c:624 +#: ../gtk/gtkmountoperation.c:627 msgid "Registered U_ser" msgstr "ਰਜਿਸਟਰ ਹੋਏ ਯੂਜ਼ਰ(_s)" -#: ../gtk/gtkmountoperation.c:635 -#| msgid "_Username:" +#: ../gtk/gtkmountoperation.c:638 msgid "_Username" msgstr "ਯੂਜ਼ਰ ਨਾਂ(_U)" -#: ../gtk/gtkmountoperation.c:640 -#| msgid "_Domain:" +#: ../gtk/gtkmountoperation.c:643 msgid "_Domain" msgstr "ਡੋਮੇਨ(_D)" -#: ../gtk/gtkmountoperation.c:646 -#| msgid "_Password:" +#: ../gtk/gtkmountoperation.c:649 msgid "_Password" msgstr "ਪਾਸਵਰਡ(_P)" -#: ../gtk/gtkmountoperation.c:668 +#: ../gtk/gtkmountoperation.c:671 msgid "Forget password _immediately" msgstr "ਪਾਸਵਰਡ ਤੁਰੰਤ ਭੁੱਲ ਜਾਓ(_i)" -#: ../gtk/gtkmountoperation.c:678 +#: ../gtk/gtkmountoperation.c:681 msgid "Remember password until you _logout" msgstr "ਜਦੋਂ ਤੱਕ ਲਾਗਆਉਟ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਪਾਸਵਰਡ ਯਾਦ ਰੱਖੋ(_l)" -#: ../gtk/gtkmountoperation.c:688 +#: ../gtk/gtkmountoperation.c:691 msgid "Remember _forever" msgstr "ਹਮੇਸ਼ਾਂ ਯਾਦ ਰੱਖੋ(_f)" -#: ../gtk/gtkmountoperation.c:1077 +#: ../gtk/gtkmountoperation.c:1080 #, c-format msgid "Unknown Application (PID %d)" msgstr "ਅਣਜਾਣ ਐਪਲੀਕੇਸ਼ਨ (PID %d)" -#: ../gtk/gtkmountoperation.c:1260 +#: ../gtk/gtkmountoperation.c:1263 msgid "Unable to end process" msgstr "ਪਰੋਸੈਸ ਖਤਮ ਕਰਨ ਲਈ ਅਸਮਰੱਥ" -#: ../gtk/gtkmountoperation.c:1297 +#: ../gtk/gtkmountoperation.c:1300 msgid "_End Process" msgstr "ਪਰੋਸੈਸ ਖਤਮ(_E)" @@ -2010,7 +2011,7 @@ msgstr "Z ਸ਼ੈੱਲ" msgid "Cannot end process with PID %d: %s" msgstr "PID %d ਨਾਲ ਪਰੋਸੈਸ ਖਤਮ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ: %s" -#: ../gtk/gtknotebook.c:5051 ../gtk/gtknotebook.c:7705 +#: ../gtk/gtknotebook.c:5069 ../gtk/gtknotebook.c:7723 #, c-format msgid "Page %u" msgstr "ਸਫ਼ਾ %u" @@ -2018,14 +2019,14 @@ msgstr "ਸਫ਼ਾ %u" #. Translators: the format here is used to build the string that will be rendered #. * in the number emblem. #. -#: ../gtk/gtknumerableicon.c:481 +#: ../gtk/gtknumerableicon.c:482 #, c-format msgctxt "Number format" msgid "%d" msgstr "%d" -#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:846 -#: ../gtk/gtkpapersize.c:886 +#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:848 +#: ../gtk/gtkpapersize.c:888 msgid "Not a valid page setup file" msgstr "ਇੱਕ ਠੀਕ ਸਫ਼ਾ ਸੈੱਟਅੱਪ ਫਾਇਲ ਨਹੀਂ" @@ -2053,8 +2054,9 @@ msgstr "" " ਹੇਠਾਂ: %s %s" #: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 -msgid "Manage Custom Sizes..." -msgstr "...ਪਸੰਦੀਦਾ ਅਕਾਰ ਪਰਬੰਧ" +#| msgid "Manage Custom Sizes" +msgid "Manage Custom Sizes…" +msgstr "…ਕਸਟਮ ਅਕਾਰ ਪਰਬੰਧ" #: ../gtk/gtkpagesetupunixdialog.c:896 msgid "_Format for:" @@ -2084,12 +2086,11 @@ msgstr "ਹੇਠਾਂ ਮਾਰਗ" msgid "File System Root" msgstr "ਫਾਇਲ ਸਿਸਟਮ ਰੂਟ" -#: ../gtk/gtkprintbackend.c:748 +#: ../gtk/gtkprintbackend.c:750 msgid "Authentication" msgstr "ਪਰਮਾਣਕਿਤਾ" #: ../gtk/gtkprinteroptionwidget.c:546 -#| msgid "Select a File" msgid "Select a filename" msgstr "ਫਾਇਲ-ਨਾਂ ਚੁਣੋ" @@ -2151,29 +2152,29 @@ msgctxt "print operation status" msgid "Finished with error" msgstr "ਗਲਤੀ ਨਾਲ ਪੂਰਾ ਹੋਇਆ" -#: ../gtk/gtkprintoperation.c:2352 +#: ../gtk/gtkprintoperation.c:2349 #, c-format msgid "Preparing %d" msgstr "%d ਲਈ ਤਿਆਰੀ" -#: ../gtk/gtkprintoperation.c:2354 ../gtk/gtkprintoperation.c:2984 +#: ../gtk/gtkprintoperation.c:2351 ../gtk/gtkprintoperation.c:2983 msgid "Preparing" msgstr "ਤਿਆਰੀ" -#: ../gtk/gtkprintoperation.c:2357 +#: ../gtk/gtkprintoperation.c:2354 #, c-format msgid "Printing %d" msgstr "%d ਪਰਿੰਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" -#: ../gtk/gtkprintoperation.c:3014 +#: ../gtk/gtkprintoperation.c:3013 msgid "Error creating print preview" msgstr "ਪਰਿੰਟ ਝਲਕ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ" -#: ../gtk/gtkprintoperation.c:3017 +#: ../gtk/gtkprintoperation.c:3016 msgid "The most probable reason is that a temporary file could not be created." msgstr "ਸਭ ਤੋਂ ਵੱਧ ਸੰਭਵਾਨਾ ਹੈ ਕਿ ਆਰਜ਼ੀ ਫਾਇਲ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕੀ।" -#: ../gtk/gtkprintoperation-unix.c:302 +#: ../gtk/gtkprintoperation-unix.c:307 msgid "Error launching preview" msgstr "ਝਲਕ ਵੇਖਾਉਣ ਦੌਰਾਨ ਗਲਤੀ" @@ -2237,8 +2238,9 @@ msgid "Getting printer information failed" msgstr "ਪਰਿੰਟਰ ਲਈ ਜਾਣਕਾਰੀ ਲੈਣ ਲਈ ਫੇਲ੍ਹ" #: ../gtk/gtkprintunixdialog.c:1916 -msgid "Getting printer information..." -msgstr "...ਪਰਿੰਟਰ ਜਾਣਕਾਰੀ ਲਈ ਜਾ ਰਹੀ ਹੈ" +#| msgid "Getting printer information..." +msgid "Getting printer information…" +msgstr "…ਪਰਿੰਟਰ ਜਾਣਕਾਰੀ ਲਈ ਜਾ ਰਹੀ ਹੈ" #: ../gtk/gtkprintunixdialog.c:2184 msgid "Printer" @@ -2314,42 +2316,42 @@ msgstr "ਆਮ" #. * multiple pages on a sheet when printing #. #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, top to bottom" msgstr "ਖੱਬੇ ਤੋਂ ਸੱਜੇ, ਉੱਤੇ ਤੋਂ ਤਲ" #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, bottom to top" msgstr "ਖੱਬੇ ਤੋਂ ਸੱਜੇ, ਤਲ ਤੋਂ ਉੱਤੇ" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, top to bottom" msgstr "ਸੱਜੇ ਤੋਂ ਖੱਬੇ, ਉੱਤੇ ਤੋਂ ਤਲ" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, bottom to top" msgstr "ਸੱਜੇ ਤੋਂ ਖੱਬੇ, ਤਲ ਤੋਂ ਉੱਤੇ" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, left to right" msgstr "ਉੱਤੇ ਤੋਂ ਹੇਠਾਂ, ਖੱਬੇ ਤੋਂ ਸੱਜੇ" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, right to left" msgstr "ਉੱਤੇ ਤੋਂ ਹੇਠਾਂ, ਖੱਬੇ ਤੋਂ ਸੱਜੇ" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, left to right" msgstr "ਤਲ ਤੋਂ ਉੱਤੇ, ਖੱਬੇ ਤੋਂ ਸੱਜੇ" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, right to left" msgstr "ਤਲ ਤੋਂ ਉੱਤੇ, ਸੱਜੇ ਤੋਂ ਖੱਬੇ" @@ -2357,7 +2359,7 @@ msgstr "ਤਲ ਤੋਂ ਉੱਤੇ, ਸੱਜੇ ਤੋਂ ਖੱਬੇ" #. * dialog that controls in what order multiple pages are arranged #. #: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3766 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772 msgid "Page Ordering" msgstr "ਸਫ਼ਾ ਕ੍ਰਮ" @@ -2559,36 +2561,36 @@ msgstr "ਛਾਪੋ" msgid "Select which type of documents are shown" msgstr "ਚੋਣ ਕਰੋ ਕਿ ਕਿਸ ਕਿਸਮ ਦੇ ਦਸਤਾਵੇਜ਼ ਵਿਖਾਏ ਜਾਣ" -#: ../gtk/gtkrecentchooserdefault.c:1130 ../gtk/gtkrecentchooserdefault.c:1167 +#: ../gtk/gtkrecentchooserdefault.c:1129 ../gtk/gtkrecentchooserdefault.c:1166 #, c-format msgid "No item for URI '%s' found" msgstr "URI '%s' ਲਈ ਕੋਈ ਇਕਾਈ ਨਹੀਂ ਲੱਭੀ" -#: ../gtk/gtkrecentchooserdefault.c:1294 +#: ../gtk/gtkrecentchooserdefault.c:1293 msgid "Untitled filter" msgstr "ਅਣ-ਟਾਇਟਲ ਫਿਲਟਰ" -#: ../gtk/gtkrecentchooserdefault.c:1647 +#: ../gtk/gtkrecentchooserdefault.c:1646 msgid "Could not remove item" msgstr "ਇਕਾਈ ਨੂੰ ਹਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" -#: ../gtk/gtkrecentchooserdefault.c:1691 +#: ../gtk/gtkrecentchooserdefault.c:1690 msgid "Could not clear list" msgstr "ਲਿਸਟ ਸਾਫ਼ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ" -#: ../gtk/gtkrecentchooserdefault.c:1775 +#: ../gtk/gtkrecentchooserdefault.c:1774 msgid "Copy _Location" msgstr "ਟਿਕਾਣਾ ਕਾਪੀ ਕਰੋ(_L)" -#: ../gtk/gtkrecentchooserdefault.c:1788 +#: ../gtk/gtkrecentchooserdefault.c:1787 msgid "_Remove From List" msgstr "ਲਿਸਟ ਤੋਂ ਹਟਾਓ(_R)" -#: ../gtk/gtkrecentchooserdefault.c:1797 +#: ../gtk/gtkrecentchooserdefault.c:1796 msgid "_Clear List" msgstr "ਲਿਸਟ ਸਾਫ਼ ਕਰੋ(_C)" -#: ../gtk/gtkrecentchooserdefault.c:1811 +#: ../gtk/gtkrecentchooserdefault.c:1810 msgid "Show _Private Resources" msgstr "ਪ੍ਰਾਈਵੇਟ ਸਰੋਤ ਵੇਖੋ(_P)" @@ -3161,7 +3163,7 @@ msgstr "ਜ਼ੂਮ ਆਉਟ(_O)" #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for #. * the state #. -#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:586 +#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:583 msgctxt "switch" msgid "ON" msgstr "ਚਾਲੂ" @@ -3169,7 +3171,7 @@ msgstr "ਚਾਲੂ" #. Translators: if the "off" state label requires more than three #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state #. -#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:615 +#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:598 msgctxt "switch" msgid "OFF" msgstr "ਬੰਦ" @@ -3339,7 +3341,7 @@ msgstr "ਲਾਈਨ %2$d ਅੱਖਰ %3$d ਉੱਤੇ ਬੇ-ਲੋੜੀਦ msgid "Unexpected character data on line %d char %d" msgstr "ਲਾਈਨ %d ਅੱਖਰ %d ਉੱਤੇ ਬੇ-ਲੋੜੀਦਾ ਅੱਖਰ ਡਾਟਾ" -#: ../gtk/gtkuimanager.c:2738 +#: ../gtk/gtkuimanager.c:2694 msgid "Empty" msgstr "ਖਾਲੀ" @@ -4519,169 +4521,169 @@ msgstr "ਵਿਰਾਮ, ਜੌਬ ਰੱਦ ਕੀਤੀਆਂ ਜਾ ਰਹੀ msgid "Rejecting Jobs" msgstr "ਜੌਬ ਰੱਦ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2909 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2915 msgid "Two Sided" msgstr "ਦੋ ਪਾਸੀਂ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2910 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2916 msgid "Paper Type" msgstr "ਪੇਪਰ ਕਿਸਮ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2911 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2917 msgid "Paper Source" msgstr "ਪੇਪਰ ਸੋਰਸ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2912 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2918 msgid "Output Tray" msgstr "ਆਉਟਪੁੱਟ ਟਰੇ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2913 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2919 msgid "Resolution" msgstr "ਹੱਲ਼" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2914 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2920 msgid "GhostScript pre-filtering" msgstr "ਗੋਸਟ-ਸਕ੍ਰਿਪਟ ਪ੍ਰੀਫਿਲਟਰਿੰਗ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2923 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 msgid "One Sided" msgstr "ਇੱਕ ਪਾਸੇ" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2925 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 msgid "Long Edge (Standard)" msgstr "ਲੰਮਾ ਕੋਨਾ (ਸਟੈਂਡਰਡ)" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2927 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 msgid "Short Edge (Flip)" msgstr "ਛੋਟਾ ਕੋਨਾ (ਫਲਿੱਪ)" #. Translators: this is an option of "Paper Source" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 msgid "Auto Select" msgstr "ਆਟੋ ਚੋਣ" #. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Resolution" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2941 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3429 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3435 msgid "Printer Default" msgstr "ਪਰਿੰਟਰ ਮੂਲ" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 msgid "Embed GhostScript fonts only" msgstr "ਇੰਬੈੱਡ ਕੀਤੇ ਗੋਸਟਸਕ੍ਰਿਪਟ ਫੋਂਟ ਹੀ" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2951 msgid "Convert to PS level 1" msgstr "PS ਲੈਵਲ ੧ ਲਈ ਬਦਲੋ" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2953 msgid "Convert to PS level 2" msgstr "PS ਲੈਵਲ ੨ ਲਈ ਬਦਲੋ" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2955 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/cups/gtkprintbackendcups.c:2958 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2964 msgid "Miscellaneous" msgstr "ਫੁਟਕਲ" #. Translators: These strings name the possible values of the #. * job priority option in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Urgent" msgstr "ਜ਼ਰੂਰੀ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "High" msgstr "ਉੱਚ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Medium" msgstr "ਮੱਧਮ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Low" msgstr "ਘੱਟ" #. Translators, this string is used to label the job priority option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3711 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3717 msgid "Job Priority" msgstr "ਕੰਮ ਤਰਜੀਹ" #. Translators, this string is used to label the billing info entry #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3722 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3728 msgid "Billing Info" msgstr "ਬਿੱਲ ਜਾਣਕਾਰੀ" #. Translators, these strings are names for various 'standard' cover #. * pages that the printing system may support. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "None" msgstr "ਕੋਈ ਨਹੀਂ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Classified" msgstr "ਵਰਗੀਕ੍ਰਿਤ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Confidential" msgstr "ਗੁਪਤ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Secret" msgstr "ਖੁਫੀਆ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Standard" msgstr "ਸਟੈਂਡਰਡ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Top Secret" msgstr "ਉੱਚ ਗੁਪਤ" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Unclassified" msgstr "ਗ਼ੈਰ-ਕਲਾਸੀਫਾਈਡ" #. Translators, this string is used to label the pages-per-sheet option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3748 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3754 msgid "Pages per Sheet" msgstr "ਸਫ਼ੇ ਪ੍ਰਤੀ ਸ਼ੀਟ" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3808 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3814 msgid "Before" msgstr "ਪਹਿਲਾਂ" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3823 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3829 msgid "After" msgstr "ਬਾਅਦ" @@ -4689,14 +4691,14 @@ msgstr "ਬਾਅਦ" #. * a print job is printed. Possible values are 'now', a specified time, #. * or 'on hold' #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3843 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849 msgid "Print at" 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/cups/gtkprintbackendcups.c:3854 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860 msgid "Print at time" msgstr "ਸਮੇਂ ਉੱਤੇ ਪਰਿੰਟ" @@ -4704,17 +4706,17 @@ msgstr "ਸਮੇਂ ਉੱਤੇ ਪਰਿੰਟ" #. * size. The two placeholders are replaced with the width and height #. * in points. E.g: "Custom 230.4x142.9" #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895 #, c-format msgid "Custom %sx%s" msgstr "ਕਸਟਮ %sx%s" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3970 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3976 msgid "Printer Profile" msgstr "ਪਰਿੰਟਰ ਪ੍ਰੋਫਾਇਲ" #. TRANSLATORS: this is when color profile information is unavailable -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3977 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3983 msgid "Unavailable" msgstr "ਨਾ-ਉਪਲੱਬਧ" @@ -4735,7 +4737,6 @@ msgid "Unspecified profile" msgstr "ਨਾ ਦਿੱਤਾ ਪ੍ਰੋਫਾਇਲ" #: ../modules/printbackends/file/gtkprintbackendfile.c:249 -#| msgid "output.%s" msgid "output" msgstr "ਆਉਟਪੁੱਟ" @@ -4815,6 +4816,15 @@ msgstr "ਟੈਸਟ-ਆਉਟਪੁੱਟ.%s" msgid "Print to Test Printer" msgstr "ਟੈਸਟ ਪਰਿੰਟਰ ਲਈ ਪਰਿੰਟ ਕਰੋ" +#~ msgid "Homepage" +#~ msgstr "ਮੁੱਖ ਪੇਜ਼" + +#~ msgid "Rename..." +#~ msgstr "...ਨਾਂ-ਬਦਲੋ" + +#~ msgid "Manage Custom Sizes..." +#~ msgstr "...ਪਸੰਦੀਦਾ ਅਕਾਰ ਪਰਬੰਧ" + #~ msgid "Caps Lock and Num Lock are on" #~ msgstr "ਕੈਪਸ ਲਾਕ ਤੇ ਨਮ ਲਾਕ ਚਾਲੂ ਹਨ" @@ -5636,9 +5646,6 @@ msgstr "ਟੈਸਟ ਪਰਿੰਟਰ ਲਈ ਪਰਿੰਟ ਕਰੋ" #~ msgid "Rename file \"%s\" to:" #~ msgstr "ਫਾਇਲ \"%s\" ਦਾ ਨਾਂ-ਬਦਲੋ:" -#~ msgid "_Rename" -#~ msgstr "ਨਾਂ-ਬਦਲੋ(_R)" - #~ msgid "" #~ "The filename \"%s\" couldn't be converted to UTF-8. (try setting the " #~ "environment variable G_FILENAME_ENCODING): %s" From 72d3e7b9f35141530fa25633629cd20001d02314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20=C4=8Cernock=C3=BD?= Date: Fri, 22 Feb 2013 21:48:59 +0100 Subject: [PATCH 177/208] Updated Czech translation --- po-properties/cs.po | 1370 ++++++++++++++++++++++--------------------- 1 file changed, 691 insertions(+), 679 deletions(-) diff --git a/po-properties/cs.po b/po-properties/cs.po index 815347c786..7ca298ac55 100644 --- a/po-properties/cs.po +++ b/po-properties/cs.po @@ -2,28 +2,30 @@ # Copyright (C) 1999, 2008, 2009, 2010, 2011 the author(s) of GTK+. # Copyright (C) 2003, 2004, 2005 Miloslav Trmac . # This file is distributed under the same license as the gtk+ package. +# # Stanislav Brabec , 1998. # Jiří Pavlovský , 1998. # Jiří Lebl , 2002. # Michal Bukovjan , 2002. # Miloslav Trmac , 2003, 2004, 2005. -# Marek Černocký , 2012. # Petr Kovar , 2008, 2009, 2010, 2011, 2012. +# Marek Černocký , 2012, 2013. +# msgid "" msgstr "" "Project-Id-Version: gtk+-properties\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%" -"2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-10-17 12:26+0000\n" -"PO-Revision-Date: 2012-10-19 13:24+0200\n" -"Last-Translator: Petr Kovar \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" +"%2b&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2012-12-15 20:08+0000\n" +"PO-Revision-Date: 2013-02-22 21:45+0100\n" +"Last-Translator: Marek Černocký \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Virtaal 0.7.1\n" +"X-Generator: Gtranslator 2.91.6\n" "X-Project-Style: gnome\n" #: ../gdk/gdkapplaunchcontext.c:129 ../gdk/gdkcursor.c:134 @@ -264,7 +266,7 @@ msgid "The text to display in order to demonstrate the selected font" msgstr "Text zobrazovaný pro demonstraci vybraného písma" #: ../gtk/deprecated/gtkhandlebox.c:224 ../gtk/gtkcombobox.c:1067 -#: ../gtk/gtkentry.c:890 ../gtk/gtkmenubar.c:216 ../gtk/gtkstatusbar.c:182 +#: ../gtk/gtkentry.c:890 ../gtk/gtkmenubar.c:213 ../gtk/gtkstatusbar.c:182 #: ../gtk/gtktoolbar.c:631 ../gtk/gtkviewport.c:155 msgid "Shadow type" msgstr "Typ stínu" @@ -368,7 +370,7 @@ msgstr "Je-li ZAPNUTO, budou mít všechny buňky tabulky stejnou šířku/výš msgid "Left attachment" msgstr "Připevnění vlevo" -#: ../gtk/deprecated/gtktable.c:236 ../gtk/gtkgrid.c:1421 ../gtk/gtkmenu.c:727 +#: ../gtk/deprecated/gtktable.c:236 ../gtk/gtkgrid.c:1421 ../gtk/gtkmenu.c:747 msgid "The column number to attach the left side of the child to" msgstr "Číslo sloupce, ke kterému připevnit levou stranu potomka" @@ -392,7 +394,7 @@ msgstr "Číslo řádku, ke kterému připevnit horní stranu widgetu potomka" msgid "Bottom attachment" msgstr "Připevnění dole" -#: ../gtk/deprecated/gtktable.c:257 ../gtk/gtkmenu.c:751 +#: ../gtk/deprecated/gtktable.c:257 ../gtk/gtkmenu.c:771 msgid "The row number to attach the bottom of the child to" msgstr "Číslo řádku, ke kterému připevnit dolní stranu potomka" @@ -598,7 +600,7 @@ msgid "The parameter for action invocations" msgstr "Parametr vyvolání akcí" #: ../gtk/gtkaction.c:220 ../gtk/gtkactiongroup.c:228 ../gtk/gtkprinter.c:123 -#: ../gtk/gtktextmark.c:126 ../gtk/gtkthemingengine.c:257 +#: ../gtk/gtktextmark.c:126 ../gtk/gtkthemingengine.c:258 msgid "Name" msgstr "Název" @@ -607,7 +609,7 @@ msgid "A unique name for the action." msgstr "Jedinečný název akce." #: ../gtk/gtkaction.c:239 ../gtk/gtkbutton.c:232 ../gtk/gtkexpander.c:288 -#: ../gtk/gtkframe.c:170 ../gtk/gtklabel.c:726 ../gtk/gtkmenuitem.c:430 +#: ../gtk/gtkframe.c:170 ../gtk/gtklabel.c:721 ../gtk/gtkmenuitem.c:430 #: ../gtk/gtktoolbutton.c:239 ../gtk/gtktoolitemgroup.c:1597 msgid "Label" msgstr "Popis" @@ -651,7 +653,7 @@ msgstr "Zobrazovaná GIcon" #: ../gtk/gtkaction.c:323 ../gtk/gtkcellrendererpixbuf.c:211 #: ../gtk/gtkimage.c:291 ../gtk/gtkprinter.c:172 ../gtk/gtkstatusicon.c:247 -#: ../gtk/gtkwindow.c:783 +#: ../gtk/gtkwindow.c:773 msgid "Icon Name" msgstr "Název ikony" @@ -717,7 +719,7 @@ msgid "When TRUE, empty menu proxies for this action are hidden." msgstr "Je-li TRUE, jsou prázdné proxy menu pro tuto akci skryty." #: ../gtk/gtkaction.c:379 ../gtk/gtkactiongroup.c:235 -#: ../gtk/gtkcellrenderer.c:296 ../gtk/gtkwidget.c:1025 +#: ../gtk/gtkcellrenderer.c:296 ../gtk/gtkwidget.c:1024 msgid "Sensitive" msgstr "Citlivý" @@ -727,7 +729,7 @@ msgstr "Jestli je akce povolena." #: ../gtk/gtkaction.c:386 ../gtk/gtkactiongroup.c:242 #: ../gtk/gtkstatusicon.c:298 ../gtk/gtktreeviewcolumn.c:247 -#: ../gtk/gtkwidget.c:1018 +#: ../gtk/gtkwidget.c:1017 msgid "Visible" msgstr "Viditelný" @@ -921,7 +923,7 @@ msgid "The padding to insert at the right of the widget." msgstr "Doplnění, které vložit vpravo od widgetu." #: ../gtk/gtkappchooserbutton.c:614 -msgid "Include an 'Other...' item" +msgid "Include an 'Other…' item" msgstr "Zahrnout položku „Další…“" #: ../gtk/gtkappchooserbutton.c:615 @@ -1068,8 +1070,8 @@ msgstr "Stín šipky" msgid "Appearance of the shadow surrounding the arrow" msgstr "Tvar stínu okolo šipky" -#: ../gtk/gtkarrow.c:127 ../gtk/gtkcombobox.c:1051 ../gtk/gtkmenu.c:764 -#: ../gtk/gtkmenuitem.c:496 +#: ../gtk/gtkarrow.c:127 ../gtk/gtkcombobox.c:1051 ../gtk/gtkmenu.c:784 +#: ../gtk/gtkmenuitem.c:506 msgid "Arrow Scaling" msgstr "Škálování šipky" @@ -1077,7 +1079,7 @@ msgstr "Škálování šipky" msgid "Amount of space used up by arrow" msgstr "Množství prostoru použitého šipkou" -#: ../gtk/gtkaspectframe.c:107 ../gtk/gtkwidget.c:1213 +#: ../gtk/gtkaspectframe.c:107 ../gtk/gtkwidget.c:1212 msgid "Horizontal Alignment" msgstr "Vodorovné zarovnání" @@ -1085,7 +1087,7 @@ msgstr "Vodorovné zarovnání" msgid "X alignment of the child" msgstr "Zarovnání potomka podle osy X" -#: ../gtk/gtkaspectframe.c:114 ../gtk/gtkwidget.c:1229 +#: ../gtk/gtkaspectframe.c:114 ../gtk/gtkwidget.c:1228 msgid "Vertical Alignment" msgstr "Svislé zarovnání" @@ -1229,7 +1231,7 @@ msgid "If TRUE, the child will not be subject to homogeneous sizing" msgstr "Je-li TRUE, potomka se nebude týkat homogenní změna velikosti" #: ../gtk/gtkbox.c:243 ../gtk/gtkcellareabox.c:315 ../gtk/gtkexpander.c:312 -#: ../gtk/gtkiconview.c:517 ../gtk/gtktreeviewcolumn.c:282 +#: ../gtk/gtkiconview.c:512 ../gtk/gtktreeviewcolumn.c:282 msgid "Spacing" msgstr "Mezery" @@ -1283,20 +1285,20 @@ msgstr "" "GtkPackType udávající, jestli má být potomek sbalen vzhledem k počátku nebo " "konci rodiče" -#: ../gtk/gtkbox.c:313 ../gtk/gtknotebook.c:767 ../gtk/gtkpaned.c:348 +#: ../gtk/gtkbox.c:313 ../gtk/gtknotebook.c:768 ../gtk/gtkpaned.c:348 #: ../gtk/gtktoolitemgroup.c:1678 msgid "Position" msgstr "Pozice" -#: ../gtk/gtkbox.c:314 ../gtk/gtknotebook.c:768 +#: ../gtk/gtkbox.c:314 ../gtk/gtknotebook.c:769 msgid "The index of the child in the parent" msgstr "Index potomka v rodiči" -#: ../gtk/gtkbuilder.c:305 +#: ../gtk/gtkbuilder.c:307 msgid "Translation Domain" msgstr "Doména překladatelů" -#: ../gtk/gtkbuilder.c:306 +#: ../gtk/gtkbuilder.c:308 msgid "The translation domain used by gettext" msgstr "Překladová doména použitá systémem gettext" @@ -1306,12 +1308,12 @@ msgid "" "widget" msgstr "Text widgetu popisu v tlačítku, pokud tlačítko obsahuje widget popisu" -#: ../gtk/gtkbutton.c:240 ../gtk/gtkexpander.c:296 ../gtk/gtklabel.c:747 +#: ../gtk/gtkbutton.c:240 ../gtk/gtkexpander.c:296 ../gtk/gtklabel.c:742 #: ../gtk/gtkmenuitem.c:445 ../gtk/gtktoolbutton.c:246 msgid "Use underline" msgstr "Používat podtržítko" -#: ../gtk/gtkbutton.c:241 ../gtk/gtkexpander.c:297 ../gtk/gtklabel.c:748 +#: ../gtk/gtkbutton.c:241 ../gtk/gtkexpander.c:297 ../gtk/gtklabel.c:743 #: ../gtk/gtkmenuitem.c:446 msgid "" "If set, an underline in the text indicates the next character should be used " @@ -1878,7 +1880,7 @@ msgid "Whether the rendered pixbuf should be colorized according to the state" msgstr "Jestli se má vykreslovaný pixbuf obarvovat podle stavu" #: ../gtk/gtkcellrendererpixbuf.c:245 ../gtk/gtkimage.c:308 -#: ../gtk/gtkwindow.c:729 +#: ../gtk/gtkwindow.c:719 msgid "Icon" msgstr "Ikona" @@ -1955,7 +1957,7 @@ msgstr "Rychlost růstu" msgid "The acceleration rate when you hold down a button" msgstr "Zrychlení růstu, když držíte tlačítko" -#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:294 +#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:309 #: ../gtk/gtkspinbutton.c:354 msgid "Digits" msgstr "Desetinná místa" @@ -1965,7 +1967,7 @@ msgid "The number of decimal places to display" msgstr "Počet zobrazovaných desetinných míst" #: ../gtk/gtkcellrendererspinner.c:125 ../gtk/gtkcheckmenuitem.c:120 -#: ../gtk/gtkmenu.c:554 ../gtk/gtkspinner.c:114 ../gtk/gtkswitch.c:834 +#: ../gtk/gtkmenu.c:554 ../gtk/gtkspinner.c:114 ../gtk/gtkswitch.c:814 #: ../gtk/gtktoggleaction.c:131 ../gtk/gtktogglebutton.c:173 #: ../gtk/gtktoggletoolbutton.c:125 msgid "Active" @@ -1996,7 +1998,7 @@ msgid "Marked up text to render" msgstr "Zobrazovaný text se značkami" #: ../gtk/gtkcellrenderertext.c:271 ../gtk/gtkentry.c:1410 -#: ../gtk/gtklabel.c:733 +#: ../gtk/gtklabel.c:728 msgid "Attributes" msgstr "Atributy" @@ -2067,12 +2069,12 @@ msgid "Foreground color as a GdkRGBA" msgstr "Barva popředí jako GdkRGBA" #: ../gtk/gtkcellrenderertext.c:364 ../gtk/gtkentry.c:755 -#: ../gtk/gtktexttag.c:296 ../gtk/gtktextview.c:702 +#: ../gtk/gtktexttag.c:296 ../gtk/gtktextview.c:704 msgid "Editable" msgstr "Upravitelné" #: ../gtk/gtkcellrenderertext.c:365 ../gtk/gtktexttag.c:297 -#: ../gtk/gtktextview.c:703 +#: ../gtk/gtktextview.c:705 msgid "Whether the text can be modified by the user" msgstr "Jestli uživatel může měnit text" @@ -2180,7 +2182,7 @@ msgstr "" "jako pomocnou informaci při vykreslování textu. Pokud tomuto parametru " "nerozumíte, pravděpodobně jej nepotřebujete." -#: ../gtk/gtkcellrenderertext.c:514 ../gtk/gtklabel.c:858 +#: ../gtk/gtkcellrenderertext.c:514 ../gtk/gtklabel.c:853 #: ../gtk/gtkprogressbar.c:218 msgid "Ellipsize" msgstr "Zkrátit" @@ -2194,15 +2196,15 @@ msgstr "" "místa na zobrazení celého řetězce" #: ../gtk/gtkcellrenderertext.c:534 ../gtk/gtkfilechooserbutton.c:453 -#: ../gtk/gtklabel.c:879 +#: ../gtk/gtklabel.c:874 msgid "Width In Characters" msgstr "Šířka ve znacích" -#: ../gtk/gtkcellrenderertext.c:535 ../gtk/gtklabel.c:880 +#: ../gtk/gtkcellrenderertext.c:535 ../gtk/gtklabel.c:875 msgid "The desired width of the label, in characters" msgstr "Požadovaná šířka popisku ve znacích" -#: ../gtk/gtkcellrenderertext.c:559 ../gtk/gtklabel.c:940 +#: ../gtk/gtkcellrenderertext.c:559 ../gtk/gtklabel.c:935 msgid "Maximum Width In Characters" msgstr "Maximální šířka ve znacích" @@ -2430,13 +2432,13 @@ msgid "The model for cell view" msgstr "Model buňkového zobrazení" #: ../gtk/gtkcellview.c:252 ../gtk/gtkcombobox.c:1010 -#: ../gtk/gtkentrycompletion.c:451 ../gtk/gtkiconview.c:642 +#: ../gtk/gtkentrycompletion.c:451 ../gtk/gtkiconview.c:637 #: ../gtk/gtktreemenu.c:332 ../gtk/gtktreeviewcolumn.c:426 msgid "Cell Area" msgstr "Prostor buňky" #: ../gtk/gtkcellview.c:253 ../gtk/gtkcombobox.c:1011 -#: ../gtk/gtkentrycompletion.c:452 ../gtk/gtkiconview.c:643 +#: ../gtk/gtkentrycompletion.c:452 ../gtk/gtkiconview.c:638 #: ../gtk/gtktreemenu.c:333 ../gtk/gtktreeviewcolumn.c:427 msgid "The GtkCellArea used to layout cells" msgstr "GtkCellArea použité na rozvržení buněk" @@ -2559,7 +2561,7 @@ msgstr "Barva RGBA" msgid "Color as RGBA" msgstr "Barva v podobě RGBA" -#: ../gtk/gtkcolorswatch.c:778 ../gtk/gtklabel.c:796 +#: ../gtk/gtkcolorswatch.c:778 ../gtk/gtklabel.c:791 msgid "Selectable" msgstr "Vybratelný" @@ -2725,27 +2727,27 @@ msgstr "Množství prostoru použitého šipkou" msgid "Which kind of shadow to draw around the combo box" msgstr "Který druh stínů kreslit kolem kombinovaného pole" -#: ../gtk/gtkcontainer.c:460 +#: ../gtk/gtkcontainer.c:461 msgid "Resize mode" msgstr "Režim změny velikosti" -#: ../gtk/gtkcontainer.c:461 +#: ../gtk/gtkcontainer.c:462 msgid "Specify how resize events are handled" msgstr "Určuje, jak zpracovávat události pro změnu velikosti" -#: ../gtk/gtkcontainer.c:468 +#: ../gtk/gtkcontainer.c:469 msgid "Border width" msgstr "Šířka okraje" -#: ../gtk/gtkcontainer.c:469 +#: ../gtk/gtkcontainer.c:470 msgid "The width of the empty border outside the containers children" msgstr "Šířka prázdného okraje okolo potomků kontejneru" -#: ../gtk/gtkcontainer.c:477 +#: ../gtk/gtkcontainer.c:478 msgid "Child" msgstr "Potomek" -#: ../gtk/gtkcontainer.c:478 +#: ../gtk/gtkcontainer.c:479 msgid "Can be used to add a new child to the container" msgstr "Dá se použít pro přidání potomka do kontejneru" @@ -2757,35 +2759,51 @@ msgstr "Podvlastnosti" msgid "The list of subproperties" msgstr "Seznam podvlastností" -#: ../gtk/gtkcssstyleproperty.c:250 +#: ../gtk/gtkcssstyleproperty.c:275 msgid "Animated" msgstr "Animované" -#: ../gtk/gtkcssstyleproperty.c:251 +#: ../gtk/gtkcssstyleproperty.c:276 msgid "Set if the value can be animated" msgstr "Nastaveno, může-li být hodnota animovaná" -#: ../gtk/gtkcssstyleproperty.c:257 +#: ../gtk/gtkcssstyleproperty.c:282 +msgid "Affects size" +msgstr "Ovlivňuje velikost" + +#: ../gtk/gtkcssstyleproperty.c:283 +msgid "Set if the value affects the sizing of elements" +msgstr "Nastaveno v případě, že hodnota ovlivňuje velikost prvků" + +#: ../gtk/gtkcssstyleproperty.c:289 +msgid "Affects font" +msgstr "Ovlivňuje písmo" + +#: ../gtk/gtkcssstyleproperty.c:290 +msgid "Set if the value affects the font" +msgstr "Nastaveno v případě, že hodnota ovlivňuje písmo" + +#: ../gtk/gtkcssstyleproperty.c:296 msgid "ID" msgstr "ID" -#: ../gtk/gtkcssstyleproperty.c:258 +#: ../gtk/gtkcssstyleproperty.c:297 msgid "The numeric id for quick access" msgstr "Číselné ID pro rychlý přístup" -#: ../gtk/gtkcssstyleproperty.c:264 +#: ../gtk/gtkcssstyleproperty.c:303 msgid "Inherit" msgstr "Zděděné" -#: ../gtk/gtkcssstyleproperty.c:265 +#: ../gtk/gtkcssstyleproperty.c:304 msgid "Set if the value is inherited by default" msgstr "Nastaveno, je-li hodnota standardně zděděná" -#: ../gtk/gtkcssstyleproperty.c:271 +#: ../gtk/gtkcssstyleproperty.c:310 msgid "Initial value" msgstr "Počáteční hodnota" -#: ../gtk/gtkcssstyleproperty.c:272 +#: ../gtk/gtkcssstyleproperty.c:311 msgid "The initial specified value used for this property" msgstr "Počáteční zadaná hodnota použitá u této vlastnosti" @@ -2849,19 +2867,19 @@ msgstr "Vyrovnávací paměť textu" msgid "Text buffer object which actually stores entry text" msgstr "Objekt vyrovnávací paměti textu, který uchovává text položky" -#: ../gtk/gtkentry.c:735 ../gtk/gtklabel.c:821 +#: ../gtk/gtkentry.c:735 ../gtk/gtklabel.c:816 msgid "Cursor Position" msgstr "Pozice kurzoru" -#: ../gtk/gtkentry.c:736 ../gtk/gtklabel.c:822 +#: ../gtk/gtkentry.c:736 ../gtk/gtklabel.c:817 msgid "The current position of the insertion cursor in chars" msgstr "Aktuální pozice kurzoru pro vkládání ve znacích" -#: ../gtk/gtkentry.c:745 ../gtk/gtklabel.c:831 +#: ../gtk/gtkentry.c:745 ../gtk/gtklabel.c:826 msgid "Selection Bound" msgstr "Okraj výběru" -#: ../gtk/gtkentry.c:746 ../gtk/gtklabel.c:832 +#: ../gtk/gtkentry.c:746 ../gtk/gtklabel.c:827 msgid "" "The position of the opposite end of the selection from the cursor in chars" msgstr "Pozice druhého konce výběru od kurzoru ve znacích" @@ -2879,12 +2897,12 @@ msgid "" "FALSE displays the \"invisible char\" instead of the actual text (password " "mode)" msgstr "" -"Při VYPNUTO se zobrazí místo zadaného textu „neviditelný znak“ (režim pro " +"Je-li vypnuto, zobrazí se místo zadaného textu „neviditelný znak“ (režim pro " "hesla)" #: ../gtk/gtkentry.c:781 msgid "FALSE removes outside bevel from entry" -msgstr "Při VYPNUTO se odstraní vnější rám okolo položky" +msgstr "Je-li vypnuto, odstraní se vnější rám okolo položky" #: ../gtk/gtkentry.c:798 msgid "" @@ -2955,7 +2973,7 @@ msgstr "Jestli víceřádkové zkrácení vloží na jeden řádek." msgid "Which kind of shadow to draw around the entry when has-frame is set" msgstr "Který druh stínu kreslit kolem vstupu, pokud je nastaveno has-frame" -#: ../gtk/gtkentry.c:906 ../gtk/gtktextview.c:782 +#: ../gtk/gtkentry.c:906 ../gtk/gtktextview.c:784 msgid "Overwrite mode" msgstr "Režim přepisování" @@ -3144,11 +3162,11 @@ msgstr "Místní nápovědné značky primární ikony" msgid "Secondary icon tooltip markup" msgstr "Místní nápovědné značky sekundární ikony" -#: ../gtk/gtkentry.c:1338 ../gtk/gtktextview.c:810 +#: ../gtk/gtkentry.c:1338 ../gtk/gtktextview.c:812 msgid "IM module" msgstr "Modul IM" -#: ../gtk/gtkentry.c:1339 ../gtk/gtktextview.c:811 +#: ../gtk/gtkentry.c:1339 ../gtk/gtktextview.c:813 msgid "Which IM module should be used" msgstr "Který modul IM by měl být použit" @@ -3160,23 +3178,23 @@ msgstr "Doplňování" msgid "The auxiliary completion object" msgstr "Pomocný objekt doplňování" -#: ../gtk/gtkentry.c:1375 ../gtk/gtkimcontext.c:332 ../gtk/gtktextview.c:828 +#: ../gtk/gtkentry.c:1375 ../gtk/gtkimcontext.c:332 ../gtk/gtktextview.c:830 msgid "Purpose" msgstr "Účel" -#: ../gtk/gtkentry.c:1376 ../gtk/gtkimcontext.c:333 ../gtk/gtktextview.c:829 +#: ../gtk/gtkentry.c:1376 ../gtk/gtkimcontext.c:333 ../gtk/gtktextview.c:831 msgid "Purpose of the text field" msgstr "Účel textového pole" -#: ../gtk/gtkentry.c:1392 ../gtk/gtkimcontext.c:340 ../gtk/gtktextview.c:845 +#: ../gtk/gtkentry.c:1392 ../gtk/gtkimcontext.c:340 ../gtk/gtktextview.c:847 msgid "hints" msgstr "rady" -#: ../gtk/gtkentry.c:1393 ../gtk/gtkimcontext.c:341 ../gtk/gtktextview.c:846 +#: ../gtk/gtkentry.c:1393 ../gtk/gtkimcontext.c:341 ../gtk/gtktextview.c:848 msgid "Hints for the text field behaviour" msgstr "Rady chování textového pole" -#: ../gtk/gtkentry.c:1411 ../gtk/gtklabel.c:734 +#: ../gtk/gtkentry.c:1411 ../gtk/gtklabel.c:729 msgid "A list of style attributes to apply to the text of the label" msgstr "Seznam atributů stylu, které použít na text popisu" @@ -3217,7 +3235,7 @@ msgstr "Minimální délka klíče" msgid "Minimum length of the search key in order to look up matches" msgstr "Minimální délka hledaného klíče, aby se hledaly odpovídající položky" -#: ../gtk/gtkentrycompletion.c:347 ../gtk/gtkiconview.c:438 +#: ../gtk/gtkentrycompletion.c:347 ../gtk/gtkiconview.c:433 msgid "Text column" msgstr "Sloupec textu" @@ -3302,11 +3320,11 @@ msgstr "Jestli byl rozbalovač otevřen a zobrazuje widget potomka" msgid "Text of the expander's label" msgstr "Text popisku rozbalovače" -#: ../gtk/gtkexpander.c:304 ../gtk/gtklabel.c:740 +#: ../gtk/gtkexpander.c:304 ../gtk/gtklabel.c:735 msgid "Use markup" msgstr "Používat značky" -#: ../gtk/gtkexpander.c:305 ../gtk/gtklabel.c:741 +#: ../gtk/gtkexpander.c:305 ../gtk/gtklabel.c:736 msgid "The text of the label includes XML markup. See pango_parse_markup()" msgstr "Text popisu obsahuje značky XML. Viz pango_parse_markup()" @@ -3344,12 +3362,12 @@ msgstr "" "sbalení" #: ../gtk/gtkexpander.c:353 ../gtk/gtktoolitemgroup.c:1632 -#: ../gtk/gtktreeview.c:1194 +#: ../gtk/gtktreeview.c:1195 msgid "Expander Size" msgstr "Velikost rozbalovače" #: ../gtk/gtkexpander.c:354 ../gtk/gtktoolitemgroup.c:1633 -#: ../gtk/gtktreeview.c:1195 +#: ../gtk/gtktreeview.c:1196 msgid "Size of the expander arrow" msgstr "Velikost šipky rozbalovače" @@ -3580,7 +3598,7 @@ msgstr "Homogenní řádky" #: ../gtk/gtkgrid.c:1407 msgid "If TRUE, the rows are all the same height" -msgstr "Je-li ZAPNUTO, budou mít všechny řádky stejnou šířku/výšku" +msgstr "Je-li zapnuto, budou mít všechny řádky stejnou šířku/výšku" #: ../gtk/gtkgrid.c:1413 msgid "Column Homogeneous" @@ -3588,7 +3606,7 @@ msgstr "Homogenní sloupce" #: ../gtk/gtkgrid.c:1414 msgid "If TRUE, the columns are all the same width" -msgstr "Je-li ZAPNUTO, budou mít všechny sloupce stejnou šířku/výšku" +msgstr "Je-li zapnuto, budou mít všechny sloupce stejnou šířku/výšku" #: ../gtk/gtkgrid.c:1428 msgid "The row number to attach the top side of a child widget to" @@ -3610,135 +3628,135 @@ msgstr "Výška" msgid "The number of rows that a child spans" msgstr "Počet řádků, kterému potomek určuje rozsah" -#: ../gtk/gtkiconview.c:401 ../gtk/gtktreeselection.c:130 +#: ../gtk/gtkiconview.c:396 ../gtk/gtktreeselection.c:130 msgid "Selection mode" msgstr "Režim výběru" -#: ../gtk/gtkiconview.c:402 +#: ../gtk/gtkiconview.c:397 msgid "The selection mode" msgstr "Režim výběru" -#: ../gtk/gtkiconview.c:420 +#: ../gtk/gtkiconview.c:415 msgid "Pixbuf column" msgstr "Sloupec pixbufu" -#: ../gtk/gtkiconview.c:421 +#: ../gtk/gtkiconview.c:416 msgid "Model column used to retrieve the icon pixbuf from" msgstr "Sloupec modelu používaný pro získání pixbufu ikony" -#: ../gtk/gtkiconview.c:439 +#: ../gtk/gtkiconview.c:434 msgid "Model column used to retrieve the text from" msgstr "Sloupec modelu používaný pro získání textu" -#: ../gtk/gtkiconview.c:458 +#: ../gtk/gtkiconview.c:453 msgid "Markup column" msgstr "Sloupec značek" -#: ../gtk/gtkiconview.c:459 +#: ../gtk/gtkiconview.c:454 msgid "Model column used to retrieve the text if using Pango markup" msgstr "" "Sloupec modelu používaný pro získání textu, pokud se používají značky Pango" -#: ../gtk/gtkiconview.c:466 +#: ../gtk/gtkiconview.c:461 msgid "Icon View Model" msgstr "Model ikonového zobrazení" -#: ../gtk/gtkiconview.c:467 +#: ../gtk/gtkiconview.c:462 msgid "The model for the icon view" msgstr "Model ikonového zobrazení" -#: ../gtk/gtkiconview.c:483 +#: ../gtk/gtkiconview.c:478 msgid "Number of columns" msgstr "Počet sloupců" -#: ../gtk/gtkiconview.c:484 +#: ../gtk/gtkiconview.c:479 msgid "Number of columns to display" msgstr "Počet zobrazovaných sloupců" -#: ../gtk/gtkiconview.c:501 +#: ../gtk/gtkiconview.c:496 msgid "Width for each item" msgstr "Šířka každé položky" -#: ../gtk/gtkiconview.c:502 +#: ../gtk/gtkiconview.c:497 msgid "The width used for each item" msgstr "Šířka používaná pro každou položku" -#: ../gtk/gtkiconview.c:518 +#: ../gtk/gtkiconview.c:513 msgid "Space which is inserted between cells of an item" msgstr "Místo, které je vloženo mezi buňky položky" -#: ../gtk/gtkiconview.c:533 +#: ../gtk/gtkiconview.c:528 msgid "Row Spacing" msgstr "Rozestup řádků" -#: ../gtk/gtkiconview.c:534 +#: ../gtk/gtkiconview.c:529 msgid "Space which is inserted between grid rows" msgstr "Místo, které je vloženo mezi řádky mřížky" -#: ../gtk/gtkiconview.c:549 +#: ../gtk/gtkiconview.c:544 msgid "Column Spacing" msgstr "Rozestup sloupců" # FIXME: s/column/columns/ -#: ../gtk/gtkiconview.c:550 +#: ../gtk/gtkiconview.c:545 msgid "Space which is inserted between grid columns" msgstr "Prostor vložený mezi sloupce mřížky" -#: ../gtk/gtkiconview.c:565 +#: ../gtk/gtkiconview.c:560 msgid "Margin" msgstr "Okraj" -#: ../gtk/gtkiconview.c:566 +#: ../gtk/gtkiconview.c:561 msgid "Space which is inserted at the edges of the icon view" msgstr "Místo, které je vloženo na okraje ikonového zobrazení" -#: ../gtk/gtkiconview.c:581 +#: ../gtk/gtkiconview.c:576 msgid "Item Orientation" msgstr "Orientace položky" -#: ../gtk/gtkiconview.c:582 +#: ../gtk/gtkiconview.c:577 msgid "" "How the text and icon of each item are positioned relative to each other" msgstr "Jak jsou text a ikony každé položky navzájem relativně umístěny" -#: ../gtk/gtkiconview.c:598 ../gtk/gtktreeview.c:1029 +#: ../gtk/gtkiconview.c:593 ../gtk/gtktreeview.c:1030 #: ../gtk/gtktreeviewcolumn.c:373 msgid "Reorderable" msgstr "Měnitelné pořadí" -#: ../gtk/gtkiconview.c:599 ../gtk/gtktreeview.c:1030 +#: ../gtk/gtkiconview.c:594 ../gtk/gtktreeview.c:1031 msgid "View is reorderable" msgstr "Je možná změna pořadí zobrazení" -#: ../gtk/gtkiconview.c:606 ../gtk/gtktreeview.c:1180 +#: ../gtk/gtkiconview.c:601 ../gtk/gtktreeview.c:1181 msgid "Tooltip Column" msgstr "Sloupec místní nápovědy" -#: ../gtk/gtkiconview.c:607 +#: ../gtk/gtkiconview.c:602 msgid "The column in the model containing the tooltip texts for the items" msgstr "Sloupec v modelu obsahující texty místní nápovědy položek" -#: ../gtk/gtkiconview.c:624 +#: ../gtk/gtkiconview.c:619 msgid "Item Padding" msgstr "Odsazení položky" -#: ../gtk/gtkiconview.c:625 +#: ../gtk/gtkiconview.c:620 msgid "Padding around icon view items" msgstr "Odsazení okolo položek zobrazení s ikonami" -#: ../gtk/gtkiconview.c:656 +#: ../gtk/gtkiconview.c:651 msgid "Selection Box Color" msgstr "Barva obdélníku výběru" -#: ../gtk/gtkiconview.c:657 +#: ../gtk/gtkiconview.c:652 msgid "Color of the selection box" msgstr "Barva obdélníku výběru" -#: ../gtk/gtkiconview.c:663 +#: ../gtk/gtkiconview.c:658 msgid "Selection Box Alpha" msgstr "Alfa obdélníku výběru" -#: ../gtk/gtkiconview.c:664 +#: ../gtk/gtkiconview.c:659 msgid "Opacity of the selection box" msgstr "Neprůhlednost obdélníku výběru" @@ -3853,24 +3871,24 @@ msgid "Width of border around the action area" msgstr "Šířka okraje okolo plochy akcí" #: ../gtk/gtkinvisible.c:101 ../gtk/gtkmountoperation.c:179 -#: ../gtk/gtkstatusicon.c:290 ../gtk/gtkstylecontext.c:440 -#: ../gtk/gtkwindow.c:791 +#: ../gtk/gtkstatusicon.c:290 ../gtk/gtkstylecontext.c:442 +#: ../gtk/gtkwindow.c:781 msgid "Screen" msgstr "Obrazovka" -#: ../gtk/gtkinvisible.c:102 ../gtk/gtkwindow.c:792 +#: ../gtk/gtkinvisible.c:102 ../gtk/gtkwindow.c:782 msgid "The screen where this window will be displayed" msgstr "Obrazovka, kde se toto okno zobrazí" -#: ../gtk/gtklabel.c:727 +#: ../gtk/gtklabel.c:722 msgid "The text of the label" msgstr "Text popisu" -#: ../gtk/gtklabel.c:755 ../gtk/gtktexttag.c:404 ../gtk/gtktextview.c:719 +#: ../gtk/gtklabel.c:750 ../gtk/gtktexttag.c:404 ../gtk/gtktextview.c:721 msgid "Justification" msgstr "Zarovnání" -#: ../gtk/gtklabel.c:756 +#: ../gtk/gtklabel.c:751 msgid "" "The alignment of the lines in the text of the label relative to each other. " "This does NOT affect the alignment of the label within its allocation. See " @@ -3879,54 +3897,54 @@ msgstr "" "Zarovnaní řádků v textu relativně k sobe navzájem. Toto NEOVLIVŇUJE " "zarovnání popisu v jeho přiřazeném místu. Takovou funkci plní GtkMisc::xalign" -#: ../gtk/gtklabel.c:764 +#: ../gtk/gtklabel.c:759 msgid "Pattern" msgstr "Vzorek" -#: ../gtk/gtklabel.c:765 +#: ../gtk/gtklabel.c:760 msgid "" "A string with _ characters in positions correspond to characters in the text " "to underline" msgstr "" "Řetězec se znaky _ v pozicích odpovídajících znakům v textu, které podtrhnout" -#: ../gtk/gtklabel.c:772 +#: ../gtk/gtklabel.c:767 msgid "Line wrap" msgstr "Zalamovaní řádků" -#: ../gtk/gtklabel.c:773 +#: ../gtk/gtklabel.c:768 msgid "If set, wrap lines if the text becomes too wide" msgstr "Je-li nastaveno, zalamovat řádky, pokud bude text moc široký" -#: ../gtk/gtklabel.c:788 +#: ../gtk/gtklabel.c:783 msgid "Line wrap mode" msgstr "Režim zalamovaní řádků" -#: ../gtk/gtklabel.c:789 +#: ../gtk/gtklabel.c:784 msgid "If wrap is set, controls how linewrapping is done" msgstr "Je-li nastaveno zalomení, ovládá způsob zalomení řádků" -#: ../gtk/gtklabel.c:797 +#: ../gtk/gtklabel.c:792 msgid "Whether the label text can be selected with the mouse" msgstr "Jestli je možné vybrat text v popisu myší" -#: ../gtk/gtklabel.c:803 +#: ../gtk/gtklabel.c:798 msgid "Mnemonic key" msgstr "Klávesová zkratka" -#: ../gtk/gtklabel.c:804 +#: ../gtk/gtklabel.c:799 msgid "The mnemonic accelerator key for this label" msgstr "Mnemonická klávesová zkratka pro tento popis" -#: ../gtk/gtklabel.c:812 +#: ../gtk/gtklabel.c:807 msgid "Mnemonic widget" msgstr "Widget akcelerátoru" -#: ../gtk/gtklabel.c:813 +#: ../gtk/gtklabel.c:808 msgid "The widget to be activated when the label's mnemonic key is pressed" msgstr "Widget aktivovaný při stisku klávesové zkratky popisu" -#: ../gtk/gtklabel.c:859 +#: ../gtk/gtklabel.c:854 msgid "" "The preferred place to ellipsize the string, if the label does not have " "enough room to display the entire string" @@ -3934,31 +3952,31 @@ msgstr "" "Preferované místo, kde zkrátit řetězec, pokud popisek nemá dost místa pro " "zobrazení celého řetězce" -#: ../gtk/gtklabel.c:900 +#: ../gtk/gtklabel.c:895 msgid "Single Line Mode" msgstr "Režim jednoho řádku" -#: ../gtk/gtklabel.c:901 +#: ../gtk/gtklabel.c:896 msgid "Whether the label is in single line mode" msgstr "Jestli je popisek v režimu jednoho řádku" -#: ../gtk/gtklabel.c:918 +#: ../gtk/gtklabel.c:913 msgid "Angle" msgstr "Úhel" -#: ../gtk/gtklabel.c:919 +#: ../gtk/gtklabel.c:914 msgid "Angle at which the label is rotated" msgstr "Úhel, o který je popisek rotován" -#: ../gtk/gtklabel.c:941 +#: ../gtk/gtklabel.c:936 msgid "The desired maximum width of the label, in characters" msgstr "Požadovaná maximální šířka popisku ve znacích" -#: ../gtk/gtklabel.c:959 +#: ../gtk/gtklabel.c:954 msgid "Track visited links" msgstr "Sledovat navštívené odkazy" -#: ../gtk/gtklabel.c:960 +#: ../gtk/gtklabel.c:955 msgid "Whether visited links should be tracked" msgstr "Jestli mají být sledovány navštívené odkazy" @@ -4003,7 +4021,6 @@ msgid "The mode of the value indicator displayed by the bar" msgstr "Režim indikátoru hodnot zobrazený lištou" #: ../gtk/gtklevelbar.c:992 -#| msgid "Invert the direction in which the progress bar grows" msgid "Invert the direction in which the level bar grows" msgstr "Obrátit směr růstu lišty úrovně" @@ -4090,31 +4107,31 @@ msgstr "" "Místní nápověda zobrazovaná při dotazování uživatele ohledně selhání " "autorizace" -#: ../gtk/gtkmenubar.c:190 +#: ../gtk/gtkmenubar.c:187 msgid "Pack direction" msgstr "Směr balení" -#: ../gtk/gtkmenubar.c:191 +#: ../gtk/gtkmenubar.c:188 msgid "The pack direction of the menubar" msgstr "Směr balení lišty menu" -#: ../gtk/gtkmenubar.c:207 +#: ../gtk/gtkmenubar.c:204 msgid "Child Pack direction" msgstr "Směr balení potomků" -#: ../gtk/gtkmenubar.c:208 +#: ../gtk/gtkmenubar.c:205 msgid "The child pack direction of the menubar" msgstr "Směr balení potomků lišty menu" -#: ../gtk/gtkmenubar.c:217 +#: ../gtk/gtkmenubar.c:214 msgid "Style of bevel around the menubar" msgstr "Styl rámu okolo lišty menu" -#: ../gtk/gtkmenubar.c:224 ../gtk/gtktoolbar.c:589 +#: ../gtk/gtkmenubar.c:230 ../gtk/gtktoolbar.c:589 msgid "Internal padding" msgstr "Interní doplnění" -#: ../gtk/gtkmenubar.c:225 +#: ../gtk/gtkmenubar.c:231 msgid "Amount of border space between the menubar shadow and the menu items" msgstr "Velikost místa mezi stínem lišty menu a položkami menu" @@ -4199,19 +4216,11 @@ msgstr "Monitor" msgid "The monitor the menu will be popped up on" msgstr "Monitor, na kterém bude zobrazena nabídka" -#: ../gtk/gtkmenu.c:646 -msgid "Vertical Padding" -msgstr "Svislé doplnění" - -#: ../gtk/gtkmenu.c:647 -msgid "Extra space at the top and bottom of the menu" -msgstr "Místo navíc nad a pod menu" - -#: ../gtk/gtkmenu.c:669 +#: ../gtk/gtkmenu.c:660 msgid "Reserve Toggle Size" msgstr "Rezervovat velikost přepínání" -#: ../gtk/gtkmenu.c:670 +#: ../gtk/gtkmenu.c:661 msgid "" "A boolean that indicates whether the menu reserves space for toggles and " "icons" @@ -4227,67 +4236,75 @@ msgstr "Vodorovné doplnění" msgid "Extra space at the left and right edges of the menu" msgstr "Místo navíc nalevo a napravo od okrajů nabídky" -#: ../gtk/gtkmenu.c:685 +#: ../gtk/gtkmenu.c:695 +msgid "Vertical Padding" +msgstr "Svislé doplnění" + +#: ../gtk/gtkmenu.c:696 +msgid "Extra space at the top and bottom of the menu" +msgstr "Místo navíc nad a pod menu" + +#: ../gtk/gtkmenu.c:705 msgid "Vertical Offset" msgstr "Svislé posunutí" -#: ../gtk/gtkmenu.c:686 +#: ../gtk/gtkmenu.c:706 msgid "" "When the menu is a submenu, position it this number of pixels offset " "vertically" msgstr "Když menu je podmenu, umístit je svisle posunuté o tolik pixelů" -#: ../gtk/gtkmenu.c:694 +#: ../gtk/gtkmenu.c:714 msgid "Horizontal Offset" msgstr "Vodorovné posunutí" -#: ../gtk/gtkmenu.c:695 +#: ../gtk/gtkmenu.c:715 msgid "" "When the menu is a submenu, position it this number of pixels offset " "horizontally" msgstr "Když menu je podmenu, umístit je vodorovně posunuté o tolik pixelů" -#: ../gtk/gtkmenu.c:703 +#: ../gtk/gtkmenu.c:723 msgid "Double Arrows" msgstr "Dvojité šipky" -#: ../gtk/gtkmenu.c:704 +#: ../gtk/gtkmenu.c:724 msgid "When scrolling, always show both arrows." msgstr "Při posunu vždy ukazovat obé šipky." -#: ../gtk/gtkmenu.c:717 +#: ../gtk/gtkmenu.c:737 msgid "Arrow Placement" msgstr "Umístění šipky" -#: ../gtk/gtkmenu.c:718 +#: ../gtk/gtkmenu.c:738 msgid "Indicates where scroll arrows should be placed" msgstr "Značí, kde by měly být umístěny posuvné šipky" -#: ../gtk/gtkmenu.c:726 +#: ../gtk/gtkmenu.c:746 msgid "Left Attach" msgstr "Připevnění vlevo" -#: ../gtk/gtkmenu.c:734 +#: ../gtk/gtkmenu.c:754 msgid "Right Attach" msgstr "Připevnění vpravo" -#: ../gtk/gtkmenu.c:735 +#: ../gtk/gtkmenu.c:755 msgid "The column number to attach the right side of the child to" msgstr "Číslo sloupce, ke kterému připevnit pravou stranu potomka" -#: ../gtk/gtkmenu.c:742 +#: ../gtk/gtkmenu.c:762 msgid "Top Attach" msgstr "Připevnění nahoře" -#: ../gtk/gtkmenu.c:743 +#: ../gtk/gtkmenu.c:763 msgid "The row number to attach the top of the child to" msgstr "Číslo řádku, ke kterému připevnit horní stranu potomka" -#: ../gtk/gtkmenu.c:750 +#: ../gtk/gtkmenu.c:770 msgid "Bottom Attach" msgstr "Připevnění dole" -#: ../gtk/gtkmenu.c:765 +#: ../gtk/gtkmenu.c:785 msgid "Arbitrary constant to scale down the size of the scroll arrow" msgstr "Libovolná konstanta ke zmenšení velikosti posuvné šipky" @@ -4318,17 +4335,17 @@ msgstr "Nastaví cestu akcelerátoru položky nabídky" msgid "The text for the child label" msgstr "Text popisku potomka" -#: ../gtk/gtkmenuitem.c:497 +#: ../gtk/gtkmenuitem.c:507 msgid "Amount of space used up by arrow, relative to the menu item's font size" msgstr "" "Množství prostoru použitého šipkou, relativně k velikosti písma položky " "nabídky" -#: ../gtk/gtkmenuitem.c:510 +#: ../gtk/gtkmenuitem.c:520 msgid "Width in Characters" msgstr "Šířka ve znacích" -#: ../gtk/gtkmenuitem.c:511 +#: ../gtk/gtkmenuitem.c:521 msgid "The minimum desired width of the menu item in characters" msgstr "Minimální požadovaná šířka položky nabídky ve znacích" @@ -4436,7 +4453,7 @@ msgid "" "The amount of space to add on the top and bottom of the widget, in pixels" msgstr "Množství místa přidaného nahoře a dole od prvku v pixelech" -#: ../gtk/gtkmountoperation.c:163 ../gtk/gtkstylecontext.c:463 +#: ../gtk/gtkmountoperation.c:163 ../gtk/gtkstylecontext.c:465 msgid "Parent" msgstr "Rodič" @@ -4456,179 +4473,179 @@ msgstr "Zda je zobrazováno dialogové okno" msgid "The screen where this window will be displayed." msgstr "Obrazovka, na které se toto okno zobrazí." -#: ../gtk/gtknotebook.c:692 +#: ../gtk/gtknotebook.c:693 msgid "Page" msgstr "Strana" -#: ../gtk/gtknotebook.c:693 +#: ../gtk/gtknotebook.c:694 msgid "The index of the current page" msgstr "Index aktuální strany" -#: ../gtk/gtknotebook.c:701 +#: ../gtk/gtknotebook.c:702 msgid "Tab Position" msgstr "Umístění karty" -#: ../gtk/gtknotebook.c:702 +#: ../gtk/gtknotebook.c:703 msgid "Which side of the notebook holds the tabs" msgstr "Která strana notesu obsahuje karty" -#: ../gtk/gtknotebook.c:709 +#: ../gtk/gtknotebook.c:710 msgid "Show Tabs" msgstr "Zobrazovat karty" -#: ../gtk/gtknotebook.c:710 +#: ../gtk/gtknotebook.c:711 msgid "Whether tabs should be shown" msgstr "Jestli se mají zobrazovat karty" -#: ../gtk/gtknotebook.c:716 +#: ../gtk/gtknotebook.c:717 msgid "Show Border" msgstr "Zobrazovat okraj" -#: ../gtk/gtknotebook.c:717 +#: ../gtk/gtknotebook.c:718 msgid "Whether the border should be shown" msgstr "Jestli se má zobrazovat okraj" -#: ../gtk/gtknotebook.c:723 +#: ../gtk/gtknotebook.c:724 msgid "Scrollable" msgstr "Posunovatelné" -#: ../gtk/gtknotebook.c:724 +#: ../gtk/gtknotebook.c:725 msgid "If TRUE, scroll arrows are added if there are too many tabs to fit" -msgstr "Je-li TRUE, jsou přidány posuvné šipky, pokud je příliš mnoho karet" +msgstr "Je-li zapnuto, jsou přidány posuvné šipky, pokud je příliš mnoho karet" -#: ../gtk/gtknotebook.c:730 +#: ../gtk/gtknotebook.c:731 msgid "Enable Popup" msgstr "Povolit kontextové menu" -#: ../gtk/gtknotebook.c:731 +#: ../gtk/gtknotebook.c:732 msgid "" "If TRUE, pressing the right mouse button on the notebook pops up a menu that " "you can use to go to a page" msgstr "" -"Je-li TRUE, stisk pravého tlačítka myši na notesu se zobrazí menu, které " +"Je-li zapnuto, stisk pravého tlačítka myši na notesu se zobrazí menu, které " "můžete použít pro přechod mezi stránkami" -#: ../gtk/gtknotebook.c:745 +#: ../gtk/gtknotebook.c:746 msgid "Group Name" msgstr "Název skupiny" -#: ../gtk/gtknotebook.c:746 +#: ../gtk/gtknotebook.c:747 msgid "Group name for tab drag and drop" msgstr "Název skupiny táhnutí a puštění karet" -#: ../gtk/gtknotebook.c:753 +#: ../gtk/gtknotebook.c:754 msgid "Tab label" msgstr "Popisek karty" -#: ../gtk/gtknotebook.c:754 +#: ../gtk/gtknotebook.c:755 msgid "The string displayed on the child's tab label" msgstr "Řetězec zobrazovaný na popisku karty potomka" -#: ../gtk/gtknotebook.c:760 +#: ../gtk/gtknotebook.c:761 msgid "Menu label" msgstr "Popisek nabídky" -#: ../gtk/gtknotebook.c:761 +#: ../gtk/gtknotebook.c:762 msgid "The string displayed in the child's menu entry" msgstr "Řetězec zobrazovaný v položce menu potomka" -#: ../gtk/gtknotebook.c:774 +#: ../gtk/gtknotebook.c:775 msgid "Tab expand" msgstr "Rozbalit kartu" -#: ../gtk/gtknotebook.c:775 +#: ../gtk/gtknotebook.c:776 msgid "Whether to expand the child's tab" msgstr "Jestli rozbalovat kartu potomků" -#: ../gtk/gtknotebook.c:781 +#: ../gtk/gtknotebook.c:782 msgid "Tab fill" msgstr "Vyplnění kartami" -#: ../gtk/gtknotebook.c:782 +#: ../gtk/gtknotebook.c:783 msgid "Whether the child's tab should fill the allocated area" msgstr "Jestli by měla karta potomků vyplnit přidělený prostor" -#: ../gtk/gtknotebook.c:789 +#: ../gtk/gtknotebook.c:790 msgid "Tab reorderable" msgstr "Karta s měnitelným pořadím" -#: ../gtk/gtknotebook.c:790 +#: ../gtk/gtknotebook.c:791 msgid "Whether the tab is reorderable by user action" msgstr "Jestli má karta měnitelné pořadí z důvodu uživatelské akce" -#: ../gtk/gtknotebook.c:796 +#: ../gtk/gtknotebook.c:797 msgid "Tab detachable" msgstr "Odpojitelná karta" -#: ../gtk/gtknotebook.c:797 +#: ../gtk/gtknotebook.c:798 msgid "Whether the tab is detachable" msgstr "Jestli je karta odpojitelná" -#: ../gtk/gtknotebook.c:812 ../gtk/gtkscrollbar.c:102 +#: ../gtk/gtknotebook.c:813 ../gtk/gtkscrollbar.c:102 msgid "Secondary backward stepper" msgstr "Druhotná šipka pro krok dozadu" -#: ../gtk/gtknotebook.c:813 +#: ../gtk/gtknotebook.c:814 msgid "" "Display a second backward arrow button on the opposite end of the tab area" msgstr "" "Zobrazovat tlačítko s druhou šipkou vzad na opačném konci oblasti karet" -#: ../gtk/gtknotebook.c:828 ../gtk/gtkscrollbar.c:109 +#: ../gtk/gtknotebook.c:829 ../gtk/gtkscrollbar.c:109 msgid "Secondary forward stepper" msgstr "Druhotná šipka pro krok dopředu" -#: ../gtk/gtknotebook.c:829 +#: ../gtk/gtknotebook.c:830 msgid "" "Display a second forward arrow button on the opposite end of the tab area" msgstr "" "Zobrazovat tlačítko s druhou šipkou vpřed na opačném konci oblasti karet" -#: ../gtk/gtknotebook.c:843 ../gtk/gtkscrollbar.c:88 +#: ../gtk/gtknotebook.c:844 ../gtk/gtkscrollbar.c:88 msgid "Backward stepper" msgstr "Šipka pro krok vzad" -#: ../gtk/gtknotebook.c:844 ../gtk/gtkscrollbar.c:89 +#: ../gtk/gtknotebook.c:845 ../gtk/gtkscrollbar.c:89 msgid "Display the standard backward arrow button" msgstr "Zobrazovat tlačítko se standardní šipkou vzad" -#: ../gtk/gtknotebook.c:858 ../gtk/gtkscrollbar.c:95 +#: ../gtk/gtknotebook.c:859 ../gtk/gtkscrollbar.c:95 msgid "Forward stepper" msgstr "Šipka pro krok vpřed" -#: ../gtk/gtknotebook.c:859 ../gtk/gtkscrollbar.c:96 +#: ../gtk/gtknotebook.c:860 ../gtk/gtkscrollbar.c:96 msgid "Display the standard forward arrow button" msgstr "Zobrazovat tlačítko se standardní šipkou vpřed" -#: ../gtk/gtknotebook.c:873 +#: ../gtk/gtknotebook.c:874 msgid "Tab overlap" msgstr "Překryv karty" -#: ../gtk/gtknotebook.c:874 +#: ../gtk/gtknotebook.c:875 msgid "Size of tab overlap area" msgstr "Velikost překryvné oblasti karty" -#: ../gtk/gtknotebook.c:889 +#: ../gtk/gtknotebook.c:890 msgid "Tab curvature" msgstr "Zakřivení karet" -#: ../gtk/gtknotebook.c:890 +#: ../gtk/gtknotebook.c:891 msgid "Size of tab curvature" msgstr "Velikost zakřivení karty" -#: ../gtk/gtknotebook.c:906 +#: ../gtk/gtknotebook.c:907 msgid "Arrow spacing" msgstr "Rozestup šipky" -#: ../gtk/gtknotebook.c:907 +#: ../gtk/gtknotebook.c:908 msgid "Scroll arrow spacing" msgstr "Rozestup šipky posunu" -#: ../gtk/gtknotebook.c:923 +#: ../gtk/gtknotebook.c:924 msgid "Initial gap" msgstr "Počáteční mezera" -#: ../gtk/gtknotebook.c:924 +#: ../gtk/gtknotebook.c:925 msgid "Initial gap before the first tab" msgstr "Počáteční mezera před první kartou" @@ -4724,7 +4741,7 @@ msgstr "Měnit velikost" #: ../gtk/gtkpaned.c:419 msgid "If TRUE, the child expands and shrinks along with the paned widget" -msgstr "Je-li TRUE, potomek se zvětšuje a zmenšuje spolu s widgetem paned" +msgstr "Je-li zapnuto, potomek se zvětšuje a zmenšuje spolu s widgetem paned" #: ../gtk/gtkpaned.c:434 msgid "Shrink" @@ -4732,7 +4749,7 @@ msgstr "Zmenšovat" #: ../gtk/gtkpaned.c:435 msgid "If TRUE, the child can be made smaller than its requisition" -msgstr "Je-li TRUE, může být potomek menší, než jeho požadavek" +msgstr "Je-li zapnuto, může být potomek menší, než jeho požadavek" #: ../gtk/gtkplug.c:202 ../gtk/gtkstatusicon.c:314 msgid "Embedded" @@ -4784,7 +4801,7 @@ msgstr "Je virtuální" #: ../gtk/gtkprinter.c:138 msgid "FALSE if this represents a real hardware printer" -msgstr "ZAPNUTO, představuje-li skutečnou hardwarovou tiskárnu" +msgstr "Zapnuto, představuje-li skutečnou hardwarovou tiskárnu" #: ../gtk/gtkprinter.c:144 msgid "Accepts PDF" @@ -4792,7 +4809,7 @@ msgstr "Přijímá PDF" #: ../gtk/gtkprinter.c:145 msgid "TRUE if this printer can accept PDF" -msgstr "ZAPNUTO, přijímá-li tato tiskárna PDF" +msgstr "Zapnuto, přijímá-li tato tiskárna PDF" #: ../gtk/gtkprinter.c:151 msgid "Accepts PostScript" @@ -4800,7 +4817,7 @@ msgstr "Přijímá PostScript" #: ../gtk/gtkprinter.c:152 msgid "TRUE if this printer can accept PostScript" -msgstr "ZAPNUTO, může-li tato tiskárna přijmout PostScript" +msgstr "Zapnuto, může-li tato tiskárna přijmout PostScript" #: ../gtk/gtkprinter.c:158 msgid "State Message" @@ -4836,7 +4853,7 @@ msgstr "Pozastavená tiskárna" #: ../gtk/gtkprinter.c:199 msgid "TRUE if this printer is paused" -msgstr "ZAPNUTO, je-li tato tiskárna pozastavena" +msgstr "Zapnuto, je-li tato tiskárna pozastavena" #: ../gtk/gtkprinter.c:212 msgid "Accepting Jobs" @@ -4844,7 +4861,7 @@ msgstr "Přijímá úlohy" #: ../gtk/gtkprinter.c:213 msgid "TRUE if this printer is accepting new jobs" -msgstr "ZAPNUTO, přijímá-li tato tiskárna nové úlohy" +msgstr "Zapnuto, přijímá-li tato tiskárna nové úlohy" #: ../gtk/gtkprinteroption.c:103 msgid "Option Value" @@ -4896,7 +4913,7 @@ msgid "" "TRUE if the print job will continue to emit status-changed signals after the " "print data has been sent to the printer or print server." msgstr "" -"ZAPNUTO, bude-li tisková úloha pokračovat ve vysílání signálů o změně stavu " +"Zapnuto, bude-li tisková úloha pokračovat ve vysílání signálů o změně stavu " "poté, co byla tisková data odeslána na tiskárnu nebo tiskový server." #: ../gtk/gtkprintoperation.c:1087 @@ -5261,7 +5278,7 @@ msgstr "Zaokrouhlené číslice" msgid "The number of digits to round the value to." msgstr "Počet číslic, na který se má hodnota zaokrouhlit." -#: ../gtk/gtkrange.c:527 ../gtk/gtkswitch.c:868 +#: ../gtk/gtkrange.c:527 ../gtk/gtkswitch.c:848 msgid "Slider Width" msgstr "Šířka ukazovátka" @@ -5439,47 +5456,47 @@ msgstr "Ikony" msgid "List of icon names" msgstr "Seznam názvů ikon" -#: ../gtk/gtkscale.c:295 +#: ../gtk/gtkscale.c:310 msgid "The number of decimal places that are displayed in the value" msgstr "Počet desetinných míst zobrazovaných z hodnoty" -#: ../gtk/gtkscale.c:304 +#: ../gtk/gtkscale.c:319 msgid "Draw Value" msgstr "Kreslit hodnotu" -#: ../gtk/gtkscale.c:305 +#: ../gtk/gtkscale.c:320 msgid "Whether the current value is displayed as a string next to the slider" msgstr "Jestli je aktuální hodnota zobrazována jako řetězec vedle posuvníku" -#: ../gtk/gtkscale.c:312 +#: ../gtk/gtkscale.c:327 msgid "Has Origin" msgstr "Má počátek" -#: ../gtk/gtkscale.c:313 +#: ../gtk/gtkscale.c:328 msgid "Whether the scale has an origin" msgstr "Jestli má změna velikosti počátek" -#: ../gtk/gtkscale.c:320 +#: ../gtk/gtkscale.c:335 msgid "Value Position" msgstr "Pozice hodnoty" -#: ../gtk/gtkscale.c:321 +#: ../gtk/gtkscale.c:336 msgid "The position in which the current value is displayed" msgstr "Pozice, kde je zobrazována aktuální hodnota" -#: ../gtk/gtkscale.c:328 +#: ../gtk/gtkscale.c:343 msgid "Slider Length" msgstr "Délka posuvníku" -#: ../gtk/gtkscale.c:329 +#: ../gtk/gtkscale.c:344 msgid "Length of scale's slider" msgstr "Délka posuvníku widgetu pro rozsah" -#: ../gtk/gtkscale.c:337 +#: ../gtk/gtkscale.c:352 msgid "Value spacing" msgstr "Mezera okolo hodnoty" -#: ../gtk/gtkscale.c:338 +#: ../gtk/gtkscale.c:353 msgid "Space between value text and the slider/trough area" msgstr "Mezera mezi textem hodnoty a oblastí posuvníku/koryta" @@ -5541,43 +5558,43 @@ msgid "" "Display a second forward arrow button on the opposite end of the scrollbar" msgstr "Zobrazit tlačítko s druhou šipkou dopředu na opačném konci posuvníku" -#: ../gtk/gtkscrolledwindow.c:372 +#: ../gtk/gtkscrolledwindow.c:367 msgid "Horizontal Adjustment" msgstr "Vodorovné zarovnání" -#: ../gtk/gtkscrolledwindow.c:373 +#: ../gtk/gtkscrolledwindow.c:368 msgid "The GtkAdjustment for the horizontal position" msgstr "Hodnota GtkAdjustment pro vodorovnou pozici" -#: ../gtk/gtkscrolledwindow.c:379 +#: ../gtk/gtkscrolledwindow.c:374 msgid "Vertical Adjustment" msgstr "Svislé zarovnání" -#: ../gtk/gtkscrolledwindow.c:380 +#: ../gtk/gtkscrolledwindow.c:375 msgid "The GtkAdjustment for the vertical position" msgstr "Hodnota GtkAdjustment pro svislou pozici" -#: ../gtk/gtkscrolledwindow.c:386 +#: ../gtk/gtkscrolledwindow.c:381 msgid "Horizontal Scrollbar Policy" msgstr "Strategie pro vodorovný posuvník" -#: ../gtk/gtkscrolledwindow.c:387 +#: ../gtk/gtkscrolledwindow.c:382 msgid "When the horizontal scrollbar is displayed" msgstr "Kdy se zobrazuje vodorovný posuvník" -#: ../gtk/gtkscrolledwindow.c:394 +#: ../gtk/gtkscrolledwindow.c:389 msgid "Vertical Scrollbar Policy" msgstr "Strategie pro svislý posuvník" -#: ../gtk/gtkscrolledwindow.c:395 +#: ../gtk/gtkscrolledwindow.c:390 msgid "When the vertical scrollbar is displayed" msgstr "Kdy se zobrazuje svislý posuvník" -#: ../gtk/gtkscrolledwindow.c:403 +#: ../gtk/gtkscrolledwindow.c:398 msgid "Window Placement" msgstr "Umístění okna" -#: ../gtk/gtkscrolledwindow.c:404 +#: ../gtk/gtkscrolledwindow.c:399 msgid "" "Where the contents are located with respect to the scrollbars. This property " "only takes effect if \"window-placement-set\" is TRUE." @@ -5585,11 +5602,11 @@ msgstr "" "Kde jsou umístěny obsahy s přihlédnutím k posuvníkům. Tato vlastnost je " "platná jen pokud má „window-placement-set“ hodnotu ZAPNUTO." -#: ../gtk/gtkscrolledwindow.c:421 +#: ../gtk/gtkscrolledwindow.c:416 msgid "Window Placement Set" msgstr "Nastavení umístění okna" -#: ../gtk/gtkscrolledwindow.c:422 +#: ../gtk/gtkscrolledwindow.c:417 msgid "" "Whether \"window-placement\" should be used to determine the location of the " "contents with respect to the scrollbars." @@ -5597,52 +5614,52 @@ msgstr "" "Zda by mělo být použito „window-placement“ k určení umístění obsahů s " "přihlédnutím k posuvníkům." -#: ../gtk/gtkscrolledwindow.c:428 +#: ../gtk/gtkscrolledwindow.c:423 msgid "Shadow Type" msgstr "Typ stínu" -#: ../gtk/gtkscrolledwindow.c:429 +#: ../gtk/gtkscrolledwindow.c:424 msgid "Style of bevel around the contents" msgstr "Styl rámu okolo obsahu" -#: ../gtk/gtkscrolledwindow.c:443 +#: ../gtk/gtkscrolledwindow.c:438 msgid "Scrollbars within bevel" msgstr "Posuvníky uvnitř rámu" -#: ../gtk/gtkscrolledwindow.c:444 +#: ../gtk/gtkscrolledwindow.c:439 msgid "Place scrollbars within the scrolled window's bevel" msgstr "Umístit posuvníky dovnitř posunutého rámu okna" -#: ../gtk/gtkscrolledwindow.c:450 +#: ../gtk/gtkscrolledwindow.c:445 msgid "Scrollbar spacing" msgstr "Odstup posuvníků" -#: ../gtk/gtkscrolledwindow.c:451 +#: ../gtk/gtkscrolledwindow.c:446 msgid "Number of pixels between the scrollbars and the scrolled window" msgstr "Počet pixelů mezi posuvníky a posouvaným oknem" -#: ../gtk/gtkscrolledwindow.c:467 +#: ../gtk/gtkscrolledwindow.c:462 msgid "Minimum Content Width" msgstr "Minimální šířka obsahu" -#: ../gtk/gtkscrolledwindow.c:468 +#: ../gtk/gtkscrolledwindow.c:463 msgid "The minimum width that the scrolled window will allocate to its content" msgstr "Minimální šířka, na kterou posuvné okno alokuje svůj obsah" -#: ../gtk/gtkscrolledwindow.c:482 +#: ../gtk/gtkscrolledwindow.c:477 msgid "Minimum Content Height" msgstr "Minimální výška obsahu" -#: ../gtk/gtkscrolledwindow.c:483 +#: ../gtk/gtkscrolledwindow.c:478 msgid "" "The minimum height that the scrolled window will allocate to its content" msgstr "Minimální výška, na kterou posuvné okno alokuje svůj obsah" -#: ../gtk/gtkscrolledwindow.c:498 +#: ../gtk/gtkscrolledwindow.c:493 msgid "Kinetic Scrolling" msgstr "Živé posunování" -#: ../gtk/gtkscrolledwindow.c:499 +#: ../gtk/gtkscrolledwindow.c:494 msgid "Kinetic scrolling mode." msgstr "Režim živého posunování." @@ -5654,11 +5671,11 @@ msgstr "Kreslit" msgid "Whether the separator is drawn, or just blank" msgstr "Jestli je oddělovač kresleny nebo prostě prázdný" -#: ../gtk/gtksettings.c:360 +#: ../gtk/gtksettings.c:354 msgid "Double Click Time" msgstr "Čas pro dvojité kliknutí" -#: ../gtk/gtksettings.c:361 +#: ../gtk/gtksettings.c:355 msgid "" "Maximum time allowed between two clicks for them to be considered a double " "click (in milliseconds)" @@ -5666,11 +5683,11 @@ msgstr "" "Maximální čas dovolený mezi dvěma kliknutími, aby byla považována za dvojité " "kliknutí (v milisekundách)" -#: ../gtk/gtksettings.c:368 +#: ../gtk/gtksettings.c:362 msgid "Double Click Distance" msgstr "Vzdálenost pro dvojité kliknutí" -#: ../gtk/gtksettings.c:369 +#: ../gtk/gtksettings.c:363 msgid "" "Maximum distance allowed between two clicks for them to be considered a " "double click (in pixels)" @@ -5678,35 +5695,35 @@ msgstr "" "Maximální vzdálenost dovolený mezi dvěma kliknutími, aby byla považována za " "dvojité kliknutí (v pixelech)" -#: ../gtk/gtksettings.c:385 +#: ../gtk/gtksettings.c:379 msgid "Cursor Blink" msgstr "Blikání kurzoru" -#: ../gtk/gtksettings.c:386 +#: ../gtk/gtksettings.c:380 msgid "Whether the cursor should blink" msgstr "Jestli by kurzor měl blikat" -#: ../gtk/gtksettings.c:393 +#: ../gtk/gtksettings.c:387 msgid "Cursor Blink Time" msgstr "Perioda blikání kurzoru" -#: ../gtk/gtksettings.c:394 +#: ../gtk/gtksettings.c:388 msgid "Length of the cursor blink cycle, in milliseconds" msgstr "Délka cyklu blikání kurzoru v milisekundách" -#: ../gtk/gtksettings.c:413 +#: ../gtk/gtksettings.c:407 msgid "Cursor Blink Timeout" msgstr "Perioda blikání kurzoru" -#: ../gtk/gtksettings.c:414 +#: ../gtk/gtksettings.c:408 msgid "Time after which the cursor stops blinking, in seconds" msgstr "Čas, po kterém blikání kurzoru ustane, v milisekundách" -#: ../gtk/gtksettings.c:421 +#: ../gtk/gtksettings.c:415 msgid "Split Cursor" msgstr "Rozdělit kurzor" -#: ../gtk/gtksettings.c:422 +#: ../gtk/gtksettings.c:416 msgid "" "Whether two cursors should be displayed for mixed left-to-right and right-to-" "left text" @@ -5714,155 +5731,155 @@ msgstr "" "Jestli mají být zobrazovány dva kurzory v kombinovaném textu zleva doprava i " "zprava doleva" -#: ../gtk/gtksettings.c:429 +#: ../gtk/gtksettings.c:423 msgid "Theme Name" msgstr "Název motivu" -#: ../gtk/gtksettings.c:430 +#: ../gtk/gtksettings.c:424 msgid "Name of theme to load" msgstr "Název motivu, který se má načíst" -#: ../gtk/gtksettings.c:442 +#: ../gtk/gtksettings.c:436 msgid "Icon Theme Name" msgstr "Název motivu ikon" -#: ../gtk/gtksettings.c:443 +#: ../gtk/gtksettings.c:437 msgid "Name of icon theme to use" msgstr "Název motivu ikon, které se má používat" -#: ../gtk/gtksettings.c:451 +#: ../gtk/gtksettings.c:445 msgid "Fallback Icon Theme Name" msgstr "Název náhradního motivu ikon" -#: ../gtk/gtksettings.c:452 +#: ../gtk/gtksettings.c:446 msgid "Name of a icon theme to fall back to" msgstr "Název motivu ikon, kterým nahrazovat" -#: ../gtk/gtksettings.c:460 +#: ../gtk/gtksettings.c:454 msgid "Key Theme Name" msgstr "Název motivu kláves" -#: ../gtk/gtksettings.c:461 +#: ../gtk/gtksettings.c:455 msgid "Name of key theme to load" msgstr "Název motivu kláves, který se má načíst" -#: ../gtk/gtksettings.c:469 +#: ../gtk/gtksettings.c:463 msgid "Menu bar accelerator" msgstr "Akcelerátor lišty s menu" -#: ../gtk/gtksettings.c:470 +#: ../gtk/gtksettings.c:464 msgid "Keybinding to activate the menu bar" msgstr "Klávesová zkratka pro aktivaci lišty s menu" -#: ../gtk/gtksettings.c:478 +#: ../gtk/gtksettings.c:472 msgid "Drag threshold" msgstr "Práh táhnutí" -#: ../gtk/gtksettings.c:479 +#: ../gtk/gtksettings.c:473 msgid "Number of pixels the cursor can move before dragging" msgstr "Počet pixelů, o které se kurzor může posunout před táhnutím" -#: ../gtk/gtksettings.c:487 +#: ../gtk/gtksettings.c:481 msgid "Font Name" msgstr "Název písma" -#: ../gtk/gtksettings.c:488 +#: ../gtk/gtksettings.c:482 msgid "Name of default font to use" msgstr "Název standardně používaného písma" -#: ../gtk/gtksettings.c:510 +#: ../gtk/gtksettings.c:504 msgid "Icon Sizes" msgstr "Velikosti ikon" # FIXME: s/$/)/ -#: ../gtk/gtksettings.c:511 +#: ../gtk/gtksettings.c:505 msgid "List of icon sizes (gtk-menu=16,16:gtk-button=20,20..." msgstr "Seznam velikostí ikon (gtk-menu=16,16;gtk-button=20,20…" -#: ../gtk/gtksettings.c:519 +#: ../gtk/gtksettings.c:513 msgid "GTK Modules" msgstr "Moduly GTK" -#: ../gtk/gtksettings.c:520 +#: ../gtk/gtksettings.c:514 msgid "List of currently active GTK modules" msgstr "Seznam momentálně aktivních modulů GTK" -#: ../gtk/gtksettings.c:528 +#: ../gtk/gtksettings.c:522 msgid "Xft Antialias" msgstr "Vyhlazování Xft" -#: ../gtk/gtksettings.c:529 +#: ../gtk/gtksettings.c:523 msgid "Whether to antialias Xft fonts; 0=no, 1=yes, -1=default" msgstr "Jestli vyhlazovat písma Xft; 0=ne, 1=ano, -1=výchozí" -#: ../gtk/gtksettings.c:538 +#: ../gtk/gtksettings.c:532 msgid "Xft Hinting" msgstr "Hinting Xft" -#: ../gtk/gtksettings.c:539 +#: ../gtk/gtksettings.c:533 msgid "Whether to hint Xft fonts; 0=no, 1=yes, -1=default" msgstr "Jestli provádět hint písem Xft; 0=ne, 1=ano, -1=výchozí" -#: ../gtk/gtksettings.c:548 +#: ../gtk/gtksettings.c:542 msgid "Xft Hint Style" msgstr "Styl Xft hint" -#: ../gtk/gtksettings.c:549 +#: ../gtk/gtksettings.c:543 msgid "" "What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull" msgstr "" "Jakou úroveň hintingu používat; hintnone, hintslight, hintmedium nebo " "hintfull" -#: ../gtk/gtksettings.c:558 +#: ../gtk/gtksettings.c:552 msgid "Xft RGBA" msgstr "RGBA Xft" -#: ../gtk/gtksettings.c:559 +#: ../gtk/gtksettings.c:553 msgid "Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr" msgstr "Typ subpixelového vyhlazování; none, rgb, bgr, vrgb, vbgr" -#: ../gtk/gtksettings.c:568 +#: ../gtk/gtksettings.c:562 msgid "Xft DPI" msgstr "DPI Xft" -#: ../gtk/gtksettings.c:569 +#: ../gtk/gtksettings.c:563 msgid "Resolution for Xft, in 1024 * dots/inch. -1 to use default value" msgstr "Rozlišení Xft v 1024 * bodů/palec, -1 pro použití výchozí hodnoty" -#: ../gtk/gtksettings.c:578 +#: ../gtk/gtksettings.c:572 msgid "Cursor theme name" msgstr "Název motivu kurzoru" -#: ../gtk/gtksettings.c:579 +#: ../gtk/gtksettings.c:573 msgid "Name of the cursor theme to use, or NULL to use the default theme" msgstr "" "Název motivu kurzoru, který chcete používat, nebo NULL, chcete-li používat " "výchozí motiv" -#: ../gtk/gtksettings.c:587 +#: ../gtk/gtksettings.c:581 msgid "Cursor theme size" msgstr "Velikost motivu kurzoru" -#: ../gtk/gtksettings.c:588 +#: ../gtk/gtksettings.c:582 msgid "Size to use for cursors, or 0 to use the default size" msgstr "" "Velikost, kterou chcete používat u kurzorů, nebo 0, chcete-li výchozí " "velikost" -#: ../gtk/gtksettings.c:597 +#: ../gtk/gtksettings.c:591 msgid "Alternative button order" msgstr "Alternativní pořadí tlačítek" -#: ../gtk/gtksettings.c:598 +#: ../gtk/gtksettings.c:592 msgid "Whether buttons in dialogs should use the alternative button order" msgstr "Jestli tlačítka v dialozích mají používat alternativní pořadí tlačítek" -#: ../gtk/gtksettings.c:615 +#: ../gtk/gtksettings.c:609 msgid "Alternative sort indicator direction" msgstr "Alternativní pořadí indikátoru třídění" -#: ../gtk/gtksettings.c:616 +#: ../gtk/gtksettings.c:610 msgid "" "Whether the direction of the sort indicators in list and tree views is " "inverted compared to the default (where down means ascending)" @@ -5870,11 +5887,11 @@ msgstr "" "Zda směřování třídících indikátorů v seznamu a stromových zobrazeních je " "převrácené při srovnání s výchozím (kde dole znamená vzestupně)" -#: ../gtk/gtksettings.c:624 +#: ../gtk/gtksettings.c:618 msgid "Show the 'Input Methods' menu" msgstr "Zobrazit nabídku „Vstupní metody“" -#: ../gtk/gtksettings.c:625 +#: ../gtk/gtksettings.c:619 msgid "" "Whether the context menus of entries and text views should offer to change " "the input method" @@ -5882,11 +5899,11 @@ msgstr "" "Jestli kontextové nabídky vstupních polí a textových polí mají nabízet změnu " "vstupní metody" -#: ../gtk/gtksettings.c:633 +#: ../gtk/gtksettings.c:627 msgid "Show the 'Insert Unicode Control Character' menu" msgstr "Zobrazit nabídku vložení řídících znaků Unicode" -#: ../gtk/gtksettings.c:634 +#: ../gtk/gtksettings.c:628 msgid "" "Whether the context menus of entries and text views should offer to insert " "control characters" @@ -5894,246 +5911,246 @@ msgstr "" "Jestli kontextové nabídky vstupních polí a textových polí mají nabízet změnu " "vložení řídicích znaků" -#: ../gtk/gtksettings.c:642 +#: ../gtk/gtksettings.c:636 msgid "Start timeout" msgstr "Časový limit spuštění" -#: ../gtk/gtksettings.c:643 +#: ../gtk/gtksettings.c:637 msgid "Starting value for timeouts, when button is pressed" msgstr "Počáteční hodnota časových limitů, je-li stisknuto tlačítko" -#: ../gtk/gtksettings.c:652 +#: ../gtk/gtksettings.c:646 msgid "Repeat timeout" msgstr "Opakovat časový limit" -#: ../gtk/gtksettings.c:653 +#: ../gtk/gtksettings.c:647 msgid "Repeat value for timeouts, when button is pressed" msgstr "Opakovací hodnota časových limitů, je-li stisknuto tlačítko" -#: ../gtk/gtksettings.c:662 +#: ../gtk/gtksettings.c:656 msgid "Expand timeout" msgstr "Časový limit rozbalení" -#: ../gtk/gtksettings.c:663 +#: ../gtk/gtksettings.c:657 msgid "Expand value for timeouts, when a widget is expanding a new region" msgstr "Rozšířit hodnoty na časové limity, pokud widget rozšiřuje novou oblast" -#: ../gtk/gtksettings.c:698 +#: ../gtk/gtksettings.c:695 msgid "Color scheme" msgstr "Schéma barev" -#: ../gtk/gtksettings.c:699 +#: ../gtk/gtksettings.c:696 msgid "A palette of named colors for use in themes" msgstr "Paleta pojmenovaných barev k použití v motivech" -#: ../gtk/gtksettings.c:708 +#: ../gtk/gtksettings.c:705 msgid "Enable Animations" msgstr "Povolit animace" -#: ../gtk/gtksettings.c:709 +#: ../gtk/gtksettings.c:706 msgid "Whether to enable toolkit-wide animations." msgstr "Zda povolit animace toolkit-wide." -#: ../gtk/gtksettings.c:730 +#: ../gtk/gtksettings.c:727 msgid "Enable Touchscreen Mode" msgstr "Povolit režim dotykové obrazovky" -#: ../gtk/gtksettings.c:731 +#: ../gtk/gtksettings.c:728 msgid "When TRUE, there are no motion notify events delivered on this screen" msgstr "" "Je-li ZAPNUTO, nejsou na tuto obrazovku dodány žádné události upozornění na " "pohyb" -#: ../gtk/gtksettings.c:748 +#: ../gtk/gtksettings.c:745 msgid "Tooltip timeout" msgstr "Časový limit místní nápovědy" -#: ../gtk/gtksettings.c:749 +#: ../gtk/gtksettings.c:746 msgid "Timeout before tooltip is shown" msgstr "Časový limit před tím, než je zobrazena místní nápověda" -#: ../gtk/gtksettings.c:774 +#: ../gtk/gtksettings.c:771 msgid "Tooltip browse timeout" msgstr "Časový limit procházení místní nápovědy" -#: ../gtk/gtksettings.c:775 +#: ../gtk/gtksettings.c:772 msgid "Timeout before tooltip is shown when browse mode is enabled" msgstr "" "Časový limit před tím, než je zobrazena místní nápověda, je-li zapnut režim " "procházení" -#: ../gtk/gtksettings.c:796 +#: ../gtk/gtksettings.c:793 msgid "Tooltip browse mode timeout" msgstr "Časový limit režimu procházení místní nápovědy" -#: ../gtk/gtksettings.c:797 +#: ../gtk/gtksettings.c:794 msgid "Timeout after which browse mode is disabled" msgstr "Časový limit, po kterém je vypnut režim procházení" -#: ../gtk/gtksettings.c:816 +#: ../gtk/gtksettings.c:813 msgid "Keynav Cursor Only" msgstr "Pouze kurzor klávesové navigace" -#: ../gtk/gtksettings.c:817 +#: ../gtk/gtksettings.c:814 msgid "When TRUE, there are only cursor keys available to navigate widgets" msgstr "" "Je-li ZAPNUTO, k navigaci widgetů jsou dostupné pouze kurzorové klávesy" -#: ../gtk/gtksettings.c:834 +#: ../gtk/gtksettings.c:831 msgid "Keynav Wrap Around" msgstr "Zalomení klávesové navigace" -#: ../gtk/gtksettings.c:835 +#: ../gtk/gtksettings.c:832 msgid "Whether to wrap around when keyboard-navigating widgets" msgstr "Jestli zarovnávat okolo, jsou-li widgety keyboard-navigating" -#: ../gtk/gtksettings.c:855 +#: ../gtk/gtksettings.c:852 msgid "Error Bell" msgstr "Chybový zvonek" -#: ../gtk/gtksettings.c:856 +#: ../gtk/gtksettings.c:853 msgid "When TRUE, keyboard navigation and other errors will cause a beep" msgstr "Je-li ZAPNUTO, klávesnicová navigace a další chyby způsobí pípnutí" -#: ../gtk/gtksettings.c:873 +#: ../gtk/gtksettings.c:872 msgid "Color Hash" msgstr "Hash barvy" -#: ../gtk/gtksettings.c:874 +#: ../gtk/gtksettings.c:873 msgid "A hash table representation of the color scheme." msgstr "Zastoupení tabulky heš barevného schématu." -#: ../gtk/gtksettings.c:882 +#: ../gtk/gtksettings.c:881 msgid "Default file chooser backend" msgstr "Výchozí podpůrná vrstva výběru souborů" -#: ../gtk/gtksettings.c:883 +#: ../gtk/gtksettings.c:882 msgid "Name of the GtkFileChooser backend to use by default" msgstr "Název podpůrné vrstvy GtkFileChooser, kterou používat standardně" -#: ../gtk/gtksettings.c:900 +#: ../gtk/gtksettings.c:899 msgid "Default print backend" msgstr "Výchozí podpůrná tisková vrstva" -#: ../gtk/gtksettings.c:901 +#: ../gtk/gtksettings.c:900 msgid "List of the GtkPrintBackend backends to use by default" msgstr "" "Seznam podpůrných vrstev GtkFileChooser, které chcete používat jako výchozí" -#: ../gtk/gtksettings.c:924 +#: ../gtk/gtksettings.c:923 msgid "Default command to run when displaying a print preview" msgstr "Výchozí příkaz určený ke spuštění při zobrazení tiskového náhledu" -#: ../gtk/gtksettings.c:925 +#: ../gtk/gtksettings.c:924 msgid "Command to run when displaying a print preview" msgstr "Příkaz určený ke spuštění při zobrazení tiskového náhledu" -#: ../gtk/gtksettings.c:941 +#: ../gtk/gtksettings.c:940 msgid "Enable Mnemonics" msgstr "Povolit mnemotechniku" -#: ../gtk/gtksettings.c:942 +#: ../gtk/gtksettings.c:941 msgid "Whether labels should have mnemonics" msgstr "Jestli mají popisky mnemotechnické" -#: ../gtk/gtksettings.c:958 +#: ../gtk/gtksettings.c:957 msgid "Enable Accelerators" msgstr "Povolit akcelerátory" -#: ../gtk/gtksettings.c:959 +#: ../gtk/gtksettings.c:958 msgid "Whether menu items should have accelerators" msgstr "Jestli mají mít položky nabídky akcelerátory" -#: ../gtk/gtksettings.c:976 +#: ../gtk/gtksettings.c:975 msgid "Recent Files Limit" msgstr "Limit posledních souborů" -#: ../gtk/gtksettings.c:977 +#: ../gtk/gtksettings.c:976 msgid "Number of recently used files" msgstr "Počet naposledy použitých souborů" -#: ../gtk/gtksettings.c:997 +#: ../gtk/gtksettings.c:996 msgid "Default IM module" msgstr "Výchozí modul IM" -#: ../gtk/gtksettings.c:998 +#: ../gtk/gtksettings.c:997 msgid "Which IM module should be used by default" msgstr "Který modul IM by měl být použit jako výchozí" -#: ../gtk/gtksettings.c:1016 +#: ../gtk/gtksettings.c:1015 msgid "Recent Files Max Age" msgstr "Maximum stáří posledních souborů" -#: ../gtk/gtksettings.c:1017 +#: ../gtk/gtksettings.c:1016 msgid "Maximum age of recently used files, in days" msgstr "Maximum stáří naposledy použitých souborů, ve dnech" -#: ../gtk/gtksettings.c:1026 +#: ../gtk/gtksettings.c:1025 msgid "Fontconfig configuration timestamp" msgstr "Časový údaj nastavení fontconfig" -#: ../gtk/gtksettings.c:1027 +#: ../gtk/gtksettings.c:1026 msgid "Timestamp of current fontconfig configuration" msgstr "Časový údaj aktuálního nastavení fontconfig" -#: ../gtk/gtksettings.c:1049 +#: ../gtk/gtksettings.c:1048 msgid "Sound Theme Name" msgstr "Název motivu zvuků" -#: ../gtk/gtksettings.c:1050 +#: ../gtk/gtksettings.c:1049 msgid "XDG sound theme name" msgstr "Název motivu zvuků XDG" #. Translators: this means sounds that are played as feedback to user input -#: ../gtk/gtksettings.c:1072 +#: ../gtk/gtksettings.c:1071 msgid "Audible Input Feedback" msgstr "Zvuková zpětná vazba vstupu" -#: ../gtk/gtksettings.c:1073 +#: ../gtk/gtksettings.c:1072 msgid "Whether to play event sounds as feedback to user input" msgstr "" "Jestli se mají přehrávat zvuky událostí jako odezva na uživatelský vstup" -#: ../gtk/gtksettings.c:1094 +#: ../gtk/gtksettings.c:1093 msgid "Enable Event Sounds" msgstr "Povolit zvuky událostí" -#: ../gtk/gtksettings.c:1095 +#: ../gtk/gtksettings.c:1094 msgid "Whether to play any event sounds at all" msgstr "Jestli se mají vůbec přehrávat zvuky událostí" -#: ../gtk/gtksettings.c:1110 +#: ../gtk/gtksettings.c:1109 msgid "Enable Tooltips" msgstr "Povolit místní nápovědu" -#: ../gtk/gtksettings.c:1111 +#: ../gtk/gtksettings.c:1110 msgid "Whether tooltips should be shown on widgets" msgstr "Jestli se na widgetech má zobrazovat místní nápověda" -#: ../gtk/gtksettings.c:1124 +#: ../gtk/gtksettings.c:1123 msgid "Toolbar style" msgstr "Styl nástrojové lišty" -#: ../gtk/gtksettings.c:1125 +#: ../gtk/gtksettings.c:1124 msgid "" "Whether default toolbars have text only, text and icons, icons only, etc." msgstr "" "Jestli mají výchozí nástrojové lišty pouze text, text a ikony, pouze ikony " "apod." -#: ../gtk/gtksettings.c:1139 +#: ../gtk/gtksettings.c:1138 msgid "Toolbar Icon Size" msgstr "Velikost ikony nástrojové lišty" -#: ../gtk/gtksettings.c:1140 +#: ../gtk/gtksettings.c:1139 msgid "The size of icons in default toolbars." msgstr "Velikost ikon na výchozích nástrojových lištách." -#: ../gtk/gtksettings.c:1157 +#: ../gtk/gtksettings.c:1156 msgid "Auto Mnemonics" msgstr "Automatická mnemotechniku" -#: ../gtk/gtksettings.c:1158 +#: ../gtk/gtksettings.c:1157 msgid "" "Whether mnemonics should be automatically shown and hidden when the user " "presses the mnemonic activator." @@ -6141,21 +6158,21 @@ msgstr "" "Zda se má mnemotechnika automaticky zobrazovat a skrývat, pokud uživatel " "stiskne aktivátor mnemotechniky." -#: ../gtk/gtksettings.c:1174 +#: ../gtk/gtksettings.c:1173 msgid "Primary button warps slider" msgstr "Primární tlačítko natahuje posuvník" -#: ../gtk/gtksettings.c:1175 +#: ../gtk/gtksettings.c:1174 msgid "" "Whether a primary click on the trough should warp the slider into position" msgstr "" "Jestli kliknutí primárního tlačítka by mělo natáhnout posuvník do pozice" -#: ../gtk/gtksettings.c:1191 +#: ../gtk/gtksettings.c:1190 msgid "Visible Focus" msgstr "Viditelné zaměření" -#: ../gtk/gtksettings.c:1192 +#: ../gtk/gtksettings.c:1191 msgid "" "Whether 'focus rectangles' should be hidden until the user starts to use the " "keyboard." @@ -6163,59 +6180,59 @@ msgstr "" "Jestli by měly být „obdélníky zaměření“ skryté, dokud uživatel nezačne " "používat klávesnici." -#: ../gtk/gtksettings.c:1218 +#: ../gtk/gtksettings.c:1217 msgid "Application prefers a dark theme" msgstr "Aplikace preferuje tmavý motiv" -#: ../gtk/gtksettings.c:1219 +#: ../gtk/gtksettings.c:1218 msgid "Whether the application prefers to have a dark theme." msgstr "Jestli by aplikace raději použila tmavý motiv." -#: ../gtk/gtksettings.c:1234 +#: ../gtk/gtksettings.c:1233 msgid "Show button images" msgstr "Zobrazovat obrázky tlačítek" -#: ../gtk/gtksettings.c:1235 +#: ../gtk/gtksettings.c:1234 msgid "Whether images should be shown on buttons" msgstr "Jestli se mají na tlačítkách zobrazovat obrázky" -#: ../gtk/gtksettings.c:1243 ../gtk/gtksettings.c:1337 +#: ../gtk/gtksettings.c:1242 ../gtk/gtksettings.c:1336 msgid "Select on focus" msgstr "Vybrat při zaměření" -#: ../gtk/gtksettings.c:1244 +#: ../gtk/gtksettings.c:1243 msgid "Whether to select the contents of an entry when it is focused" msgstr "Jestli vybrat obsah položky, pokud položka získá zaměření" -#: ../gtk/gtksettings.c:1261 +#: ../gtk/gtksettings.c:1260 msgid "Password Hint Timeout" msgstr "Časový limit tipu hesla" -#: ../gtk/gtksettings.c:1262 +#: ../gtk/gtksettings.c:1261 msgid "How long to show the last input character in hidden entries" msgstr "Jak dlouho ukazovat znak posledního vstupu ve skrytých vstupech" -#: ../gtk/gtksettings.c:1271 +#: ../gtk/gtksettings.c:1270 msgid "Show menu images" msgstr "Zobrazovat v menu obrázky" -#: ../gtk/gtksettings.c:1272 +#: ../gtk/gtksettings.c:1271 msgid "Whether images should be shown in menus" msgstr "Jestli se mají v menu zobrazovat obrázky" -#: ../gtk/gtksettings.c:1280 +#: ../gtk/gtksettings.c:1279 msgid "Delay before drop down menus appear" msgstr "Prodleva před zobrazením rozbalovacího menu" -#: ../gtk/gtksettings.c:1281 +#: ../gtk/gtksettings.c:1280 msgid "Delay before the submenus of a menu bar appear" msgstr "Prodleva před zobrazením podmenu lišty menu" -#: ../gtk/gtksettings.c:1298 +#: ../gtk/gtksettings.c:1297 msgid "Scrolled Window Placement" msgstr "Umístění posunutého okna" -#: ../gtk/gtksettings.c:1299 +#: ../gtk/gtksettings.c:1298 msgid "" "Where the contents of scrolled windows are located with respect to the " "scrollbars, if not overridden by the scrolled window's own placement." @@ -6223,70 +6240,70 @@ msgstr "" "Zda jsou obsahy posunutých oken umístěny s přihlédnutím k posuvníkům, pokud " "nejsou přepsány vlastním umístěním posunutého okna." -#: ../gtk/gtksettings.c:1308 +#: ../gtk/gtksettings.c:1307 msgid "Can change accelerators" msgstr "Lze měnit akcelerátory" -#: ../gtk/gtksettings.c:1309 +#: ../gtk/gtksettings.c:1308 msgid "" "Whether menu accelerators can be changed by pressing a key over the menu item" msgstr "" "Jestli mohou akcelerátory menu být změněny stiskem klávesy nad položkou menu" -#: ../gtk/gtksettings.c:1317 +#: ../gtk/gtksettings.c:1316 msgid "Delay before submenus appear" msgstr "Prodleva před zobrazením podmenu" -#: ../gtk/gtksettings.c:1318 +#: ../gtk/gtksettings.c:1317 msgid "" "Minimum time the pointer must stay over a menu item before the submenu appear" msgstr "" "Minimální doba, kterou musí zůstat ukazatel nad položku menu, než se objeví " "podmenu" -#: ../gtk/gtksettings.c:1327 +#: ../gtk/gtksettings.c:1326 msgid "Delay before hiding a submenu" msgstr "Prodleva před skrytím podmenu" -#: ../gtk/gtksettings.c:1328 +#: ../gtk/gtksettings.c:1327 msgid "" "The time before hiding a submenu when the pointer is moving towards the " "submenu" msgstr "Doba před skrytím podmenu, pokud se ukazatel pohybuje směrem k podmenu" -#: ../gtk/gtksettings.c:1338 +#: ../gtk/gtksettings.c:1337 msgid "Whether to select the contents of a selectable label when it is focused" msgstr "Jestli vybrat obsah popisku, pokud popisek získá zaměření" -#: ../gtk/gtksettings.c:1346 +#: ../gtk/gtksettings.c:1345 msgid "Custom palette" msgstr "Vlastní paleta" -#: ../gtk/gtksettings.c:1347 +#: ../gtk/gtksettings.c:1346 msgid "Palette to use in the color selector" msgstr "Paleta použitá v prvku pro výběr barev" -#: ../gtk/gtksettings.c:1355 +#: ../gtk/gtksettings.c:1354 msgid "IM Preedit style" msgstr "Styl IM Preedit" -#: ../gtk/gtksettings.c:1356 +#: ../gtk/gtksettings.c:1355 msgid "How to draw the input method preedit string" msgstr "Jak vykreslovat přededitovací řetězec vstupní metody" -#: ../gtk/gtksettings.c:1365 +#: ../gtk/gtksettings.c:1364 msgid "IM Status style" msgstr "Styl stavu IM" -#: ../gtk/gtksettings.c:1366 +#: ../gtk/gtksettings.c:1365 msgid "How to draw the input method statusbar" msgstr "Jak kreslit stavovou lištu vstupní metody" -#: ../gtk/gtksettings.c:1375 +#: ../gtk/gtksettings.c:1374 msgid "Desktop shell shows app menu" msgstr "Shell pracovního prostředí zobrazuje nabídku aplikace" -#: ../gtk/gtksettings.c:1376 +#: ../gtk/gtksettings.c:1375 msgid "" "Set to TRUE if the desktop environment is displaying the app menu, FALSE if " "the app should display it itself." @@ -6294,11 +6311,11 @@ msgstr "" "Nastavte na ZAPNUTO, zobrazuje-li pracovní prostředí nabídku aplikace, nebo " "na VYPNUTO, má-li nabídku zobrazit samotná aplikace." -#: ../gtk/gtksettings.c:1385 +#: ../gtk/gtksettings.c:1384 msgid "Desktop shell shows the menubar" msgstr "Shell pracovního prostředí zobrazuje lištu nabídky" -#: ../gtk/gtksettings.c:1386 +#: ../gtk/gtksettings.c:1385 msgid "" "Set to TRUE if the desktop environment is displaying the menubar, FALSE if " "the app should display it itself." @@ -6306,11 +6323,11 @@ msgstr "" "Nastavte na ZAPNUTO, zobrazuje-li pracovní prostředí lištu nabídky, nebo na " "VYPNUTO, má-li lištu zobrazit samotná aplikace." -#: ../gtk/gtksettings.c:1403 +#: ../gtk/gtksettings.c:1402 msgid "Enable primary paste" msgstr "Zapnout primární vkládání" -#: ../gtk/gtksettings.c:1404 +#: ../gtk/gtksettings.c:1403 msgid "" "Whether a middle click on a mouse should paste the 'PRIMARY' clipboard " "content at the cursor location." @@ -6318,11 +6335,11 @@ msgstr "" "Jestli kliknutí prostředním tlačítkem by mělo vložit obsah schránky \"PRIMARY" "\" na pozici kurzoru." -#: ../gtk/gtksizegroup.c:380 ../gtk/gtktreeselection.c:129 +#: ../gtk/gtksizegroup.c:324 ../gtk/gtktreeselection.c:129 msgid "Mode" msgstr "Režim" -#: ../gtk/gtksizegroup.c:381 +#: ../gtk/gtksizegroup.c:325 msgid "" "The directions in which the size group affects the requested sizes of its " "component widgets" @@ -6330,11 +6347,11 @@ msgstr "" "Pravidla, podle kterých velikost skupiny ovlivňuje požadované velikosti " "jednotlivých widgetů" -#: ../gtk/gtksizegroup.c:397 +#: ../gtk/gtksizegroup.c:341 msgid "Ignore hidden" msgstr "Ignorovat skryté" -#: ../gtk/gtksizegroup.c:398 +#: ../gtk/gtksizegroup.c:342 msgid "" "If TRUE, unmapped widgets are ignored when determining the size of the group" msgstr "" @@ -6419,7 +6436,7 @@ msgstr "Jestli je stavová ikona začleněna" msgid "The orientation of the tray" msgstr "Orientace oznamovací oblasti" -#: ../gtk/gtkstatusicon.c:358 ../gtk/gtkwidget.c:1126 +#: ../gtk/gtkstatusicon.c:358 ../gtk/gtkwidget.c:1125 msgid "Has tooltip" msgstr "Má místní nápovědu" @@ -6427,15 +6444,15 @@ msgstr "Má místní nápovědu" msgid "Whether this tray icon has a tooltip" msgstr "Jestli má ikona v oznamovací oblasti místní nápovědu" -#: ../gtk/gtkstatusicon.c:384 ../gtk/gtkwidget.c:1147 +#: ../gtk/gtkstatusicon.c:384 ../gtk/gtkwidget.c:1146 msgid "Tooltip Text" msgstr "Text místní nápovědy" -#: ../gtk/gtkstatusicon.c:385 ../gtk/gtkwidget.c:1148 ../gtk/gtkwidget.c:1169 +#: ../gtk/gtkstatusicon.c:385 ../gtk/gtkwidget.c:1147 ../gtk/gtkwidget.c:1168 msgid "The contents of the tooltip for this widget" msgstr "Obsahy místní nápovědy pro tento widget" -#: ../gtk/gtkstatusicon.c:408 ../gtk/gtkwidget.c:1168 +#: ../gtk/gtkstatusicon.c:408 ../gtk/gtkwidget.c:1167 msgid "Tooltip markup" msgstr "Značka místní nápovědy" @@ -6447,19 +6464,19 @@ msgstr "Obsahy místní nápovědy pro tuto ikonu v oznamovací oblasti" msgid "The title of this tray icon" msgstr "Titulek této ikony v oznamovací oblasti" -#: ../gtk/gtkstylecontext.c:441 +#: ../gtk/gtkstylecontext.c:443 msgid "The associated GdkScreen" msgstr "Asociované GdkScreen" -#: ../gtk/gtkstylecontext.c:447 +#: ../gtk/gtkstylecontext.c:449 msgid "Direction" msgstr "Směr" -#: ../gtk/gtkstylecontext.c:448 ../gtk/gtktexttag.c:287 +#: ../gtk/gtkstylecontext.c:450 ../gtk/gtktexttag.c:287 msgid "Text direction" msgstr "Směr textu" -#: ../gtk/gtkstylecontext.c:464 +#: ../gtk/gtkstylecontext.c:466 msgid "The parent style context" msgstr "Kontext stylu rodiče" @@ -6479,11 +6496,11 @@ msgstr "Typ hodnoty" msgid "The value type returned by GtkStyleContext" msgstr "Typ hodnoty vracený objektem GtkStyleContext" -#: ../gtk/gtkswitch.c:835 +#: ../gtk/gtkswitch.c:815 msgid "Whether the switch is on or off" msgstr "Jestli je přepínač zapnut nebo vypnut" -#: ../gtk/gtkswitch.c:869 +#: ../gtk/gtkswitch.c:849 msgid "The minimum width of the handle" msgstr "Minimální šířka ovládacího panelu" @@ -6539,11 +6556,11 @@ msgstr "" "Seznam cílů podporovaných tímto bufferem u vkládání ze schránky a cíle DND" #: ../gtk/gtktexthandle.c:470 ../gtk/gtktexthandle.c:471 -#: ../gtk/gtkwidget.c:992 +#: ../gtk/gtkwidget.c:991 msgid "Parent widget" msgstr "Rodičovský widget" -#: ../gtk/gtktexthandle.c:478 ../gtk/gtkwidget.c:1183 +#: ../gtk/gtktexthandle.c:478 ../gtk/gtkwidget.c:1182 msgid "Window" msgstr "Okno" @@ -6557,11 +6574,11 @@ msgstr "Název značky" #: ../gtk/gtktextmark.c:134 msgid "Left gravity" -msgstr "Tíže vlevo" +msgstr "Přitažlivost zleva" #: ../gtk/gtktextmark.c:135 msgid "Whether the mark has left gravity" -msgstr "Jestli tato značka má tíži vlevo" +msgstr "Jestli tato značka má přitažlivost vlevo" #: ../gtk/gtktexttag.c:193 msgid "Tag name" @@ -6593,7 +6610,9 @@ msgstr "RGBA popředí" #: ../gtk/gtktexttag.c:288 msgid "Text direction, e.g. right-to-left or left-to-right" -msgstr "Směr textu, např. zprava doleva nebo zleva doprava" +msgstr "" +"Směr textu, např. right-to-left (zprava doleva) nebo left-to-right (zleva " +"doprava)" #: ../gtk/gtktexttag.c:337 msgid "Font style as a PangoStyle, e.g. PANGO_STYLE_ITALIC" @@ -6629,7 +6648,7 @@ msgstr "" "Řádně se přizpůsobuje změnám motivu atd., takže je doporučená. Pango " "předdefinovává některé hodnoty, například PANGO_SCALE_X_LARGE" -#: ../gtk/gtktexttag.c:405 ../gtk/gtktextview.c:720 +#: ../gtk/gtktexttag.c:405 ../gtk/gtktextview.c:722 msgid "Left, right, or center justification" msgstr "Zarovnání vlevo, vpravo nebo na střed" @@ -6646,7 +6665,7 @@ msgstr "" msgid "Left margin" msgstr "Levý okraj" -#: ../gtk/gtktexttag.c:432 ../gtk/gtktextview.c:729 +#: ../gtk/gtktexttag.c:432 ../gtk/gtktextview.c:731 msgid "Width of the left margin in pixels" msgstr "Šířka levého okraje v pixelech" @@ -6654,15 +6673,15 @@ msgstr "Šířka levého okraje v pixelech" msgid "Right margin" msgstr "Pravý okraj" -#: ../gtk/gtktexttag.c:442 ../gtk/gtktextview.c:739 +#: ../gtk/gtktexttag.c:442 ../gtk/gtktextview.c:741 msgid "Width of the right margin in pixels" msgstr "Šířka pravého okraje v pixelech" -#: ../gtk/gtktexttag.c:452 ../gtk/gtktextview.c:748 +#: ../gtk/gtktexttag.c:452 ../gtk/gtktextview.c:750 msgid "Indent" msgstr "Odsazení" -#: ../gtk/gtktexttag.c:453 ../gtk/gtktextview.c:749 +#: ../gtk/gtktexttag.c:453 ../gtk/gtktextview.c:751 msgid "Amount to indent the paragraph, in pixels" msgstr "Velikost odsazení odstavce v pixelech" @@ -6678,7 +6697,7 @@ msgstr "" msgid "Pixels above lines" msgstr "Pixely nad řádky" -#: ../gtk/gtktexttag.c:474 ../gtk/gtktextview.c:673 +#: ../gtk/gtktexttag.c:474 ../gtk/gtktextview.c:675 msgid "Pixels of blank space above paragraphs" msgstr "Pixely prázdného prostoru nad odstavci" @@ -6686,7 +6705,7 @@ msgstr "Pixely prázdného prostoru nad odstavci" msgid "Pixels below lines" msgstr "Pixely pod řádky" -#: ../gtk/gtktexttag.c:484 ../gtk/gtktextview.c:683 +#: ../gtk/gtktexttag.c:484 ../gtk/gtktextview.c:685 msgid "Pixels of blank space below paragraphs" msgstr "Pixely prázdného prostoru pod odstavci" @@ -6694,20 +6713,20 @@ msgstr "Pixely prázdného prostoru pod odstavci" msgid "Pixels inside wrap" msgstr "Pixely v zalomení" -#: ../gtk/gtktexttag.c:494 ../gtk/gtktextview.c:693 +#: ../gtk/gtktexttag.c:494 ../gtk/gtktextview.c:695 msgid "Pixels of blank space between wrapped lines in a paragraph" msgstr "Pixely prázdného prostoru mezi zalomenými řádky v odstavci" -#: ../gtk/gtktexttag.c:521 ../gtk/gtktextview.c:711 +#: ../gtk/gtktexttag.c:521 ../gtk/gtktextview.c:713 msgid "" "Whether to wrap lines never, at word boundaries, or at character boundaries" msgstr "Jestli jsou řádky zalamovány na hranicích slov, znaků, nebo vůbec ne" -#: ../gtk/gtktexttag.c:530 ../gtk/gtktextview.c:758 +#: ../gtk/gtktexttag.c:530 ../gtk/gtktextview.c:760 msgid "Tabs" msgstr "Tabelátory" -#: ../gtk/gtktexttag.c:531 ../gtk/gtktextview.c:759 +#: ../gtk/gtktexttag.c:531 ../gtk/gtktextview.c:761 msgid "Custom tabs for this text" msgstr "Vlastní tabelátory pro tento text" @@ -6843,67 +6862,67 @@ msgstr "Pozadí odstavce nastaveno" msgid "Whether this tag affects the paragraph background color" msgstr "Jestli tato značka ovlivňuje barvu pozadí odstavce" -#: ../gtk/gtktextview.c:672 +#: ../gtk/gtktextview.c:674 msgid "Pixels Above Lines" msgstr "Pixely nad řádky" -#: ../gtk/gtktextview.c:682 +#: ../gtk/gtktextview.c:684 msgid "Pixels Below Lines" msgstr "Pixely pod řádky" -#: ../gtk/gtktextview.c:692 +#: ../gtk/gtktextview.c:694 msgid "Pixels Inside Wrap" msgstr "Pixely v zalomení" -#: ../gtk/gtktextview.c:710 +#: ../gtk/gtktextview.c:712 msgid "Wrap Mode" msgstr "Režim zalamování" -#: ../gtk/gtktextview.c:728 +#: ../gtk/gtktextview.c:730 msgid "Left Margin" msgstr "Levý okraj" -#: ../gtk/gtktextview.c:738 +#: ../gtk/gtktextview.c:740 msgid "Right Margin" msgstr "Pravý okraj" -#: ../gtk/gtktextview.c:766 +#: ../gtk/gtktextview.c:768 msgid "Cursor Visible" msgstr "Viditelný kurzor" -#: ../gtk/gtktextview.c:767 +#: ../gtk/gtktextview.c:769 msgid "If the insertion cursor is shown" msgstr "Jestli se zobrazuje kurzor pro vkládání" -#: ../gtk/gtktextview.c:774 +#: ../gtk/gtktextview.c:776 msgid "Buffer" msgstr "Vyrovnávací paměť" -#: ../gtk/gtktextview.c:775 +#: ../gtk/gtktextview.c:777 msgid "The buffer which is displayed" msgstr "Zobrazovaná vyrovnávací paměť" -#: ../gtk/gtktextview.c:783 +#: ../gtk/gtktextview.c:785 msgid "Whether entered text overwrites existing contents" msgstr "Jestli zadávaný text přepisuje existující obsah" -#: ../gtk/gtktextview.c:790 +#: ../gtk/gtktextview.c:792 msgid "Accepts tab" msgstr "Přijímá tabelátor" -#: ../gtk/gtktextview.c:791 +#: ../gtk/gtktextview.c:793 msgid "Whether Tab will result in a tab character being entered" msgstr "Jestli Tab způsobí zadání znaku tab" -#: ../gtk/gtktextview.c:862 +#: ../gtk/gtktextview.c:864 msgid "Error underline color" msgstr "Barva podtržení chyby" -#: ../gtk/gtktextview.c:863 +#: ../gtk/gtktextview.c:865 msgid "Color with which to draw error-indication underlines" msgstr "Barva, kterou kreslit podtržení indikující chybu" -#: ../gtk/gtkthemingengine.c:258 +#: ../gtk/gtkthemingengine.c:259 msgid "Theming engine name" msgstr "Název jádra motivů" @@ -7231,212 +7250,212 @@ msgstr "Model TreeModelSort" msgid "The model for the TreeModelSort to sort" msgstr "Model, který má TreeModelSort třídit" -#: ../gtk/gtktreeview.c:992 +#: ../gtk/gtktreeview.c:993 msgid "TreeView Model" msgstr "Model TreeView" -#: ../gtk/gtktreeview.c:993 +#: ../gtk/gtktreeview.c:994 msgid "The model for the tree view" msgstr "Model stromového zobrazení" -#: ../gtk/gtktreeview.c:1005 +#: ../gtk/gtktreeview.c:1006 msgid "Headers Visible" msgstr "Záhlaví viditelná" -#: ../gtk/gtktreeview.c:1006 +#: ../gtk/gtktreeview.c:1007 msgid "Show the column header buttons" msgstr "Zobrazovat tlačítka v záhlavích sloupců" -#: ../gtk/gtktreeview.c:1013 +#: ../gtk/gtktreeview.c:1014 msgid "Headers Clickable" msgstr "Kliknutelná záhlaví" -#: ../gtk/gtktreeview.c:1014 +#: ../gtk/gtktreeview.c:1015 msgid "Column headers respond to click events" msgstr "Záhlaví sloupců reagují na události kliknutí" -#: ../gtk/gtktreeview.c:1021 +#: ../gtk/gtktreeview.c:1022 msgid "Expander Column" msgstr "Sloupec rozbalovacího symbolu" -#: ../gtk/gtktreeview.c:1022 +#: ../gtk/gtktreeview.c:1023 msgid "Set the column for the expander column" msgstr "Nastaví sloupec pro rozbalovací sloupec" -#: ../gtk/gtktreeview.c:1037 +#: ../gtk/gtktreeview.c:1038 msgid "Rules Hint" msgstr "Rada o pravidlech" -#: ../gtk/gtktreeview.c:1038 +#: ../gtk/gtktreeview.c:1039 msgid "Set a hint to the theme engine to draw rows in alternating colors" msgstr "" "Nastaví radu pro podporu motivů ke kreslení řádků ve střídavých barvách" -#: ../gtk/gtktreeview.c:1045 +#: ../gtk/gtktreeview.c:1046 msgid "Enable Search" msgstr "Povolit hledání" -#: ../gtk/gtktreeview.c:1046 +#: ../gtk/gtktreeview.c:1047 msgid "View allows user to search through columns interactively" msgstr "Zobrazení umožní uživateli interaktivně hledat ve sloupcích" -#: ../gtk/gtktreeview.c:1053 +#: ../gtk/gtktreeview.c:1054 msgid "Search Column" msgstr "Sloupec hledání" -#: ../gtk/gtktreeview.c:1054 +#: ../gtk/gtktreeview.c:1055 msgid "Model column to search through during interactive search" msgstr "Sloupec modelu, ve kterém se má hledat při interaktivním hledání" -#: ../gtk/gtktreeview.c:1074 +#: ../gtk/gtktreeview.c:1075 msgid "Fixed Height Mode" msgstr "Režim pevné výšky" -#: ../gtk/gtktreeview.c:1075 +#: ../gtk/gtktreeview.c:1076 msgid "Speeds up GtkTreeView by assuming that all rows have the same height" msgstr "Urychlí GtkTreeView předpokladem, že všechny řádky jsou stejně vysoké" -#: ../gtk/gtktreeview.c:1095 +#: ../gtk/gtktreeview.c:1096 msgid "Hover Selection" msgstr "Výběr pohybem" -#: ../gtk/gtktreeview.c:1096 +#: ../gtk/gtktreeview.c:1097 msgid "Whether the selection should follow the pointer" msgstr "Jestli má výběr sledovat kurzor" -#: ../gtk/gtktreeview.c:1115 +#: ../gtk/gtktreeview.c:1116 msgid "Hover Expand" msgstr "Expandovat pohybem" -#: ../gtk/gtktreeview.c:1116 +#: ../gtk/gtktreeview.c:1117 msgid "" "Whether rows should be expanded/collapsed when the pointer moves over them" msgstr "" "Jestli mají být řádky rozbalovány/sbalovány, když se nad nimi pohybuje kurzor" -#: ../gtk/gtktreeview.c:1130 +#: ../gtk/gtktreeview.c:1131 msgid "Show Expanders" msgstr "Zobrazit rozbalovací prvky" -#: ../gtk/gtktreeview.c:1131 +#: ../gtk/gtktreeview.c:1132 msgid "View has expanders" msgstr "Zobrazení má rozbalovací prvky" -#: ../gtk/gtktreeview.c:1145 +#: ../gtk/gtktreeview.c:1146 msgid "Level Indentation" msgstr "Odsazení úrovně" -#: ../gtk/gtktreeview.c:1146 +#: ../gtk/gtktreeview.c:1147 msgid "Extra indentation for each level" msgstr "Zvláštní odsazení u každé úrovně" -#: ../gtk/gtktreeview.c:1155 +#: ../gtk/gtktreeview.c:1156 msgid "Rubber Banding" msgstr "Gumové vazby" -#: ../gtk/gtktreeview.c:1156 +#: ../gtk/gtktreeview.c:1157 msgid "" "Whether to enable selection of multiple items by dragging the mouse pointer" msgstr "Jestli povolit výběr více položek táhnutím ukazatele myši" -#: ../gtk/gtktreeview.c:1163 +#: ../gtk/gtktreeview.c:1164 msgid "Enable Grid Lines" msgstr "Povolit řádky mřížky" -#: ../gtk/gtktreeview.c:1164 +#: ../gtk/gtktreeview.c:1165 msgid "Whether grid lines should be drawn in the tree view" msgstr "Jestli se mají kreslit řádky mřížky ve stromovém zobrazení" -#: ../gtk/gtktreeview.c:1172 +#: ../gtk/gtktreeview.c:1173 msgid "Enable Tree Lines" msgstr "Povolit stromové řádky" -#: ../gtk/gtktreeview.c:1173 +#: ../gtk/gtktreeview.c:1174 msgid "Whether tree lines should be drawn in the tree view" msgstr "Jestli se mají stromové řádky kreslit ve stromovém zobrazení" -#: ../gtk/gtktreeview.c:1181 +#: ../gtk/gtktreeview.c:1182 msgid "The column in the model containing the tooltip texts for the rows" msgstr "Sloupec v modelu obsahující texty místní nápovědy pro řádky" -#: ../gtk/gtktreeview.c:1203 +#: ../gtk/gtktreeview.c:1204 msgid "Vertical Separator Width" msgstr "Šířka svislého oddělovače" -#: ../gtk/gtktreeview.c:1204 +#: ../gtk/gtktreeview.c:1205 msgid "Vertical space between cells. Must be an even number" msgstr "Svislý prostor mezi buňkami. Musí to být sudé číslo" -#: ../gtk/gtktreeview.c:1212 +#: ../gtk/gtktreeview.c:1213 msgid "Horizontal Separator Width" msgstr "Šířka vodorovného oddělovače" -#: ../gtk/gtktreeview.c:1213 +#: ../gtk/gtktreeview.c:1214 msgid "Horizontal space between cells. Must be an even number" msgstr "Vodorovný prostor mezi buňkami. Musí to být sudé číslo" -#: ../gtk/gtktreeview.c:1221 +#: ../gtk/gtktreeview.c:1222 msgid "Allow Rules" msgstr "Povolit pravidla" -#: ../gtk/gtktreeview.c:1222 +#: ../gtk/gtktreeview.c:1223 msgid "Allow drawing of alternating color rows" msgstr "Povolit kreslení různobarevných řádků" -#: ../gtk/gtktreeview.c:1228 +#: ../gtk/gtktreeview.c:1229 msgid "Indent Expanders" msgstr "Odsadit rozbalovací symboly" -#: ../gtk/gtktreeview.c:1229 +#: ../gtk/gtktreeview.c:1230 msgid "Make the expanders indented" msgstr "Odsadit rozbalovací symboly" -#: ../gtk/gtktreeview.c:1235 +#: ../gtk/gtktreeview.c:1236 msgid "Even Row Color" msgstr "Barva sudého řádku" -#: ../gtk/gtktreeview.c:1236 +#: ../gtk/gtktreeview.c:1237 msgid "Color to use for even rows" msgstr "Barva používaná pro sudé řádky" -#: ../gtk/gtktreeview.c:1242 +#: ../gtk/gtktreeview.c:1243 msgid "Odd Row Color" msgstr "Barva lichého řádku" -#: ../gtk/gtktreeview.c:1243 +#: ../gtk/gtktreeview.c:1244 msgid "Color to use for odd rows" msgstr "Barva používaná pro liché řádky" -#: ../gtk/gtktreeview.c:1249 +#: ../gtk/gtktreeview.c:1250 msgid "Grid line width" msgstr "Šířka řádku mřížky" -#: ../gtk/gtktreeview.c:1250 +#: ../gtk/gtktreeview.c:1251 msgid "Width, in pixels, of the tree view grid lines" msgstr "Šířka řádků mřížky stromového zobrazení v pixelech" -#: ../gtk/gtktreeview.c:1256 +#: ../gtk/gtktreeview.c:1257 msgid "Tree line width" msgstr "Šířka stromových řádků" -#: ../gtk/gtktreeview.c:1257 +#: ../gtk/gtktreeview.c:1258 msgid "Width, in pixels, of the tree view lines" msgstr "Šířka řádků stromového zobrazení v pixelech" -#: ../gtk/gtktreeview.c:1263 +#: ../gtk/gtktreeview.c:1264 msgid "Grid line pattern" msgstr "Vzorek řádku mřížky" -#: ../gtk/gtktreeview.c:1264 +#: ../gtk/gtktreeview.c:1265 msgid "Dash pattern used to draw the tree view grid lines" msgstr "" "Čárkovaný vzorek používaný při kreslení řádků mřížky stromového zobrazení" -#: ../gtk/gtktreeview.c:1270 +#: ../gtk/gtktreeview.c:1271 msgid "Tree line pattern" msgstr "Vzorek stromového řádku" -#: ../gtk/gtktreeview.c:1271 +#: ../gtk/gtktreeview.c:1272 msgid "Dash pattern used to draw the tree view lines" msgstr "Čárkovaný vzorek používaný při kreslení řádků stromového zobrazení" @@ -7444,7 +7463,7 @@ msgstr "Čárkovaný vzorek používaný při kreslení řádků stromového zob msgid "Whether to display the column" msgstr "Jestli zobrazovat sloupec" -#: ../gtk/gtktreeviewcolumn.c:255 ../gtk/gtkwindow.c:661 +#: ../gtk/gtktreeviewcolumn.c:255 ../gtk/gtkwindow.c:651 msgid "Resizable" msgstr "Měnitelná velikost" @@ -7566,23 +7585,23 @@ msgstr "Použít symbolické ikony" msgid "Whether to use symbolic icons" msgstr "Jestli použít symbolické ikony" -#: ../gtk/gtkwidget.c:985 +#: ../gtk/gtkwidget.c:984 msgid "Widget name" msgstr "Název widgetu" -#: ../gtk/gtkwidget.c:986 +#: ../gtk/gtkwidget.c:985 msgid "The name of the widget" msgstr "Název widgetu" -#: ../gtk/gtkwidget.c:993 +#: ../gtk/gtkwidget.c:992 msgid "The parent widget of this widget. Must be a Container widget" msgstr "Rodičovský widget tohoto widgetu. Musí to být widget kontejneru" -#: ../gtk/gtkwidget.c:1000 +#: ../gtk/gtkwidget.c:999 msgid "Width request" msgstr "Požadavek na šířku" -#: ../gtk/gtkwidget.c:1001 +#: ../gtk/gtkwidget.c:1000 msgid "" "Override for width request of the widget, or -1 if natural request should be " "used" @@ -7590,11 +7609,11 @@ msgstr "" "Předefinovaný požadavek šířky pro widget nebo -1, pokud se má použít " "přirozený požadavek" -#: ../gtk/gtkwidget.c:1009 +#: ../gtk/gtkwidget.c:1008 msgid "Height request" msgstr "Požadavek na výšku" -#: ../gtk/gtkwidget.c:1010 +#: ../gtk/gtkwidget.c:1009 msgid "" "Override for height request of the widget, or -1 if natural request should " "be used" @@ -7602,253 +7621,253 @@ msgstr "" "Předefinovaný požadavek výšky pro widget nebo -1, pokud se má použít " "přirozený požadavek" -#: ../gtk/gtkwidget.c:1019 +#: ../gtk/gtkwidget.c:1018 msgid "Whether the widget is visible" msgstr "Jestli je widget viditelný" -#: ../gtk/gtkwidget.c:1026 +#: ../gtk/gtkwidget.c:1025 msgid "Whether the widget responds to input" msgstr "Jestli widget reaguje na vstupy" -#: ../gtk/gtkwidget.c:1032 +#: ../gtk/gtkwidget.c:1031 msgid "Application paintable" msgstr "Aplikace může kreslit" -#: ../gtk/gtkwidget.c:1033 +#: ../gtk/gtkwidget.c:1032 msgid "Whether the application will paint directly on the widget" msgstr "Jestli bude aplikace přímo kreslit na widget" -#: ../gtk/gtkwidget.c:1039 +#: ../gtk/gtkwidget.c:1038 msgid "Can focus" msgstr "Může získat zaměření" -#: ../gtk/gtkwidget.c:1040 +#: ../gtk/gtkwidget.c:1039 msgid "Whether the widget can accept the input focus" msgstr "Jestli widget může přijmout vstupní zaměření" -#: ../gtk/gtkwidget.c:1046 +#: ../gtk/gtkwidget.c:1045 msgid "Has focus" msgstr "Má zaměření" -#: ../gtk/gtkwidget.c:1047 +#: ../gtk/gtkwidget.c:1046 msgid "Whether the widget has the input focus" msgstr "Jestli widget má vstupní zaměření" -#: ../gtk/gtkwidget.c:1053 +#: ../gtk/gtkwidget.c:1052 msgid "Is focus" msgstr "Je zaměření" -#: ../gtk/gtkwidget.c:1054 +#: ../gtk/gtkwidget.c:1053 msgid "Whether the widget is the focus widget within the toplevel" msgstr "Jestli je widget widgetem zaměření v rámci nejvyšší úrovně" -#: ../gtk/gtkwidget.c:1060 +#: ../gtk/gtkwidget.c:1059 msgid "Can default" msgstr "Může být výchozí" -#: ../gtk/gtkwidget.c:1061 +#: ../gtk/gtkwidget.c:1060 msgid "Whether the widget can be the default widget" msgstr "Jestli může být widget výchozí" -#: ../gtk/gtkwidget.c:1067 +#: ../gtk/gtkwidget.c:1066 msgid "Has default" msgstr "Je výchozí" -#: ../gtk/gtkwidget.c:1068 +#: ../gtk/gtkwidget.c:1067 msgid "Whether the widget is the default widget" msgstr "Jestli je widget výchozí" -#: ../gtk/gtkwidget.c:1074 +#: ../gtk/gtkwidget.c:1073 msgid "Receives default" msgstr "Přijímá jako výchozí" -#: ../gtk/gtkwidget.c:1075 +#: ../gtk/gtkwidget.c:1074 msgid "If TRUE, the widget will receive the default action when it is focused" -msgstr "Je-li TRUE, přijímá widget výchozí akci, pokud má zaměření" +msgstr "Je-li zapnuto, přijímá widget výchozí akci, pokud má zaměření" -#: ../gtk/gtkwidget.c:1081 +#: ../gtk/gtkwidget.c:1080 msgid "Composite child" msgstr "Potomek složeného" -#: ../gtk/gtkwidget.c:1082 +#: ../gtk/gtkwidget.c:1081 msgid "Whether the widget is part of a composite widget" msgstr "Jestli je widget součástí složeného widgetu" -#: ../gtk/gtkwidget.c:1088 +#: ../gtk/gtkwidget.c:1087 msgid "Style" msgstr "Styl" -#: ../gtk/gtkwidget.c:1089 +#: ../gtk/gtkwidget.c:1088 msgid "" "The style of the widget, which contains information about how it will look " "(colors etc)" msgstr "Styl widgetu, který obsahuje informace o jeho vzezření (barvy apod)" -#: ../gtk/gtkwidget.c:1095 +#: ../gtk/gtkwidget.c:1094 msgid "Events" msgstr "Události" -#: ../gtk/gtkwidget.c:1096 +#: ../gtk/gtkwidget.c:1095 msgid "The event mask that decides what kind of GdkEvents this widget gets" msgstr "Maska událostí určující, které typy GdkEvent tento widget dostává" -#: ../gtk/gtkwidget.c:1103 +#: ../gtk/gtkwidget.c:1102 msgid "No show all" msgstr "Nezobrazovat se všemi" -#: ../gtk/gtkwidget.c:1104 +#: ../gtk/gtkwidget.c:1103 msgid "Whether gtk_widget_show_all() should not affect this widget" msgstr "Jestli by gtk_widget_show_all() nemělo mít vliv na tento widget" -#: ../gtk/gtkwidget.c:1127 +#: ../gtk/gtkwidget.c:1126 msgid "Whether this widget has a tooltip" msgstr "Jestli má widget místní nápovědu" -#: ../gtk/gtkwidget.c:1184 +#: ../gtk/gtkwidget.c:1183 msgid "The widget's window if it is realized" msgstr "Okno widgetu, je-li vytvořeno" -#: ../gtk/gtkwidget.c:1198 +#: ../gtk/gtkwidget.c:1197 msgid "Double Buffered" msgstr "Zdvojená vyrovnávací paměť" -#: ../gtk/gtkwidget.c:1199 +#: ../gtk/gtkwidget.c:1198 msgid "Whether the widget is double buffered" msgstr "Jestli je widget ve zdvojené vyrovnávací paměti" -#: ../gtk/gtkwidget.c:1214 +#: ../gtk/gtkwidget.c:1213 msgid "How to position in extra horizontal space" msgstr "Pozice ve vodorovném místě navíc" -#: ../gtk/gtkwidget.c:1230 +#: ../gtk/gtkwidget.c:1229 msgid "How to position in extra vertical space" msgstr "Pozice ve svislém místě navíc" -#: ../gtk/gtkwidget.c:1249 +#: ../gtk/gtkwidget.c:1248 msgid "Margin on Left" msgstr "Okraj nalevo" -#: ../gtk/gtkwidget.c:1250 +#: ../gtk/gtkwidget.c:1249 msgid "Pixels of extra space on the left side" msgstr "Pixely v místě navíc na levé straně" -#: ../gtk/gtkwidget.c:1270 +#: ../gtk/gtkwidget.c:1269 msgid "Margin on Right" msgstr "Okraj napravo" -#: ../gtk/gtkwidget.c:1271 +#: ../gtk/gtkwidget.c:1270 msgid "Pixels of extra space on the right side" msgstr "Pixely v místě navíc na pravé straně" -#: ../gtk/gtkwidget.c:1291 +#: ../gtk/gtkwidget.c:1290 msgid "Margin on Top" msgstr "Okraj nahoře" -#: ../gtk/gtkwidget.c:1292 +#: ../gtk/gtkwidget.c:1291 msgid "Pixels of extra space on the top side" msgstr "Pixely v místě navíc na horní straně" -#: ../gtk/gtkwidget.c:1312 +#: ../gtk/gtkwidget.c:1311 msgid "Margin on Bottom" msgstr "Okraj dole" -#: ../gtk/gtkwidget.c:1313 +#: ../gtk/gtkwidget.c:1312 msgid "Pixels of extra space on the bottom side" msgstr "Pixely v místě navíc na spodní straně" -#: ../gtk/gtkwidget.c:1330 +#: ../gtk/gtkwidget.c:1329 msgid "All Margins" msgstr "Všechny okraje" -#: ../gtk/gtkwidget.c:1331 +#: ../gtk/gtkwidget.c:1330 msgid "Pixels of extra space on all four sides" msgstr "Pixely v místě navíc na všech stranách" -#: ../gtk/gtkwidget.c:1364 +#: ../gtk/gtkwidget.c:1363 msgid "Horizontal Expand" msgstr "Vodorovné doplnění" -#: ../gtk/gtkwidget.c:1365 +#: ../gtk/gtkwidget.c:1364 msgid "Whether widget wants more horizontal space" msgstr "Jestli požaduje widget více vodorovného prostoru" -#: ../gtk/gtkwidget.c:1379 +#: ../gtk/gtkwidget.c:1378 msgid "Horizontal Expand Set" msgstr "Nastavení více vodorovného prostoru" -#: ../gtk/gtkwidget.c:1380 +#: ../gtk/gtkwidget.c:1379 msgid "Whether to use the hexpand property" msgstr "Jestli se má použít vlastnost hexpand" -#: ../gtk/gtkwidget.c:1394 +#: ../gtk/gtkwidget.c:1393 msgid "Vertical Expand" msgstr "Svislé doplnění" -#: ../gtk/gtkwidget.c:1395 +#: ../gtk/gtkwidget.c:1394 msgid "Whether widget wants more vertical space" msgstr "Jestli požaduje widget více svislého prostoru" -#: ../gtk/gtkwidget.c:1409 +#: ../gtk/gtkwidget.c:1408 msgid "Vertical Expand Set" msgstr "Nastavení více svislého prostoru" -#: ../gtk/gtkwidget.c:1410 +#: ../gtk/gtkwidget.c:1409 msgid "Whether to use the vexpand property" msgstr "Jestli se má použít vlastnost vexpand" -#: ../gtk/gtkwidget.c:1424 +#: ../gtk/gtkwidget.c:1423 msgid "Expand Both" msgstr "Doplnění v obou" -#: ../gtk/gtkwidget.c:1425 +#: ../gtk/gtkwidget.c:1424 msgid "Whether widget wants to expand in both directions" msgstr "Jestli požaduje widget více prostoru v obou směrech" -#: ../gtk/gtkwidget.c:3146 +#: ../gtk/gtkwidget.c:3145 msgid "Interior Focus" msgstr "Vnitřní zaměření" -#: ../gtk/gtkwidget.c:3147 +#: ../gtk/gtkwidget.c:3146 msgid "Whether to draw the focus indicator inside widgets" msgstr "Jestli vykreslovat indikátor zaměření ve widgetech" -#: ../gtk/gtkwidget.c:3153 +#: ../gtk/gtkwidget.c:3152 msgid "Focus linewidth" msgstr "Šířka čáry zaměření" -#: ../gtk/gtkwidget.c:3154 +#: ../gtk/gtkwidget.c:3153 msgid "Width, in pixels, of the focus indicator line" msgstr "Šířka čáry indikátoru zaměření, v bodech" -#: ../gtk/gtkwidget.c:3160 +#: ../gtk/gtkwidget.c:3159 msgid "Focus line dash pattern" msgstr "Vzorek čáry indikátoru zaměření" -#: ../gtk/gtkwidget.c:3161 +#: ../gtk/gtkwidget.c:3160 msgid "Dash pattern used to draw the focus indicator" msgstr "Vzorek používaný při kreslení čáry indikátoru zaměření" -#: ../gtk/gtkwidget.c:3166 +#: ../gtk/gtkwidget.c:3165 msgid "Focus padding" msgstr "Doplnění zaměření" -#: ../gtk/gtkwidget.c:3167 +#: ../gtk/gtkwidget.c:3166 msgid "Width, in pixels, between focus indicator and the widget 'box'" msgstr "Mezera mezi indikátorem zaměření a panelem widgetu, v pixelech" -#: ../gtk/gtkwidget.c:3172 +#: ../gtk/gtkwidget.c:3171 msgid "Cursor color" msgstr "Barva kurzoru" -#: ../gtk/gtkwidget.c:3173 +#: ../gtk/gtkwidget.c:3172 msgid "Color with which to draw insertion cursor" msgstr "Barva, kterou kreslit vkládací kurzor" -#: ../gtk/gtkwidget.c:3178 +#: ../gtk/gtkwidget.c:3177 msgid "Secondary cursor color" msgstr "Barva sekundárního kurzoru" -#: ../gtk/gtkwidget.c:3179 +#: ../gtk/gtkwidget.c:3178 msgid "" "Color with which to draw the secondary insertion cursor when editing mixed " "right-to-left and left-to-right text" @@ -7856,43 +7875,43 @@ msgstr "" "Barva, kterou kreslit sekundární kurzor při editaci kombinovaného textu " "zleva doprava a zprava doleva" -#: ../gtk/gtkwidget.c:3184 +#: ../gtk/gtkwidget.c:3183 msgid "Cursor line aspect ratio" msgstr "Poměr čáry kurzoru" -#: ../gtk/gtkwidget.c:3185 +#: ../gtk/gtkwidget.c:3184 msgid "Aspect ratio with which to draw insertion cursor" msgstr "Poměr, kterým kreslit kurzor pro vkládání" -#: ../gtk/gtkwidget.c:3191 +#: ../gtk/gtkwidget.c:3190 msgid "Window dragging" msgstr "Přetahování okna" -#: ../gtk/gtkwidget.c:3192 +#: ../gtk/gtkwidget.c:3191 msgid "Whether windows can be dragged by clicking on empty areas" msgstr "Jestli mohou být okna přetahována kliknutím na prázdný prostor" -#: ../gtk/gtkwidget.c:3205 +#: ../gtk/gtkwidget.c:3204 msgid "Unvisited Link Color" msgstr "Barva nenavštíveného odkazu" -#: ../gtk/gtkwidget.c:3206 +#: ../gtk/gtkwidget.c:3205 msgid "Color of unvisited links" msgstr "Barva nenavštívených odkazů" -#: ../gtk/gtkwidget.c:3219 +#: ../gtk/gtkwidget.c:3218 msgid "Visited Link Color" msgstr "Barva navštíveného odkazu" -#: ../gtk/gtkwidget.c:3220 +#: ../gtk/gtkwidget.c:3219 msgid "Color of visited links" msgstr "Barva navštívených odkazů" -#: ../gtk/gtkwidget.c:3234 +#: ../gtk/gtkwidget.c:3233 msgid "Wide Separators" msgstr "Široké oddělovače" -#: ../gtk/gtkwidget.c:3235 +#: ../gtk/gtkwidget.c:3234 msgid "" "Whether separators have configurable width and should be drawn using a box " "instead of a line" @@ -7900,180 +7919,180 @@ msgstr "" "Zda oddělovače mají nastavitelnou šířku a měly by být kresleny za použití " "panelu namísto řádku" -#: ../gtk/gtkwidget.c:3249 +#: ../gtk/gtkwidget.c:3248 msgid "Separator Width" msgstr "Šířka oddělovačů" -#: ../gtk/gtkwidget.c:3250 +#: ../gtk/gtkwidget.c:3249 msgid "The width of separators if wide-separators is TRUE" -msgstr "Šířka oddělovačů, je-li wide-separators ZAPNUTO" +msgstr "Šířka oddělovačů v případě, že je zapnuto „wide-separators“" -#: ../gtk/gtkwidget.c:3264 +#: ../gtk/gtkwidget.c:3263 msgid "Separator Height" msgstr "Výška oddělovače" -#: ../gtk/gtkwidget.c:3265 +#: ../gtk/gtkwidget.c:3264 msgid "The height of separators if \"wide-separators\" is TRUE" -msgstr "Výška oddělovačů, je-li „wide-separators“ ZAPNUTO" +msgstr "Výška oddělovačů v případě, že je zapnuto „wide-separators“" -#: ../gtk/gtkwidget.c:3279 +#: ../gtk/gtkwidget.c:3278 msgid "Horizontal Scroll Arrow Length" msgstr "Délka vodorovné posunovací šipky" -#: ../gtk/gtkwidget.c:3280 +#: ../gtk/gtkwidget.c:3279 msgid "The length of horizontal scroll arrows" msgstr "Délka vodorovných posunovacích šipek" -#: ../gtk/gtkwidget.c:3294 +#: ../gtk/gtkwidget.c:3293 msgid "Vertical Scroll Arrow Length" msgstr "Délka svislé posunovací šipky" -#: ../gtk/gtkwidget.c:3295 +#: ../gtk/gtkwidget.c:3294 msgid "The length of vertical scroll arrows" msgstr "Délka svislých posunovacích šipek" -#: ../gtk/gtkwidget.c:3301 ../gtk/gtkwidget.c:3302 +#: ../gtk/gtkwidget.c:3300 ../gtk/gtkwidget.c:3301 msgid "Width of text selection handles" msgstr "Šířka ovládání výběru textu" -#: ../gtk/gtkwidget.c:3307 ../gtk/gtkwidget.c:3308 +#: ../gtk/gtkwidget.c:3306 ../gtk/gtkwidget.c:3307 msgid "Height of text selection handles" msgstr "Výška ovládání výběru textu" -#: ../gtk/gtkwindow.c:619 +#: ../gtk/gtkwindow.c:609 msgid "Window Type" msgstr "Typ okna" -#: ../gtk/gtkwindow.c:620 +#: ../gtk/gtkwindow.c:610 msgid "The type of the window" msgstr "Typ okna" -#: ../gtk/gtkwindow.c:628 +#: ../gtk/gtkwindow.c:618 msgid "Window Title" msgstr "Titulek okna" -#: ../gtk/gtkwindow.c:629 +#: ../gtk/gtkwindow.c:619 msgid "The title of the window" msgstr "Titulek okna" -#: ../gtk/gtkwindow.c:636 +#: ../gtk/gtkwindow.c:626 msgid "Window Role" msgstr "Role okna" -#: ../gtk/gtkwindow.c:637 +#: ../gtk/gtkwindow.c:627 msgid "Unique identifier for the window to be used when restoring a session" msgstr "Jedinečný identifikátor okna, který bude použit při obnově sezení" -#: ../gtk/gtkwindow.c:653 +#: ../gtk/gtkwindow.c:643 msgid "Startup ID" msgstr "Spouštěcí ID" -#: ../gtk/gtkwindow.c:654 +#: ../gtk/gtkwindow.c:644 msgid "Unique startup identifier for the window used by startup-notification" msgstr "Jedinečný spouštěcí identifikátor okna použitý startup-notification" -#: ../gtk/gtkwindow.c:662 +#: ../gtk/gtkwindow.c:652 msgid "If TRUE, users can resize the window" -msgstr "Je-li TRUE, uživatelé mohou změnit velikost okna" +msgstr "Je-li zapnuto, uživatelé mohou změnit velikost okna" -#: ../gtk/gtkwindow.c:669 +#: ../gtk/gtkwindow.c:659 msgid "Modal" msgstr "Modální" -#: ../gtk/gtkwindow.c:670 +#: ../gtk/gtkwindow.c:660 msgid "" "If TRUE, the window is modal (other windows are not usable while this one is " "up)" msgstr "" -"Je-li ZAPNUTO, je okno modální (ostatní okna není možné používat, dokud je " +"Je-li zapnuto, je okno modální (ostatní okna není možné používat, dokud je " "toto okno zobrazeno)" -#: ../gtk/gtkwindow.c:677 +#: ../gtk/gtkwindow.c:667 msgid "Window Position" msgstr "Pozice okna" -#: ../gtk/gtkwindow.c:678 +#: ../gtk/gtkwindow.c:668 msgid "The initial position of the window" msgstr "Počáteční pozice okna" -#: ../gtk/gtkwindow.c:686 +#: ../gtk/gtkwindow.c:676 msgid "Default Width" msgstr "Výchozí šířka" -#: ../gtk/gtkwindow.c:687 +#: ../gtk/gtkwindow.c:677 msgid "The default width of the window, used when initially showing the window" msgstr "Výchozí šířka okna používaná při počátečním zobrazení okna" -#: ../gtk/gtkwindow.c:696 +#: ../gtk/gtkwindow.c:686 msgid "Default Height" msgstr "Výchozí výška" -#: ../gtk/gtkwindow.c:697 +#: ../gtk/gtkwindow.c:687 msgid "" "The default height of the window, used when initially showing the window" msgstr "Výchozí výška okna používaná při počátečním zobrazení okna" -#: ../gtk/gtkwindow.c:706 +#: ../gtk/gtkwindow.c:696 msgid "Destroy with Parent" msgstr "Zničit s rodičem" -#: ../gtk/gtkwindow.c:707 +#: ../gtk/gtkwindow.c:697 msgid "If this window should be destroyed when the parent is destroyed" msgstr "Určuje, jestli má být okno zničeno při zničení svého rodiče" -#: ../gtk/gtkwindow.c:721 +#: ../gtk/gtkwindow.c:711 msgid "Hide the titlebar during maximization" msgstr "Skrýt záhlaví okna během maximalizace" -#: ../gtk/gtkwindow.c:722 +#: ../gtk/gtkwindow.c:712 msgid "If this window's titlebar should be hidden when the window is maximized" msgstr "Jestli se má záhlaví tohoto okna skrýt, když je okno maximalizováno" -#: ../gtk/gtkwindow.c:730 +#: ../gtk/gtkwindow.c:720 msgid "Icon for this window" msgstr "Ikona tohoto okna" -#: ../gtk/gtkwindow.c:748 +#: ../gtk/gtkwindow.c:738 msgid "Mnemonics Visible" msgstr "Viditelná mnemotechnika" -#: ../gtk/gtkwindow.c:749 +#: ../gtk/gtkwindow.c:739 msgid "Whether mnemonics are currently visible in this window" msgstr "Zda je mnemotechnika v tomto okně aktuálně viditelná" -#: ../gtk/gtkwindow.c:767 +#: ../gtk/gtkwindow.c:757 msgid "Focus Visible" msgstr "Viditelné zaměření" -#: ../gtk/gtkwindow.c:768 +#: ../gtk/gtkwindow.c:758 msgid "Whether focus rectangles are currently visible in this window" msgstr "Zda jsou obdélníky zaměření v tomto okně aktuálně viditelné" -#: ../gtk/gtkwindow.c:784 +#: ../gtk/gtkwindow.c:774 msgid "Name of the themed icon for this window" msgstr "Ikona z motivu u tohoto okna" -#: ../gtk/gtkwindow.c:799 +#: ../gtk/gtkwindow.c:789 msgid "Is Active" msgstr "Je aktivní" -#: ../gtk/gtkwindow.c:800 +#: ../gtk/gtkwindow.c:790 msgid "Whether the toplevel is the current active window" msgstr "Jestli je widget na nejvyšší úrovni aktuální aktivní okno" -#: ../gtk/gtkwindow.c:807 +#: ../gtk/gtkwindow.c:797 msgid "Focus in Toplevel" msgstr "Zaměření na nejvyšší úrovni" -#: ../gtk/gtkwindow.c:808 +#: ../gtk/gtkwindow.c:798 msgid "Whether the input focus is within this GtkWindow" msgstr "Jestli je vstupní zaměření uvnitř tohoto GtkWindow" -#: ../gtk/gtkwindow.c:815 +#: ../gtk/gtkwindow.c:805 msgid "Type hint" msgstr "Nápověda typu" -#: ../gtk/gtkwindow.c:816 +#: ../gtk/gtkwindow.c:806 msgid "" "Hint to help the desktop environment understand what kind of window this is " "and how to treat it." @@ -8081,137 +8100,130 @@ msgstr "" "Nápověda naznačující prostředí pracovní plochy, o jaký typ okna se jedná a " "jak s ním nakládat." -#: ../gtk/gtkwindow.c:824 +#: ../gtk/gtkwindow.c:814 msgid "Skip taskbar" msgstr "Vynechat v liště úloh" -#: ../gtk/gtkwindow.c:825 +#: ../gtk/gtkwindow.c:815 msgid "TRUE if the window should not be in the task bar." -msgstr "TRUE pokud by se okno nemělo objevovat v liště úloh." +msgstr "Zapnuto, pokud by se okno nemělo objevovat v liště úloh." -#: ../gtk/gtkwindow.c:832 +#: ../gtk/gtkwindow.c:822 msgid "Skip pager" msgstr "Vynechat v pageru" -#: ../gtk/gtkwindow.c:833 +#: ../gtk/gtkwindow.c:823 msgid "TRUE if the window should not be in the pager." -msgstr "TRUE, pokud by okno nemělo být v pageru." +msgstr "Zapnuto, pokud by okno nemělo být v pageru." -#: ../gtk/gtkwindow.c:840 +#: ../gtk/gtkwindow.c:830 msgid "Urgent" msgstr "Urgentní" -#: ../gtk/gtkwindow.c:841 +#: ../gtk/gtkwindow.c:831 msgid "TRUE if the window should be brought to the user's attention." -msgstr "TRUE, pokud na okno měl být upozorněn uživatel." +msgstr "Zapnuto, pokud by na okno měl být upozorněn uživatel." -#: ../gtk/gtkwindow.c:855 +#: ../gtk/gtkwindow.c:845 msgid "Accept focus" msgstr "Přijímá zaměření" -#: ../gtk/gtkwindow.c:856 +#: ../gtk/gtkwindow.c:846 msgid "TRUE if the window should receive the input focus." -msgstr "TRUE, pokud by okno mělo dostávat vstupní zaměření." +msgstr "Zapnuto, pokud by okno mělo dostávat vstupní zaměření." -#: ../gtk/gtkwindow.c:870 +#: ../gtk/gtkwindow.c:860 msgid "Focus on map" msgstr "Zaměření při namapování" -#: ../gtk/gtkwindow.c:871 +#: ../gtk/gtkwindow.c:861 msgid "TRUE if the window should receive the input focus when mapped." -msgstr "TRUE, pokud by okno mělo dostávat vstupní zaměření při namapování." +msgstr "Zapnuto, pokud by okno mělo dostávat vstupní zaměření při namapování." -#: ../gtk/gtkwindow.c:885 +#: ../gtk/gtkwindow.c:875 msgid "Decorated" msgstr "Dekorované" -#: ../gtk/gtkwindow.c:886 +#: ../gtk/gtkwindow.c:876 msgid "Whether the window should be decorated by the window manager" -msgstr "Jestli by mělo být okno dekorované správcem oken" +msgstr "Zda by mělo být okno dekorované správcem oken" -#: ../gtk/gtkwindow.c:900 +#: ../gtk/gtkwindow.c:890 msgid "Deletable" msgstr "Smazatelný" -#: ../gtk/gtkwindow.c:901 +#: ../gtk/gtkwindow.c:891 msgid "Whether the window frame should have a close button" -msgstr "Jestli by měl mít rám okna tlačítko zavření" +msgstr "Zda by měl mít rám okna tlačítko zavření" -#: ../gtk/gtkwindow.c:920 +#: ../gtk/gtkwindow.c:910 msgid "Resize grip" msgstr "Úchyt pro změnu velikosti" -#: ../gtk/gtkwindow.c:921 +#: ../gtk/gtkwindow.c:911 msgid "Specifies whether the window should have a resize grip" -msgstr "Jestli by mělo mít okno úchyt pro změnu velikosti" +msgstr "Určuje, jestli by mělo mít okno úchyt pro změnu velikosti." -#: ../gtk/gtkwindow.c:935 +#: ../gtk/gtkwindow.c:925 msgid "Resize grip is visible" msgstr "Úchyt pro změnu velikosti je viditelný" -#: ../gtk/gtkwindow.c:936 +#: ../gtk/gtkwindow.c:926 msgid "Specifies whether the window's resize grip is visible." -msgstr "Jestli je úchyt pro změnu velikosti viditelný." +msgstr "Určuje, jestli je úchyt pro změnu velikosti viditelný." -#: ../gtk/gtkwindow.c:952 +#: ../gtk/gtkwindow.c:942 msgid "Gravity" -msgstr "Gravity" +msgstr "Přitažlivost" -#: ../gtk/gtkwindow.c:953 +#: ../gtk/gtkwindow.c:943 msgid "The window gravity of the window" -msgstr "Gravity okna" +msgstr "Přitažlivost okna" -#: ../gtk/gtkwindow.c:970 +#: ../gtk/gtkwindow.c:960 msgid "Transient for Window" msgstr "Podřízené pro okno" -#: ../gtk/gtkwindow.c:971 +#: ../gtk/gtkwindow.c:961 msgid "The transient parent of the dialog" msgstr "Podřízený rodič dialogového okna" -#: ../gtk/gtkwindow.c:991 +#: ../gtk/gtkwindow.c:981 msgid "Attached to Widget" msgstr "Napojeno k widgetu" -#: ../gtk/gtkwindow.c:992 +#: ../gtk/gtkwindow.c:982 msgid "The widget where the window is attached" msgstr "Widget, ke kterému je okno napojeno" -#: ../gtk/gtkwindow.c:1007 +#: ../gtk/gtkwindow.c:997 msgid "Opacity for Window" msgstr "Krytí pro okno" -#: ../gtk/gtkwindow.c:1008 +#: ../gtk/gtkwindow.c:998 msgid "The opacity of the window, from 0 to 1" msgstr "Krytí okna, od 0 do 1" -#: ../gtk/gtkwindow.c:1018 ../gtk/gtkwindow.c:1019 +#: ../gtk/gtkwindow.c:1008 ../gtk/gtkwindow.c:1009 msgid "Width of resize grip" msgstr "Šířka úchytu pro změnu velikosti" -#: ../gtk/gtkwindow.c:1024 ../gtk/gtkwindow.c:1025 +#: ../gtk/gtkwindow.c:1014 ../gtk/gtkwindow.c:1015 msgid "Height of resize grip" msgstr "Výška úchytu pro změnu velikosti" -#: ../gtk/gtkwindow.c:1047 +#: ../gtk/gtkwindow.c:1037 msgid "GtkApplication" msgstr "GtkApplication" -#: ../gtk/gtkwindow.c:1048 +#: ../gtk/gtkwindow.c:1038 msgid "The GtkApplication for the window" msgstr "GtkApplication pro okno" #: ../modules/printbackends/cups/gtkprintercups.c:93 msgid "Color Profile Title" -msgstr "Nadpis profilu barev" +msgstr "Název profilu barev" #: ../modules/printbackends/cups/gtkprintercups.c:94 msgid "The title of the color profile to use" -msgstr "Titulek dialogu profilu barev" - -#~| msgid "Submenu" -#~ msgid "menu" -#~ msgstr "nabídka" - -#~ msgid "TRUE if page setup combos are embedded in GtkPrintDialog" -#~ msgstr "TRUE, jsou-li kombinovaná pole vložena v GtkPrintDialog" +msgstr "Název profilu barev, který se má použít" From f4e5d98d1fa1cf88ba910e0f058e665f636f924e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20=C4=8Cernock=C3=BD?= Date: Fri, 22 Feb 2013 22:06:03 +0100 Subject: [PATCH 178/208] Updated Czech translation --- po/cs.po | 330 ++++++++++++++----------------------------------------- 1 file changed, 84 insertions(+), 246 deletions(-) diff --git a/po/cs.po b/po/cs.po index 1f81f9412e..7ae1224adb 100644 --- a/po/cs.po +++ b/po/cs.po @@ -3,7 +3,6 @@ # Copyright (C) 2003, 2004, 2005 Miloslav Trmac . # Copyright (C) 2006 Lukas Novotny . # This file is distributed under the same license as the gtk+ package. -# # Stanislav Brabec , 1998. # Jiří Pavlovský , 1998. # Jiří Lebl , 2002. @@ -19,8 +18,8 @@ msgstr "" "Project-Id-Version: gtk+\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" "%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2013-02-14 00:13+0000\n" -"PO-Revision-Date: 2013-02-17 19:59+0100\n" +"POT-Creation-Date: 2013-01-19 19:42+0000\n" +"PO-Revision-Date: 2013-02-22 22:03+0100\n" "Last-Translator: Marek Černocký \n" "Language-Team: Czech \n" "Language: cs\n" @@ -466,146 +465,6 @@ msgstr[0] "Otevírání %d položky" msgstr[1] "Otevírání %d položek" msgstr[2] "Otevírání %d položek" -#: ../gtk/a11y/gtkbooleancellaccessible.c:43 -msgctxt "Action description" -msgid "Toggles the cell" -msgstr "" - -#: ../gtk/a11y/gtkbooleancellaccessible.c:63 -#: ../gtk/a11y/gtkswitchaccessible.c:101 -msgctxt "Action name" -msgid "Toggle" -msgstr "" - -#: ../gtk/a11y/gtkbuttonaccessible.c:341 -#: ../gtk/a11y/gtkmenuitemaccessible.c:436 -msgctxt "Action name" -msgid "Click" -msgstr "" - -#: ../gtk/a11y/gtkbuttonaccessible.c:350 -msgctxt "Action description" -msgid "Clicks the button" -msgstr "" - -#: ../gtk/a11y/gtkcellaccessible.c:258 -msgctxt "Action name" -msgid "Expand or contract" -msgstr "" - -#: ../gtk/a11y/gtkcellaccessible.c:260 -#, fuzzy -#| msgctxt "Stock label" -#| msgid "_Edit" -msgctxt "Action name" -msgid "Edit" -msgstr "_Upravit" - -#: ../gtk/a11y/gtkcellaccessible.c:262 -#: ../gtk/a11y/gtkcolorswatchaccessible.c:72 -#: ../gtk/a11y/gtkentryaccessible.c:1541 -#: ../gtk/a11y/gtkexpanderaccessible.c:281 -msgctxt "Action name" -msgid "Activate" -msgstr "" - -#: ../gtk/a11y/gtkcellaccessible.c:275 -msgctxt "Action description" -msgid "Expands or contracts the row in the tree view containing this cell" -msgstr "" - -#: ../gtk/a11y/gtkcellaccessible.c:277 -msgctxt "Action description" -msgid "Creates a widget in which the contents of the cell can be edited" -msgstr "" - -#: ../gtk/a11y/gtkcellaccessible.c:279 -msgctxt "Action description" -msgid "Activates the cell" -msgstr "" - -#: ../gtk/a11y/gtkcolorswatchaccessible.c:71 -#, fuzzy -#| msgid "_Select" -msgctxt "Action name" -msgid "Select" -msgstr "_Vybrat" - -#: ../gtk/a11y/gtkcolorswatchaccessible.c:73 -#, fuzzy -#| msgid "_Customize" -msgctxt "Action name" -msgid "Customize" -msgstr "_Upravit" - -#: ../gtk/a11y/gtkcolorswatchaccessible.c:84 -#, fuzzy -#| msgid "Select a Color" -msgctxt "Action description" -msgid "Selects the color" -msgstr "Vyberte barvu" - -#: ../gtk/a11y/gtkcolorswatchaccessible.c:85 -#, fuzzy -#| msgid "Brightness of the color." -msgctxt "Action description" -msgid "Activates the color" -msgstr "Jas barvy." - -#: ../gtk/a11y/gtkcolorswatchaccessible.c:86 -#, fuzzy -#| msgid "Custom color %d: %s" -msgctxt "Action description" -msgid "Customizes the color" -msgstr "Vlastní barva %d: %s" - -#: ../gtk/a11y/gtkcomboboxaccessible.c:313 -msgctxt "Action name" -msgid "Press" -msgstr "" - -#: ../gtk/a11y/gtkcomboboxaccessible.c:322 -#, fuzzy -#| msgid "Decreases the volume" -msgctxt "Action description" -msgid "Presses the combobox" -msgstr "Sníží hlasitost" - -#: ../gtk/a11y/gtkentryaccessible.c:1550 -msgctxt "Action description" -msgid "Activates the entry" -msgstr "" - -#: ../gtk/a11y/gtkexpanderaccessible.c:290 -msgctxt "Action description" -msgid "Activates the expander" -msgstr "" - -#: ../gtk/a11y/gtkmenuitemaccessible.c:445 -msgctxt "Action description" -msgid "Clicks the menuitem" -msgstr "" - -#: ../gtk/a11y/gtkscalebuttonaccessible.c:140 -msgctxt "Action description" -msgid "Pops up the slider" -msgstr "" - -#: ../gtk/a11y/gtkscalebuttonaccessible.c:142 -msgctxt "Action description" -msgid "Dismisses the slider" -msgstr "" - -#: ../gtk/a11y/gtkscalebuttonaccessible.c:170 -msgctxt "Action name" -msgid "Popup" -msgstr "" - -#: ../gtk/a11y/gtkscalebuttonaccessible.c:172 -msgctxt "Action name" -msgid "Dismiss" -msgstr "" - #: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" @@ -615,20 +474,15 @@ msgstr "Animace průběhu" msgid "Provides visual indication of progress" msgstr "Poskytuje vizuální indikaci průběhu" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:62 msgctxt "light switch widget" msgid "Switch" msgstr "Přepnout" -#: ../gtk/a11y/gtkswitchaccessible.c:64 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgid "Switches between on and off states" msgstr "Přepíná mezi stavem zapnuto a vypnuto" -#: ../gtk/a11y/gtkswitchaccessible.c:110 -msgctxt "Action description" -msgid "Toggles the switch" -msgstr "" - #: ../gtk/deprecated/gtkcolorsel.c:425 msgid "" "Select the color you want from the outer ring. Select the darkness or " @@ -836,7 +690,7 @@ msgstr "Nelze zobrazit odkaz" #: ../gtk/gtkaboutdialog.c:1017 msgid "Website" -msgstr "" +msgstr "Webové stránky" #: ../gtk/gtkaboutdialog.c:1071 #, c-format @@ -930,8 +784,6 @@ msgid "Backslash" msgstr "Zpětné lomítko" #: ../gtk/gtkappchooserbutton.c:290 -#, fuzzy -#| msgid "Other application..." msgid "Other application…" msgstr "Další aplikace…" @@ -1174,8 +1026,6 @@ msgstr "Neplatné" #. * acelerator. #. #: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 -#, fuzzy -#| msgid "New accelerator..." msgid "New accelerator…" msgstr "Nová klávesová zkratka…" @@ -1397,7 +1247,7 @@ msgstr "Vlastní" msgid "Create custom color" msgstr "Vytvořit vlastní barvu" -#: ../gtk/gtkcolorchooserwidget.c:542 +#: ../gtk/gtkcolorchooserwidget.c:543 #, c-format msgid "Custom color %d: %s" msgstr "Vlastní barva %d: %s" @@ -1478,8 +1328,6 @@ msgid "mm" msgstr "mm" #: ../gtk/gtkcustompaperunixdialog.c:605 -#, fuzzy -#| msgid "Margins from Printer..." msgid "Margins from Printer…" msgstr "Okraje z tiskárny…" @@ -1520,11 +1368,11 @@ msgstr "P_ravý:" msgid "Paper Margins" msgstr "Okraje papíru" -#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8598 +#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8591 msgid "Input _Methods" msgstr "Vstupní _metody" -#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8612 +#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8605 msgid "_Insert Unicode Control Character" msgstr "Vloži_t řídící znak Unicode" @@ -1577,7 +1425,7 @@ msgstr "Funkce Caps Lock je zapnuta" msgid "Select a File" msgstr "Vyberte soubor" -#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1825 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1820 msgid "Desktop" msgstr "Pracovní plocha" @@ -1585,9 +1433,7 @@ msgstr "Pracovní plocha" msgid "(None)" msgstr "(Žádný)" -#: ../gtk/gtkfilechooserbutton.c:2202 -#, fuzzy -#| msgid "Other..." +#: ../gtk/gtkfilechooserbutton.c:2046 msgid "Other…" msgstr "Jiné…" @@ -1595,23 +1441,23 @@ msgstr "Jiné…" msgid "Type name of new folder" msgstr "Zadání názvu nové složky" -#: ../gtk/gtkfilechooserdefault.c:954 +#: ../gtk/gtkfilechooserdefault.c:971 msgid "Could not retrieve information about the file" msgstr "O souboru nelze získat informace" -#: ../gtk/gtkfilechooserdefault.c:965 +#: ../gtk/gtkfilechooserdefault.c:982 msgid "Could not add a bookmark" msgstr "Nelze přidat záložku" -#: ../gtk/gtkfilechooserdefault.c:976 +#: ../gtk/gtkfilechooserdefault.c:993 msgid "Could not remove bookmark" msgstr "Nelze odstranit záložku" -#: ../gtk/gtkfilechooserdefault.c:987 +#: ../gtk/gtkfilechooserdefault.c:1004 msgid "The folder could not be created" msgstr "Složku nelze vytvořit" -#: ../gtk/gtkfilechooserdefault.c:1000 +#: ../gtk/gtkfilechooserdefault.c:1017 msgid "" "The folder could not be created, as a file with the same name already " "exists. Try using a different name for the folder, or rename the file first." @@ -1619,16 +1465,16 @@ msgstr "" "Složku nelze vytvořit, protože již existuje soubor se stejným názvem. Zkuste " "pro složku použít jiný název, nebo nejprve přejmenovat soubor." -#: ../gtk/gtkfilechooserdefault.c:1014 +#: ../gtk/gtkfilechooserdefault.c:1031 msgid "You need to choose a valid filename." msgstr "Vybraný název souboru musí být platný." -#: ../gtk/gtkfilechooserdefault.c:1017 +#: ../gtk/gtkfilechooserdefault.c:1034 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "V %s nelze vytvořit soubor, jelikož se nejedná o složku" -#: ../gtk/gtkfilechooserdefault.c:1029 +#: ../gtk/gtkfilechooserdefault.c:1046 msgid "" "You may only select folders. The item that you selected is not a folder; " "try using a different item." @@ -1636,11 +1482,11 @@ msgstr "" "Vybrat lze pouze složky. Vybraná položka není složkou; zkuste použít jinou " "položku." -#: ../gtk/gtkfilechooserdefault.c:1039 +#: ../gtk/gtkfilechooserdefault.c:1056 msgid "Invalid file name" msgstr "Neplatný název souboru" -#: ../gtk/gtkfilechooserdefault.c:1049 +#: ../gtk/gtkfilechooserdefault.c:1066 msgid "The folder contents could not be displayed" msgstr "Obsah složky nelze zobrazit" @@ -1648,210 +1494,208 @@ msgstr "Obsah složky nelze zobrazit" #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1575 +#: ../gtk/gtkfilechooserdefault.c:1592 #, c-format msgid "%1$s on %2$s" msgstr "%1$s na %2$s" -#: ../gtk/gtkfilechooserdefault.c:1724 +#: ../gtk/gtkfilechooserdefault.c:1741 msgid "Search" msgstr "Hledat" -#: ../gtk/gtkfilechooserdefault.c:1768 ../gtk/gtkfilechooserdefault.c:4996 +#: ../gtk/gtkfilechooserdefault.c:1765 ../gtk/gtkfilechooserdefault.c:4991 msgid "Recently Used" msgstr "Naposledy použité" -#: ../gtk/gtkfilechooserdefault.c:2369 +#: ../gtk/gtkfilechooserdefault.c:2364 msgid "Select which types of files are shown" msgstr "Výběr zobrazených typů souborů" -#: ../gtk/gtkfilechooserdefault.c:2728 +#: ../gtk/gtkfilechooserdefault.c:2723 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "Přidá složku „%s“ mezi záložky" -#: ../gtk/gtkfilechooserdefault.c:2772 +#: ../gtk/gtkfilechooserdefault.c:2767 #, c-format msgid "Add the current folder to the bookmarks" msgstr "Přidá aktuální složku mezi záložky" -#: ../gtk/gtkfilechooserdefault.c:2774 +#: ../gtk/gtkfilechooserdefault.c:2769 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "Přidá zvolené složky mezi záložky" -#: ../gtk/gtkfilechooserdefault.c:2812 +#: ../gtk/gtkfilechooserdefault.c:2807 #, c-format msgid "Remove the bookmark '%s'" msgstr "Odstraní záložku „%s“" -#: ../gtk/gtkfilechooserdefault.c:2814 +#: ../gtk/gtkfilechooserdefault.c:2809 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "Záložka „%s“ nemůže být odstraněna" -#: ../gtk/gtkfilechooserdefault.c:2821 ../gtk/gtkfilechooserdefault.c:3707 +#: ../gtk/gtkfilechooserdefault.c:2816 ../gtk/gtkfilechooserdefault.c:3702 msgid "Remove the selected bookmark" msgstr "Odstraní zvolenou záložku" -#: ../gtk/gtkfilechooserdefault.c:3385 +#: ../gtk/gtkfilechooserdefault.c:3380 msgid "Remove" msgstr "Odstranit" -#: ../gtk/gtkfilechooserdefault.c:3394 -#, fuzzy -#| msgid "Rename..." +#: ../gtk/gtkfilechooserdefault.c:3389 msgid "Rename…" msgstr "Přejmenovat…" #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3558 +#: ../gtk/gtkfilechooserdefault.c:3553 msgid "Places" msgstr "Místa" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3615 +#: ../gtk/gtkfilechooserdefault.c:3610 msgid "_Places" msgstr "_Místa" -#: ../gtk/gtkfilechooserdefault.c:3695 +#: ../gtk/gtkfilechooserdefault.c:3690 msgid "Add the selected folder to the Bookmarks" msgstr "Přidá zvolenou složku mezi záložky" -#: ../gtk/gtkfilechooserdefault.c:3956 +#: ../gtk/gtkfilechooserdefault.c:3951 msgid "Could not select file" msgstr "Nelze vybrat soubor" -#: ../gtk/gtkfilechooserdefault.c:4181 +#: ../gtk/gtkfilechooserdefault.c:4176 msgid "_Visit this file" msgstr "Podí_vat se na tento soubor" -#: ../gtk/gtkfilechooserdefault.c:4184 +#: ../gtk/gtkfilechooserdefault.c:4179 msgid "_Copy file’s location" msgstr "Kopírovat _umístění souboru" -#: ../gtk/gtkfilechooserdefault.c:4187 +#: ../gtk/gtkfilechooserdefault.c:4182 msgid "_Add to Bookmarks" msgstr "_Přidat mezi záložky" -#: ../gtk/gtkfilechooserdefault.c:4194 +#: ../gtk/gtkfilechooserdefault.c:4189 msgid "Show _Hidden Files" msgstr "Zobrazovat _skryté soubory" -#: ../gtk/gtkfilechooserdefault.c:4197 +#: ../gtk/gtkfilechooserdefault.c:4192 msgid "Show _Size Column" msgstr "Z_obrazovat sloupec Velikost" -#: ../gtk/gtkfilechooserdefault.c:4422 +#: ../gtk/gtkfilechooserdefault.c:4417 msgid "Files" msgstr "Soubory" -#: ../gtk/gtkfilechooserdefault.c:4473 +#: ../gtk/gtkfilechooserdefault.c:4468 msgid "Name" msgstr "Název" -#: ../gtk/gtkfilechooserdefault.c:4496 +#: ../gtk/gtkfilechooserdefault.c:4491 msgid "Size" msgstr "Velikost" -#: ../gtk/gtkfilechooserdefault.c:4510 +#: ../gtk/gtkfilechooserdefault.c:4505 msgid "Modified" msgstr "Změněno" #. Label -#: ../gtk/gtkfilechooserdefault.c:4603 +#: ../gtk/gtkfilechooserdefault.c:4598 msgid "_Name:" msgstr "_Název:" -#: ../gtk/gtkfilechooserdefault.c:4834 +#: ../gtk/gtkfilechooserdefault.c:4829 msgid "Type a file name" msgstr "Zadání názvu souboru" -#: ../gtk/gtkfilechooserdefault.c:4881 ../gtk/gtkfilechooserdefault.c:4892 +#: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887 msgid "Please select a folder below" msgstr "Vyberte prosím složku níže" -#: ../gtk/gtkfilechooserdefault.c:4887 +#: ../gtk/gtkfilechooserdefault.c:4882 msgid "Please type a file name" msgstr "Zadejte prosím název souboru" #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4958 +#: ../gtk/gtkfilechooserdefault.c:4953 msgid "Create Fo_lder" msgstr "V_ytvořit složku" -#: ../gtk/gtkfilechooserdefault.c:5006 +#: ../gtk/gtkfilechooserdefault.c:5001 msgid "Search:" msgstr "Hledat:" -#: ../gtk/gtkfilechooserdefault.c:5057 +#: ../gtk/gtkfilechooserdefault.c:5052 msgid "_Location:" msgstr "_Umístění:" -#: ../gtk/gtkfilechooserdefault.c:5507 +#: ../gtk/gtkfilechooserdefault.c:5502 msgid "Save in _folder:" msgstr "U_ložit do složky:" -#: ../gtk/gtkfilechooserdefault.c:5509 +#: ../gtk/gtkfilechooserdefault.c:5504 msgid "Create in _folder:" msgstr "Vytvořit ve složc_e:" -#: ../gtk/gtkfilechooserdefault.c:6521 +#: ../gtk/gtkfilechooserdefault.c:6597 #, c-format msgid "Could not read the contents of %s" msgstr "Nelze přečíst obsah %s" -#: ../gtk/gtkfilechooserdefault.c:6525 +#: ../gtk/gtkfilechooserdefault.c:6601 msgid "Could not read the contents of the folder" msgstr "Nelze přečíst obsah složky" -#: ../gtk/gtkfilechooserdefault.c:6618 ../gtk/gtkfilechooserdefault.c:6686 -#: ../gtk/gtkfilechooserdefault.c:6866 +#: ../gtk/gtkfilechooserdefault.c:6694 ../gtk/gtkfilechooserdefault.c:6762 +#: ../gtk/gtkfilechooserdefault.c:6942 msgid "Unknown" msgstr "Neznámé" -#: ../gtk/gtkfilechooserdefault.c:6633 +#: ../gtk/gtkfilechooserdefault.c:6709 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6635 +#: ../gtk/gtkfilechooserdefault.c:6711 msgid "Yesterday at %H:%M" msgstr "Včera v %H:%M" -#: ../gtk/gtkfilechooserdefault.c:7337 +#: ../gtk/gtkfilechooserdefault.c:7413 msgid "Cannot change to folder because it is not local" msgstr "Nelze přejít do složky, protože není místní" -#: ../gtk/gtkfilechooserdefault.c:7934 ../gtk/gtkfilechooserdefault.c:7955 +#: ../gtk/gtkfilechooserdefault.c:8020 ../gtk/gtkfilechooserdefault.c:8041 #, c-format msgid "Shortcut %s already exists" msgstr "Zkratka %s již existuje" -#: ../gtk/gtkfilechooserdefault.c:8045 +#: ../gtk/gtkfilechooserdefault.c:8131 #, c-format msgid "Shortcut %s does not exist" msgstr "Zkratka %s neexistuje" -#: ../gtk/gtkfilechooserdefault.c:8292 ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8377 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "Soubor nazvaný „%s“ již existuje. Chcete jej nahradit?" -#: ../gtk/gtkfilechooserdefault.c:8295 ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8380 ../gtk/gtkprintunixdialog.c:552 #, c-format msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "V „%s“ již tento soubor existuje. Jeho nahrazení přepíše celý obsah." -#: ../gtk/gtkfilechooserdefault.c:8300 ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "Na_hradit" -#: ../gtk/gtkfilechooserdefault.c:9107 +#: ../gtk/gtkfilechooserdefault.c:9192 msgid "Could not start the search process" msgstr "Nelze spustit proces hledání" -#: ../gtk/gtkfilechooserdefault.c:9108 +#: ../gtk/gtkfilechooserdefault.c:9193 msgid "" "The program was not able to create a connection to the indexer daemon. " "Please make sure it is running." @@ -1859,11 +1703,11 @@ msgstr "" "Program nebyl schopen vytvořit spojení s indexovacím démonem. Ujistěte se " "prosím, že běží." -#: ../gtk/gtkfilechooserdefault.c:9122 +#: ../gtk/gtkfilechooserdefault.c:9207 msgid "Could not send the search request" msgstr "Nelze odeslat vyhledávací požadavek" -#: ../gtk/gtkfilechooserdefault.c:9732 +#: ../gtk/gtkfilechooserdefault.c:9817 #, c-format msgid "Could not mount %s" msgstr "Nelze připojit %s" @@ -1943,8 +1787,6 @@ msgid "Copy _Link Address" msgstr "Ko_pírovat adresu odkazu" #: ../gtk/gtk-launch.c:71 -#, fuzzy -#| msgid "APPLICATION [URI...] - launch an APPLICATION with URI." msgid "APPLICATION [URI…] — launch an APPLICATION with URI." msgstr "APLIKACE [URI...] - spustit APLIKACI s URI." @@ -1966,7 +1808,7 @@ msgstr "Chyba při analýze voleb příkazové řádky: %s\n" #: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102 #, c-format msgid "Try \"%s --help\" for more information." -msgstr "Více informací viz „%s --help“." +msgstr "Více informací viz \"%s --help\"." #. Translators: the %s is the program name. This error message #. means the user is calling gtk-launch without any argument. @@ -1979,7 +1821,7 @@ msgstr "%s: chybí název aplikace" #, c-format msgid "Creating AppInfo from id not supported on non unix operating systems" msgstr "" -"Vytvoření AppInfo z ID není podporováno na jiných než unixových systémech" +"Vytváření AppInfo z ID není podporováno na jiných než unixových systémech" #. Translators: the first %s is the program name, the second one #. is the application name. @@ -2209,10 +2051,8 @@ msgstr "" " Dolní: %s %s" #: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 -#, fuzzy -#| msgid "Manage Custom Sizes" msgid "Manage Custom Sizes…" -msgstr "Správa vlastních velikostí" +msgstr "Správa vlastních velikostí…" #: ../gtk/gtkpagesetupunixdialog.c:896 msgid "_Format for:" @@ -2394,8 +2234,6 @@ msgid "Getting printer information failed" msgstr "Získávání informací o tiskárně selhalo" #: ../gtk/gtkprintunixdialog.c:1916 -#, fuzzy -#| msgid "Getting printer information..." msgid "Getting printer information…" msgstr "Získávají se informace o tiskárně…" @@ -2686,31 +2524,31 @@ msgstr "Z_a:" msgid "Job" msgstr "Úloha" -#: ../gtk/gtkprintunixdialog.c:3751 +#: ../gtk/gtkprintunixdialog.c:3753 msgid "Advanced" msgstr "Pokročilé" #. Translators: this will appear as tab label in print dialog. -#: ../gtk/gtkprintunixdialog.c:3789 +#: ../gtk/gtkprintunixdialog.c:3791 msgid "Image Quality" msgstr "Kvalita obrazu" #. Translators: this will appear as tab label in print dialog. -#: ../gtk/gtkprintunixdialog.c:3793 +#: ../gtk/gtkprintunixdialog.c:3795 msgid "Color" msgstr "Barva" #. Translators: this will appear as tab label in print dialog. #. It's a typographical term, as in "Binding and finishing" -#: ../gtk/gtkprintunixdialog.c:3798 +#: ../gtk/gtkprintunixdialog.c:3800 msgid "Finishing" msgstr "Dokončování" -#: ../gtk/gtkprintunixdialog.c:3808 +#: ../gtk/gtkprintunixdialog.c:3810 msgid "Some of the settings in the dialog conflict" msgstr "Některá nastavení v dialogu jsou v konfliktu" -#: ../gtk/gtkprintunixdialog.c:3834 +#: ../gtk/gtkprintunixdialog.c:3836 msgid "Print" msgstr "Tisk" @@ -2799,15 +2637,15 @@ msgctxt "recent menu label" msgid "%d. %s" msgstr "%d. %s" -#: ../gtk/gtkrecentmanager.c:1035 ../gtk/gtkrecentmanager.c:1048 -#: ../gtk/gtkrecentmanager.c:1185 ../gtk/gtkrecentmanager.c:1195 -#: ../gtk/gtkrecentmanager.c:1247 ../gtk/gtkrecentmanager.c:1256 -#: ../gtk/gtkrecentmanager.c:1271 +#: ../gtk/gtkrecentmanager.c:1010 ../gtk/gtkrecentmanager.c:1023 +#: ../gtk/gtkrecentmanager.c:1160 ../gtk/gtkrecentmanager.c:1170 +#: ../gtk/gtkrecentmanager.c:1222 ../gtk/gtkrecentmanager.c:1231 +#: ../gtk/gtkrecentmanager.c:1246 #, c-format msgid "Unable to find an item with URI '%s'" msgstr "Nelze nalézt položku s URI „%s“" -#: ../gtk/gtkrecentmanager.c:2471 +#: ../gtk/gtkrecentmanager.c:2446 #, c-format msgid "No registered application with name '%s' for item with URI '%s' found" msgstr "" From 894f84c623f2e280376be2945159fbf354377913 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Fri, 22 Feb 2013 09:14:04 -0500 Subject: [PATCH 179/208] Revert "combobox: Don't special-case RTL child positions anymore" This reverts commit cf712c462d766e32840da21a67708bbf2cbb25a6. https://bugzilla.gnome.org/show_bug.cgi?id=694451 --- gtk/gtkcombobox.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index 246516fe6e..e7ef489f61 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -468,6 +468,8 @@ static void gtk_combo_box_get_preferred_height_for_width (GtkWidget *widg gint *natural_size); static GtkWidgetPath *gtk_combo_box_get_path_for_child (GtkContainer *container, GtkWidget *child); +static void gtk_combo_box_direction_changed (GtkWidget *widget, + GtkTextDirection previous_direction); G_DEFINE_TYPE_WITH_CODE (GtkComboBox, gtk_combo_box, GTK_TYPE_BIN, G_IMPLEMENT_INTERFACE (GTK_TYPE_CELL_LAYOUT, @@ -508,6 +510,7 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass) widget_class->get_preferred_height_for_width = gtk_combo_box_get_preferred_height_for_width; widget_class->get_preferred_width_for_height = gtk_combo_box_get_preferred_width_for_height; widget_class->destroy = gtk_combo_box_destroy; + widget_class->direction_changed = gtk_combo_box_direction_changed; object_class = (GObjectClass *)klass; object_class->constructor = gtk_combo_box_constructor; @@ -1379,6 +1382,27 @@ gtk_combo_box_button_state_flags_changed (GtkWidget *widget, gtk_widget_queue_draw (widget); } +static void +gtk_combo_box_invalidate_order_foreach (GtkWidget *widget) +{ + _gtk_widget_invalidate_style_context (widget, GTK_CSS_CHANGE_POSITION | GTK_CSS_CHANGE_SIBLING_POSITION); +} + +static void +gtk_combo_box_invalidate_order (GtkComboBox *combo_box) +{ + gtk_container_forall (GTK_CONTAINER (combo_box), + (GtkCallback) gtk_combo_box_invalidate_order_foreach, + NULL); +} + +static void +gtk_combo_box_direction_changed (GtkWidget *widget, + GtkTextDirection previous_direction) +{ + gtk_combo_box_invalidate_order (GTK_COMBO_BOX (widget)); +} + static GtkWidgetPath * gtk_combo_box_get_path_for_child (GtkContainer *container, GtkWidget *child) @@ -1407,6 +1431,9 @@ gtk_combo_box_get_path_for_child (GtkContainer *container, if (widget && gtk_widget_get_visible (widget)) visible_children = g_list_prepend (visible_children, widget); + if (gtk_widget_get_direction (GTK_WIDGET (container)) == GTK_TEXT_DIR_RTL) + visible_children = g_list_reverse (visible_children); + pos = 0; for (l = visible_children; l; l = l->next) From a07f767ed417323cf2511f5ada4b2f120904b601 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Fri, 22 Feb 2013 09:14:10 -0500 Subject: [PATCH 180/208] Revert "toolbar: Don't special-case RTL toolbar child positions anymore" This reverts commit 821a675013e04598503d3c5ea23ab91607f98e70. https://bugzilla.gnome.org/show_bug.cgi?id=694451 --- gtk/gtktoolbar.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/gtk/gtktoolbar.c b/gtk/gtktoolbar.c index 0ca1b7eea4..e4dbfa45eb 100644 --- a/gtk/gtktoolbar.c +++ b/gtk/gtktoolbar.c @@ -231,6 +231,8 @@ static GtkWidgetPath * gtk_toolbar_get_path_for_child GtkWidget *child); static void gtk_toolbar_invalidate_order (GtkToolbar *toolbar); +static void gtk_toolbar_direction_changed (GtkWidget *widget, + GtkTextDirection previous_direction); static void gtk_toolbar_orientation_changed (GtkToolbar *toolbar, GtkOrientation orientation); static void gtk_toolbar_real_style_changed (GtkToolbar *toolbar, @@ -394,6 +396,7 @@ gtk_toolbar_class_init (GtkToolbarClass *klass) widget_class->unmap = gtk_toolbar_unmap; widget_class->popup_menu = gtk_toolbar_popup_menu; widget_class->show_all = gtk_toolbar_show_all; + widget_class->direction_changed = gtk_toolbar_direction_changed; container_class->add = gtk_toolbar_add; container_class->remove = gtk_toolbar_remove; @@ -3855,6 +3858,10 @@ gtk_toolbar_get_visible_position (GtkToolbar *toolbar, g_assert (count.found); + if (toolbar->priv->orientation == GTK_ORIENTATION_HORIZONTAL && + gtk_widget_get_direction (GTK_WIDGET (toolbar)) == GTK_TEXT_DIR_RTL) + return count.after; + return count.before; } @@ -3875,18 +3882,23 @@ gtk_toolbar_get_path_for_child (GtkContainer *container, { GtkWidgetPath *path; GtkToolbar *toolbar; + GtkToolbarPrivate *priv; GtkWidgetPath *sibling_path; gint vis_index; GList *children; toolbar = GTK_TOOLBAR (container); + priv = toolbar->priv; /* build a path for all the visible children; * get_children works in visible order */ sibling_path = gtk_widget_path_new (); children = _gtk_container_get_all_children (container); - children = g_list_reverse (children); + + if (priv->orientation != GTK_ORIENTATION_HORIZONTAL || + gtk_widget_get_direction (GTK_WIDGET (toolbar)) != GTK_TEXT_DIR_RTL) + children = g_list_reverse (children); g_list_foreach (children, add_widget_to_path, sibling_path); g_list_free (children); @@ -3924,3 +3936,12 @@ gtk_toolbar_invalidate_order (GtkToolbar *toolbar) NULL); } +static void +gtk_toolbar_direction_changed (GtkWidget *widget, + GtkTextDirection previous_direction) +{ + GTK_WIDGET_CLASS (gtk_toolbar_parent_class)->direction_changed (widget, previous_direction); + + gtk_toolbar_invalidate_order (GTK_TOOLBAR (widget)); +} + From 61344219d4ba6d81854cc5bea8cf90f600358501 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Fri, 22 Feb 2013 09:14:19 -0500 Subject: [PATCH 181/208] Revert "box: Don't special-case RTL hbox child positions anymore" This reverts commit 6f86e57c4fb2cd76549910302b3a7145e7fd0e8b. https://bugzilla.gnome.org/show_bug.cgi?id=694451 --- gtk/gtkbox.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/gtk/gtkbox.c b/gtk/gtkbox.c index efd4936657..5c8e6e3ff8 100644 --- a/gtk/gtkbox.c +++ b/gtk/gtkbox.c @@ -151,6 +151,8 @@ static void gtk_box_size_allocate (GtkWidget *widget, static void gtk_box_compute_expand (GtkWidget *widget, gboolean *hexpand, gboolean *vexpand); +static void gtk_box_direction_changed (GtkWidget *widget, + GtkTextDirection previous_direction); static void gtk_box_set_property (GObject *object, guint prop_id, @@ -220,6 +222,7 @@ gtk_box_class_init (GtkBoxClass *class) widget_class->get_preferred_height_for_width = gtk_box_get_preferred_height_for_width; widget_class->get_preferred_width_for_height = gtk_box_get_preferred_width_for_height; widget_class->compute_expand = gtk_box_compute_expand; + widget_class->direction_changed = gtk_box_direction_changed; container_class->add = gtk_box_add; container_class->remove = gtk_box_remove; @@ -855,7 +858,9 @@ count_widget_position (GtkWidget *widget, if (count->widget == widget) count->found = TRUE; - else if (!count->found) + else if (count->found) + count->after++; + else count->before++; } @@ -877,7 +882,11 @@ gtk_box_get_visible_position (GtkBox *box, if (!count.found) return -1; - return count.before; + if (box->priv->orientation == GTK_ORIENTATION_HORIZONTAL && + gtk_widget_get_direction (GTK_WIDGET (box)) == GTK_TEXT_DIR_RTL) + return count.after; + else + return count.before; } static GtkWidgetPath * @@ -886,9 +895,11 @@ gtk_box_get_path_for_child (GtkContainer *container, { GtkWidgetPath *path, *sibling_path; GtkBox *box; + GtkBoxPrivate *private; GList *list, *children; box = GTK_BOX (container); + private = box->priv; path = _gtk_widget_create_path (GTK_WIDGET (container)); @@ -900,6 +911,9 @@ gtk_box_get_path_for_child (GtkContainer *container, /* get_children works in visible order */ children = gtk_container_get_children (container); + if (private->orientation == GTK_ORIENTATION_HORIZONTAL && + gtk_widget_get_direction (GTK_WIDGET (box)) == GTK_TEXT_DIR_RTL) + children = g_list_reverse (children); for (list = children; list; list = list->next) { @@ -940,6 +954,13 @@ gtk_box_invalidate_order (GtkBox *box) NULL); } +static void +gtk_box_direction_changed (GtkWidget *widget, + GtkTextDirection previous_direction) +{ + gtk_box_invalidate_order (GTK_BOX (widget)); +} + static void box_child_visibility_notify_cb (GObject *obj, GParamSpec *pspec, From 14374751ded0825a98bc95ba18115fbf6ae7a2d2 Mon Sep 17 00:00:00 2001 From: Dimitris Spingos Date: Sun, 24 Feb 2013 10:07:19 +0200 Subject: [PATCH 182/208] Updated Greek translation --- po/el.po | 480 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 250 insertions(+), 230 deletions(-) diff --git a/po/el.po b/po/el.po index 2143f360e7..6693d6c3a8 100644 --- a/po/el.po +++ b/po/el.po @@ -12,21 +12,22 @@ # Bakaoukas Nikolaos , 2010. # Michael Kotsarinis , 2011. # Dimitris Spingos (Δημήτρης Σπίγγος) , 2012. +# Dimitris Spingos (Δημήτρης Σπίγγος) , 2013. msgid "" msgstr "" "Project-Id-Version: gtk+ 2.20.1.1\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" -"%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-09-05 12:12+0000\n" -"PO-Revision-Date: 2012-09-06 02:50+0200\n" -"Last-Translator: Tom Tryfonidis \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%" +"2b&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-01-19 19:42+0000\n" +"PO-Revision-Date: 2013-02-24 09:52+0300\n" +"Last-Translator: Dimitris Spingos (Δημήτρης Σπίγγος) \n" "Language-Team: team@gnome.gr\n" "Language: el\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: Virtaal 0.7.0\n" +"X-Generator: Virtaal 0.7.1\n" "X-Project-Style: gnome\n" #: ../gdk/gdk.c:155 @@ -463,21 +464,21 @@ msgid_plural "Opening %d Items" msgstr[0] "Άνοιγμα %d αρχείου" msgstr[1] "Άνοιγμα %d αρχείων" -#: ../gtk/a11y/gtkspinneraccessible.c:40 +#: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" msgstr "Κινούμενη εικόνα" -#: ../gtk/a11y/gtkspinneraccessible.c:41 +#: ../gtk/a11y/gtkspinneraccessible.c:40 msgid "Provides visual indication of progress" msgstr "Παρέχει οπτική ένδειξη της προόδου" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:62 msgctxt "light switch widget" msgid "Switch" msgstr "Διακόπτης" -#: ../gtk/a11y/gtkswitchaccessible.c:64 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgid "Switches between on and off states" msgstr "Εναλλαγή μεταξύ αναμμένου και σβηστού" @@ -689,27 +690,27 @@ msgid "Could not show link" msgstr "Αδυναμία προβολής συνδέσμου" #: ../gtk/gtkaboutdialog.c:1017 -msgid "Homepage" -msgstr "Αρχική σελίδα" +msgid "Website" +msgstr "Ιστότοπος" #: ../gtk/gtkaboutdialog.c:1071 #, c-format msgid "About %s" msgstr "Περί %s" -#: ../gtk/gtkaboutdialog.c:2399 +#: ../gtk/gtkaboutdialog.c:2398 msgid "Created by" msgstr "Δημιουργήθηκε από" -#: ../gtk/gtkaboutdialog.c:2402 +#: ../gtk/gtkaboutdialog.c:2401 msgid "Documented by" msgstr "Τεκμηρίωση από" -#: ../gtk/gtkaboutdialog.c:2412 +#: ../gtk/gtkaboutdialog.c:2411 msgid "Translated by" msgstr "Μετάφραση από" -#: ../gtk/gtkaboutdialog.c:2417 +#: ../gtk/gtkaboutdialog.c:2416 msgid "Artwork by" msgstr "Γραφικά από" @@ -718,7 +719,7 @@ msgstr "Γραφικά από" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:156 +#: ../gtk/gtkaccellabel.c:159 msgctxt "keyboard label" msgid "Shift" msgstr "Shift" @@ -728,7 +729,7 @@ msgstr "Shift" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:162 +#: ../gtk/gtkaccellabel.c:165 msgctxt "keyboard label" msgid "Ctrl" msgstr "Ctrl" @@ -738,7 +739,7 @@ msgstr "Ctrl" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:168 +#: ../gtk/gtkaccellabel.c:171 msgctxt "keyboard label" msgid "Alt" msgstr "Alt" @@ -748,7 +749,7 @@ msgstr "Alt" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:802 +#: ../gtk/gtkaccellabel.c:805 msgctxt "keyboard label" msgid "Super" msgstr "Super" @@ -758,7 +759,7 @@ msgstr "Super" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:815 +#: ../gtk/gtkaccellabel.c:818 msgctxt "keyboard label" msgid "Hyper" msgstr "Hyper" @@ -768,24 +769,25 @@ msgstr "Hyper" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: ../gtk/gtkaccellabel.c:829 +#: ../gtk/gtkaccellabel.c:832 msgctxt "keyboard label" msgid "Meta" msgstr "Meta" -#: ../gtk/gtkaccellabel.c:845 +#: ../gtk/gtkaccellabel.c:848 msgctxt "keyboard label" msgid "Space" msgstr "Διάστημα" -#: ../gtk/gtkaccellabel.c:848 +#: ../gtk/gtkaccellabel.c:851 msgctxt "keyboard label" msgid "Backslash" msgstr "Ανάποδη κάθετος" #: ../gtk/gtkappchooserbutton.c:290 -msgid "Other application..." -msgstr "Άλλη εφαρμογή..." +#| msgid "Other application..." +msgid "Other application…" +msgstr "Άλλη εφαρμογή…" #: ../gtk/gtkappchooserdialog.c:137 msgid "Failed to look for applications online" @@ -814,7 +816,7 @@ msgstr "Αδυναμία εύρεσης εφαρμογής" msgid "Select an application to open \"%s\"" msgstr "Επιλέξτε μια εφαρμογή για να ανοίξετε το \"%s\"" -#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:654 +#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:657 #, c-format msgid "No applications available to open \"%s\"" msgstr "Δεν υπάρχουν διαθέσιμες εφαρμογές για άνοιγμα του \"%s\"" @@ -846,23 +848,23 @@ msgstr "Παράλειψη συσχέτισης" msgid "Show other applications" msgstr "Εμφάνιση άλλων εφαρμογών" -#: ../gtk/gtkappchooserwidget.c:603 +#: ../gtk/gtkappchooserwidget.c:606 msgid "Default Application" msgstr "Προεπιλεγμένη εφαρμογή" -#: ../gtk/gtkappchooserwidget.c:741 +#: ../gtk/gtkappchooserwidget.c:744 msgid "Recommended Applications" msgstr "Συνιστώμενες εφαρμογές" -#: ../gtk/gtkappchooserwidget.c:756 +#: ../gtk/gtkappchooserwidget.c:759 msgid "Related Applications" msgstr "Σχετικές εφαρμογές" -#: ../gtk/gtkappchooserwidget.c:770 +#: ../gtk/gtkappchooserwidget.c:773 msgid "Other Applications" msgstr "Άλλες εφαρμογές" -#: ../gtk/gtkapplication.c:1552 +#: ../gtk/gtkapplication.c:1557 #, c-format msgid "" "%s cannot quit at this time:\n" @@ -873,20 +875,20 @@ msgstr "" "\n" "%s" -#: ../gtk/gtkapplicationwindow.c:333 ../gtk/gtkprintoperation-unix.c:475 +#: ../gtk/gtkapplicationwindow.c:333 ../gtk/gtkprintoperation-unix.c:480 #: ../gtk/gtkprintoperation-win32.c:1445 msgid "Application" msgstr "Εφαρμογή" -#: ../gtk/gtkassistant.c:1004 +#: ../gtk/gtkassistant.c:1008 msgid "C_ontinue" msgstr "_Συνέχεια" -#: ../gtk/gtkassistant.c:1007 +#: ../gtk/gtkassistant.c:1011 msgid "Go _Back" msgstr "Επι_στροφή" -#: ../gtk/gtkassistant.c:1011 +#: ../gtk/gtkassistant.c:1015 msgid "_Finish" msgstr "_Τερματισμός" @@ -947,7 +949,7 @@ msgstr "calendar:MY" #. #: ../gtk/gtkcalendar.c:910 msgid "calendar:week_start:0" -msgstr "calendar:week_start:1" +msgstr "calendar:week_start:0" #. Translators: This is a text measurement template. #. * Translate it to the widest year text @@ -1027,9 +1029,10 @@ msgstr "Άκυρο" #. * an accelerator when the cell is clicked to change the #. * acelerator. #. -#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:745 -msgid "New accelerator..." -msgstr "Νέα συντόμευση..." +#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747 +#| msgid "New accelerator..." +msgid "New accelerator…" +msgstr "Νέος επιταχυντής…" #: ../gtk/gtkcellrendererprogress.c:372 ../gtk/gtkcellrendererprogress.c:462 #, c-format @@ -1330,8 +1333,9 @@ msgid "mm" msgstr "mm" #: ../gtk/gtkcustompaperunixdialog.c:605 -msgid "Margins from Printer..." -msgstr "Περιθώρια εκτυπωτή..." +#| msgid "Margins from Printer..." +msgid "Margins from Printer…" +msgstr "Περιθώρια από τον εκτυπωτή…" #: ../gtk/gtkcustompaperunixdialog.c:771 #, c-format @@ -1370,15 +1374,15 @@ msgstr "_Δεξιά:" msgid "Paper Margins" msgstr "Περιθώρια χαρτιού" -#: ../gtk/gtkentry.c:9140 ../gtk/gtktextview.c:8583 +#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8591 msgid "Input _Methods" msgstr "_Μέθοδοι εισαγωγής" -#: ../gtk/gtkentry.c:9154 ../gtk/gtktextview.c:8597 +#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8605 msgid "_Insert Unicode Control Character" msgstr "_Εισαγωγή χαρακτήρα ελέγχου Unicode" -#: ../gtk/gtkentry.c:10107 +#: ../gtk/gtkentry.c:10094 msgid "Caps Lock is on" msgstr "Είναι πατημένο το Caps Lock" @@ -1427,7 +1431,7 @@ msgstr "Είναι πατημένο το Caps Lock" msgid "Select a File" msgstr "Επιλέξτε ένα αρχείο" -#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1817 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1820 msgid "Desktop" msgstr "Επιφάνεια εργασίας" @@ -1436,30 +1440,31 @@ msgid "(None)" msgstr "(Κανένα)" #: ../gtk/gtkfilechooserbutton.c:2046 -msgid "Other..." -msgstr "Άλλο..." +#| msgid "Other..." +msgid "Other…" +msgstr "Άλλο…" #: ../gtk/gtkfilechooserdefault.c:152 msgid "Type name of new folder" msgstr "Πληκτρολογήστε το όνομα του νέου φακέλου" -#: ../gtk/gtkfilechooserdefault.c:968 +#: ../gtk/gtkfilechooserdefault.c:971 msgid "Could not retrieve information about the file" msgstr "Αδυναμία ανάκτησης πληροφοριών για το αρχείο" -#: ../gtk/gtkfilechooserdefault.c:979 +#: ../gtk/gtkfilechooserdefault.c:982 msgid "Could not add a bookmark" msgstr "Αδυναμία προσθήκης σελιδοδείκτη" -#: ../gtk/gtkfilechooserdefault.c:990 +#: ../gtk/gtkfilechooserdefault.c:993 msgid "Could not remove bookmark" msgstr "Αδυναμία αφαίρεσης σελιδοδείκτη" -#: ../gtk/gtkfilechooserdefault.c:1001 +#: ../gtk/gtkfilechooserdefault.c:1004 msgid "The folder could not be created" msgstr "Αδυναμία δημιουργίας φακέλου" -#: ../gtk/gtkfilechooserdefault.c:1014 +#: ../gtk/gtkfilechooserdefault.c:1017 msgid "" "The folder could not be created, as a file with the same name already " "exists. Try using a different name for the folder, or rename the file first." @@ -1468,16 +1473,16 @@ msgstr "" "το όνομα. Χρησιμοποιήστε διαφορετικό όνομα για το φάκελο, ή μετονομάστε " "πρώτα το αρχείο." -#: ../gtk/gtkfilechooserdefault.c:1028 +#: ../gtk/gtkfilechooserdefault.c:1031 msgid "You need to choose a valid filename." msgstr "Πρέπει να διαλέξετε ένα έγκυρο όνομα αρχείου." -#: ../gtk/gtkfilechooserdefault.c:1031 +#: ../gtk/gtkfilechooserdefault.c:1034 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "Αποτυχία δημιουργίας αρχείου στο %s διότι δεν είναι φάκελος" -#: ../gtk/gtkfilechooserdefault.c:1043 +#: ../gtk/gtkfilechooserdefault.c:1046 msgid "" "You may only select folders. The item that you selected is not a folder; " "try using a different item." @@ -1485,11 +1490,11 @@ msgstr "" "Μπορείτε να επιλέξετε μόνο φακέλους. Το αντικείμενο που επιλέξατε δεν είναι " "φάκελος· επιλέξτε ένα άλλο στοιχείο." -#: ../gtk/gtkfilechooserdefault.c:1053 +#: ../gtk/gtkfilechooserdefault.c:1056 msgid "Invalid file name" msgstr "Άκυρο όνομα αρχείου" -#: ../gtk/gtkfilechooserdefault.c:1063 +#: ../gtk/gtkfilechooserdefault.c:1066 msgid "The folder contents could not be displayed" msgstr "Αδυναμία προβολής των περιεχομένων του φακέλου" @@ -1497,210 +1502,211 @@ msgstr "Αδυναμία προβολής των περιεχομένων του #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1589 +#: ../gtk/gtkfilechooserdefault.c:1592 #, c-format msgid "%1$s on %2$s" msgstr "%1$s στο %2$s" -#: ../gtk/gtkfilechooserdefault.c:1738 +#: ../gtk/gtkfilechooserdefault.c:1741 msgid "Search" msgstr "Αναζήτηση" -#: ../gtk/gtkfilechooserdefault.c:1762 ../gtk/gtkfilechooserdefault.c:4988 +#: ../gtk/gtkfilechooserdefault.c:1765 ../gtk/gtkfilechooserdefault.c:4991 msgid "Recently Used" msgstr "Πρόσφατα" -#: ../gtk/gtkfilechooserdefault.c:2361 +#: ../gtk/gtkfilechooserdefault.c:2364 msgid "Select which types of files are shown" msgstr "Επιλέξτε τους τύπους αρχείων που θα προβάλλονται" -#: ../gtk/gtkfilechooserdefault.c:2720 +#: ../gtk/gtkfilechooserdefault.c:2723 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "Προσθήκη του φακέλου '%s' στους σελιδοδείκτες" -#: ../gtk/gtkfilechooserdefault.c:2764 +#: ../gtk/gtkfilechooserdefault.c:2767 #, c-format msgid "Add the current folder to the bookmarks" msgstr "Προσθήκη του τρέχοντος φακέλου στους σελιδοδείκτες" -#: ../gtk/gtkfilechooserdefault.c:2766 +#: ../gtk/gtkfilechooserdefault.c:2769 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "Προσθήκη των επιλεγμένων φακέλων στους σελιδοδείκτες" -#: ../gtk/gtkfilechooserdefault.c:2804 +#: ../gtk/gtkfilechooserdefault.c:2807 #, c-format msgid "Remove the bookmark '%s'" msgstr "Αφαίρεση του σελιδοδείκτη '%s'" -#: ../gtk/gtkfilechooserdefault.c:2806 +#: ../gtk/gtkfilechooserdefault.c:2809 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "Αδυναμία απομάκρυνσης σελιδοδείκτη '%s'" -#: ../gtk/gtkfilechooserdefault.c:2813 ../gtk/gtkfilechooserdefault.c:3699 +#: ../gtk/gtkfilechooserdefault.c:2816 ../gtk/gtkfilechooserdefault.c:3702 msgid "Remove the selected bookmark" msgstr "Αφαίρεση του επιλεγμένου σελιδοδείκτη" -#: ../gtk/gtkfilechooserdefault.c:3377 +#: ../gtk/gtkfilechooserdefault.c:3380 msgid "Remove" msgstr "Αφαίρεση" -#: ../gtk/gtkfilechooserdefault.c:3386 -msgid "Rename..." -msgstr "Μετονομασία..." +#: ../gtk/gtkfilechooserdefault.c:3389 +#| msgid "_Rename" +msgid "Rename…" +msgstr "Μετονομασία…" #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3550 +#: ../gtk/gtkfilechooserdefault.c:3553 msgid "Places" msgstr "Τοποθεσίες" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3607 +#: ../gtk/gtkfilechooserdefault.c:3610 msgid "_Places" msgstr "_Τοποθεσίες" -#: ../gtk/gtkfilechooserdefault.c:3687 +#: ../gtk/gtkfilechooserdefault.c:3690 msgid "Add the selected folder to the Bookmarks" msgstr "Προσθήκη του επιλεγμένου φακέλου στους σελιδοδείκτες" -#: ../gtk/gtkfilechooserdefault.c:3948 +#: ../gtk/gtkfilechooserdefault.c:3951 msgid "Could not select file" msgstr "Αδυναμία επιλογής αρχείου" -#: ../gtk/gtkfilechooserdefault.c:4173 +#: ../gtk/gtkfilechooserdefault.c:4176 msgid "_Visit this file" msgstr "_Επίσκεψη αυτού του αρχείου" -#: ../gtk/gtkfilechooserdefault.c:4176 +#: ../gtk/gtkfilechooserdefault.c:4179 msgid "_Copy file’s location" msgstr "_Αντιγραφή τοποθεσίας αρχείου" -#: ../gtk/gtkfilechooserdefault.c:4179 +#: ../gtk/gtkfilechooserdefault.c:4182 msgid "_Add to Bookmarks" msgstr "Προσ_θήκη στους σελιδοδείκτες" -#: ../gtk/gtkfilechooserdefault.c:4186 +#: ../gtk/gtkfilechooserdefault.c:4189 msgid "Show _Hidden Files" msgstr "Προβολή _κρυφών αρχείων" -#: ../gtk/gtkfilechooserdefault.c:4189 +#: ../gtk/gtkfilechooserdefault.c:4192 msgid "Show _Size Column" msgstr "Προβολή στήλης _μεγέθους" -#: ../gtk/gtkfilechooserdefault.c:4414 +#: ../gtk/gtkfilechooserdefault.c:4417 msgid "Files" msgstr "Αρχεία" -#: ../gtk/gtkfilechooserdefault.c:4465 +#: ../gtk/gtkfilechooserdefault.c:4468 msgid "Name" msgstr "Όνομα" -#: ../gtk/gtkfilechooserdefault.c:4488 +#: ../gtk/gtkfilechooserdefault.c:4491 msgid "Size" msgstr "Μέγεθος" -#: ../gtk/gtkfilechooserdefault.c:4502 +#: ../gtk/gtkfilechooserdefault.c:4505 msgid "Modified" msgstr "Τροποποιήθηκε" #. Label -#: ../gtk/gtkfilechooserdefault.c:4595 +#: ../gtk/gtkfilechooserdefault.c:4598 msgid "_Name:" msgstr "Όν_ομα:" -#: ../gtk/gtkfilechooserdefault.c:4826 +#: ../gtk/gtkfilechooserdefault.c:4829 msgid "Type a file name" msgstr "Εισάγετε όνομα αρχείου" -#: ../gtk/gtkfilechooserdefault.c:4873 ../gtk/gtkfilechooserdefault.c:4884 +#: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887 msgid "Please select a folder below" msgstr "Παρακαλώ επιλέξτε ένα φάκελο παρακάτω" -#: ../gtk/gtkfilechooserdefault.c:4879 +#: ../gtk/gtkfilechooserdefault.c:4882 msgid "Please type a file name" msgstr "Παρακαλώ πληκτρολογήστε ένα όνομα αρχείου" #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4950 +#: ../gtk/gtkfilechooserdefault.c:4953 msgid "Create Fo_lder" msgstr "Δημιουργία φα_κέλου" -#: ../gtk/gtkfilechooserdefault.c:4998 +#: ../gtk/gtkfilechooserdefault.c:5001 msgid "Search:" msgstr "Αναζήτηση:" -#: ../gtk/gtkfilechooserdefault.c:5049 +#: ../gtk/gtkfilechooserdefault.c:5052 msgid "_Location:" msgstr "_Τοποθεσία:" -#: ../gtk/gtkfilechooserdefault.c:5500 +#: ../gtk/gtkfilechooserdefault.c:5502 msgid "Save in _folder:" msgstr "Αποθήκευση στο _φάκελο:" -#: ../gtk/gtkfilechooserdefault.c:5502 +#: ../gtk/gtkfilechooserdefault.c:5504 msgid "Create in _folder:" msgstr "Δημιουργία μέσα στο _φάκελο:" -#: ../gtk/gtkfilechooserdefault.c:6589 +#: ../gtk/gtkfilechooserdefault.c:6597 #, c-format msgid "Could not read the contents of %s" msgstr "Αδυναμία ανάγνωσης των περιεχομένων του %s" -#: ../gtk/gtkfilechooserdefault.c:6593 +#: ../gtk/gtkfilechooserdefault.c:6601 msgid "Could not read the contents of the folder" msgstr "Αδυναμία ανάγνωσης των περιεχομένων του φακέλου" -#: ../gtk/gtkfilechooserdefault.c:6686 ../gtk/gtkfilechooserdefault.c:6754 -#: ../gtk/gtkfilechooserdefault.c:6934 +#: ../gtk/gtkfilechooserdefault.c:6694 ../gtk/gtkfilechooserdefault.c:6762 +#: ../gtk/gtkfilechooserdefault.c:6942 msgid "Unknown" msgstr "Άγνωστο" -#: ../gtk/gtkfilechooserdefault.c:6701 +#: ../gtk/gtkfilechooserdefault.c:6709 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6703 +#: ../gtk/gtkfilechooserdefault.c:6711 msgid "Yesterday at %H:%M" msgstr "Χθες, στις %H:%M" -#: ../gtk/gtkfilechooserdefault.c:7405 +#: ../gtk/gtkfilechooserdefault.c:7413 msgid "Cannot change to folder because it is not local" msgstr "Αποτυχία μετάβασης στο φάκελο, γιατί δεν είναι τοπικός" -#: ../gtk/gtkfilechooserdefault.c:8009 ../gtk/gtkfilechooserdefault.c:8030 +#: ../gtk/gtkfilechooserdefault.c:8020 ../gtk/gtkfilechooserdefault.c:8041 #, c-format msgid "Shortcut %s already exists" msgstr "Υπάρχει ήδη συντόμευση %s" -#: ../gtk/gtkfilechooserdefault.c:8120 +#: ../gtk/gtkfilechooserdefault.c:8131 #, c-format msgid "Shortcut %s does not exist" msgstr "Δεν υπάρχει συντόμευση %s" -#: ../gtk/gtkfilechooserdefault.c:8366 ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8377 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "Υπάρχει ήδη αρχείο με το όνομα \"%s\". Θέλετε να αντικατασταθεί;" -#: ../gtk/gtkfilechooserdefault.c:8369 ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8380 ../gtk/gtkprintunixdialog.c:552 #, c-format msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "" -"Το αρχείο υπάρχει ήδη στο \"%s\". Η αντικατάσταση του θα αντικαταστήσει και " -"τα περιεχόμενα του." +"Το αρχείο υπάρχει ήδη στο \"%s\". Η αντικατάσταση του θα αντικαταστήσει και τα " +"περιεχόμενα του." -#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "_Αντικατάσταση" -#: ../gtk/gtkfilechooserdefault.c:9181 +#: ../gtk/gtkfilechooserdefault.c:9192 msgid "Could not start the search process" msgstr "Αποτυχία εκκίνησης της διεργασίας αναζήτησης" -#: ../gtk/gtkfilechooserdefault.c:9182 +#: ../gtk/gtkfilechooserdefault.c:9193 msgid "" "The program was not able to create a connection to the indexer daemon. " "Please make sure it is running." @@ -1708,11 +1714,11 @@ msgstr "" "Το πρόγραμμα δεν κατάφερε να συνδεθεί με την υπηρεσία δημιουργίας " "ευρετηρίων. Βεβαιωθείτε ότι η υπηρεσία εκτελείται." -#: ../gtk/gtkfilechooserdefault.c:9196 +#: ../gtk/gtkfilechooserdefault.c:9207 msgid "Could not send the search request" msgstr "Αδυναμία αποστολής του αιτήματος αναζήτησης" -#: ../gtk/gtkfilechooserdefault.c:9806 +#: ../gtk/gtkfilechooserdefault.c:9817 #, c-format msgid "Could not mount %s" msgstr "Αδυναμία προσάρτησης του %s" @@ -1752,12 +1758,12 @@ msgstr "Αναζήτηση ονόματος γραμματοσειράς" msgid "Font Family" msgstr "Οικογένεια γραμματοσειράς" -#: ../gtk/gtkicontheme.c:1627 +#: ../gtk/gtkicontheme.c:1931 #, c-format msgid "Icon '%s' not present in theme" msgstr "Το εικονίδιο '%s' δεν περιέχεται στο θέμα" -#: ../gtk/gtkicontheme.c:3137 +#: ../gtk/gtkicontheme.c:3462 msgid "Failed to load icon" msgstr "Αποτυχία φόρτωσης εικονιδίου" @@ -1782,22 +1788,23 @@ msgid "System (%s)" msgstr "Σύστημα (%s)" #. Open Link -#: ../gtk/gtklabel.c:6224 +#: ../gtk/gtklabel.c:6139 msgid "_Open Link" msgstr "Άν_οιγμα συνδέσμου" #. Copy Link Address -#: ../gtk/gtklabel.c:6236 +#: ../gtk/gtklabel.c:6151 msgid "Copy _Link Address" msgstr "Αντιγραφή διεύθυνσης _συνδέσμου" -#: ../gtk/gtk-launch.c:69 -msgid "APPLICATION [URI...] - launch an APPLICATION with URI." -msgstr "ΕΦΑΡΜΟΓΗ [URI...] - εκτελέστε μια ΕΦΑΡΜΟΓΗ με URI." +#: ../gtk/gtk-launch.c:71 +#| msgid "APPLICATION [URI...] - launch an APPLICATION with URI." +msgid "APPLICATION [URI…] — launch an APPLICATION with URI." +msgstr "ΕΦΑΡΜΟΓΗ [URI…] - εκτελέστε μια ΕΦΑΡΜΟΓΗ με URI." #. Translators: this message will appear after the usage string #. and before the list of options. -#: ../gtk/gtk-launch.c:73 +#: ../gtk/gtk-launch.c:75 msgid "" "Launch specified application by its desktop file info\n" "optionally passing list of URIs as arguments." @@ -1806,33 +1813,40 @@ msgstr "" "desktop\n" "προαιρετικά περνώντας τη λίστα των URIs ως ορίσματα." -#: ../gtk/gtk-launch.c:85 +#: ../gtk/gtk-launch.c:87 #, c-format msgid "Error parsing commandline options: %s\n" msgstr "Σφάλμα ανάλυσης επιλογών της γραμμής εντολών: %s\n" -#: ../gtk/gtk-launch.c:87 ../gtk/gtk-launch.c:100 +#: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Δοκιμάστε \"%s --help\" για περισσότερες πληροφορίες." #. Translators: the %s is the program name. This error message #. means the user is calling gtk-launch without any argument. -#: ../gtk/gtk-launch.c:98 +#: ../gtk/gtk-launch.c:100 #, c-format msgid "%s: missing application name" msgstr "%s: λείπει το όνομα της εφαρμογής" +#: ../gtk/gtk-launch.c:121 +#, 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. -#: ../gtk/gtk-launch.c:122 +#: ../gtk/gtk-launch.c:129 #, c-format msgid "%s: no such application %s" msgstr "%s: δεν υπάρχει τέτοια εφαρμογή %s" #. Translators: the first %s is the program name, the second one #. is the error message. -#: ../gtk/gtk-launch.c:140 +#: ../gtk/gtk-launch.c:147 #, c-format msgid "%s: error launching application: %s\n" msgstr "%s: σφάλμα φόρτωσης εφαρμογής: %s\n" @@ -1907,73 +1921,73 @@ msgstr "Σημαίες αποσφαλμάτωσης του GTK+ για αφαί #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: ../gtk/gtkmain.c:706 +#: ../gtk/gtkmain.c:703 msgid "default:LTR" msgstr "default:LTR" -#: ../gtk/gtkmain.c:774 +#: ../gtk/gtkmain.c:768 #, c-format msgid "Cannot open display: %s" msgstr "Αδυναμία ανοίγματος της οθόνης: %s" -#: ../gtk/gtkmain.c:840 +#: ../gtk/gtkmain.c:834 msgid "GTK+ Options" msgstr "Επιλογές GTK+" -#: ../gtk/gtkmain.c:840 +#: ../gtk/gtkmain.c:834 msgid "Show GTK+ Options" msgstr "Εμφάνιση επιλογών GTK+" -#: ../gtk/gtkmountoperation.c:532 +#: ../gtk/gtkmountoperation.c:535 msgid "Co_nnect" msgstr "_Σύνδεση" -#: ../gtk/gtkmountoperation.c:606 +#: ../gtk/gtkmountoperation.c:609 msgid "Connect As" msgstr "Σύνδεση ως" -#: ../gtk/gtkmountoperation.c:615 +#: ../gtk/gtkmountoperation.c:618 msgid "_Anonymous" msgstr "_Ανώνυμος" -#: ../gtk/gtkmountoperation.c:624 +#: ../gtk/gtkmountoperation.c:627 msgid "Registered U_ser" msgstr "Καταχωρημένος _χρήστης" -#: ../gtk/gtkmountoperation.c:635 +#: ../gtk/gtkmountoperation.c:638 msgid "_Username" msgstr "Όν_ομα χρήστη" -#: ../gtk/gtkmountoperation.c:640 +#: ../gtk/gtkmountoperation.c:643 msgid "_Domain" msgstr "_Τομέας" -#: ../gtk/gtkmountoperation.c:646 +#: ../gtk/gtkmountoperation.c:649 msgid "_Password" msgstr "Σ_υνθηματικό" -#: ../gtk/gtkmountoperation.c:668 +#: ../gtk/gtkmountoperation.c:671 msgid "Forget password _immediately" -msgstr "Μη απομνημόνευση του συνθηματικού" +msgstr "Λησμόνηση του συνθηματικού _αμέσως" -#: ../gtk/gtkmountoperation.c:678 +#: ../gtk/gtkmountoperation.c:681 msgid "Remember password until you _logout" msgstr "Α_πομνημόνευση συνθηματικού μέχρι την αποσύνδεση" -#: ../gtk/gtkmountoperation.c:688 +#: ../gtk/gtkmountoperation.c:691 msgid "Remember _forever" msgstr "_Μόνιμη απομνημόνευση συνθηματικού" -#: ../gtk/gtkmountoperation.c:1077 +#: ../gtk/gtkmountoperation.c:1080 #, c-format msgid "Unknown Application (PID %d)" msgstr "Άγνωστη εφαρμογή (PID %d)" -#: ../gtk/gtkmountoperation.c:1260 +#: ../gtk/gtkmountoperation.c:1263 msgid "Unable to end process" msgstr "Αδυναμία τερματισμού διεργασίας" -#: ../gtk/gtkmountoperation.c:1297 +#: ../gtk/gtkmountoperation.c:1300 msgid "_End Process" msgstr "_Τερματισμός διεργασίας" @@ -2010,7 +2024,7 @@ msgstr "Z Shell" msgid "Cannot end process with PID %d: %s" msgstr "Αδυναμία τερματισμού διεργασίας με PID %d: %s" -#: ../gtk/gtknotebook.c:5051 ../gtk/gtknotebook.c:7705 +#: ../gtk/gtknotebook.c:5069 ../gtk/gtknotebook.c:7723 #, c-format msgid "Page %u" msgstr "Σελίδα %u" @@ -2018,14 +2032,14 @@ msgstr "Σελίδα %u" #. Translators: the format here is used to build the string that will be rendered #. * in the number emblem. #. -#: ../gtk/gtknumerableicon.c:481 +#: ../gtk/gtknumerableicon.c:482 #, c-format msgctxt "Number format" msgid "%d" msgstr "%d" -#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:846 -#: ../gtk/gtkpapersize.c:886 +#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:848 +#: ../gtk/gtkpapersize.c:888 msgid "Not a valid page setup file" msgstr "Άκυρο αρχείο διαμόρφωσης σελίδας" @@ -2053,8 +2067,9 @@ msgstr "" " Κάτω: %s %s" #: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329 -msgid "Manage Custom Sizes..." -msgstr "Διαχείριση προσαρμοσμένων μεγεθών..." +#| msgid "Manage Custom Sizes" +msgid "Manage Custom Sizes…" +msgstr "Διαχείριση προσαρμοσμένων μεγεθών…" #: ../gtk/gtkpagesetupunixdialog.c:896 msgid "_Format for:" @@ -2084,12 +2099,11 @@ msgstr "Διαδρομή κάτω" msgid "File System Root" msgstr "Ρίζα συστήματος αρχείων" -#: ../gtk/gtkprintbackend.c:748 +#: ../gtk/gtkprintbackend.c:750 msgid "Authentication" msgstr "Πιστοποίηση" #: ../gtk/gtkprinteroptionwidget.c:546 -#| msgid "Select a File" msgid "Select a filename" msgstr "Επιλέξτε ένα αρχείο" @@ -2151,29 +2165,29 @@ msgctxt "print operation status" msgid "Finished with error" msgstr "Ολοκληρώθηκε με σφάλμα" -#: ../gtk/gtkprintoperation.c:2352 +#: ../gtk/gtkprintoperation.c:2349 #, c-format msgid "Preparing %d" msgstr "Προετοιμασία %d" -#: ../gtk/gtkprintoperation.c:2354 ../gtk/gtkprintoperation.c:2984 +#: ../gtk/gtkprintoperation.c:2351 ../gtk/gtkprintoperation.c:2983 msgid "Preparing" msgstr "Προετοιμασία" -#: ../gtk/gtkprintoperation.c:2357 +#: ../gtk/gtkprintoperation.c:2354 #, c-format msgid "Printing %d" msgstr "Εκτύπωση %d" -#: ../gtk/gtkprintoperation.c:3014 +#: ../gtk/gtkprintoperation.c:3013 msgid "Error creating print preview" msgstr "Σφάλμα παραγωγής προεπισκόπησης εκτύπωσης" -#: ../gtk/gtkprintoperation.c:3017 +#: ../gtk/gtkprintoperation.c:3016 msgid "The most probable reason is that a temporary file could not be created." msgstr "Η πιθανότερη αιτία είναι η αδυναμία δημιουργίας προσωρινού αρχείου." -#: ../gtk/gtkprintoperation-unix.c:302 +#: ../gtk/gtkprintoperation-unix.c:307 msgid "Error launching preview" msgstr "Σφάλμα εκκίνησης προεπισκόπησης" @@ -2237,8 +2251,9 @@ msgid "Getting printer information failed" msgstr "Αποτυχία λήψης πληροφοριών εκτυπωτή" #: ../gtk/gtkprintunixdialog.c:1916 -msgid "Getting printer information..." -msgstr "Λήψη πληροφοριών εκτυπωτή..." +#| msgid "Getting printer information..." +msgid "Getting printer information…" +msgstr "Λήψη πληροφοριών εκτυπωτή…" #: ../gtk/gtkprintunixdialog.c:2184 msgid "Printer" @@ -2314,42 +2329,42 @@ msgstr "Γενικά" #. * multiple pages on a sheet when printing #. #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, top to bottom" msgstr "Από αριστερά προς δεξιά, από πάνω προς τα κάτω" #: ../gtk/gtkprintunixdialog.c:3058 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692 msgid "Left to right, bottom to top" msgstr "Από αριστερά προς δεξιά, από κάτω προς τα πάνω" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, top to bottom" msgstr "Από δεξιά προς αριστερά, από πάνω προς τα κάτω" #: ../gtk/gtkprintunixdialog.c:3059 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693 msgid "Right to left, bottom to top" msgstr "Από δεξιά προς αριστερά, από κάτω προς τα πάνω" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, left to right" msgstr "Από πάνω προς τα κάτω, από αριστερά προς δεξιά" #: ../gtk/gtkprintunixdialog.c:3060 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694 msgid "Top to bottom, right to left" msgstr "Από πάνω προς τα κάτω, από δεξιά προς αριστερά" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, left to right" msgstr "Από κάτω προς τα πάνω, από αριστερά προς δεξιά" #: ../gtk/gtkprintunixdialog.c:3061 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695 msgid "Bottom to top, right to left" msgstr "Από κάτω προς τα πάνω, από δεξιά προς αριστερά" @@ -2357,7 +2372,7 @@ msgstr "Από κάτω προς τα πάνω, από δεξιά προς αρ #. * dialog that controls in what order multiple pages are arranged #. #: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3766 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772 msgid "Page Ordering" msgstr "Σειρά σελίδων" @@ -2559,36 +2574,36 @@ msgstr "Εκτύπωση" msgid "Select which type of documents are shown" msgstr "Επιλέξτε τον τύπο εγγράφων που θα προβάλλονται" -#: ../gtk/gtkrecentchooserdefault.c:1130 ../gtk/gtkrecentchooserdefault.c:1167 +#: ../gtk/gtkrecentchooserdefault.c:1129 ../gtk/gtkrecentchooserdefault.c:1166 #, c-format msgid "No item for URI '%s' found" msgstr "Χωρίς καταχώριση για το URI '%s'" -#: ../gtk/gtkrecentchooserdefault.c:1294 +#: ../gtk/gtkrecentchooserdefault.c:1293 msgid "Untitled filter" msgstr "Ανώνυμο φίλτρο" -#: ../gtk/gtkrecentchooserdefault.c:1647 +#: ../gtk/gtkrecentchooserdefault.c:1646 msgid "Could not remove item" msgstr "Αδυναμία αφαίρεσης καταχώρισης" -#: ../gtk/gtkrecentchooserdefault.c:1691 +#: ../gtk/gtkrecentchooserdefault.c:1690 msgid "Could not clear list" msgstr "Αδυναμία εκκαθάρισης λίστας" -#: ../gtk/gtkrecentchooserdefault.c:1775 +#: ../gtk/gtkrecentchooserdefault.c:1774 msgid "Copy _Location" msgstr "Αντιγραφή _τοποθεσίας" -#: ../gtk/gtkrecentchooserdefault.c:1788 +#: ../gtk/gtkrecentchooserdefault.c:1787 msgid "_Remove From List" msgstr "Απο_μάκρυνση από τη λίστα" -#: ../gtk/gtkrecentchooserdefault.c:1797 +#: ../gtk/gtkrecentchooserdefault.c:1796 msgid "_Clear List" msgstr "_Εκκαθάριση λίστας" -#: ../gtk/gtkrecentchooserdefault.c:1811 +#: ../gtk/gtkrecentchooserdefault.c:1810 msgid "Show _Private Resources" msgstr "Προβολή ι_διωτικών πόρων" @@ -3162,7 +3177,7 @@ msgstr "Σμίκρ_υνση" #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for #. * the state #. -#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:586 +#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:583 msgctxt "switch" msgid "ON" msgstr "ΝΑΙ" @@ -3170,7 +3185,7 @@ msgstr "ΝΑΙ" #. Translators: if the "off" state label requires more than three #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state #. -#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:615 +#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:598 msgctxt "switch" msgid "OFF" msgstr "ΟΧΙ" @@ -3253,8 +3268,7 @@ msgstr "Το \"%s\" δεν είναι έγκυρο όνομα γνωρίσματ msgid "" "\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\"" msgstr "" -"Το \"%s\" δεν μπορεί να μετατραπεί σε τιμή του τύπου \"%s\" για το γνώρισμα " -"\"%s\"" +"Το \"%s\" δεν μπορεί να μετατραπεί σε τιμή του τύπου \"%s\" για το γνώρισμα \"%s\"" #: ../gtk/gtktextbufferserialize.c:1209 #, c-format @@ -3341,14 +3355,14 @@ msgstr "ZWNJ _Μη συνδετικό μηδενικού πλάτους" #: ../gtk/gtkuimanager.c:1781 #, c-format msgid "Unexpected start tag '%s' on line %d char %d" -msgstr "Μη αναμενόμενη ετικέτα εκκίνησης '%s' στη γραμμή %d χαρ. %d" +msgstr "Αναπάντεχη ετικέτα εκκίνησης '%s' στη γραμμή %d χαρακτήρας %d" #: ../gtk/gtkuimanager.c:1871 #, c-format msgid "Unexpected character data on line %d char %d" -msgstr "Αναπάντεχα δεδομένα χαρακτήρων στη γραμμή %d χαρ. %d" +msgstr "Αναπάντεχα δεδομένα χαρακτήρων στη γραμμή %d χαρακτήρας %d" -#: ../gtk/gtkuimanager.c:2738 +#: ../gtk/gtkuimanager.c:2694 msgid "Empty" msgstr "Κενό" @@ -4112,7 +4126,7 @@ msgstr "Dai-pa-kai" #: ../gtk/paper_names_offsets.c:147 msgctxt "paper size" msgid "Folio" -msgstr "Folio (τετρασέλιδο)" +msgstr "Folio" #: ../gtk/paper_names_offsets.c:148 msgctxt "paper size" @@ -4346,7 +4360,7 @@ msgstr "Inuktitut (μεταγραμμένα)" #. ID #: ../modules/input/imipa.c:143 msgid "IPA" -msgstr "IPA (Διεθνές Φωνητικό Αλφάβητο)" +msgstr "IPA - Διεθνές φωνητικό αλφάβητο" #. ID #: ../modules/input/immultipress.c:29 @@ -4530,169 +4544,169 @@ msgstr "Σε παύση· απόρριψη εκτυπώσεων" msgid "Rejecting Jobs" msgstr "Απόρριψη εκτυπώσεων" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2909 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2915 msgid "Two Sided" msgstr "Διπλής όψης" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2910 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2916 msgid "Paper Type" msgstr "Τύπος χαρτιού" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2911 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2917 msgid "Paper Source" msgstr "Πηγή χαρτιού" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2912 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2918 msgid "Output Tray" msgstr "Συρτάρι εξόδου" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2913 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2919 msgid "Resolution" msgstr "Ανάλυση" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2914 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2920 msgid "GhostScript pre-filtering" msgstr "Προφιλτράρισμα GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2923 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 msgid "One Sided" msgstr "Μονής όψης" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2925 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 msgid "Long Edge (Standard)" msgstr "Μακρύ άκρο (κανονικό)" #. Translators: this is an option of "Two Sided" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2927 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 msgid "Short Edge (Flip)" msgstr "Βραχύ άκρο (αναστροφή)" #. Translators: this is an option of "Paper Source" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 msgid "Auto Select" msgstr "Αυτόματη επιλογή" #. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Resolution" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2941 -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3429 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3435 msgid "Printer Default" msgstr "Προεπιλογή εκτυπωτή" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 msgid "Embed GhostScript fonts only" msgstr "Ενσωμάτωση μόνο των γραμματοσειρών GhostScript" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2951 msgid "Convert to PS level 1" msgstr "Μετατροπή σε PS επιπέδου 1" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2953 msgid "Convert to PS level 2" msgstr "Μετατροπή σε PS επιπέδου 2" #. Translators: this is an option of "GhostScript" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2955 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/cups/gtkprintbackendcups.c:2958 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:2964 msgid "Miscellaneous" msgstr "Διάφορα" #. Translators: These strings name the possible values of the #. * job priority option in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Urgent" msgstr "Επείγον" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "High" msgstr "Υψηλή" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Medium" msgstr "Μεσαία" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687 msgid "Low" msgstr "Χαμηλή" #. Translators, this string is used to label the job priority option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3711 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3717 msgid "Job Priority" msgstr "Προτεραιότητα" #. Translators, this string is used to label the billing info entry #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3722 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3728 msgid "Billing Info" msgstr "Πληροφορίες τιμολόγησης" #. Translators, these strings are names for various 'standard' cover #. * pages that the printing system may support. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "None" msgstr "Κανένα" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Classified" msgstr "Διαβαθμισμένο" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Confidential" msgstr "Εμπιστευτικό" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Secret" msgstr "Απόρρητο" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Standard" msgstr "Κανονικό" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Top Secret" msgstr "Άκρως απόρρητο" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743 msgid "Unclassified" msgstr "Αδιαβάθμητο" #. Translators, this string is used to label the pages-per-sheet option #. * in the print dialog #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3748 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3754 msgid "Pages per Sheet" msgstr "Σελίδες ανά φύλλο" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3808 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3814 msgid "Before" msgstr "Πριν" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3823 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3829 msgid "After" msgstr "Μετά" @@ -4700,14 +4714,14 @@ msgstr "Μετά" #. * a print job is printed. Possible values are 'now', a specified time, #. * or 'on hold' #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3843 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849 msgid "Print at" 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/cups/gtkprintbackendcups.c:3854 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860 msgid "Print at time" msgstr "Ώρα εκτύπωσης" @@ -4715,17 +4729,17 @@ msgstr "Ώρα εκτύπωσης" #. * size. The two placeholders are replaced with the width and height #. * in points. E.g: "Custom 230.4x142.9" #. -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895 #, c-format msgid "Custom %sx%s" msgstr "Προσαρμοσμένο %sx%s" -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3970 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3976 msgid "Printer Profile" msgstr "Κατατομή εκτυπωτή" #. TRANSLATORS: this is when color profile information is unavailable -#: ../modules/printbackends/cups/gtkprintbackendcups.c:3977 +#: ../modules/printbackends/cups/gtkprintbackendcups.c:3983 msgid "Unavailable" msgstr "Μη διαθέσιμη" @@ -4825,6 +4839,15 @@ msgstr "δοκιμαστικό.%s" msgid "Print to Test Printer" msgstr "Εκτύπωση σε δοκιμαστικό εκτυπωτή" +#~ msgid "Homepage" +#~ msgstr "Αρχική σελίδα" + +#~ msgid "Rename..." +#~ msgstr "Μετονομασία..." + +#~ msgid "Manage Custom Sizes..." +#~ msgstr "Διαχείριση προσαρμοσμένων μεγεθών..." + #~ msgid "Select a folder" #~ msgstr "Επιλογή φακέλου" @@ -5000,9 +5023,6 @@ msgstr "Εκτύπωση σε δοκιμαστικό εκτυπωτή" #~ msgid "Rename file \"%s\" to:" #~ msgstr "Μετονομασία του αρχείου \"%s\" σε:" -#~ msgid "_Rename" -#~ msgstr "_Μετονομασία" - #~ msgid "" #~ "The filename \"%s\" couldn't be converted to UTF-8. (try setting the " #~ "environment variable G_FILENAME_ENCODING): %s" From e58bba74ce0bd3ed7719a4eb49d893360ed7295c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Urban=C4=8Di=C4=8D?= Date: Sun, 24 Feb 2013 21:22:16 +0100 Subject: [PATCH 183/208] Updated Slovenian translation --- po/sl.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/sl.po b/po/sl.po index 486dcabaf8..d811ef358b 100644 --- a/po/sl.po +++ b/po/sl.po @@ -12,8 +12,8 @@ msgstr "" "Project-Id-Version: gtk+ master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" "%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2013-01-27 21:36+0000\n" -"PO-Revision-Date: 2013-01-28 13:39+0100\n" +"POT-Creation-Date: 2013-02-24 08:08+0000\n" +"PO-Revision-Date: 2013-02-24 20:54+0100\n" "Last-Translator: Matej Urbančič \n" "Language-Team: Slovenian GNOME Translation Team \n" "Language: sl_SI\n" From 76ab40c19526f086d6470c4f4de4637a394b6eeb Mon Sep 17 00:00:00 2001 From: Dimitris Spingos Date: Mon, 25 Feb 2013 10:56:48 +0200 Subject: [PATCH 184/208] Updated Greek translation --- po-properties/el.po | 1504 ++++++++++++++++++++++--------------------- 1 file changed, 761 insertions(+), 743 deletions(-) diff --git a/po-properties/el.po b/po-properties/el.po index 09cc188921..2858278569 100644 --- a/po-properties/el.po +++ b/po-properties/el.po @@ -23,21 +23,22 @@ # Jennie Petoumenou , 2009, 2010. # Michael Kotsarinis , 2011. # Κωσνταντίνος Χόρτης , 2012. +# Dimitris Spingos (Δημήτρης Σπίγγος) , 2013. msgid "" msgstr "" "Project-Id-Version: gtk+-properties.HEAD\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" -"%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-10-19 17:49+0000\n" -"PO-Revision-Date: 2012-10-23 19:53+0200\n" -"Last-Translator: Tom Tryfonidis \n" -"Language-Team: Greek Translation Team\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%" +"2b&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2012-12-15 20:08+0000\n" +"PO-Revision-Date: 2013-02-25 10:55+0300\n" +"Last-Translator: Dimitris Spingos (Δημήτρης Σπίγγος) \n" +"Language-Team: team@gnome.gr\n" "Language: el\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: Virtaal 0.7.0\n" +"X-Generator: Virtaal 0.7.1\n" "X-Project-Style: gnome\n" #: ../gdk/gdkapplaunchcontext.c:129 ../gdk/gdkcursor.c:134 @@ -219,8 +220,7 @@ msgstr "Τρέχον Alpha" #: ../gtk/deprecated/gtkcolorsel.c:353 msgid "The current opacity value (0 fully transparent, 65535 fully opaque)" -msgstr "" -"Η τρέχουσα τιμή αδιαφάνειας (0 πλήρη διαφάνεια, 65535 πλήρη αδιαφάνεια)" +msgstr "Η τρέχουσα τιμή αδιαφάνειας (0 πλήρη διαφάνεια, 65535 πλήρη αδιαφάνεια)" #: ../gtk/deprecated/gtkcolorsel.c:367 msgid "Current RGBA" @@ -280,7 +280,7 @@ msgstr "" "Το κείμενο που προβάλλεται για την παρουσίαση της επιλεγμένης γραμματοσειράς" #: ../gtk/deprecated/gtkhandlebox.c:224 ../gtk/gtkcombobox.c:1067 -#: ../gtk/gtkentry.c:890 ../gtk/gtkmenubar.c:216 ../gtk/gtkstatusbar.c:182 +#: ../gtk/gtkentry.c:890 ../gtk/gtkmenubar.c:213 ../gtk/gtkstatusbar.c:182 #: ../gtk/gtktoolbar.c:631 ../gtk/gtkviewport.c:155 msgid "Shadow type" msgstr "Είδος σκίασης" @@ -295,7 +295,7 @@ msgstr "Θέση χειριστή" #: ../gtk/deprecated/gtkhandlebox.c:234 msgid "Position of the handle relative to the child widget" -msgstr "Θέση του χειριστή σχετική με το θυγατρικό γραφικό συστατικό." +msgstr "Θέση του χειριστή σχετική με το θυγατρικό γραφικό συστατικό." #: ../gtk/deprecated/gtkhandlebox.c:242 msgid "Snap edge" @@ -335,11 +335,11 @@ msgstr "" #: ../gtk/deprecated/gtkstyle.c:474 msgid "Style context" -msgstr "Στυλ περιεχομένου" +msgstr "Τεχνοτροπία περιεχομένου" #: ../gtk/deprecated/gtkstyle.c:475 msgid "GtkStyleContext to get style from" -msgstr "GtkStyleContext από το οποίο θα ληφθεί το στυλ" +msgstr "GtkStyleContext από το οποίο θα ληφθεί η τεχνοτροπία" #: ../gtk/deprecated/gtktable.c:191 msgid "Rows" @@ -387,7 +387,7 @@ msgstr "" msgid "Left attachment" msgstr "Αριστερό συνημμένο" -#: ../gtk/deprecated/gtktable.c:236 ../gtk/gtkgrid.c:1421 ../gtk/gtkmenu.c:727 +#: ../gtk/deprecated/gtktable.c:236 ../gtk/gtkgrid.c:1421 ../gtk/gtkmenu.c:747 msgid "The column number to attach the left side of the child to" msgstr "Ο αριθμός στήλης όπου προσδένεται η αριστερή πλευρά του θυγατρικού" @@ -413,9 +413,9 @@ msgstr "" msgid "Bottom attachment" msgstr "Προς τα κάτω συνημμένο" -#: ../gtk/deprecated/gtktable.c:257 ../gtk/gtkmenu.c:751 +#: ../gtk/deprecated/gtktable.c:257 ../gtk/gtkmenu.c:771 msgid "The row number to attach the bottom of the child to" -msgstr "Ο αριθμός γραμμής όπου προσδένεται το κάτω μέρος ενός θυγατρικού " +msgstr "Ο αριθμός γραμμής όπου προσδένεται το κάτω μέρος ενός θυγατρικού" #: ../gtk/deprecated/gtktable.c:263 msgid "Horizontal options" @@ -442,7 +442,7 @@ msgid "" "Extra space to put between the child and its left and right neighbors, in " "pixels" msgstr "" -"Το έξτρα διάστημα για προσθήκη ανάμεσα στο θυγατρικό και στα αριστερά και " +"Το πρόσθετο διάστημα για προσθήκη ανάμεσα στο θυγατρικό και στα αριστερά και " "τα δεξιά του, σε εικονοστοιχεία" #: ../gtk/deprecated/gtktable.c:284 @@ -454,7 +454,7 @@ msgid "" "Extra space to put between the child and its upper and lower neighbors, in " "pixels" msgstr "" -"Το έξτρα διάστημα για προσθήκη ανάμεσα στο θυγατρικό και πρός τα πάνω και " +"Το πρόσθετο διάστημα για προσθήκη ανάμεσα στο θυγατρικό και προς τα πάνω και " "κάτω του, σε εικονοστοιχεία" #: ../gtk/gtkaboutdialog.c:287 @@ -621,16 +621,16 @@ msgid "The parameter for action invocations" msgstr "Η παράμετρος για επικλήσεις ενέργειας" #: ../gtk/gtkaction.c:220 ../gtk/gtkactiongroup.c:228 ../gtk/gtkprinter.c:123 -#: ../gtk/gtktextmark.c:126 ../gtk/gtkthemingengine.c:257 +#: ../gtk/gtktextmark.c:126 ../gtk/gtkthemingengine.c:258 msgid "Name" -msgstr "'Όνομα" +msgstr "Όνομα" #: ../gtk/gtkaction.c:221 msgid "A unique name for the action." -msgstr "Ένα μοναδικό όνομα για αυτή την ενέργεια" +msgstr "Ένα μοναδικό όνομα για αυτή την ενέργεια." #: ../gtk/gtkaction.c:239 ../gtk/gtkbutton.c:232 ../gtk/gtkexpander.c:288 -#: ../gtk/gtkframe.c:170 ../gtk/gtklabel.c:726 ../gtk/gtkmenuitem.c:430 +#: ../gtk/gtkframe.c:170 ../gtk/gtklabel.c:721 ../gtk/gtkmenuitem.c:430 #: ../gtk/gtktoolbutton.c:239 ../gtk/gtktoolitemgroup.c:1597 msgid "Label" msgstr "Ετικέτα" @@ -656,7 +656,7 @@ msgstr "Συμβουλή οθόνης" #: ../gtk/gtkaction.c:266 msgid "A tooltip for this action." -msgstr "Μια συμβουλή οθόνης για αυτή την ενέργεια" +msgstr "Μια συμβουλή οθόνης για αυτή την ενέργεια." #: ../gtk/gtkaction.c:281 msgid "Stock Icon" @@ -679,7 +679,7 @@ msgstr "Το GIcon που εμφανίζεται" #: ../gtk/gtkaction.c:323 ../gtk/gtkcellrendererpixbuf.c:211 #: ../gtk/gtkimage.c:291 ../gtk/gtkprinter.c:172 ../gtk/gtkstatusicon.c:247 -#: ../gtk/gtkwindow.c:783 +#: ../gtk/gtkwindow.c:773 msgid "Icon Name" msgstr "Όνομα Εικονιδίου" @@ -735,7 +735,7 @@ msgid "" msgstr "" "Αν η ενέργεια θεωρείται σημαντική. Αν TRUE, οι διαμεσολαβητές αντικειμένου " "εργαλείου για αυτή την ενέργεια θα εμφανίζουν κείμενο σε λειτουργία " -"GTK_TOOLBAR_BOTH_HORIZ" +"GTK_TOOLBAR_BOTH_HORIZ." #: ../gtk/gtkaction.c:372 msgid "Hide if empty" @@ -748,7 +748,7 @@ msgstr "" "αποκρύπτονται." #: ../gtk/gtkaction.c:379 ../gtk/gtkactiongroup.c:235 -#: ../gtk/gtkcellrenderer.c:296 ../gtk/gtkwidget.c:1025 +#: ../gtk/gtkcellrenderer.c:296 ../gtk/gtkwidget.c:1024 msgid "Sensitive" msgstr "Ευαίσθητο" @@ -758,7 +758,7 @@ msgstr "Αν αυτή η ενέργεια θα είναι ενεργοποιημ #: ../gtk/gtkaction.c:386 ../gtk/gtkactiongroup.c:242 #: ../gtk/gtkstatusicon.c:298 ../gtk/gtktreeviewcolumn.c:247 -#: ../gtk/gtkwidget.c:1018 +#: ../gtk/gtkwidget.c:1017 msgid "Visible" msgstr "Ορατό" @@ -893,7 +893,7 @@ msgid "" "Vertical position of child in available space. 0.0 is top aligned, 1.0 is " "bottom aligned" msgstr "" -"Κάθετη θέση θυγατρικού στο διαθέσιμο χώρο. 0.0 είναι στοιχισμένο πάνω, 1.0 " +"Κάθετη θέση θυγατρικού στο διαθέσιμο χώρο. 0.0 είναι στοιχισμένο πάνω, 1.0 " "είναι στοιχισμένο κάτω" #: ../gtk/gtkalignment.c:154 @@ -936,7 +936,7 @@ msgstr "Γέμισμα προς τα κάτω" #: ../gtk/gtkalignment.c:199 msgid "The padding to insert at the bottom of the widget." -msgstr "Το γέμισμα που θα εισάγεται στο κάτω μέρος ενός γραφικού συστατικού. " +msgstr "Το γέμισμα που θα εισάγεται στο κάτω μέρος ενός γραφικού συστατικού." #: ../gtk/gtkalignment.c:215 msgid "Left Padding" @@ -949,15 +949,16 @@ msgstr "" #: ../gtk/gtkalignment.c:232 msgid "Right Padding" -msgstr "Δεξιό γέμισμα " +msgstr "Δεξιό γέμισμα" #: ../gtk/gtkalignment.c:233 msgid "The padding to insert at the right of the widget." msgstr "Το γέμισμα που θα εισάγεται στη δεξιά πλευρά ενός γραφικού συστατικού." #: ../gtk/gtkappchooserbutton.c:614 -msgid "Include an 'Other...' item" -msgstr "Να περιλαμβάνεται αντικείμενο 'Άλλο...'" +#| msgid "Include an 'Other...' item" +msgid "Include an 'Other…' item" +msgstr "Να περιλαμβάνεται ένα στοιχείο 'Άλλο...'" #: ../gtk/gtkappchooserbutton.c:615 msgid "" @@ -1102,8 +1103,8 @@ msgstr "Σκιά βέλους" msgid "Appearance of the shadow surrounding the arrow" msgstr "Εμφάνιση της σκιάς που περιβάλλει το βέλος" -#: ../gtk/gtkarrow.c:127 ../gtk/gtkcombobox.c:1051 ../gtk/gtkmenu.c:764 -#: ../gtk/gtkmenuitem.c:496 +#: ../gtk/gtkarrow.c:127 ../gtk/gtkcombobox.c:1051 ../gtk/gtkmenu.c:784 +#: ../gtk/gtkmenuitem.c:506 msgid "Arrow Scaling" msgstr "Να επιτρέπεται κλιμάκωση" @@ -1111,7 +1112,7 @@ msgstr "Να επιτρέπεται κλιμάκωση" msgid "Amount of space used up by arrow" msgstr "Χώρος που καλύπτει το βέλος" -#: ../gtk/gtkaspectframe.c:107 ../gtk/gtkwidget.c:1213 +#: ../gtk/gtkaspectframe.c:107 ../gtk/gtkwidget.c:1212 msgid "Horizontal Alignment" msgstr "Οριζόντια στοίχιση" @@ -1119,7 +1120,7 @@ msgstr "Οριζόντια στοίχιση" msgid "X alignment of the child" msgstr "Χ στοίχιση του θυγατρικού" -#: ../gtk/gtkaspectframe.c:114 ../gtk/gtkwidget.c:1229 +#: ../gtk/gtkaspectframe.c:114 ../gtk/gtkwidget.c:1228 msgid "Vertical Alignment" msgstr "Κάθετη στοίχιση" @@ -1151,7 +1152,7 @@ msgstr "Γέμισμα κεφαλίδας" #: ../gtk/gtkassistant.c:316 msgid "Number of pixels around the header." -msgstr "Αριθμός εικονοστοιχείων γύρω από την κεφαλίδα" +msgstr "Αριθμός εικονοστοιχείων γύρω από την κεφαλίδα." #: ../gtk/gtkassistant.c:323 msgid "Content Padding" @@ -1235,7 +1236,7 @@ msgstr "Μέγεθος μεγέθυνσης θυγατρικού και πάνω #: ../gtk/gtkbbox.c:194 msgid "Layout style" -msgstr "Στυλ διάταξης" +msgstr "Τεχνοτροπία διάταξης" #: ../gtk/gtkbbox.c:195 msgid "" @@ -1266,7 +1267,7 @@ msgid "If TRUE, the child will not be subject to homogeneous sizing" msgstr "Αν TRUE, το θυγατρικό δεν θα είναι αντικείμενο ομογενοποίησης μεγέθους" #: ../gtk/gtkbox.c:243 ../gtk/gtkcellareabox.c:315 ../gtk/gtkexpander.c:312 -#: ../gtk/gtkiconview.c:517 ../gtk/gtktreeviewcolumn.c:282 +#: ../gtk/gtkiconview.c:512 ../gtk/gtktreeviewcolumn.c:282 msgid "Spacing" msgstr "Διάκενο" @@ -1323,20 +1324,20 @@ msgstr "" "Ο τύπος GtkPack που ορίζει αν το θυγατρικό θα συσκευάζεται με αναφορά στην " "αρχή ή το τέλος του μητρικού" -#: ../gtk/gtkbox.c:313 ../gtk/gtknotebook.c:767 ../gtk/gtkpaned.c:348 +#: ../gtk/gtkbox.c:313 ../gtk/gtknotebook.c:768 ../gtk/gtkpaned.c:348 #: ../gtk/gtktoolitemgroup.c:1678 msgid "Position" msgstr "Θέση" -#: ../gtk/gtkbox.c:314 ../gtk/gtknotebook.c:768 +#: ../gtk/gtkbox.c:314 ../gtk/gtknotebook.c:769 msgid "The index of the child in the parent" msgstr "Ο δείκτης του θυγατρικού στο μητρικό" -#: ../gtk/gtkbuilder.c:305 +#: ../gtk/gtkbuilder.c:307 msgid "Translation Domain" msgstr "Τομέας μετάφρασης" -#: ../gtk/gtkbuilder.c:306 +#: ../gtk/gtkbuilder.c:308 msgid "The translation domain used by gettext" msgstr "Ο τομέας μετάφρασης που χρησιμοποιεί το gettext" @@ -1348,12 +1349,12 @@ msgstr "" "Κείμενο της ετικέτας γραφικού συστατικού μέσα στο κουμπί, αν το κουμπί " "περιέχει ετικέτα γραφικού συστατικού." -#: ../gtk/gtkbutton.c:240 ../gtk/gtkexpander.c:296 ../gtk/gtklabel.c:747 +#: ../gtk/gtkbutton.c:240 ../gtk/gtkexpander.c:296 ../gtk/gtklabel.c:742 #: ../gtk/gtkmenuitem.c:445 ../gtk/gtktoolbutton.c:246 msgid "Use underline" msgstr "Χρήση υπογράμμισης" -#: ../gtk/gtkbutton.c:241 ../gtk/gtkexpander.c:297 ../gtk/gtklabel.c:748 +#: ../gtk/gtkbutton.c:241 ../gtk/gtkexpander.c:297 ../gtk/gtklabel.c:743 #: ../gtk/gtkmenuitem.c:446 msgid "" "If set, an underline in the text indicates the next character should be used " @@ -1380,7 +1381,7 @@ msgstr "Εστίαση στο κλικ" #: ../gtk/gtkbutton.c:257 ../gtk/gtkfilechooserbutton.c:426 msgid "Whether the button grabs focus when it is clicked with the mouse" -msgstr "Αν το κουμπί θα εστιάζεται όταν γίνεται κλικ με με το ποντίκι" +msgstr "Εάν το κουμπί θα εστιάζεται όταν πατιέται με το ποντίκι" #: ../gtk/gtkbutton.c:264 msgid "Border relief" @@ -1388,7 +1389,7 @@ msgstr "Ανάγλυφο περιγράμματος" #: ../gtk/gtkbutton.c:265 msgid "The border relief style" -msgstr "Το στυλ του ανάγλυφου περιγράμματος" +msgstr "Η τεχνοτροπία του ανάγλυφου περιγράμματος" #: ../gtk/gtkbutton.c:282 msgid "Horizontal alignment for child" @@ -1476,7 +1477,7 @@ msgstr "Εσωτερικό περίγραμμα" #: ../gtk/gtkbutton.c:540 msgid "Border between button edges and child." -msgstr "Περίγραμμα ανάμεσα στις άκρες των κουμπιών και θυγατρικών" +msgstr "Περίγραμμα ανάμεσα στις άκρες των κουμπιών και θυγατρικών." #: ../gtk/gtkbutton.c:553 msgid "Image spacing" @@ -1484,7 +1485,7 @@ msgstr "Διάκενο εικόνας" #: ../gtk/gtkbutton.c:554 msgid "Spacing in pixels between the image and label" -msgstr "Διάκενο σε εικονοστοιχεία ανάμεσα στην εικόνα και την ετικέτα" +msgstr "Διάκενο σε εικονοστοιχεία ανάμεσα στην εικόνα και την ετικέτα" #: ../gtk/gtkcalendar.c:469 msgid "Year" @@ -1500,7 +1501,7 @@ msgstr "Μήνας" #: ../gtk/gtkcalendar.c:484 msgid "The selected month (as a number between 0 and 11)" -msgstr "Ο επιλεγμένος μήνας (ως αριθμός μεταξύ 0 και 12)" +msgstr "Ο επιλεγμένος μήνας (ως αριθμός μεταξύ 0 και 11)" #: ../gtk/gtkcalendar.c:498 msgid "Day" @@ -1928,7 +1929,7 @@ msgid "Whether the rendered pixbuf should be colorized according to the state" msgstr "Αν το εμφανιζόμενο pixbuf θα χρωματίζεται σύμφωνα με την κατάσταση" #: ../gtk/gtkcellrendererpixbuf.c:245 ../gtk/gtkimage.c:308 -#: ../gtk/gtkwindow.c:729 +#: ../gtk/gtkwindow.c:719 msgid "Icon" msgstr "Εικονίδιο" @@ -1968,8 +1969,8 @@ msgid "" "The horizontal text alignment, from 0 (left) to 1 (right). Reversed for RTL " "layouts." msgstr "" -"Η οριζόντια στοίχιση κειμένου. Από 0 (αριστερά) μέχρι 1 (δεξιά). " -"Αντεστραμμένη για τις διατάξεις RTL (αραβική-εβραϊκή)" +"Η οριζόντια στοίχιση κειμένου, από 0 (αριστερά) μέχρι 1 (δεξιά). " +"Αντεστραμμένη για τις διατάξεις RTL." #: ../gtk/gtkcellrendererprogress.c:212 msgid "Text y alignment" @@ -1977,7 +1978,7 @@ msgstr "Στοίχιση y κειμένου" #: ../gtk/gtkcellrendererprogress.c:213 msgid "The vertical text alignment, from 0 (top) to 1 (bottom)." -msgstr "Η κάθετη στοίχιση κειμένου, από 0 (πάνω) μέχρι 1 (κάτω)" +msgstr "Η κάθετη στοίχιση κειμένου, από 0 (πάνω) μέχρι 1 (κάτω)." #: ../gtk/gtkcellrendererprogress.c:224 ../gtk/gtklevelbar.c:991 #: ../gtk/gtkprogressbar.c:150 ../gtk/gtkrange.c:432 @@ -2005,7 +2006,7 @@ msgstr "Ρυθμός Αναρρίχησης" msgid "The acceleration rate when you hold down a button" msgstr "Ο ρυθμός συντόμευσης όταν πατιέται κάτω ένα κουμπί" -#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:294 +#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:309 #: ../gtk/gtkspinbutton.c:354 msgid "Digits" msgstr "Ψηφία" @@ -2015,7 +2016,7 @@ msgid "The number of decimal places to display" msgstr "Ο αριθμός των δεκαδικών που προβάλλεται" #: ../gtk/gtkcellrendererspinner.c:125 ../gtk/gtkcheckmenuitem.c:120 -#: ../gtk/gtkmenu.c:554 ../gtk/gtkspinner.c:114 ../gtk/gtkswitch.c:834 +#: ../gtk/gtkmenu.c:554 ../gtk/gtkspinner.c:114 ../gtk/gtkswitch.c:814 #: ../gtk/gtktoggleaction.c:131 ../gtk/gtktogglebutton.c:173 #: ../gtk/gtktoggletoolbutton.c:125 msgid "Active" @@ -2046,13 +2047,15 @@ msgid "Marked up text to render" msgstr "Επισημασμένο κείμενο προς εμφάνιση" #: ../gtk/gtkcellrenderertext.c:271 ../gtk/gtkentry.c:1410 -#: ../gtk/gtklabel.c:733 +#: ../gtk/gtklabel.c:728 msgid "Attributes" msgstr "Γνωρίσματα" #: ../gtk/gtkcellrenderertext.c:272 msgid "A list of style attributes to apply to the text of the renderer" -msgstr "Μια λίστα γνωρισμάτων για να εφαρμοστούν στο κείμενο" +msgstr "" +"Μια λίστα γνωρισμάτων τεχνοτροπίας για να εφαρμοστούν στο κείμενο του " +"αποτυπωτή" #: ../gtk/gtkcellrenderertext.c:279 msgid "Single Paragraph Mode" @@ -2117,12 +2120,12 @@ msgid "Foreground color as a GdkRGBA" msgstr "Χρώμα προσκηνίου ως GdkRGBA" #: ../gtk/gtkcellrenderertext.c:364 ../gtk/gtkentry.c:755 -#: ../gtk/gtktexttag.c:296 ../gtk/gtktextview.c:702 +#: ../gtk/gtktexttag.c:296 ../gtk/gtktextview.c:704 msgid "Editable" msgstr "Παραμετροποιήσιμο" #: ../gtk/gtkcellrenderertext.c:365 ../gtk/gtktexttag.c:297 -#: ../gtk/gtktextview.c:703 +#: ../gtk/gtktextview.c:705 msgid "Whether the text can be modified by the user" msgstr "Αν το κείμενο μπορεί να αλλαχθεί από το χρήστη" @@ -2139,7 +2142,7 @@ msgstr "Περιγραφή γραμματοσειράς ως αλφαριθμη #: ../gtk/gtkcellrenderertext.c:381 ../gtk/gtkfontchooser.c:79 #: ../gtk/gtktexttag.c:321 msgid "Font description as a PangoFontDescription struct" -msgstr "Περιγραφή γραμματοσειράς ως PangoFontDescription struct " +msgstr "Περιγραφή γραμματοσειράς ως δομής PangoFontDescription" #: ../gtk/gtkcellrenderertext.c:389 ../gtk/gtktexttag.c:328 msgid "Font family" @@ -2154,7 +2157,7 @@ msgstr "" #: ../gtk/gtkcellrenderertext.c:397 ../gtk/gtkcellrenderertext.c:398 #: ../gtk/gtktexttag.c:336 msgid "Font style" -msgstr "Στυλ γραμματοσειράς" +msgstr "Τεχνοτροπία γραμματοσειράς" #: ../gtk/gtkcellrenderertext.c:406 ../gtk/gtkcellrenderertext.c:407 #: ../gtk/gtktexttag.c:345 @@ -2200,8 +2203,8 @@ msgstr "Ανάδυση" msgid "" "Offset of text above the baseline (below the baseline if rise is negative)" msgstr "" -"Διάταξη του κειμένου πάνω από τη γραμμή βάσης (κάτω από τη γραμμή βάσης αν " -"η άνοδος είναι αρνητική)" +"Διάταξη του κειμένου πάνω από τη γραμμή βάσης (κάτω από τη γραμμή βάσης αν η " +"άνοδος είναι αρνητική)" #: ../gtk/gtkcellrenderertext.c:476 ../gtk/gtktexttag.c:503 msgid "Strikethrough" @@ -2217,7 +2220,7 @@ msgstr "Υπογράμμιση" #: ../gtk/gtkcellrenderertext.c:485 ../gtk/gtktexttag.c:512 msgid "Style of underline for this text" -msgstr "Τύπος υπογράμμισης για αυτό το κείμενο" +msgstr "Τεχνοτροπία υπογράμμισης για αυτό το κείμενο" #: ../gtk/gtkcellrenderertext.c:493 ../gtk/gtktexttag.c:423 msgid "Language" @@ -2233,7 +2236,7 @@ msgstr "" "χρησιμοποιήσει αυτό ως συμβουλή όταν θα εμφανίζει το κείμενο. Αν δεν " "καταλαβαίνετε αυτήν την παράμετρο πιθανόν και να μην τη χρειάζεστε." -#: ../gtk/gtkcellrenderertext.c:514 ../gtk/gtklabel.c:858 +#: ../gtk/gtkcellrenderertext.c:514 ../gtk/gtklabel.c:853 #: ../gtk/gtkprogressbar.c:218 msgid "Ellipsize" msgstr "Χρήση αποσιωπητικών" @@ -2247,15 +2250,15 @@ msgstr "" "εργασία απόδοσης κελιού δεν έχει αρκετό χώρο για να το εμφανίσει ολόκληρο" #: ../gtk/gtkcellrenderertext.c:534 ../gtk/gtkfilechooserbutton.c:453 -#: ../gtk/gtklabel.c:879 +#: ../gtk/gtklabel.c:874 msgid "Width In Characters" msgstr "Πλάτος σε χαρακτήρες" -#: ../gtk/gtkcellrenderertext.c:535 ../gtk/gtklabel.c:880 +#: ../gtk/gtkcellrenderertext.c:535 ../gtk/gtklabel.c:875 msgid "The desired width of the label, in characters" msgstr "Το επιθυμητό πλάτος της ετικέτας, σε χαρακτήρες" -#: ../gtk/gtkcellrenderertext.c:559 ../gtk/gtklabel.c:940 +#: ../gtk/gtkcellrenderertext.c:559 ../gtk/gtklabel.c:935 msgid "Maximum Width In Characters" msgstr "Μέγιστο μέγεθος σε χαρακτήρες" @@ -2307,7 +2310,7 @@ msgstr "Ορισμός παρασκηνίου" #: ../gtk/gtkcellrenderertext.c:648 ../gtk/gtkcellview.c:324 #: ../gtk/gtktexttag.c:626 msgid "Whether this tag affects the background color" -msgstr "Αν αυτή αναγνωριστική επηρεάζει το χρώμα παρασκηνίου" +msgstr "Αν αυτή αναγνωριστική επηρεάζει το χρώμα παρασκηνίου" #: ../gtk/gtkcellrenderertext.c:651 ../gtk/gtktexttag.c:633 msgid "Foreground set" @@ -2336,11 +2339,11 @@ msgstr "Αν αυτή αναγνωριστική ετικέτα επηρεάζε #: ../gtk/gtkcellrenderertext.c:663 ../gtk/gtktexttag.c:645 msgid "Font style set" -msgstr "Ορισμός στυλ γραμματοσειράς" +msgstr "Ορισμός τεχνοτροπίας γραμματοσειράς" #: ../gtk/gtkcellrenderertext.c:664 ../gtk/gtktexttag.c:646 msgid "Whether this tag affects the font style" -msgstr "Αν αυτή αναγνωριστική ετικέτα επηρεάζει το στυλ γραμματοσειράς " +msgstr "Εάν αυτή αναγνωριστική ετικέτα επηρεάζει την τεχνοτροπία γραμματοσειράς" #: ../gtk/gtkcellrenderertext.c:667 ../gtk/gtktexttag.c:649 msgid "Font variant set" @@ -2486,13 +2489,13 @@ msgid "The model for cell view" msgstr "Το μοντέλο για προβολή κελιού" #: ../gtk/gtkcellview.c:252 ../gtk/gtkcombobox.c:1010 -#: ../gtk/gtkentrycompletion.c:451 ../gtk/gtkiconview.c:642 +#: ../gtk/gtkentrycompletion.c:451 ../gtk/gtkiconview.c:637 #: ../gtk/gtktreemenu.c:332 ../gtk/gtktreeviewcolumn.c:426 msgid "Cell Area" msgstr "Περιοχή κελιών" #: ../gtk/gtkcellview.c:253 ../gtk/gtkcombobox.c:1011 -#: ../gtk/gtkentrycompletion.c:452 ../gtk/gtkiconview.c:643 +#: ../gtk/gtkentrycompletion.c:452 ../gtk/gtkiconview.c:638 #: ../gtk/gtktreemenu.c:333 ../gtk/gtktreeviewcolumn.c:427 msgid "The GtkCellArea used to layout cells" msgstr "Η GtkCellArea που χρησιμοποιείται για τη διαρρύθμιση των κελιών" @@ -2579,8 +2582,7 @@ msgstr "Το επιλεγμένο χρώμα" #: ../gtk/gtkcolorbutton.c:219 msgid "The selected opacity value (0 fully transparent, 65535 fully opaque)" -msgstr "" -"Η τρέχουσα τιμή αδιαφάνειας (0 πλήρη διαφάνεια, 65535 πλήρη αδιαφάνεια)" +msgstr "Η τρέχουσα τιμή αδιαφάνειας (0 πλήρη διαφάνεια, 65535 πλήρη αδιαφάνεια)" #: ../gtk/gtkcolorbutton.c:233 msgid "Current RGBA Color" @@ -2618,7 +2620,7 @@ msgstr "Χρώμα RGBA" msgid "Color as RGBA" msgstr "Χρώμα ως RGBA" -#: ../gtk/gtkcolorswatch.c:778 ../gtk/gtklabel.c:796 +#: ../gtk/gtkcolorswatch.c:778 ../gtk/gtklabel.c:791 msgid "Selectable" msgstr "Δυνατότητα επιλογής" @@ -2680,7 +2682,7 @@ msgstr "Αν το combo box θα σχεδιάζει ένα πλαίσιο γύρ #: ../gtk/gtkcombobox.c:858 msgid "Whether the combo box grabs focus when it is clicked with the mouse" -msgstr "Αν το combo box θα εστιάζεται όταν γίνεται κλικ με με το ποντίκι" +msgstr "Αν το σύνθετο πλαίσιο θα εστιάζεται όταν πατιέται με το ποντίκι" #: ../gtk/gtkcombobox.c:873 ../gtk/gtkmenu.c:609 msgid "Tearoff Title" @@ -2784,30 +2786,30 @@ msgstr "Χώρος που καλύπτει το βέλος" msgid "Which kind of shadow to draw around the combo box" msgstr "Το είδος σκίασης που θα περιβάλλει το πλαίσιο combo" -#: ../gtk/gtkcontainer.c:460 +#: ../gtk/gtkcontainer.c:461 msgid "Resize mode" msgstr "Κατάσταση αλλαγής μεγέθους" -#: ../gtk/gtkcontainer.c:461 +#: ../gtk/gtkcontainer.c:462 msgid "Specify how resize events are handled" msgstr "Ορισμός του τρόπου χειρισμού των αλλαγών μεγέθους" -#: ../gtk/gtkcontainer.c:468 +#: ../gtk/gtkcontainer.c:469 msgid "Border width" msgstr "Πλάτος πλαισίου" -#: ../gtk/gtkcontainer.c:469 +#: ../gtk/gtkcontainer.c:470 msgid "The width of the empty border outside the containers children" msgstr "Το πλάτος του κενού πλαισίου έξω από τα θυγατρικά containers" -#: ../gtk/gtkcontainer.c:477 +#: ../gtk/gtkcontainer.c:478 msgid "Child" msgstr "Θυγατρικό" -#: ../gtk/gtkcontainer.c:478 +#: ../gtk/gtkcontainer.c:479 msgid "Can be used to add a new child to the container" msgstr "" -"Μπορεί να χρησιμοποιηθεί για να προσθέσει ένα νέο θυγατρικό στο container" +"Μπορεί να χρησιμοποιηθεί για να προσθέσει ένα νέο θυγατρικό στο container" #: ../gtk/gtkcssshorthandproperty.c:158 msgid "Subproperties" @@ -2817,35 +2819,53 @@ msgstr "Υπο-επιλογές" msgid "The list of subproperties" msgstr "Η λίστα υπο-επιλογών" -#: ../gtk/gtkcssstyleproperty.c:250 +#: ../gtk/gtkcssstyleproperty.c:275 msgid "Animated" msgstr "Σε κίνηση" -#: ../gtk/gtkcssstyleproperty.c:251 +#: ../gtk/gtkcssstyleproperty.c:276 msgid "Set if the value can be animated" msgstr "Ορίστε αν η τιμή μπορεί να κινείται" -#: ../gtk/gtkcssstyleproperty.c:257 -msgid "ID" -msgstr "Ταυτότητα (ID)" +#: ../gtk/gtkcssstyleproperty.c:282 +msgid "Affects size" +msgstr "Επηρεάζει το μέγεθος" -#: ../gtk/gtkcssstyleproperty.c:258 +#: ../gtk/gtkcssstyleproperty.c:283 +#| msgid "Set if the value is inherited by default" +msgid "Set if the value affects the sizing of elements" +msgstr "Ορίστε εάν η τιμή επηρεάζει το μέγεθος των στοιχείων" + +#: ../gtk/gtkcssstyleproperty.c:289 +msgid "Affects font" +msgstr "Επηρεάζει τη γραμματοσειρά" + +#: ../gtk/gtkcssstyleproperty.c:290 +#| msgid "Set if the value can be animated" +msgid "Set if the value affects the font" +msgstr "Ορίστε εάν η τιμή επηρεάζει τη γραμματοσειρά" + +#: ../gtk/gtkcssstyleproperty.c:296 +msgid "ID" +msgstr "Ταυτότητα" + +#: ../gtk/gtkcssstyleproperty.c:297 msgid "The numeric id for quick access" msgstr "Το μετρικό id για γρήγορη πρόσβαση" -#: ../gtk/gtkcssstyleproperty.c:264 +#: ../gtk/gtkcssstyleproperty.c:303 msgid "Inherit" msgstr "Κληρονομικότητα" -#: ../gtk/gtkcssstyleproperty.c:265 +#: ../gtk/gtkcssstyleproperty.c:304 msgid "Set if the value is inherited by default" msgstr "Ορίστε αν η τιμή κληρονομείται από προεπιλογή" -#: ../gtk/gtkcssstyleproperty.c:271 +#: ../gtk/gtkcssstyleproperty.c:310 msgid "Initial value" msgstr "Αρχική τιμή" -#: ../gtk/gtkcssstyleproperty.c:272 +#: ../gtk/gtkcssstyleproperty.c:311 msgid "The initial specified value used for this property" msgstr "Η αρχική καθορισμένη τιμή που χρησιμοποιείται για αυτή την ιδιότητα" @@ -2914,19 +2934,19 @@ msgstr "" "Αντικείμενο ενδιάμεσης μνήμης κειμένου, που αποθηκεύει το κείμενο που " "εισάγεται" -#: ../gtk/gtkentry.c:735 ../gtk/gtklabel.c:821 +#: ../gtk/gtkentry.c:735 ../gtk/gtklabel.c:816 msgid "Cursor Position" msgstr "Θέση δρομέα" -#: ../gtk/gtkentry.c:736 ../gtk/gtklabel.c:822 +#: ../gtk/gtkentry.c:736 ../gtk/gtklabel.c:817 msgid "The current position of the insertion cursor in chars" msgstr "Η τρέχουσα θέση του δρομέα εισαγωγής σε χαρακτήρες" -#: ../gtk/gtkentry.c:745 ../gtk/gtklabel.c:831 +#: ../gtk/gtkentry.c:745 ../gtk/gtklabel.c:826 msgid "Selection Bound" msgstr "Όριο επιλογής" -#: ../gtk/gtkentry.c:746 ../gtk/gtklabel.c:832 +#: ../gtk/gtkentry.c:746 ../gtk/gtklabel.c:827 msgid "" "The position of the opposite end of the selection from the cursor in chars" msgstr "Η θέση του αντίθετου άκρου της επιλογής από το δρομέα σε χαρακτήρες" @@ -2944,8 +2964,8 @@ msgid "" "FALSE displays the \"invisible char\" instead of the actual text (password " "mode)" msgstr "" -"FALSE προβάλλει τον \"αόρατο χαρακτήρα\" αντί για το πραγματικό κείμενο " -"(password mode)" +"FALSE προβάλλει τον \"αόρατο χαρακτήρα\" αντί για το πραγματικό κείμενο " +"(κατάσταση κωδικού πρόσβασης)" #: ../gtk/gtkentry.c:781 msgid "FALSE removes outside bevel from entry" @@ -2955,8 +2975,8 @@ msgstr "FALSE απομακρύνει την εξωτερική γωνία από msgid "" "Border between text and frame. Overrides the inner-border style property" msgstr "" -"Περίγραμμα μεταξύ κειμένου και πλαισίου. Αντικαθιστά την ιδιότητα στυλ του " -"εσωτερικού περιγράμματος" +"Περίγραμμα μεταξύ κειμένου και πλαισίου. Αντικαθιστά την ιδιότητα " +"τεχνοτροπίας του εσωτερικού περιγράμματος" #: ../gtk/gtkentry.c:806 ../gtk/gtkentry.c:1465 msgid "Invisible character" @@ -2966,7 +2986,7 @@ msgstr "Αόρατος χαρακτήρας" msgid "The character to use when masking entry contents (in \"password mode\")" msgstr "" "Ο χαρακτήρας που θα χρησιμοποιείται για την απόκρυψη περιεχομένου " -"καταχώρισης (σε \"κατάσταση κωδικού πρόσβασης\")" +"καταχώρισης (σε \"κατάσταση κωδικού πρόσβασης\")" #: ../gtk/gtkentry.c:814 msgid "Activates default" @@ -3010,7 +3030,7 @@ msgid "" "layouts." msgstr "" "Η οριζόντια στοίχιση από 0 (αριστερά) μέχρι 1 (δεξιά). Αντεστραμμένη για τις " -"διατάξεις RTL (αραβική-εβραϊκή)" +"διατάξεις RTL." #: ../gtk/gtkentry.c:874 msgid "Truncate multiline" @@ -3026,7 +3046,7 @@ msgid "Which kind of shadow to draw around the entry when has-frame is set" msgstr "" "Το είδος της σκίασης γύρω από την καταχώρηση, όταν έχει οριστεί το has-frame" -#: ../gtk/gtkentry.c:906 ../gtk/gtktextview.c:782 +#: ../gtk/gtkentry.c:906 ../gtk/gtktextview.c:784 msgid "Overwrite mode" msgstr "Λειτουργία επικάλυψης" @@ -3216,11 +3236,11 @@ msgstr "Επισήμανση συμβουλής πρωτεύοντος εικο msgid "Secondary icon tooltip markup" msgstr "Επισήμανση συμβουλής δευτερεύοντος εικονιδίου" -#: ../gtk/gtkentry.c:1338 ../gtk/gtktextview.c:810 +#: ../gtk/gtkentry.c:1338 ../gtk/gtktextview.c:812 msgid "IM module" msgstr "Άρθρωμα IM" -#: ../gtk/gtkentry.c:1339 ../gtk/gtktextview.c:811 +#: ../gtk/gtkentry.c:1339 ../gtk/gtktextview.c:813 msgid "Which IM module should be used" msgstr "Ποιο άρθρωμα IM θα χρησιμοποιείται" @@ -3232,25 +3252,26 @@ msgstr "Ολοκλήρωση" msgid "The auxiliary completion object" msgstr "Το εναλλακτικό αντικείμενο ολοκλήρωσης" -#: ../gtk/gtkentry.c:1375 ../gtk/gtkimcontext.c:332 ../gtk/gtktextview.c:828 +#: ../gtk/gtkentry.c:1375 ../gtk/gtkimcontext.c:332 ../gtk/gtktextview.c:830 msgid "Purpose" msgstr "Σκοπός" -#: ../gtk/gtkentry.c:1376 ../gtk/gtkimcontext.c:333 ../gtk/gtktextview.c:829 +#: ../gtk/gtkentry.c:1376 ../gtk/gtkimcontext.c:333 ../gtk/gtktextview.c:831 msgid "Purpose of the text field" msgstr "Σκοπός του πεδίου κειμένου" -#: ../gtk/gtkentry.c:1392 ../gtk/gtkimcontext.c:340 ../gtk/gtktextview.c:845 +#: ../gtk/gtkentry.c:1392 ../gtk/gtkimcontext.c:340 ../gtk/gtktextview.c:847 msgid "hints" msgstr "συμβουλές" -#: ../gtk/gtkentry.c:1393 ../gtk/gtkimcontext.c:341 ../gtk/gtktextview.c:846 +#: ../gtk/gtkentry.c:1393 ../gtk/gtkimcontext.c:341 ../gtk/gtktextview.c:848 msgid "Hints for the text field behaviour" msgstr "Συμβουλές για τη συμπεριφορά του πεδίου κειμένου" -#: ../gtk/gtkentry.c:1411 ../gtk/gtklabel.c:734 +#: ../gtk/gtkentry.c:1411 ../gtk/gtklabel.c:729 msgid "A list of style attributes to apply to the text of the label" -msgstr "Μια λίστα γνωρισμάτων στυλ για εφαρμογή στο κείμενο της ετικέτας" +msgstr "" +"Μια λίστα γνωρισμάτων τεχνοτροπίας για εφαρμογή στο κείμενο της ετικέτας" #: ../gtk/gtkentry.c:1425 msgid "Icon Prelight" @@ -3259,8 +3280,7 @@ msgstr "Prelight εικονιδίου" #: ../gtk/gtkentry.c:1426 msgid "Whether activatable icons should prelight when hovered" msgstr "" -"Αν θα τονίζονται (prelight) τα ενεργοποιήσιμα εικονίδια όταν περνάει από " -"πάνω τους ο δρομέας" +"Εάν θα τονίζονται τα ενεργοποιήσιμα εικονίδια όταν υπερίπταται ο δρομέας" #: ../gtk/gtkentry.c:1443 msgid "Progress Border" @@ -3290,7 +3310,7 @@ msgstr "Ελάχιστη διάρκεια κλειδιού" msgid "Minimum length of the search key in order to look up matches" msgstr "Ελάχιστη διάρκεια του κλειδιού αναζήτησης για την εύρεση ταιριασμάτων" -#: ../gtk/gtkentrycompletion.c:347 ../gtk/gtkiconview.c:438 +#: ../gtk/gtkentrycompletion.c:347 ../gtk/gtkiconview.c:433 msgid "Text column" msgstr "Στήλη κειμένου" @@ -3330,7 +3350,7 @@ msgstr "Αναδυόμενο μοναδικού ταιριάσματος" #: ../gtk/gtkentrycompletion.c:418 msgid "If TRUE, the popup window will appear for a single match." msgstr "" -"Αν TRUE, το αναδυόμενο παράθυρο θα εμφανίζεται για ένα μοναδικό ταίριασμα" +"Αν TRUE, το αναδυόμενο παράθυρο θα εμφανίζεται για ένα μοναδικό ταίριασμα." #: ../gtk/gtkentrycompletion.c:432 msgid "Inline selection" @@ -3376,11 +3396,11 @@ msgstr "" msgid "Text of the expander's label" msgstr "Κείμενο της ετικέτας του σε ανάπτυξη παραθύρου" -#: ../gtk/gtkexpander.c:304 ../gtk/gtklabel.c:740 +#: ../gtk/gtkexpander.c:304 ../gtk/gtklabel.c:735 msgid "Use markup" msgstr "Χρήση επισήμανσης" -#: ../gtk/gtkexpander.c:305 ../gtk/gtklabel.c:741 +#: ../gtk/gtkexpander.c:305 ../gtk/gtklabel.c:736 msgid "The text of the label includes XML markup. See pango_parse_markup()" msgstr "" "Το κείμενο της ετικέτας περιέχει XML markup. Βλέπε pango_parse_markup()." @@ -3398,7 +3418,7 @@ msgstr "Γραφικό συστατικό ετικέτας" #: ../gtk/gtkexpander.c:323 msgid "A widget to display in place of the usual expander label" -msgstr "Ένα γραφικό συστατικό στη θέση της συνήθους ετικέτας αναπτυσσόμενου " +msgstr "Ένα γραφικό συστατικό στη θέση της συνήθους ετικέτας αναπτυσσόμενου" #: ../gtk/gtkexpander.c:330 msgid "Label fill" @@ -3421,12 +3441,12 @@ msgstr "" "επέκταση και την κατάρρευση" #: ../gtk/gtkexpander.c:353 ../gtk/gtktoolitemgroup.c:1632 -#: ../gtk/gtktreeview.c:1194 +#: ../gtk/gtktreeview.c:1195 msgid "Expander Size" msgstr "Μέγεθος αναπτυσσόμενου" #: ../gtk/gtkexpander.c:354 ../gtk/gtktoolitemgroup.c:1633 -#: ../gtk/gtktreeview.c:1195 +#: ../gtk/gtktreeview.c:1196 msgid "Size of the expander arrow" msgstr "Μέγεθος του βέλους ανάπτυξης" @@ -3444,7 +3464,7 @@ msgstr "Ο διάλογος που θα χρησιμοποιείται στον #: ../gtk/gtkfilechooserbutton.c:440 msgid "The title of the file chooser dialog." -msgstr "Ο τίτλος του διαλόγου επιλογής αρχείου" +msgstr "Ο τίτλος του διαλόγου επιλογής αρχείου." #: ../gtk/gtkfilechooserbutton.c:454 msgid "The desired width of the button widget, in characters." @@ -3473,7 +3493,7 @@ msgstr "Μόνο τοπικά" #: ../gtk/gtkfilechooser.c:759 msgid "Whether the selected file(s) should be limited to local file: URLs" msgstr "" -"Αν τα επιλεγμένα αρχεία θα πρέπει να περιορίζονται σε τοπικά αρχεία: URLs " +"Αν τα επιλεγμένα αρχεία θα πρέπει να περιορίζονται σε τοπικά αρχεία: URLs" #: ../gtk/gtkfilechooser.c:764 msgid "Preview widget" @@ -3597,15 +3617,15 @@ msgstr "Χρήση μεγέθους στην ετικέτα" #: ../gtk/gtkfontbutton.c:484 msgid "Whether the label is drawn with the selected font size" -msgstr "Αν η ετικέτα σχεδιάζεται με το επιλεγμένο μέγεθος γραμματοσειράς" +msgstr "Αν η ετικέτα σχεδιάζεται με το επιλεγμένο μέγεθος γραμματοσειράς" #: ../gtk/gtkfontbutton.c:500 msgid "Show style" -msgstr "Εμφάνιση στυλ" +msgstr "Εμφάνιση τεχνοτροπίας" #: ../gtk/gtkfontbutton.c:501 msgid "Whether the selected font style is shown in the label" -msgstr "Αν η επιλεγμένη γραμματοσειρά φαίνεται στην ετικέτα" +msgstr "Αν η επιλεγμένη τεχνοτροπία γραμματοσειράς φαίνεται στην ετικέτα" #: ../gtk/gtkfontbutton.c:516 msgid "Show size" @@ -3699,136 +3719,136 @@ msgstr "Ύψος" msgid "The number of rows that a child spans" msgstr "Ο αριθμός των γραμμών που παράγει ένα θυγατρικό" -#: ../gtk/gtkiconview.c:401 ../gtk/gtktreeselection.c:130 +#: ../gtk/gtkiconview.c:396 ../gtk/gtktreeselection.c:130 msgid "Selection mode" msgstr "Λειτουργία επιλογής" -#: ../gtk/gtkiconview.c:402 +#: ../gtk/gtkiconview.c:397 msgid "The selection mode" msgstr "Η λειτουργία επιλογής" -#: ../gtk/gtkiconview.c:420 +#: ../gtk/gtkiconview.c:415 msgid "Pixbuf column" msgstr "Στήλη Pixbuf" -#: ../gtk/gtkiconview.c:421 +#: ../gtk/gtkiconview.c:416 msgid "Model column used to retrieve the icon pixbuf from" msgstr "Το μοντέλο στήλης για τη λήψη του pixbuf εικονιδίου από" -#: ../gtk/gtkiconview.c:439 +#: ../gtk/gtkiconview.c:434 msgid "Model column used to retrieve the text from" msgstr "Το μοντέλο στήλης που χρησιμοποιείται για τη λήψη του κειμένου από" -#: ../gtk/gtkiconview.c:458 +#: ../gtk/gtkiconview.c:453 msgid "Markup column" msgstr "Στήλη επισήμανσης" -#: ../gtk/gtkiconview.c:459 +#: ../gtk/gtkiconview.c:454 msgid "Model column used to retrieve the text if using Pango markup" msgstr "" "Το μοντέλο στήλης για τη λήψη του κειμένου, στην περίπτωση χρήσης " "επισήμανσης Pango" -#: ../gtk/gtkiconview.c:466 +#: ../gtk/gtkiconview.c:461 msgid "Icon View Model" msgstr "Μοντέλο προβολής εικονιδίων" -#: ../gtk/gtkiconview.c:467 +#: ../gtk/gtkiconview.c:462 msgid "The model for the icon view" msgstr "Το μοντέλο για προβολή εικονιδίου" -#: ../gtk/gtkiconview.c:483 +#: ../gtk/gtkiconview.c:478 msgid "Number of columns" msgstr "Ο αριθμός των στηλών" -#: ../gtk/gtkiconview.c:484 +#: ../gtk/gtkiconview.c:479 msgid "Number of columns to display" msgstr "Ο αριθμός των στηλών που προβάλλεται" -#: ../gtk/gtkiconview.c:501 +#: ../gtk/gtkiconview.c:496 msgid "Width for each item" msgstr "Πλάτος κάθε αντικειμένου" -#: ../gtk/gtkiconview.c:502 +#: ../gtk/gtkiconview.c:497 msgid "The width used for each item" msgstr "Το πλάτος που χρησιμοποιείται για κάθε στοιχείο" -#: ../gtk/gtkiconview.c:518 +#: ../gtk/gtkiconview.c:513 msgid "Space which is inserted between cells of an item" msgstr "Το διάστημα που εισάγεται ανάμεσα στα κελιά ενός στοιχείου" -#: ../gtk/gtkiconview.c:533 +#: ../gtk/gtkiconview.c:528 msgid "Row Spacing" msgstr "Διάκενο γραμμών" -#: ../gtk/gtkiconview.c:534 +#: ../gtk/gtkiconview.c:529 msgid "Space which is inserted between grid rows" msgstr "Το διάστημα που εισάγεται ανάμεσα στα κελιά γραμμών πλέγματος" -#: ../gtk/gtkiconview.c:549 +#: ../gtk/gtkiconview.c:544 msgid "Column Spacing" msgstr "Διάκενο στηλών" -#: ../gtk/gtkiconview.c:550 +#: ../gtk/gtkiconview.c:545 msgid "Space which is inserted between grid columns" msgstr "Το διάστημα που εισάγεται ανάμεσα στις στήλες πλέγματος" -#: ../gtk/gtkiconview.c:565 +#: ../gtk/gtkiconview.c:560 msgid "Margin" msgstr "Περιθώριο" -#: ../gtk/gtkiconview.c:566 +#: ../gtk/gtkiconview.c:561 msgid "Space which is inserted at the edges of the icon view" msgstr "Το διάστημα που εισάγεται στα όρια της προβολής εικονιδίου" -#: ../gtk/gtkiconview.c:581 +#: ../gtk/gtkiconview.c:576 msgid "Item Orientation" msgstr "Προσανατολισμός στοιχείου" -#: ../gtk/gtkiconview.c:582 +#: ../gtk/gtkiconview.c:577 msgid "" "How the text and icon of each item are positioned relative to each other" msgstr "" "Πως το κείμενο και κάθε στοιχείο τοποθετούνται σχετικά το ένα με το άλλο" -#: ../gtk/gtkiconview.c:598 ../gtk/gtktreeview.c:1029 +#: ../gtk/gtkiconview.c:593 ../gtk/gtktreeview.c:1030 #: ../gtk/gtktreeviewcolumn.c:373 msgid "Reorderable" msgstr "Δυνατότητα αναδιάταξης" -#: ../gtk/gtkiconview.c:599 ../gtk/gtktreeview.c:1030 +#: ../gtk/gtkiconview.c:594 ../gtk/gtktreeview.c:1031 msgid "View is reorderable" msgstr "Η προβολή έχει δυνατότητα αναδιάταξης" -#: ../gtk/gtkiconview.c:606 ../gtk/gtktreeview.c:1180 +#: ../gtk/gtkiconview.c:601 ../gtk/gtktreeview.c:1181 msgid "Tooltip Column" -msgstr "Στήλη αναδυόμενων συμβουλών" +msgstr "Στήλη αναδυόμενων συμβουλών" -#: ../gtk/gtkiconview.c:607 +#: ../gtk/gtkiconview.c:602 msgid "The column in the model containing the tooltip texts for the items" msgstr "Στήλη στο μοντέλο που περιέχει τα κείμενα των αναδυόμενων συμβουλών" -#: ../gtk/gtkiconview.c:624 +#: ../gtk/gtkiconview.c:619 msgid "Item Padding" msgstr "Γέμισμα στοιχείων" -#: ../gtk/gtkiconview.c:625 +#: ../gtk/gtkiconview.c:620 msgid "Padding around icon view items" msgstr "Γέμισμα γύρω από τα στοιχεία της προβολής εικονιδίων" -#: ../gtk/gtkiconview.c:656 +#: ../gtk/gtkiconview.c:651 msgid "Selection Box Color" msgstr "Χρώμα κουτιού επιλογής" -#: ../gtk/gtkiconview.c:657 +#: ../gtk/gtkiconview.c:652 msgid "Color of the selection box" msgstr "Το χρώμα του κουτιού επιλογής" -#: ../gtk/gtkiconview.c:663 +#: ../gtk/gtkiconview.c:658 msgid "Selection Box Alpha" msgstr "Άλφα κουτιού επιλογής" -#: ../gtk/gtkiconview.c:664 +#: ../gtk/gtkiconview.c:659 msgid "Opacity of the selection box" msgstr "Αδιαφάνεια του κουτιού επιλογής" @@ -3902,7 +3922,7 @@ msgstr "Χρήση Fallback" #: ../gtk/gtkimage.c:336 msgid "Whether to use icon names fallback" -msgstr "Αν θα χρησιμοποιηθούν fallback ονόματα εικονιδίων " +msgstr "Αν θα χρησιμοποιηθούν fallback ονόματα εικονιδίων" #: ../gtk/gtkimagemenuitem.c:159 msgid "Child widget to appear next to the menu text" @@ -3912,8 +3932,8 @@ msgstr "" #: ../gtk/gtkimagemenuitem.c:174 msgid "Whether to use the label text to create a stock menu item" msgstr "" -"Αν το κείμενο της ετικέτας θα χρησιμοποιηθεί για τη δημιουργία έτοιμου " -"(stock) στοιχείου μενού" +"Εάν το κείμενο της ετικέτας θα χρησιμοποιηθεί για τη δημιουργία έτοιμου " +"στοιχείου μενού" #: ../gtk/gtkimagemenuitem.c:207 ../gtk/gtkmenu.c:569 msgid "Accel Group" @@ -3921,8 +3941,7 @@ msgstr "Ομάδα Accel" #: ../gtk/gtkimagemenuitem.c:208 msgid "The Accel Group to use for stock accelerator keys" -msgstr "" -"Η ομάδα Accel που χρησιμοποιείται για τα έτοιμα (stock) πλήκτρα συντομεύσεων" +msgstr "Η ομάδα Accel που χρησιμοποιείται για τα έτοιμα πλήκτρα συντομεύσεων" #: ../gtk/gtkinfobar.c:414 ../gtk/gtkmessagedialog.c:205 msgid "Message Type" @@ -3945,24 +3964,24 @@ msgid "Width of border around the action area" msgstr "Πλάτος πλαισίου γύρω από την περιοχή ενεργειών" #: ../gtk/gtkinvisible.c:101 ../gtk/gtkmountoperation.c:179 -#: ../gtk/gtkstatusicon.c:290 ../gtk/gtkstylecontext.c:440 -#: ../gtk/gtkwindow.c:791 +#: ../gtk/gtkstatusicon.c:290 ../gtk/gtkstylecontext.c:442 +#: ../gtk/gtkwindow.c:781 msgid "Screen" msgstr "Οθόνη" -#: ../gtk/gtkinvisible.c:102 ../gtk/gtkwindow.c:792 +#: ../gtk/gtkinvisible.c:102 ../gtk/gtkwindow.c:782 msgid "The screen where this window will be displayed" msgstr "Η οθόνη όπου και θα προβάλλεται αυτό το παράθυρο" -#: ../gtk/gtklabel.c:727 +#: ../gtk/gtklabel.c:722 msgid "The text of the label" msgstr "Το κείμενο της ετικέτας" -#: ../gtk/gtklabel.c:755 ../gtk/gtktexttag.c:404 ../gtk/gtktextview.c:719 +#: ../gtk/gtklabel.c:750 ../gtk/gtktexttag.c:404 ../gtk/gtktextview.c:721 msgid "Justification" msgstr "Στοίχιση" -#: ../gtk/gtklabel.c:756 +#: ../gtk/gtklabel.c:751 msgid "" "The alignment of the lines in the text of the label relative to each other. " "This does NOT affect the alignment of the label within its allocation. See " @@ -3971,58 +3990,58 @@ msgstr "" "Η στοίχιση των γραμμών του κείμενου της ετικέτας είναι σχετική μεταξύ τους. " "Αυτό ΔΕΝ επηρεάζει τη στοίχιση της ετικέτας . Βλέπε GtkMisc::xalign γι αυτό" -#: ../gtk/gtklabel.c:764 +#: ../gtk/gtklabel.c:759 msgid "Pattern" msgstr "Μοτίβο" -#: ../gtk/gtklabel.c:765 +#: ../gtk/gtklabel.c:760 msgid "" "A string with _ characters in positions correspond to characters in the text " "to underline" msgstr "" -"Ένα string με χαρακτήρες _ σε θέσεις που αντιστοιχούν σε χαρακτήρες " +"Μια συμβολοσειρά με χαρακτήρες _ σε θέσεις που αντιστοιχούν σε χαρακτήρες " "χρησιμοποιείται στο κείμενο για υπογράμμιση." -#: ../gtk/gtklabel.c:772 +#: ../gtk/gtklabel.c:767 msgid "Line wrap" msgstr "Αναδίπλωση γραμμής" -#: ../gtk/gtklabel.c:773 +#: ../gtk/gtklabel.c:768 msgid "If set, wrap lines if the text becomes too wide" msgstr "" "Αν ορισθεί θα γίνεται αναδίπλωση γραμμών αν το κείμενο είναι πολύ πλατύ" -#: ../gtk/gtklabel.c:788 +#: ../gtk/gtklabel.c:783 msgid "Line wrap mode" msgstr "Λειτουργία αναδίπλωσης γραμμής" -#: ../gtk/gtklabel.c:789 +#: ../gtk/gtklabel.c:784 msgid "If wrap is set, controls how linewrapping is done" msgstr "Αν έχει επιλεχθεί η αναδίπλωση, ελέγχει τον τρόπο εφαρμογής της" -#: ../gtk/gtklabel.c:797 +#: ../gtk/gtklabel.c:792 msgid "Whether the label text can be selected with the mouse" msgstr "Αν το κείμενο της ετικέτας μπορεί να επιλεχθεί με το ποντίκι" -#: ../gtk/gtklabel.c:803 +#: ../gtk/gtklabel.c:798 msgid "Mnemonic key" msgstr "Μνημονικό κλειδί" -#: ../gtk/gtklabel.c:804 +#: ../gtk/gtklabel.c:799 msgid "The mnemonic accelerator key for this label" msgstr "Το μνημονικό κλειδί συντόμευσης για αυτήν την ετικέτα" -#: ../gtk/gtklabel.c:812 +#: ../gtk/gtklabel.c:807 msgid "Mnemonic widget" msgstr "Μνημονικό γραφικό συστατικό" -#: ../gtk/gtklabel.c:813 +#: ../gtk/gtklabel.c:808 msgid "The widget to be activated when the label's mnemonic key is pressed" msgstr "" "Το γραφικό συστατικό που θα ενεργοποιείται όταν πατιέται το μνημονικό κλειδί " "της ετικέτας" -#: ../gtk/gtklabel.c:859 +#: ../gtk/gtklabel.c:854 msgid "" "The preferred place to ellipsize the string, if the label does not have " "enough room to display the entire string" @@ -4030,31 +4049,31 @@ msgstr "" "Η προτιμώμενη θέση για την αποσιώπηση αλφαριθμητικού, αν η ετικέτα δεν έχει " "αρκετό χώρο για την εμφάνιση ολόκληρου του αλφαριθμητικού" -#: ../gtk/gtklabel.c:900 +#: ../gtk/gtklabel.c:895 msgid "Single Line Mode" msgstr "Λειτουργία μονής γραμμής" -#: ../gtk/gtklabel.c:901 +#: ../gtk/gtklabel.c:896 msgid "Whether the label is in single line mode" msgstr "Αν η ετικέτα είναι σε λειτουργία μονής γραμμής" -#: ../gtk/gtklabel.c:918 +#: ../gtk/gtklabel.c:913 msgid "Angle" msgstr "Γωνία" -#: ../gtk/gtklabel.c:919 +#: ../gtk/gtklabel.c:914 msgid "Angle at which the label is rotated" msgstr "Γωνία υπό την οποία περιστρέφεται η ετικέτα" -#: ../gtk/gtklabel.c:941 +#: ../gtk/gtklabel.c:936 msgid "The desired maximum width of the label, in characters" msgstr "Το επιθυμητό μέγιστο πλάτος της ετικέτας, σε χαρακτήρες" -#: ../gtk/gtklabel.c:959 +#: ../gtk/gtklabel.c:954 msgid "Track visited links" msgstr "Καταγραφή ανοιγμένων συνδέσμων" -#: ../gtk/gtklabel.c:960 +#: ../gtk/gtklabel.c:955 msgid "Whether visited links should be tracked" msgstr "Αν θα καταγράφονται οι σύνδεσμοι που έχετε επισκεφθεί" @@ -4099,7 +4118,6 @@ msgid "The mode of the value indicator displayed by the bar" msgstr "Η λειτουργία της ένδειξης τιμής που εμφανίζεται από τη μπάρα" #: ../gtk/gtklevelbar.c:992 -#| msgid "Invert the direction in which the progress bar grows" msgid "Invert the direction in which the level bar grows" msgstr "Αναστροφή της κατεύθυνσης στην οποία μεγαλώνει η μπάρα προόδου" @@ -4186,31 +4204,31 @@ msgstr "" "Το βοήθημα που προβάλλεται όταν προβάλλεται στη χρήστη ότι δεν έχει " "δικαιοδοσία" -#: ../gtk/gtkmenubar.c:190 +#: ../gtk/gtkmenubar.c:187 msgid "Pack direction" msgstr "Κατεύθυνση πακέτου" -#: ../gtk/gtkmenubar.c:191 +#: ../gtk/gtkmenubar.c:188 msgid "The pack direction of the menubar" msgstr "Ο προσανατολισμός της εργαλειοθήκης μενού" -#: ../gtk/gtkmenubar.c:207 +#: ../gtk/gtkmenubar.c:204 msgid "Child Pack direction" msgstr "Προσανατολισμός θυγατρικού πακέτου" -#: ../gtk/gtkmenubar.c:208 +#: ../gtk/gtkmenubar.c:205 msgid "The child pack direction of the menubar" msgstr "Ο προσανατολισμός θυγατρικού πακέτου της εργαλειοθήκης" -#: ../gtk/gtkmenubar.c:217 +#: ../gtk/gtkmenubar.c:214 msgid "Style of bevel around the menubar" -msgstr "Στυλ των γωνιών γύρω από την εργαλειοθήκη μενού" +msgstr "Τεχνοτροπία των γωνιών γύρω από την εργαλειοθήκη μενού" -#: ../gtk/gtkmenubar.c:224 ../gtk/gtktoolbar.c:589 +#: ../gtk/gtkmenubar.c:230 ../gtk/gtktoolbar.c:589 msgid "Internal padding" msgstr "Εσωτερικό γέμισμα" -#: ../gtk/gtkmenubar.c:225 +#: ../gtk/gtkmenubar.c:231 msgid "Amount of border space between the menubar shadow and the menu items" msgstr "" "Μέγεθος διαστήματος περιγράμματος μεταξύ της εργαλειοθήκης μενού και τα " @@ -4289,7 +4307,7 @@ msgstr "Αποσπώμενος κατάσταση" #: ../gtk/gtkmenu.c:625 msgid "A boolean that indicates whether the menu is torn-off" -msgstr "Ένα boolean που που δείχνει αν το μενού αποκόπτεται" +msgstr "Μια τιμή Μπουλ που δείχνει εάν το μενού αποκόπτεται" #: ../gtk/gtkmenu.c:639 msgid "Monitor" @@ -4299,19 +4317,11 @@ msgstr "Οθόνη" msgid "The monitor the menu will be popped up on" msgstr "Η οθόνη στην οποία θα εμφανιστεί το μενού" -#: ../gtk/gtkmenu.c:646 -msgid "Vertical Padding" -msgstr "Κάθετο γέμισμα" - -#: ../gtk/gtkmenu.c:647 -msgid "Extra space at the top and bottom of the menu" -msgstr "Έξτρα διάστημα πάνω και κάτω από το μενού" - -#: ../gtk/gtkmenu.c:669 +#: ../gtk/gtkmenu.c:660 msgid "Reserve Toggle Size" msgstr "Κράτηση χώρου κουμπιού εναλλαγής" -#: ../gtk/gtkmenu.c:670 +#: ../gtk/gtkmenu.c:661 msgid "" "A boolean that indicates whether the menu reserves space for toggles and " "icons" @@ -4327,11 +4337,19 @@ msgstr "Οριζόντιο γέμισμα" msgid "Extra space at the left and right edges of the menu" msgstr "Έξτρα διάστημα πάνω και κάτω από τις γωνίες του μενού" -#: ../gtk/gtkmenu.c:685 +#: ../gtk/gtkmenu.c:695 +msgid "Vertical Padding" +msgstr "Κάθετο γέμισμα" + +#: ../gtk/gtkmenu.c:696 +msgid "Extra space at the top and bottom of the menu" +msgstr "Έξτρα διάστημα πάνω και κάτω από το μενού" + +#: ../gtk/gtkmenu.c:705 msgid "Vertical Offset" msgstr "Κάθετη κλίμακα" -#: ../gtk/gtkmenu.c:686 +#: ../gtk/gtkmenu.c:706 msgid "" "When the menu is a submenu, position it this number of pixels offset " "vertically" @@ -4339,11 +4357,11 @@ msgstr "" "Αν το μενού είναι ένα υπομενού, η θέση του σε εικονοστοιχεία σε κάθετη " "κλίμακα" -#: ../gtk/gtkmenu.c:694 +#: ../gtk/gtkmenu.c:714 msgid "Horizontal Offset" msgstr "Οριζόντια κλίμακα" -#: ../gtk/gtkmenu.c:695 +#: ../gtk/gtkmenu.c:715 msgid "" "When the menu is a submenu, position it this number of pixels offset " "horizontally" @@ -4351,47 +4369,47 @@ msgstr "" "Αν το μενού είναι ένα υπομενού, η θέση του σε εικονοστοιχεία σε οριζόντια " "κλίμακα" -#: ../gtk/gtkmenu.c:703 +#: ../gtk/gtkmenu.c:723 msgid "Double Arrows" msgstr "Διπλά βέλη" -#: ../gtk/gtkmenu.c:704 +#: ../gtk/gtkmenu.c:724 msgid "When scrolling, always show both arrows." msgstr "Κατά την κύλιση, να εμφανίζονται πάντα και τα δύο βέλη." -#: ../gtk/gtkmenu.c:717 +#: ../gtk/gtkmenu.c:737 msgid "Arrow Placement" msgstr "Θέση βελών" -#: ../gtk/gtkmenu.c:718 +#: ../gtk/gtkmenu.c:738 msgid "Indicates where scroll arrows should be placed" msgstr "Που θα τοποθετηθούν τα βέλη κύλισης" -#: ../gtk/gtkmenu.c:726 +#: ../gtk/gtkmenu.c:746 msgid "Left Attach" msgstr "Πρόσδεση αριστερά" -#: ../gtk/gtkmenu.c:734 +#: ../gtk/gtkmenu.c:754 msgid "Right Attach" msgstr "Πρόσδεση δεξιά" -#: ../gtk/gtkmenu.c:735 +#: ../gtk/gtkmenu.c:755 msgid "The column number to attach the right side of the child to" msgstr "Ο αριθμός στήλης όπου προσδένεται η δεξιά πλευρά του θυγατρικού" -#: ../gtk/gtkmenu.c:742 +#: ../gtk/gtkmenu.c:762 msgid "Top Attach" msgstr "Πρόσδεση πάνω" -#: ../gtk/gtkmenu.c:743 +#: ../gtk/gtkmenu.c:763 msgid "The row number to attach the top of the child to" -msgstr "Ο αριθμός γραμμής όπου προσδένεται το πάνω μέρος ενός θυγατρικού " +msgstr "Ο αριθμός γραμμής όπου προσδένεται το πάνω μέρος ενός θυγατρικού" -#: ../gtk/gtkmenu.c:750 +#: ../gtk/gtkmenu.c:770 msgid "Bottom Attach" msgstr "Πρόσδεση κάτω" -#: ../gtk/gtkmenu.c:765 +#: ../gtk/gtkmenu.c:785 msgid "Arbitrary constant to scale down the size of the scroll arrow" msgstr "Αυθαίρετη σταθερά για τη μείωση του μεγέθους του βέλους κύλισης" @@ -4424,17 +4442,17 @@ msgstr "Ορίζει τη διαδρομή συντόμευσης του στο msgid "The text for the child label" msgstr "Το κείμενο της ετικέτας του θυγατρικού" -#: ../gtk/gtkmenuitem.c:497 +#: ../gtk/gtkmenuitem.c:507 msgid "Amount of space used up by arrow, relative to the menu item's font size" msgstr "" "Χώρος που καλύπτει το βέλος, σε σχέση με το μέγεθος της γραμματοσειράς του " "στοιχείου του μενού" -#: ../gtk/gtkmenuitem.c:510 +#: ../gtk/gtkmenuitem.c:520 msgid "Width in Characters" msgstr "Πλάτος σε χαρακτήρες" -#: ../gtk/gtkmenuitem.c:511 +#: ../gtk/gtkmenuitem.c:521 msgid "The minimum desired width of the menu item in characters" msgstr "Το ελάχιστο επιθυμητό πλάτος του στοιχείου του μενού, σε χαρακτήρες" @@ -4548,7 +4566,7 @@ msgstr "" "Το μέγεθος του διαστήματος για προσθήκη στο πάνω και κάτω μέρος του γραφικού " "συστατικού, σε εικονοστοιχεία" -#: ../gtk/gtkmountoperation.c:163 ../gtk/gtkstylecontext.c:463 +#: ../gtk/gtkmountoperation.c:163 ../gtk/gtkstylecontext.c:465 msgid "Parent" msgstr "Γονέας" @@ -4568,51 +4586,51 @@ msgstr "Αν εμφανίζεται ο διάλογος" msgid "The screen where this window will be displayed." msgstr "Η οθόνη όπου θα προβάλλεται αυτό το παράθυρο." -#: ../gtk/gtknotebook.c:692 +#: ../gtk/gtknotebook.c:693 msgid "Page" msgstr "Σελίδα" -#: ../gtk/gtknotebook.c:693 +#: ../gtk/gtknotebook.c:694 msgid "The index of the current page" msgstr "Ο δείκτης της τρέχουσας σελίδας" -#: ../gtk/gtknotebook.c:701 +#: ../gtk/gtknotebook.c:702 msgid "Tab Position" msgstr "Θέση στηλοθέτη" -#: ../gtk/gtknotebook.c:702 +#: ../gtk/gtknotebook.c:703 msgid "Which side of the notebook holds the tabs" msgstr "Ποιό μέρος του σημειωματάριου ελέγχει τους στηλοθέτες" -#: ../gtk/gtknotebook.c:709 +#: ../gtk/gtknotebook.c:710 msgid "Show Tabs" msgstr "Προβολή στηλοθετών" -#: ../gtk/gtknotebook.c:710 +#: ../gtk/gtknotebook.c:711 msgid "Whether tabs should be shown" msgstr "Αν θα εμφανίζονται στηλοθέτες" -#: ../gtk/gtknotebook.c:716 +#: ../gtk/gtknotebook.c:717 msgid "Show Border" msgstr "Προβολή Περιγράμματος" -#: ../gtk/gtknotebook.c:717 +#: ../gtk/gtknotebook.c:718 msgid "Whether the border should be shown" msgstr "Αν θα εμφανίζεται ή όχι το περίγραμμα" -#: ../gtk/gtknotebook.c:723 +#: ../gtk/gtknotebook.c:724 msgid "Scrollable" msgstr "Με δυνατότητα κύλισης" -#: ../gtk/gtknotebook.c:724 +#: ../gtk/gtknotebook.c:725 msgid "If TRUE, scroll arrows are added if there are too many tabs to fit" msgstr "Αν TRUE, προστίθενται βέλη κύλισης αν υπάρχουν πολλοί στηλοθέτες" -#: ../gtk/gtknotebook.c:730 +#: ../gtk/gtknotebook.c:731 msgid "Enable Popup" msgstr "Ενεργοποίηση Αναδυόμενων Μενού" -#: ../gtk/gtknotebook.c:731 +#: ../gtk/gtknotebook.c:732 msgid "" "If TRUE, pressing the right mouse button on the notebook pops up a menu that " "you can use to go to a page" @@ -4620,129 +4638,129 @@ msgstr "" "Αν TRUE, ή πίεση του δεξιού ποντικιού στο σημειωματάριο, αναδύει ένα μενού " "που μπορεί να χρησιμοποιηθεί για τη μετάβαση σε μια σελίδα" -#: ../gtk/gtknotebook.c:745 +#: ../gtk/gtknotebook.c:746 msgid "Group Name" msgstr "Όνομα ομάδας" -#: ../gtk/gtknotebook.c:746 +#: ../gtk/gtknotebook.c:747 msgid "Group name for tab drag and drop" msgstr "Όνομα ομάδας για το σύρσιμο και την απόθεση καρτελών" -#: ../gtk/gtknotebook.c:753 +#: ../gtk/gtknotebook.c:754 msgid "Tab label" msgstr "Ετικέτα στήλης" -#: ../gtk/gtknotebook.c:754 +#: ../gtk/gtknotebook.c:755 msgid "The string displayed on the child's tab label" msgstr "Το αλφαριθμητικό που θα προβάλλεται στην ετικέτα στήλης θυγατρικού" -#: ../gtk/gtknotebook.c:760 +#: ../gtk/gtknotebook.c:761 msgid "Menu label" msgstr "Ετικέτα μενού" -#: ../gtk/gtknotebook.c:761 +#: ../gtk/gtknotebook.c:762 msgid "The string displayed in the child's menu entry" msgstr "Το αλφαριθμητικό που θα προβάλλεται στην καταχώριση μενού θυγατρικού" -#: ../gtk/gtknotebook.c:774 +#: ../gtk/gtknotebook.c:775 msgid "Tab expand" msgstr "Επέκταση Tab" -#: ../gtk/gtknotebook.c:775 +#: ../gtk/gtknotebook.c:776 msgid "Whether to expand the child's tab" msgstr "Αν θα αναπτύσσεται η καρτέλα του θυγατρικού" -#: ../gtk/gtknotebook.c:781 +#: ../gtk/gtknotebook.c:782 msgid "Tab fill" msgstr "Γέμισμα στήλης" -#: ../gtk/gtknotebook.c:782 +#: ../gtk/gtknotebook.c:783 msgid "Whether the child's tab should fill the allocated area" msgstr "Αν η καρτέλα του θυγατρικού θα γεμίζει ή όχι τη δοθείσα περιοχή" -#: ../gtk/gtknotebook.c:789 +#: ../gtk/gtknotebook.c:790 msgid "Tab reorderable" msgstr "Δυνατότητα διαταξινόμησης καρτέλας" -#: ../gtk/gtknotebook.c:790 +#: ../gtk/gtknotebook.c:791 msgid "Whether the tab is reorderable by user action" msgstr "Αν η θέση της καρτέλας μπορεί να αλλαχθεί από το χρήστη" -#: ../gtk/gtknotebook.c:796 +#: ../gtk/gtknotebook.c:797 msgid "Tab detachable" msgstr "Δυνατότητα απόσπασης καρτέλας" -#: ../gtk/gtknotebook.c:797 +#: ../gtk/gtknotebook.c:798 msgid "Whether the tab is detachable" msgstr "Αν η καρτέλα θα είναι αποσπώμενη" -#: ../gtk/gtknotebook.c:812 ../gtk/gtkscrollbar.c:102 +#: ../gtk/gtknotebook.c:813 ../gtk/gtkscrollbar.c:102 msgid "Secondary backward stepper" msgstr "Δευτερεύον προς τα πίσω stepper" -#: ../gtk/gtknotebook.c:813 +#: ../gtk/gtknotebook.c:814 msgid "" "Display a second backward arrow button on the opposite end of the tab area" msgstr "" "Προβολή ενός δεύτερου κουμπιού βέλους προς τα πίσω στην αντίθετη άκρη της " "περιοχής στήλης" -#: ../gtk/gtknotebook.c:828 ../gtk/gtkscrollbar.c:109 +#: ../gtk/gtknotebook.c:829 ../gtk/gtkscrollbar.c:109 msgid "Secondary forward stepper" msgstr "Δευτερεύον προς τα μπροστά stepper" -#: ../gtk/gtknotebook.c:829 +#: ../gtk/gtknotebook.c:830 msgid "" "Display a second forward arrow button on the opposite end of the tab area" msgstr "" "Προβολή ενός δεύτερου κουμπιού βέλους προς τα μπροστά στην αντίθετη άκρη της " "περιοχής στήλης" -#: ../gtk/gtknotebook.c:843 ../gtk/gtkscrollbar.c:88 +#: ../gtk/gtknotebook.c:844 ../gtk/gtkscrollbar.c:88 msgid "Backward stepper" msgstr "Προς τα πίσω stepper" -#: ../gtk/gtknotebook.c:844 ../gtk/gtkscrollbar.c:89 +#: ../gtk/gtknotebook.c:845 ../gtk/gtkscrollbar.c:89 msgid "Display the standard backward arrow button" msgstr "Να εμφανίζεται το κλασσικό προς τα πίσω κουμπί βέλους" -#: ../gtk/gtknotebook.c:858 ../gtk/gtkscrollbar.c:95 +#: ../gtk/gtknotebook.c:859 ../gtk/gtkscrollbar.c:95 msgid "Forward stepper" msgstr "Προς τα μπροστά stepper" -#: ../gtk/gtknotebook.c:859 ../gtk/gtkscrollbar.c:96 +#: ../gtk/gtknotebook.c:860 ../gtk/gtkscrollbar.c:96 msgid "Display the standard forward arrow button" msgstr "Να εμφανίζεται το κλασσικό προς τα μπροστά κουμπί βέλους" -#: ../gtk/gtknotebook.c:873 +#: ../gtk/gtknotebook.c:874 msgid "Tab overlap" msgstr "Επικάλυψη καρτέλας" -#: ../gtk/gtknotebook.c:874 +#: ../gtk/gtknotebook.c:875 msgid "Size of tab overlap area" msgstr "Μέγεθος της περιοχής επικάλυψης καρτέλας" -#: ../gtk/gtknotebook.c:889 +#: ../gtk/gtknotebook.c:890 msgid "Tab curvature" msgstr "Καμπύλη καρτέλας" -#: ../gtk/gtknotebook.c:890 +#: ../gtk/gtknotebook.c:891 msgid "Size of tab curvature" msgstr "Μέγεθος της καμπύλης της καρτέλας" -#: ../gtk/gtknotebook.c:906 +#: ../gtk/gtknotebook.c:907 msgid "Arrow spacing" msgstr "Διάκενο βελών" -#: ../gtk/gtknotebook.c:907 +#: ../gtk/gtknotebook.c:908 msgid "Scroll arrow spacing" msgstr "Διάκενο βελών κύλισης" -#: ../gtk/gtknotebook.c:923 +#: ../gtk/gtknotebook.c:924 msgid "Initial gap" msgstr "Αρχικό διάκενο" -#: ../gtk/gtknotebook.c:924 +#: ../gtk/gtknotebook.c:925 msgid "Initial gap before the first tab" msgstr "Αρχικό διάκενο πριν από την πρώτη καρτέλα" @@ -4764,11 +4782,11 @@ msgstr "Το όνομα που θα προβάλλεται πάνω από το #: ../gtk/gtknumerableicon.c:667 msgid "Icon's style context" -msgstr "Στυλ περιεχόμενου εικονιδίου" +msgstr "Τεχνοτροπία του περιεχόμενου εικονιδίου" #: ../gtk/gtknumerableicon.c:668 msgid "The style context to theme the icon appearance" -msgstr "Το στυλ του περιεχομένου για τη θεματική εμφάνιση του εικονιδίου" +msgstr "Η τεχνοτροπία του περιεχομένου για τη θεματική εμφάνιση του εικονιδίου" #: ../gtk/gtknumerableicon.c:674 msgid "Background icon" @@ -4799,8 +4817,8 @@ msgstr "Ο προσανατολισμός του αντικειμένου" msgid "" "Position of paned separator in pixels (0 means all the way to the left/top)" msgstr "" -"Θέση του διαχωριστικού σε εικονοστοιχεία (0 σημαίνει προσανατολισμός πρός " -"αριστερά/πάνω " +"Θέση του διαχωριστικού παραθύρου σε εικονοστοιχεία (0 σημαίνει " +"προσανατολισμός προς τα αριστερά/πάνω)" #: ../gtk/gtkpaned.c:358 msgid "Position Set" @@ -4901,7 +4919,7 @@ msgstr "Είναι εικονικό" #: ../gtk/gtkprinter.c:138 msgid "FALSE if this represents a real hardware printer" -msgstr "FALSE αν πρόκειται για πραγματικό εκτυπωτή (υλικό)" +msgstr "FALSE αν πρόκειται για πραγματικό εκτυπωτή" #: ../gtk/gtkprinter.c:144 msgid "Accepts PDF" @@ -5069,7 +5087,7 @@ msgid "" "not the corner of the imageable area" msgstr "" "TRUE αν η αρχή των περιεχομένων θα πρέπει να βρίσκεται στη γωνία της σελίδας " -"και όχι στη γωνία της απεικονίσιμης περιοχής (imageable area)" +"και όχι στη γωνία της απεικονίσιμης περιοχής" #: ../gtk/gtkprintoperation.c:1216 msgid "" @@ -5224,7 +5242,7 @@ msgstr "Προβολή κειμένου" #: ../gtk/gtkprogressbar.c:197 msgid "Whether the progress is shown as text." -msgstr "Αν η πρόοδος θα εμφανίζεται ως κείμενο" +msgstr "Αν η πρόοδος θα εμφανίζεται ως κείμενο." #: ../gtk/gtkprogressbar.c:219 msgid "" @@ -5318,7 +5336,7 @@ msgstr "" #: ../gtk/gtkradiobutton.c:164 msgid "The radio button whose group this widget belongs to." msgstr "" -"Το κουμπί radio του οποίου η ομάδα της ανήκει αυτό το γραφικό συστατικό" +"Το κουμπί radio του οποίου η ομάδα της ανήκει αυτό το γραφικό συστατικό." #: ../gtk/gtkradiomenuitem.c:427 msgid "The radio menu item whose group this widget belongs to." @@ -5384,7 +5402,7 @@ msgstr "Επίπεδο γεμίσματος" #: ../gtk/gtkrange.c:501 msgid "The fill level." -msgstr "Το επίπεδο γεμίσματος" +msgstr "Το επίπεδο γεμίσματος." #: ../gtk/gtkrange.c:518 msgid "Round Digits" @@ -5394,7 +5412,7 @@ msgstr "Στρογγυλοποίηση ψηφίων" msgid "The number of digits to round the value to." msgstr "Ο αριθμός των ψηφίων στον οποίο θα γίνεται στρογγυλοποίηση." -#: ../gtk/gtkrange.c:527 ../gtk/gtkswitch.c:868 +#: ../gtk/gtkrange.c:527 ../gtk/gtkswitch.c:848 msgid "Slider Width" msgstr "Πλάτος κύλισης" @@ -5424,7 +5442,7 @@ msgstr "Διάστιχο stepper" #: ../gtk/gtkrange.c:558 msgid "Spacing between step buttons and thumb" -msgstr "Διάκενο μεταξύ κουμπιών βήματος και thumb" +msgstr "Διάκενο μεταξύ κουμπιών βήματος και μικρογραφίας" #: ../gtk/gtkrange.c:565 msgid "Arrow X Displacement" @@ -5529,7 +5547,7 @@ msgstr "Μόνο τοπικά" #: ../gtk/gtkrecentchooser.c:216 msgid "Whether the selected resource(s) should be limited to local file: URIs" msgstr "" -"Αν οι επιλεγμένοι πόροι θα πρέπει να περιορίζονται σε τοπικά αρχεία: URLs " +"Αν οι επιλεγμένοι πόροι θα πρέπει να περιορίζονται σε τοπικά αρχεία: URLs" #: ../gtk/gtkrecentchooser.c:232 msgid "Limit" @@ -5583,48 +5601,48 @@ msgstr "Εικονίδια" msgid "List of icon names" msgstr "Λίστα ονομάτων εικονιδίων" -#: ../gtk/gtkscale.c:295 +#: ../gtk/gtkscale.c:310 msgid "The number of decimal places that are displayed in the value" msgstr "Ο αριθμός των δεκαδικών σημείων που εμφανίζονται στην τιμή" -#: ../gtk/gtkscale.c:304 +#: ../gtk/gtkscale.c:319 msgid "Draw Value" msgstr "Τιμή σχεδίασης" -#: ../gtk/gtkscale.c:305 +#: ../gtk/gtkscale.c:320 msgid "Whether the current value is displayed as a string next to the slider" msgstr "" "Αν η τρέχουσα τιμή θα εμφανίζεται ως αλφαριθμητικό δίπλα στη μπάρα κύλισης" -#: ../gtk/gtkscale.c:312 +#: ../gtk/gtkscale.c:327 msgid "Has Origin" msgstr "Έχει προέλευση" -#: ../gtk/gtkscale.c:313 +#: ../gtk/gtkscale.c:328 msgid "Whether the scale has an origin" msgstr "Εάν η κλίμακα έχει μια προέλευση" -#: ../gtk/gtkscale.c:320 +#: ../gtk/gtkscale.c:335 msgid "Value Position" msgstr "Θέση τιμής" -#: ../gtk/gtkscale.c:321 +#: ../gtk/gtkscale.c:336 msgid "The position in which the current value is displayed" msgstr "Η θέση στην οποία θα εμφανίζεται η τρέχουσα τιμή" -#: ../gtk/gtkscale.c:328 +#: ../gtk/gtkscale.c:343 msgid "Slider Length" msgstr "Μήκος μπάρας κύλισης" -#: ../gtk/gtkscale.c:329 +#: ../gtk/gtkscale.c:344 msgid "Length of scale's slider" msgstr "Μάκρος κύλισης σκάλας" -#: ../gtk/gtkscale.c:337 +#: ../gtk/gtkscale.c:352 msgid "Value spacing" msgstr "Διάκενο τιμής" -#: ../gtk/gtkscale.c:338 +#: ../gtk/gtkscale.c:353 msgid "Space between value text and the slider/trough area" msgstr "Διάστημα μεταξύ τιμής κειμένου και ζώνης κύλισης" @@ -5756,7 +5774,7 @@ msgstr "Είδος Σκίασης" #: ../gtk/gtkscrolledwindow.c:424 msgid "Style of bevel around the contents" -msgstr "Είδος γωνίας γύρω από τα περιεχόμενα" +msgstr "Τεχνοτροπία γωνίας γύρω από τα περιεχόμενα" #: ../gtk/gtkscrolledwindow.c:438 msgid "Scrollbars within bevel" @@ -5810,11 +5828,11 @@ msgstr "Σχεδίαση" msgid "Whether the separator is drawn, or just blank" msgstr "Αν το διαχωριστικό θα σχεδιάζεται ή θα είναι απλώς κενό" -#: ../gtk/gtksettings.c:360 +#: ../gtk/gtksettings.c:354 msgid "Double Click Time" msgstr "Χρόνος διπλού κλικ" -#: ../gtk/gtksettings.c:361 +#: ../gtk/gtksettings.c:355 msgid "" "Maximum time allowed between two clicks for them to be considered a double " "click (in milliseconds)" @@ -5822,11 +5840,11 @@ msgstr "" "Μέγιστος χρόνος που επιτρέπεται μεταξύ δύο κλικ ώστε να θεωρούνται διπλό " "κλικ (σε milliseconds)" -#: ../gtk/gtksettings.c:368 +#: ../gtk/gtksettings.c:362 msgid "Double Click Distance" msgstr "Απόσταση διπλού κλικ" -#: ../gtk/gtksettings.c:369 +#: ../gtk/gtksettings.c:363 msgid "" "Maximum distance allowed between two clicks for them to be considered a " "double click (in pixels)" @@ -5834,35 +5852,35 @@ msgstr "" "Μέγιστη απόσταση που επιτρέπεται μεταξύ δύο κλικ ώστε να θεωρούνται διπλό " "κλικ (σε εικονοστοιχεία)" -#: ../gtk/gtksettings.c:385 +#: ../gtk/gtksettings.c:379 msgid "Cursor Blink" msgstr "Παλλόμενος δρομέας" -#: ../gtk/gtksettings.c:386 +#: ../gtk/gtksettings.c:380 msgid "Whether the cursor should blink" msgstr "Αν θα πάλλεται ο δρομέας" -#: ../gtk/gtksettings.c:393 +#: ../gtk/gtksettings.c:387 msgid "Cursor Blink Time" msgstr "Χρόνος παλμών δρομέα" -#: ../gtk/gtksettings.c:394 +#: ../gtk/gtksettings.c:388 msgid "Length of the cursor blink cycle, in milliseconds" -msgstr "Διάρκεια του κύκλου εναλλαγής παλμού δρομέα σε χιλιοστά δευτερολ." +msgstr "Διάρκεια του κύκλου εναλλαγής παλμού δρομέα σε χιλιοστά δευτερολέπτου" -#: ../gtk/gtksettings.c:413 +#: ../gtk/gtksettings.c:407 msgid "Cursor Blink Timeout" msgstr "Όριο χρόνου παλμών δρομέα" -#: ../gtk/gtksettings.c:414 +#: ../gtk/gtksettings.c:408 msgid "Time after which the cursor stops blinking, in seconds" -msgstr "Χρόνος μέχρι να σταματήσει ο παλμός δρομέα σε χιλιοστά δευτερολ." +msgstr "Χρόνος μέχρι να σταματήσει ο παλμός δρομέα σε χιλιοστά δευτερολέπτου" -#: ../gtk/gtksettings.c:421 +#: ../gtk/gtksettings.c:415 msgid "Split Cursor" msgstr "Διαχωρισμός δρομέα" -#: ../gtk/gtksettings.c:422 +#: ../gtk/gtksettings.c:416 msgid "" "Whether two cursors should be displayed for mixed left-to-right and right-to-" "left text" @@ -5870,158 +5888,158 @@ msgstr "" "Αν οι δύο δρομείς θα πρέπει να προβάλλονται για ανακατωμένο κείμενο από " "δεξιά στα αριστερά και αντίστροφα" -#: ../gtk/gtksettings.c:429 +#: ../gtk/gtksettings.c:423 msgid "Theme Name" msgstr "Όνομα θέματος" -#: ../gtk/gtksettings.c:430 +#: ../gtk/gtksettings.c:424 msgid "Name of theme to load" msgstr "Όνομα αρχείου θέματος για φόρτωση" -#: ../gtk/gtksettings.c:442 +#: ../gtk/gtksettings.c:436 msgid "Icon Theme Name" msgstr "Όνομα θέματος εικονιδίου" -#: ../gtk/gtksettings.c:443 +#: ../gtk/gtksettings.c:437 msgid "Name of icon theme to use" msgstr "Όνομα του θέματος εικονιδίου για χρήση" -#: ../gtk/gtksettings.c:451 +#: ../gtk/gtksettings.c:445 msgid "Fallback Icon Theme Name" msgstr "Εφεδρικό όνομα θέματος εικονιδίων" -#: ../gtk/gtksettings.c:452 +#: ../gtk/gtksettings.c:446 msgid "Name of a icon theme to fall back to" msgstr "Όνομα ενός θέματος εικονιδίων που θα χρησιμοποιηθεί εφεδρικά" -#: ../gtk/gtksettings.c:460 +#: ../gtk/gtksettings.c:454 msgid "Key Theme Name" msgstr "Όνομα αρχείου θέματος κλειδιού" -#: ../gtk/gtksettings.c:461 +#: ../gtk/gtksettings.c:455 msgid "Name of key theme to load" msgstr "Όνομα αρχείου θέματος κλειδιού για φόρτωση" -#: ../gtk/gtksettings.c:469 +#: ../gtk/gtksettings.c:463 msgid "Menu bar accelerator" msgstr "Συντόμευση εργαλειοθήκης μενού" -#: ../gtk/gtksettings.c:470 +#: ../gtk/gtksettings.c:464 msgid "Keybinding to activate the menu bar" msgstr "Συνδυασμός πλήκτρων για την εργαλειοθήκη μενού" -#: ../gtk/gtksettings.c:478 +#: ../gtk/gtksettings.c:472 msgid "Drag threshold" msgstr "Σύρσιμο αφετηρίας" -#: ../gtk/gtksettings.c:479 +#: ../gtk/gtksettings.c:473 msgid "Number of pixels the cursor can move before dragging" msgstr "" "Αριθμός εικονοστοιχείων που μπορεί να μετακινηθεί ο δρομέας πρίν να σύρει" -#: ../gtk/gtksettings.c:487 +#: ../gtk/gtksettings.c:481 msgid "Font Name" -msgstr "'Όνομα γραμματοσειράς" +msgstr "Όνομα γραμματοσειράς" -#: ../gtk/gtksettings.c:488 +#: ../gtk/gtksettings.c:482 msgid "Name of default font to use" msgstr "Όνομα της προεπιλεγμένης γραμματοσειράς για χρήση" -#: ../gtk/gtksettings.c:510 +#: ../gtk/gtksettings.c:504 msgid "Icon Sizes" msgstr "Μεγέθη Εικονιδίου" -#: ../gtk/gtksettings.c:511 +#: ../gtk/gtksettings.c:505 msgid "List of icon sizes (gtk-menu=16,16:gtk-button=20,20..." msgstr "Λίστα μεγεθών εικονιδίου (gtk-menu=16,16;gtk-button=20,20..." -#: ../gtk/gtksettings.c:519 +#: ../gtk/gtksettings.c:513 msgid "GTK Modules" msgstr "Αρθρώματα GTK" -#: ../gtk/gtksettings.c:520 +#: ../gtk/gtksettings.c:514 msgid "List of currently active GTK modules" msgstr "Λίστα των τρεχόντων ενεργών αρθρωμάτων GTK" -#: ../gtk/gtksettings.c:528 +#: ../gtk/gtksettings.c:522 msgid "Xft Antialias" msgstr "Xft Antialias" -#: ../gtk/gtksettings.c:529 +#: ../gtk/gtksettings.c:523 msgid "Whether to antialias Xft fonts; 0=no, 1=yes, -1=default" msgstr "" "Αν θα γίνεται antialias στις γραμματοσειρές Xft; 0=όχι, 1=ναι, -1=προεπιλογή" -#: ../gtk/gtksettings.c:538 +#: ../gtk/gtksettings.c:532 msgid "Xft Hinting" msgstr "Xft Hinting" -#: ../gtk/gtksettings.c:539 +#: ../gtk/gtksettings.c:533 msgid "Whether to hint Xft fonts; 0=no, 1=yes, -1=default" msgstr "" "Αν θα γίνεται hinting στις γραμματοσειρές Xft; 0=όχι, 1=ναι, -1=προεπιλογή" -#: ../gtk/gtksettings.c:548 +#: ../gtk/gtksettings.c:542 msgid "Xft Hint Style" -msgstr "Στυλ Xft Hint " +msgstr "Τεχνοτροπία υπόδειξης Xft" -#: ../gtk/gtksettings.c:549 +#: ../gtk/gtksettings.c:543 msgid "" "What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull" msgstr "" "Ο βαθμός hinting που θα χρησιμοποιείται, κανένα, ελαφρύ, μέτριο, ή πλήρες" -#: ../gtk/gtksettings.c:558 +#: ../gtk/gtksettings.c:552 msgid "Xft RGBA" msgstr "Xft RGBA" -#: ../gtk/gtksettings.c:559 +#: ../gtk/gtksettings.c:553 msgid "Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr" msgstr "Τύπος subpixel antialiasing;κανένα, rgb, bgr, vrgb, vbgr" -#: ../gtk/gtksettings.c:568 +#: ../gtk/gtksettings.c:562 msgid "Xft DPI" msgstr "Xft DPI" -#: ../gtk/gtksettings.c:569 +#: ../gtk/gtksettings.c:563 msgid "Resolution for Xft, in 1024 * dots/inch. -1 to use default value" msgstr "" "Ανάλυση Xft, σε 1024 * κουκίδες/ίντσα. -1 για χρήση προεπιλεγμένης τιμής" -#: ../gtk/gtksettings.c:578 +#: ../gtk/gtksettings.c:572 msgid "Cursor theme name" msgstr "Όνομα θέματος δρομέα" -#: ../gtk/gtksettings.c:579 +#: ../gtk/gtksettings.c:573 msgid "Name of the cursor theme to use, or NULL to use the default theme" msgstr "" "Όνομα του θέματος δρομέα για χρήση, ή NULL για χρήση του προεπιλεγμένου " "θέματος" -#: ../gtk/gtksettings.c:587 +#: ../gtk/gtksettings.c:581 msgid "Cursor theme size" msgstr "Μέγεθος θέματος δρομέα" -#: ../gtk/gtksettings.c:588 +#: ../gtk/gtksettings.c:582 msgid "Size to use for cursors, or 0 to use the default size" msgstr "" "Μέγεθος που θα χρησιμοποιηθεί για τους δρομείς, ή 0 για το προεπιλεγμένο " "μέγεθος" -#: ../gtk/gtksettings.c:597 +#: ../gtk/gtksettings.c:591 msgid "Alternative button order" msgstr "Εναλλακτική χωροθέτηση κουμπιών" -#: ../gtk/gtksettings.c:598 +#: ../gtk/gtksettings.c:592 msgid "Whether buttons in dialogs should use the alternative button order" msgstr "" "Αν τα κουμπιά στους διαλόγους θα χρησιμοποιούν εναλλακτική σειρά κουμπιών" -#: ../gtk/gtksettings.c:615 +#: ../gtk/gtksettings.c:609 msgid "Alternative sort indicator direction" msgstr "Εναλλακτική κατεύθυνση ενδείξεων ταξινόμησης" -#: ../gtk/gtksettings.c:616 +#: ../gtk/gtksettings.c:610 msgid "" "Whether the direction of the sort indicators in list and tree views is " "inverted compared to the default (where down means ascending)" @@ -6030,11 +6048,11 @@ msgstr "" "είναι αντεστραμμένος σε σχέση με την προεπιλεγμένη κατεύθυνση (όπου το κάτω " "σημαίνει αύξουσα σειρά)" -#: ../gtk/gtksettings.c:624 +#: ../gtk/gtksettings.c:618 msgid "Show the 'Input Methods' menu" msgstr "Εμφάνιση του μενού 'Μέθοδοι εισαγωγής'" -#: ../gtk/gtksettings.c:625 +#: ../gtk/gtksettings.c:619 msgid "" "Whether the context menus of entries and text views should offer to change " "the input method" @@ -6042,11 +6060,11 @@ msgstr "" "Αν τα σχετικά μενού των πεδίων και των προβολών κειμένου θα εμφανίζουν τη " "δυνατότητα αλλαγής της μεθόδου εισαγωγής" -#: ../gtk/gtksettings.c:633 +#: ../gtk/gtksettings.c:627 msgid "Show the 'Insert Unicode Control Character' menu" msgstr "Εμφάνιση του μενού 'Εισαγωγή χαρακτήρα ελέγχου Unicode'" -#: ../gtk/gtksettings.c:634 +#: ../gtk/gtksettings.c:628 msgid "" "Whether the context menus of entries and text views should offer to insert " "control characters" @@ -6054,255 +6072,254 @@ msgstr "" "Αν τα σχετικά μενού των πεδίων και των προβολών κειμένου θα εμφανίζουν τη " "δυνατότητα εισαγωγής χαρακτήρων ελέγχου" -#: ../gtk/gtksettings.c:642 +#: ../gtk/gtksettings.c:636 msgid "Start timeout" msgstr "Έναρξη ορίου χρόνου" -#: ../gtk/gtksettings.c:643 +#: ../gtk/gtksettings.c:637 msgid "Starting value for timeouts, when button is pressed" msgstr "Τιμή έναρξης ορίου χρόνου, όταν πιέζεται ένα κουμπί" -#: ../gtk/gtksettings.c:652 +#: ../gtk/gtksettings.c:646 msgid "Repeat timeout" msgstr "Επανάληψη ορίου χρόνου" -#: ../gtk/gtksettings.c:653 +#: ../gtk/gtksettings.c:647 msgid "Repeat value for timeouts, when button is pressed" msgstr "Τιμή επανάληψης ορίου χρόνου, όταν πιέζεται ένα κουμπί" -#: ../gtk/gtksettings.c:662 +#: ../gtk/gtksettings.c:656 msgid "Expand timeout" msgstr "Επέκταση ορίου χρόνου" -#: ../gtk/gtksettings.c:663 +#: ../gtk/gtksettings.c:657 msgid "Expand value for timeouts, when a widget is expanding a new region" msgstr "" "Τιμή επέκτασης ορίου χρόνου, όταν ένα γραφικό συστατικό επεκτείνει νέα " "περιοχή" -#: ../gtk/gtksettings.c:698 +#: ../gtk/gtksettings.c:695 msgid "Color scheme" msgstr "Σχήμα χρωμάτων" -#: ../gtk/gtksettings.c:699 +#: ../gtk/gtksettings.c:696 msgid "A palette of named colors for use in themes" msgstr "Παλέτα δοσμένων χρωμάτων που θα χρησιμοποιείται στα θέματα" -#: ../gtk/gtksettings.c:708 +#: ../gtk/gtksettings.c:705 msgid "Enable Animations" msgstr "Ενεργοποίηση κινούμενων εικόνων" -#: ../gtk/gtksettings.c:709 +#: ../gtk/gtksettings.c:706 msgid "Whether to enable toolkit-wide animations." msgstr "Αν θα είναι ενεργοποιημένες οι κινούμενες εικόνες σε όλο το toolkit." -#: ../gtk/gtksettings.c:730 +#: ../gtk/gtksettings.c:727 msgid "Enable Touchscreen Mode" msgstr "Ενεργοποίηση λειτουργίας οθόνης αφής" -#: ../gtk/gtksettings.c:731 +#: ../gtk/gtksettings.c:728 msgid "When TRUE, there are no motion notify events delivered on this screen" msgstr "" "Αν είναι αληθές, δεν θα εμφανίζονται ειδοποιήσεις κίνησης σε αυτή την οθόνη" -#: ../gtk/gtksettings.c:748 +#: ../gtk/gtksettings.c:745 msgid "Tooltip timeout" msgstr "Όριο χρόνου συμβουλής" -#: ../gtk/gtksettings.c:749 +#: ../gtk/gtksettings.c:746 msgid "Timeout before tooltip is shown" msgstr "Χρονικό διάστημα πριν την εμφάνιση της αναδυόμενης συμβουλής" -#: ../gtk/gtksettings.c:774 +#: ../gtk/gtksettings.c:771 msgid "Tooltip browse timeout" msgstr "Όριο χρόνου συμβουλής περιήγησης" -#: ../gtk/gtksettings.c:775 +#: ../gtk/gtksettings.c:772 msgid "Timeout before tooltip is shown when browse mode is enabled" msgstr "" "Χρονικό διάστημα πριν την εμφάνιση της αναδυόμενης συμβουλής όταν είναι " "ενεργοποιημένη η λειτουργία περιήγησης" -#: ../gtk/gtksettings.c:796 +#: ../gtk/gtksettings.c:793 msgid "Tooltip browse mode timeout" msgstr "Όριο χρόνου λειτουργίας περιήγησης συμβουλής" -#: ../gtk/gtksettings.c:797 +#: ../gtk/gtksettings.c:794 msgid "Timeout after which browse mode is disabled" msgstr "Όριο χρόνου μετά το οποίο απενεργοποιείται η λειτουργία περιήγησης" -#: ../gtk/gtksettings.c:816 +#: ../gtk/gtksettings.c:813 msgid "Keynav Cursor Only" msgstr "Μόνο δρομέας Keynav" -#: ../gtk/gtksettings.c:817 +#: ../gtk/gtksettings.c:814 msgid "When TRUE, there are only cursor keys available to navigate widgets" msgstr "" "Αν είναι αληθές, τα μόνα διαθέσιμα πλήκτρα του δρομέα αφορούν την πλοήγηση " "σε γραφικά συστατικά" -#: ../gtk/gtksettings.c:834 +#: ../gtk/gtksettings.c:831 msgid "Keynav Wrap Around" msgstr "Αναδίπλωση Keynav" -#: ../gtk/gtksettings.c:835 +#: ../gtk/gtksettings.c:832 msgid "Whether to wrap around when keyboard-navigating widgets" msgstr "" "Αν θα γίνεται αναδίπλωση όταν γίνεται πλοήγηση μέσω πληκτρολογίου στα " -"γραφικά συστατικά " +"γραφικά συστατικά" -#: ../gtk/gtksettings.c:855 +#: ../gtk/gtksettings.c:852 msgid "Error Bell" msgstr "Κουδούνι σφάλματος" -#: ../gtk/gtksettings.c:856 +#: ../gtk/gtksettings.c:853 msgid "When TRUE, keyboard navigation and other errors will cause a beep" msgstr "" "Αν είναι αληθές, θα ακούγεται το κουδούνι όταν γίνονται λάθη στην πλοήγηση " "μέσω πληκτρολογίου ή άλλα λάθη" -#: ../gtk/gtksettings.c:873 +#: ../gtk/gtksettings.c:872 msgid "Color Hash" msgstr "Color Hash" -#: ../gtk/gtksettings.c:874 +#: ../gtk/gtksettings.c:873 msgid "A hash table representation of the color scheme." msgstr "Αναπαράσταση του σχήματος χρωμάτων σε πίνακα hash." -#: ../gtk/gtksettings.c:882 +#: ../gtk/gtksettings.c:881 msgid "Default file chooser backend" msgstr "Προεπιλεγμένο σύστημα υποστήριξης του επιλογέα αρχείων" -#: ../gtk/gtksettings.c:883 +#: ../gtk/gtksettings.c:882 msgid "Name of the GtkFileChooser backend to use by default" msgstr "" "Όνομα του συστήματος υποστήριξης GtkFileChooser για προεπιλεγμένη χρήση" -#: ../gtk/gtksettings.c:900 +#: ../gtk/gtksettings.c:899 msgid "Default print backend" msgstr "Προεπιλεγμένο σύστημα υποστήριξης εκτύπωσης" -#: ../gtk/gtksettings.c:901 +#: ../gtk/gtksettings.c:900 msgid "List of the GtkPrintBackend backends to use by default" -msgstr "" -"Λίστα των συστημάτων υποστήριξης GtkPrintBackend για προεπιλεγμένη χρήση" +msgstr "Λίστα των συστημάτων υποστήριξης GtkPrintBackend για προεπιλογή" -#: ../gtk/gtksettings.c:924 +#: ../gtk/gtksettings.c:923 msgid "Default command to run when displaying a print preview" msgstr "" "Προεπιλεγμένη εντολή που εκτελείται όταν εμφανίζεται η προεπισκόπηση " "εκτύπωσης" -#: ../gtk/gtksettings.c:925 +#: ../gtk/gtksettings.c:924 msgid "Command to run when displaying a print preview" msgstr "Εντολή που εκτελείται όταν εμφανίζεται προεπισκόπηση εκτύπωσης" -#: ../gtk/gtksettings.c:941 +#: ../gtk/gtksettings.c:940 msgid "Enable Mnemonics" msgstr "Ενεργοποίηση μνημονικών" -#: ../gtk/gtksettings.c:942 +#: ../gtk/gtksettings.c:941 msgid "Whether labels should have mnemonics" msgstr "Αν οι ετικέτες θα έχουν μνημονικά" -#: ../gtk/gtksettings.c:958 +#: ../gtk/gtksettings.c:957 msgid "Enable Accelerators" msgstr "Ενεργοποίηση συντομεύσεων" -#: ../gtk/gtksettings.c:959 +#: ../gtk/gtksettings.c:958 msgid "Whether menu items should have accelerators" msgstr "Αν τα αντικείμενα στα μενού θα έχουν συντομεύσεις" -#: ../gtk/gtksettings.c:976 +#: ../gtk/gtksettings.c:975 msgid "Recent Files Limit" msgstr "Όριο πρόσφατων αρχείων" -#: ../gtk/gtksettings.c:977 +#: ../gtk/gtksettings.c:976 msgid "Number of recently used files" msgstr "Αριθμός πρόσφατα χρησιμοποιημένων αρχείων" -#: ../gtk/gtksettings.c:997 +#: ../gtk/gtksettings.c:996 msgid "Default IM module" msgstr "Προεπιλεγμένο άρθρωμα IM" -#: ../gtk/gtksettings.c:998 +#: ../gtk/gtksettings.c:997 msgid "Which IM module should be used by default" msgstr "Ποιο άρθρωμα IM θα είναι προεπιλεγμένο" -#: ../gtk/gtksettings.c:1016 +#: ../gtk/gtksettings.c:1015 msgid "Recent Files Max Age" msgstr "Μέγιστη ηλικία πρόσφατων αρχείων" -#: ../gtk/gtksettings.c:1017 +#: ../gtk/gtksettings.c:1016 msgid "Maximum age of recently used files, in days" msgstr "Μέγιστη ηλικία πρόσφατα χρησιμοποιημένων αρχείων, σε ημέρες" -#: ../gtk/gtksettings.c:1026 +#: ../gtk/gtksettings.c:1025 msgid "Fontconfig configuration timestamp" msgstr "Timestamp ρυθμίσεων fontconfig" -#: ../gtk/gtksettings.c:1027 +#: ../gtk/gtksettings.c:1026 msgid "Timestamp of current fontconfig configuration" msgstr "Χρονική σήμανση των τρεχουσών ρυθμίσεων του fontconfig" -#: ../gtk/gtksettings.c:1049 +#: ../gtk/gtksettings.c:1048 msgid "Sound Theme Name" msgstr "Όνομα θέματος ήχων" -#: ../gtk/gtksettings.c:1050 +#: ../gtk/gtksettings.c:1049 msgid "XDG sound theme name" msgstr "Όνομα θέματος ήχων XDG" #. Translators: this means sounds that are played as feedback to user input -#: ../gtk/gtksettings.c:1072 +#: ../gtk/gtksettings.c:1071 msgid "Audible Input Feedback" msgstr "Ηχητική ανάδραση εισαγωγής" -#: ../gtk/gtksettings.c:1073 +#: ../gtk/gtksettings.c:1072 msgid "Whether to play event sounds as feedback to user input" msgstr "" "Αν θα ακούγονται ήχοι ως ανάδραση στην εισαγωγή δεδομένων από τον χρήστη" -#: ../gtk/gtksettings.c:1094 +#: ../gtk/gtksettings.c:1093 msgid "Enable Event Sounds" msgstr "Ενεργοποίηση ήχων ενεργειών" -#: ../gtk/gtksettings.c:1095 +#: ../gtk/gtksettings.c:1094 msgid "Whether to play any event sounds at all" msgstr "Αν θα ακούγονται οι όχι ήχοι ενεργειών" -#: ../gtk/gtksettings.c:1110 +#: ../gtk/gtksettings.c:1109 msgid "Enable Tooltips" msgstr "Ενεργοποίηση αναδυόμενων συμβουλών" -#: ../gtk/gtksettings.c:1111 +#: ../gtk/gtksettings.c:1110 msgid "Whether tooltips should be shown on widgets" msgstr "Αν θα εμφανίζονται ή όχι αναδυόμενες συμβουλές στα γραφικά συστατικά" -#: ../gtk/gtksettings.c:1124 +#: ../gtk/gtksettings.c:1123 msgid "Toolbar style" -msgstr "Στυλ εργαλειοθήκης" +msgstr "Τεχνοτροπία εργαλειοθήκης" -#: ../gtk/gtksettings.c:1125 +#: ../gtk/gtksettings.c:1124 msgid "" "Whether default toolbars have text only, text and icons, icons only, etc." msgstr "" "Αν οι προεπιλεγμένες εργαλειοθήκες θα έχουν μόνο κείμενο, κείμενο και " -"εικόνες, μόνο εικόνες κτλ" +"εικόνες, μόνο εικόνες κτλ." -#: ../gtk/gtksettings.c:1139 +#: ../gtk/gtksettings.c:1138 msgid "Toolbar Icon Size" msgstr "Μέγεθος εικονιδίων εργαλειοθηκών" -#: ../gtk/gtksettings.c:1140 +#: ../gtk/gtksettings.c:1139 msgid "The size of icons in default toolbars." -msgstr "Μέγεθος εικονιδίων στις προεπιλεγμένες εργαλειοθήκες" +msgstr "Μέγεθος εικονιδίων στις προεπιλεγμένες εργαλειοθήκες." -#: ../gtk/gtksettings.c:1157 +#: ../gtk/gtksettings.c:1156 msgid "Auto Mnemonics" msgstr "Αυτόματα μνημονικά" -#: ../gtk/gtksettings.c:1158 +#: ../gtk/gtksettings.c:1157 msgid "" "Whether mnemonics should be automatically shown and hidden when the user " "presses the mnemonic activator." @@ -6310,21 +6327,21 @@ msgstr "" "Αν θα εμφανίζονται και θα κρύβονται αυτόματα τα μνημονικά όταν ο χρήστης " "πατάει το πλήκτρο ενεργοποίησής τους." -#: ../gtk/gtksettings.c:1174 +#: ../gtk/gtksettings.c:1173 msgid "Primary button warps slider" msgstr "Το πρωτεύον κουμπί στρεβλώνει την κύλιση" -#: ../gtk/gtksettings.c:1175 +#: ../gtk/gtksettings.c:1174 msgid "" "Whether a primary click on the trough should warp the slider into position" msgstr "" "Αν ένα πρωτεύον κλικ στο κοίλο πρέπει να στρεβλώσει την κύλιση στη θέση" -#: ../gtk/gtksettings.c:1191 +#: ../gtk/gtksettings.c:1190 msgid "Visible Focus" msgstr "Ορατά επιλεγμένο" -#: ../gtk/gtksettings.c:1192 +#: ../gtk/gtksettings.c:1191 msgid "" "Whether 'focus rectangles' should be hidden until the user starts to use the " "keyboard." @@ -6332,96 +6349,96 @@ msgstr "" "Εάν 'τα ορθογώνια εστίασης' πρέπει να είναι κρυμμένα μέχρι ο χρήστης να " "αρχίσει να χρησιμοποιεί το πληκτρολόγιο." -#: ../gtk/gtksettings.c:1218 +#: ../gtk/gtksettings.c:1217 msgid "Application prefers a dark theme" msgstr "Η εφαρμογή προτιμά ένα σκοτεινό θέμα" -#: ../gtk/gtksettings.c:1219 +#: ../gtk/gtksettings.c:1218 msgid "Whether the application prefers to have a dark theme." -msgstr "Αν η εφαρμογή προτιμά ένα σκοτεινό θέμα" +msgstr "Αν η εφαρμογή προτιμά ένα σκοτεινό θέμα." -#: ../gtk/gtksettings.c:1234 +#: ../gtk/gtksettings.c:1233 msgid "Show button images" msgstr "Εμφάνιση εικόνων κουμπιών" -#: ../gtk/gtksettings.c:1235 +#: ../gtk/gtksettings.c:1234 msgid "Whether images should be shown on buttons" msgstr "Αν θα εμφανίζονται ή όχι εικόνες στα κουμπιά" -#: ../gtk/gtksettings.c:1243 ../gtk/gtksettings.c:1337 +#: ../gtk/gtksettings.c:1242 ../gtk/gtksettings.c:1336 msgid "Select on focus" msgstr "Επιλογή στην εστίαση" -#: ../gtk/gtksettings.c:1244 +#: ../gtk/gtksettings.c:1243 msgid "Whether to select the contents of an entry when it is focused" msgstr "Αν θα επιλέγονται τα περιεχόμενα μιας καταχώρισης όταν γίνεται εστίαση" -#: ../gtk/gtksettings.c:1261 +#: ../gtk/gtksettings.c:1260 msgid "Password Hint Timeout" msgstr "Λήξη υπόδειξης συνθηματικού" -#: ../gtk/gtksettings.c:1262 +#: ../gtk/gtksettings.c:1261 msgid "How long to show the last input character in hidden entries" msgstr "" "Για πόσο χρόνο θα εμφανίζεται ο τελευταίος χαρακτήρας που εισήχθηκε σε ένα " "κρυφό πεδίο" -#: ../gtk/gtksettings.c:1271 +#: ../gtk/gtksettings.c:1270 msgid "Show menu images" msgstr "Εμφάνιση εικόνων μενού" -#: ../gtk/gtksettings.c:1272 +#: ../gtk/gtksettings.c:1271 msgid "Whether images should be shown in menus" msgstr "Αν θα εμφανίζονται ή όχι οι εικόνες στα μενού" -#: ../gtk/gtksettings.c:1280 +#: ../gtk/gtksettings.c:1279 msgid "Delay before drop down menus appear" msgstr "Καθυστέρηση μέχρι την εμφάνιση αναπτυσσόμενων μενού" -#: ../gtk/gtksettings.c:1281 +#: ../gtk/gtksettings.c:1280 msgid "Delay before the submenus of a menu bar appear" msgstr "Καθυστέρηση μέχρι να εμφανιστούν τα υπομενού σε εργαλειοθήκη μενού" -#: ../gtk/gtksettings.c:1298 +#: ../gtk/gtksettings.c:1297 msgid "Scrolled Window Placement" msgstr "Τοποθέτηση κυλιόμενου παραθύρου" -#: ../gtk/gtksettings.c:1299 +#: ../gtk/gtksettings.c:1298 msgid "" "Where the contents of scrolled windows are located with respect to the " "scrollbars, if not overridden by the scrolled window's own placement." msgstr "" -"Πού θα τοποθετούνται τα περιεχόμενα των κυλιόμενων παραθύρων σε σχέση με " -"τις γραμμές κύλισης, αν δεν υπερισχύουν οι κανόνες τοποθέτησης του ίδιου του " +"Πού θα τοποθετούνται τα περιεχόμενα των κυλιόμενων παραθύρων σε σχέση με τις " +"γραμμές κύλισης, αν δεν υπερισχύουν οι κανόνες τοποθέτησης του ίδιου του " "κυλιόμενου παραθύρου." -#: ../gtk/gtksettings.c:1308 +#: ../gtk/gtksettings.c:1307 msgid "Can change accelerators" msgstr "Δυνατότητα αλλαγής συντομεύσεων" -#: ../gtk/gtksettings.c:1309 +#: ../gtk/gtksettings.c:1308 msgid "" "Whether menu accelerators can be changed by pressing a key over the menu item" msgstr "" "Αν θα είναι δυνατή η αλλαγή συντομεύσεων μενού με την πίεση ενός κλειδιού " "πάνω στο αντικείμενο μενού" -#: ../gtk/gtksettings.c:1317 +#: ../gtk/gtksettings.c:1316 msgid "Delay before submenus appear" msgstr "Καθυστέρηση πριν την εμφάνιση των υπομενού" -#: ../gtk/gtksettings.c:1318 +#: ../gtk/gtksettings.c:1317 msgid "" "Minimum time the pointer must stay over a menu item before the submenu appear" msgstr "" "Ελάχιστος χρόνος που θα στέκεται ο δρομέας πάνω σε ένα μενού μέχρι να " "εμφανιστεί το υπομενού" -#: ../gtk/gtksettings.c:1327 +#: ../gtk/gtksettings.c:1326 msgid "Delay before hiding a submenu" msgstr "Καθυστέρηση πριν την απόκρυψη ενός υπομενού" -#: ../gtk/gtksettings.c:1328 +#: ../gtk/gtksettings.c:1327 msgid "" "The time before hiding a submenu when the pointer is moving towards the " "submenu" @@ -6429,41 +6446,41 @@ msgstr "" "Ο χρόνος πριν την απόκρυψη ενός υπομενού όταν ο δρομέας κινείται προς ένα " "υπομενού" -#: ../gtk/gtksettings.c:1338 +#: ../gtk/gtksettings.c:1337 msgid "Whether to select the contents of a selectable label when it is focused" msgstr "" "Αν θα επιλέγονται τα περιεχόμενα μιας επιλέξιμης ετικέτας όταν γίνεται " "εστίαση" -#: ../gtk/gtksettings.c:1346 +#: ../gtk/gtksettings.c:1345 msgid "Custom palette" msgstr "Προσαρμοσμένη παλέτα" -#: ../gtk/gtksettings.c:1347 +#: ../gtk/gtksettings.c:1346 msgid "Palette to use in the color selector" msgstr "Παλέτα που θα χρησιμοποιείται στην επιλογή χρώματος" -#: ../gtk/gtksettings.c:1355 +#: ../gtk/gtksettings.c:1354 msgid "IM Preedit style" -msgstr "Στυλ IM Preedit " +msgstr "Τεχνοτροπία προεπεξεργασίας IM" -#: ../gtk/gtksettings.c:1356 +#: ../gtk/gtksettings.c:1355 msgid "How to draw the input method preedit string" msgstr "Πως θα σχεδιάζεται η μέθοδος εισαγωγής αλφαριθμητικού preedit" -#: ../gtk/gtksettings.c:1365 +#: ../gtk/gtksettings.c:1364 msgid "IM Status style" -msgstr "Στυλ IM Status " +msgstr "Τεχνοτροπία κατάστασης IM" -#: ../gtk/gtksettings.c:1366 +#: ../gtk/gtksettings.c:1365 msgid "How to draw the input method statusbar" msgstr "Πως θα σχεδιάζεται η μέθοδος εισαγωγής της γραμμής κατάστασης" -#: ../gtk/gtksettings.c:1375 +#: ../gtk/gtksettings.c:1374 msgid "Desktop shell shows app menu" msgstr "Το κέλυφος δείχνει το μενού εφαρμογών" -#: ../gtk/gtksettings.c:1376 +#: ../gtk/gtksettings.c:1375 msgid "" "Set to TRUE if the desktop environment is displaying the app menu, FALSE if " "the app should display it itself." @@ -6471,11 +6488,11 @@ msgstr "" "Ορίστε την τιμή TRUE αν το περιβάλλον εργασίας εμφανίζει το μενού της " "εφαρμογής, FALSE αν η εφαρμογή θα το εμφανίζει η ίδια." -#: ../gtk/gtksettings.c:1385 +#: ../gtk/gtksettings.c:1384 msgid "Desktop shell shows the menubar" msgstr "Το κέλυφος δείχνει το μενού εφαρμογής" -#: ../gtk/gtksettings.c:1386 +#: ../gtk/gtksettings.c:1385 msgid "" "Set to TRUE if the desktop environment is displaying the menubar, FALSE if " "the app should display it itself." @@ -6483,11 +6500,11 @@ msgstr "" "Ορίστε την τιμή TRUE αν το περιβάλλον εργασίας εμφανίζει το μενού της " "εφαρμογής, FALSE αν η εφαρμογή θα το εμφανίζει η ίδια." -#: ../gtk/gtksettings.c:1403 +#: ../gtk/gtksettings.c:1402 msgid "Enable primary paste" msgstr "Ενεργοποιήση πρωτεύουσας επικόλλησης" -#: ../gtk/gtksettings.c:1404 +#: ../gtk/gtksettings.c:1403 msgid "" "Whether a middle click on a mouse should paste the 'PRIMARY' clipboard " "content at the cursor location." @@ -6495,11 +6512,11 @@ msgstr "" "Αν το μεσαίο κλικ στο ποντίκι πρέπει να επικολλήσει το 'ΠΡΩΤΕΥΩΝ' " "περιεχόμενο προχείρου στη τοποθεσία του δρομέα." -#: ../gtk/gtksizegroup.c:380 ../gtk/gtktreeselection.c:129 +#: ../gtk/gtksizegroup.c:324 ../gtk/gtktreeselection.c:129 msgid "Mode" msgstr "Λειτουργία" -#: ../gtk/gtksizegroup.c:381 +#: ../gtk/gtksizegroup.c:325 msgid "" "The directions in which the size group affects the requested sizes of its " "component widgets" @@ -6507,11 +6524,11 @@ msgstr "" "Οι κατευθύνσεις στις οποίες η ομάδα μεγέθους επηρεάζει τα απαιτούμενα μεγέθη " "από τα γραφικά συστατικά στοιχείου." -#: ../gtk/gtksizegroup.c:397 +#: ../gtk/gtksizegroup.c:341 msgid "Ignore hidden" msgstr "Αγνόηση κρυφών" -#: ../gtk/gtksizegroup.c:398 +#: ../gtk/gtksizegroup.c:342 msgid "" "If TRUE, unmapped widgets are ignored when determining the size of the group" msgstr "" @@ -6566,7 +6583,7 @@ msgstr "Διαβάζει την τρέχουσα τιμή, ή θέτει μια #: ../gtk/gtkspinbutton.c:411 msgid "Style of bevel around the spin button" -msgstr "Είδος γωνίας γύρω από το κουμπί spin" +msgstr "Τεχνοτροπία γωνίας γύρω από το κουμπί spin" #: ../gtk/gtkspinner.c:115 msgid "Whether the spinner is active" @@ -6574,7 +6591,7 @@ msgstr "Αν θα είναι ενεργοποιημένο το spinner" #: ../gtk/gtkstatusbar.c:183 msgid "Style of bevel around the statusbar text" -msgstr "Στυλ γωνίας γύρω από το κείμενο της μπάρας κατάστασης" +msgstr "Τεχνοτροπία γωνίας γύρω από το κείμενο της μπάρας κατάστασης" #: ../gtk/gtkstatusicon.c:281 msgid "The size of the icon" @@ -6596,7 +6613,7 @@ msgstr "Αν το εικονίδιο κατάστασης θα είναι ενσ msgid "The orientation of the tray" msgstr "Ο προσανατολισμός του συρταριού" -#: ../gtk/gtkstatusicon.c:358 ../gtk/gtkwidget.c:1126 +#: ../gtk/gtkstatusicon.c:358 ../gtk/gtkwidget.c:1125 msgid "Has tooltip" msgstr "Έχει συμβουλή οθόνης" @@ -6604,15 +6621,15 @@ msgstr "Έχει συμβουλή οθόνης" msgid "Whether this tray icon has a tooltip" msgstr "Αν το εικονίδιο της περιοχής ειδοποιήσεων θα έχει συμβουλή οθόνης" -#: ../gtk/gtkstatusicon.c:384 ../gtk/gtkwidget.c:1147 +#: ../gtk/gtkstatusicon.c:384 ../gtk/gtkwidget.c:1146 msgid "Tooltip Text" msgstr "Κείμενο συμβουλής οθόνης" -#: ../gtk/gtkstatusicon.c:385 ../gtk/gtkwidget.c:1148 ../gtk/gtkwidget.c:1169 +#: ../gtk/gtkstatusicon.c:385 ../gtk/gtkwidget.c:1147 ../gtk/gtkwidget.c:1168 msgid "The contents of the tooltip for this widget" msgstr "Τα περιεχόμενα της συμβουλής οθόνης για αυτό το γραφικό συσταστικό" -#: ../gtk/gtkstatusicon.c:408 ../gtk/gtkwidget.c:1168 +#: ../gtk/gtkstatusicon.c:408 ../gtk/gtkwidget.c:1167 msgid "Tooltip markup" msgstr "Επισήμανση συμβουλής" @@ -6626,21 +6643,21 @@ msgstr "" msgid "The title of this tray icon" msgstr "Ο τίτλος αυτού του εικονιδίου περιοχής ειδοποιήσεων" -#: ../gtk/gtkstylecontext.c:441 +#: ../gtk/gtkstylecontext.c:443 msgid "The associated GdkScreen" msgstr "Η σχετιζόμενη GdkScreen" -#: ../gtk/gtkstylecontext.c:447 +#: ../gtk/gtkstylecontext.c:449 msgid "Direction" msgstr "Κατεύθυνση" -#: ../gtk/gtkstylecontext.c:448 ../gtk/gtktexttag.c:287 +#: ../gtk/gtkstylecontext.c:450 ../gtk/gtktexttag.c:287 msgid "Text direction" msgstr "Κατεύθυνση κειμένου" -#: ../gtk/gtkstylecontext.c:464 +#: ../gtk/gtkstylecontext.c:466 msgid "The parent style context" -msgstr "Το μητρικό στυλ πλαισίου" +msgstr "Η μητρική τεχνοτροπία πλαισίου" #: ../gtk/gtkstyleproperty.c:110 msgid "Property name" @@ -6658,11 +6675,11 @@ msgstr "Τύπος τιμής" msgid "The value type returned by GtkStyleContext" msgstr "Η τιμή που επιστρέφεται από το GtkStyleContext" -#: ../gtk/gtkswitch.c:835 +#: ../gtk/gtkswitch.c:815 msgid "Whether the switch is on or off" msgstr "Αν ο διακόπτης είναι ανοικτός ή κλειστός" -#: ../gtk/gtkswitch.c:869 +#: ../gtk/gtkswitch.c:849 msgid "The minimum width of the handle" msgstr "Το ελάχιστο πλάτος της λαβής" @@ -6720,11 +6737,11 @@ msgstr "" "από το πρόχειρο και για προορισμούς λήψεων" #: ../gtk/gtktexthandle.c:470 ../gtk/gtktexthandle.c:471 -#: ../gtk/gtkwidget.c:992 +#: ../gtk/gtkwidget.c:991 msgid "Parent widget" msgstr "Μητρικό γραφικό συστατικό" -#: ../gtk/gtktexthandle.c:478 ../gtk/gtkwidget.c:1183 +#: ../gtk/gtktexthandle.c:478 ../gtk/gtkwidget.c:1182 msgid "Window" msgstr "Παράθυρο" @@ -6751,8 +6768,8 @@ msgstr "Όνομα ετικέτας" #: ../gtk/gtktexttag.c:194 msgid "Name used to refer to the text tag. NULL for anonymous tags" msgstr "" -"Όνομα που χρησιμοποιείται για την αναφορά στην αναγνωριστική ετικέτα " -"κειμένου, NULL για ανώνυμες tags" +"Όνομα που χρησιμοποιείται για την αναφορά στην ετικέτα κειμένου. NULL για " +"ανώνυμες ετικέτες" #: ../gtk/gtktexttag.c:233 msgid "Background RGBA" @@ -6780,7 +6797,7 @@ msgstr "Κατεύθυνση κειμένου π.χ αριστερά-προς-δ #: ../gtk/gtktexttag.c:337 msgid "Font style as a PangoStyle, e.g. PANGO_STYLE_ITALIC" -msgstr "Τύπος γραμματοσειράς ως PangoStyle, π.χ. PANGO_STYLE_ITALIC" +msgstr "Τεχνοτροπία γραμματοσειράς ως PangoStyle, π.χ. PANGO_STYLE_ITALIC" #: ../gtk/gtktexttag.c:346 msgid "Font variant as a PangoVariant, e.g. PANGO_VARIANT_SMALL_CAPS" @@ -6791,8 +6808,8 @@ msgid "" "Font weight as an integer, see predefined values in PangoWeight; for " "example, PANGO_WEIGHT_BOLD" msgstr "" -"Βάρος γραμματοσειράς ως ακέραιος, βλ. προκαθορισμένες τιμές στο PangoWeight; " -"για παράδειγμα, PANGO_WEIGHT_BOLD " +"Πάχος γραμματοσειράς ως ακέραιος, δείτε προκαθορισμένες τιμές στο " +"PangoWeight· για παράδειγμα, PANGO_WEIGHT_BOLD" #: ../gtk/gtktexttag.c:366 msgid "Font stretch as a PangoStretch, e.g. PANGO_STRETCH_CONDENSED" @@ -6812,7 +6829,7 @@ msgstr "" "μέγεθος γραμματοσειράς. Αυτό προσαρμόζεται σε αλλαγές θεμάτων κτλ. και έτσι " "συνιστάται. Το Pango προκαθορίζει κάποιες κλίμακες όπως PANGO_SCALE_X_LARGE" -#: ../gtk/gtktexttag.c:405 ../gtk/gtktextview.c:720 +#: ../gtk/gtktexttag.c:405 ../gtk/gtktextview.c:722 msgid "Left, right, or center justification" msgstr "Αριστερή, δεξιά ή στοίχιση στο κέντρο" @@ -6829,7 +6846,7 @@ msgstr "" msgid "Left margin" msgstr "Αριστερό περιθώριο" -#: ../gtk/gtktexttag.c:432 ../gtk/gtktextview.c:729 +#: ../gtk/gtktexttag.c:432 ../gtk/gtktextview.c:731 msgid "Width of the left margin in pixels" msgstr "Πλάτος του αριστερού περιθωρίου σε εικονοστοιχεία" @@ -6837,15 +6854,15 @@ msgstr "Πλάτος του αριστερού περιθωρίου σε εικ msgid "Right margin" msgstr "Δεξιό περιθώριο" -#: ../gtk/gtktexttag.c:442 ../gtk/gtktextview.c:739 +#: ../gtk/gtktexttag.c:442 ../gtk/gtktextview.c:741 msgid "Width of the right margin in pixels" msgstr "Πλάτος του δεξιού περιθωρίου σε εικονοστοιχεία" -#: ../gtk/gtktexttag.c:452 ../gtk/gtktextview.c:748 +#: ../gtk/gtktexttag.c:452 ../gtk/gtktextview.c:750 msgid "Indent" msgstr "Εσοχή" -#: ../gtk/gtktexttag.c:453 ../gtk/gtktextview.c:749 +#: ../gtk/gtktexttag.c:453 ../gtk/gtktextview.c:751 msgid "Amount to indent the paragraph, in pixels" msgstr "Μέγεθος εσοχής παραγράφου σε εικονοστοιχεία" @@ -6861,7 +6878,7 @@ msgstr "" msgid "Pixels above lines" msgstr "Εικονοστοιχεία πάνω από γραμμές" -#: ../gtk/gtktexttag.c:474 ../gtk/gtktextview.c:673 +#: ../gtk/gtktexttag.c:474 ../gtk/gtktextview.c:675 msgid "Pixels of blank space above paragraphs" msgstr "Εικονοστοιχεία κενού διαστήματος πάνω από παραγράφους" @@ -6869,7 +6886,7 @@ msgstr "Εικονοστοιχεία κενού διαστήματος πάνω msgid "Pixels below lines" msgstr "Εικονοστοιχεία κάτω από γραμμές" -#: ../gtk/gtktexttag.c:484 ../gtk/gtktextview.c:683 +#: ../gtk/gtktexttag.c:484 ../gtk/gtktextview.c:685 msgid "Pixels of blank space below paragraphs" msgstr "Εικονοστοιχεία κενού διαστήματος κάτω από παραγράφους" @@ -6877,23 +6894,23 @@ msgstr "Εικονοστοιχεία κενού διαστήματος κάτω msgid "Pixels inside wrap" msgstr "Εικονοστοιχεία μέσα στην αναδίπλωση" -#: ../gtk/gtktexttag.c:494 ../gtk/gtktextview.c:693 +#: ../gtk/gtktexttag.c:494 ../gtk/gtktextview.c:695 msgid "Pixels of blank space between wrapped lines in a paragraph" msgstr "" "Εικονοστοιχεία κενού διαστήματος μεταξύ αναδιπλούμενων γραμμών σε παράγραφο" -#: ../gtk/gtktexttag.c:521 ../gtk/gtktextview.c:711 +#: ../gtk/gtktexttag.c:521 ../gtk/gtktextview.c:713 msgid "" "Whether to wrap lines never, at word boundaries, or at character boundaries" msgstr "" "Αν θα αναδιπλώνονται οι γραμμές, καθόλου, στα όρια λέξεως ή στα όρια " "χαρακτήρων" -#: ../gtk/gtktexttag.c:530 ../gtk/gtktextview.c:758 +#: ../gtk/gtktexttag.c:530 ../gtk/gtktextview.c:760 msgid "Tabs" msgstr "Στηλοθέτες" -#: ../gtk/gtktexttag.c:531 ../gtk/gtktextview.c:759 +#: ../gtk/gtktexttag.c:531 ../gtk/gtktextview.c:761 msgid "Custom tabs for this text" msgstr "Προσαρμοσμένοι στηλοθέτες για αυτό το κείμενο" @@ -7035,67 +7052,67 @@ msgid "Whether this tag affects the paragraph background color" msgstr "" "Αν αυτή αναγνωριστική ετικέτα επηρεάζει το χρώμα παρασκηνίου παραγράφου" -#: ../gtk/gtktextview.c:672 +#: ../gtk/gtktextview.c:674 msgid "Pixels Above Lines" msgstr "Εικονοστοιχεία πάνω από γραμμές" -#: ../gtk/gtktextview.c:682 +#: ../gtk/gtktextview.c:684 msgid "Pixels Below Lines" msgstr "Εικονοστοιχεία κάτω από γραμμές" -#: ../gtk/gtktextview.c:692 +#: ../gtk/gtktextview.c:694 msgid "Pixels Inside Wrap" msgstr "Εικονοστοιχεία μέσα σε αναδίπλωση" -#: ../gtk/gtktextview.c:710 +#: ../gtk/gtktextview.c:712 msgid "Wrap Mode" msgstr "Κατάσταση αναδίπλωσης" -#: ../gtk/gtktextview.c:728 +#: ../gtk/gtktextview.c:730 msgid "Left Margin" msgstr "Αριστερό περιθώριο" -#: ../gtk/gtktextview.c:738 +#: ../gtk/gtktextview.c:740 msgid "Right Margin" msgstr "Δεξιό περιθώριο" -#: ../gtk/gtktextview.c:766 +#: ../gtk/gtktextview.c:768 msgid "Cursor Visible" msgstr "Ορατός δρομέας" -#: ../gtk/gtktextview.c:767 +#: ../gtk/gtktextview.c:769 msgid "If the insertion cursor is shown" msgstr "Αν θα είναι φανερή η εισαγωγή του δρομέα" -#: ../gtk/gtktextview.c:774 +#: ../gtk/gtktextview.c:776 msgid "Buffer" msgstr "Buffer" -#: ../gtk/gtktextview.c:775 +#: ../gtk/gtktextview.c:777 msgid "The buffer which is displayed" msgstr "Το buffer που εμφανίζεται" -#: ../gtk/gtktextview.c:783 +#: ../gtk/gtktextview.c:785 msgid "Whether entered text overwrites existing contents" msgstr "Αν το εισαγόμενο κείμενο επικαλύπτει τα υπάρχοντα περιεχομένα" -#: ../gtk/gtktextview.c:790 +#: ../gtk/gtktextview.c:792 msgid "Accepts tab" msgstr "Δέχεται tab" -#: ../gtk/gtktextview.c:791 +#: ../gtk/gtktextview.c:793 msgid "Whether Tab will result in a tab character being entered" -msgstr "Αν το Tab θα έχει σαν αποτέλεσμα την εισαγωγή ενός χαρακτήρα tab" +msgstr "Αν το Tab θα έχει σαν αποτέλεσμα την εισαγωγή ενός χαρακτήρα tab" -#: ../gtk/gtktextview.c:862 +#: ../gtk/gtktextview.c:864 msgid "Error underline color" msgstr "Χρώμα υπογράμμισης σφάλματος" -#: ../gtk/gtktextview.c:863 +#: ../gtk/gtktextview.c:865 msgid "Color with which to draw error-indication underlines" msgstr "Χρώμα με το οποίο ζωγραφίζονται οι υπογραμμίσεις επισήμανσης σφάλματος" -#: ../gtk/gtkthemingengine.c:258 +#: ../gtk/gtkthemingengine.c:259 msgid "Theming engine name" msgstr "Όνομα μηχανής θέματος" @@ -7106,8 +7123,8 @@ msgstr "Δημιουργία των ίδιων διαμεσολαβητών ως #: ../gtk/gtktoggleaction.c:117 msgid "Whether the proxies for this action look like radio action proxies" msgstr "" -"Αν οι διαμεσολαβητές για αυτή την ενέργεια θα φαίνονται σαν διαμεσολαβητές " -"ενέργειας radio " +"Εάν οι διαμεσολαβητές για αυτήν την ενέργεια θα φαίνονται ως μεσολαβητές " +"ενέργειας ραδιοπλήκτρου" #: ../gtk/gtktoggleaction.c:132 msgid "Whether the toggle action should be active" @@ -7131,7 +7148,7 @@ msgstr "Αν το μέρος εναλλαγής του κουμπιού θα ε #: ../gtk/gtktoolbar.c:501 ../gtk/gtktoolpalette.c:1043 msgid "Toolbar Style" -msgstr "Στυλ εργαλειοθήκης" +msgstr "Τεχνοτροπία εργαλειοθήκης" #: ../gtk/gtktoolbar.c:502 msgid "How to draw the toolbar" @@ -7193,7 +7210,7 @@ msgstr "Μέγιστος χώρος που μπορεί να αποδοθεί σ #: ../gtk/gtktoolbar.c:607 msgid "Space style" -msgstr "Στυλ διαστήματος" +msgstr "Τεχνοτροπία διαστήματος" #: ../gtk/gtktoolbar.c:608 msgid "Whether spacers are vertical lines or just blank" @@ -7209,7 +7226,7 @@ msgstr "Είδος γωνίας γύρω από τα κουμπιά της ερ #: ../gtk/gtktoolbar.c:632 msgid "Style of bevel around the toolbar" -msgstr "Στυλ γωνίας γύρω από την εργαλειοθήκη" +msgstr "Τεχνοτροπία γωνίας γύρω από την εργαλειοθήκη" #: ../gtk/gtktoolbutton.c:240 msgid "Text to show in the item." @@ -7237,7 +7254,7 @@ msgstr "Το εικονίδιο αποθέματος που θα προβάλλ #: ../gtk/gtktoolbutton.c:277 msgid "Icon name" -msgstr "'Όνομα εικονιδίου" +msgstr "Όνομα εικονιδίου" #: ../gtk/gtktoolbutton.c:278 msgid "The name of the themed icon displayed on the item" @@ -7334,7 +7351,7 @@ msgstr "Μέγεθος εικονιδίων σε αυτή την παλέτα ε #: ../gtk/gtktoolpalette.c:1044 msgid "Style of items in the tool palette" -msgstr "Στυλ στοιχείων στην παλέτα εργαλείων" +msgstr "Τεχνοτροπία στοιχείων στην παλέτα εργαλείων" #: ../gtk/gtktoolpalette.c:1060 msgid "Exclusive" @@ -7430,223 +7447,223 @@ msgstr "Μοντέλο δενδροειδούς ταξινόμησης" msgid "The model for the TreeModelSort to sort" msgstr "Το μοντέλο για δενδροειδή ταξινόμηση" -#: ../gtk/gtktreeview.c:992 +#: ../gtk/gtktreeview.c:993 msgid "TreeView Model" msgstr "Μοντέλο Δενδροειδούς Προβολής" -#: ../gtk/gtktreeview.c:993 +#: ../gtk/gtktreeview.c:994 msgid "The model for the tree view" msgstr "Το μοντέλο για δενδροειδή προβολή" -#: ../gtk/gtktreeview.c:1005 +#: ../gtk/gtktreeview.c:1006 msgid "Headers Visible" msgstr "Ορατές Κεφαλίδες" -#: ../gtk/gtktreeview.c:1006 +#: ../gtk/gtktreeview.c:1007 msgid "Show the column header buttons" msgstr "Προβολή των κουμπιών της κεφαλίδας στήλης" -#: ../gtk/gtktreeview.c:1013 +#: ../gtk/gtktreeview.c:1014 msgid "Headers Clickable" msgstr "Δυνατότητα Κλικ στις Κεφαλίδες" -#: ../gtk/gtktreeview.c:1014 +#: ../gtk/gtktreeview.c:1015 msgid "Column headers respond to click events" msgstr "Οι κεφαλίδες στηλών να ανταποκρίνονται σε γεγονότα κλικ" -#: ../gtk/gtktreeview.c:1021 +#: ../gtk/gtktreeview.c:1022 msgid "Expander Column" msgstr "Διαστελλόμενη στήλη" -#: ../gtk/gtktreeview.c:1022 +#: ../gtk/gtktreeview.c:1023 msgid "Set the column for the expander column" msgstr "Ορισμός στήλης για τη διαστελλόμενη στήλη" -#: ../gtk/gtktreeview.c:1037 +#: ../gtk/gtktreeview.c:1038 msgid "Rules Hint" msgstr "Συμβουλή κανόνων" -#: ../gtk/gtktreeview.c:1038 +#: ../gtk/gtktreeview.c:1039 msgid "Set a hint to the theme engine to draw rows in alternating colors" msgstr "" "Ορισμός συμβουλής στη μηχανή θεμάτων για το σχεδιασμό γραμμών σε εναλλακτικά " "χρώματα." -#: ../gtk/gtktreeview.c:1045 +#: ../gtk/gtktreeview.c:1046 msgid "Enable Search" msgstr "Ενεργοποίηση Αναζήτησης" -#: ../gtk/gtktreeview.c:1046 +#: ../gtk/gtktreeview.c:1047 msgid "View allows user to search through columns interactively" -msgstr "Η προβολή επιτρέπει τη διαδραστική αναζήτηση μέσω στηλών" +msgstr "Η προβολή επιτρέπει τη διαδραστική αναζήτηση μέσω στηλών" -#: ../gtk/gtktreeview.c:1053 +#: ../gtk/gtktreeview.c:1054 msgid "Search Column" msgstr "Στήλη Αναζήτησης" -#: ../gtk/gtktreeview.c:1054 +#: ../gtk/gtktreeview.c:1055 msgid "Model column to search through during interactive search" msgstr "" "Στήλη του μοντέλου στην οποία θα γίνει αναζήτηση κατά τη διαδραστική " "αναζήτηση" -#: ../gtk/gtktreeview.c:1074 +#: ../gtk/gtktreeview.c:1075 msgid "Fixed Height Mode" msgstr "Λειτουργία σταθερού ύψους" -#: ../gtk/gtktreeview.c:1075 +#: ../gtk/gtktreeview.c:1076 msgid "Speeds up GtkTreeView by assuming that all rows have the same height" msgstr "" "Συντομεύει το GtkTreeView με το να θεωρεί ότι όλες οι γραμμές έχουν το ίδιο " "ύψος" -#: ../gtk/gtktreeview.c:1095 +#: ../gtk/gtktreeview.c:1096 msgid "Hover Selection" msgstr "Επιλογή Hover" -#: ../gtk/gtktreeview.c:1096 +#: ../gtk/gtktreeview.c:1097 msgid "Whether the selection should follow the pointer" msgstr "Αν η επιλογή θα ακολουθεί το δρομέα" -#: ../gtk/gtktreeview.c:1115 +#: ../gtk/gtktreeview.c:1116 msgid "Hover Expand" msgstr "Ανάπτυξη Hover" -#: ../gtk/gtktreeview.c:1116 +#: ../gtk/gtktreeview.c:1117 msgid "" "Whether rows should be expanded/collapsed when the pointer moves over them" msgstr "" "Αν το οι γραμμές θα αναπτύσσονται/συμπτήσσονταο όταν περνά από πάνω τους ο " "δείκτης" -#: ../gtk/gtktreeview.c:1130 +#: ../gtk/gtktreeview.c:1131 msgid "Show Expanders" msgstr "Προβολή expanders" -#: ../gtk/gtktreeview.c:1131 +#: ../gtk/gtktreeview.c:1132 msgid "View has expanders" msgstr "Η προβολή διαθέτει expanders" -#: ../gtk/gtktreeview.c:1145 +#: ../gtk/gtktreeview.c:1146 msgid "Level Indentation" msgstr "Επίπεδα εσοχών" -#: ../gtk/gtktreeview.c:1146 +#: ../gtk/gtktreeview.c:1147 msgid "Extra indentation for each level" msgstr "Επιπλέον εσοχή σε κάθε επίπεδο" -#: ../gtk/gtktreeview.c:1155 +#: ../gtk/gtktreeview.c:1156 msgid "Rubber Banding" msgstr "Ομαδοποίηση" -#: ../gtk/gtktreeview.c:1156 +#: ../gtk/gtktreeview.c:1157 msgid "" "Whether to enable selection of multiple items by dragging the mouse pointer" msgstr "" "Αν θα επιτρέπεται η επιλογή πολλαπλών αντικειμένων με το σύρσιμο του " "ποντικιού" -#: ../gtk/gtktreeview.c:1163 +#: ../gtk/gtktreeview.c:1164 msgid "Enable Grid Lines" msgstr "Ενεργοποίηση γραμμών πλέγματος" -#: ../gtk/gtktreeview.c:1164 +#: ../gtk/gtktreeview.c:1165 msgid "Whether grid lines should be drawn in the tree view" msgstr "Αν θα εμφανίζονται οι γραμμές πλέγματος στην προβολή δέντρου" -#: ../gtk/gtktreeview.c:1172 +#: ../gtk/gtktreeview.c:1173 msgid "Enable Tree Lines" msgstr "Ενεργοποίηση γραμμών δένδρου" -#: ../gtk/gtktreeview.c:1173 +#: ../gtk/gtktreeview.c:1174 msgid "Whether tree lines should be drawn in the tree view" msgstr "Αν θα εμφανίζονται οι γραμμές δέντρου στην προβολή δέντρου" -#: ../gtk/gtktreeview.c:1181 +#: ../gtk/gtktreeview.c:1182 msgid "The column in the model containing the tooltip texts for the rows" msgstr "" "Η στήλη στο μοντέλο που περιέχει τα κείμενα των αναδυόμενων συμβουλών για " "τις γραμμές" -#: ../gtk/gtktreeview.c:1203 +#: ../gtk/gtktreeview.c:1204 msgid "Vertical Separator Width" msgstr "Πλάτος Κάθετου Διαχωριστικού" -#: ../gtk/gtktreeview.c:1204 +#: ../gtk/gtktreeview.c:1205 msgid "Vertical space between cells. Must be an even number" msgstr "Κάθετο διάστημα μεταξύ κελιών. Πρέπει να είναι ζυγός αριθμός" -#: ../gtk/gtktreeview.c:1212 +#: ../gtk/gtktreeview.c:1213 msgid "Horizontal Separator Width" msgstr "Πλάτος Οριζόντιου Διαχωριστικού" -#: ../gtk/gtktreeview.c:1213 +#: ../gtk/gtktreeview.c:1214 msgid "Horizontal space between cells. Must be an even number" msgstr "Οριζόντιο διάστημα μεταξύ κελιών. Πρέπει να είναι ζυγός αριθμός" -#: ../gtk/gtktreeview.c:1221 +#: ../gtk/gtktreeview.c:1222 msgid "Allow Rules" msgstr "Να Επιτρέπονται Κανόνες" -#: ../gtk/gtktreeview.c:1222 +#: ../gtk/gtktreeview.c:1223 msgid "Allow drawing of alternating color rows" msgstr "Να επιτρέπεται ο σχεδιασμός γραμμών με εναλλαγές γραμμές χρωμάτων" -#: ../gtk/gtktreeview.c:1228 +#: ../gtk/gtktreeview.c:1229 msgid "Indent Expanders" msgstr "Εσοχή Διαστελλόμενων Στοιχείων" -#: ../gtk/gtktreeview.c:1229 +#: ../gtk/gtktreeview.c:1230 msgid "Make the expanders indented" msgstr "Να οριοθετείται η εσοχή των διαστελλόμενων στοιχείων" -#: ../gtk/gtktreeview.c:1235 +#: ../gtk/gtktreeview.c:1236 msgid "Even Row Color" msgstr "Χρώμα Ζυγής Γραμμής" -#: ../gtk/gtktreeview.c:1236 +#: ../gtk/gtktreeview.c:1237 msgid "Color to use for even rows" msgstr "Χρώμα που θα χρησιμοποιείται για τις ζυγές γραμμές" -#: ../gtk/gtktreeview.c:1242 +#: ../gtk/gtktreeview.c:1243 msgid "Odd Row Color" msgstr "Χρώμα Μονής Γραμμής" -#: ../gtk/gtktreeview.c:1243 +#: ../gtk/gtktreeview.c:1244 msgid "Color to use for odd rows" msgstr "Χρώμα που θα χρησιμοποιείται για τις μονές γραμμές" -#: ../gtk/gtktreeview.c:1249 +#: ../gtk/gtktreeview.c:1250 msgid "Grid line width" msgstr "Πλάτος γραμμής πλέγματος" -#: ../gtk/gtktreeview.c:1250 +#: ../gtk/gtktreeview.c:1251 msgid "Width, in pixels, of the tree view grid lines" msgstr "Πλάτος, σε εικονοστοιχεία, των γραμμών πλέγματος στην προβολή δέντρου" -#: ../gtk/gtktreeview.c:1256 +#: ../gtk/gtktreeview.c:1257 msgid "Tree line width" msgstr "Πλάτος γραμμής δένδρου" -#: ../gtk/gtktreeview.c:1257 +#: ../gtk/gtktreeview.c:1258 msgid "Width, in pixels, of the tree view lines" msgstr "Πλάτος, σε εικονοστοιχεία των γραμμών προβολής δένδρου" -#: ../gtk/gtktreeview.c:1263 +#: ../gtk/gtktreeview.c:1264 msgid "Grid line pattern" msgstr "Μοτίβο γραμμής πλέγματος" -#: ../gtk/gtktreeview.c:1264 +#: ../gtk/gtktreeview.c:1265 msgid "Dash pattern used to draw the tree view grid lines" msgstr "" "Διακεκομμένο μοτίβο που θα χρησιμοποιείται για τη σχεδίαση των γραμμών " "πλέγματος στην προβολή δέντρου" -#: ../gtk/gtktreeview.c:1270 +#: ../gtk/gtktreeview.c:1271 msgid "Tree line pattern" msgstr "Μοτίβο γραμμής δένδρου" -#: ../gtk/gtktreeview.c:1271 +#: ../gtk/gtktreeview.c:1272 msgid "Dash pattern used to draw the tree view lines" msgstr "" "Διακεκομμένο μοτίβο που θα χρησιμοποιείται για τη σχεδίαση των γραμμών " @@ -7656,7 +7673,7 @@ msgstr "" msgid "Whether to display the column" msgstr "Αν θα εμφανίζεται η στήλη" -#: ../gtk/gtktreeviewcolumn.c:255 ../gtk/gtkwindow.c:661 +#: ../gtk/gtktreeviewcolumn.c:255 ../gtk/gtkwindow.c:651 msgid "Resizable" msgstr "Δυνατότητα αλλαγής μεγέθους" @@ -7690,7 +7707,7 @@ msgstr "Τρέχον προκαθορισμένο πλάτος της στήλη #: ../gtk/gtktreeviewcolumn.c:311 msgid "Minimum allowed width of the column" -msgstr "Ελάχιστο επιτρεπτό πλάτος για τη στήλη" +msgstr "Ελάχιστο επιτρεπτό πλάτος για τη στήλη" #: ../gtk/gtktreeviewcolumn.c:320 msgid "Maximum Width" @@ -7698,7 +7715,7 @@ msgstr "Μέγιστο Πλάτος" #: ../gtk/gtktreeviewcolumn.c:321 msgid "Maximum allowed width of the column" -msgstr "Μέγιστο επιτρεπτό πλάτος για τη στήλη" +msgstr "Μέγιστο επιτρεπτό πλάτος για τη στήλη" #: ../gtk/gtktreeviewcolumn.c:331 msgid "Title to appear in column header" @@ -7769,8 +7786,8 @@ msgstr "Ένα αλφαριθμητικό XML που περιγράφει το #: ../gtk/gtkviewport.c:156 msgid "Determines how the shadowed box around the viewport is drawn" msgstr "" -"Καθορίζει τον τρόπο με τον οποίο σχεδιάζεται το σκιασμένο κουτί γύρω από το " -"viewport " +"Καθορίζει τον τρόπο με τον οποίο σχεδιάζεται το σκιασμένο κουτί γύρω από τη " +"θύρα προβολής" #: ../gtk/gtkvolumebutton.c:155 msgid "Use symbolic icons" @@ -7780,25 +7797,25 @@ msgstr "Χρήση συμβολικών εικονιδίων" msgid "Whether to use symbolic icons" msgstr "Αν θα χρησιμοποιηθούν συμβολικά εικονίδια" -#: ../gtk/gtkwidget.c:985 +#: ../gtk/gtkwidget.c:984 msgid "Widget name" msgstr "Όνομα γραφικού συστατικού" -#: ../gtk/gtkwidget.c:986 +#: ../gtk/gtkwidget.c:985 msgid "The name of the widget" msgstr "Το όνομα του γραφικού συστατικού" -#: ../gtk/gtkwidget.c:993 +#: ../gtk/gtkwidget.c:992 msgid "The parent widget of this widget. Must be a Container widget" msgstr "" "Το μητρικό γραφικό συστατικό του γραφικού συστατικού. Πρέπει να είναι " -"Container widget." +"περιέκτης γραφικού συστατικού." -#: ../gtk/gtkwidget.c:1000 +#: ../gtk/gtkwidget.c:999 msgid "Width request" msgstr "Αίτηση πλάτους" -#: ../gtk/gtkwidget.c:1001 +#: ../gtk/gtkwidget.c:1000 msgid "" "Override for width request of the widget, or -1 if natural request should be " "used" @@ -7806,11 +7823,11 @@ msgstr "" "Παράκαμψη για αίτηση πλάτους του γραφικού συστατικού, ή -1 αν θα πρέπει να " "χρησιμοποιηθεί κανονική αίτηση" -#: ../gtk/gtkwidget.c:1009 +#: ../gtk/gtkwidget.c:1008 msgid "Height request" msgstr "Αίτηση ύψους" -#: ../gtk/gtkwidget.c:1010 +#: ../gtk/gtkwidget.c:1009 msgid "" "Override for height request of the widget, or -1 if natural request should " "be used" @@ -7818,308 +7835,308 @@ msgstr "" "Παράκαμψη για αίτηση ύψους του γραφικού συστατικού, ή -1 αν θα πρέπει να " "χρησιμοποιηθεί κανονική αίτηση" -#: ../gtk/gtkwidget.c:1019 +#: ../gtk/gtkwidget.c:1018 msgid "Whether the widget is visible" msgstr "Αν γραφικό συστατικό θα είναι ορατό" -#: ../gtk/gtkwidget.c:1026 +#: ../gtk/gtkwidget.c:1025 msgid "Whether the widget responds to input" msgstr "Αν γραφικό συστατικό αποκρίνεται σε εισαγωγή δεδομένων" -#: ../gtk/gtkwidget.c:1032 +#: ../gtk/gtkwidget.c:1031 msgid "Application paintable" msgstr "Δυνατότητα σχεδίασης" -#: ../gtk/gtkwidget.c:1033 +#: ../gtk/gtkwidget.c:1032 msgid "Whether the application will paint directly on the widget" msgstr "Αν η εφαρμογή μπορεί να σχεδιάζει απευθείας στο γραφικό συστατικό" -#: ../gtk/gtkwidget.c:1039 +#: ../gtk/gtkwidget.c:1038 msgid "Can focus" msgstr "Δυνατότητα εστίασης" -#: ../gtk/gtkwidget.c:1040 +#: ../gtk/gtkwidget.c:1039 msgid "Whether the widget can accept the input focus" msgstr "Αν γραφικό συστατικό μπορεί να δεχτεί input focus" -#: ../gtk/gtkwidget.c:1046 +#: ../gtk/gtkwidget.c:1045 msgid "Has focus" msgstr "Έχει εστίαση" -#: ../gtk/gtkwidget.c:1047 +#: ../gtk/gtkwidget.c:1046 msgid "Whether the widget has the input focus" -msgstr "Αν γραφικό συστατικό θα έχει input focus" +msgstr "Αν γραφικό συστατικό θα έχει εστίαση εισόδου" -#: ../gtk/gtkwidget.c:1053 +#: ../gtk/gtkwidget.c:1052 msgid "Is focus" msgstr "Έχει εστίαση" -#: ../gtk/gtkwidget.c:1054 +#: ../gtk/gtkwidget.c:1053 msgid "Whether the widget is the focus widget within the toplevel" msgstr "" "Αν το γραφικό συστατικό θα είναι το γραφικό συστατικό εστίασης μέσα στο " "toplevel" -#: ../gtk/gtkwidget.c:1060 +#: ../gtk/gtkwidget.c:1059 msgid "Can default" msgstr "Δυνατότητα προεπιλογής" -#: ../gtk/gtkwidget.c:1061 +#: ../gtk/gtkwidget.c:1060 msgid "Whether the widget can be the default widget" msgstr "Αν γραφικό συστατικό έχει τη δυνατότητα να γίνει το προεπιλεγμένο" -#: ../gtk/gtkwidget.c:1067 +#: ../gtk/gtkwidget.c:1066 msgid "Has default" msgstr "Έχει προεπιλογή" -#: ../gtk/gtkwidget.c:1068 +#: ../gtk/gtkwidget.c:1067 msgid "Whether the widget is the default widget" msgstr "Αν το γραφικό συστατικό θα είναι το προεπιλεγμένο" -#: ../gtk/gtkwidget.c:1074 +#: ../gtk/gtkwidget.c:1073 msgid "Receives default" msgstr "Λήψη προεπιλεγμένης" -#: ../gtk/gtkwidget.c:1075 +#: ../gtk/gtkwidget.c:1074 msgid "If TRUE, the widget will receive the default action when it is focused" msgstr "" "Αν TRUE, το γραφικό συστατικό θα λαμβάνει την προεπιλεγμένη ενέργεια όταν " "εστιάζεται" -#: ../gtk/gtkwidget.c:1081 +#: ../gtk/gtkwidget.c:1080 msgid "Composite child" msgstr "Σύνθετο θυγατρικό" -#: ../gtk/gtkwidget.c:1082 +#: ../gtk/gtkwidget.c:1081 msgid "Whether the widget is part of a composite widget" msgstr "" "Αν το γραφικό συστατικό θα είναι μέρος ενός σύνθετου γραφικού συστατικού" -#: ../gtk/gtkwidget.c:1088 +#: ../gtk/gtkwidget.c:1087 msgid "Style" -msgstr "Στυλ" +msgstr "Τεχνοτροπία" -#: ../gtk/gtkwidget.c:1089 +#: ../gtk/gtkwidget.c:1088 msgid "" "The style of the widget, which contains information about how it will look " "(colors etc)" msgstr "" -"Το στυλ του γραφικού συστατικού που περιέχει πληροφορίες για την εμφάνιση " -"του (χρώματα κτλ)." +"Η τεχνοτροπία του γραφικού συστατικού που περιέχει πληροφορίες για την " +"εμφάνιση του (χρώματα κτλ)." -#: ../gtk/gtkwidget.c:1095 +#: ../gtk/gtkwidget.c:1094 msgid "Events" msgstr "Γεγονότα" -#: ../gtk/gtkwidget.c:1096 +#: ../gtk/gtkwidget.c:1095 msgid "The event mask that decides what kind of GdkEvents this widget gets" msgstr "" -"Η μάσκα γεγονότων που αποφασίζει ποιό είδοςGdkEvents λαμβάνει το γραφικό " +"Η μάσκα γεγονότων που αποφασίζει ποιο είδος GdkEvents λαμβάνει το γραφικό " "συστατικό." -#: ../gtk/gtkwidget.c:1103 +#: ../gtk/gtkwidget.c:1102 msgid "No show all" msgstr "Να μην εμφανίζονται όλα" -#: ../gtk/gtkwidget.c:1104 +#: ../gtk/gtkwidget.c:1103 msgid "Whether gtk_widget_show_all() should not affect this widget" msgstr "Αν η gtk_widget_show_all() θα επηρεάζει το γραφικό συστατικό" -#: ../gtk/gtkwidget.c:1127 +#: ../gtk/gtkwidget.c:1126 msgid "Whether this widget has a tooltip" msgstr "Αν γραφικό συστατικό θα έχει συμβουλή οθόνης" -#: ../gtk/gtkwidget.c:1184 +#: ../gtk/gtkwidget.c:1183 msgid "The widget's window if it is realized" msgstr "Το παράθυρο του γραφικού συστατικού, αν υπάρχει" -#: ../gtk/gtkwidget.c:1198 +#: ../gtk/gtkwidget.c:1197 msgid "Double Buffered" msgstr "Διπλή ενδιάμεση μνήμη" -#: ../gtk/gtkwidget.c:1199 +#: ../gtk/gtkwidget.c:1198 msgid "Whether the widget is double buffered" msgstr "Αν θα εφαρμόζεται διπλή ενδιάμεση μνήμη στο γραφικό συστατικό" -#: ../gtk/gtkwidget.c:1214 +#: ../gtk/gtkwidget.c:1213 msgid "How to position in extra horizontal space" msgstr "Πως γίνεται τοποθέτηση σε επιπλέον οριζόντιο χώρο" -#: ../gtk/gtkwidget.c:1230 +#: ../gtk/gtkwidget.c:1229 msgid "How to position in extra vertical space" msgstr "Πως γίνεται τοποθέτηση σε επιπλέον κάθετο χώρο" -#: ../gtk/gtkwidget.c:1249 +#: ../gtk/gtkwidget.c:1248 msgid "Margin on Left" msgstr "Περιθώριο αριστερά" -#: ../gtk/gtkwidget.c:1250 +#: ../gtk/gtkwidget.c:1249 msgid "Pixels of extra space on the left side" msgstr "Εικονοστοιχεία επιπλέον χώρου στην αριστερή πλευρά" -#: ../gtk/gtkwidget.c:1270 +#: ../gtk/gtkwidget.c:1269 msgid "Margin on Right" msgstr "Περιθώριο δεξιά" -#: ../gtk/gtkwidget.c:1271 +#: ../gtk/gtkwidget.c:1270 msgid "Pixels of extra space on the right side" msgstr "Εικονοστοιχεία επιπλέον χώρου στη δεξιά πλευρά" -#: ../gtk/gtkwidget.c:1291 +#: ../gtk/gtkwidget.c:1290 msgid "Margin on Top" msgstr "Περιθώριο κορυφής" -#: ../gtk/gtkwidget.c:1292 +#: ../gtk/gtkwidget.c:1291 msgid "Pixels of extra space on the top side" msgstr "Εικονοστοιχεία επιπλέον χώρου στην επάνω πλευρά" -#: ../gtk/gtkwidget.c:1312 +#: ../gtk/gtkwidget.c:1311 msgid "Margin on Bottom" msgstr "Περιθώριο κάτω" -#: ../gtk/gtkwidget.c:1313 +#: ../gtk/gtkwidget.c:1312 msgid "Pixels of extra space on the bottom side" msgstr "Εικονοστοιχεία επιπλέον χώρου στην κάτω πλευρά" -#: ../gtk/gtkwidget.c:1330 +#: ../gtk/gtkwidget.c:1329 msgid "All Margins" msgstr "Όλα τα περιθώρια" -#: ../gtk/gtkwidget.c:1331 +#: ../gtk/gtkwidget.c:1330 msgid "Pixels of extra space on all four sides" msgstr "Εικονοστοιχεία επιπλέον χώρου σε όλες τις πλευρές" -#: ../gtk/gtkwidget.c:1364 +#: ../gtk/gtkwidget.c:1363 msgid "Horizontal Expand" msgstr "Οριζόντια επέκταση" -#: ../gtk/gtkwidget.c:1365 +#: ../gtk/gtkwidget.c:1364 msgid "Whether widget wants more horizontal space" msgstr "Αν το στοιχείο απαιτεί περισσότερο οριζόντιο χώρο" -#: ../gtk/gtkwidget.c:1379 +#: ../gtk/gtkwidget.c:1378 msgid "Horizontal Expand Set" msgstr "Καθορισμός οριζόντιας επέκτασης" -#: ../gtk/gtkwidget.c:1380 +#: ../gtk/gtkwidget.c:1379 msgid "Whether to use the hexpand property" msgstr "Αν θα χρησιμοποιείται η ιδιότητα hexpand" -#: ../gtk/gtkwidget.c:1394 +#: ../gtk/gtkwidget.c:1393 msgid "Vertical Expand" msgstr "Κάθετη επέκταση" -#: ../gtk/gtkwidget.c:1395 +#: ../gtk/gtkwidget.c:1394 msgid "Whether widget wants more vertical space" msgstr "Αν το γραφικό συστατικό απαιτεί περισσότερο κάθετο χώρο" -#: ../gtk/gtkwidget.c:1409 +#: ../gtk/gtkwidget.c:1408 msgid "Vertical Expand Set" msgstr "Καθορισμός κάθετης στοίχισης" -#: ../gtk/gtkwidget.c:1410 +#: ../gtk/gtkwidget.c:1409 msgid "Whether to use the vexpand property" msgstr "Αν θα χρησιμοποιείται η ιδιότητα vexpand" -#: ../gtk/gtkwidget.c:1424 +#: ../gtk/gtkwidget.c:1423 msgid "Expand Both" msgstr "Επέκταση και στις δύο" -#: ../gtk/gtkwidget.c:1425 +#: ../gtk/gtkwidget.c:1424 msgid "Whether widget wants to expand in both directions" msgstr "Αν το γραφικό συστατικό θα επεκτείνεται και στις δύο διαστάσεις" -#: ../gtk/gtkwidget.c:3146 +#: ../gtk/gtkwidget.c:3145 msgid "Interior Focus" msgstr "Εσωτερική Εστίαση" -#: ../gtk/gtkwidget.c:3147 +#: ../gtk/gtkwidget.c:3146 msgid "Whether to draw the focus indicator inside widgets" msgstr "Αν θα σχεδιάζεται επισήμανση εστίασης μέσα σε γραφικά συστατικά" -#: ../gtk/gtkwidget.c:3153 +#: ../gtk/gtkwidget.c:3152 msgid "Focus linewidth" msgstr "Πλάτος γραμμής εστίασης" -#: ../gtk/gtkwidget.c:3154 +#: ../gtk/gtkwidget.c:3153 msgid "Width, in pixels, of the focus indicator line" msgstr "Πλάτος, σε εικονοστοιχεία της γραμμής επισήμανσης εστίασης" -#: ../gtk/gtkwidget.c:3160 +#: ../gtk/gtkwidget.c:3159 msgid "Focus line dash pattern" msgstr "Μοτίβο γραμμής εστίασης" -#: ../gtk/gtkwidget.c:3161 +#: ../gtk/gtkwidget.c:3160 msgid "Dash pattern used to draw the focus indicator" msgstr "Μοτίβο που θα χρησιμοποιείται για τη σχεδίαση της επισήμανσης εστίασης" -#: ../gtk/gtkwidget.c:3166 +#: ../gtk/gtkwidget.c:3165 msgid "Focus padding" msgstr "Γέμισμα εστίασης" -#: ../gtk/gtkwidget.c:3167 +#: ../gtk/gtkwidget.c:3166 msgid "Width, in pixels, between focus indicator and the widget 'box'" msgstr "" -"Πλάτος σε εικονοστοιχεία μεταξύ της σήμανσης εστίασης και του 'κουτιού΄ " +"Πλάτος σε εικονοστοιχεία μεταξύ της σήμανσης εστίασης και του 'κουτιού' " "γραφικού συστατικού" -#: ../gtk/gtkwidget.c:3172 +#: ../gtk/gtkwidget.c:3171 msgid "Cursor color" msgstr "Χρώμα δρομέα" -#: ../gtk/gtkwidget.c:3173 +#: ../gtk/gtkwidget.c:3172 msgid "Color with which to draw insertion cursor" msgstr "Χρώμα με το οποίο ζωγραφίζεται η εισαγωγή δρομέα" -#: ../gtk/gtkwidget.c:3178 +#: ../gtk/gtkwidget.c:3177 msgid "Secondary cursor color" msgstr "Χρώμα δευτερεύοντος δρομέα" -#: ../gtk/gtkwidget.c:3179 +#: ../gtk/gtkwidget.c:3178 msgid "" "Color with which to draw the secondary insertion cursor when editing mixed " "right-to-left and left-to-right text" msgstr "" -"Χρώμα με το οποίο θα σχεδιαστεί ο δευτερεύων δρομέας εισαγωγής κατα την " +"Χρώμα με το οποίο θα σχεδιαστεί ο δευτερεύων δρομέας εισαγωγής κατά την " "επεξεργασία μικτού αριστερόστροφου και δεξιόστροφου κειμένου." -#: ../gtk/gtkwidget.c:3184 +#: ../gtk/gtkwidget.c:3183 msgid "Cursor line aspect ratio" msgstr "Αναλογία διαστάσεων γραμμής δρομέα" -#: ../gtk/gtkwidget.c:3185 +#: ../gtk/gtkwidget.c:3184 msgid "Aspect ratio with which to draw insertion cursor" msgstr "Αναλογία διαστάσεων με την οποία θα σχεδιαστεί ο δρομέας εισαγωγής" -#: ../gtk/gtkwidget.c:3191 +#: ../gtk/gtkwidget.c:3190 msgid "Window dragging" msgstr "Σύρσιμο παραθύρου" -#: ../gtk/gtkwidget.c:3192 +#: ../gtk/gtkwidget.c:3191 msgid "Whether windows can be dragged by clicking on empty areas" msgstr "Αν τα παράθυρα μπορούν να συρθούν με κλικ σε κενές περιοχές" -#: ../gtk/gtkwidget.c:3205 +#: ../gtk/gtkwidget.c:3204 msgid "Unvisited Link Color" msgstr "Χρώμα μη αναγνωσμένου δεσμού" -#: ../gtk/gtkwidget.c:3206 +#: ../gtk/gtkwidget.c:3205 msgid "Color of unvisited links" msgstr "Χρώμα μη αναγνωσμένων δεσμών" -#: ../gtk/gtkwidget.c:3219 +#: ../gtk/gtkwidget.c:3218 msgid "Visited Link Color" msgstr "Χρώμα ναγνωσμένου δεσμού" -#: ../gtk/gtkwidget.c:3220 +#: ../gtk/gtkwidget.c:3219 msgid "Color of visited links" msgstr "Χρώμα αναγνωσμένων δεσμών" -#: ../gtk/gtkwidget.c:3234 +#: ../gtk/gtkwidget.c:3233 msgid "Wide Separators" msgstr "Πλατιά διαχωριστικά" -#: ../gtk/gtkwidget.c:3235 +#: ../gtk/gtkwidget.c:3234 msgid "" "Whether separators have configurable width and should be drawn using a box " "instead of a line" @@ -8127,91 +8144,92 @@ msgstr "" "Αν τα διαχωριστικά θα έχουν μεταβλητό μέγεθος και θα σχεδιάζονται ως πλαίσια " "αντί για γραμμές" -#: ../gtk/gtkwidget.c:3249 +#: ../gtk/gtkwidget.c:3248 msgid "Separator Width" msgstr "Πλάτος διαχωριστικού" -#: ../gtk/gtkwidget.c:3250 +#: ../gtk/gtkwidget.c:3249 msgid "The width of separators if wide-separators is TRUE" -msgstr "Το πλάτος των διαχωριστικών αν είναι αληθές το 'πλατιά διαχωριστικά'" +msgstr "Το πλάτος των διαχωριστικών αν είναι αληθές το πλατιά διαχωριστικά" -#: ../gtk/gtkwidget.c:3264 +#: ../gtk/gtkwidget.c:3263 msgid "Separator Height" msgstr "Ύψος διαχωριστικού" -#: ../gtk/gtkwidget.c:3265 +#: ../gtk/gtkwidget.c:3264 msgid "The height of separators if \"wide-separators\" is TRUE" -msgstr "Το ύψος των διαχωριστικών αν είναι αληθές το 'πλατιά διαχωριστικά'" +msgstr "Το ύψος των διαχωριστικών αν είναι αληθές το \"πλατιά διαχωριστικά\"" -#: ../gtk/gtkwidget.c:3279 +#: ../gtk/gtkwidget.c:3278 msgid "Horizontal Scroll Arrow Length" msgstr "Μήκος οριζόντιου βέλους κύλισης" -#: ../gtk/gtkwidget.c:3280 +#: ../gtk/gtkwidget.c:3279 msgid "The length of horizontal scroll arrows" msgstr "Το μήκος του οριζόντιου βέλους κύλισης" -#: ../gtk/gtkwidget.c:3294 +#: ../gtk/gtkwidget.c:3293 msgid "Vertical Scroll Arrow Length" msgstr "Μήκος κάθετου βέλους κύλισης" -#: ../gtk/gtkwidget.c:3295 +#: ../gtk/gtkwidget.c:3294 msgid "The length of vertical scroll arrows" msgstr "Το μήκος του κάθετου βέλους κύλισης" -#: ../gtk/gtkwidget.c:3301 ../gtk/gtkwidget.c:3302 +#: ../gtk/gtkwidget.c:3300 ../gtk/gtkwidget.c:3301 msgid "Width of text selection handles" msgstr "Το πλάτος που χειρίζεται η επιλογή του κειμένου" -#: ../gtk/gtkwidget.c:3307 ../gtk/gtkwidget.c:3308 +#: ../gtk/gtkwidget.c:3306 ../gtk/gtkwidget.c:3307 msgid "Height of text selection handles" msgstr "Το ύψος που χειρίζεται η επιλογή του κειμένου" -#: ../gtk/gtkwindow.c:619 +#: ../gtk/gtkwindow.c:609 msgid "Window Type" msgstr "Τύπος παραθύρου" -#: ../gtk/gtkwindow.c:620 +#: ../gtk/gtkwindow.c:610 msgid "The type of the window" msgstr "Ο τύπος του παραθύρου" -#: ../gtk/gtkwindow.c:628 +#: ../gtk/gtkwindow.c:618 msgid "Window Title" msgstr "Τίτλος παραθύρου" -#: ../gtk/gtkwindow.c:629 +#: ../gtk/gtkwindow.c:619 msgid "The title of the window" msgstr "Ο τίτλος του παραθύρου" -#: ../gtk/gtkwindow.c:636 +#: ../gtk/gtkwindow.c:626 msgid "Window Role" msgstr "Ρόλος παραθύρου" -#: ../gtk/gtkwindow.c:637 +#: ../gtk/gtkwindow.c:627 msgid "Unique identifier for the window to be used when restoring a session" msgstr "" "Μοναδικό αναγνωριστικό για το παράθυρο που θα χρησιμοποείται για την " "επαναφορά μιας συνεδρίας" -#: ../gtk/gtkwindow.c:653 +#: ../gtk/gtkwindow.c:643 msgid "Startup ID" msgstr "ID εκκίνησης" -#: ../gtk/gtkwindow.c:654 +#: ../gtk/gtkwindow.c:644 msgid "Unique startup identifier for the window used by startup-notification" msgstr "" "Μοναδικό αναγνωριστικό εκκίνησης για το παράθυρο που θα χρησιμοποείται για " "την ειδοποίηση εκκίνησης" -#: ../gtk/gtkwindow.c:662 +#: ../gtk/gtkwindow.c:652 msgid "If TRUE, users can resize the window" -msgstr "Αν TRUE, οι χρήστες μπορούν να αλλάζουν το μέγεθος του παραθύρου" +msgstr "" +"Εάν είναι ΑΛΗΘΕΣ, οι χρήστες μπορούν να αλλάζουν το μέγεθος του παραθύρου" -#: ../gtk/gtkwindow.c:669 +#: ../gtk/gtkwindow.c:659 msgid "Modal" msgstr "Σχηματικό" -#: ../gtk/gtkwindow.c:670 +#: ../gtk/gtkwindow.c:660 msgid "" "If TRUE, the window is modal (other windows are not usable while this one is " "up)" @@ -8219,223 +8237,223 @@ msgstr "" "Αν TRUE, το παράθυρο είναι σχηματικό (τα άλλα παράθυρα δε μπορούν να " "χρησιμοποιηθούν όταν αυτό είναι ενεργό)." -#: ../gtk/gtkwindow.c:677 +#: ../gtk/gtkwindow.c:667 msgid "Window Position" msgstr "Θέση Παραθύρου" -#: ../gtk/gtkwindow.c:678 +#: ../gtk/gtkwindow.c:668 msgid "The initial position of the window" msgstr "Η αρχική θέση του παραθύρου" -#: ../gtk/gtkwindow.c:686 +#: ../gtk/gtkwindow.c:676 msgid "Default Width" msgstr "Προεπιλεγμένο πλάτος" -#: ../gtk/gtkwindow.c:687 +#: ../gtk/gtkwindow.c:677 msgid "The default width of the window, used when initially showing the window" msgstr "" "Το προεπιλεγμένο πλάτος του παραθύρου που χρησιμοποιείται κατα την αρχική " "εμφάνιση του παραθύρου" -#: ../gtk/gtkwindow.c:696 +#: ../gtk/gtkwindow.c:686 msgid "Default Height" msgstr "Προεπιλεγμένο ύψος" -#: ../gtk/gtkwindow.c:697 +#: ../gtk/gtkwindow.c:687 msgid "" "The default height of the window, used when initially showing the window" msgstr "" "Το προεπιλεγμένο ύψος του παραθύρου που χρησιμοποιείται κατά την αρχική " "εμφάνιση του παραθύρου" -#: ../gtk/gtkwindow.c:706 +#: ../gtk/gtkwindow.c:696 msgid "Destroy with Parent" msgstr "Καταστροφή με το Μητρικό" -#: ../gtk/gtkwindow.c:707 +#: ../gtk/gtkwindow.c:697 msgid "If this window should be destroyed when the parent is destroyed" msgstr "" "Αν θα πρέπει να καταστραφεί αυτό το παράθυρο όταν καταστρέφεται το μητρικό" -#: ../gtk/gtkwindow.c:721 +#: ../gtk/gtkwindow.c:711 msgid "Hide the titlebar during maximization" msgstr "Απόκρυψη της μπάρας τίτλου κατα τη διάρκεια μεγιστοποίησης" -#: ../gtk/gtkwindow.c:722 +#: ../gtk/gtkwindow.c:712 msgid "If this window's titlebar should be hidden when the window is maximized" msgstr "" "Αν θα πρέπει να είναι κρυμμένη η μπάρα του τίτλου της εφαρμογής όταν το " "παράθυρο μεγιστοποιείται" -#: ../gtk/gtkwindow.c:730 +#: ../gtk/gtkwindow.c:720 msgid "Icon for this window" msgstr "Εικονίδιο για αυτό το παράθυρο" -#: ../gtk/gtkwindow.c:748 +#: ../gtk/gtkwindow.c:738 msgid "Mnemonics Visible" msgstr "Προβολή μνημονικών" -#: ../gtk/gtkwindow.c:749 +#: ../gtk/gtkwindow.c:739 msgid "Whether mnemonics are currently visible in this window" msgstr "Αν το μνημονικά θα είναι ορατά σε αυτό το παράθυρο" -#: ../gtk/gtkwindow.c:767 +#: ../gtk/gtkwindow.c:757 msgid "Focus Visible" msgstr "Ορατή εστίαση" -#: ../gtk/gtkwindow.c:768 +#: ../gtk/gtkwindow.c:758 msgid "Whether focus rectangles are currently visible in this window" msgstr "Αν τα ορθογώνια εστίασης θα είναι ορατά σε αυτό το παράθυρο" -#: ../gtk/gtkwindow.c:784 +#: ../gtk/gtkwindow.c:774 msgid "Name of the themed icon for this window" msgstr "Όνομα του εικονιδίου με θέμα για αυτό το παράθυρο" -#: ../gtk/gtkwindow.c:799 +#: ../gtk/gtkwindow.c:789 msgid "Is Active" msgstr "Είναι ενεργό" -#: ../gtk/gtkwindow.c:800 +#: ../gtk/gtkwindow.c:790 msgid "Whether the toplevel is the current active window" -msgstr "Αν το toplevel θα είναι το τρέχον ενεργό παράθυρο" +msgstr "Εάν το κορυφαίο επίπεδο θα είναι το τρέχον ενεργό παράθυρο" -#: ../gtk/gtkwindow.c:807 +#: ../gtk/gtkwindow.c:797 msgid "Focus in Toplevel" -msgstr "Εστίαση στο Toplevel " +msgstr "Εστίαση στο κορυφαίο επίπεδο" -#: ../gtk/gtkwindow.c:808 +#: ../gtk/gtkwindow.c:798 msgid "Whether the input focus is within this GtkWindow" msgstr "Αν η εστίαση είναι μέσα σε αυτό το GtkWindow" -#: ../gtk/gtkwindow.c:815 +#: ../gtk/gtkwindow.c:805 msgid "Type hint" msgstr "Είδος συμβουλής" -#: ../gtk/gtkwindow.c:816 +#: ../gtk/gtkwindow.c:806 msgid "" "Hint to help the desktop environment understand what kind of window this is " "and how to treat it." msgstr "" "Συμβουλή για να βοηθηθεί το περιβάλλον εργασίας να καταλάβει το είδος του " -"παραθύρου και πως να το χειριστεί" +"παραθύρου και πώς να το χειριστεί." -#: ../gtk/gtkwindow.c:824 +#: ../gtk/gtkwindow.c:814 msgid "Skip taskbar" msgstr "Παράκαμψη γραμμής εργασιών" -#: ../gtk/gtkwindow.c:825 +#: ../gtk/gtkwindow.c:815 msgid "TRUE if the window should not be in the task bar." msgstr "TRUE αν το παράθυρο δε θα είναι στη γραμμή εργασιών." -#: ../gtk/gtkwindow.c:832 +#: ../gtk/gtkwindow.c:822 msgid "Skip pager" msgstr "Παράκαμψη pager" -#: ../gtk/gtkwindow.c:833 +#: ../gtk/gtkwindow.c:823 msgid "TRUE if the window should not be in the pager." -msgstr "TRUE αν το παράθυρο δε θα είναι στο pager." +msgstr "ΑΛΗΘΕΣ εάν το παράθυρο δε θα είναι στο πρόγραμμα σελίδας." -#: ../gtk/gtkwindow.c:840 +#: ../gtk/gtkwindow.c:830 msgid "Urgent" msgstr "Επείγον" -#: ../gtk/gtkwindow.c:841 +#: ../gtk/gtkwindow.c:831 msgid "TRUE if the window should be brought to the user's attention." msgstr "TRUE αν το παράθυρο θα πρέπει να προσελκύει το ενδιαφέρον του χρήστη." -#: ../gtk/gtkwindow.c:855 +#: ../gtk/gtkwindow.c:845 msgid "Accept focus" msgstr "Δέχεται εστίαση" -#: ../gtk/gtkwindow.c:856 +#: ../gtk/gtkwindow.c:846 msgid "TRUE if the window should receive the input focus." msgstr "TRUE αν το παράθυρο θα δέχεται εστίαση εισόδου." -#: ../gtk/gtkwindow.c:870 +#: ../gtk/gtkwindow.c:860 msgid "Focus on map" msgstr "Εστίαση στο χάρτη" -#: ../gtk/gtkwindow.c:871 +#: ../gtk/gtkwindow.c:861 msgid "TRUE if the window should receive the input focus when mapped." msgstr "TRUE αν το παράθυρο θα δέχεται εστίαση εισόδου." -#: ../gtk/gtkwindow.c:885 +#: ../gtk/gtkwindow.c:875 msgid "Decorated" msgstr "Διακοσμημένο" -#: ../gtk/gtkwindow.c:886 +#: ../gtk/gtkwindow.c:876 msgid "Whether the window should be decorated by the window manager" msgstr "Αν το παράθυρο θα διακοσμείται από το διαχειριστή παραθύρων" -#: ../gtk/gtkwindow.c:900 +#: ../gtk/gtkwindow.c:890 msgid "Deletable" msgstr "Δυνατότητα διαγραφής" -#: ../gtk/gtkwindow.c:901 +#: ../gtk/gtkwindow.c:891 msgid "Whether the window frame should have a close button" msgstr "Αν το πλάισιο του παραθύρου θα διαθέτει κουμπί κλεισίματος" -#: ../gtk/gtkwindow.c:920 +#: ../gtk/gtkwindow.c:910 msgid "Resize grip" msgstr "Λαβή αλλαγής μεγέθους" -#: ../gtk/gtkwindow.c:921 +#: ../gtk/gtkwindow.c:911 msgid "Specifies whether the window should have a resize grip" msgstr "Καθορίζει αν το παράθυρο θα διαθέτει λαβή αλλαγής μεγέθους" -#: ../gtk/gtkwindow.c:935 +#: ../gtk/gtkwindow.c:925 msgid "Resize grip is visible" msgstr "Ορατή λαβή αλλαγής μεγέθους" -#: ../gtk/gtkwindow.c:936 +#: ../gtk/gtkwindow.c:926 msgid "Specifies whether the window's resize grip is visible." msgstr "Καθορίζει αν η λαβή αλλαγής μεγέθους του παραθύρου θα είναι ορατή." -#: ../gtk/gtkwindow.c:952 +#: ../gtk/gtkwindow.c:942 msgid "Gravity" msgstr "Βαρύτητα" -#: ../gtk/gtkwindow.c:953 +#: ../gtk/gtkwindow.c:943 msgid "The window gravity of the window" msgstr "Η βαρύτητα παραθύρου του παραθύρου" -#: ../gtk/gtkwindow.c:970 +#: ../gtk/gtkwindow.c:960 msgid "Transient for Window" msgstr "Προσωρινό παραθύρου" -#: ../gtk/gtkwindow.c:971 +#: ../gtk/gtkwindow.c:961 msgid "The transient parent of the dialog" msgstr "Ο προσωρινός γονέας του διαλόγου" -#: ../gtk/gtkwindow.c:991 +#: ../gtk/gtkwindow.c:981 msgid "Attached to Widget" msgstr "Προσδεμένο στο γραφικό συστατικό" -#: ../gtk/gtkwindow.c:992 +#: ../gtk/gtkwindow.c:982 msgid "The widget where the window is attached" msgstr "Το γραφικό συστατικό στο οποίο θα είναι προσδεμένο το παράθυρο" -#: ../gtk/gtkwindow.c:1007 +#: ../gtk/gtkwindow.c:997 msgid "Opacity for Window" msgstr "Αδιαφάνεια για παράθυρο" -#: ../gtk/gtkwindow.c:1008 +#: ../gtk/gtkwindow.c:998 msgid "The opacity of the window, from 0 to 1" msgstr "Η αδιαφάνεια του παραθύρου, από 0 ως 1" -#: ../gtk/gtkwindow.c:1018 ../gtk/gtkwindow.c:1019 +#: ../gtk/gtkwindow.c:1008 ../gtk/gtkwindow.c:1009 msgid "Width of resize grip" msgstr "Πλάτος της λαβής αλλαγής μεγέθους" -#: ../gtk/gtkwindow.c:1024 ../gtk/gtkwindow.c:1025 +#: ../gtk/gtkwindow.c:1014 ../gtk/gtkwindow.c:1015 msgid "Height of resize grip" msgstr "Ύψος της λαβής αλλαγής μεγέθους" -#: ../gtk/gtkwindow.c:1047 +#: ../gtk/gtkwindow.c:1037 msgid "GtkApplication" msgstr "GtkApplication" -#: ../gtk/gtkwindow.c:1048 +#: ../gtk/gtkwindow.c:1038 msgid "The GtkApplication for the window" msgstr "Η GtkApplication για το παράθυρο" From 5d19e1326907240b7b3e2a66b831c1fa237dba14 Mon Sep 17 00:00:00 2001 From: Dimitris Spingos Date: Mon, 25 Feb 2013 11:06:59 +0200 Subject: [PATCH 185/208] Updated Greek translation po --- po/el.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/po/el.po b/po/el.po index 6693d6c3a8..68b5a030d8 100644 --- a/po/el.po +++ b/po/el.po @@ -19,7 +19,7 @@ msgstr "" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%" "2b&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-01-19 19:42+0000\n" -"PO-Revision-Date: 2013-02-24 09:52+0300\n" +"PO-Revision-Date: 2013-02-25 11:05+0300\n" "Last-Translator: Dimitris Spingos (Δημήτρης Σπίγγος) \n" "Language-Team: team@gnome.gr\n" "Language: el\n" @@ -1695,8 +1695,8 @@ msgstr "Υπάρχει ήδη αρχείο με το όνομα \"%s\". Θέλε msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "" -"Το αρχείο υπάρχει ήδη στο \"%s\". Η αντικατάσταση του θα αντικαταστήσει και τα " -"περιεχόμενα του." +"Το αρχείο υπάρχει ήδη στο \"%s\". Η αντικατάσταση του θα αντικαταστήσει και " +"τα περιεχόμενα του." #: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" @@ -3268,7 +3268,8 @@ msgstr "Το \"%s\" δεν είναι έγκυρο όνομα γνωρίσματ msgid "" "\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\"" msgstr "" -"Το \"%s\" δεν μπορεί να μετατραπεί σε τιμή του τύπου \"%s\" για το γνώρισμα \"%s\"" +"Το \"%s\" δεν μπορεί να μετατραπεί σε τιμή του τύπου \"%s\" για το γνώρισμα " +"\"%s\"" #: ../gtk/gtktextbufferserialize.c:1209 #, c-format From d7184d650065e3f378d5837461bcbc6d3196a541 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 25 Feb 2013 10:36:47 +0100 Subject: [PATCH 186/208] Include public headers in gdk.h gdkframeclock.h and gdkframetimings.h were not directly included in gdk.h. They should. --- gdk/gdk.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gdk/gdk.h b/gdk/gdk.h index 7af805f97d..36d5c3b55d 100644 --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -40,6 +40,8 @@ #include #include #include +#include +#include #include #include #include From 67635e9177f90218c28f94c1bcc7e72767f5ed47 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 25 Feb 2013 10:38:28 +0100 Subject: [PATCH 187/208] Include GdkFrameClock in the docs Make GdkFrameClock and GdkFrameTimings show up in the docs. A couple of minor doc fixes are also included. --- docs/reference/gdk/gdk-docs.sgml | 2 ++ docs/reference/gdk/gdk3-sections.txt | 36 ++++++++++++++++++++++++++++ gdk/gdkframeclock.c | 22 ++++++++--------- gdk/gdkframeclock.h | 2 +- gdk/gdkframetimings.c | 2 +- 5 files changed, 51 insertions(+), 13 deletions(-) diff --git a/docs/reference/gdk/gdk-docs.sgml b/docs/reference/gdk/gdk-docs.sgml index 605ea240b9..d55d09511a 100644 --- a/docs/reference/gdk/gdk-docs.sgml +++ b/docs/reference/gdk/gdk-docs.sgml @@ -31,6 +31,8 @@ + + diff --git a/docs/reference/gdk/gdk3-sections.txt b/docs/reference/gdk/gdk3-sections.txt index 3530519595..f90c0c08b3 100644 --- a/docs/reference/gdk/gdk3-sections.txt +++ b/docs/reference/gdk/gdk3-sections.txt @@ -404,6 +404,7 @@ gdk_window_process_updates gdk_window_set_debug_updates gdk_window_enable_synchronized_configure gdk_window_configure_finished +gdk_window_get_frame_clock gdk_window_set_user_data @@ -1154,3 +1155,38 @@ gdk_test_render_sync gdk_test_simulate_button gdk_test_simulate_key + +
+GdkFrameClock +gdkframeclock +GdkFrameClock +gdk_frame_clock_get_frame_time +GdkFrameClockPhase +gdk_frame_clock_request_phase +gdk_frame_clock_begin_updating +gdk_frame_clock_end_updating +gdk_frame_clock_get_frame_counter +gdk_frame_clock_get_history_start +gdk_frame_clock_get_timings +gdk_frame_clock_get_current_timings +gdk_frame_clock_get_refresh_info + +GdkFrameClockPrivate +gdk_frame_clock_get_type +
+ +
+GdkFrameTimings +gdkframetimings +GdkFrameTimings +gdk_frame_timings_ref +gdk_frame_timings_unref +gdk_frame_timings_get_frame_counter +gdk_frame_timings_get_complete +gdk_frame_timings_get_frame_time +gdk_frame_timings_get_presentation_time +gdk_frame_timings_get_refresh_interval +gdk_frame_timings_get_predicted_presentation_time + +gdk_frame_get_type +
diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index 1994b00e8b..fb3e530d59 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -30,7 +30,7 @@ #include "gdkinternals.h" /** - * SECTION:frameclock + * SECTION:gdkframeclock * @Short_description: Frame clock syncs painting to a window or display * @Title: Frame clock * @@ -52,10 +52,10 @@ * sense for the synchronization being implemented, the clock will * process a frame and emit signals for each phase that has been * requested. (See the signals of the #GdkFrameClock class for - * documentation of the phases. GDK_FRAME_CLOCK_PHASE_UPDATE and the - * ::update signal are most interesting for application writers, and - * are used to update the animations, using the frame time given by - * gdk_frame_clock_get_frame_time(). + * documentation of the phases. %GDK_FRAME_CLOCK_PHASE_UPDATE and the + * #GdkFrameClock::update signal are most interesting for application + * writers, and are used to update the animations, using the frame time + * given by gdk_frame_clock_get_frame_time(). * * The frame time is reported in microseconds and generally in the same * timescale as g_get_monotonic_time(), however, it is not the same @@ -65,8 +65,8 @@ * are called at a "similar" time get the same value. This means that * if different animations are timed by looking at the difference in * time between an initial value from gdk_frame_clock_get_frame_time() - * and the value inside the ::update signal of the clock, they will - * stay exactly synchronized. + * and the value inside the #GdkFrameClock::update signal of the clock, + * they will stay exactly synchronized. */ G_DEFINE_ABSTRACT_TYPE (GdkFrameClock, gdk_frame_clock, G_TYPE_OBJECT) @@ -174,7 +174,7 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass) * This signal is emitted as the second step of toolkit and * application processing of the frame. Any work to update * sizes and positions of application elements should be - * performed. GTK normally handles this internally. + * performed. GTK+ normally handles this internally. */ signals[LAYOUT] = g_signal_new (g_intern_static_string ("layout"), @@ -192,8 +192,8 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass) * This signal is emitted as the third step of toolkit and * application processing of the frame. The frame is * repainted. GDK normally handles this internally and - * produce expose events, which are turned into GTK - * GtkWidget::draw signals. + * produces expose events, which are turned into GTK+ + * #GtkWidget::draw signals. */ signals[PAINT] = g_signal_new (g_intern_static_string ("paint"), @@ -284,7 +284,7 @@ gdk_frame_clock_get_frame_time (GdkFrameClock *frame_clock) * Asks the frame clock to run a particular phase. The signal * corresponding the requested phase will be emitted the next * time the frame clock processes. Multiple calls to - * gdk_frame_clock_request_phase() will be combined togethe + * gdk_frame_clock_request_phase() will be combined together * and only one frame processed. If you are displaying animated * content and want to continually request the * %GDK_FRAME_CLOCK_PHASE_UPDATE phase for a period of time, diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 32688cdef6..ea5fdb4bbb 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -58,7 +58,7 @@ typedef struct _GdkFrameClockClass GdkFrameClockClass; * @GDK_FRAME_CLOCK_PHASE_AFTER_PAINT: corresponds to GdkFrameClock::after-paint. Should not be handled by applications. * * #GdkFrameClockPhase is used to represent the different paint clock - * phases that can be requested. The element of the enumeration + * phases that can be requested. The elements of the enumeration * correspond to the signals of #GdkPaintClock. * * Since: 3.8 diff --git a/gdk/gdkframetimings.c b/gdk/gdkframetimings.c index 5afdfaefc2..65a32466bc 100644 --- a/gdk/gdkframetimings.c +++ b/gdk/gdkframetimings.c @@ -20,7 +20,7 @@ #include "gdkframeclockprivate.h" /** - * SECTION:frametimings + * SECTION:gdkframetimings * @Short_description: Object holding timing information for a single frame * @Title: Frame timings * From 82928c2a2a10a84613e0ede42eaa327f89a775aa Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 25 Feb 2013 10:42:42 +0100 Subject: [PATCH 188/208] Pedantic fixes Remove a C99 comment, and line up comment formatting. --- gdk/gdkframeclockidle.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 59a18de064..2d4947c4df 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -35,7 +35,7 @@ #include #endif -#define FRAME_INTERVAL 16667 // microseconds +#define FRAME_INTERVAL 16667 /* microseconds */ struct _GdkFrameClockIdlePrivate { @@ -365,7 +365,8 @@ gdk_frame_clock_paint_idle (void *data) /* We always emit ::before-paint and ::after-paint if * any of the intermediate phases are requested and * they don't get repeated if you freeze/thaw while - * in them. */ + * in them. + */ priv->requested &= ~GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT; g_signal_emit_by_name (G_OBJECT (clock), "before-paint"); priv->phase = GDK_FRAME_CLOCK_PHASE_UPDATE; @@ -547,7 +548,8 @@ gdk_frame_clock_idle_thaw (GdkFrameClock *clock) maybe_start_idle (clock_idle); /* If nothing is requested so we didn't start an idle, we need * to skip to the end of the state chain, since the idle won't - * run and do it for us. */ + * run and do it for us. + */ if (priv->paint_idle_id == 0) priv->phase = GDK_FRAME_CLOCK_PHASE_NONE; From 9294585cd621fe0f4df6795dcef5984fb648a433 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 25 Feb 2013 10:44:29 +0100 Subject: [PATCH 189/208] Add index for new api additions The index for 3.8 api additions was missing up to now. --- docs/reference/gdk/gdk-docs.sgml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/reference/gdk/gdk-docs.sgml b/docs/reference/gdk/gdk-docs.sgml index d55d09511a..7d012c90b2 100644 --- a/docs/reference/gdk/gdk-docs.sgml +++ b/docs/reference/gdk/gdk-docs.sgml @@ -71,6 +71,10 @@ Index of new symbols in 3.6 + + Index of new symbols in 3.8 + + From 282e7c390e4e8ec48ccf380916f3d15a9c2674de Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 25 Feb 2013 10:49:24 +0100 Subject: [PATCH 190/208] Add another forgotten symbol --- docs/reference/gdk/gdk3-sections.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/reference/gdk/gdk3-sections.txt b/docs/reference/gdk/gdk3-sections.txt index f90c0c08b3..3b052218c9 100644 --- a/docs/reference/gdk/gdk3-sections.txt +++ b/docs/reference/gdk/gdk3-sections.txt @@ -989,6 +989,7 @@ gdk_x11_window_set_hide_titlebar_when_maximized gdk_x11_window_set_theme_variant gdk_x11_window_set_user_time gdk_x11_window_move_to_current_desktop +gdk_x11_window_set_utf8_property gdk_x11_get_default_root_xwindow gdk_x11_get_default_screen gdk_x11_get_default_xdisplay From 6fd897bb100995333ca2ec73667a8d9d21c83862 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 25 Feb 2013 10:50:28 +0100 Subject: [PATCH 191/208] Add available marker to gdk_x11_window_set_utf8_property --- gdk/x11/gdkx11window.h | 1 + 1 file changed, 1 insertion(+) diff --git a/gdk/x11/gdkx11window.h b/gdk/x11/gdkx11window.h index 47bd5c5e6c..88cc40fa80 100644 --- a/gdk/x11/gdkx11window.h +++ b/gdk/x11/gdkx11window.h @@ -55,6 +55,7 @@ GType gdk_x11_window_get_type (void); Window gdk_x11_window_get_xid (GdkWindow *window); void gdk_x11_window_set_user_time (GdkWindow *window, guint32 timestamp); +GDK_AVAILABLE_IN_3_4 void gdk_x11_window_set_utf8_property (GdkWindow *window, const gchar *name, const gchar *value); From 4fa8029906e6d6eaef23f23b191cead160688a67 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 25 Feb 2013 10:57:34 +0100 Subject: [PATCH 192/208] Fix a few more doc issues --- gdk/gdkframeclock.c | 1 + gdk/gdkframetimings.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index fb3e530d59..29dd5a281b 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -280,6 +280,7 @@ gdk_frame_clock_get_frame_time (GdkFrameClock *frame_clock) /** * gdk_frame_clock_request_phase: * @frame_clock: a #GdkFrameClock + * @phase: the phase that is requested * * Asks the frame clock to run a particular phase. The signal * corresponding the requested phase will be emitted the next diff --git a/gdk/gdkframetimings.c b/gdk/gdkframetimings.c index 65a32466bc..ca79914a21 100644 --- a/gdk/gdkframetimings.c +++ b/gdk/gdkframetimings.c @@ -106,7 +106,7 @@ gdk_frame_timings_get_frame_counter (GdkFrameTimings *timings) } /** - * gdk_frame_timings_complete: + * gdk_frame_timings_get_complete: * @timings: a #GdkFrameTimings * * The timing information in a #GdkFrameTimings is filled in From b2340254109d8599244c875fe7bc5e234f64da08 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 25 Feb 2013 11:30:00 +0100 Subject: [PATCH 193/208] Some more documentation fixes Make frame-clock-related symbols show up in the gtk docs. --- docs/reference/gtk/gtk3-sections.txt | 8 ++++++-- gtk/gtkwidget.c | 9 +++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt index 6062a45419..74ff7900cf 100644 --- a/docs/reference/gtk/gtk3-sections.txt +++ b/docs/reference/gtk/gtk3-sections.txt @@ -5151,6 +5151,10 @@ gtk_widget_draw gtk_widget_queue_draw gtk_widget_queue_resize gtk_widget_queue_resize_no_redraw +gtk_widget_get_frame_clock +GtkTickCallback +gtk_widget_add_tick_callback +gtk_widget_remove_tick_callback gtk_widget_size_request gtk_widget_get_child_requisition gtk_widget_size_allocate @@ -5809,6 +5813,7 @@ gtk_style_context_get_parent gtk_style_context_get_path gtk_style_context_get_property gtk_style_context_get_screen +gtk_style_context_get_frame_clock gtk_style_context_get_state gtk_style_context_get_style gtk_style_context_get_style_property @@ -5850,6 +5855,7 @@ gtk_style_context_remove_region gtk_style_context_has_region gtk_style_context_list_regions gtk_style_context_set_screen +gtk_style_context_set_frame_clock gtk_style_context_set_state @@ -6493,8 +6499,6 @@ gtk_icon_info_load_symbolic gtk_icon_info_load_symbolic_async gtk_icon_info_load_symbolic_finish gtk_icon_info_load_symbolic_for_style -gtk_icon_info_load_symbolic_for_style_async -gtk_icon_info_load_symbolic_for_style_finish gtk_icon_info_load_symbolic_for_context gtk_icon_info_load_symbolic_for_context_async gtk_icon_info_load_symbolic_for_context_finish diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 6cbe0ffb62..2ba9281b8f 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4634,11 +4634,11 @@ static guint tick_callback_id; * gdk_frame_clock_get_frame_time() should generally be used for timing * continuous animations and * gdk_frame_timings_get_predicted_presentation_time() if you are - * trying to display isolated frames particular times. + * trying to display isolated frames at particular times. * * This is a more convenient alternative to connecting directly to the - * ::update signal of GdkFrameClock, since you don't have to worry about - * when a #GdkFrameClock is assigned to a widget. + * #GdkFrameClock::update signal of #GdkFrameClock, since you don't + * have to worry about when a #GdkFrameClock is assigned to a widget. * * Returns: an id for the connection of this callback. Remove the callback * by passing it to gtk_widget_remove_tick_callback() @@ -5056,8 +5056,9 @@ gtk_widget_queue_resize_no_redraw (GtkWidget *widget) * * Unrealized widgets do not have a frame clock. * - * Since: 3.0 * Return value: (transfer none): a #GdkFrameClock (or #NULL if widget is unrealized) + * + * Since: 3.0 */ GdkFrameClock* gtk_widget_get_frame_clock (GtkWidget *widget) From b1320b52c00a9487b49889ae67e00ecd029b4413 Mon Sep 17 00:00:00 2001 From: Dimitris Spingos Date: Mon, 25 Feb 2013 15:54:17 +0200 Subject: [PATCH 194/208] Updated Greek translation --- po/el.po | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/po/el.po b/po/el.po index 68b5a030d8..698d38d201 100644 --- a/po/el.po +++ b/po/el.po @@ -19,7 +19,7 @@ msgstr "" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%" "2b&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-01-19 19:42+0000\n" -"PO-Revision-Date: 2013-02-25 11:05+0300\n" +"PO-Revision-Date: 2013-02-25 15:52+0300\n" "Last-Translator: Dimitris Spingos (Δημήτρης Σπίγγος) \n" "Language-Team: team@gnome.gr\n" "Language: el\n" @@ -949,7 +949,7 @@ msgstr "calendar:MY" #. #: ../gtk/gtkcalendar.c:910 msgid "calendar:week_start:0" -msgstr "calendar:week_start:0" +msgstr "ημερολόγιο:αρχή_εβδομάδας:0" #. Translators: This is a text measurement template. #. * Translate it to the widest year text @@ -1695,8 +1695,8 @@ msgstr "Υπάρχει ήδη αρχείο με το όνομα \"%s\". Θέλε msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "" -"Το αρχείο υπάρχει ήδη στο \"%s\". Η αντικατάσταση του θα αντικαταστήσει και " -"τα περιεχόμενα του." +"Το αρχείο υπάρχει ήδη στο \"%s\". Η αντικατάσταση του θα αντικαταστήσει και τα " +"περιεχόμενα του." #: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" @@ -1800,7 +1800,7 @@ msgstr "Αντιγραφή διεύθυνσης _συνδέσμου" #: ../gtk/gtk-launch.c:71 #| msgid "APPLICATION [URI...] - launch an APPLICATION with URI." msgid "APPLICATION [URI…] — launch an APPLICATION with URI." -msgstr "ΕΦΑΡΜΟΓΗ [URI…] - εκτελέστε μια ΕΦΑΡΜΟΓΗ με URI." +msgstr "ΕΦΑΡΜΟΓΗ [URI...] - εκτελέστε μια ΕΦΑΡΜΟΓΗ με URI." #. Translators: this message will appear after the usage string #. and before the list of options. @@ -1968,7 +1968,7 @@ msgstr "Σ_υνθηματικό" #: ../gtk/gtkmountoperation.c:671 msgid "Forget password _immediately" -msgstr "Λησμόνηση του συνθηματικού _αμέσως" +msgstr "Λησμόνηση του κωδικού _αμέσως" #: ../gtk/gtkmountoperation.c:681 msgid "Remember password until you _logout" @@ -3356,12 +3356,12 @@ msgstr "ZWNJ _Μη συνδετικό μηδενικού πλάτους" #: ../gtk/gtkuimanager.c:1781 #, c-format msgid "Unexpected start tag '%s' on line %d char %d" -msgstr "Αναπάντεχη ετικέτα εκκίνησης '%s' στη γραμμή %d χαρακτήρας %d" +msgstr "Αναπάντεχη ετικέτα εκκίνησης '%s' στη γραμμή %d χαρακτήρες %d" #: ../gtk/gtkuimanager.c:1871 #, c-format msgid "Unexpected character data on line %d char %d" -msgstr "Αναπάντεχα δεδομένα χαρακτήρων στη γραμμή %d χαρακτήρας %d" +msgstr "Αναπάντεχα δεδομένα χαρακτήρων στη γραμμή %d χαρακτήρες %d" #: ../gtk/gtkuimanager.c:2694 msgid "Empty" @@ -4361,7 +4361,7 @@ msgstr "Inuktitut (μεταγραμμένα)" #. ID #: ../modules/input/imipa.c:143 msgid "IPA" -msgstr "IPA - Διεθνές φωνητικό αλφάβητο" +msgstr "IPA" #. ID #: ../modules/input/immultipress.c:29 From 4bd710235860659bfd3896d8e2c04bc5f7149a73 Mon Sep 17 00:00:00 2001 From: Daniel Mustieles Date: Mon, 25 Feb 2013 18:00:07 +0100 Subject: [PATCH 195/208] Updated Spanish translation --- po/es.po | 384 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 254 insertions(+), 130 deletions(-) diff --git a/po/es.po b/po/es.po index 485e9712ed..2bdbf8fed9 100644 --- a/po/es.po +++ b/po/es.po @@ -15,61 +15,60 @@ msgid "" msgstr "" "Project-Id-Version: gtk+.master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%" -"2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2013-01-19 19:42+0000\n" -"PO-Revision-Date: 2013-01-24 16:30+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-25 17:55+0100\n" +"PO-Revision-Date: 2013-02-25 17:59+0100\n" "Last-Translator: Daniel Mustieles \n" "Language-Team: Español \n" -"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: \n" "X-Generator: Gtranslator 2.91.5\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: ../gdk/gdk.c:155 +#: ../gdk/gdk.c:157 #, c-format msgid "Error parsing option --gdk-debug" msgstr "Error al analizar la opción --gdk-debug" -#: ../gdk/gdk.c:175 +#: ../gdk/gdk.c:177 #, c-format msgid "Error parsing option --gdk-no-debug" msgstr "Error al analizar la opción --gdk-no-debug" #. Description of --class=CLASS in --help output -#: ../gdk/gdk.c:203 +#: ../gdk/gdk.c:205 msgid "Program class as used by the window manager" msgstr "Clase del programa tal como la usa el gestor de ventanas" #. Placeholder in --class=CLASS in --help output -#: ../gdk/gdk.c:204 +#: ../gdk/gdk.c:206 msgid "CLASS" msgstr "CLASE" #. Description of --name=NAME in --help output -#: ../gdk/gdk.c:206 +#: ../gdk/gdk.c:208 msgid "Program name as used by the window manager" msgstr "Nombre del programa tal como lo usa el gestor de ventanas" #. Placeholder in --name=NAME in --help output -#: ../gdk/gdk.c:207 +#: ../gdk/gdk.c:209 msgid "NAME" msgstr "NOMBRE" #. Description of --display=DISPLAY in --help output -#: ../gdk/gdk.c:209 +#: ../gdk/gdk.c:211 msgid "X display to use" msgstr "Visor [display] X que usar" #. Placeholder in --display=DISPLAY in --help output -#: ../gdk/gdk.c:210 +#: ../gdk/gdk.c:212 msgid "DISPLAY" msgstr "VISOR" #. Description of --gdk-debug=FLAGS in --help output -#: ../gdk/gdk.c:213 +#: ../gdk/gdk.c:215 msgid "GDK debugging flags to set" msgstr "Opciones de depuración GTK+ que establecer" @@ -77,12 +76,12 @@ msgstr "Opciones de depuración GTK+ que establecer" #. Placeholder in --gdk-no-debug=FLAGS in --help output #. Placeholder in --gtk-debug=FLAGS in --help output #. Placeholder in --gtk-no-debug=FLAGS in --help output -#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:453 ../gtk/gtkmain.c:456 +#: ../gdk/gdk.c:216 ../gdk/gdk.c:219 ../gtk/gtkmain.c:453 ../gtk/gtkmain.c:456 msgid "FLAGS" msgstr "OPCIONES" #. Description of --gdk-no-debug=FLAGS in --help output -#: ../gdk/gdk.c:216 +#: ../gdk/gdk.c:218 msgid "GDK debugging flags to unset" msgstr "Opciones de depuración GTK+ que quitar" @@ -462,6 +461,132 @@ msgid_plural "Opening %d Items" msgstr[0] "Abriendo %d elemento" msgstr[1] "Abriendo %d elementos" +#: ../gtk/a11y/gtkbooleancellaccessible.c:43 +msgctxt "Action description" +msgid "Toggles the cell" +msgstr "Conmuta la celda" + +#: ../gtk/a11y/gtkbooleancellaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:101 +msgctxt "Action name" +msgid "Toggle" +msgstr "Conmutar" + +#: ../gtk/a11y/gtkbuttonaccessible.c:341 +#: ../gtk/a11y/gtkmenuitemaccessible.c:436 +msgctxt "Action name" +msgid "Click" +msgstr "Pulsar" + +#: ../gtk/a11y/gtkbuttonaccessible.c:350 +msgctxt "Action description" +msgid "Clicks the button" +msgstr "Pulsa el botón" + +#: ../gtk/a11y/gtkcellaccessible.c:258 +msgctxt "Action name" +msgid "Expand or contract" +msgstr "Expandir o contraer" + +#: ../gtk/a11y/gtkcellaccessible.c:260 +msgctxt "Action name" +msgid "Edit" +msgstr "Editar" + +#: ../gtk/a11y/gtkcellaccessible.c:262 +#: ../gtk/a11y/gtkcolorswatchaccessible.c:72 +#: ../gtk/a11y/gtkentryaccessible.c:1541 +#: ../gtk/a11y/gtkexpanderaccessible.c:281 +msgctxt "Action name" +msgid "Activate" +msgstr "Activar" + +#: ../gtk/a11y/gtkcellaccessible.c:275 +msgctxt "Action description" +msgid "Expands or contracts the row in the tree view containing this cell" +msgstr "Expande o contrae la celda en la vista de árbol que contiene la celda" + +#: ../gtk/a11y/gtkcellaccessible.c:277 +msgctxt "Action description" +msgid "Creates a widget in which the contents of the cell can be edited" +msgstr "Crea un widget en el que los contenidos de la celda se pueden editar" + +#: ../gtk/a11y/gtkcellaccessible.c:279 +msgctxt "Action description" +msgid "Activates the cell" +msgstr "Activa la celda" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:71 +msgctxt "Action name" +msgid "Select" +msgstr "Seleccionar" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:73 +msgctxt "Action name" +msgid "Customize" +msgstr "Personalizar" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:84 +msgctxt "Action description" +msgid "Selects the color" +msgstr "Selecciona el color" + +#: ../gtk/a11y/gtkcolorswatchaccessible.c:85 +msgctxt "Action description" +msgid "Activates the color" +msgstr "Activa el color" + +# C en conflicto con Cancelar +#: ../gtk/a11y/gtkcolorswatchaccessible.c:86 +msgctxt "Action description" +msgid "Customizes the color" +msgstr "Personaliza el color" + +#: ../gtk/a11y/gtkcomboboxaccessible.c:313 +msgctxt "Action name" +msgid "Press" +msgstr "Pulsar" + +#: ../gtk/a11y/gtkcomboboxaccessible.c:322 +msgctxt "Action description" +msgid "Presses the combobox" +msgstr "Pulsa la caja combinada" + +#: ../gtk/a11y/gtkentryaccessible.c:1550 +msgctxt "Action description" +msgid "Activates the entry" +msgstr "Activa la entrada" + +#: ../gtk/a11y/gtkexpanderaccessible.c:290 +msgctxt "Action description" +msgid "Activates the expander" +msgstr "Activa el expansor" + +#: ../gtk/a11y/gtkmenuitemaccessible.c:445 +msgctxt "Action description" +msgid "Clicks the menuitem" +msgstr "Pulsa el elemento del menú" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:140 +msgctxt "Action description" +msgid "Pops up the slider" +msgstr "Hace aparecer el deslizador" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:142 +msgctxt "Action description" +msgid "Dismisses the slider" +msgstr "Descarta el deslizador" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:170 +msgctxt "Action name" +msgid "Popup" +msgstr "Aparecer" + +#: ../gtk/a11y/gtkscalebuttonaccessible.c:172 +msgctxt "Action name" +msgid "Dismiss" +msgstr "Descartar" + #: ../gtk/a11y/gtkspinneraccessible.c:39 msgctxt "throbbing progress animation widget" msgid "Spinner" @@ -471,15 +596,20 @@ msgstr "Marcador incrementable" msgid "Provides visual indication of progress" msgstr "Proporciona una indicación visual del progreso" -#: ../gtk/a11y/gtkswitchaccessible.c:62 +#: ../gtk/a11y/gtkswitchaccessible.c:63 msgctxt "light switch widget" msgid "Switch" msgstr "Interruptor" -#: ../gtk/a11y/gtkswitchaccessible.c:63 +#: ../gtk/a11y/gtkswitchaccessible.c:64 msgid "Switches between on and off states" msgstr "Cambia entre los estados encendido y apagado" +#: ../gtk/a11y/gtkswitchaccessible.c:110 +msgctxt "Action description" +msgid "Toggles the switch" +msgstr "Cambia el interruptor" + #: ../gtk/deprecated/gtkcolorsel.c:425 msgid "" "Select the color you want from the outer ring. Select the darkness or " @@ -777,12 +907,12 @@ msgctxt "keyboard label" msgid "Meta" msgstr "Meta" -#: ../gtk/gtkaccellabel.c:848 +#: ../gtk/gtkaccellabel.c:849 msgctxt "keyboard label" msgid "Space" msgstr "Espacio" -#: ../gtk/gtkaccellabel.c:851 +#: ../gtk/gtkaccellabel.c:852 msgctxt "keyboard label" msgid "Backslash" msgstr "Contrabarra" @@ -866,7 +996,7 @@ msgstr "Aplicaciones relacionadas" msgid "Other Applications" msgstr "Otras aplicaciones" -#: ../gtk/gtkapplication.c:1557 +#: ../gtk/gtkapplication.c:1563 #, c-format msgid "" "%s cannot quit at this time:\n" @@ -1253,7 +1383,7 @@ msgstr "Personalizada" msgid "Create custom color" msgstr "Crear color personalizado" -#: ../gtk/gtkcolorchooserwidget.c:543 +#: ../gtk/gtkcolorchooserwidget.c:542 #, c-format msgid "Custom color %d: %s" msgstr "Color personalizado %d: %s" @@ -1374,15 +1504,15 @@ msgstr "_Derecho:" msgid "Paper Margins" msgstr "Márgenes del papel" -#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8591 +#: ../gtk/gtkentry.c:9132 ../gtk/gtktextview.c:8598 msgid "Input _Methods" msgstr "_Métodos de entrada" -#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8605 +#: ../gtk/gtkentry.c:9146 ../gtk/gtktextview.c:8612 msgid "_Insert Unicode Control Character" msgstr "_Insertar un carácter de control Unicode" -#: ../gtk/gtkentry.c:10094 +#: ../gtk/gtkentry.c:10099 msgid "Caps Lock is on" msgstr "Bloq Mayús está activado" @@ -1431,7 +1561,7 @@ msgstr "Bloq Mayús está activado" msgid "Select a File" msgstr "Seleccionar un archivo" -#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1820 +#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1825 msgid "Desktop" msgstr "Escritorio" @@ -1440,7 +1570,7 @@ msgstr "Escritorio" msgid "(None)" msgstr "(Ninguno)" -#: ../gtk/gtkfilechooserbutton.c:2046 +#: ../gtk/gtkfilechooserbutton.c:2196 msgid "Other…" msgstr "Otro…" @@ -1448,23 +1578,23 @@ msgstr "Otro…" msgid "Type name of new folder" msgstr "Teclee el nombre de la carpeta nueva" -#: ../gtk/gtkfilechooserdefault.c:971 +#: ../gtk/gtkfilechooserdefault.c:954 msgid "Could not retrieve information about the file" msgstr "No se pudo obtener la información acerca del archivo" -#: ../gtk/gtkfilechooserdefault.c:982 +#: ../gtk/gtkfilechooserdefault.c:965 msgid "Could not add a bookmark" msgstr "No se pudo añadir un marcador" -#: ../gtk/gtkfilechooserdefault.c:993 +#: ../gtk/gtkfilechooserdefault.c:976 msgid "Could not remove bookmark" msgstr "No se pudo quitar el marcador" -#: ../gtk/gtkfilechooserdefault.c:1004 +#: ../gtk/gtkfilechooserdefault.c:987 msgid "The folder could not be created" msgstr "No se pudo crear la carpeta" -#: ../gtk/gtkfilechooserdefault.c:1017 +#: ../gtk/gtkfilechooserdefault.c:1000 msgid "" "The folder could not be created, as a file with the same name already " "exists. Try using a different name for the folder, or rename the file first." @@ -1472,16 +1602,16 @@ msgstr "" "No se pudo crear la carpeta, debido a que ya existe un archivo con el mismo " "nombre. Intente usar un nombre distinto o renombre el archivo primero." -#: ../gtk/gtkfilechooserdefault.c:1031 +#: ../gtk/gtkfilechooserdefault.c:1014 msgid "You need to choose a valid filename." msgstr "Debe elegir un nombre de archivo válido." -#: ../gtk/gtkfilechooserdefault.c:1034 +#: ../gtk/gtkfilechooserdefault.c:1017 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "No se puede crear un archivo bajo %s ya que no es una carpeta" -#: ../gtk/gtkfilechooserdefault.c:1046 +#: ../gtk/gtkfilechooserdefault.c:1029 msgid "" "You may only select folders. The item that you selected is not a folder; " "try using a different item." @@ -1489,11 +1619,11 @@ msgstr "" "Sólo puede seleccionar carpetas. El elemento que ha seleccionado no es una " "carpeta; intente seleccionar un elemento diferente." -#: ../gtk/gtkfilechooserdefault.c:1056 +#: ../gtk/gtkfilechooserdefault.c:1039 msgid "Invalid file name" msgstr "Nombre de archivo no válido" -#: ../gtk/gtkfilechooserdefault.c:1066 +#: ../gtk/gtkfilechooserdefault.c:1049 msgid "The folder contents could not be displayed" msgstr "No se pudo mostrar el contenido de la carpeta" @@ -1501,211 +1631,211 @@ msgstr "No se pudo mostrar el contenido de la carpeta" #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: ../gtk/gtkfilechooserdefault.c:1592 +#: ../gtk/gtkfilechooserdefault.c:1575 #, c-format msgid "%1$s on %2$s" msgstr "%1$s en %2$s" -#: ../gtk/gtkfilechooserdefault.c:1741 +#: ../gtk/gtkfilechooserdefault.c:1724 msgid "Search" msgstr "Buscar" -#: ../gtk/gtkfilechooserdefault.c:1765 ../gtk/gtkfilechooserdefault.c:4991 +#: ../gtk/gtkfilechooserdefault.c:1768 ../gtk/gtkfilechooserdefault.c:4996 msgid "Recently Used" msgstr "Usados recientemente" -#: ../gtk/gtkfilechooserdefault.c:2364 +#: ../gtk/gtkfilechooserdefault.c:2369 msgid "Select which types of files are shown" msgstr "Seleccionar qué tipos de archivos se muestran" -#: ../gtk/gtkfilechooserdefault.c:2723 +#: ../gtk/gtkfilechooserdefault.c:2728 #, c-format msgid "Add the folder '%s' to the bookmarks" msgstr "Añadir la carpeta «%s» a los marcadores" -#: ../gtk/gtkfilechooserdefault.c:2767 +#: ../gtk/gtkfilechooserdefault.c:2772 #, c-format msgid "Add the current folder to the bookmarks" msgstr "Añadir la carpeta actual a los marcadores" -#: ../gtk/gtkfilechooserdefault.c:2769 +#: ../gtk/gtkfilechooserdefault.c:2774 #, c-format msgid "Add the selected folders to the bookmarks" msgstr "Añadir las carpetas seleccionadas a los marcadores" -#: ../gtk/gtkfilechooserdefault.c:2807 +#: ../gtk/gtkfilechooserdefault.c:2812 #, c-format msgid "Remove the bookmark '%s'" msgstr "Quitar el marcador «%s»" -#: ../gtk/gtkfilechooserdefault.c:2809 +#: ../gtk/gtkfilechooserdefault.c:2814 #, c-format msgid "Bookmark '%s' cannot be removed" msgstr "No se puede quitar el marcador «%s»" -#: ../gtk/gtkfilechooserdefault.c:2816 ../gtk/gtkfilechooserdefault.c:3702 +#: ../gtk/gtkfilechooserdefault.c:2821 ../gtk/gtkfilechooserdefault.c:3707 msgid "Remove the selected bookmark" msgstr "Quitar el marcador seleccionado" -#: ../gtk/gtkfilechooserdefault.c:3380 +#: ../gtk/gtkfilechooserdefault.c:3385 msgid "Remove" msgstr "Quitar" -#: ../gtk/gtkfilechooserdefault.c:3389 +#: ../gtk/gtkfilechooserdefault.c:3394 msgid "Rename…" msgstr "Renombrar…" #. Accessible object name for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3553 +#: ../gtk/gtkfilechooserdefault.c:3558 msgid "Places" msgstr "Lugares" #. Column header for the file chooser's shortcuts pane -#: ../gtk/gtkfilechooserdefault.c:3610 +#: ../gtk/gtkfilechooserdefault.c:3615 msgid "_Places" msgstr "_Lugares" -#: ../gtk/gtkfilechooserdefault.c:3690 +#: ../gtk/gtkfilechooserdefault.c:3695 msgid "Add the selected folder to the Bookmarks" msgstr "Añade la carpeta seleccionada a los marcadores" -#: ../gtk/gtkfilechooserdefault.c:3951 +#: ../gtk/gtkfilechooserdefault.c:3956 msgid "Could not select file" msgstr "No se pudo seleccionar el archivo" -#: ../gtk/gtkfilechooserdefault.c:4176 +#: ../gtk/gtkfilechooserdefault.c:4181 msgid "_Visit this file" msgstr "_Visitar este archivo" -#: ../gtk/gtkfilechooserdefault.c:4179 +#: ../gtk/gtkfilechooserdefault.c:4184 msgid "_Copy file’s location" msgstr "_Copiar la ubicación del archivo" -#: ../gtk/gtkfilechooserdefault.c:4182 +#: ../gtk/gtkfilechooserdefault.c:4187 msgid "_Add to Bookmarks" msgstr "_Añadir a los marcadores" -#: ../gtk/gtkfilechooserdefault.c:4189 +#: ../gtk/gtkfilechooserdefault.c:4194 msgid "Show _Hidden Files" msgstr "Mostrar archivos _ocultos" -#: ../gtk/gtkfilechooserdefault.c:4192 +#: ../gtk/gtkfilechooserdefault.c:4197 msgid "Show _Size Column" msgstr "Mostrar columna de _tamaño" -#: ../gtk/gtkfilechooserdefault.c:4417 +#: ../gtk/gtkfilechooserdefault.c:4422 msgid "Files" msgstr "Archivos" -#: ../gtk/gtkfilechooserdefault.c:4468 +#: ../gtk/gtkfilechooserdefault.c:4473 msgid "Name" msgstr "Nombre" -#: ../gtk/gtkfilechooserdefault.c:4491 +#: ../gtk/gtkfilechooserdefault.c:4496 msgid "Size" msgstr "Tamaño" -#: ../gtk/gtkfilechooserdefault.c:4505 +#: ../gtk/gtkfilechooserdefault.c:4510 msgid "Modified" msgstr "Modificado" #. Label -#: ../gtk/gtkfilechooserdefault.c:4598 +#: ../gtk/gtkfilechooserdefault.c:4603 msgid "_Name:" msgstr "_Nombre:" -#: ../gtk/gtkfilechooserdefault.c:4829 +#: ../gtk/gtkfilechooserdefault.c:4834 msgid "Type a file name" msgstr "Teclee un nombre de archivo" -#: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887 +#: ../gtk/gtkfilechooserdefault.c:4881 ../gtk/gtkfilechooserdefault.c:4892 msgid "Please select a folder below" msgstr "Seleccionar una carpeta a continuación" -#: ../gtk/gtkfilechooserdefault.c:4882 +#: ../gtk/gtkfilechooserdefault.c:4887 msgid "Please type a file name" msgstr "Escriba un nombre de archivo" # C en conflicto con Cancelar #. Create Folder -#: ../gtk/gtkfilechooserdefault.c:4953 +#: ../gtk/gtkfilechooserdefault.c:4958 msgid "Create Fo_lder" msgstr "Crear car_peta" -#: ../gtk/gtkfilechooserdefault.c:5001 +#: ../gtk/gtkfilechooserdefault.c:5006 msgid "Search:" msgstr "Buscar:" -#: ../gtk/gtkfilechooserdefault.c:5052 +#: ../gtk/gtkfilechooserdefault.c:5057 msgid "_Location:" msgstr "_Lugar:" # El acelerador c entra en conflicto con cancelar -#: ../gtk/gtkfilechooserdefault.c:5502 +#: ../gtk/gtkfilechooserdefault.c:5507 msgid "Save in _folder:" msgstr "Guardar _en la carpeta:" -#: ../gtk/gtkfilechooserdefault.c:5504 +#: ../gtk/gtkfilechooserdefault.c:5509 msgid "Create in _folder:" msgstr "Crear en la _carpeta:" -#: ../gtk/gtkfilechooserdefault.c:6597 +#: ../gtk/gtkfilechooserdefault.c:6530 #, c-format msgid "Could not read the contents of %s" msgstr "No se pudo leer el contenido de %s" -#: ../gtk/gtkfilechooserdefault.c:6601 +#: ../gtk/gtkfilechooserdefault.c:6534 msgid "Could not read the contents of the folder" msgstr "No se pudo leer el contenido del la carpeta" -#: ../gtk/gtkfilechooserdefault.c:6694 ../gtk/gtkfilechooserdefault.c:6762 -#: ../gtk/gtkfilechooserdefault.c:6942 +#: ../gtk/gtkfilechooserdefault.c:6627 ../gtk/gtkfilechooserdefault.c:6695 +#: ../gtk/gtkfilechooserdefault.c:6875 msgid "Unknown" msgstr "Desconocido" -#: ../gtk/gtkfilechooserdefault.c:6709 +#: ../gtk/gtkfilechooserdefault.c:6642 msgid "%H:%M" msgstr "%H:%M" -#: ../gtk/gtkfilechooserdefault.c:6711 +#: ../gtk/gtkfilechooserdefault.c:6644 msgid "Yesterday at %H:%M" msgstr "Ayer a las %H:%M" -#: ../gtk/gtkfilechooserdefault.c:7413 +#: ../gtk/gtkfilechooserdefault.c:7346 msgid "Cannot change to folder because it is not local" msgstr "No se pudo cambiar a la carpeta porque no es local" -#: ../gtk/gtkfilechooserdefault.c:8020 ../gtk/gtkfilechooserdefault.c:8041 +#: ../gtk/gtkfilechooserdefault.c:7943 ../gtk/gtkfilechooserdefault.c:7964 #, c-format msgid "Shortcut %s already exists" msgstr "La combinación %s ya existe" -#: ../gtk/gtkfilechooserdefault.c:8131 +#: ../gtk/gtkfilechooserdefault.c:8054 #, c-format msgid "Shortcut %s does not exist" msgstr "La combinación %s no existe" -#: ../gtk/gtkfilechooserdefault.c:8377 ../gtk/gtkprintunixdialog.c:548 +#: ../gtk/gtkfilechooserdefault.c:8301 ../gtk/gtkprintunixdialog.c:548 #, c-format msgid "A file named \"%s\" already exists. Do you want to replace it?" msgstr "Ya existe un archivo llamado «%s». ¿Quiere reemplazarlo?" -#: ../gtk/gtkfilechooserdefault.c:8380 ../gtk/gtkprintunixdialog.c:552 +#: ../gtk/gtkfilechooserdefault.c:8304 ../gtk/gtkprintunixdialog.c:552 #, c-format msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "" "El archivo ya existe en «%s». Si lo reemplaza sobreescribirá su contenido." -#: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559 +#: ../gtk/gtkfilechooserdefault.c:8309 ../gtk/gtkprintunixdialog.c:559 msgid "_Replace" msgstr "_Reemplazar" -#: ../gtk/gtkfilechooserdefault.c:9192 +#: ../gtk/gtkfilechooserdefault.c:9116 msgid "Could not start the search process" msgstr "No se ha podido iniciar el proceso de búsqueda" -#: ../gtk/gtkfilechooserdefault.c:9193 +#: ../gtk/gtkfilechooserdefault.c:9117 msgid "" "The program was not able to create a connection to the indexer daemon. " "Please make sure it is running." @@ -1713,11 +1843,11 @@ msgstr "" "El programa no fue capaz de crear una conexión con el demonio indexador. Por " "favor asegúrese de que se está ejecutando." -#: ../gtk/gtkfilechooserdefault.c:9207 +#: ../gtk/gtkfilechooserdefault.c:9131 msgid "Could not send the search request" msgstr "No se ha podido enviar la petición de búsqueda" -#: ../gtk/gtkfilechooserdefault.c:9817 +#: ../gtk/gtkfilechooserdefault.c:9741 #, c-format msgid "Could not mount %s" msgstr "No se pudo montar %s" @@ -1757,12 +1887,12 @@ msgstr "Buscar nombre de tipografía" msgid "Font Family" msgstr "Familia tipográfica" -#: ../gtk/gtkicontheme.c:1931 +#: ../gtk/gtkicontheme.c:1935 #, c-format msgid "Icon '%s' not present in theme" msgstr "El icono «%s» no está presente en el tema" -#: ../gtk/gtkicontheme.c:3462 +#: ../gtk/gtkicontheme.c:3555 msgid "Failed to load icon" msgstr "No se pudo cargar el icono" @@ -2535,31 +2665,31 @@ msgstr "_Después:" msgid "Job" msgstr "Tarea" -#: ../gtk/gtkprintunixdialog.c:3753 +#: ../gtk/gtkprintunixdialog.c:3751 msgid "Advanced" msgstr "Avanzadas" #. Translators: this will appear as tab label in print dialog. -#: ../gtk/gtkprintunixdialog.c:3791 +#: ../gtk/gtkprintunixdialog.c:3789 msgid "Image Quality" msgstr "Calidad de imagen" #. Translators: this will appear as tab label in print dialog. -#: ../gtk/gtkprintunixdialog.c:3795 +#: ../gtk/gtkprintunixdialog.c:3793 msgid "Color" msgstr "Color" #. Translators: this will appear as tab label in print dialog. #. It's a typographical term, as in "Binding and finishing" -#: ../gtk/gtkprintunixdialog.c:3800 +#: ../gtk/gtkprintunixdialog.c:3798 msgid "Finishing" msgstr "Terminando" -#: ../gtk/gtkprintunixdialog.c:3810 +#: ../gtk/gtkprintunixdialog.c:3808 msgid "Some of the settings in the dialog conflict" msgstr "Algunos de los ajustes del diálogo están en conflicto" -#: ../gtk/gtkprintunixdialog.c:3836 +#: ../gtk/gtkprintunixdialog.c:3834 msgid "Print" msgstr "Imprimir" @@ -2648,15 +2778,15 @@ msgctxt "recent menu label" msgid "%d. %s" msgstr "%d. %s" -#: ../gtk/gtkrecentmanager.c:1010 ../gtk/gtkrecentmanager.c:1023 -#: ../gtk/gtkrecentmanager.c:1160 ../gtk/gtkrecentmanager.c:1170 -#: ../gtk/gtkrecentmanager.c:1222 ../gtk/gtkrecentmanager.c:1231 -#: ../gtk/gtkrecentmanager.c:1246 +#: ../gtk/gtkrecentmanager.c:1035 ../gtk/gtkrecentmanager.c:1048 +#: ../gtk/gtkrecentmanager.c:1185 ../gtk/gtkrecentmanager.c:1195 +#: ../gtk/gtkrecentmanager.c:1247 ../gtk/gtkrecentmanager.c:1256 +#: ../gtk/gtkrecentmanager.c:1271 #, c-format msgid "Unable to find an item with URI '%s'" msgstr "No se ha podido encontrar un elemento con el URI «%s»" -#: ../gtk/gtkrecentmanager.c:2446 +#: ../gtk/gtkrecentmanager.c:2471 #, c-format msgid "No registered application with name '%s' for item with URI '%s' found" msgstr "" @@ -3344,17 +3474,17 @@ msgstr "En_samblador de ancho cero [ZWJ]" msgid "ZWNJ Zero width _non-joiner" msgstr "_No ensamblador de ancho cero [ZWNJ]" -#: ../gtk/gtkuimanager.c:1781 +#: ../gtk/gtkuimanager.c:1780 #, c-format msgid "Unexpected start tag '%s' on line %d char %d" msgstr "Etiqueta de inicio «%s» inesperada en la línea %d, carácter %d" -#: ../gtk/gtkuimanager.c:1871 +#: ../gtk/gtkuimanager.c:1870 #, c-format msgid "Unexpected character data on line %d char %d" msgstr "Dato carácter inesperado en la línea %d, carácter %d" -#: ../gtk/gtkuimanager.c:2694 +#: ../gtk/gtkuimanager.c:2693 msgid "Empty" msgstr "Vacío" @@ -4225,101 +4355,101 @@ msgctxt "paper size" msgid "ROC 8k" msgstr "ROC 8k" -#: ../gtk/updateiconcache.c:1368 +#: ../gtk/updateiconcache.c:1386 #, c-format msgid "Failed to write header\n" msgstr "Falló al escribir la cabecera\n" -#: ../gtk/updateiconcache.c:1374 +#: ../gtk/updateiconcache.c:1392 #, c-format msgid "Failed to write hash table\n" msgstr "Falló al escribir la tabla hash\n" -#: ../gtk/updateiconcache.c:1380 +#: ../gtk/updateiconcache.c:1398 #, c-format msgid "Failed to write folder index\n" msgstr "Falló al escribir el índice de la carpeta\n" -#: ../gtk/updateiconcache.c:1388 +#: ../gtk/updateiconcache.c:1406 #, c-format msgid "Failed to rewrite header\n" msgstr "Falló al reescribir la cabecera\n" -#: ../gtk/updateiconcache.c:1482 +#: ../gtk/updateiconcache.c:1500 #, c-format msgid "Failed to open file %s : %s\n" msgstr "Falló al abrir el archivo «%s»: %s\n" -#: ../gtk/updateiconcache.c:1490 ../gtk/updateiconcache.c:1520 +#: ../gtk/updateiconcache.c:1508 ../gtk/updateiconcache.c:1538 #, c-format msgid "Failed to write cache file: %s\n" msgstr "Falló al escribir el archivo de caché: %s\n" -#: ../gtk/updateiconcache.c:1530 +#: ../gtk/updateiconcache.c:1548 #, c-format msgid "The generated cache was invalid.\n" msgstr "La caché generada no es válida.\n" -#: ../gtk/updateiconcache.c:1544 +#: ../gtk/updateiconcache.c:1562 #, c-format msgid "Could not rename %s to %s: %s, removing %s then.\n" msgstr "No se pudo renombrar %s a %s: %s, eliminando %s entonces.\n" -#: ../gtk/updateiconcache.c:1558 +#: ../gtk/updateiconcache.c:1576 #, c-format msgid "Could not rename %s to %s: %s\n" msgstr "No se pudo renombrar %s a %s: %s\n" -#: ../gtk/updateiconcache.c:1568 +#: ../gtk/updateiconcache.c:1586 #, c-format msgid "Could not rename %s back to %s: %s.\n" msgstr "No se pudo renombrar %s de nuevo a %s: %s.\n" -#: ../gtk/updateiconcache.c:1595 +#: ../gtk/updateiconcache.c:1613 #, c-format msgid "Cache file created successfully.\n" msgstr "Archivo de caché creado con éxito.\n" -#: ../gtk/updateiconcache.c:1634 +#: ../gtk/updateiconcache.c:1652 msgid "Overwrite an existing cache, even if up to date" msgstr "Sobreescribir un caché existente, incluso si está actualizado" -#: ../gtk/updateiconcache.c:1635 +#: ../gtk/updateiconcache.c:1653 msgid "Don't check for the existence of index.theme" msgstr "No comprobar la existencia de index.theme" -#: ../gtk/updateiconcache.c:1636 +#: ../gtk/updateiconcache.c:1654 msgid "Don't include image data in the cache" msgstr "No incluir los datos de la imagen en el caché" -#: ../gtk/updateiconcache.c:1637 +#: ../gtk/updateiconcache.c:1655 msgid "Output a C header file" msgstr "Sacar un archivo de cabecera C" -#: ../gtk/updateiconcache.c:1638 +#: ../gtk/updateiconcache.c:1656 msgid "Turn off verbose output" msgstr "Desactivar la salida prolija" -#: ../gtk/updateiconcache.c:1639 +#: ../gtk/updateiconcache.c:1657 msgid "Validate existing icon cache" msgstr "Validar la caché de iconos existente" -#: ../gtk/updateiconcache.c:1706 +#: ../gtk/updateiconcache.c:1724 #, c-format msgid "File not found: %s\n" msgstr "Archivo no encontrado: %s\n" -#: ../gtk/updateiconcache.c:1712 +#: ../gtk/updateiconcache.c:1730 #, c-format msgid "Not a valid icon cache: %s\n" msgstr "No es una caché de iconos válida: %s\n" -#: ../gtk/updateiconcache.c:1725 +#: ../gtk/updateiconcache.c:1743 #, c-format msgid "No theme index file.\n" msgstr "No existe el archivo índice del tema.\n" -#: ../gtk/updateiconcache.c:1729 +#: ../gtk/updateiconcache.c:1747 #, c-format msgid "" "No theme index file in '%s'.\n" @@ -5761,9 +5891,6 @@ msgstr "Imprimir a la impresora de prueba" #~ msgid "_Y:" #~ msgstr "_Y:" -#~ msgid "_Pressure:" -#~ msgstr "_Presión:" - #~ msgid "X _tilt:" #~ msgstr "_Inclinación X:" @@ -6420,8 +6547,5 @@ msgstr "Imprimir a la impresora de prueba" #~ msgid "Scroll arrow spacing" #~ msgstr "Espaciado de las flechas de desplazamiento" -#~ msgid "Group" -#~ msgstr "Grupo" - #~ msgid "The radio tool button whose group this button belongs to." #~ msgstr "La herramienta de botón de radio a cuyo grupo pertenece este botón." From 16e902d20af429ecc4ce1c9d47b52a593a9f1f75 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 25 Feb 2013 21:41:30 +0100 Subject: [PATCH 196/208] API: Export gtk_cell_renderer_class_set_accessible_type() This function is necessary to implement cell renderer accessibility support. --- docs/reference/gtk/gtk3-sections.txt | 1 + gtk/gtkcellrenderer.c | 10 +++++----- gtk/gtkcellrenderer.h | 2 +- gtk/gtkcellrendererpixbuf.c | 2 +- gtk/gtkcellrenderertext.c | 2 +- gtk/gtkcellrenderertoggle.c | 2 +- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt index 74ff7900cf..5db1c72c3b 100644 --- a/docs/reference/gtk/gtk3-sections.txt +++ b/docs/reference/gtk/gtk3-sections.txt @@ -4742,6 +4742,7 @@ GtkCellRendererState GtkCellRendererMode GtkCellRenderer GtkCellRendererClass +gtk_cell_renderer_class_set_accessible_type gtk_cell_renderer_get_aligned_area gtk_cell_renderer_get_size gtk_cell_renderer_render diff --git a/gtk/gtkcellrenderer.c b/gtk/gtkcellrenderer.c index c941190d0b..78fb31c863 100644 --- a/gtk/gtkcellrenderer.c +++ b/gtk/gtkcellrenderer.c @@ -429,7 +429,7 @@ gtk_cell_renderer_class_init (GtkCellRendererClass *class) g_type_class_add_private (class, sizeof (GtkCellRendererPrivate)); - _gtk_cell_renderer_class_set_accessible_type (class, GTK_TYPE_RENDERER_CELL_ACCESSIBLE); + gtk_cell_renderer_class_set_accessible_type (class, GTK_TYPE_RENDERER_CELL_ACCESSIBLE); } static void @@ -1781,8 +1781,8 @@ gtk_cell_renderer_get_state (GtkCellRenderer *cell, return state; } -/* - * _gtk_cell_renderer_class_set_accessible_type: +/** + * gtk_cell_renderer_class_set_accessible_type: * @renderer_class: class to set the accessible type for * @type: The object type that implements the accessible for @widget_class. * The type must be a subtype of #GtkRendererCellAccessible @@ -1795,8 +1795,8 @@ gtk_cell_renderer_get_state (GtkCellRenderer *cell, * renderers. **/ void -_gtk_cell_renderer_class_set_accessible_type (GtkCellRendererClass *renderer_class, - GType type) +gtk_cell_renderer_class_set_accessible_type (GtkCellRendererClass *renderer_class, + GType type) { GtkCellRendererClassPrivate *priv; diff --git a/gtk/gtkcellrenderer.h b/gtk/gtkcellrenderer.h index 3eee3088ca..8948e64c56 100644 --- a/gtk/gtkcellrenderer.h +++ b/gtk/gtkcellrenderer.h @@ -269,7 +269,7 @@ GtkStateFlags gtk_cell_renderer_get_state (GtkCellRenderer *cell, GtkWidget *widget, GtkCellRendererState cell_state); -void _gtk_cell_renderer_class_set_accessible_type +void gtk_cell_renderer_class_set_accessible_type (GtkCellRendererClass *renderer_class, GType type); GType _gtk_cell_renderer_get_accessible_type diff --git a/gtk/gtkcellrendererpixbuf.c b/gtk/gtkcellrendererpixbuf.c index 2e36915585..90fc9fece0 100644 --- a/gtk/gtkcellrendererpixbuf.c +++ b/gtk/gtkcellrendererpixbuf.c @@ -251,7 +251,7 @@ gtk_cell_renderer_pixbuf_class_init (GtkCellRendererPixbufClass *class) g_type_class_add_private (object_class, sizeof (GtkCellRendererPixbufPrivate)); - _gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_IMAGE_CELL_ACCESSIBLE); + gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_IMAGE_CELL_ACCESSIBLE); } static void diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c index 31b0413b1a..3399bb2be0 100644 --- a/gtk/gtkcellrenderertext.c +++ b/gtk/gtkcellrenderertext.c @@ -731,7 +731,7 @@ gtk_cell_renderer_text_class_init (GtkCellRendererTextClass *class) g_type_class_add_private (object_class, sizeof (GtkCellRendererTextPrivate)); - _gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_TEXT_CELL_ACCESSIBLE); + gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_TEXT_CELL_ACCESSIBLE); } static void diff --git a/gtk/gtkcellrenderertoggle.c b/gtk/gtkcellrenderertoggle.c index c83f6003b7..f94ff2a71a 100644 --- a/gtk/gtkcellrenderertoggle.c +++ b/gtk/gtkcellrenderertoggle.c @@ -196,7 +196,7 @@ gtk_cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class) g_type_class_add_private (object_class, sizeof (GtkCellRendererTogglePrivate)); - _gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_BOOLEAN_CELL_ACCESSIBLE); + gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_BOOLEAN_CELL_ACCESSIBLE); } static void From 1819cf02a9c2eba9901bf8ad8e4f1eb53f0f0435 Mon Sep 17 00:00:00 2001 From: A S Alam Date: Tue, 26 Feb 2013 06:52:38 +0530 Subject: [PATCH 197/208] Punjabi: Translation updated (aalam) --- po-properties/pa.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po-properties/pa.po b/po-properties/pa.po index b5a13d3de5..b992731c0b 100644 --- a/po-properties/pa.po +++ b/po-properties/pa.po @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" "%2b&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2012-12-15 20:08+0000\n" -"PO-Revision-Date: 2013-02-22 08:45+0000\n" +"PO-Revision-Date: 2013-02-26 06:51+0530\n" "Last-Translator: A S Alam \n" "Language-Team: Punjabi/Panjabi \n" "Language: pa\n" @@ -912,7 +912,7 @@ msgstr "ਵਿਡਗਿਟ ਦੇ ਸੱਜੇ ਚਿਣ ਦਿਓ" #: ../gtk/gtkappchooserbutton.c:614 #| msgid "Include an 'Other...' item" msgid "Include an 'Other…' item" -msgstr "'ਹੋਰ…' ਆਈਟਮ ਸਮੇਤ" +msgstr "'…ਹੋਰ' ਆਈਟਮ ਸਮੇਤ" #: ../gtk/gtkappchooserbutton.c:615 msgid "" From 3edf7678bd14ae82b09da697acedac3462ee4a6a Mon Sep 17 00:00:00 2001 From: A S Alam Date: Tue, 26 Feb 2013 06:52:45 +0530 Subject: [PATCH 198/208] Punjabi: Translation updated (aalam) --- po/pa.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/pa.po b/po/pa.po index 9c2def9974..b757256794 100644 --- a/po/pa.po +++ b/po/pa.po @@ -11,7 +11,7 @@ msgstr "" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" "%2b&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-01-19 19:42+0000\n" -"PO-Revision-Date: 2013-02-22 08:48+0000\n" +"PO-Revision-Date: 2013-02-26 06:51+0530\n" "Last-Translator: A S Alam \n" "Language-Team: Punjabi/Panjabi \n" "Language: pa\n" @@ -1547,7 +1547,7 @@ msgstr "ਹਟਾਓ" #: ../gtk/gtkfilechooserdefault.c:3389 #| msgid "_Rename" msgid "Rename…" -msgstr "…ਨਾਂ-ਬਦਲੋ" +msgstr "...ਨਾਂ ਬਦਲੋ" #. Accessible object name for the file chooser's shortcuts pane #: ../gtk/gtkfilechooserdefault.c:3553 @@ -1610,7 +1610,7 @@ msgstr "ਨਾਂ(_N):" #: ../gtk/gtkfilechooserdefault.c:4829 msgid "Type a file name" -msgstr "ਫਾਇਲ ਨਾਂ ਦਿਓ" +msgstr "ਇੱਕ ਫਾਇਲ ਨਾਂ ਦਿਓ" #: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887 msgid "Please select a folder below" From 5e4e724a8ed39b89ea2fec42a07ec9252684ddac Mon Sep 17 00:00:00 2001 From: Daniel Mustieles Date: Tue, 26 Feb 2013 14:49:47 +0100 Subject: [PATCH 199/208] Updated Spanish translation --- po-properties/es.po | 1480 ++++++++++++++++++++++--------------------- 1 file changed, 757 insertions(+), 723 deletions(-) diff --git a/po-properties/es.po b/po-properties/es.po index 071cc1d516..b3faffca75 100644 --- a/po-properties/es.po +++ b/po-properties/es.po @@ -11,22 +11,22 @@ # Juan Manuel García Molina , 2003. # Francisco Javier F. Serrador , 2003 - 2006. # Jorge González , 2007, 2008, 2009, 2010, 2011. -# Daniel Mustieles , 2010, 2011, 2012. +# Daniel Mustieles , 2010, 2011, 2012, 2013. # msgid "" msgstr "" "Project-Id-Version: gtk+-properties.master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" -"%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-12-07 11:45+0000\n" -"PO-Revision-Date: 2012-12-08 19:28+0100\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%" +"2b&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-02-22 01:11+0000\n" +"PO-Revision-Date: 2013-02-26 14:47+0100\n" "Last-Translator: Daniel Mustieles \n" -"Language-Team: Español; Castellano \n" +"Language-Team: Español \n" "Language: \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" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: Gtranslator 2.91.5\n" #: ../gdk/gdkapplaunchcontext.c:129 ../gdk/gdkcursor.c:134 @@ -135,7 +135,7 @@ msgstr "Resolución de la tipografía" msgid "The resolution for fonts on the screen" msgstr "La resolución para las tipografías en la pantalla" -#: ../gdk/gdkwindow.c:384 ../gdk/gdkwindow.c:385 +#: ../gdk/gdkwindow.c:390 ../gdk/gdkwindow.c:391 msgid "Cursor" msgstr "Cursor" @@ -269,9 +269,9 @@ msgstr "Vista previa del texto" msgid "The text to display in order to demonstrate the selected font" msgstr "El texto que mostrar como demostración de la tipografía seleccionada" -#: ../gtk/deprecated/gtkhandlebox.c:224 ../gtk/gtkcombobox.c:1067 +#: ../gtk/deprecated/gtkhandlebox.c:224 ../gtk/gtkcombobox.c:1064 #: ../gtk/gtkentry.c:890 ../gtk/gtkmenubar.c:213 ../gtk/gtkstatusbar.c:182 -#: ../gtk/gtktoolbar.c:631 ../gtk/gtkviewport.c:155 +#: ../gtk/gtktoolbar.c:628 ../gtk/gtkviewport.c:156 msgid "Shadow type" msgstr "Tipo de sombra" @@ -363,8 +363,8 @@ msgstr "Espaciado de la columna" msgid "The amount of space between two consecutive columns" msgstr "La cantidad de espacio entre dos columnas consecutivas" -#: ../gtk/deprecated/gtktable.c:227 ../gtk/gtkbox.c:253 -#: ../gtk/gtktoolbar.c:563 ../gtk/gtktoolitemgroup.c:1650 +#: ../gtk/deprecated/gtktable.c:227 ../gtk/gtkbox.c:250 +#: ../gtk/gtktoolbar.c:560 ../gtk/gtktoolitemgroup.c:1650 msgid "Homogeneous" msgstr "Homogéneo" @@ -585,7 +585,7 @@ msgstr "Widget acelerador" msgid "The widget to be monitored for accelerator changes" msgstr "El widget que monitorizar para cambios en el acelerador" -#: ../gtk/gtkaccessible.c:158 ../gtk/gtktreeviewcolumn.c:355 +#: ../gtk/gtkaccessible.c:158 ../gtk/gtktreeviewcolumn.c:353 msgid "Widget" msgstr "Widget" @@ -662,18 +662,18 @@ msgid "GIcon" msgstr "GIcon" #: ../gtk/gtkaction.c:303 ../gtk/gtkcellrendererpixbuf.c:246 -#: ../gtk/gtkimage.c:309 ../gtk/gtkstatusicon.c:264 +#: ../gtk/gtkimage.c:311 ../gtk/gtkstatusicon.c:264 msgid "The GIcon being displayed" msgstr "El icono mostrado" #: ../gtk/gtkaction.c:323 ../gtk/gtkcellrendererpixbuf.c:211 -#: ../gtk/gtkimage.c:291 ../gtk/gtkprinter.c:172 ../gtk/gtkstatusicon.c:247 -#: ../gtk/gtkwindow.c:773 +#: ../gtk/gtkimage.c:293 ../gtk/gtkprinter.c:172 ../gtk/gtkstatusicon.c:247 +#: ../gtk/gtkwindow.c:771 msgid "Icon Name" msgstr "Nombre del icono" #: ../gtk/gtkaction.c:324 ../gtk/gtkcellrendererpixbuf.c:212 -#: ../gtk/gtkimage.c:292 ../gtk/gtkstatusicon.c:248 +#: ../gtk/gtkimage.c:294 ../gtk/gtkstatusicon.c:248 msgid "The name of the icon from the icon theme" msgstr "El nombre del icono del tema de iconos" @@ -737,7 +737,7 @@ msgstr "" "acción se ocultan." #: ../gtk/gtkaction.c:379 ../gtk/gtkactiongroup.c:235 -#: ../gtk/gtkcellrenderer.c:296 ../gtk/gtkwidget.c:1024 +#: ../gtk/gtkcellrenderer.c:296 ../gtk/gtkwidget.c:1088 msgid "Sensitive" msgstr "Sensible" @@ -746,8 +746,8 @@ msgid "Whether the action is enabled." msgstr "Indica si la acción está activada." #: ../gtk/gtkaction.c:386 ../gtk/gtkactiongroup.c:242 -#: ../gtk/gtkstatusicon.c:298 ../gtk/gtktreeviewcolumn.c:247 -#: ../gtk/gtkwidget.c:1017 +#: ../gtk/gtkstatusicon.c:298 ../gtk/gtktreeviewcolumn.c:245 +#: ../gtk/gtkwidget.c:1081 msgid "Visible" msgstr "Visible" @@ -1069,11 +1069,11 @@ msgstr "Ventana activa" msgid "The window which most recently had focus" msgstr "La ventana que ha tenido el foco más recientemente" -#: ../gtk/gtkapplicationwindow.c:989 +#: ../gtk/gtkapplicationwindow.c:993 msgid "Show a menubar" msgstr "Mostrar una barra de menú" -#: ../gtk/gtkapplicationwindow.c:990 +#: ../gtk/gtkapplicationwindow.c:994 msgid "TRUE if the window should show a menubar at the top of the window" msgstr "" "Cierto si la ventana debe mostrar una barra de menú en la parte superior de " @@ -1095,7 +1095,7 @@ msgstr "Sombra de la flecha" msgid "Appearance of the shadow surrounding the arrow" msgstr "Apariencia de la sombra que rodea la flecha" -#: ../gtk/gtkarrow.c:127 ../gtk/gtkcombobox.c:1051 ../gtk/gtkmenu.c:784 +#: ../gtk/gtkarrow.c:127 ../gtk/gtkcombobox.c:1048 ../gtk/gtkmenu.c:784 #: ../gtk/gtkmenuitem.c:506 msgid "Arrow Scaling" msgstr "Escalado de flechas" @@ -1104,7 +1104,7 @@ msgstr "Escalado de flechas" msgid "Amount of space used up by arrow" msgstr "Cantidad de espacio ocupado por flecha" -#: ../gtk/gtkaspectframe.c:107 ../gtk/gtkwidget.c:1212 +#: ../gtk/gtkaspectframe.c:107 ../gtk/gtkwidget.c:1276 msgid "Horizontal Alignment" msgstr "Alineación horizontal" @@ -1112,7 +1112,7 @@ msgstr "Alineación horizontal" msgid "X alignment of the child" msgstr "Alineación X del hijo" -#: ../gtk/gtkaspectframe.c:114 ../gtk/gtkwidget.c:1228 +#: ../gtk/gtkaspectframe.c:114 ../gtk/gtkwidget.c:1292 msgid "Vertical Alignment" msgstr "Alineación vertical" @@ -1257,34 +1257,34 @@ msgstr "No homogéneo" msgid "If TRUE, the child will not be subject to homogeneous sizing" msgstr "Si es TRUE, el hijo no será objeto de tamaño homogéneo" -#: ../gtk/gtkbox.c:243 ../gtk/gtkcellareabox.c:315 ../gtk/gtkexpander.c:312 -#: ../gtk/gtkiconview.c:512 ../gtk/gtktreeviewcolumn.c:282 +#: ../gtk/gtkbox.c:240 ../gtk/gtkcellareabox.c:315 ../gtk/gtkexpander.c:312 +#: ../gtk/gtkiconview.c:516 ../gtk/gtktreeviewcolumn.c:280 msgid "Spacing" msgstr "Espaciado" -#: ../gtk/gtkbox.c:244 +#: ../gtk/gtkbox.c:241 msgid "The amount of space between children" msgstr "La cantidad de espacio entre hijos" -#: ../gtk/gtkbox.c:254 +#: ../gtk/gtkbox.c:251 msgid "Whether the children should all be the same size" msgstr "Indica si todos los hijos deben ser del mismo tamaño" -#: ../gtk/gtkbox.c:274 ../gtk/gtkcellareabox.c:335 ../gtk/gtktoolbar.c:555 -#: ../gtk/gtktoolitemgroup.c:1657 ../gtk/gtktoolpalette.c:1075 -#: ../gtk/gtktreeviewcolumn.c:338 +#: ../gtk/gtkbox.c:271 ../gtk/gtkcellareabox.c:335 ../gtk/gtktoolbar.c:552 +#: ../gtk/gtktoolitemgroup.c:1657 ../gtk/gtktoolpalette.c:1077 +#: ../gtk/gtktreeviewcolumn.c:336 msgid "Expand" msgstr "Expandir" -#: ../gtk/gtkbox.c:275 +#: ../gtk/gtkbox.c:272 msgid "Whether the child should receive extra space when the parent grows" msgstr "Indica si el hijo debe recibir espacio extra cuando el padre crece" -#: ../gtk/gtkbox.c:291 ../gtk/gtktoolitemgroup.c:1664 +#: ../gtk/gtkbox.c:288 ../gtk/gtktoolitemgroup.c:1664 msgid "Fill" msgstr "Relleno" -#: ../gtk/gtkbox.c:292 +#: ../gtk/gtkbox.c:289 msgid "" "Whether extra space given to the child should be allocated to the child or " "used as padding" @@ -1292,19 +1292,19 @@ msgstr "" "Indica si el espacio extra dado al hijo debe ser reservado para el en el " "hijo o usado como separación" -#: ../gtk/gtkbox.c:299 ../gtk/gtktrayicon-x11.c:167 +#: ../gtk/gtkbox.c:296 ../gtk/gtktrayicon-x11.c:167 msgid "Padding" msgstr "Separación" -#: ../gtk/gtkbox.c:300 +#: ../gtk/gtkbox.c:297 msgid "Extra space to put between the child and its neighbors, in pixels" msgstr "Espacio extra para colocar entre el hijo y sus vecinos, en píxeles" -#: ../gtk/gtkbox.c:306 +#: ../gtk/gtkbox.c:303 msgid "Pack type" msgstr "Tipo de empaquetado" -#: ../gtk/gtkbox.c:307 +#: ../gtk/gtkbox.c:304 msgid "" "A GtkPackType indicating whether the child is packed with reference to the " "start or end of the parent" @@ -1312,20 +1312,20 @@ msgstr "" "Un GtkPackType que indica si el hijo está empaquetado con referencia al " "inicio o el final del padre" -#: ../gtk/gtkbox.c:313 ../gtk/gtknotebook.c:768 ../gtk/gtkpaned.c:348 +#: ../gtk/gtkbox.c:310 ../gtk/gtknotebook.c:768 ../gtk/gtkpaned.c:348 #: ../gtk/gtktoolitemgroup.c:1678 msgid "Position" msgstr "Posición" -#: ../gtk/gtkbox.c:314 ../gtk/gtknotebook.c:769 +#: ../gtk/gtkbox.c:311 ../gtk/gtknotebook.c:769 msgid "The index of the child in the parent" msgstr "El índice del hijo en el padre" -#: ../gtk/gtkbuilder.c:305 +#: ../gtk/gtkbuilder.c:307 msgid "Translation Domain" msgstr "Dominio de traducción" -#: ../gtk/gtkbuilder.c:306 +#: ../gtk/gtkbuilder.c:308 msgid "The translation domain used by gettext" msgstr "El dominio de traducción que usa gettext" @@ -1362,12 +1362,12 @@ msgstr "" "Si se selecciona, la etiqueta se utiliza para tomar un elemento del " "inventario en vez de para mostrarse" -#: ../gtk/gtkbutton.c:256 ../gtk/gtkcombobox.c:857 -#: ../gtk/gtkfilechooserbutton.c:425 +#: ../gtk/gtkbutton.c:256 ../gtk/gtkcombobox.c:854 +#: ../gtk/gtkfilechooserbutton.c:434 msgid "Focus on click" msgstr "Enfocar al pulsar" -#: ../gtk/gtkbutton.c:257 ../gtk/gtkfilechooserbutton.c:426 +#: ../gtk/gtkbutton.c:257 ../gtk/gtkfilechooserbutton.c:435 msgid "Whether the button grabs focus when it is clicked with the mouse" msgstr "Indica si el botón obtiene el foco al ser pulsado con el ratón" @@ -1579,7 +1579,7 @@ msgstr "Separación horizontal" msgid "Space between week headers and main area" msgstr "Espacio entre las cabeceras de la semana y el área principal" -#: ../gtk/gtkcellareabox.c:316 ../gtk/gtktreeviewcolumn.c:283 +#: ../gtk/gtkcellareabox.c:316 ../gtk/gtktreeviewcolumn.c:281 msgid "Space which is inserted between cells" msgstr "Espacio que se introduce entre las celdas" @@ -1648,7 +1648,7 @@ msgid "The Cell Area this context was created for" msgstr "La célula de área para la que se creó este contexto" #: ../gtk/gtkcellareacontext.c:134 ../gtk/gtkcellareacontext.c:153 -#: ../gtk/gtktreeviewcolumn.c:310 +#: ../gtk/gtktreeviewcolumn.c:308 msgid "Minimum Width" msgstr "Anchura mínimo" @@ -1845,14 +1845,13 @@ msgid "A column in the data source model to get the strings from" msgstr "" "Una columna en el modelo de origen de datos del que se obtienen las cadenas" -#: ../gtk/gtkcellrenderercombo.c:169 ../gtk/gtkcombobox.c:924 +#: ../gtk/gtkcellrenderercombo.c:169 ../gtk/gtkcombobox.c:921 msgid "Has Entry" msgstr "Tiene entrada" #: ../gtk/gtkcellrenderercombo.c:170 msgid "If FALSE, don't allow to enter strings other than the chosen ones" -msgstr "" -"Si es «FALSE», no permitir introducir cadenas distintas de las elegidas" +msgstr "Si es «FALSE», no permitir introducir cadenas distintas de las elegidas" #: ../gtk/gtkcellrendererpixbuf.c:151 msgid "Pixbuf Object" @@ -1878,7 +1877,7 @@ msgstr "Pixbuf del expansor cerrado" msgid "Pixbuf for closed expander" msgstr "El pixbuf para el expansor cerrado" -#: ../gtk/gtkcellrendererpixbuf.c:175 ../gtk/gtkimage.c:233 +#: ../gtk/gtkcellrendererpixbuf.c:175 ../gtk/gtkimage.c:235 #: ../gtk/gtkstatusicon.c:239 msgid "Stock ID" msgstr "ID del inventario" @@ -1888,7 +1887,7 @@ msgid "The stock ID of the stock icon to render" msgstr "El ID de inventario del icono de inventario a renderizar" #: ../gtk/gtkcellrendererpixbuf.c:183 ../gtk/gtkcellrendererspinner.c:157 -#: ../gtk/gtkrecentmanager.c:308 ../gtk/gtkstatusicon.c:280 +#: ../gtk/gtkrecentmanager.c:309 ../gtk/gtkstatusicon.c:280 msgid "Size" msgstr "Tamaño" @@ -1912,8 +1911,8 @@ msgstr "Seguir estado" msgid "Whether the rendered pixbuf should be colorized according to the state" msgstr "Indica si el pixbuf renderizado debe colorearse de acuerdo al estado" -#: ../gtk/gtkcellrendererpixbuf.c:245 ../gtk/gtkimage.c:308 -#: ../gtk/gtkwindow.c:719 +#: ../gtk/gtkcellrendererpixbuf.c:245 ../gtk/gtkimage.c:310 +#: ../gtk/gtkwindow.c:717 msgid "Icon" msgstr "Icono" @@ -1923,7 +1922,7 @@ msgstr "Valor de la barra de progreso" #: ../gtk/gtkcellrendererprogress.c:154 ../gtk/gtkcellrenderertext.c:255 #: ../gtk/gtkentrybuffer.c:350 ../gtk/gtkentry.c:841 -#: ../gtk/gtkmessagedialog.c:230 ../gtk/gtkprogressbar.c:174 +#: ../gtk/gtkmessagedialog.c:230 ../gtk/gtkprogressbar.c:173 #: ../gtk/gtktextbuffer.c:219 msgid "Text" msgstr "Texto" @@ -1964,12 +1963,12 @@ msgstr "Alineación y del texto" msgid "The vertical text alignment, from 0 (top) to 1 (bottom)." msgstr "La alineación vertical del texto, desde 0 (superior) a 1 (inferior)." -#: ../gtk/gtkcellrendererprogress.c:224 ../gtk/gtklevelbar.c:991 -#: ../gtk/gtkprogressbar.c:150 ../gtk/gtkrange.c:432 +#: ../gtk/gtkcellrendererprogress.c:224 ../gtk/gtklevelbar.c:993 +#: ../gtk/gtkprogressbar.c:149 ../gtk/gtkrange.c:432 msgid "Inverted" msgstr "Invertido" -#: ../gtk/gtkcellrendererprogress.c:225 ../gtk/gtkprogressbar.c:151 +#: ../gtk/gtkcellrendererprogress.c:225 ../gtk/gtkprogressbar.c:150 msgid "Invert the direction in which the progress bar grows" msgstr "Invertir la dirección en la que aumentan las barras de progreso" @@ -2106,12 +2105,12 @@ msgid "Foreground color as a GdkRGBA" msgstr "Color de primer plano como GdkRGBA" #: ../gtk/gtkcellrenderertext.c:364 ../gtk/gtkentry.c:755 -#: ../gtk/gtktexttag.c:296 ../gtk/gtktextview.c:703 +#: ../gtk/gtktexttag.c:296 ../gtk/gtktextview.c:704 msgid "Editable" msgstr "Editable" #: ../gtk/gtkcellrenderertext.c:365 ../gtk/gtktexttag.c:297 -#: ../gtk/gtktextview.c:704 +#: ../gtk/gtktextview.c:705 msgid "Whether the text can be modified by the user" msgstr "Indica si el texto puede modificarse por el usuario" @@ -2123,8 +2122,7 @@ msgstr "Tipografía" #: ../gtk/gtkcellrenderertext.c:373 ../gtk/gtkfontchooser.c:66 #: ../gtk/gtktexttag.c:313 msgid "Font description as a string, e.g. \"Sans Italic 12\"" -msgstr "" -"Descripción de la tipografía como una cadena, ejemplo: «Sans Italic 12»" +msgstr "Descripción de la tipografía como una cadena, ejemplo: «Sans Italic 12»" #: ../gtk/gtkcellrenderertext.c:381 ../gtk/gtkfontchooser.c:79 #: ../gtk/gtktexttag.c:321 @@ -2223,7 +2221,7 @@ msgstr "" "parámetro probablemente no lo necesite" #: ../gtk/gtkcellrenderertext.c:514 ../gtk/gtklabel.c:853 -#: ../gtk/gtkprogressbar.c:218 +#: ../gtk/gtkprogressbar.c:217 msgid "Ellipsize" msgstr "Elipsis" @@ -2235,7 +2233,7 @@ msgstr "" "El lugar preferido para la elipsis de la cadena, si el renderizador de la " "celda no tiene espacio suficiente para mostrar la cadena completa" -#: ../gtk/gtkcellrenderertext.c:534 ../gtk/gtkfilechooserbutton.c:453 +#: ../gtk/gtkcellrenderertext.c:534 ../gtk/gtkfilechooserbutton.c:462 #: ../gtk/gtklabel.c:874 msgid "Width In Characters" msgstr "Anchura en caracteres" @@ -2264,7 +2262,7 @@ msgstr "" "Cómo romper la cadena en líneas múltiples, si el renderizador de la celda no " "tiene suficiente espacio para mostrar la cadena completa" -#: ../gtk/gtkcellrenderertext.c:598 ../gtk/gtkcombobox.c:746 +#: ../gtk/gtkcellrenderertext.c:598 ../gtk/gtkcombobox.c:743 msgid "Wrap width" msgstr "Ajustar anchura" @@ -2272,7 +2270,7 @@ msgstr "Ajustar anchura" msgid "The width at which the text is wrapped" msgstr "La anchura a la que el texto se ajusta" -#: ../gtk/gtkcellrenderertext.c:619 ../gtk/gtktreeviewcolumn.c:363 +#: ../gtk/gtkcellrenderertext.c:619 ../gtk/gtktreeviewcolumn.c:361 msgid "Alignment" msgstr "Alineación" @@ -2472,15 +2470,15 @@ msgstr "Modelo CellView" msgid "The model for cell view" msgstr "El modelo para la vista de celda" -#: ../gtk/gtkcellview.c:252 ../gtk/gtkcombobox.c:1010 -#: ../gtk/gtkentrycompletion.c:451 ../gtk/gtkiconview.c:637 -#: ../gtk/gtktreemenu.c:332 ../gtk/gtktreeviewcolumn.c:426 +#: ../gtk/gtkcellview.c:252 ../gtk/gtkcombobox.c:1007 +#: ../gtk/gtkentrycompletion.c:451 ../gtk/gtkiconview.c:641 +#: ../gtk/gtktreemenu.c:332 ../gtk/gtktreeviewcolumn.c:424 msgid "Cell Area" msgstr "Área de la celda" -#: ../gtk/gtkcellview.c:253 ../gtk/gtkcombobox.c:1011 -#: ../gtk/gtkentrycompletion.c:452 ../gtk/gtkiconview.c:638 -#: ../gtk/gtktreemenu.c:333 ../gtk/gtktreeviewcolumn.c:427 +#: ../gtk/gtkcellview.c:253 ../gtk/gtkcombobox.c:1008 +#: ../gtk/gtkentrycompletion.c:452 ../gtk/gtkiconview.c:642 +#: ../gtk/gtktreemenu.c:333 ../gtk/gtktreeviewcolumn.c:425 msgid "The GtkCellArea used to layout cells" msgstr "El GtkCellArea usado para la distribución de las celdas" @@ -2552,9 +2550,9 @@ msgid "Whether to give the color an alpha value" msgstr "Indica si se debe dar un valor alfa al color" # components/music/nautilus-music-view.c:198 -#: ../gtk/gtkcolorbutton.c:186 ../gtk/gtkfilechooserbutton.c:439 +#: ../gtk/gtkcolorbutton.c:186 ../gtk/gtkfilechooserbutton.c:448 #: ../gtk/gtkfontbutton.c:434 ../gtk/gtkprintjob.c:139 -#: ../gtk/gtkstatusicon.c:426 ../gtk/gtktreeviewcolumn.c:330 +#: ../gtk/gtkstatusicon.c:426 ../gtk/gtktreeviewcolumn.c:328 msgid "Title" msgstr "Título" @@ -2592,7 +2590,7 @@ msgstr "Color actual como GdkRGBA" msgid "Whether alpha should be shown" msgstr "Indica si se debe mostrar el alfa" -#: ../gtk/gtkcolorchooserdialog.c:258 ../gtk/gtkcolorchooserwidget.c:675 +#: ../gtk/gtkcolorchooserdialog.c:258 ../gtk/gtkcolorchooserwidget.c:674 msgid "Show editor" msgstr "Mostrar editor" @@ -2616,98 +2614,98 @@ msgstr "Seleccionable" msgid "Whether the swatch is selectable" msgstr "Indica si la muestra es seleccionable" -#: ../gtk/gtkcombobox.c:729 +#: ../gtk/gtkcombobox.c:726 msgid "ComboBox model" msgstr "Modelo de ComboBox" -#: ../gtk/gtkcombobox.c:730 +#: ../gtk/gtkcombobox.c:727 msgid "The model for the combo box" msgstr "El modelo para el ComboBox" -#: ../gtk/gtkcombobox.c:747 +#: ../gtk/gtkcombobox.c:744 msgid "Wrap width for laying out the items in a grid" msgstr "Ajusta la anchura para distribuir los elementos en una rejilla" -#: ../gtk/gtkcombobox.c:769 ../gtk/gtktreemenu.c:386 +#: ../gtk/gtkcombobox.c:766 ../gtk/gtktreemenu.c:386 msgid "Row span column" msgstr "Fila expande columna" -#: ../gtk/gtkcombobox.c:770 ../gtk/gtktreemenu.c:387 +#: ../gtk/gtkcombobox.c:767 ../gtk/gtktreemenu.c:387 msgid "TreeModel column containing the row span values" msgstr "Columna TreeModel que contiene los valores de expansión de la fila" -#: ../gtk/gtkcombobox.c:791 ../gtk/gtktreemenu.c:407 +#: ../gtk/gtkcombobox.c:788 ../gtk/gtktreemenu.c:407 msgid "Column span column" msgstr "Columna expande columna" -#: ../gtk/gtkcombobox.c:792 ../gtk/gtktreemenu.c:408 +#: ../gtk/gtkcombobox.c:789 ../gtk/gtktreemenu.c:408 msgid "TreeModel column containing the column span values" msgstr "Columna TreeModel que contiene los valores de expansión de columna" -#: ../gtk/gtkcombobox.c:813 +#: ../gtk/gtkcombobox.c:810 msgid "Active item" msgstr "Elemento activo" -#: ../gtk/gtkcombobox.c:814 +#: ../gtk/gtkcombobox.c:811 msgid "The item which is currently active" msgstr "El elemento que está activo actualmente" -#: ../gtk/gtkcombobox.c:833 ../gtk/gtkuimanager.c:487 +#: ../gtk/gtkcombobox.c:830 ../gtk/gtkuimanager.c:487 msgid "Add tearoffs to menus" msgstr "Añadir tiradores a los menús" -#: ../gtk/gtkcombobox.c:834 +#: ../gtk/gtkcombobox.c:831 msgid "Whether dropdowns should have a tearoff menu item" msgstr "Indica si los desplegables deben tener un tirador en el menú" -#: ../gtk/gtkcombobox.c:849 ../gtk/gtkentry.c:780 +#: ../gtk/gtkcombobox.c:846 ../gtk/gtkentry.c:780 msgid "Has Frame" msgstr "Tiene marco" -#: ../gtk/gtkcombobox.c:850 +#: ../gtk/gtkcombobox.c:847 msgid "Whether the combo box draws a frame around the child" msgstr "Indica si el ComboBox dibuja un marco alrededor del hijo" -#: ../gtk/gtkcombobox.c:858 +#: ../gtk/gtkcombobox.c:855 msgid "Whether the combo box grabs focus when it is clicked with the mouse" msgstr "Indica si el ComboBox obtiene el foco cuando se pulsa con el ratón" -#: ../gtk/gtkcombobox.c:873 ../gtk/gtkmenu.c:609 +#: ../gtk/gtkcombobox.c:870 ../gtk/gtkmenu.c:609 msgid "Tearoff Title" msgstr "Título del tirador" -#: ../gtk/gtkcombobox.c:874 +#: ../gtk/gtkcombobox.c:871 msgid "" "A title that may be displayed by the window manager when the popup is torn-" "off" msgstr "" "Un título que podría mostrar el gestor de ventanas al desprender el emergente" -#: ../gtk/gtkcombobox.c:891 +#: ../gtk/gtkcombobox.c:888 msgid "Popup shown" msgstr "Emergente mostrado" -#: ../gtk/gtkcombobox.c:892 +#: ../gtk/gtkcombobox.c:889 msgid "Whether the combo's dropdown is shown" msgstr "Indica si se muestra el desplegable del combo" -#: ../gtk/gtkcombobox.c:908 +#: ../gtk/gtkcombobox.c:905 msgid "Button Sensitivity" msgstr "Sensibilidad del botón" -#: ../gtk/gtkcombobox.c:909 +#: ../gtk/gtkcombobox.c:906 msgid "Whether the dropdown button is sensitive when the model is empty" msgstr "Indica si el botón desplegable es sensible cunado el modelo está vacío" -#: ../gtk/gtkcombobox.c:925 +#: ../gtk/gtkcombobox.c:922 msgid "Whether combo box has an entry" msgstr "Indica si el ComboBox tiene una entrada" -#: ../gtk/gtkcombobox.c:940 +#: ../gtk/gtkcombobox.c:937 msgid "Entry Text Column" msgstr "Columna de entrada de texto" -#: ../gtk/gtkcombobox.c:941 +#: ../gtk/gtkcombobox.c:938 msgid "" "The column in the combo box's model to associate with strings from the entry " "if the combo was created with #GtkComboBox:has-entry = %TRUE" @@ -2715,11 +2713,11 @@ msgstr "" "La columna en el modelo ce caja combinada para asociar con cadenas de la " "entrada si la caja combinada se creó con #GtkComboBox:has-entry = %TRUE" -#: ../gtk/gtkcombobox.c:958 +#: ../gtk/gtkcombobox.c:955 msgid "ID Column" msgstr "ID de la columna" -#: ../gtk/gtkcombobox.c:959 +#: ../gtk/gtkcombobox.c:956 msgid "" "The column in the combo box's model that provides string IDs for the values " "in the model" @@ -2727,19 +2725,19 @@ msgstr "" "La columna en el modelo ce caja combinada que proporciona los ID de cadenas " "para los valores en el modelo" -#: ../gtk/gtkcombobox.c:974 +#: ../gtk/gtkcombobox.c:971 msgid "Active id" msgstr "ID activo" -#: ../gtk/gtkcombobox.c:975 +#: ../gtk/gtkcombobox.c:972 msgid "The value of the id column for the active row" msgstr "El valor del ID de la columna para la fila activa" -#: ../gtk/gtkcombobox.c:990 +#: ../gtk/gtkcombobox.c:987 msgid "Popup Fixed Width" msgstr "Anchura fija del emergente" -#: ../gtk/gtkcombobox.c:991 +#: ../gtk/gtkcombobox.c:988 msgid "" "Whether the popup's width should be a fixed width matching the allocated " "width of the combo box" @@ -2747,51 +2745,51 @@ msgstr "" "Indica si la anchura del emergente debería ser fija coincidiendo con la " "anchura reservada para la caja combinada" -#: ../gtk/gtkcombobox.c:1017 +#: ../gtk/gtkcombobox.c:1014 msgid "Appears as list" msgstr "Aparece como una lista" -#: ../gtk/gtkcombobox.c:1018 +#: ../gtk/gtkcombobox.c:1015 msgid "Whether dropdowns should look like lists rather than menus" msgstr "Indica si los desplegables se parecen a listas en lugar de menús" -#: ../gtk/gtkcombobox.c:1034 +#: ../gtk/gtkcombobox.c:1031 msgid "Arrow Size" msgstr "Tamaño de la flecha" -#: ../gtk/gtkcombobox.c:1035 +#: ../gtk/gtkcombobox.c:1032 msgid "The minimum size of the arrow in the combo box" msgstr "El tamaño mínimo de la flecha en la caja combo" -#: ../gtk/gtkcombobox.c:1052 +#: ../gtk/gtkcombobox.c:1049 msgid "The amount of space used by the arrow" msgstr "La cantidad de espacio usado por la flecha" -#: ../gtk/gtkcombobox.c:1068 +#: ../gtk/gtkcombobox.c:1065 msgid "Which kind of shadow to draw around the combo box" msgstr "Qué clase de sombra dibujar alrededor de la caja combo" -#: ../gtk/gtkcontainer.c:461 +#: ../gtk/gtkcontainer.c:462 msgid "Resize mode" msgstr "Modo de redimensión" -#: ../gtk/gtkcontainer.c:462 +#: ../gtk/gtkcontainer.c:463 msgid "Specify how resize events are handled" msgstr "Especifica cómo se manipulan los eventos de redimensionado" -#: ../gtk/gtkcontainer.c:469 +#: ../gtk/gtkcontainer.c:470 msgid "Border width" msgstr "Anchura del borde" -#: ../gtk/gtkcontainer.c:470 +#: ../gtk/gtkcontainer.c:471 msgid "The width of the empty border outside the containers children" msgstr "La anchura del borde vacío fuera de los contenedores hijos" -#: ../gtk/gtkcontainer.c:478 +#: ../gtk/gtkcontainer.c:479 msgid "Child" msgstr "Hijo" -#: ../gtk/gtkcontainer.c:479 +#: ../gtk/gtkcontainer.c:480 msgid "Can be used to add a new child to the container" msgstr "Puede usarse para añadir un hijo nuevo al contenedor" @@ -2803,53 +2801,51 @@ msgstr "Subpropiedades" msgid "The list of subproperties" msgstr "La lista de subpropiedades" -#: ../gtk/gtkcssstyleproperty.c:273 +#: ../gtk/gtkcssstyleproperty.c:275 msgid "Animated" msgstr "Animado" -#: ../gtk/gtkcssstyleproperty.c:274 +#: ../gtk/gtkcssstyleproperty.c:276 msgid "Set if the value can be animated" msgstr "Establecer si el valor se puede animar" -#: ../gtk/gtkcssstyleproperty.c:280 +#: ../gtk/gtkcssstyleproperty.c:282 msgid "Affects size" msgstr "Afectar al tamaño" -#: ../gtk/gtkcssstyleproperty.c:281 +#: ../gtk/gtkcssstyleproperty.c:283 msgid "Set if the value affects the sizing of elements" msgstr "Establecer si el valor afecta al tamaño de los elementos" -#: ../gtk/gtkcssstyleproperty.c:287 -#| msgid "Affects size" +#: ../gtk/gtkcssstyleproperty.c:289 msgid "Affects font" msgstr "Afectar a la tipografía" -#: ../gtk/gtkcssstyleproperty.c:288 -#| msgid "Set if the value affects the sizing of elements" +#: ../gtk/gtkcssstyleproperty.c:290 msgid "Set if the value affects the font" msgstr "Establecer si el valor afecta a la tipografía" -#: ../gtk/gtkcssstyleproperty.c:294 +#: ../gtk/gtkcssstyleproperty.c:296 msgid "ID" msgstr "ID" -#: ../gtk/gtkcssstyleproperty.c:295 +#: ../gtk/gtkcssstyleproperty.c:297 msgid "The numeric id for quick access" msgstr "El ID numérico para acceso rápido" -#: ../gtk/gtkcssstyleproperty.c:301 +#: ../gtk/gtkcssstyleproperty.c:303 msgid "Inherit" msgstr "Heredar" -#: ../gtk/gtkcssstyleproperty.c:302 +#: ../gtk/gtkcssstyleproperty.c:304 msgid "Set if the value is inherited by default" msgstr "Establecer si el valor se hereda de forma predeterminada" -#: ../gtk/gtkcssstyleproperty.c:308 +#: ../gtk/gtkcssstyleproperty.c:310 msgid "Initial value" msgstr "Valor inicial" -#: ../gtk/gtkcssstyleproperty.c:309 +#: ../gtk/gtkcssstyleproperty.c:311 msgid "The initial specified value used for this property" msgstr "El valor inicial especificado para esta propiedad" @@ -3030,7 +3026,7 @@ msgstr "" "Qué clase de sombra dibujar alrededor de la entrada cuando has-frame está " "activado" -#: ../gtk/gtkentry.c:906 ../gtk/gtktextview.c:783 +#: ../gtk/gtkentry.c:906 ../gtk/gtktextview.c:784 msgid "Overwrite mode" msgstr "Modo de sobreescritura" @@ -3221,11 +3217,11 @@ msgstr "Marcado de la sugerencia del icono primario" msgid "Secondary icon tooltip markup" msgstr "Marcado de la sugerencia del icono secundario" -#: ../gtk/gtkentry.c:1338 ../gtk/gtktextview.c:811 +#: ../gtk/gtkentry.c:1338 ../gtk/gtktextview.c:812 msgid "IM module" msgstr "Módulo ME" -#: ../gtk/gtkentry.c:1339 ../gtk/gtktextview.c:812 +#: ../gtk/gtkentry.c:1339 ../gtk/gtktextview.c:813 msgid "Which IM module should be used" msgstr "Qué módulo de ME se debe usar" @@ -3237,19 +3233,19 @@ msgstr "Completado" msgid "The auxiliary completion object" msgstr "El objeto de completado auxiliar" -#: ../gtk/gtkentry.c:1375 ../gtk/gtkimcontext.c:332 ../gtk/gtktextview.c:829 +#: ../gtk/gtkentry.c:1375 ../gtk/gtkimcontext.c:332 ../gtk/gtktextview.c:830 msgid "Purpose" msgstr "Propósito" -#: ../gtk/gtkentry.c:1376 ../gtk/gtkimcontext.c:333 ../gtk/gtktextview.c:830 +#: ../gtk/gtkentry.c:1376 ../gtk/gtkimcontext.c:333 ../gtk/gtktextview.c:831 msgid "Purpose of the text field" msgstr "Propósito del campo de texto" -#: ../gtk/gtkentry.c:1392 ../gtk/gtkimcontext.c:340 ../gtk/gtktextview.c:846 +#: ../gtk/gtkentry.c:1392 ../gtk/gtkimcontext.c:340 ../gtk/gtktextview.c:847 msgid "hints" msgstr "pistas" -#: ../gtk/gtkentry.c:1393 ../gtk/gtkimcontext.c:341 ../gtk/gtktextview.c:847 +#: ../gtk/gtkentry.c:1393 ../gtk/gtkimcontext.c:341 ../gtk/gtktextview.c:848 msgid "Hints for the text field behaviour" msgstr "Pistas para el comportamiento del campo de texto" @@ -3295,7 +3291,7 @@ msgstr "Longitud mínima de clave" msgid "Minimum length of the search key in order to look up matches" msgstr "Longitud mínima de la clave de búsqueda para buscar coincidencias" -#: ../gtk/gtkentrycompletion.c:347 ../gtk/gtkiconview.c:433 +#: ../gtk/gtkentrycompletion.c:347 ../gtk/gtkiconview.c:437 msgid "Text column" msgstr "Columna de texto" @@ -3424,12 +3420,12 @@ msgstr "" "expandirse y contraerse" #: ../gtk/gtkexpander.c:353 ../gtk/gtktoolitemgroup.c:1632 -#: ../gtk/gtktreeview.c:1194 +#: ../gtk/gtktreeview.c:1203 msgid "Expander Size" msgstr "Tamaño del expansor" #: ../gtk/gtkexpander.c:354 ../gtk/gtktoolitemgroup.c:1633 -#: ../gtk/gtktreeview.c:1195 +#: ../gtk/gtktreeview.c:1204 msgid "Size of the expander arrow" msgstr "Tamaño de la flecha del expansor" @@ -3437,19 +3433,19 @@ msgstr "Tamaño de la flecha del expansor" msgid "Spacing around expander arrow" msgstr "Espaciado alrededor de la flecha del expansor" -#: ../gtk/gtkfilechooserbutton.c:408 +#: ../gtk/gtkfilechooserbutton.c:417 msgid "Dialog" msgstr "Diálogo" -#: ../gtk/gtkfilechooserbutton.c:409 +#: ../gtk/gtkfilechooserbutton.c:418 msgid "The file chooser dialog to use." msgstr "El diálogo del selector de archivos que se va a usar." -#: ../gtk/gtkfilechooserbutton.c:440 +#: ../gtk/gtkfilechooserbutton.c:449 msgid "The title of the file chooser dialog." msgstr "El título del diálogo de selección de archivos." -#: ../gtk/gtkfilechooserbutton.c:454 +#: ../gtk/gtkfilechooserbutton.c:463 msgid "The desired width of the button widget, in characters." msgstr "La anchura del widget del botón, en caracteres." @@ -3556,7 +3552,7 @@ msgstr "" "Indica si un selector de archivos en modo distinto a abrir ofrece al usuario " "la posibilidad de crear carpetas nuevas." -#: ../gtk/gtkfixed.c:150 ../gtk/gtklayout.c:646 ../gtk/gtktreeviewcolumn.c:263 +#: ../gtk/gtkfixed.c:150 ../gtk/gtklayout.c:646 ../gtk/gtktreeviewcolumn.c:261 msgid "X position" msgstr "Posición X" @@ -3682,7 +3678,7 @@ msgstr "Si es cierto, las columnas tienen todas la misma altura" msgid "The row number to attach the top side of a child widget to" msgstr "El número de fila que acoplar a la parte superior de un widget hijo" -#: ../gtk/gtkgrid.c:1434 ../gtk/gtklayout.c:672 ../gtk/gtktreeviewcolumn.c:273 +#: ../gtk/gtkgrid.c:1434 ../gtk/gtklayout.c:672 ../gtk/gtktreeviewcolumn.c:271 msgid "Width" msgstr "Anchura" @@ -3698,208 +3694,226 @@ msgstr "Altura" msgid "The number of rows that a child spans" msgstr "El número de filas que un hijo engendra" -#: ../gtk/gtkiconview.c:396 ../gtk/gtktreeselection.c:130 +#: ../gtk/gtkiconview.c:400 ../gtk/gtktreeselection.c:130 msgid "Selection mode" msgstr "Modo de selección" -#: ../gtk/gtkiconview.c:397 +#: ../gtk/gtkiconview.c:401 msgid "The selection mode" msgstr "El modo de selección" -#: ../gtk/gtkiconview.c:415 +#: ../gtk/gtkiconview.c:419 msgid "Pixbuf column" msgstr "Columna de pixbuf" -#: ../gtk/gtkiconview.c:416 +#: ../gtk/gtkiconview.c:420 msgid "Model column used to retrieve the icon pixbuf from" msgstr "Columna modelo usada para obtener el pixbuf del icono" -#: ../gtk/gtkiconview.c:434 +#: ../gtk/gtkiconview.c:438 msgid "Model column used to retrieve the text from" msgstr "Columna modelo usada para obtener el texto" -#: ../gtk/gtkiconview.c:453 +#: ../gtk/gtkiconview.c:457 msgid "Markup column" msgstr "Columna de marcado" -#: ../gtk/gtkiconview.c:454 +#: ../gtk/gtkiconview.c:458 msgid "Model column used to retrieve the text if using Pango markup" msgstr "Columna modelo usada para obtener el texto si se usa marcado Pango" -#: ../gtk/gtkiconview.c:461 +#: ../gtk/gtkiconview.c:465 msgid "Icon View Model" msgstr "Modelo de vista de icono" -#: ../gtk/gtkiconview.c:462 +#: ../gtk/gtkiconview.c:466 msgid "The model for the icon view" msgstr "El modelo para la vista de icono" -#: ../gtk/gtkiconview.c:478 +#: ../gtk/gtkiconview.c:482 msgid "Number of columns" msgstr "Número de columnas" -#: ../gtk/gtkiconview.c:479 +#: ../gtk/gtkiconview.c:483 msgid "Number of columns to display" msgstr "El número de columnas que se mostrarán" -#: ../gtk/gtkiconview.c:496 +#: ../gtk/gtkiconview.c:500 msgid "Width for each item" msgstr "Anchura de cada elemento" -#: ../gtk/gtkiconview.c:497 +#: ../gtk/gtkiconview.c:501 msgid "The width used for each item" msgstr "La anchura usada por cada elemento" -#: ../gtk/gtkiconview.c:513 +#: ../gtk/gtkiconview.c:517 msgid "Space which is inserted between cells of an item" msgstr "Espacio que se introduce entre las celdas de un elemento" -#: ../gtk/gtkiconview.c:528 +#: ../gtk/gtkiconview.c:532 msgid "Row Spacing" msgstr "Espaciado entre filas" -#: ../gtk/gtkiconview.c:529 +#: ../gtk/gtkiconview.c:533 msgid "Space which is inserted between grid rows" msgstr "Espacio que se introduce entre las filas de la rejilla" -#: ../gtk/gtkiconview.c:544 +#: ../gtk/gtkiconview.c:548 msgid "Column Spacing" msgstr "Espaciado entre columnas" -#: ../gtk/gtkiconview.c:545 +#: ../gtk/gtkiconview.c:549 msgid "Space which is inserted between grid columns" msgstr "Espacio que se inserta entre las columnas de la rejilla" -#: ../gtk/gtkiconview.c:560 +#: ../gtk/gtkiconview.c:564 msgid "Margin" msgstr "Margen" -#: ../gtk/gtkiconview.c:561 +#: ../gtk/gtkiconview.c:565 msgid "Space which is inserted at the edges of the icon view" msgstr "Espacio que se introduce entre los bordes de la vista de icono" -#: ../gtk/gtkiconview.c:576 +#: ../gtk/gtkiconview.c:580 msgid "Item Orientation" msgstr "Orientación del elemento" -#: ../gtk/gtkiconview.c:577 +#: ../gtk/gtkiconview.c:581 msgid "" "How the text and icon of each item are positioned relative to each other" msgstr "" "Cómo se sitúan el texto y el icono para cada elemento relativo a los demás" -#: ../gtk/gtkiconview.c:593 ../gtk/gtktreeview.c:1029 -#: ../gtk/gtktreeviewcolumn.c:373 +#: ../gtk/gtkiconview.c:597 ../gtk/gtktreeview.c:1022 +#: ../gtk/gtktreeviewcolumn.c:371 msgid "Reorderable" msgstr "Reordenable" -#: ../gtk/gtkiconview.c:594 ../gtk/gtktreeview.c:1030 +#: ../gtk/gtkiconview.c:598 ../gtk/gtktreeview.c:1023 msgid "View is reorderable" msgstr "La vista es reordenable" -#: ../gtk/gtkiconview.c:601 ../gtk/gtktreeview.c:1180 +#: ../gtk/gtkiconview.c:605 ../gtk/gtktreeview.c:1173 msgid "Tooltip Column" msgstr "Columna de sugerencia" -#: ../gtk/gtkiconview.c:602 +#: ../gtk/gtkiconview.c:606 msgid "The column in the model containing the tooltip texts for the items" msgstr "" "La columna del modelo que contiene los textos de sugerencia para los " "elementos" -#: ../gtk/gtkiconview.c:619 +#: ../gtk/gtkiconview.c:623 msgid "Item Padding" msgstr "Separación del elemento" -#: ../gtk/gtkiconview.c:620 +#: ../gtk/gtkiconview.c:624 msgid "Padding around icon view items" msgstr "Separación alrededor de la vista de iconos" -#: ../gtk/gtkiconview.c:651 +#: ../gtk/gtkiconview.c:657 ../gtk/gtktreeview.c:1191 +msgid "Activate on Single Click" +msgstr "Activar con una única pulsación" + +#: ../gtk/gtkiconview.c:658 ../gtk/gtktreeview.c:1192 +msgid "Activate row on a single click" +msgstr "Activar fila con una única pulsación" + +#: ../gtk/gtkiconview.c:671 msgid "Selection Box Color" msgstr "Color de la caja de selección" -#: ../gtk/gtkiconview.c:652 +#: ../gtk/gtkiconview.c:672 msgid "Color of the selection box" msgstr "Color de la caja de selección" -#: ../gtk/gtkiconview.c:658 +#: ../gtk/gtkiconview.c:678 msgid "Selection Box Alpha" msgstr "Alfa de la caja de selección" -#: ../gtk/gtkiconview.c:659 +#: ../gtk/gtkiconview.c:679 msgid "Opacity of the selection box" msgstr "Opacidad de la caja de selección" -#: ../gtk/gtkimage.c:216 ../gtk/gtkstatusicon.c:223 +#: ../gtk/gtkimage.c:218 ../gtk/gtkstatusicon.c:223 msgid "Pixbuf" msgstr "Pixbuf" -#: ../gtk/gtkimage.c:217 ../gtk/gtkstatusicon.c:224 +#: ../gtk/gtkimage.c:219 ../gtk/gtkstatusicon.c:224 msgid "A GdkPixbuf to display" msgstr "Un GdkPixbuf para mostrar" -#: ../gtk/gtkimage.c:224 ../gtk/gtkrecentmanager.c:293 +#: ../gtk/gtkimage.c:226 ../gtk/gtkrecentmanager.c:294 #: ../gtk/gtkstatusicon.c:231 msgid "Filename" msgstr "Nombre de archivo" -#: ../gtk/gtkimage.c:225 ../gtk/gtkstatusicon.c:232 +#: ../gtk/gtkimage.c:227 ../gtk/gtkstatusicon.c:232 msgid "Filename to load and display" msgstr "Nombre del archivo a cargar y mostrar" -#: ../gtk/gtkimage.c:234 ../gtk/gtkstatusicon.c:240 +#: ../gtk/gtkimage.c:236 ../gtk/gtkstatusicon.c:240 msgid "Stock ID for a stock image to display" msgstr "ID de inventario para una imagen de inventario que mostrar" -#: ../gtk/gtkimage.c:241 +#: ../gtk/gtkimage.c:243 msgid "Icon set" msgstr "Conjunto de iconos" -#: ../gtk/gtkimage.c:242 +#: ../gtk/gtkimage.c:244 msgid "Icon set to display" msgstr "Conjunto de iconos para mostrar" -#: ../gtk/gtkimage.c:249 ../gtk/gtkscalebutton.c:228 ../gtk/gtktoolbar.c:530 -#: ../gtk/gtktoolpalette.c:1013 +#: ../gtk/gtkimage.c:251 ../gtk/gtkscalebutton.c:228 ../gtk/gtktoolbar.c:527 +#: ../gtk/gtktoolpalette.c:1015 msgid "Icon size" msgstr "Tamaño del icono" -#: ../gtk/gtkimage.c:250 +#: ../gtk/gtkimage.c:252 msgid "Symbolic size to use for stock icon, icon set or named icon" msgstr "" "Tamaño simbólico que usar para el icono de inventario, conjunto de iconos o " "icono nombrado" -#: ../gtk/gtkimage.c:266 +#: ../gtk/gtkimage.c:268 msgid "Pixel size" msgstr "Tamaño del píxel" -#: ../gtk/gtkimage.c:267 +#: ../gtk/gtkimage.c:269 msgid "Pixel size to use for named icon" msgstr "Tamaño de píxel que usar para el icono nombrado" -#: ../gtk/gtkimage.c:275 +#: ../gtk/gtkimage.c:277 msgid "Animation" msgstr "Animación" -#: ../gtk/gtkimage.c:276 +#: ../gtk/gtkimage.c:278 msgid "GdkPixbufAnimation to display" msgstr "GdkPixbufAnimation para mostrar" -#: ../gtk/gtkimage.c:316 ../gtk/gtkstatusicon.c:271 +#: ../gtk/gtkimage.c:325 +#| msgid "Input source" +msgid "Resource" +msgstr "Recurso" + +#: ../gtk/gtkimage.c:326 +#| msgid "The GIcon being displayed" +msgid "The resource path being displayed" +msgstr "La ruta del recurso mostrado" + +#: ../gtk/gtkimage.c:333 ../gtk/gtkstatusicon.c:271 msgid "Storage type" msgstr "Tipo de almacenamiento" -#: ../gtk/gtkimage.c:317 ../gtk/gtkstatusicon.c:272 +#: ../gtk/gtkimage.c:334 ../gtk/gtkstatusicon.c:272 msgid "The representation being used for image data" msgstr "La representación empleada para los datos de la imagen" -#: ../gtk/gtkimage.c:335 +#: ../gtk/gtkimage.c:352 msgid "Use Fallback" msgstr "Usar alternativa" -#: ../gtk/gtkimage.c:336 +#: ../gtk/gtkimage.c:353 msgid "Whether to use icon names fallback" msgstr "Indica si usar nombres de iconos como alternativa" @@ -3943,12 +3957,12 @@ msgid "Width of border around the action area" msgstr "Anchura del borde alrededor del área de acción" #: ../gtk/gtkinvisible.c:101 ../gtk/gtkmountoperation.c:179 -#: ../gtk/gtkstatusicon.c:290 ../gtk/gtkstylecontext.c:442 -#: ../gtk/gtkwindow.c:781 +#: ../gtk/gtkstatusicon.c:290 ../gtk/gtkstylecontext.c:444 +#: ../gtk/gtkwindow.c:779 msgid "Screen" msgstr "Pantalla" -#: ../gtk/gtkinvisible.c:102 ../gtk/gtkwindow.c:782 +#: ../gtk/gtkinvisible.c:102 ../gtk/gtkwindow.c:780 msgid "The screen where this window will be displayed" msgstr "La pantalla donde se mostrará esta ventana" @@ -3956,7 +3970,7 @@ msgstr "La pantalla donde se mostrará esta ventana" msgid "The text of the label" msgstr "El texto de la etiqueta" -#: ../gtk/gtklabel.c:750 ../gtk/gtktexttag.c:404 ../gtk/gtktextview.c:720 +#: ../gtk/gtklabel.c:750 ../gtk/gtktexttag.c:404 ../gtk/gtktextview.c:721 msgid "Justification" msgstr "Justificación" @@ -4065,55 +4079,55 @@ msgstr "La anchura de la distribución" msgid "The height of the layout" msgstr "La altura de la distribución" -#: ../gtk/gtklevelbar.c:927 +#: ../gtk/gtklevelbar.c:929 msgid "Currently filled value level" msgstr "Valor del nivel de llenado actual" -#: ../gtk/gtklevelbar.c:928 +#: ../gtk/gtklevelbar.c:930 msgid "Currently filled value level of the level bar" msgstr "Valor del nivel de llenado actual de la barra de nivel" -#: ../gtk/gtklevelbar.c:941 +#: ../gtk/gtklevelbar.c:943 msgid "Minimum value level for the bar" msgstr "Valor mínimo del nivel para la barra" -#: ../gtk/gtklevelbar.c:942 +#: ../gtk/gtklevelbar.c:944 msgid "Minimum value level that can be displayed by the bar" msgstr "Valor mínimo del nivel que se puede mostrar en la barra" -#: ../gtk/gtklevelbar.c:955 +#: ../gtk/gtklevelbar.c:957 msgid "Maximum value level for the bar" msgstr "Valor máximo del nivel para la barra" -#: ../gtk/gtklevelbar.c:956 +#: ../gtk/gtklevelbar.c:958 msgid "Maximum value level that can be displayed by the bar" msgstr "Valor máximo del nivel que se puede mostrar en la barra" -#: ../gtk/gtklevelbar.c:975 +#: ../gtk/gtklevelbar.c:977 msgid "The mode of the value indicator" msgstr "El modo del indicador del valor" -#: ../gtk/gtklevelbar.c:976 +#: ../gtk/gtklevelbar.c:978 msgid "The mode of the value indicator displayed by the bar" msgstr "El modo del indicador del valor mostrado en la barra" -#: ../gtk/gtklevelbar.c:992 +#: ../gtk/gtklevelbar.c:994 msgid "Invert the direction in which the level bar grows" msgstr "Invertir la dirección en la que aumentan las barras de progreso" -#: ../gtk/gtklevelbar.c:1006 +#: ../gtk/gtklevelbar.c:1008 msgid "Minimum height for filling blocks" msgstr "Altura mínima de los bloques de relleno" -#: ../gtk/gtklevelbar.c:1007 +#: ../gtk/gtklevelbar.c:1009 msgid "Minimum height for blocks that fill the bar" msgstr "Altura mínima de los bloques que rellenan la caja" -#: ../gtk/gtklevelbar.c:1020 +#: ../gtk/gtklevelbar.c:1022 msgid "Minimum width for filling blocks" msgstr "Anchura mínima de los bloques de relleno" -#: ../gtk/gtklevelbar.c:1021 +#: ../gtk/gtklevelbar.c:1023 msgid "Minimum width for blocks that fill the bar" msgstr "Anchura mínima de los bloques que rellenan la caja" @@ -4204,7 +4218,7 @@ msgstr "La dirección de empaquetado hijo de la barra de menú" msgid "Style of bevel around the menubar" msgstr "Estilo del bisel alrededor de la barra de menús" -#: ../gtk/gtkmenubar.c:230 ../gtk/gtktoolbar.c:589 +#: ../gtk/gtkmenubar.c:230 ../gtk/gtktoolbar.c:586 msgid "Internal padding" msgstr "Relleno interno" @@ -4542,7 +4556,7 @@ msgstr "" "El número de espacio a añadir en la parte superior e inferior del widget, en " "píxeles" -#: ../gtk/gtkmountoperation.c:163 ../gtk/gtkstylecontext.c:465 +#: ../gtk/gtkmountoperation.c:163 ../gtk/gtkstylecontext.c:474 msgid "Parent" msgstr "Padre" @@ -4671,7 +4685,7 @@ msgstr "Pestaña desprendible" msgid "Whether the tab is detachable" msgstr "Indica si la pestaña es desprendible" -#: ../gtk/gtknotebook.c:813 ../gtk/gtkscrollbar.c:102 +#: ../gtk/gtknotebook.c:813 ../gtk/gtkscrollbar.c:100 msgid "Secondary backward stepper" msgstr "Flecha de retroceso secundaria" @@ -4682,7 +4696,7 @@ msgstr "" "Muestra una segunda flecha de retroceso en el extremo opuesto del área de " "pestañas" -#: ../gtk/gtknotebook.c:829 ../gtk/gtkscrollbar.c:109 +#: ../gtk/gtknotebook.c:829 ../gtk/gtkscrollbar.c:107 msgid "Secondary forward stepper" msgstr "Flecha de adelanto secundaria" @@ -4693,19 +4707,19 @@ msgstr "" "Mostrar una segunda flecha de avance en el extremo opuesto del área de " "pestañas" -#: ../gtk/gtknotebook.c:844 ../gtk/gtkscrollbar.c:88 +#: ../gtk/gtknotebook.c:844 ../gtk/gtkscrollbar.c:86 msgid "Backward stepper" msgstr "Flecha de retroceso" -#: ../gtk/gtknotebook.c:845 ../gtk/gtkscrollbar.c:89 +#: ../gtk/gtknotebook.c:845 ../gtk/gtkscrollbar.c:87 msgid "Display the standard backward arrow button" msgstr "Mostrar el botón estándar de flecha de retroceso" -#: ../gtk/gtknotebook.c:859 ../gtk/gtkscrollbar.c:95 +#: ../gtk/gtknotebook.c:859 ../gtk/gtkscrollbar.c:93 msgid "Forward stepper" msgstr "Flecha de avance" -#: ../gtk/gtknotebook.c:860 ../gtk/gtkscrollbar.c:96 +#: ../gtk/gtknotebook.c:860 ../gtk/gtkscrollbar.c:94 msgid "Display the standard forward arrow button" msgstr "Mostrar el botón estándar de flecha de avance" @@ -5186,36 +5200,36 @@ msgstr "Indica si el diálogo soporta selección" msgid "Whether the application has a selection" msgstr "Indica si la aplicación tiene una selección" -#: ../gtk/gtkprogressbar.c:158 +#: ../gtk/gtkprogressbar.c:157 msgid "Fraction" msgstr "Fracción" -#: ../gtk/gtkprogressbar.c:159 +#: ../gtk/gtkprogressbar.c:158 msgid "The fraction of total work that has been completed" msgstr "La fracción del trabajo total que ha sido completado" -#: ../gtk/gtkprogressbar.c:166 +#: ../gtk/gtkprogressbar.c:165 msgid "Pulse Step" msgstr "Paso del pulso" -#: ../gtk/gtkprogressbar.c:167 +#: ../gtk/gtkprogressbar.c:166 msgid "The fraction of total progress to move the bouncing block when pulsed" msgstr "" "La fracción del progreso total para mover el bloque rebotador cuando se pulsa" -#: ../gtk/gtkprogressbar.c:175 +#: ../gtk/gtkprogressbar.c:174 msgid "Text to be displayed in the progress bar" msgstr "Texto que se mostrará en la barra de progreso" -#: ../gtk/gtkprogressbar.c:196 +#: ../gtk/gtkprogressbar.c:195 msgid "Show text" msgstr "Mostrar texto" -#: ../gtk/gtkprogressbar.c:197 +#: ../gtk/gtkprogressbar.c:196 msgid "Whether the progress is shown as text." msgstr "Indica si el progreso se muestra como texto." -#: ../gtk/gtkprogressbar.c:219 +#: ../gtk/gtkprogressbar.c:218 msgid "" "The preferred place to ellipsize the string, if the progress bar does not " "have enough room to display the entire string, if at all." @@ -5223,51 +5237,51 @@ msgstr "" "El lugar preferido para la elipsis de la cadena, si la barra de progreso no " "tiene suficiente espacio para mostrar la cadena completa." -#: ../gtk/gtkprogressbar.c:226 +#: ../gtk/gtkprogressbar.c:225 msgid "X spacing" msgstr "Espaciado X" -#: ../gtk/gtkprogressbar.c:227 +#: ../gtk/gtkprogressbar.c:226 msgid "Extra spacing applied to the width of a progress bar." msgstr "Espacio extra aplicado a la anchura de una barra de progreso." -#: ../gtk/gtkprogressbar.c:232 +#: ../gtk/gtkprogressbar.c:231 msgid "Y spacing" msgstr "Espaciado Y" -#: ../gtk/gtkprogressbar.c:233 +#: ../gtk/gtkprogressbar.c:232 msgid "Extra spacing applied to the height of a progress bar." msgstr "Espacio adicional aplicado a la altura >de una barra de progreso." -#: ../gtk/gtkprogressbar.c:246 +#: ../gtk/gtkprogressbar.c:245 msgid "Minimum horizontal bar width" msgstr "Anchura mínima de la barra horizontal" -#: ../gtk/gtkprogressbar.c:247 +#: ../gtk/gtkprogressbar.c:246 msgid "The minimum horizontal width of the progress bar" msgstr "La anchura mínima horizontal de la barra de progreso" -#: ../gtk/gtkprogressbar.c:259 +#: ../gtk/gtkprogressbar.c:258 msgid "Minimum horizontal bar height" msgstr "Altura mínima de la barra horizontal" -#: ../gtk/gtkprogressbar.c:260 +#: ../gtk/gtkprogressbar.c:259 msgid "Minimum horizontal height of the progress bar" msgstr "La altura mínima horizontal de la barra de progreso" -#: ../gtk/gtkprogressbar.c:272 +#: ../gtk/gtkprogressbar.c:271 msgid "Minimum vertical bar width" msgstr "Anchura mínima horizontal de la barra" -#: ../gtk/gtkprogressbar.c:273 +#: ../gtk/gtkprogressbar.c:272 msgid "The minimum vertical width of the progress bar" msgstr "La anchura mínima vertical de la barra de progreso" -#: ../gtk/gtkprogressbar.c:285 +#: ../gtk/gtkprogressbar.c:284 msgid "Minimum vertical bar height" msgstr "Altura mínima vertical de la barra" -#: ../gtk/gtkprogressbar.c:286 +#: ../gtk/gtkprogressbar.c:285 msgid "The minimum vertical height of the progress bar" msgstr "La altura mínima vertical de la barra de progreso" @@ -5284,7 +5298,7 @@ msgstr "" "acción es la acción actual de su grupo." #: ../gtk/gtkradioaction.c:133 ../gtk/gtkradiobutton.c:163 -#: ../gtk/gtkradiomenuitem.c:426 ../gtk/gtkradiotoolbutton.c:83 +#: ../gtk/gtkradiomenuitem.c:408 ../gtk/gtkradiotoolbutton.c:83 msgid "Group" msgstr "Grupo" @@ -5308,7 +5322,7 @@ msgstr "" msgid "The radio button whose group this widget belongs to." msgstr "El botón de radio a cuyo grupo pertenece este widget." -#: ../gtk/gtkradiomenuitem.c:427 +#: ../gtk/gtkradiomenuitem.c:409 msgid "The radio menu item whose group this widget belongs to." msgstr "El elemento del menú de radio a cuyo grupo pertenece este widget." @@ -5542,11 +5556,11 @@ msgstr "El orden de colocación de los elementos mostrados" msgid "The current filter for selecting which resources are displayed" msgstr "El filtro actual para seleccionar qué recursos se muestran" -#: ../gtk/gtkrecentmanager.c:294 +#: ../gtk/gtkrecentmanager.c:295 msgid "The full path to the file to be used to store and read the list" msgstr "La ruta completa al archivo a usar para almacenar y leer la lista" -#: ../gtk/gtkrecentmanager.c:309 +#: ../gtk/gtkrecentmanager.c:310 msgid "The size of the recently used resources list" msgstr "El tamaño de la lista de recursos usados recientemente" @@ -5652,74 +5666,74 @@ msgstr "Cómo se debería determinar el tamaño del contenido" msgid "Vertical Scrollable Policy" msgstr "Directiva de desplazamiento vertical" -#: ../gtk/gtkscrollbar.c:72 +#: ../gtk/gtkscrollbar.c:70 msgid "Minimum Slider Length" msgstr "Longitud mínima del deslizador" -#: ../gtk/gtkscrollbar.c:73 +#: ../gtk/gtkscrollbar.c:71 msgid "Minimum length of scrollbar slider" msgstr "Longitud mínima de deslizador de la barras de desplazamiento" -#: ../gtk/gtkscrollbar.c:81 +#: ../gtk/gtkscrollbar.c:79 msgid "Fixed slider size" msgstr "Tamaño del deslizador fijo" -#: ../gtk/gtkscrollbar.c:82 +#: ../gtk/gtkscrollbar.c:80 msgid "Don't change slider size, just lock it to the minimum length" msgstr "" "No cambiar el tamaño del deslizador, sólo bloquearlo a la longitud mínima" -#: ../gtk/gtkscrollbar.c:103 +#: ../gtk/gtkscrollbar.c:101 msgid "" "Display a second backward arrow button on the opposite end of the scrollbar" msgstr "" "Muestra un segundo botón con una flecha de retroceso en el extremo opuesto " "de la barra de desplazamiento" -#: ../gtk/gtkscrollbar.c:110 +#: ../gtk/gtkscrollbar.c:108 msgid "" "Display a second forward arrow button on the opposite end of the scrollbar" msgstr "" "Muestra un botón secundario con flecha de avance en el extremo opuesto de la " "barra de desplazamiento" -#: ../gtk/gtkscrolledwindow.c:367 +#: ../gtk/gtkscrolledwindow.c:368 msgid "Horizontal Adjustment" msgstr "Ajuste horizontal" -#: ../gtk/gtkscrolledwindow.c:368 +#: ../gtk/gtkscrolledwindow.c:369 msgid "The GtkAdjustment for the horizontal position" msgstr "El ajuste GtkAdjustment para la posición horizontal" -#: ../gtk/gtkscrolledwindow.c:374 +#: ../gtk/gtkscrolledwindow.c:375 msgid "Vertical Adjustment" msgstr "Ajuste vertical" -#: ../gtk/gtkscrolledwindow.c:375 +#: ../gtk/gtkscrolledwindow.c:376 msgid "The GtkAdjustment for the vertical position" msgstr "El ajuste GtkAdjustment para la posición vertical" -#: ../gtk/gtkscrolledwindow.c:381 +#: ../gtk/gtkscrolledwindow.c:382 msgid "Horizontal Scrollbar Policy" msgstr "Directiva de la barra de desplazamiento horizontal" -#: ../gtk/gtkscrolledwindow.c:382 +#: ../gtk/gtkscrolledwindow.c:383 msgid "When the horizontal scrollbar is displayed" msgstr "Cuando mostrar la barra de desplazamiento horizontal" -#: ../gtk/gtkscrolledwindow.c:389 +#: ../gtk/gtkscrolledwindow.c:390 msgid "Vertical Scrollbar Policy" msgstr "Directiva de la barra de desplazamiento vertical" -#: ../gtk/gtkscrolledwindow.c:390 +#: ../gtk/gtkscrolledwindow.c:391 msgid "When the vertical scrollbar is displayed" msgstr "Cuando mostrar la barra de desplazamiento vertical" -#: ../gtk/gtkscrolledwindow.c:398 +#: ../gtk/gtkscrolledwindow.c:399 msgid "Window Placement" msgstr "Colocación de la ventana" -#: ../gtk/gtkscrolledwindow.c:399 +#: ../gtk/gtkscrolledwindow.c:400 msgid "" "Where the contents are located with respect to the scrollbars. This property " "only takes effect if \"window-placement-set\" is TRUE." @@ -5727,11 +5741,11 @@ msgstr "" "Dónde se colocan los contenidos respecto a las barras de desplazamiento. " "Esta propiedad sólo tiene efecto si \"window-placement-set\" es TRUE." -#: ../gtk/gtkscrolledwindow.c:416 +#: ../gtk/gtkscrolledwindow.c:417 msgid "Window Placement Set" msgstr "Establece la colocación de la ventana" -#: ../gtk/gtkscrolledwindow.c:417 +#: ../gtk/gtkscrolledwindow.c:418 msgid "" "Whether \"window-placement\" should be used to determine the location of the " "contents with respect to the scrollbars." @@ -5739,55 +5753,55 @@ msgstr "" "Indica si debe usarse \"window-placement\" para determinar el lugar del " "contenido respecto a las barras de desplazamiento." -#: ../gtk/gtkscrolledwindow.c:423 +#: ../gtk/gtkscrolledwindow.c:424 msgid "Shadow Type" msgstr "Tipo de sombra" -#: ../gtk/gtkscrolledwindow.c:424 +#: ../gtk/gtkscrolledwindow.c:425 msgid "Style of bevel around the contents" msgstr "Estilo de bisel alrededor de los contenidos" -#: ../gtk/gtkscrolledwindow.c:438 +#: ../gtk/gtkscrolledwindow.c:439 msgid "Scrollbars within bevel" msgstr "Barras de desplazamiento entre biseles" -#: ../gtk/gtkscrolledwindow.c:439 +#: ../gtk/gtkscrolledwindow.c:440 msgid "Place scrollbars within the scrolled window's bevel" msgstr "" "Ubicar barras de desplazamiento entre el bisel de la ventana desplazada" -#: ../gtk/gtkscrolledwindow.c:445 +#: ../gtk/gtkscrolledwindow.c:446 msgid "Scrollbar spacing" msgstr "Espaciado de la barra de desplazamiento" -#: ../gtk/gtkscrolledwindow.c:446 +#: ../gtk/gtkscrolledwindow.c:447 msgid "Number of pixels between the scrollbars and the scrolled window" msgstr "" "Número de píxeles entre las barras de desplazamiento y la ventana enrollada" -#: ../gtk/gtkscrolledwindow.c:462 +#: ../gtk/gtkscrolledwindow.c:463 msgid "Minimum Content Width" msgstr "Anchura mínima del contenido" -#: ../gtk/gtkscrolledwindow.c:463 +#: ../gtk/gtkscrolledwindow.c:464 msgid "The minimum width that the scrolled window will allocate to its content" msgstr "" "La anchura mínima que la ventana desplazada reservará para su contenido" -#: ../gtk/gtkscrolledwindow.c:477 +#: ../gtk/gtkscrolledwindow.c:478 msgid "Minimum Content Height" msgstr "Altura mínima del contenido" -#: ../gtk/gtkscrolledwindow.c:478 +#: ../gtk/gtkscrolledwindow.c:479 msgid "" "The minimum height that the scrolled window will allocate to its content" msgstr "La altura mínima que la ventana desplazada reservará para su contenido" -#: ../gtk/gtkscrolledwindow.c:493 +#: ../gtk/gtkscrolledwindow.c:494 msgid "Kinetic Scrolling" msgstr "Desplazamiento de Kinetic" -#: ../gtk/gtkscrolledwindow.c:494 +#: ../gtk/gtkscrolledwindow.c:495 msgid "Kinetic scrolling mode." msgstr "Modo de desplazamiento de Kinetic" @@ -5799,11 +5813,11 @@ msgstr "Dibujar" msgid "Whether the separator is drawn, or just blank" msgstr "Indica si el separador se dibuja, o sólo se deja en blanco" -#: ../gtk/gtksettings.c:354 +#: ../gtk/gtksettings.c:355 msgid "Double Click Time" msgstr "Tiempo del doble pulsación" -#: ../gtk/gtksettings.c:355 +#: ../gtk/gtksettings.c:356 msgid "" "Maximum time allowed between two clicks for them to be considered a double " "click (in milliseconds)" @@ -5811,11 +5825,11 @@ msgstr "" "Tiempo máximo permitido entre dos pulsaciones para ser considerados como una " "pulsación doble (en milisegundos)" -#: ../gtk/gtksettings.c:362 +#: ../gtk/gtksettings.c:363 msgid "Double Click Distance" msgstr "Distancia de la pulsación doble" -#: ../gtk/gtksettings.c:363 +#: ../gtk/gtksettings.c:364 msgid "" "Maximum distance allowed between two clicks for them to be considered a " "double click (in pixels)" @@ -5823,35 +5837,35 @@ msgstr "" "Distancia máxima permitida entre dos pulsaciones para ser considerados como " "una pulsación doble (en píxeles)" -#: ../gtk/gtksettings.c:379 +#: ../gtk/gtksettings.c:380 msgid "Cursor Blink" msgstr "Parpadeo del cursor" -#: ../gtk/gtksettings.c:380 +#: ../gtk/gtksettings.c:381 msgid "Whether the cursor should blink" msgstr "Indica si el cursor debe parpadear" -#: ../gtk/gtksettings.c:387 +#: ../gtk/gtksettings.c:388 msgid "Cursor Blink Time" msgstr "Tiempo de parpadeo del cursor" -#: ../gtk/gtksettings.c:388 +#: ../gtk/gtksettings.c:389 msgid "Length of the cursor blink cycle, in milliseconds" msgstr "Longitud del ciclo de parpadeo del cursor, en milisegundos" -#: ../gtk/gtksettings.c:407 +#: ../gtk/gtksettings.c:408 msgid "Cursor Blink Timeout" msgstr "Intervalo de parpadeo del cursor" -#: ../gtk/gtksettings.c:408 +#: ../gtk/gtksettings.c:409 msgid "Time after which the cursor stops blinking, in seconds" msgstr "Tiempo tras el que el cursor para de parpadear, en segundos" -#: ../gtk/gtksettings.c:415 +#: ../gtk/gtksettings.c:416 msgid "Split Cursor" msgstr "Dividir cursor" -#: ../gtk/gtksettings.c:416 +#: ../gtk/gtksettings.c:417 msgid "" "Whether two cursors should be displayed for mixed left-to-right and right-to-" "left text" @@ -5859,161 +5873,161 @@ msgstr "" "Indica si deben mostrarse dos cursores para el texto mezclado de izquierda-a-" "derecha y derecha-a-izquierda" -#: ../gtk/gtksettings.c:423 +#: ../gtk/gtksettings.c:424 msgid "Theme Name" msgstr "Nombre del tema" -#: ../gtk/gtksettings.c:424 +#: ../gtk/gtksettings.c:425 msgid "Name of theme to load" msgstr "Nombre del tema que cargar" -#: ../gtk/gtksettings.c:436 +#: ../gtk/gtksettings.c:437 msgid "Icon Theme Name" msgstr "Nombre del tema de iconos" -#: ../gtk/gtksettings.c:437 +#: ../gtk/gtksettings.c:438 msgid "Name of icon theme to use" msgstr "Nombre del tema de iconos que utilizar" -#: ../gtk/gtksettings.c:445 +#: ../gtk/gtksettings.c:446 msgid "Fallback Icon Theme Name" msgstr "Nombre del tema de iconos de resguardo" -#: ../gtk/gtksettings.c:446 +#: ../gtk/gtksettings.c:447 msgid "Name of a icon theme to fall back to" msgstr "Nombre del tema de iconos que utilizar como resguardo" -#: ../gtk/gtksettings.c:454 +#: ../gtk/gtksettings.c:455 msgid "Key Theme Name" msgstr "Nombre del tema de teclas" -#: ../gtk/gtksettings.c:455 +#: ../gtk/gtksettings.c:456 msgid "Name of key theme to load" msgstr "Nombre del tema de teclas que cargar" -#: ../gtk/gtksettings.c:463 +#: ../gtk/gtksettings.c:464 msgid "Menu bar accelerator" msgstr "Acelerador de la barra de menús" -#: ../gtk/gtksettings.c:464 +#: ../gtk/gtksettings.c:465 msgid "Keybinding to activate the menu bar" msgstr "Combinación de teclas para activar la barra de menús" -#: ../gtk/gtksettings.c:472 +#: ../gtk/gtksettings.c:473 msgid "Drag threshold" msgstr "Umbral del arrastre" -#: ../gtk/gtksettings.c:473 +#: ../gtk/gtksettings.c:474 msgid "Number of pixels the cursor can move before dragging" msgstr "" "Número de píxeles que el cursor puede mover antes de iniciar el arrastre" -#: ../gtk/gtksettings.c:481 +#: ../gtk/gtksettings.c:482 msgid "Font Name" msgstr "Nombre de la tipografía" -#: ../gtk/gtksettings.c:482 +#: ../gtk/gtksettings.c:483 msgid "Name of default font to use" msgstr "Nombre de la tipografía predeterminada a utilizar" -#: ../gtk/gtksettings.c:504 +#: ../gtk/gtksettings.c:505 msgid "Icon Sizes" msgstr "Tamaños de los iconos" -#: ../gtk/gtksettings.c:505 +#: ../gtk/gtksettings.c:506 msgid "List of icon sizes (gtk-menu=16,16:gtk-button=20,20..." msgstr "Lista de tamaños de los iconos (gtk-menu=16,16:gtk-button=20,20…" -#: ../gtk/gtksettings.c:513 +#: ../gtk/gtksettings.c:514 msgid "GTK Modules" msgstr "Módulos GTK" -#: ../gtk/gtksettings.c:514 +#: ../gtk/gtksettings.c:515 msgid "List of currently active GTK modules" msgstr "Lista de módulos GTK activos actualmente" -#: ../gtk/gtksettings.c:522 +#: ../gtk/gtksettings.c:523 msgid "Xft Antialias" msgstr "Suavizado Xft" -#: ../gtk/gtksettings.c:523 +#: ../gtk/gtksettings.c:524 msgid "Whether to antialias Xft fonts; 0=no, 1=yes, -1=default" msgstr "" -"Indica si se deben suavizar los bordes de las tipografías Xft; 0=no,1=sí, " -"-1=predeterminado" +"Indica si se deben suavizar los bordes de las tipografías Xft; 0=no,1=sí, -" +"1=predeterminado" -#: ../gtk/gtksettings.c:532 +#: ../gtk/gtksettings.c:533 msgid "Xft Hinting" msgstr "Sugerencias Xft" -#: ../gtk/gtksettings.c:533 +#: ../gtk/gtksettings.c:534 msgid "Whether to hint Xft fonts; 0=no, 1=yes, -1=default" msgstr "" "Indica si se deben usar las sugerencias de las tipografías Xft; 0=no, 1 =sí, " "-1=predeterminado" -#: ../gtk/gtksettings.c:542 +#: ../gtk/gtksettings.c:543 msgid "Xft Hint Style" msgstr "Estilo de sugerencias Xft" -#: ../gtk/gtksettings.c:543 +#: ../gtk/gtksettings.c:544 msgid "" "What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull" msgstr "Qué grado de sugerencias usar: ninguno, ligero, medio o completo" -#: ../gtk/gtksettings.c:552 +#: ../gtk/gtksettings.c:553 msgid "Xft RGBA" msgstr "Xft RGBA" -#: ../gtk/gtksettings.c:553 +#: ../gtk/gtksettings.c:554 msgid "Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr" msgstr "Tipo de suavizado de subpíxel: ninguno, rgb, bgr, vrgb, vbgr" -#: ../gtk/gtksettings.c:562 +#: ../gtk/gtksettings.c:563 msgid "Xft DPI" msgstr "PPP Xft (DPI)" -#: ../gtk/gtksettings.c:563 +#: ../gtk/gtksettings.c:564 msgid "Resolution for Xft, in 1024 * dots/inch. -1 to use default value" msgstr "" "Resolución para Xft, en 1024 * puntos/pulgada. -1 para usar el valor " "predeterminado" -#: ../gtk/gtksettings.c:572 +#: ../gtk/gtksettings.c:573 msgid "Cursor theme name" msgstr "Nombre del tema del cursor" -#: ../gtk/gtksettings.c:573 +#: ../gtk/gtksettings.c:574 msgid "Name of the cursor theme to use, or NULL to use the default theme" msgstr "" "Nombre del tema de cursor que utilizar, o NULL para usar el tema " "predeterminado" -#: ../gtk/gtksettings.c:581 +#: ../gtk/gtksettings.c:582 msgid "Cursor theme size" msgstr "Tamaño del tema del cursor" -#: ../gtk/gtksettings.c:582 +#: ../gtk/gtksettings.c:583 msgid "Size to use for cursors, or 0 to use the default size" msgstr "" "Tamaño que se va a usar para los cursores, o 0 para usar el tamaño " "predeterminado" -#: ../gtk/gtksettings.c:591 +#: ../gtk/gtksettings.c:592 msgid "Alternative button order" msgstr "Orden de los botones alternativo" -#: ../gtk/gtksettings.c:592 +#: ../gtk/gtksettings.c:593 msgid "Whether buttons in dialogs should use the alternative button order" msgstr "" "Indica si los botones en los diálogos deben usar un orden de botones " "alternativo" -#: ../gtk/gtksettings.c:609 +#: ../gtk/gtksettings.c:610 msgid "Alternative sort indicator direction" msgstr "Dirección alternativa del indicador de ordenamiento" -#: ../gtk/gtksettings.c:610 +#: ../gtk/gtksettings.c:611 msgid "" "Whether the direction of the sort indicators in list and tree views is " "inverted compared to the default (where down means ascending)" @@ -6022,11 +6036,11 @@ msgstr "" "vista de árbol está invertida en comparación con la predeterminada (donde " "abajo significa ascendente)" -#: ../gtk/gtksettings.c:618 +#: ../gtk/gtksettings.c:619 msgid "Show the 'Input Methods' menu" msgstr "Mostrar el menú de métodos de entrada" -#: ../gtk/gtksettings.c:619 +#: ../gtk/gtksettings.c:620 msgid "" "Whether the context menus of entries and text views should offer to change " "the input method" @@ -6034,11 +6048,11 @@ msgstr "" "Indica si los menús de contexto y las vistas de texto deben ofrecer cambiar " "el método de entrada" -#: ../gtk/gtksettings.c:627 +#: ../gtk/gtksettings.c:628 msgid "Show the 'Insert Unicode Control Character' menu" msgstr "Mostrar el menú «Insertar carácter de control Unicode»" -#: ../gtk/gtksettings.c:628 +#: ../gtk/gtksettings.c:629 msgid "" "Whether the context menus of entries and text views should offer to insert " "control characters" @@ -6046,254 +6060,254 @@ msgstr "" "Indica si los menús de contexto de las estradas y las vistas de texto deben " "ofrecer insertar caracteres de control" -#: ../gtk/gtksettings.c:636 +#: ../gtk/gtksettings.c:637 msgid "Start timeout" msgstr "Tiempo de expiración de inicio" -#: ../gtk/gtksettings.c:637 +#: ../gtk/gtksettings.c:638 msgid "Starting value for timeouts, when button is pressed" msgstr "Valor de inicio para las expiraciones, cuando se pulsa el botón" -#: ../gtk/gtksettings.c:646 +#: ../gtk/gtksettings.c:647 msgid "Repeat timeout" msgstr "Expiración de repetición" -#: ../gtk/gtksettings.c:647 +#: ../gtk/gtksettings.c:648 msgid "Repeat value for timeouts, when button is pressed" msgstr "Valor de repetición para expiraciones, cuando el botón se pulsa" -#: ../gtk/gtksettings.c:656 +#: ../gtk/gtksettings.c:657 msgid "Expand timeout" msgstr "Expiración del expansor" -#: ../gtk/gtksettings.c:657 +#: ../gtk/gtksettings.c:658 msgid "Expand value for timeouts, when a widget is expanding a new region" msgstr "" "Valor de expansión para las expiraciones, cuando un widget está expandiendo " "una región nueva" -#: ../gtk/gtksettings.c:695 +#: ../gtk/gtksettings.c:696 msgid "Color scheme" msgstr "Esquema de color" -#: ../gtk/gtksettings.c:696 +#: ../gtk/gtksettings.c:697 msgid "A palette of named colors for use in themes" msgstr "Una paleta de colores con nombre para usar en los temas" -#: ../gtk/gtksettings.c:705 +#: ../gtk/gtksettings.c:706 msgid "Enable Animations" msgstr "Activar animaciones" -#: ../gtk/gtksettings.c:706 +#: ../gtk/gtksettings.c:707 msgid "Whether to enable toolkit-wide animations." msgstr "Indica si se activan las animaciones para todo el toolkit." -#: ../gtk/gtksettings.c:727 +#: ../gtk/gtksettings.c:728 msgid "Enable Touchscreen Mode" msgstr "Activar modo pantalla táctil" -#: ../gtk/gtksettings.c:728 +#: ../gtk/gtksettings.c:729 msgid "When TRUE, there are no motion notify events delivered on this screen" msgstr "" "Cuando esté a TRUE, no hay eventos de notificación de movimiento entregados " "en esta pantalla" -#: ../gtk/gtksettings.c:745 +#: ../gtk/gtksettings.c:746 msgid "Tooltip timeout" msgstr "Tiempo de expiración de la sugerencia" -#: ../gtk/gtksettings.c:746 +#: ../gtk/gtksettings.c:747 msgid "Timeout before tooltip is shown" msgstr "Tiempo de expiración antes de que se muestre la sugerencia" -#: ../gtk/gtksettings.c:771 +#: ../gtk/gtksettings.c:772 msgid "Tooltip browse timeout" msgstr "Tiempo de las sugerencias de navegación" -#: ../gtk/gtksettings.c:772 +#: ../gtk/gtksettings.c:773 msgid "Timeout before tooltip is shown when browse mode is enabled" msgstr "" "Tiempo de expiración antes de que se muestre la sugerencia cuando el modo de " "navegación está activado" -#: ../gtk/gtksettings.c:793 +#: ../gtk/gtksettings.c:794 msgid "Tooltip browse mode timeout" msgstr "Tiempo de las sugerencias en modo navegación" -#: ../gtk/gtksettings.c:794 +#: ../gtk/gtksettings.c:795 msgid "Timeout after which browse mode is disabled" msgstr "" "Tiempo de expiración después del cual se desactiva el modo de navegación" -#: ../gtk/gtksettings.c:813 +#: ../gtk/gtksettings.c:814 msgid "Keynav Cursor Only" msgstr "Sólo cursor para navegar con teclas" -#: ../gtk/gtksettings.c:814 +#: ../gtk/gtksettings.c:815 msgid "When TRUE, there are only cursor keys available to navigate widgets" msgstr "" "Cuando sea TRUE, sólo hay teclas de cursos disponibles para navegar por los " "widgets" -#: ../gtk/gtksettings.c:831 +#: ../gtk/gtksettings.c:832 msgid "Keynav Wrap Around" msgstr "Saltar al navegar con el teclado" -#: ../gtk/gtksettings.c:832 +#: ../gtk/gtksettings.c:833 msgid "Whether to wrap around when keyboard-navigating widgets" msgstr "" "Indica si se ha de saltar alrededor cuando se navegue por los widgets con el " "teclado" -#: ../gtk/gtksettings.c:852 +#: ../gtk/gtksettings.c:853 msgid "Error Bell" msgstr "Campana de error" -#: ../gtk/gtksettings.c:853 +#: ../gtk/gtksettings.c:854 msgid "When TRUE, keyboard navigation and other errors will cause a beep" msgstr "" "Cuando sea TRUE, la navegación con el teclado y otros errores causarán un bip" -#: ../gtk/gtksettings.c:872 +#: ../gtk/gtksettings.c:873 msgid "Color Hash" msgstr "Hash del color" -#: ../gtk/gtksettings.c:873 +#: ../gtk/gtksettings.c:874 msgid "A hash table representation of the color scheme." msgstr "Una representación en tabla hash del esquema de color." -#: ../gtk/gtksettings.c:881 +#: ../gtk/gtksettings.c:882 msgid "Default file chooser backend" msgstr "Backend predeterminado del selector de archivos" -#: ../gtk/gtksettings.c:882 +#: ../gtk/gtksettings.c:883 msgid "Name of the GtkFileChooser backend to use by default" msgstr "Nombre del backend predeterminado del GtkFileChooser" -#: ../gtk/gtksettings.c:899 +#: ../gtk/gtksettings.c:900 msgid "Default print backend" msgstr "Backend predeterminado de impresión" -#: ../gtk/gtksettings.c:900 +#: ../gtk/gtksettings.c:901 msgid "List of the GtkPrintBackend backends to use by default" msgstr "Lista de backends GtkPrintBackend para usar por omisión" -#: ../gtk/gtksettings.c:923 +#: ../gtk/gtksettings.c:924 msgid "Default command to run when displaying a print preview" msgstr "" "Comando predeterminado que ejecutar al mostrar una vista previa de impresión" -#: ../gtk/gtksettings.c:924 +#: ../gtk/gtksettings.c:925 msgid "Command to run when displaying a print preview" msgstr "Comando que ejecutar al mostrar una vista previa de impresión" -#: ../gtk/gtksettings.c:940 +#: ../gtk/gtksettings.c:941 msgid "Enable Mnemonics" msgstr "Activar mnemónicos" -#: ../gtk/gtksettings.c:941 +#: ../gtk/gtksettings.c:942 msgid "Whether labels should have mnemonics" msgstr "Indica si las etiquetas deben tener mnemónicos" -#: ../gtk/gtksettings.c:957 +#: ../gtk/gtksettings.c:958 msgid "Enable Accelerators" msgstr "Activar aceleradores" -#: ../gtk/gtksettings.c:958 +#: ../gtk/gtksettings.c:959 msgid "Whether menu items should have accelerators" msgstr "Indica si los elementos del menú deben tener aceleradores" -#: ../gtk/gtksettings.c:975 +#: ../gtk/gtksettings.c:976 msgid "Recent Files Limit" msgstr "Límite de archivos recientes" -#: ../gtk/gtksettings.c:976 +#: ../gtk/gtksettings.c:977 msgid "Number of recently used files" msgstr "Número de archivos usados recientemente" -#: ../gtk/gtksettings.c:996 +#: ../gtk/gtksettings.c:997 msgid "Default IM module" msgstr "Módulo de método de entrada predeterminado" -#: ../gtk/gtksettings.c:997 +#: ../gtk/gtksettings.c:998 msgid "Which IM module should be used by default" msgstr "Qué módulo de método de entrada se debe usar de forma predeterminada" -#: ../gtk/gtksettings.c:1015 +#: ../gtk/gtksettings.c:1016 msgid "Recent Files Max Age" msgstr "Antigüedad máxima de los archivos recientes" -#: ../gtk/gtksettings.c:1016 +#: ../gtk/gtksettings.c:1017 msgid "Maximum age of recently used files, in days" msgstr "Máxima antigüedad para los archivos recientemente usados, en días" -#: ../gtk/gtksettings.c:1025 +#: ../gtk/gtksettings.c:1026 msgid "Fontconfig configuration timestamp" msgstr "Configuración de la marca de tiempo de fontconfig" -#: ../gtk/gtksettings.c:1026 +#: ../gtk/gtksettings.c:1027 msgid "Timestamp of current fontconfig configuration" msgstr "Marca de tiempo de la configuración actual de fontconfig" -#: ../gtk/gtksettings.c:1048 +#: ../gtk/gtksettings.c:1049 msgid "Sound Theme Name" msgstr "Nombre del tema de sonido" -#: ../gtk/gtksettings.c:1049 +#: ../gtk/gtksettings.c:1050 msgid "XDG sound theme name" msgstr "Nombre del tema de sonido XDG" #. Translators: this means sounds that are played as feedback to user input -#: ../gtk/gtksettings.c:1071 +#: ../gtk/gtksettings.c:1072 msgid "Audible Input Feedback" msgstr "Contexto de entrada audible" -#: ../gtk/gtksettings.c:1072 +#: ../gtk/gtksettings.c:1073 msgid "Whether to play event sounds as feedback to user input" msgstr "" "Indica si se deben reproducir eventos como respuesta a las entradas del " "usuario" -#: ../gtk/gtksettings.c:1093 +#: ../gtk/gtksettings.c:1094 msgid "Enable Event Sounds" msgstr "Activar eventos de sonido" -#: ../gtk/gtksettings.c:1094 +#: ../gtk/gtksettings.c:1095 msgid "Whether to play any event sounds at all" msgstr "Indica si se debe reproducir cualquier evento de sonido" -#: ../gtk/gtksettings.c:1109 +#: ../gtk/gtksettings.c:1110 msgid "Enable Tooltips" msgstr "Activar sugerencias" -#: ../gtk/gtksettings.c:1110 +#: ../gtk/gtksettings.c:1111 msgid "Whether tooltips should be shown on widgets" msgstr "Indica si se deben mostrar las sugerencias en los widgets" -#: ../gtk/gtksettings.c:1123 +#: ../gtk/gtksettings.c:1124 msgid "Toolbar style" msgstr "Estilo de la barra de herramientas" -#: ../gtk/gtksettings.c:1124 +#: ../gtk/gtksettings.c:1125 msgid "" "Whether default toolbars have text only, text and icons, icons only, etc." msgstr "" "Indica si las barras de herramientas predeterminadas tienen sólo texto, " "texto e iconos, sólo iconos, etc." -#: ../gtk/gtksettings.c:1138 +#: ../gtk/gtksettings.c:1139 msgid "Toolbar Icon Size" msgstr "Tamaño del icono de la barra de herramientas" -#: ../gtk/gtksettings.c:1139 +#: ../gtk/gtksettings.c:1140 msgid "The size of icons in default toolbars." msgstr "El tamaño de los iconos el las barras de herramientas." -#: ../gtk/gtksettings.c:1156 +#: ../gtk/gtksettings.c:1157 msgid "Auto Mnemonics" msgstr "Mnemónicos automáticos" -#: ../gtk/gtksettings.c:1157 +#: ../gtk/gtksettings.c:1158 msgid "" "Whether mnemonics should be automatically shown and hidden when the user " "presses the mnemonic activator." @@ -6301,22 +6315,22 @@ msgstr "" "Indica si se deben mostrar y ocultar automáticamente los mnemónicos cuando " "el usuario pulsa el activador de mnemónicos." -#: ../gtk/gtksettings.c:1173 +#: ../gtk/gtksettings.c:1174 msgid "Primary button warps slider" msgstr "El botón primario deforma el deslizador" -#: ../gtk/gtksettings.c:1174 +#: ../gtk/gtksettings.c:1175 msgid "" "Whether a primary click on the trough should warp the slider into position" msgstr "" "Indica si una pulsación en el carril debe deformar el deslizador en la " "posición" -#: ../gtk/gtksettings.c:1190 +#: ../gtk/gtksettings.c:1191 msgid "Visible Focus" msgstr "Foco visible" -#: ../gtk/gtksettings.c:1191 +#: ../gtk/gtksettings.c:1192 msgid "" "Whether 'focus rectangles' should be hidden until the user starts to use the " "keyboard." @@ -6324,63 +6338,63 @@ msgstr "" "Indica si los «rectángulos de foco» se deben ocultar hasta que el usuario " "comienza a usar el teclado." -#: ../gtk/gtksettings.c:1217 +#: ../gtk/gtksettings.c:1218 msgid "Application prefers a dark theme" msgstr "La aplicación prefiere un tema oscuro" -#: ../gtk/gtksettings.c:1218 +#: ../gtk/gtksettings.c:1219 msgid "Whether the application prefers to have a dark theme." msgstr "Indica si la aplicación prefiere un tema oscuro." -#: ../gtk/gtksettings.c:1233 +#: ../gtk/gtksettings.c:1234 msgid "Show button images" msgstr "Mostrar imágenes en los botones" -#: ../gtk/gtksettings.c:1234 +#: ../gtk/gtksettings.c:1235 msgid "Whether images should be shown on buttons" msgstr "Indica si se deben mostrar las imágenes en los botones" -#: ../gtk/gtksettings.c:1242 ../gtk/gtksettings.c:1336 +#: ../gtk/gtksettings.c:1243 ../gtk/gtksettings.c:1337 msgid "Select on focus" msgstr "Seleccionar al enfocar" -#: ../gtk/gtksettings.c:1243 +#: ../gtk/gtksettings.c:1244 msgid "Whether to select the contents of an entry when it is focused" msgstr "" "Indica si se deben seleccionar los contenidos de una entrada cuando obtiene " "el foco" -#: ../gtk/gtksettings.c:1260 +#: ../gtk/gtksettings.c:1261 msgid "Password Hint Timeout" msgstr "Tiempo de expiración del hint de contraseña" -#: ../gtk/gtksettings.c:1261 +#: ../gtk/gtksettings.c:1262 msgid "How long to show the last input character in hidden entries" msgstr "" "Indica durante cuánto tiempo mostrar el último carácter en las entradas " "ocultas" -#: ../gtk/gtksettings.c:1270 +#: ../gtk/gtksettings.c:1271 msgid "Show menu images" msgstr "Mostrar imágenes del menú" -#: ../gtk/gtksettings.c:1271 +#: ../gtk/gtksettings.c:1272 msgid "Whether images should be shown in menus" msgstr "Indica si deben mostrarse o no las imágenes en los menús" -#: ../gtk/gtksettings.c:1279 +#: ../gtk/gtksettings.c:1280 msgid "Delay before drop down menus appear" msgstr "Retardo antes de que aparezcan los menús desplegables" -#: ../gtk/gtksettings.c:1280 +#: ../gtk/gtksettings.c:1281 msgid "Delay before the submenus of a menu bar appear" msgstr "Retardo antes de que aparezcan los submenús de una barra de menús" -#: ../gtk/gtksettings.c:1297 +#: ../gtk/gtksettings.c:1298 msgid "Scrolled Window Placement" msgstr "Colocación de la ventana donde se ha desplazado" -#: ../gtk/gtksettings.c:1298 +#: ../gtk/gtksettings.c:1299 msgid "" "Where the contents of scrolled windows are located with respect to the " "scrollbars, if not overridden by the scrolled window's own placement." @@ -6389,33 +6403,33 @@ msgstr "" "respecto a las barras de desplazamiento, si no toma precedencia por el " "propio emplazamiento de la ventana donde se hizo scroll." -#: ../gtk/gtksettings.c:1307 +#: ../gtk/gtksettings.c:1308 msgid "Can change accelerators" msgstr "Puede cambiar aceleradores" -#: ../gtk/gtksettings.c:1308 +#: ../gtk/gtksettings.c:1309 msgid "" "Whether menu accelerators can be changed by pressing a key over the menu item" msgstr "" "Indica si los aceleradores del menú pueden cambiarse pulsando una tecla " "sobre el elemento del menú" -#: ../gtk/gtksettings.c:1316 +#: ../gtk/gtksettings.c:1317 msgid "Delay before submenus appear" msgstr "Retraso antes de que aparezcan los submenús" -#: ../gtk/gtksettings.c:1317 +#: ../gtk/gtksettings.c:1318 msgid "" "Minimum time the pointer must stay over a menu item before the submenu appear" msgstr "" "Tiempo mínimo en que el puntero debe permanecer sobre un elemento de menú " "antes de que el submenú aparezca" -#: ../gtk/gtksettings.c:1326 +#: ../gtk/gtksettings.c:1327 msgid "Delay before hiding a submenu" msgstr "Retraso antes de ocultar un submenú" -#: ../gtk/gtksettings.c:1327 +#: ../gtk/gtksettings.c:1328 msgid "" "The time before hiding a submenu when the pointer is moving towards the " "submenu" @@ -6423,41 +6437,41 @@ msgstr "" "El tiempo antes de ocultar un submenú cuando el puntero se este moviendo " "hacia el submenú" -#: ../gtk/gtksettings.c:1337 +#: ../gtk/gtksettings.c:1338 msgid "Whether to select the contents of a selectable label when it is focused" msgstr "" "Indica si se debe seleccionar el contenido de una etiqueta seleccionable " "cuando obtiene el foco" -#: ../gtk/gtksettings.c:1345 +#: ../gtk/gtksettings.c:1346 msgid "Custom palette" msgstr "Paleta personalizada" -#: ../gtk/gtksettings.c:1346 +#: ../gtk/gtksettings.c:1347 msgid "Palette to use in the color selector" msgstr "Paleta que se usará en el selector de colores" -#: ../gtk/gtksettings.c:1354 +#: ../gtk/gtksettings.c:1355 msgid "IM Preedit style" msgstr "Estilo de preedición del ME" -#: ../gtk/gtksettings.c:1355 +#: ../gtk/gtksettings.c:1356 msgid "How to draw the input method preedit string" msgstr "Cómo dibujar la cadena del método de entrada de preedición" -#: ../gtk/gtksettings.c:1364 +#: ../gtk/gtksettings.c:1365 msgid "IM Status style" msgstr "Estilo del estado ME" -#: ../gtk/gtksettings.c:1365 +#: ../gtk/gtksettings.c:1366 msgid "How to draw the input method statusbar" msgstr "Cómo dibujar el método de entrada de la barra de estado" -#: ../gtk/gtksettings.c:1374 +#: ../gtk/gtksettings.c:1375 msgid "Desktop shell shows app menu" msgstr "La shell del escritorio muestra el menú de aplicaciones" -#: ../gtk/gtksettings.c:1375 +#: ../gtk/gtksettings.c:1376 msgid "" "Set to TRUE if the desktop environment is displaying the app menu, FALSE if " "the app should display it itself." @@ -6466,11 +6480,11 @@ msgstr "" "aplicaciones, o a falso si el menú de aplicaciones se debe mostrar por sí " "mismo." -#: ../gtk/gtksettings.c:1384 +#: ../gtk/gtksettings.c:1385 msgid "Desktop shell shows the menubar" msgstr "La shell del escritorio muestra la barra de menú" -#: ../gtk/gtksettings.c:1385 +#: ../gtk/gtksettings.c:1386 msgid "" "Set to TRUE if the desktop environment is displaying the menubar, FALSE if " "the app should display it itself." @@ -6478,11 +6492,11 @@ msgstr "" "Establecer a cierto si el entorno de escritorio muestra la barra de menú, o " "a falso si las aplicaciones se debe mostrarla por sí mismas." -#: ../gtk/gtksettings.c:1402 +#: ../gtk/gtksettings.c:1403 msgid "Enable primary paste" msgstr "Activar el pegado primario" -#: ../gtk/gtksettings.c:1403 +#: ../gtk/gtksettings.c:1404 msgid "" "Whether a middle click on a mouse should paste the 'PRIMARY' clipboard " "content at the cursor location." @@ -6490,6 +6504,15 @@ msgstr "" "Indica si una pulsación con el botón central del ratón debe pegar el " "contenido del portapapeles «PRIMARIO» en la posición del cursor." +#: ../gtk/gtksettings.c:1420 +#| msgid "Recent Files Max Age" +msgid "Recent Files Enabled" +msgstr "Archivos recientes activados" + +#: ../gtk/gtksettings.c:1421 +msgid "Whether GTK+ remembers recent files" +msgstr "Indica si GTK+ recuerda los archivos recientes" + #: ../gtk/gtksizegroup.c:324 ../gtk/gtktreeselection.c:129 msgid "Mode" msgstr "Modo" @@ -6593,7 +6616,7 @@ msgstr "Indica si el icono de estado está empotrado" msgid "The orientation of the tray" msgstr "La orientación de la bandeja" -#: ../gtk/gtkstatusicon.c:358 ../gtk/gtkwidget.c:1125 +#: ../gtk/gtkstatusicon.c:358 ../gtk/gtkwidget.c:1189 msgid "Has tooltip" msgstr "Tiene consejo" @@ -6601,15 +6624,15 @@ msgstr "Tiene consejo" msgid "Whether this tray icon has a tooltip" msgstr "Indica si el icono de la bandeja tiene un consejo" -#: ../gtk/gtkstatusicon.c:384 ../gtk/gtkwidget.c:1146 +#: ../gtk/gtkstatusicon.c:384 ../gtk/gtkwidget.c:1210 msgid "Tooltip Text" msgstr "Texto de la sugerencia" -#: ../gtk/gtkstatusicon.c:385 ../gtk/gtkwidget.c:1147 ../gtk/gtkwidget.c:1168 +#: ../gtk/gtkstatusicon.c:385 ../gtk/gtkwidget.c:1211 ../gtk/gtkwidget.c:1232 msgid "The contents of the tooltip for this widget" msgstr "El contenido de las sugerencias para este widget" -#: ../gtk/gtkstatusicon.c:408 ../gtk/gtkwidget.c:1167 +#: ../gtk/gtkstatusicon.c:408 ../gtk/gtkwidget.c:1231 msgid "Tooltip markup" msgstr "Marcado de sugerencias" @@ -6621,19 +6644,28 @@ msgstr "El contenido de las sugerencias para este icono de la bandeja" msgid "The title of this tray icon" msgstr "El título de este icono de la bandeja" -#: ../gtk/gtkstylecontext.c:443 +#: ../gtk/gtkstylecontext.c:445 msgid "The associated GdkScreen" msgstr "La GdkScreen asociada" -#: ../gtk/gtkstylecontext.c:449 +#: ../gtk/gtkstylecontext.c:451 +msgid "FrameClock" +msgstr "FrameClock" + +#: ../gtk/gtkstylecontext.c:452 +#| msgid "The associated GdkScreen" +msgid "The associated GdkFrameClock" +msgstr "El GdkFrameClock asociado" + +#: ../gtk/gtkstylecontext.c:458 msgid "Direction" msgstr "Dirección" -#: ../gtk/gtkstylecontext.c:450 ../gtk/gtktexttag.c:287 +#: ../gtk/gtkstylecontext.c:459 ../gtk/gtktexttag.c:287 msgid "Text direction" msgstr "Dirección del texto" -#: ../gtk/gtkstylecontext.c:466 +#: ../gtk/gtkstylecontext.c:475 msgid "The parent style context" msgstr "Estilo del contexto del padre" @@ -6715,16 +6747,16 @@ msgstr "" "La lista de destinos que soporta este búfer para pegar desde el portapapeles " "y el destino del DND" -#: ../gtk/gtktexthandle.c:470 ../gtk/gtktexthandle.c:471 -#: ../gtk/gtkwidget.c:991 +#: ../gtk/gtktexthandle.c:483 ../gtk/gtktexthandle.c:484 +#: ../gtk/gtkwidget.c:1055 msgid "Parent widget" msgstr "Widget padre" -#: ../gtk/gtktexthandle.c:478 ../gtk/gtkwidget.c:1182 +#: ../gtk/gtktexthandle.c:491 ../gtk/gtkwidget.c:1246 msgid "Window" msgstr "Ventana" -#: ../gtk/gtktexthandle.c:479 +#: ../gtk/gtktexthandle.c:492 msgid "Window the coordinates are based upon" msgstr "Ventana en la que se basan las coordenadas" @@ -6816,7 +6848,7 @@ msgstr "" "tema, etc. por lo cual se recomienda. Pango define previamente algunas " "escalas tales como PANGO_SCALE_X_LARGE" -#: ../gtk/gtktexttag.c:405 ../gtk/gtktextview.c:721 +#: ../gtk/gtktexttag.c:405 ../gtk/gtktextview.c:722 msgid "Left, right, or center justification" msgstr "Justificación a la izquierda, derecha o centro" @@ -6833,7 +6865,7 @@ msgstr "" msgid "Left margin" msgstr "Margen izquierdo" -#: ../gtk/gtktexttag.c:432 ../gtk/gtktextview.c:730 +#: ../gtk/gtktexttag.c:432 ../gtk/gtktextview.c:731 msgid "Width of the left margin in pixels" msgstr "Anchura del margen izquierdo en píxeles" @@ -6841,15 +6873,15 @@ msgstr "Anchura del margen izquierdo en píxeles" msgid "Right margin" msgstr "Margen derecho" -#: ../gtk/gtktexttag.c:442 ../gtk/gtktextview.c:740 +#: ../gtk/gtktexttag.c:442 ../gtk/gtktextview.c:741 msgid "Width of the right margin in pixels" msgstr "Anchura del margen derecho en píxeles" -#: ../gtk/gtktexttag.c:452 ../gtk/gtktextview.c:749 +#: ../gtk/gtktexttag.c:452 ../gtk/gtktextview.c:750 msgid "Indent" msgstr "Sangrar" -#: ../gtk/gtktexttag.c:453 ../gtk/gtktextview.c:750 +#: ../gtk/gtktexttag.c:453 ../gtk/gtktextview.c:751 msgid "Amount to indent the paragraph, in pixels" msgstr "Número de píxeles para el sangrado del párrafo" @@ -6865,7 +6897,7 @@ msgstr "" msgid "Pixels above lines" msgstr "Píxeles encima de las líneas" -#: ../gtk/gtktexttag.c:474 ../gtk/gtktextview.c:674 +#: ../gtk/gtktexttag.c:474 ../gtk/gtktextview.c:675 msgid "Pixels of blank space above paragraphs" msgstr "Píxeles de espacio en blanco encima de los párrafos" @@ -6873,7 +6905,7 @@ msgstr "Píxeles de espacio en blanco encima de los párrafos" msgid "Pixels below lines" msgstr "Píxeles debajo de las líneas" -#: ../gtk/gtktexttag.c:484 ../gtk/gtktextview.c:684 +#: ../gtk/gtktexttag.c:484 ../gtk/gtktextview.c:685 msgid "Pixels of blank space below paragraphs" msgstr "Píxeles de espacio en blanco debajo de los párrafos" @@ -6881,22 +6913,22 @@ msgstr "Píxeles de espacio en blanco debajo de los párrafos" msgid "Pixels inside wrap" msgstr "Píxeles dentro del ajuste" -#: ../gtk/gtktexttag.c:494 ../gtk/gtktextview.c:694 +#: ../gtk/gtktexttag.c:494 ../gtk/gtktextview.c:695 msgid "Pixels of blank space between wrapped lines in a paragraph" msgstr "Píxeles de espacio en blanco entre las líneas ajustadas en un párrafo" -#: ../gtk/gtktexttag.c:521 ../gtk/gtktextview.c:712 +#: ../gtk/gtktexttag.c:521 ../gtk/gtktextview.c:713 msgid "" "Whether to wrap lines never, at word boundaries, or at character boundaries" msgstr "" "Indica si deben ajustarse las líneas, a los límites de las palabras, a los " "límites de los caracteres, o nunca" -#: ../gtk/gtktexttag.c:530 ../gtk/gtktextview.c:759 +#: ../gtk/gtktexttag.c:530 ../gtk/gtktextview.c:760 msgid "Tabs" msgstr "Pestañas" -#: ../gtk/gtktexttag.c:531 ../gtk/gtktextview.c:760 +#: ../gtk/gtktexttag.c:531 ../gtk/gtktextview.c:761 msgid "Custom tabs for this text" msgstr "Pestañas personalizadas para este texto" @@ -7034,63 +7066,63 @@ msgstr "Fondo de parágrafo establecido" msgid "Whether this tag affects the paragraph background color" msgstr "Indica si esta etiqueta afecta el color de fondo del parágrafo" -#: ../gtk/gtktextview.c:673 +#: ../gtk/gtktextview.c:674 msgid "Pixels Above Lines" msgstr "Píxeles sobre las líneas" -#: ../gtk/gtktextview.c:683 +#: ../gtk/gtktextview.c:684 msgid "Pixels Below Lines" msgstr "Píxeles por debajo de las líneas" -#: ../gtk/gtktextview.c:693 +#: ../gtk/gtktextview.c:694 msgid "Pixels Inside Wrap" msgstr "Píxeles dentro del ajuste" -#: ../gtk/gtktextview.c:711 +#: ../gtk/gtktextview.c:712 msgid "Wrap Mode" msgstr "Modo de ajuste" -#: ../gtk/gtktextview.c:729 +#: ../gtk/gtktextview.c:730 msgid "Left Margin" msgstr "Margen izquierdo" -#: ../gtk/gtktextview.c:739 +#: ../gtk/gtktextview.c:740 msgid "Right Margin" msgstr "Margen derecho" -#: ../gtk/gtktextview.c:767 +#: ../gtk/gtktextview.c:768 msgid "Cursor Visible" msgstr "Cursor visible" -#: ../gtk/gtktextview.c:768 +#: ../gtk/gtktextview.c:769 msgid "If the insertion cursor is shown" msgstr "Si se muestra el cursor de inserción" -#: ../gtk/gtktextview.c:775 +#: ../gtk/gtktextview.c:776 msgid "Buffer" msgstr "Búfer" -#: ../gtk/gtktextview.c:776 +#: ../gtk/gtktextview.c:777 msgid "The buffer which is displayed" msgstr "El búfer que se está mostrando" -#: ../gtk/gtktextview.c:784 +#: ../gtk/gtktextview.c:785 msgid "Whether entered text overwrites existing contents" msgstr "Indica si el texto introducido sobreescribe el existente" -#: ../gtk/gtktextview.c:791 +#: ../gtk/gtktextview.c:792 msgid "Accepts tab" msgstr "Acepta tabuladores" -#: ../gtk/gtktextview.c:792 +#: ../gtk/gtktextview.c:793 msgid "Whether Tab will result in a tab character being entered" msgstr "Indica si Tab resultará en la introducción de un carácter tabulador" -#: ../gtk/gtktextview.c:863 +#: ../gtk/gtktextview.c:864 msgid "Error underline color" msgstr "Color de subrayado de errores" -#: ../gtk/gtktextview.c:864 +#: ../gtk/gtktextview.c:865 msgid "Color with which to draw error-indication underlines" msgstr "Color con el que dibujar el subrayado de indicación de errores" @@ -7128,85 +7160,85 @@ msgstr "Indicador de dibujo" msgid "If the toggle part of the button is displayed" msgstr "Si se muestra la parte de conmutación del botón" -#: ../gtk/gtktoolbar.c:501 ../gtk/gtktoolpalette.c:1043 +#: ../gtk/gtktoolbar.c:498 ../gtk/gtktoolpalette.c:1045 msgid "Toolbar Style" msgstr "Estilo de la barra de herramientas" -#: ../gtk/gtktoolbar.c:502 +#: ../gtk/gtktoolbar.c:499 msgid "How to draw the toolbar" msgstr "Cómo dibujar la barra de herramientas" -#: ../gtk/gtktoolbar.c:509 +#: ../gtk/gtktoolbar.c:506 msgid "Show Arrow" msgstr "Mostrar flecha" -#: ../gtk/gtktoolbar.c:510 +#: ../gtk/gtktoolbar.c:507 msgid "If an arrow should be shown if the toolbar doesn't fit" msgstr "" "Indica si debe mostrarse una flecha si no cabe la barra de herramientas" -#: ../gtk/gtktoolbar.c:531 +#: ../gtk/gtktoolbar.c:528 msgid "Size of icons in this toolbar" msgstr "Tamaño de los iconos en esta barra de herramientas" -#: ../gtk/gtktoolbar.c:546 ../gtk/gtktoolpalette.c:1029 +#: ../gtk/gtktoolbar.c:543 ../gtk/gtktoolpalette.c:1031 msgid "Icon size set" msgstr "Tamaño del icono establecido" -#: ../gtk/gtktoolbar.c:547 ../gtk/gtktoolpalette.c:1030 +#: ../gtk/gtktoolbar.c:544 ../gtk/gtktoolpalette.c:1032 msgid "Whether the icon-size property has been set" msgstr "Indica si se ha establecido la propiedad de tamaño del icono" -#: ../gtk/gtktoolbar.c:556 +#: ../gtk/gtktoolbar.c:553 msgid "Whether the item should receive extra space when the toolbar grows" msgstr "" "Indica si el elemento debe recibir espacio extra cuando la barra crezca" -#: ../gtk/gtktoolbar.c:564 ../gtk/gtktoolitemgroup.c:1651 +#: ../gtk/gtktoolbar.c:561 ../gtk/gtktoolitemgroup.c:1651 msgid "Whether the item should be the same size as other homogeneous items" msgstr "" "Indica si el elemento debe ser del mismo tamaño que otros elementos " "homogéneos" -#: ../gtk/gtktoolbar.c:571 +#: ../gtk/gtktoolbar.c:568 msgid "Spacer size" msgstr "Tamaño del espaciador" -#: ../gtk/gtktoolbar.c:572 +#: ../gtk/gtktoolbar.c:569 msgid "Size of spacers" msgstr "Tamaño de los espaciadores" -#: ../gtk/gtktoolbar.c:590 +#: ../gtk/gtktoolbar.c:587 msgid "Amount of border space between the toolbar shadow and the buttons" msgstr "" "Número de espacio del borde entre la sombra de la barra de herramientas y " "los botones" -#: ../gtk/gtktoolbar.c:598 +#: ../gtk/gtktoolbar.c:595 msgid "Maximum child expand" msgstr "Expansión de hijos máxima" -#: ../gtk/gtktoolbar.c:599 +#: ../gtk/gtktoolbar.c:596 msgid "Maximum amount of space an expandable item will be given" msgstr "Cantidad máxima de espacio que se le dará a un elemento expandible" -#: ../gtk/gtktoolbar.c:607 +#: ../gtk/gtktoolbar.c:604 msgid "Space style" msgstr "Estilo del espacio" -#: ../gtk/gtktoolbar.c:608 +#: ../gtk/gtktoolbar.c:605 msgid "Whether spacers are vertical lines or just blank" msgstr "Indica si los espaciadores son líneas verticales o sólo blancos" -#: ../gtk/gtktoolbar.c:615 +#: ../gtk/gtktoolbar.c:612 msgid "Button relief" msgstr "Borde del botón" -#: ../gtk/gtktoolbar.c:616 +#: ../gtk/gtktoolbar.c:613 msgid "Type of bevel around toolbar buttons" msgstr "Tipo de bisel alrededor de los botones de la barra de herramientas" -#: ../gtk/gtktoolbar.c:632 +#: ../gtk/gtktoolbar.c:629 msgid "Style of bevel around the toolbar" msgstr "Estilo del bisel alrededor de la barra de herramientas" @@ -7328,25 +7360,25 @@ msgstr "Indica si el elemento debería iniciar una fila nueva" msgid "Position of the item within this group" msgstr "Posición del elemento en su grupo" -#: ../gtk/gtktoolpalette.c:1014 +#: ../gtk/gtktoolpalette.c:1016 msgid "Size of icons in this tool palette" msgstr "Tamaño de los iconos en esta paleta de herramientas" -#: ../gtk/gtktoolpalette.c:1044 +#: ../gtk/gtktoolpalette.c:1046 msgid "Style of items in the tool palette" msgstr "Estilo de los elementos en la paleta de herramientas" -#: ../gtk/gtktoolpalette.c:1060 +#: ../gtk/gtktoolpalette.c:1062 msgid "Exclusive" msgstr "Exclusivo" -#: ../gtk/gtktoolpalette.c:1061 +#: ../gtk/gtktoolpalette.c:1063 msgid "Whether the item group should be the only expanded at a given time" msgstr "" "Indica si el elemento del grupo deben ser el único expandido en un " "determinado momento" -#: ../gtk/gtktoolpalette.c:1076 +#: ../gtk/gtktoolpalette.c:1078 msgid "" "Whether the item group should receive extra space when the palette grows" msgstr "" @@ -7433,326 +7465,326 @@ msgstr "Modelo TreeModelSort" msgid "The model for the TreeModelSort to sort" msgstr "El modelo para el TreeModelSort a ordenar" -#: ../gtk/gtktreeview.c:992 +#: ../gtk/gtktreeview.c:985 msgid "TreeView Model" msgstr "Modelo TreeView" -#: ../gtk/gtktreeview.c:993 +#: ../gtk/gtktreeview.c:986 msgid "The model for the tree view" msgstr "El modelo para la vista de árbol" -#: ../gtk/gtktreeview.c:1005 +#: ../gtk/gtktreeview.c:998 msgid "Headers Visible" msgstr "Cabeceras visibles" -#: ../gtk/gtktreeview.c:1006 +#: ../gtk/gtktreeview.c:999 msgid "Show the column header buttons" msgstr "Mostrar botones en los encabezados de columna" -#: ../gtk/gtktreeview.c:1013 +#: ../gtk/gtktreeview.c:1006 msgid "Headers Clickable" msgstr "Cabeceras pulsables" -#: ../gtk/gtktreeview.c:1014 +#: ../gtk/gtktreeview.c:1007 msgid "Column headers respond to click events" msgstr "Las cabeceras de las columnas responden a los eventos de pulsación" -#: ../gtk/gtktreeview.c:1021 +#: ../gtk/gtktreeview.c:1014 msgid "Expander Column" msgstr "Columna expansora" -#: ../gtk/gtktreeview.c:1022 +#: ../gtk/gtktreeview.c:1015 msgid "Set the column for the expander column" msgstr "Define la columna para la columna expansora" -#: ../gtk/gtktreeview.c:1037 +#: ../gtk/gtktreeview.c:1030 msgid "Rules Hint" msgstr "Sugerencia de las reglas" -#: ../gtk/gtktreeview.c:1038 +#: ../gtk/gtktreeview.c:1031 msgid "Set a hint to the theme engine to draw rows in alternating colors" msgstr "" "Define un consejo para el motor del tema para dibujar las filas con colores " "alternativos" -#: ../gtk/gtktreeview.c:1045 +#: ../gtk/gtktreeview.c:1038 msgid "Enable Search" msgstr "Habilitar búsqueda" -#: ../gtk/gtktreeview.c:1046 +#: ../gtk/gtktreeview.c:1039 msgid "View allows user to search through columns interactively" msgstr "" "La vista permite a los usuarios buscar en forma interactiva a través de las " "columnas" -#: ../gtk/gtktreeview.c:1053 +#: ../gtk/gtktreeview.c:1046 msgid "Search Column" msgstr "Columna de búsqueda" -#: ../gtk/gtktreeview.c:1054 +#: ../gtk/gtktreeview.c:1047 msgid "Model column to search through during interactive search" msgstr "" "Columna modelo para buscar a través de ella en una búsqueda interactiva" -#: ../gtk/gtktreeview.c:1074 +#: ../gtk/gtktreeview.c:1067 msgid "Fixed Height Mode" msgstr "Modo de altura fija" -#: ../gtk/gtktreeview.c:1075 +#: ../gtk/gtktreeview.c:1068 msgid "Speeds up GtkTreeView by assuming that all rows have the same height" msgstr "" "Acelera GtkTreeView asumiendo que todas las filas tienen la misma altura" -#: ../gtk/gtktreeview.c:1095 +#: ../gtk/gtktreeview.c:1088 msgid "Hover Selection" msgstr "Selección al pasar por encima" -#: ../gtk/gtktreeview.c:1096 +#: ../gtk/gtktreeview.c:1089 msgid "Whether the selection should follow the pointer" msgstr "Indica si la selección debe seguir al puntero" -#: ../gtk/gtktreeview.c:1115 +#: ../gtk/gtktreeview.c:1108 msgid "Hover Expand" msgstr "Expandir al poner el cursor encima" -#: ../gtk/gtktreeview.c:1116 +#: ../gtk/gtktreeview.c:1109 msgid "" "Whether rows should be expanded/collapsed when the pointer moves over them" msgstr "" "Indica si las filas deben expandirse/contraerse cuando el puntero se mueve " "sobre ellas" -#: ../gtk/gtktreeview.c:1130 +#: ../gtk/gtktreeview.c:1123 msgid "Show Expanders" msgstr "Mostrar expansores" -#: ../gtk/gtktreeview.c:1131 +#: ../gtk/gtktreeview.c:1124 msgid "View has expanders" msgstr "La vista tiene expansores" -#: ../gtk/gtktreeview.c:1145 +#: ../gtk/gtktreeview.c:1138 msgid "Level Indentation" msgstr "Nivel de sangrado" -#: ../gtk/gtktreeview.c:1146 +#: ../gtk/gtktreeview.c:1139 msgid "Extra indentation for each level" msgstr "Sangría extra para cada nivel" -#: ../gtk/gtktreeview.c:1155 +#: ../gtk/gtktreeview.c:1148 msgid "Rubber Banding" msgstr "Bandas de goma" -#: ../gtk/gtktreeview.c:1156 +#: ../gtk/gtktreeview.c:1149 msgid "" "Whether to enable selection of multiple items by dragging the mouse pointer" msgstr "" "Indica si se debe activar la selección de múltiples elementos arrastrándo el " "puntero del ratón" -#: ../gtk/gtktreeview.c:1163 +#: ../gtk/gtktreeview.c:1156 msgid "Enable Grid Lines" msgstr "Activar líneas de la rejilla" -#: ../gtk/gtktreeview.c:1164 +#: ../gtk/gtktreeview.c:1157 msgid "Whether grid lines should be drawn in the tree view" msgstr "Indica si debe haber un icono cerca del elemento" -#: ../gtk/gtktreeview.c:1172 +#: ../gtk/gtktreeview.c:1165 msgid "Enable Tree Lines" msgstr "Activar líneas del árbol" -#: ../gtk/gtktreeview.c:1173 +#: ../gtk/gtktreeview.c:1166 msgid "Whether tree lines should be drawn in the tree view" msgstr "Indica si deben dibujar las líneas en la vista del árbol" -#: ../gtk/gtktreeview.c:1181 +#: ../gtk/gtktreeview.c:1174 msgid "The column in the model containing the tooltip texts for the rows" msgstr "" "La columna del modelo que contiene los textos de consejo para las filas" -#: ../gtk/gtktreeview.c:1203 +#: ../gtk/gtktreeview.c:1212 msgid "Vertical Separator Width" msgstr "Anchura del separador vertical" -#: ../gtk/gtktreeview.c:1204 +#: ../gtk/gtktreeview.c:1213 msgid "Vertical space between cells. Must be an even number" msgstr "Espacio vertical entre celdas. Debe ser un número par" -#: ../gtk/gtktreeview.c:1212 +#: ../gtk/gtktreeview.c:1221 msgid "Horizontal Separator Width" msgstr "Anchura del separador horizontal" -#: ../gtk/gtktreeview.c:1213 +#: ../gtk/gtktreeview.c:1222 msgid "Horizontal space between cells. Must be an even number" msgstr "Espacio horizontal entre celdas. Debe ser un número par" -#: ../gtk/gtktreeview.c:1221 +#: ../gtk/gtktreeview.c:1230 msgid "Allow Rules" msgstr "Permitir reglas" -#: ../gtk/gtktreeview.c:1222 +#: ../gtk/gtktreeview.c:1231 msgid "Allow drawing of alternating color rows" msgstr "Permitir el dibujado de filas con colores alternativos" -#: ../gtk/gtktreeview.c:1228 +#: ../gtk/gtktreeview.c:1237 msgid "Indent Expanders" msgstr "Sangrar expansores" -#: ../gtk/gtktreeview.c:1229 +#: ../gtk/gtktreeview.c:1238 msgid "Make the expanders indented" msgstr "Crea los expansores sangrados" -#: ../gtk/gtktreeview.c:1235 +#: ../gtk/gtktreeview.c:1244 msgid "Even Row Color" msgstr "Color de la fila par" -#: ../gtk/gtktreeview.c:1236 +#: ../gtk/gtktreeview.c:1245 msgid "Color to use for even rows" msgstr "Color a usar para las filas pares" -#: ../gtk/gtktreeview.c:1242 +#: ../gtk/gtktreeview.c:1251 msgid "Odd Row Color" msgstr "Color de la fila impar" -#: ../gtk/gtktreeview.c:1243 +#: ../gtk/gtktreeview.c:1252 msgid "Color to use for odd rows" msgstr "Color a usar para las filas impares" -#: ../gtk/gtktreeview.c:1249 +#: ../gtk/gtktreeview.c:1258 msgid "Grid line width" msgstr "Anchura de la línea de la rejilla" -#: ../gtk/gtktreeview.c:1250 +#: ../gtk/gtktreeview.c:1259 msgid "Width, in pixels, of the tree view grid lines" msgstr "Anchura, en píxeles, de la línea indicadora del foco" -#: ../gtk/gtktreeview.c:1256 +#: ../gtk/gtktreeview.c:1265 msgid "Tree line width" msgstr "Anchura de la línea del árbol" -#: ../gtk/gtktreeview.c:1257 +#: ../gtk/gtktreeview.c:1266 msgid "Width, in pixels, of the tree view lines" msgstr "Anchura, en píxeles, de la línea indicadora del foco" -#: ../gtk/gtktreeview.c:1263 +#: ../gtk/gtktreeview.c:1272 msgid "Grid line pattern" msgstr "Patrón de la línea de la rejilla" -#: ../gtk/gtktreeview.c:1264 +#: ../gtk/gtktreeview.c:1273 msgid "Dash pattern used to draw the tree view grid lines" msgstr "" "Patrón de guiones utilizado para dibujar las líneas de rejilla de la vista " "de árbol" -#: ../gtk/gtktreeview.c:1270 +#: ../gtk/gtktreeview.c:1279 msgid "Tree line pattern" msgstr "Patrón de la línea del árbol" -#: ../gtk/gtktreeview.c:1271 +#: ../gtk/gtktreeview.c:1280 msgid "Dash pattern used to draw the tree view lines" msgstr "" "Patrón de guiones utilizado para dibujar las líneas de la vista de árbol" -#: ../gtk/gtktreeviewcolumn.c:248 +#: ../gtk/gtktreeviewcolumn.c:246 msgid "Whether to display the column" msgstr "Indica si se debe mostrar la columna" -#: ../gtk/gtktreeviewcolumn.c:255 ../gtk/gtkwindow.c:651 +#: ../gtk/gtktreeviewcolumn.c:253 ../gtk/gtkwindow.c:649 msgid "Resizable" msgstr "Redimensionable" -#: ../gtk/gtktreeviewcolumn.c:256 +#: ../gtk/gtktreeviewcolumn.c:254 msgid "Column is user-resizable" msgstr "La columna es ajustable por el usuario" -#: ../gtk/gtktreeviewcolumn.c:264 +#: ../gtk/gtktreeviewcolumn.c:262 msgid "Current X position of the column" msgstr "Posicion X actual de la columna" -#: ../gtk/gtktreeviewcolumn.c:274 +#: ../gtk/gtktreeviewcolumn.c:272 msgid "Current width of the column" msgstr "Anchura actual de la columna" -#: ../gtk/gtktreeviewcolumn.c:291 +#: ../gtk/gtktreeviewcolumn.c:289 msgid "Sizing" msgstr "Dimensionar" -#: ../gtk/gtktreeviewcolumn.c:292 +#: ../gtk/gtktreeviewcolumn.c:290 msgid "Resize mode of the column" msgstr "Modo de redimensionado de la columna" -#: ../gtk/gtktreeviewcolumn.c:300 +#: ../gtk/gtktreeviewcolumn.c:298 msgid "Fixed Width" msgstr "Anchura fijo" -#: ../gtk/gtktreeviewcolumn.c:301 +#: ../gtk/gtktreeviewcolumn.c:299 msgid "Current fixed width of the column" msgstr "Anchura fijo actual de la columna" -#: ../gtk/gtktreeviewcolumn.c:311 +#: ../gtk/gtktreeviewcolumn.c:309 msgid "Minimum allowed width of the column" msgstr "Anchura mínimo permitido de la columna" -#: ../gtk/gtktreeviewcolumn.c:320 +#: ../gtk/gtktreeviewcolumn.c:318 msgid "Maximum Width" msgstr "Anchura máximo" -#: ../gtk/gtktreeviewcolumn.c:321 +#: ../gtk/gtktreeviewcolumn.c:319 msgid "Maximum allowed width of the column" msgstr "Anchura máximo permitido de la columna" -#: ../gtk/gtktreeviewcolumn.c:331 +#: ../gtk/gtktreeviewcolumn.c:329 msgid "Title to appear in column header" msgstr "Título que aparecerá en el encabezado de columna" -#: ../gtk/gtktreeviewcolumn.c:339 +#: ../gtk/gtktreeviewcolumn.c:337 msgid "Column gets share of extra width allocated to the widget" msgstr "" "La columna obtiene compartición de anchura extra asignada para el widget" -#: ../gtk/gtktreeviewcolumn.c:346 +#: ../gtk/gtktreeviewcolumn.c:344 msgid "Clickable" msgstr "Pulsable" -#: ../gtk/gtktreeviewcolumn.c:347 +#: ../gtk/gtktreeviewcolumn.c:345 msgid "Whether the header can be clicked" msgstr "Indica si la cabecera puede ser pulsada" -#: ../gtk/gtktreeviewcolumn.c:356 +#: ../gtk/gtktreeviewcolumn.c:354 msgid "Widget to put in column header button instead of column title" msgstr "" "Widget a colocar en el botón de la cabecera de la columna en lugar del " "título de la columna" -#: ../gtk/gtktreeviewcolumn.c:364 +#: ../gtk/gtktreeviewcolumn.c:362 msgid "X Alignment of the column header text or widget" msgstr "Alineación X del texto o el widget de la cabecera de la columna" -#: ../gtk/gtktreeviewcolumn.c:374 +#: ../gtk/gtktreeviewcolumn.c:372 msgid "Whether the column can be reordered around the headers" msgstr "Indica si la columna poder ser reordenada alrededor de las cabeceras" -#: ../gtk/gtktreeviewcolumn.c:381 +#: ../gtk/gtktreeviewcolumn.c:379 msgid "Sort indicator" msgstr "Indicador de ordenación" -#: ../gtk/gtktreeviewcolumn.c:382 +#: ../gtk/gtktreeviewcolumn.c:380 msgid "Whether to show a sort indicator" msgstr "Indica si se debe mostrar un indicador de ordenamiento" -#: ../gtk/gtktreeviewcolumn.c:389 +#: ../gtk/gtktreeviewcolumn.c:387 msgid "Sort order" msgstr "Orden de la ordenación" -#: ../gtk/gtktreeviewcolumn.c:390 +#: ../gtk/gtktreeviewcolumn.c:388 msgid "Sort direction the sort indicator should indicate" msgstr "Dirección de ordenación que el indicador deberá indicar" -#: ../gtk/gtktreeviewcolumn.c:406 +#: ../gtk/gtktreeviewcolumn.c:404 msgid "Sort column ID" msgstr "ID de columna de ordenación" -#: ../gtk/gtktreeviewcolumn.c:407 +#: ../gtk/gtktreeviewcolumn.c:405 msgid "Logical sort column ID this column sorts on when selected for sorting" msgstr "" "ID de columna de ordenación lógica que ordena esta columna cuando se " @@ -7770,7 +7802,7 @@ msgstr "Definición del IU combinado" msgid "An XML string describing the merged UI" msgstr "Una cadena XML describiendo el IU combinado" -#: ../gtk/gtkviewport.c:156 +#: ../gtk/gtkviewport.c:157 msgid "Determines how the shadowed box around the viewport is drawn" msgstr "" "Determina como es dibujado el marco sombreado alrededor del puerto de visión" @@ -7783,23 +7815,23 @@ msgstr "Usar iconos simbólicos" msgid "Whether to use symbolic icons" msgstr "Indica si se deben usar enlaces simbólicos" -#: ../gtk/gtkwidget.c:984 +#: ../gtk/gtkwidget.c:1048 msgid "Widget name" msgstr "Nombre del widget" -#: ../gtk/gtkwidget.c:985 +#: ../gtk/gtkwidget.c:1049 msgid "The name of the widget" msgstr "El nombre del widget" -#: ../gtk/gtkwidget.c:992 +#: ../gtk/gtkwidget.c:1056 msgid "The parent widget of this widget. Must be a Container widget" msgstr "El widget padre de este widget. Debe ser un widget contenedor" -#: ../gtk/gtkwidget.c:999 +#: ../gtk/gtkwidget.c:1063 msgid "Width request" msgstr "Petición de anchura" -#: ../gtk/gtkwidget.c:1000 +#: ../gtk/gtkwidget.c:1064 msgid "" "Override for width request of the widget, or -1 if natural request should be " "used" @@ -7807,11 +7839,11 @@ msgstr "" "Sobreescribir el ancho solicitado del widget, o -1 si deber ser utilizado la " "solicitud natural" -#: ../gtk/gtkwidget.c:1008 +#: ../gtk/gtkwidget.c:1072 msgid "Height request" msgstr "Petición de altura" -#: ../gtk/gtkwidget.c:1009 +#: ../gtk/gtkwidget.c:1073 msgid "" "Override for height request of the widget, or -1 if natural request should " "be used" @@ -7819,84 +7851,84 @@ msgstr "" "Sobreescribir la altura solicitada del widget, o -1 si deber ser utilizada " "la solicitud natural" -#: ../gtk/gtkwidget.c:1018 +#: ../gtk/gtkwidget.c:1082 msgid "Whether the widget is visible" msgstr "Indica si el widget es visible" -#: ../gtk/gtkwidget.c:1025 +#: ../gtk/gtkwidget.c:1089 msgid "Whether the widget responds to input" msgstr "Indica si el widget responde al ingreso" -#: ../gtk/gtkwidget.c:1031 +#: ../gtk/gtkwidget.c:1095 msgid "Application paintable" msgstr "Pintable por la aplicación" -#: ../gtk/gtkwidget.c:1032 +#: ../gtk/gtkwidget.c:1096 msgid "Whether the application will paint directly on the widget" msgstr "Indica si la aplicación pintará directamente sobre el widget" -#: ../gtk/gtkwidget.c:1038 +#: ../gtk/gtkwidget.c:1102 msgid "Can focus" msgstr "Puede enfocar" -#: ../gtk/gtkwidget.c:1039 +#: ../gtk/gtkwidget.c:1103 msgid "Whether the widget can accept the input focus" msgstr "Indica si el widget puede aceptar el foco de entrada" -#: ../gtk/gtkwidget.c:1045 +#: ../gtk/gtkwidget.c:1109 msgid "Has focus" msgstr "Tiene foco" -#: ../gtk/gtkwidget.c:1046 +#: ../gtk/gtkwidget.c:1110 msgid "Whether the widget has the input focus" msgstr "Indica si el widget tiene el foco de entrada" -#: ../gtk/gtkwidget.c:1052 +#: ../gtk/gtkwidget.c:1116 msgid "Is focus" msgstr "Tiene el foco" -#: ../gtk/gtkwidget.c:1053 +#: ../gtk/gtkwidget.c:1117 msgid "Whether the widget is the focus widget within the toplevel" msgstr "Indica si el widget es el widget con foco dentro del nivel superior" -#: ../gtk/gtkwidget.c:1059 +#: ../gtk/gtkwidget.c:1123 msgid "Can default" msgstr "Puede por omisión" -#: ../gtk/gtkwidget.c:1060 +#: ../gtk/gtkwidget.c:1124 msgid "Whether the widget can be the default widget" msgstr "Indica si el widget puede ser el widget predeterminado" -#: ../gtk/gtkwidget.c:1066 +#: ../gtk/gtkwidget.c:1130 msgid "Has default" msgstr "Tiene por omisión" -#: ../gtk/gtkwidget.c:1067 +#: ../gtk/gtkwidget.c:1131 msgid "Whether the widget is the default widget" msgstr "Indica si el widget es el widget predeterminado" -#: ../gtk/gtkwidget.c:1073 +#: ../gtk/gtkwidget.c:1137 msgid "Receives default" msgstr "Recibe por omisión" -#: ../gtk/gtkwidget.c:1074 +#: ../gtk/gtkwidget.c:1138 msgid "If TRUE, the widget will receive the default action when it is focused" msgstr "" "Si es TRUE el widget recibirá la acción predeterminada cuando obtiene el foco" -#: ../gtk/gtkwidget.c:1080 +#: ../gtk/gtkwidget.c:1144 msgid "Composite child" msgstr "Hijo compuesto" -#: ../gtk/gtkwidget.c:1081 +#: ../gtk/gtkwidget.c:1145 msgid "Whether the widget is part of a composite widget" msgstr "Indica si el widget es parte de un widget compuesto" -#: ../gtk/gtkwidget.c:1087 +#: ../gtk/gtkwidget.c:1151 msgid "Style" msgstr "Estilo" -#: ../gtk/gtkwidget.c:1088 +#: ../gtk/gtkwidget.c:1152 msgid "" "The style of the widget, which contains information about how it will look " "(colors etc)" @@ -7904,172 +7936,182 @@ msgstr "" "El estilo del widget, que contiene información sobre la apariencia (colores, " "etc)" -#: ../gtk/gtkwidget.c:1094 +#: ../gtk/gtkwidget.c:1158 msgid "Events" msgstr "Eventos" -#: ../gtk/gtkwidget.c:1095 +#: ../gtk/gtkwidget.c:1159 msgid "The event mask that decides what kind of GdkEvents this widget gets" msgstr "" "La máscara de eventos que decide que tipo de GtkEvents recibe este widget" -#: ../gtk/gtkwidget.c:1102 +#: ../gtk/gtkwidget.c:1166 msgid "No show all" msgstr "No mostrar todo" -#: ../gtk/gtkwidget.c:1103 +#: ../gtk/gtkwidget.c:1167 msgid "Whether gtk_widget_show_all() should not affect this widget" msgstr "Indica que gtk_widget_show_all() no debe afectar a este widget" -#: ../gtk/gtkwidget.c:1126 +#: ../gtk/gtkwidget.c:1190 msgid "Whether this widget has a tooltip" msgstr "Indica si el widget tiene un consejo" -#: ../gtk/gtkwidget.c:1183 +#: ../gtk/gtkwidget.c:1247 msgid "The widget's window if it is realized" msgstr "La ventana del widget si se realiza" -#: ../gtk/gtkwidget.c:1197 +#: ../gtk/gtkwidget.c:1261 msgid "Double Buffered" msgstr "Búfer doble" -#: ../gtk/gtkwidget.c:1198 +#: ../gtk/gtkwidget.c:1262 msgid "Whether the widget is double buffered" msgstr "Indica si el widget tiene búfer doble" -#: ../gtk/gtkwidget.c:1213 +#: ../gtk/gtkwidget.c:1277 msgid "How to position in extra horizontal space" msgstr "Cómo posicionar en el espacio horizontal adicional" -#: ../gtk/gtkwidget.c:1229 +#: ../gtk/gtkwidget.c:1293 msgid "How to position in extra vertical space" msgstr "Cómo posicionar en el espacio vertical adicional" -#: ../gtk/gtkwidget.c:1248 +#: ../gtk/gtkwidget.c:1312 msgid "Margin on Left" msgstr "Margen a la izquierda" -#: ../gtk/gtkwidget.c:1249 +#: ../gtk/gtkwidget.c:1313 msgid "Pixels of extra space on the left side" msgstr "Píxeles de espacio adicional en la parte izquierda" -#: ../gtk/gtkwidget.c:1269 +#: ../gtk/gtkwidget.c:1333 msgid "Margin on Right" msgstr "Margen a la derecha" -#: ../gtk/gtkwidget.c:1270 +#: ../gtk/gtkwidget.c:1334 msgid "Pixels of extra space on the right side" msgstr "Píxeles de espacio adicional en la parte derecha" -#: ../gtk/gtkwidget.c:1290 +#: ../gtk/gtkwidget.c:1354 msgid "Margin on Top" msgstr "Margen arriba" -#: ../gtk/gtkwidget.c:1291 +#: ../gtk/gtkwidget.c:1355 msgid "Pixels of extra space on the top side" msgstr "Píxeles de espacio adicional en la parte superior" -#: ../gtk/gtkwidget.c:1311 +#: ../gtk/gtkwidget.c:1375 msgid "Margin on Bottom" msgstr "Margen abajo" -#: ../gtk/gtkwidget.c:1312 +#: ../gtk/gtkwidget.c:1376 msgid "Pixels of extra space on the bottom side" msgstr "Píxeles de espacio adicional en la parte inferior" -#: ../gtk/gtkwidget.c:1329 +#: ../gtk/gtkwidget.c:1393 msgid "All Margins" msgstr "Todos los márgenes" -#: ../gtk/gtkwidget.c:1330 +#: ../gtk/gtkwidget.c:1394 msgid "Pixels of extra space on all four sides" msgstr "Píxeles de espacio adicionales en las cuatro partes" -#: ../gtk/gtkwidget.c:1363 +#: ../gtk/gtkwidget.c:1427 msgid "Horizontal Expand" msgstr "Expansión horizontal" -#: ../gtk/gtkwidget.c:1364 +#: ../gtk/gtkwidget.c:1428 msgid "Whether widget wants more horizontal space" msgstr "Indica si el widget quiere usar más espacio horizontal" -#: ../gtk/gtkwidget.c:1378 +#: ../gtk/gtkwidget.c:1442 msgid "Horizontal Expand Set" msgstr "Ajuste de expansión horizontal" -#: ../gtk/gtkwidget.c:1379 +#: ../gtk/gtkwidget.c:1443 msgid "Whether to use the hexpand property" msgstr "Indica si se debe usar la propiedad hexpand" -#: ../gtk/gtkwidget.c:1393 +#: ../gtk/gtkwidget.c:1457 msgid "Vertical Expand" msgstr "Expansión vertial" -#: ../gtk/gtkwidget.c:1394 +#: ../gtk/gtkwidget.c:1458 msgid "Whether widget wants more vertical space" msgstr "Indica si el widget quiere usar más espacio vertical" -#: ../gtk/gtkwidget.c:1408 +#: ../gtk/gtkwidget.c:1472 msgid "Vertical Expand Set" msgstr "Ajuste de expansión vertical" -#: ../gtk/gtkwidget.c:1409 +#: ../gtk/gtkwidget.c:1473 msgid "Whether to use the vexpand property" msgstr "Indica si se debe usar la propiedad vexpand" -#: ../gtk/gtkwidget.c:1423 +#: ../gtk/gtkwidget.c:1487 msgid "Expand Both" msgstr "Expandir en ambas" -#: ../gtk/gtkwidget.c:1424 +#: ../gtk/gtkwidget.c:1488 msgid "Whether widget wants to expand in both directions" msgstr "Indica si el widget quiere expandirse en ambas direcciones" -#: ../gtk/gtkwidget.c:3145 +#: ../gtk/gtkwidget.c:1505 +#| msgid "Opacity for Window" +msgid "Opacity for Widget" +msgstr "Opacidad para el widget" + +#: ../gtk/gtkwidget.c:1506 +#| msgid "The opacity of the window, from 0 to 1" +msgid "The opacity of the widget, from 0 to 1" +msgstr "La opacidad del widget, desde 0 hasta 1" + +#: ../gtk/gtkwidget.c:3235 msgid "Interior Focus" msgstr "Foco interior" -#: ../gtk/gtkwidget.c:3146 +#: ../gtk/gtkwidget.c:3236 msgid "Whether to draw the focus indicator inside widgets" msgstr "Indica si se ha de dibujar el indicador del foco dentro de los widgets" -#: ../gtk/gtkwidget.c:3152 +#: ../gtk/gtkwidget.c:3242 msgid "Focus linewidth" msgstr "Dar foco al ancho de línea" -#: ../gtk/gtkwidget.c:3153 +#: ../gtk/gtkwidget.c:3243 msgid "Width, in pixels, of the focus indicator line" msgstr "Anchura, en píxeles, de la línea indicadora del foco" -#: ../gtk/gtkwidget.c:3159 +#: ../gtk/gtkwidget.c:3249 msgid "Focus line dash pattern" msgstr "Dar foco a la línea con patrón punteado" -#: ../gtk/gtkwidget.c:3160 +#: ../gtk/gtkwidget.c:3250 msgid "Dash pattern used to draw the focus indicator" msgstr "Patrón punteado utilizado para dibujar el indicador de foco" -#: ../gtk/gtkwidget.c:3165 +#: ../gtk/gtkwidget.c:3255 msgid "Focus padding" msgstr "Relleno del foco" -#: ../gtk/gtkwidget.c:3166 +#: ../gtk/gtkwidget.c:3256 msgid "Width, in pixels, between focus indicator and the widget 'box'" msgstr "Anchura, en píxeles, entre el indicador de foco y la «caja» del widget" -#: ../gtk/gtkwidget.c:3171 +#: ../gtk/gtkwidget.c:3261 msgid "Cursor color" msgstr "Color del cursor" -#: ../gtk/gtkwidget.c:3172 +#: ../gtk/gtkwidget.c:3262 msgid "Color with which to draw insertion cursor" msgstr "Color con el cual dibujar el cursor de inserción" -#: ../gtk/gtkwidget.c:3177 +#: ../gtk/gtkwidget.c:3267 msgid "Secondary cursor color" msgstr "Color secundario del cursor" -#: ../gtk/gtkwidget.c:3178 +#: ../gtk/gtkwidget.c:3268 msgid "" "Color with which to draw the secondary insertion cursor when editing mixed " "right-to-left and left-to-right text" @@ -8077,43 +8119,43 @@ msgstr "" "Color con el cual dibujar el cursor de inserción secundario cuando se esta " "editando una mezcla de texto de derecha-a-izquierda y izquierda-a-derecha" -#: ../gtk/gtkwidget.c:3183 +#: ../gtk/gtkwidget.c:3273 msgid "Cursor line aspect ratio" msgstr "Proporción de la línea del cursor" -#: ../gtk/gtkwidget.c:3184 +#: ../gtk/gtkwidget.c:3274 msgid "Aspect ratio with which to draw insertion cursor" msgstr "La proporción con la cual dibujar el cursor de inserción" -#: ../gtk/gtkwidget.c:3190 +#: ../gtk/gtkwidget.c:3280 msgid "Window dragging" msgstr "Arrastre de ventana" -#: ../gtk/gtkwidget.c:3191 +#: ../gtk/gtkwidget.c:3281 msgid "Whether windows can be dragged by clicking on empty areas" msgstr "Indica si las ventanas se pueden arrastrar pulsando en áreas vacías" -#: ../gtk/gtkwidget.c:3204 +#: ../gtk/gtkwidget.c:3294 msgid "Unvisited Link Color" msgstr "Color del enlace no visitado" -#: ../gtk/gtkwidget.c:3205 +#: ../gtk/gtkwidget.c:3295 msgid "Color of unvisited links" msgstr "Color de los enlaces no visitados" -#: ../gtk/gtkwidget.c:3218 +#: ../gtk/gtkwidget.c:3308 msgid "Visited Link Color" msgstr "Color del enlace visitado" -#: ../gtk/gtkwidget.c:3219 +#: ../gtk/gtkwidget.c:3309 msgid "Color of visited links" msgstr "Color de los enlaces visitados" -#: ../gtk/gtkwidget.c:3233 +#: ../gtk/gtkwidget.c:3323 msgid "Wide Separators" msgstr "Separadores anchos" -#: ../gtk/gtkwidget.c:3234 +#: ../gtk/gtkwidget.c:3324 msgid "" "Whether separators have configurable width and should be drawn using a box " "instead of a line" @@ -8121,89 +8163,89 @@ msgstr "" "Indica si los separadores tienen anchura configurable y deben dibujarse " "usando una caja en lugar de una línea" -#: ../gtk/gtkwidget.c:3248 +#: ../gtk/gtkwidget.c:3338 msgid "Separator Width" msgstr "Anchura del separador" -#: ../gtk/gtkwidget.c:3249 +#: ../gtk/gtkwidget.c:3339 msgid "The width of separators if wide-separators is TRUE" msgstr "La anchura de los separadores si «wide-separators« es TRUE" -#: ../gtk/gtkwidget.c:3263 +#: ../gtk/gtkwidget.c:3353 msgid "Separator Height" msgstr "Altura del separador" -#: ../gtk/gtkwidget.c:3264 +#: ../gtk/gtkwidget.c:3354 msgid "The height of separators if \"wide-separators\" is TRUE" msgstr "La altura de los separadores si «wide-separators» es TRUE" -#: ../gtk/gtkwidget.c:3278 +#: ../gtk/gtkwidget.c:3368 msgid "Horizontal Scroll Arrow Length" msgstr "Longitud de la flecha de desplazamiento horizontal" -#: ../gtk/gtkwidget.c:3279 +#: ../gtk/gtkwidget.c:3369 msgid "The length of horizontal scroll arrows" msgstr "La longitud de las flechas de desplazamiento horizontal" -#: ../gtk/gtkwidget.c:3293 +#: ../gtk/gtkwidget.c:3383 msgid "Vertical Scroll Arrow Length" msgstr "Longitud de las flechas de desplazamiento vertical" -#: ../gtk/gtkwidget.c:3294 +#: ../gtk/gtkwidget.c:3384 msgid "The length of vertical scroll arrows" msgstr "La longitud de las flechas de desplazamiento vertical" -#: ../gtk/gtkwidget.c:3300 ../gtk/gtkwidget.c:3301 +#: ../gtk/gtkwidget.c:3390 ../gtk/gtkwidget.c:3391 msgid "Width of text selection handles" msgstr "Anchura de la selección de texto" -#: ../gtk/gtkwidget.c:3306 ../gtk/gtkwidget.c:3307 +#: ../gtk/gtkwidget.c:3396 ../gtk/gtkwidget.c:3397 msgid "Height of text selection handles" msgstr "Altura de la selección de texto" -#: ../gtk/gtkwindow.c:609 +#: ../gtk/gtkwindow.c:607 msgid "Window Type" msgstr "Tipo de ventana" -#: ../gtk/gtkwindow.c:610 +#: ../gtk/gtkwindow.c:608 msgid "The type of the window" msgstr "El tipo de la ventana" -#: ../gtk/gtkwindow.c:618 +#: ../gtk/gtkwindow.c:616 msgid "Window Title" msgstr "Título de la ventana" -#: ../gtk/gtkwindow.c:619 +#: ../gtk/gtkwindow.c:617 msgid "The title of the window" msgstr "El título de la ventana" -#: ../gtk/gtkwindow.c:626 +#: ../gtk/gtkwindow.c:624 msgid "Window Role" msgstr "Rol de la ventana" -#: ../gtk/gtkwindow.c:627 +#: ../gtk/gtkwindow.c:625 msgid "Unique identifier for the window to be used when restoring a session" msgstr "" "Identificador único para la ventana para usarlo al restaurar una sesión" -#: ../gtk/gtkwindow.c:643 +#: ../gtk/gtkwindow.c:641 msgid "Startup ID" msgstr "ID de inicio" -#: ../gtk/gtkwindow.c:644 +#: ../gtk/gtkwindow.c:642 msgid "Unique startup identifier for the window used by startup-notification" msgstr "" "Identificador único de inicio para la ventana usado por startup-notification" -#: ../gtk/gtkwindow.c:652 +#: ../gtk/gtkwindow.c:650 msgid "If TRUE, users can resize the window" msgstr "Si es TRUE los usuario pueden redimensionar la ventana" -#: ../gtk/gtkwindow.c:659 +#: ../gtk/gtkwindow.c:657 msgid "Modal" msgstr "Modal" -#: ../gtk/gtkwindow.c:660 +#: ../gtk/gtkwindow.c:658 msgid "" "If TRUE, the window is modal (other windows are not usable while this one is " "up)" @@ -8211,99 +8253,99 @@ msgstr "" "Si es TRUE, esta ventana es modal (no se pueden utilizar otras ventanas " "mientras ésta este encima)" -#: ../gtk/gtkwindow.c:667 +#: ../gtk/gtkwindow.c:665 msgid "Window Position" msgstr "Posición de la ventana" -#: ../gtk/gtkwindow.c:668 +#: ../gtk/gtkwindow.c:666 msgid "The initial position of the window" msgstr "La posición inicial de la ventana" -#: ../gtk/gtkwindow.c:676 +#: ../gtk/gtkwindow.c:674 msgid "Default Width" msgstr "Anchura predeterminada" -#: ../gtk/gtkwindow.c:677 +#: ../gtk/gtkwindow.c:675 msgid "The default width of the window, used when initially showing the window" msgstr "" "El ancho predeterminado de la ventana, utilizado cuando se muestra " "inicialmente la ventana" -#: ../gtk/gtkwindow.c:686 +#: ../gtk/gtkwindow.c:684 msgid "Default Height" msgstr "Altura predeterminada" -#: ../gtk/gtkwindow.c:687 +#: ../gtk/gtkwindow.c:685 msgid "" "The default height of the window, used when initially showing the window" msgstr "" "La altura predeterminada de la ventana, utilizado cuando se muestra " "inicialmente la ventana" -#: ../gtk/gtkwindow.c:696 +#: ../gtk/gtkwindow.c:694 msgid "Destroy with Parent" msgstr "Destruir con el padre" -#: ../gtk/gtkwindow.c:697 +#: ../gtk/gtkwindow.c:695 msgid "If this window should be destroyed when the parent is destroyed" msgstr "Indica si esta ventana debe ser destruida cuando el padre se destruye" -#: ../gtk/gtkwindow.c:711 +#: ../gtk/gtkwindow.c:709 msgid "Hide the titlebar during maximization" msgstr "Ocultar la barra de título al maximizar" -#: ../gtk/gtkwindow.c:712 +#: ../gtk/gtkwindow.c:710 msgid "If this window's titlebar should be hidden when the window is maximized" msgstr "" "Indica si la barra de título de la ventana se debe ocultar cuando la ventana " "está maximizada" -#: ../gtk/gtkwindow.c:720 +#: ../gtk/gtkwindow.c:718 msgid "Icon for this window" msgstr "Icono para esta ventana" -#: ../gtk/gtkwindow.c:738 +#: ../gtk/gtkwindow.c:736 msgid "Mnemonics Visible" msgstr "Mnemónicos visibles" -#: ../gtk/gtkwindow.c:739 +#: ../gtk/gtkwindow.c:737 msgid "Whether mnemonics are currently visible in this window" msgstr "Indica si los mnemónicos son visibles actualmente en esta ventana" -#: ../gtk/gtkwindow.c:757 +#: ../gtk/gtkwindow.c:755 msgid "Focus Visible" msgstr "Foco visible" -#: ../gtk/gtkwindow.c:758 +#: ../gtk/gtkwindow.c:756 msgid "Whether focus rectangles are currently visible in this window" msgstr "" "Indica si los rectángulos de foco están visibles actualmente en esta ventana" -#: ../gtk/gtkwindow.c:774 +#: ../gtk/gtkwindow.c:772 msgid "Name of the themed icon for this window" msgstr "Nombre del icono del tema para esta ventana" -#: ../gtk/gtkwindow.c:789 +#: ../gtk/gtkwindow.c:787 msgid "Is Active" msgstr "Está activo" -#: ../gtk/gtkwindow.c:790 +#: ../gtk/gtkwindow.c:788 msgid "Whether the toplevel is the current active window" msgstr "Indica si el nivel superior es la ventana activa actual" -#: ../gtk/gtkwindow.c:797 +#: ../gtk/gtkwindow.c:795 msgid "Focus in Toplevel" msgstr "Foco en el nivel superior" -#: ../gtk/gtkwindow.c:798 +#: ../gtk/gtkwindow.c:796 msgid "Whether the input focus is within this GtkWindow" msgstr "Indica si el foco de entrada esta dentro de este GtkWindow" -#: ../gtk/gtkwindow.c:805 +#: ../gtk/gtkwindow.c:803 msgid "Type hint" msgstr "Pista de tipo" -#: ../gtk/gtkwindow.c:806 +#: ../gtk/gtkwindow.c:804 msgid "" "Hint to help the desktop environment understand what kind of window this is " "and how to treat it." @@ -8311,123 +8353,115 @@ msgstr "" "Pista para ayudar al entorno de escritorio a entender qué clase de ventana " "es ésta y cómo tratar con ella." -#: ../gtk/gtkwindow.c:814 +#: ../gtk/gtkwindow.c:812 msgid "Skip taskbar" msgstr "Ignorar barra de tareas" -#: ../gtk/gtkwindow.c:815 +#: ../gtk/gtkwindow.c:813 msgid "TRUE if the window should not be in the task bar." msgstr "TRUE si la ventana no debe estar en la barra de tareas." -#: ../gtk/gtkwindow.c:822 +#: ../gtk/gtkwindow.c:820 msgid "Skip pager" msgstr "Ignorar paginador" -#: ../gtk/gtkwindow.c:823 +#: ../gtk/gtkwindow.c:821 msgid "TRUE if the window should not be in the pager." msgstr "TRUE si la ventana no debe estar en el paginador." -#: ../gtk/gtkwindow.c:830 +#: ../gtk/gtkwindow.c:828 msgid "Urgent" msgstr "Urgente" -#: ../gtk/gtkwindow.c:831 +#: ../gtk/gtkwindow.c:829 msgid "TRUE if the window should be brought to the user's attention." msgstr "TRUE si la ventana debe llamar la atención del usuario." -#: ../gtk/gtkwindow.c:845 +#: ../gtk/gtkwindow.c:843 msgid "Accept focus" msgstr "Aceptar foco" -#: ../gtk/gtkwindow.c:846 +#: ../gtk/gtkwindow.c:844 msgid "TRUE if the window should receive the input focus." msgstr "TRUE si la ventana no debe recibir el foco de entrada." -#: ../gtk/gtkwindow.c:860 +#: ../gtk/gtkwindow.c:858 msgid "Focus on map" msgstr "Foco en el mapa" -#: ../gtk/gtkwindow.c:861 +#: ../gtk/gtkwindow.c:859 msgid "TRUE if the window should receive the input focus when mapped." msgstr "TRUE si la ventana debe recibir el foco de entrada al ser mapeada." -#: ../gtk/gtkwindow.c:875 +#: ../gtk/gtkwindow.c:873 msgid "Decorated" msgstr "Decorado" -#: ../gtk/gtkwindow.c:876 +#: ../gtk/gtkwindow.c:874 msgid "Whether the window should be decorated by the window manager" msgstr "Indica si la ventana debe ser decorada por el gestor de ventanas" -#: ../gtk/gtkwindow.c:890 +#: ../gtk/gtkwindow.c:888 msgid "Deletable" msgstr "Eliminable" -#: ../gtk/gtkwindow.c:891 +#: ../gtk/gtkwindow.c:889 msgid "Whether the window frame should have a close button" msgstr "Indica si el marco de la ventana debe tener un botón de cierre" -#: ../gtk/gtkwindow.c:910 +#: ../gtk/gtkwindow.c:908 msgid "Resize grip" msgstr "Redimensionar tirador" -#: ../gtk/gtkwindow.c:911 +#: ../gtk/gtkwindow.c:909 msgid "Specifies whether the window should have a resize grip" msgstr "Especifica si la ventana debe tener un tirador de redimensión" -#: ../gtk/gtkwindow.c:925 +#: ../gtk/gtkwindow.c:923 msgid "Resize grip is visible" msgstr "El tirador de redimensión es visible" -#: ../gtk/gtkwindow.c:926 +#: ../gtk/gtkwindow.c:924 msgid "Specifies whether the window's resize grip is visible." msgstr "Indica si el tirador de redimensión de la ventana es visible." -#: ../gtk/gtkwindow.c:942 +#: ../gtk/gtkwindow.c:940 msgid "Gravity" msgstr "Gravedad" -#: ../gtk/gtkwindow.c:943 +#: ../gtk/gtkwindow.c:941 msgid "The window gravity of the window" msgstr "La gravedad de la ventana" -#: ../gtk/gtkwindow.c:960 +#: ../gtk/gtkwindow.c:958 msgid "Transient for Window" msgstr "Transitorio para la ventana" -#: ../gtk/gtkwindow.c:961 +#: ../gtk/gtkwindow.c:959 msgid "The transient parent of the dialog" msgstr "El padre transitorio del diálogo" -#: ../gtk/gtkwindow.c:981 +#: ../gtk/gtkwindow.c:979 msgid "Attached to Widget" msgstr "Acoplado al widget" -#: ../gtk/gtkwindow.c:982 +#: ../gtk/gtkwindow.c:980 msgid "The widget where the window is attached" msgstr "El widget al que está acoplada la ventana" -#: ../gtk/gtkwindow.c:997 -msgid "Opacity for Window" -msgstr "Opacidad para la ventana" - -#: ../gtk/gtkwindow.c:998 -msgid "The opacity of the window, from 0 to 1" -msgstr "La opacidad de la ventana, desde 0 hasta 1" - -#: ../gtk/gtkwindow.c:1008 ../gtk/gtkwindow.c:1009 +#: ../gtk/gtkwindow.c:988 ../gtk/gtkwindow.c:989 msgid "Width of resize grip" msgstr "Anchura del tirador de redimensión" -#: ../gtk/gtkwindow.c:1014 ../gtk/gtkwindow.c:1015 +#: ../gtk/gtkwindow.c:994 ../gtk/gtkwindow.c:995 msgid "Height of resize grip" msgstr "Altura del tirador de redimensión" -#: ../gtk/gtkwindow.c:1037 +#: ../gtk/gtkwindow.c:1017 msgid "GtkApplication" msgstr "GtkApplication" -#: ../gtk/gtkwindow.c:1038 +#: ../gtk/gtkwindow.c:1018 msgid "The GtkApplication for the window" msgstr "El GtkApplication para la ventana" From 399ffbb230d4be903a172bf9b6c3df90e7c35035 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Tue, 26 Feb 2013 14:51:31 +0100 Subject: [PATCH 200/208] win32: fix possible memleak if GlobalAlloc() fails Also remove the unused 'buf' variable. https://bugzilla.gnome.org/show_bug.cgi?id=694742 --- gdk/win32/gdkproperty-win32.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gdk/win32/gdkproperty-win32.c b/gdk/win32/gdkproperty-win32.c index 04cf3e39af..7a3671beb5 100644 --- a/gdk/win32/gdkproperty-win32.c +++ b/gdk/win32/gdkproperty-win32.c @@ -147,7 +147,7 @@ _gdk_win32_window_change_property (GdkWindow *window, { HGLOBAL hdata; gint i, size; - guchar *ucptr, *buf = NULL; + guchar *ucptr; wchar_t *wcptr, *p; glong wclen; @@ -206,7 +206,7 @@ _gdk_win32_window_change_property (GdkWindow *window, WIN32_API_FAILED ("GlobalAlloc"); if (!CloseClipboard ()) WIN32_API_FAILED ("CloseClipboard"); - g_free (buf); + g_free (wcptr); return; } From 46ef9a83bb2a647330acaabef02449f55a3cc178 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 26 Feb 2013 15:55:29 +0100 Subject: [PATCH 201/208] gtk-demo: Create new textbuffers for new source/info texts This is so we can prepare these buffers without them being set on the widgets yet and only gtk_text_view_set_buffer() them afterwards. And this in turn gets rid of all the a11y events we were needlessly emitting. https://bugzilla.gnome.org/show_bug.cgi?id=694406 --- demos/gtk-demo/main.c | 97 ++++++++++++++++++++++--------------------- 1 file changed, 49 insertions(+), 48 deletions(-) diff --git a/demos/gtk-demo/main.c b/demos/gtk-demo/main.c index 1d185e449f..c890f58782 100644 --- a/demos/gtk-demo/main.c +++ b/demos/gtk-demo/main.c @@ -9,8 +9,8 @@ #include "demos.h" -static GtkTextBuffer *info_buffer; -static GtkTextBuffer *source_buffer; +static GtkWidget *info_view; +static GtkWidget *source_view; static gchar *current_file = NULL; @@ -353,7 +353,7 @@ parse_chars (gchar *text, /* While not as cool as c-mode, this will do as a quick attempt at highlighting */ static void -fontify (void) +fontify (GtkTextBuffer *source_buffer) { GtkTextIter start_iter, next_iter, tmp_iter; gint state; @@ -398,12 +398,11 @@ fontify (void) } } -static GtkWidget *create_text (GtkTextBuffer **buffer, gboolean is_source); +static GtkWidget *create_text (GtkWidget **text_view, gboolean is_source); static void add_data_tab (const gchar *demoname) { - GtkTextBuffer *buffer = NULL; gchar *resource_dir, *resource_name, *content_type; gchar **resources; GBytes *bytes; @@ -440,8 +439,13 @@ add_data_tab (const gchar *demoname) } else if (g_content_type_is_a (content_type, "text/plain")) { - widget = create_text (&buffer, FALSE); + GtkTextBuffer *buffer; + GtkWidget *textview; + + widget = create_text (&textview, FALSE); + buffer = gtk_text_buffer_new (NULL); gtk_text_buffer_set_text (buffer, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); + gtk_text_view_set_buffer (GTK_TEXT_VIEW (textview), buffer); } else { @@ -476,6 +480,7 @@ void load_file (const gchar *demoname, const gchar *filename) { + GtkTextBuffer *info_buffer, *source_buffer; GtkTextIter start, end; char *resource_filename; GError *err = NULL; @@ -495,11 +500,34 @@ load_file (const gchar *demoname, g_free (current_file); current_file = g_strdup (filename); - gtk_text_buffer_get_bounds (info_buffer, &start, &end); - gtk_text_buffer_delete (info_buffer, &start, &end); + info_buffer = gtk_text_buffer_new (NULL); + gtk_text_buffer_create_tag (info_buffer, "title", + "font", "Sans 18", + "pixels-below-lines", 10, + NULL); - gtk_text_buffer_get_bounds (source_buffer, &start, &end); - gtk_text_buffer_delete (source_buffer, &start, &end); + source_buffer = gtk_text_buffer_new (NULL); + gtk_text_buffer_create_tag (source_buffer, "comment", + "foreground", "DodgerBlue", + NULL); + gtk_text_buffer_create_tag (source_buffer, "type", + "foreground", "ForestGreen", + NULL); + gtk_text_buffer_create_tag (source_buffer, "string", + "foreground", "RosyBrown", + "weight", PANGO_WEIGHT_BOLD, + NULL); + gtk_text_buffer_create_tag (source_buffer, "control", + "foreground", "purple", + NULL); + gtk_text_buffer_create_tag (source_buffer, "preprocessor", + "style", PANGO_STYLE_OBLIQUE, + "foreground", "burlywood4", + NULL); + gtk_text_buffer_create_tag (source_buffer, "function", + "weight", PANGO_WEIGHT_BOLD, + "foreground", "DarkGoldenrod4", + NULL); resource_filename = g_strconcat ("/sources/", filename, NULL); bytes = g_resources_lookup_data (resource_filename, 0, &err); @@ -629,9 +657,14 @@ load_file (const gchar *demoname, } } - fontify (); + fontify (source_buffer); g_strfreev (lines); + + gtk_text_view_set_buffer (GTK_TEXT_VIEW (info_view), info_buffer); + g_object_unref (info_buffer); + gtk_text_view_set_buffer (GTK_TEXT_VIEW (source_view), source_buffer); + g_object_unref (source_buffer); } void @@ -699,8 +732,8 @@ selection_cb (GtkTreeSelection *selection, } static GtkWidget * -create_text (GtkTextBuffer **buffer, - gboolean is_source) +create_text (GtkWidget **view, + gboolean is_source) { GtkWidget *scrolled_window; GtkWidget *text_view; @@ -713,11 +746,9 @@ create_text (GtkTextBuffer **buffer, gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_IN); - text_view = gtk_text_view_new (); + *view = text_view = gtk_text_view_new (); g_object_set (text_view, "margin", 20, NULL); - *buffer = gtk_text_buffer_new (NULL); - gtk_text_view_set_buffer (GTK_TEXT_VIEW (text_view), *buffer); gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (text_view), FALSE); @@ -899,43 +930,13 @@ main (int argc, char **argv) gtk_box_pack_start (GTK_BOX (hbox), notebook, TRUE, TRUE, 0); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), - create_text (&info_buffer, FALSE), + create_text (&info_view, FALSE), gtk_label_new_with_mnemonic ("_Info")); - gtk_text_buffer_create_tag (info_buffer, "title", - "font", "Sans 18", - "pixels-below-lines", 10, - NULL); - g_object_unref (info_buffer); - gtk_notebook_append_page (GTK_NOTEBOOK (notebook), - create_text (&source_buffer, TRUE), + create_text (&source_view, TRUE), gtk_label_new_with_mnemonic ("_Source")); - - gtk_text_buffer_create_tag (source_buffer, "comment", - "foreground", "DodgerBlue", - NULL); - gtk_text_buffer_create_tag (source_buffer, "type", - "foreground", "ForestGreen", - NULL); - gtk_text_buffer_create_tag (source_buffer, "string", - "foreground", "RosyBrown", - "weight", PANGO_WEIGHT_BOLD, - NULL); - gtk_text_buffer_create_tag (source_buffer, "control", - "foreground", "purple", - NULL); - gtk_text_buffer_create_tag (source_buffer, "preprocessor", - "style", PANGO_STYLE_OBLIQUE, - "foreground", "burlywood4", - NULL); - gtk_text_buffer_create_tag (source_buffer, "function", - "weight", PANGO_WEIGHT_BOLD, - "foreground", "DarkGoldenrod4", - NULL); - g_object_unref (source_buffer); - gtk_window_set_default_size (GTK_WINDOW (window), 600, 400); gtk_widget_show_all (window); From ce0675f1fb2582717793ec29b1787039dfbf8437 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 26 Feb 2013 16:17:33 +0100 Subject: [PATCH 202/208] a11y: Emit text-changed signals when the text-buffer changes --- gtk/a11y/gtktextviewaccessible.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gtk/a11y/gtktextviewaccessible.c b/gtk/a11y/gtktextviewaccessible.c index 9e59b8f1a1..ca07161d22 100644 --- a/gtk/a11y/gtktextviewaccessible.c +++ b/gtk/a11y/gtktextviewaccessible.c @@ -117,6 +117,11 @@ gtk_text_view_accessible_change_buffer (GtkTextViewAccessible *accessible, if (old_buffer) { g_signal_handlers_disconnect_matched (old_buffer, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, accessible); + + g_signal_emit_by_name (accessible, + "text-changed::delete", + 0, + gtk_text_buffer_get_char_count (old_buffer)); } if (new_buffer) @@ -124,6 +129,11 @@ gtk_text_view_accessible_change_buffer (GtkTextViewAccessible *accessible, g_signal_connect_after (new_buffer, "insert-text", G_CALLBACK (insert_text_cb), accessible); g_signal_connect (new_buffer, "delete-range", G_CALLBACK (delete_range_cb), accessible); g_signal_connect_after (new_buffer, "mark-set", G_CALLBACK (mark_set_cb), accessible); + + g_signal_emit_by_name (accessible, + "text-changed::insert", + 0, + gtk_text_buffer_get_char_count (new_buffer)); } } From e97262489c70a12460ea4b938008a470ab0d7581 Mon Sep 17 00:00:00 2001 From: Thomas Wood Date: Tue, 26 Feb 2013 11:06:45 +0000 Subject: [PATCH 203/208] gdk: prevent NULL pointer access when debugging is enabled If no updates, redraws, or repaints have been scheduled for this frame, we will skip immediately to RESUME_EVENTS, and no GdkFrameTimings will be created. https://bugzilla.gnome.org/show_bug.cgi?id=694732 --- gdk/gdkframeclockidle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 2d4947c4df..5901c7f6ca 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -441,7 +441,7 @@ gdk_frame_clock_paint_idle (void *data) #ifdef G_ENABLE_DEBUG if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0) { - if (timings->complete) + if (timings && timings->complete) _gdk_frame_clock_debug_print_timings (clock, timings); } #endif /* G_ENABLE_DEBUG */ From 560597da05ca8f2de69e94df7e182ca0e8a7ca27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aurimas=20=C4=8Cernius?= Date: Tue, 26 Feb 2013 23:00:46 +0200 Subject: [PATCH 204/208] Updated Lithuanian UI translation --- po/lt.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/po/lt.po b/po/lt.po index a38e9f84c1..be5d0c4e8f 100644 --- a/po/lt.po +++ b/po/lt.po @@ -17,7 +17,7 @@ msgstr "" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" "%2b&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-01-19 19:42+0000\n" -"PO-Revision-Date: 2013-02-15 21:51+0200\n" +"PO-Revision-Date: 2013-02-26 22:59+0200\n" "Last-Translator: Aurimas Černius \n" "Language-Team: Lietuvių \n" "Language: lt\n" From c6eddaafed94bc47f197bfbea90ac9c50adf8f2d Mon Sep 17 00:00:00 2001 From: Geoff Reedy Date: Tue, 26 Feb 2013 17:58:21 -0600 Subject: [PATCH 205/208] GdkScreen: get a long X property correctly https://bugzilla.gnome.org/show_bug.cgi?id=691426 Signed-off-by: Federico Mena Quintero --- gdk/x11/gdkscreen-x11.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 71478926ee..760da2ba4d 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -285,7 +285,7 @@ get_current_desktop (GdkScreen *screen) &data_return); if (type == XA_CARDINAL && format == 32 && n_items > 0) - workspace = (int) data_return[0]; + workspace = ((long *) data_return)[0]; if (data_return) XFree (data_return); From ed5649a44b2dcfd175549aec203bfabc43092aae Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Wed, 27 Feb 2013 12:33:42 +0800 Subject: [PATCH 206/208] Fix gtk3-demo Visual Studio projects Since we are linking in the resource items by the source, we need to disable WholeProgramOptimization so that the resource stuff does get linked into the demo binaries, so that they can be loaded properly. Also make sure that gtk3-demo-application is also built with the multibyte character set, like the rest. This should fix bug 694342, at least for Visual Studio builds. --- build/win32/vs10/gtk3-demo-application.vcxproj | 16 ++++++++-------- build/win32/vs10/gtk3-demo.vcxproj | 6 ++++-- build/win32/vs9/gtk3-demo-application.vcproj | 12 ++++++------ build/win32/vs9/gtk3-demo.vcproj | 4 ++-- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/build/win32/vs10/gtk3-demo-application.vcxproj b/build/win32/vs10/gtk3-demo-application.vcxproj index 5550650e5f..c48d14b462 100644 --- a/build/win32/vs10/gtk3-demo-application.vcxproj +++ b/build/win32/vs10/gtk3-demo-application.vcxproj @@ -26,21 +26,21 @@ Application - Unicode - true + MultiByte + false Application - Unicode + MultiByte Application - Unicode - true + MultiByte + false Application - Unicode + MultiByte @@ -92,7 +92,7 @@ true %(PreprocessorDefinitions) MultiThreadedDLL - true + false Level3 @@ -136,7 +136,7 @@ true %(PreprocessorDefinitions) MultiThreadedDLL - true + false Level3 diff --git a/build/win32/vs10/gtk3-demo.vcxproj b/build/win32/vs10/gtk3-demo.vcxproj index 86839f0eec..4e227204e9 100644 --- a/build/win32/vs10/gtk3-demo.vcxproj +++ b/build/win32/vs10/gtk3-demo.vcxproj @@ -27,7 +27,7 @@ Application MultiByte - true + false v100 @@ -38,7 +38,7 @@ Application MultiByte - true + false v100 @@ -135,6 +135,7 @@ %(AdditionalDependencies) true Console + false true true false @@ -158,6 +159,7 @@ %(AdditionalDependencies) true Console + false true true false diff --git a/build/win32/vs9/gtk3-demo-application.vcproj b/build/win32/vs9/gtk3-demo-application.vcproj index f6ba10a73b..51b90ead6e 100644 --- a/build/win32/vs9/gtk3-demo-application.vcproj +++ b/build/win32/vs9/gtk3-demo-application.vcproj @@ -23,7 +23,7 @@ Name="Debug|Win32" InheritedPropertySheets=".\gtk+.vsprops" ConfigurationType="1" - CharacterSet="1" + CharacterSet="2" > Date: Wed, 27 Feb 2013 10:25:42 +0200 Subject: [PATCH 207/208] [l10n] Updated Estonian translation --- po/et.po | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/po/et.po b/po/et.po index 92fa6c0318..5defc84943 100644 --- a/po/et.po +++ b/po/et.po @@ -7,7 +7,7 @@ # # Lauris Kaplinski , 1999. # Tõivo Leedjärv , 2002–2004. -# Priit Laes , 2004, 2005. +# Priit Laes , 2004, 2005, 2013. # Ivar Smolin , 2005–2011. # Mattias Põldaru , 2009–2010, 2012. # @@ -16,9 +16,9 @@ msgstr "" "Project-Id-Version: gtk+ MASTER\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk" "%2b&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-12-18 07:50+0000\n" -"PO-Revision-Date: 2012-12-08 00:49+0300\n" -"Last-Translator: Mattias Põldaru \n" +"POT-Creation-Date: 2013-01-19 19:42+0000\n" +"PO-Revision-Date: 2013-02-27 10:22+0300\n" +"Last-Translator: Priit Laes \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" @@ -556,8 +556,8 @@ msgstr "_Litsents" msgid "Could not show link" msgstr "Linki pole võimalik kuvada" -msgid "Homepage" -msgstr "Koduleht" +msgid "Website" +msgstr "Veebileht" #, c-format msgid "About %s" @@ -3856,3 +3856,6 @@ msgstr "testväljund.%s" msgid "Print to Test Printer" msgstr "Printimine testprinterisse" + +#~ msgid "Homepage" +#~ msgstr "Koduleht" From bbfc8f9a9b84cc019dff0c23d52aac83beb6be64 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Wed, 27 Feb 2013 12:57:38 +0100 Subject: [PATCH 208/208] Fix opacity group hack We can't norender the main window for a windowed widget as we then never get any expose events. --- gtk/gtkwidget.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 2ba9281b8f..eefaddeef6 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -14098,7 +14098,7 @@ gtk_widget_register_window (GtkWidget *widget, gdk_window_set_user_data (window, widget); priv->registered_windows = g_list_prepend (priv->registered_windows, window); - if (!gtk_widget_get_has_window (widget) && !gdk_window_has_native (window)) + if (priv->window != window && !gdk_window_has_native (window)) gdk_window_set_opacity (window, priv->norender_children ? 0.0 : 1.0); } @@ -14231,8 +14231,8 @@ gtk_widget_propagate_alpha (GtkWidget *widget) parent = priv->parent; norender = - /* If this widget has an opacity group, never render it */ - priv->opacity_group || + /* If this widget has an opacity group and no window don't render it */ + (priv->opacity_group && !gtk_widget_get_has_window (widget)) || /* If the parent has norender_children, propagate that here */ (parent != NULL && parent->priv->norender_children); @@ -14252,14 +14252,12 @@ gtk_widget_propagate_alpha (GtkWidget *widget) gdk_window_set_opacity (priv->window, norender ? 0 : priv->alpha / 255.0); } - else /* !has_window */ + + for (l = priv->registered_windows; l != NULL; l = l->next) { - for (l = priv->registered_windows; l != NULL; l = l->next) - { - GdkWindow *w = l->data; - if (!gdk_window_has_native (w)) - gdk_window_set_opacity (w, norender_children ? 0.0 : 1.0); - } + GdkWindow *w = l->data; + if (w != priv->window && !gdk_window_has_native (w)) + gdk_window_set_opacity (w, norender_children ? 0.0 : 1.0); } priv->norender = norender;