From db0f9b60ac1a0f3d82cb9528ab6f0e6b902c7ec5 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Thu, 23 May 2024 17:09:38 +0800 Subject: [PATCH 01/11] gsk: Call glDeleteSync() directly This function does not use the standard __cdecl calling convention on Windows, meaning using g_clear_pointer() on it directly will cause crashes on 32-bit Windows. Just call it directly if the GLsync it uses exists. --- gsk/gpu/gskglframe.c | 5 ++++- gsk/gpu/gskgpudownloadop.c | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gsk/gpu/gskglframe.c b/gsk/gpu/gskglframe.c index d7033609d1..4d01bbf8ac 100644 --- a/gsk/gpu/gskglframe.c +++ b/gsk/gpu/gskglframe.c @@ -70,7 +70,10 @@ gsk_gl_frame_cleanup (GskGpuFrame *frame) if (self->sync) { glClientWaitSync (self->sync, 0, -1); - g_clear_pointer (&self->sync, glDeleteSync); + + /* can't use g_clear_pointer() on glDeleteSync(), see MR !7294 */ + glDeleteSync (self->sync); + self->sync = NULL; } self->next_texture_slot = 0; diff --git a/gsk/gpu/gskgpudownloadop.c b/gsk/gpu/gskgpudownloadop.c index 42597c6316..42ff54c087 100644 --- a/gsk/gpu/gskgpudownloadop.c +++ b/gsk/gpu/gskgpudownloadop.c @@ -249,7 +249,13 @@ gsk_gl_texture_data_free (gpointer user_data) gdk_gl_context_make_current (data->context); - g_clear_pointer (&data->sync, glDeleteSync); + /* can't use g_clear_pointer() on glDeleteSync(), see MR !7294 */ + if (data->sync) + { + glDeleteSync (data->sync); + data->sync = NULL; + } + glDeleteTextures (1, &data->texture_id); g_object_unref (data->context); From 4a4e445a35366c0dae21f5a5c2b5ee8a28a5c60a Mon Sep 17 00:00:00 2001 From: Yosef Or Boczko Date: Tue, 28 May 2024 08:54:43 +0000 Subject: [PATCH 02/11] Update Hebrew translation --- po/he.po | 375 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 201 insertions(+), 174 deletions(-) diff --git a/po/he.po b/po/he.po index a093562aa1..4b38277a2f 100644 --- a/po/he.po +++ b/po/he.po @@ -12,17 +12,17 @@ msgid "" msgstr "" "Project-Id-Version: gtk+.HEAD.he\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n" -"POT-Creation-Date: 2024-04-04 17:02+0000\n" -"PO-Revision-Date: 2024-04-06 16:18+0300\n" -"Last-Translator: Yaron Shahrabani \n" +"POT-Creation-Date: 2024-05-24 05:15+0000\n" +"PO-Revision-Date: 2024-05-28 11:54+0300\n" +"Last-Translator: Yosef Or Boczko \n" "Language-Team: Hebrew\n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? 2 : " -"3);\n" -"X-Generator: Poedit 3.4.2\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? " +"2 : 3)\n" +"X-Generator: Gtranslator 46.1\n" "X-Project-Style: default\n" #: gdk/broadway/gdkbroadway-server.c:135 @@ -34,11 +34,11 @@ msgstr "סוג תצוגת ה־broadway אינה נתמכת: %s" msgid "This clipboard cannot store data." msgstr "לוח גזירים זה לא יכול לאחסן נתונים." -#: gdk/gdkclipboard.c:287 gdk/gdkclipboard.c:786 gdk/gdkclipboard.c:1086 +#: gdk/gdkclipboard.c:287 gdk/gdkclipboard.c:781 gdk/gdkclipboard.c:1072 msgid "Cannot read from empty clipboard." msgstr "אי אפשר לקרוא מלוח גזירים ריק." -#: gdk/gdkclipboard.c:318 gdk/gdkclipboard.c:1136 gdk/gdkdrag.c:606 +#: gdk/gdkclipboard.c:318 gdk/gdkclipboard.c:1122 gdk/gdkdrag.c:606 msgid "No compatible formats to transfer clipboard contents." msgstr "אין תצורות תואמות להעברת תכני לוח גזירים." @@ -57,7 +57,7 @@ msgstr "לא ניתן לספק תוכן בתור %s" msgid "The current backend does not support OpenGL" msgstr "המנשק הנוכחי אינו תומך ב־‏OpenGL" -#: gdk/gdkdisplay.c:1315 gdk/gdkvulkancontext.c:1600 +#: gdk/gdkdisplay.c:1315 gdk/gdkvulkancontext.c:1638 msgid "Vulkan support disabled via GDK_DEBUG" msgstr "התמיכה ב־Vulkan מושבתת דרך GDK_DEBUG" @@ -124,8 +124,8 @@ msgid "No GL API allowed." msgstr "אין GL API מאופשר." #: gdk/gdkglcontext.c:447 gdk/win32/gdkglcontext-win32-wgl.c:395 -#: gdk/win32/gdkglcontext-win32-wgl.c:538 gdk/win32/gdkglcontext-win32-wgl.c:582 -#: gdk/x11/gdkglcontext-glx.c:691 +#: gdk/win32/gdkglcontext-win32-wgl.c:538 +#: gdk/win32/gdkglcontext-win32-wgl.c:582 gdk/x11/gdkglcontext-glx.c:691 msgid "Unable to create a GL context" msgstr "Unable to create a GL context" @@ -144,7 +144,7 @@ msgstr "היישום אינו תומך ב־API ‏%s" #. translators: This is about OpenGL backend names, like #. * "Trying to use X11 GLX, but EGL is already in use" -#: gdk/gdkglcontext.c:2123 +#: gdk/gdkglcontext.c:2121 #, c-format msgid "Trying to use %s, but %s is already in use" msgstr "מתבצע ניסיון להשתמש ב־%s אך %s כבר בשימוש" @@ -542,7 +542,7 @@ msgstr "שגיאה בפענוח קובץ תמונת JPEG‏ (%s)" msgid "Unsupported JPEG colorspace (%d)" msgstr "מרחב הצבעים של ה־JPEG אינו נתמך (%d)" -#: gdk/loaders/gdkjpeg.c:203 gdk/loaders/gdkpng.c:286 gdk/loaders/gdktiff.c:472 +#: gdk/loaders/gdkjpeg.c:203 gdk/loaders/gdkpng.c:289 gdk/loaders/gdktiff.c:472 #, c-format msgid "Not enough memory for image size %ux%u" msgstr "אין מספיק זיכרון לתמונה בגודל ‎%u×%u‎" @@ -552,17 +552,17 @@ msgstr "אין מספיק זיכרון לתמונה בגודל ‎%u×%u‎" msgid "Error reading png (%s)" msgstr "שגיאה בקריאת png ‏(%s)" -#: gdk/loaders/gdkpng.c:212 +#: gdk/loaders/gdkpng.c:215 #, c-format msgid "Unsupported depth %u in png image" msgstr "העומק %u אינו נתמך בתמונות png" -#: gdk/loaders/gdkpng.c:262 +#: gdk/loaders/gdkpng.c:265 #, c-format msgid "Unsupported color type %u in png image" msgstr "סוג הצבע %u אינו נתמך בתמונות png" -#: gdk/loaders/gdkpng.c:272 +#: gdk/loaders/gdkpng.c:275 #, c-format msgid "Image stride too large for image size %ux%u" msgstr "פסיעת התמונה גדולה מדי לגודל התמונה %ux%u" @@ -647,7 +647,8 @@ msgstr "לא ניתן לקבל נתונים מלוח הגזירים. הקצאת #: gdk/win32/gdkclipdrop-win32.c:930 #, c-format msgid "Cannot get clipboard data. OpenClipboard() timed out." -msgstr "לא ניתן לקבל נתונים מלוח הגזירים. הזמן שהוקצב ל־OpenClipboard()‎ הסתיים." +msgstr "" +"לא ניתן לקבל נתונים מלוח הגזירים. הזמן שהוקצב ל־OpenClipboard()‎ הסתיים." #: gdk/win32/gdkclipdrop-win32.c:940 #, c-format @@ -815,7 +816,8 @@ msgstr "אין מספיק זיכרון ביעד" msgid "Need complete input to do conversion" msgstr "נדרש קלט מלא כדי לבצע המרה" -#: gdk/x11/gdktextlistconverter-x11.c:216 gdk/x11/gdktextlistconverter-x11.c:250 +#: gdk/x11/gdktextlistconverter-x11.c:216 +#: gdk/x11/gdktextlistconverter-x11.c:250 msgid "Invalid byte sequence in conversion input" msgstr "רצף בתים שגוי בקלט ההמרה" @@ -1055,7 +1057,7 @@ msgid "%d %%" msgstr "%d %%" #: gtk/deprecated/gtkcolorbutton.c:183 gtk/deprecated/gtkcolorbutton.c:314 -#: gtk/gtkcolordialog.c:411 +#: gtk/gtkcolordialog.c:409 msgid "Pick a Color" msgstr "בחירת צבע" @@ -1076,7 +1078,7 @@ msgid "Sans 12" msgstr "Sans 12" #: gtk/deprecated/gtkfontbutton.c:507 gtk/deprecated/gtkfontbutton.c:624 -#: gtk/gtkfontdialog.c:596 +#: gtk/gtkfontdialog.c:594 msgid "Pick a Font" msgstr "בחירת גופן" @@ -1122,7 +1124,7 @@ msgstr "" "מדיניות המערכת מונעת ביצוע שינויים.‬\n" "‫נא ליצור קשר עם מנהל המערכת" -#: gtk/deprecated/gtkshow.c:183 +#: gtk/deprecated/gtkshow.c:182 msgid "Could not show link" msgstr "לא ניתן להציג את הקישור" @@ -1316,7 +1318,8 @@ msgstr "" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: gtk/gtkaccelgroup.c:837 gtk/gtkshortcutlabel.c:101 gtk/gtkshortcutlabel.c:137 +#: gtk/gtkaccelgroup.c:837 gtk/gtkshortcutlabel.c:101 +#: gtk/gtkshortcutlabel.c:137 msgctxt "keyboard label" msgid "Shift" msgstr "Shift" @@ -1326,7 +1329,8 @@ msgstr "Shift" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: gtk/gtkaccelgroup.c:856 gtk/gtkshortcutlabel.c:104 gtk/gtkshortcutlabel.c:139 +#: gtk/gtkaccelgroup.c:856 gtk/gtkshortcutlabel.c:104 +#: gtk/gtkshortcutlabel.c:139 msgctxt "keyboard label" msgid "Ctrl" msgstr "Ctrl" @@ -1336,7 +1340,8 @@ msgstr "Ctrl" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: gtk/gtkaccelgroup.c:875 gtk/gtkshortcutlabel.c:107 gtk/gtkshortcutlabel.c:141 +#: gtk/gtkaccelgroup.c:875 gtk/gtkshortcutlabel.c:107 +#: gtk/gtkshortcutlabel.c:141 msgctxt "keyboard label" msgid "Alt" msgstr "Alt" @@ -1346,7 +1351,8 @@ msgstr "Alt" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: gtk/gtkaccelgroup.c:893 gtk/gtkshortcutlabel.c:113 gtk/gtkshortcutlabel.c:143 +#: gtk/gtkaccelgroup.c:893 gtk/gtkshortcutlabel.c:113 +#: gtk/gtkshortcutlabel.c:143 msgctxt "keyboard label" msgid "Super" msgstr "Super" @@ -1356,7 +1362,8 @@ msgstr "Super" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: gtk/gtkaccelgroup.c:907 gtk/gtkshortcutlabel.c:116 gtk/gtkshortcutlabel.c:145 +#: gtk/gtkaccelgroup.c:907 gtk/gtkshortcutlabel.c:116 +#: gtk/gtkshortcutlabel.c:145 msgctxt "keyboard label" msgid "Hyper" msgstr "Hyper" @@ -1366,7 +1373,8 @@ msgstr "Hyper" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: gtk/gtkaccelgroup.c:922 gtk/gtkshortcutlabel.c:110 gtk/gtkshortcutlabel.c:148 +#: gtk/gtkaccelgroup.c:922 gtk/gtkshortcutlabel.c:110 +#: gtk/gtkshortcutlabel.c:148 msgctxt "keyboard label" msgid "Meta" msgstr "מטה" @@ -1811,7 +1819,7 @@ msgctxt "accessibility" msgid "terminal" msgstr "מסוף" -#: gtk/gtkalertdialog.c:668 gtk/print/gtkcustompaperunixdialog.c:322 +#: gtk/gtkalertdialog.c:667 gtk/print/gtkcustompaperunixdialog.c:322 #: gtk/gtkmessagedialog.c:166 gtk/ui/gtkassistant.ui:40 msgid "_Close" msgstr "_סגירה" @@ -2292,22 +2300,23 @@ msgstr "קובץ בשם זה כבר קיים" #: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600 #: gtk/gtkfilechooserwidget.c:1188 gtk/gtkfilechooserwidget.c:4973 -#: gtk/gtkfiledialog.c:843 gtk/gtkmessagedialog.c:170 gtk/gtkmessagedialog.c:179 -#: gtk/gtkmountoperation.c:608 gtk/print/gtkpagesetupunixdialog.c:282 -#: gtk/print/gtkprintbackend.c:638 gtk/print/gtkprintunixdialog.c:682 -#: gtk/print/gtkprintunixdialog.c:839 gtk/gtkwindow.c:6256 -#: gtk/ui/gtkappchooserdialog.ui:48 gtk/ui/gtkassistant.ui:52 -#: gtk/ui/gtkcolorchooserdialog.ui:36 gtk/ui/gtkfontchooserdialog.ui:27 +#: gtk/gtkfiledialog.c:840 gtk/gtkmessagedialog.c:170 +#: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608 +#: gtk/print/gtkpagesetupunixdialog.c:282 gtk/print/gtkprintbackend.c:638 +#: gtk/print/gtkprintunixdialog.c:682 gtk/print/gtkprintunixdialog.c:839 +#: gtk/gtkwindow.c:6257 gtk/ui/gtkappchooserdialog.ui:48 +#: gtk/ui/gtkassistant.ui:52 gtk/ui/gtkcolorchooserdialog.ui:36 +#: gtk/ui/gtkfontchooserdialog.ui:27 msgid "_Cancel" msgstr "_ביטול" #: gtk/gtkfilechoosernative.c:521 gtk/gtkfilechoosernative.c:594 -#: gtk/gtkfiledialog.c:815 gtk/gtkplacessidebar.c:3149 +#: gtk/gtkfiledialog.c:812 gtk/gtkplacessidebar.c:3149 #: gtk/gtkplacessidebar.c:3234 gtk/gtkplacesview.c:1645 msgid "_Open" msgstr "_פתיחה" -#: gtk/gtkfilechoosernative.c:594 gtk/gtkfiledialog.c:820 +#: gtk/gtkfilechoosernative.c:594 gtk/gtkfiledialog.c:817 msgid "_Save" msgstr "_שמירה" @@ -2383,7 +2392,7 @@ msgid "If you delete an item, it will be permanently lost." msgstr "אם פריט ימחק, הוא יאבד לצמיתות." #: gtk/gtkfilechooserwidget.c:1188 gtk/gtkfilechooserwidget.c:1786 -#: gtk/gtklabel.c:5712 gtk/gtktext.c:6194 gtk/gtktextview.c:9099 +#: gtk/gtklabel.c:5745 gtk/gtktext.c:6196 gtk/gtktextview.c:9099 msgid "_Delete" msgstr "מ_חיקה" @@ -2600,7 +2609,7 @@ msgid "Name" msgstr "שם" #: gtk/gtkfilechooserwidget.c:7392 gtk/inspector/resource-list.ui:82 -#: gtk/ui/gtkfontchooserwidget.ui:217 gtk/ui/gtkfontchooserwidget.ui:386 +#: gtk/ui/gtkfontchooserwidget.ui:218 gtk/ui/gtkfontchooserwidget.ui:387 msgid "Size" msgstr "גודל" @@ -2611,28 +2620,28 @@ msgstr "סוג" # hebrew note: "תיקייה" is "folder", but there is no better word for # "directory" -#: gtk/gtkfiledialog.c:816 +#: gtk/gtkfiledialog.c:813 msgid "Pick Files" msgstr "בחירת קבצים" -#: gtk/gtkfiledialog.c:816 +#: gtk/gtkfiledialog.c:813 msgid "Pick a File" msgstr "בחירת קובץ" -#: gtk/gtkfiledialog.c:821 +#: gtk/gtkfiledialog.c:818 msgid "Save a File" msgstr "שמירץ קובץ" -#: gtk/gtkfiledialog.c:825 gtk/ui/gtkappchooserdialog.ui:53 +#: gtk/gtkfiledialog.c:822 gtk/ui/gtkappchooserdialog.ui:53 #: gtk/ui/gtkcolorchooserdialog.ui:41 gtk/ui/gtkfontchooserdialog.ui:32 msgid "_Select" msgstr "ב_חירה" -#: gtk/gtkfiledialog.c:826 +#: gtk/gtkfiledialog.c:823 msgid "Select Folders" msgstr "בחירת תיקיות" -#: gtk/gtkfiledialog.c:826 +#: gtk/gtkfiledialog.c:823 msgid "Select a Folder" msgstr "בחירת תיקייה" @@ -2644,75 +2653,75 @@ msgstr "לא צוין" msgid "Change Font Features" msgstr "שינוי מאפייני גופן" -#: gtk/gtkfontchooserwidget.c:1547 +#: gtk/gtkfontchooserwidget.c:1491 msgctxt "Font variation axis" msgid "Width" msgstr "רוחב" -#: gtk/gtkfontchooserwidget.c:1548 +#: gtk/gtkfontchooserwidget.c:1492 msgctxt "Font variation axis" msgid "Weight" msgstr "משקל" -#: gtk/gtkfontchooserwidget.c:1549 +#: gtk/gtkfontchooserwidget.c:1493 msgctxt "Font variation axis" msgid "Italic" msgstr "נטוי" -#: gtk/gtkfontchooserwidget.c:1550 +#: gtk/gtkfontchooserwidget.c:1494 msgctxt "Font variation axis" msgid "Slant" msgstr "משופע" -#: gtk/gtkfontchooserwidget.c:1551 +#: gtk/gtkfontchooserwidget.c:1495 msgctxt "Font variation axis" msgid "Optical Size" msgstr "גודל אופטי" -#: gtk/gtkfontchooserwidget.c:2109 +#: gtk/gtkfontchooserwidget.c:2053 msgctxt "Font feature value" msgid "Default" msgstr "ברירת מחדל" -#: gtk/gtkfontchooserwidget.c:2126 +#: gtk/gtkfontchooserwidget.c:2070 msgctxt "Font feature value" msgid "Enable" msgstr "לאפשר" -#: gtk/gtkfontchooserwidget.c:2459 +#: gtk/gtkfontchooserwidget.c:2403 msgid "Default" msgstr "ברירת מחדל" -#: gtk/gtkfontchooserwidget.c:2521 +#: gtk/gtkfontchooserwidget.c:2465 msgid "Ligatures" msgstr "צרוף אותיות" -#: gtk/gtkfontchooserwidget.c:2522 +#: gtk/gtkfontchooserwidget.c:2466 msgid "Letter Case" msgstr "אותיות רישיות" -#: gtk/gtkfontchooserwidget.c:2523 +#: gtk/gtkfontchooserwidget.c:2467 msgid "Number Case" msgstr "מספר מונה" -#: gtk/gtkfontchooserwidget.c:2524 +#: gtk/gtkfontchooserwidget.c:2468 msgid "Number Spacing" msgstr "מספר רווח" # msgctxt "OpenType layout" -#: gtk/gtkfontchooserwidget.c:2525 +#: gtk/gtkfontchooserwidget.c:2469 msgid "Fractions" msgstr "שברים" -#: gtk/gtkfontchooserwidget.c:2526 +#: gtk/gtkfontchooserwidget.c:2470 msgid "Style Variations" msgstr "מאפייני סגנון" -#: gtk/gtkfontchooserwidget.c:2528 +#: gtk/gtkfontchooserwidget.c:2472 msgid "Character Variations" msgstr "הגווני תו" -#: gtk/gtkglarea.c:309 +#: gtk/gtkglarea.c:316 msgid "OpenGL context creation failed" msgstr "יצירת הקשר OpenGL נכשלה" @@ -2725,32 +2734,32 @@ msgstr "סגירה" msgid "Close the infobar" msgstr "סגירת פס המידע" -#: gtk/gtklabel.c:5709 gtk/gtktext.c:6182 gtk/gtktextview.c:9087 +#: gtk/gtklabel.c:5742 gtk/gtktext.c:6184 gtk/gtktextview.c:9087 msgid "Cu_t" msgstr "_גזירה" -#: gtk/gtklabel.c:5710 gtk/gtktext.c:6186 gtk/gtktextview.c:9091 +#: gtk/gtklabel.c:5743 gtk/gtktext.c:6188 gtk/gtktextview.c:9091 msgid "_Copy" msgstr "ה_עתקה" -#: gtk/gtklabel.c:5711 gtk/gtktext.c:6190 gtk/gtktextview.c:9095 +#: gtk/gtklabel.c:5744 gtk/gtktext.c:6192 gtk/gtktextview.c:9095 msgid "_Paste" msgstr "ה_דבקה" -#: gtk/gtklabel.c:5717 gtk/gtktext.c:6203 gtk/gtktextview.c:9120 +#: gtk/gtklabel.c:5750 gtk/gtktext.c:6205 gtk/gtktextview.c:9120 msgid "Select _All" msgstr "בחירה בה_כול" -#: gtk/gtklabel.c:5722 +#: gtk/gtklabel.c:5755 msgid "_Open Link" msgstr "_פתיחת קישור" -#: gtk/gtklabel.c:5726 +#: gtk/gtklabel.c:5759 msgid "Copy _Link Address" msgstr "העתקת כתובת ה_קישור" # msgctxt "OpenType layout" -#: gtk/gtklabel.c:5770 gtk/gtktext.c:2723 gtk/gtktextview.c:9169 +#: gtk/gtklabel.c:5803 gtk/gtktext.c:2723 gtk/gtktextview.c:9169 msgid "Context menu" msgstr "תפריט הקשר" @@ -2758,7 +2767,7 @@ msgstr "תפריט הקשר" msgid "_Copy URL" msgstr "ה_עתקת כתובת" -#: gtk/gtklinkbutton.c:567 +#: gtk/gtklinkbutton.c:589 msgid "Invalid URI" msgstr "כתובת לא תקנית" @@ -2822,7 +2831,7 @@ msgid "Play" msgstr "ניגון" #: gtk/gtkmessagedialog.c:162 gtk/gtkmessagedialog.c:180 -#: gtk/print/gtkprintbackend.c:639 gtk/gtkwindow.c:6257 +#: gtk/print/gtkprintbackend.c:639 gtk/gtkwindow.c:6258 msgid "_OK" msgstr "_אישור" @@ -2970,7 +2979,8 @@ msgstr "ניהול גדלים מותאמים…" msgid "_Apply" msgstr "ה_חלה" -#: gtk/print/gtkpagesetupunixdialog.c:318 gtk/print/gtkpagesetupunixdialog.c:570 +#: gtk/print/gtkpagesetupunixdialog.c:318 +#: gtk/print/gtkpagesetupunixdialog.c:570 msgid "Any Printer" msgstr "מדפסת כלשהי" @@ -3688,7 +3698,7 @@ msgctxt "accessibility" msgid "Sidebar" msgstr "סרגל צד" -#: gtk/gtktext.c:6208 gtk/gtktextview.c:9125 +#: gtk/gtktext.c:6210 gtk/gtktextview.c:9125 msgid "Insert _Emoji" msgstr "הוספת _רגשון" @@ -3700,22 +3710,22 @@ msgstr "_ביטול" msgid "_Redo" msgstr "ביצוע _שוב" -#: gtk/gtkwindow.c:6245 +#: gtk/gtkwindow.c:6246 #, c-format msgid "Do you want to use GTK Inspector?" msgstr "להשתמש במפקח GTK‎?" -#: gtk/gtkwindow.c:6247 +#: gtk/gtkwindow.c:6248 #, c-format msgid "" -"GTK Inspector is an interactive debugger that lets you explore and modify the " -"internals of any GTK application. Using it may cause the application to break " -"or crash." +"GTK Inspector is an interactive debugger that lets you explore and modify " +"the internals of any GTK application. Using it may cause the application to " +"break or crash." msgstr "" "מפקח GTK‎ הוא מנפה שגיאות הידודי המאפשר לך לחקור ולשנות את הפנים של כל יישום " "GTK+‎. שימוש בו יכול לגרום ליישום להישבר או לקרוס." -#: gtk/gtkwindow.c:6252 +#: gtk/gtkwindow.c:6253 msgid "Don’t show this message again" msgstr "לא להציג הודעה זו שוב" @@ -3858,8 +3868,8 @@ msgstr "ניתן להקליד כאן כל הוראת CSS המוכרת על יד #: gtk/inspector/css-editor.c:129 msgid "" -"You can temporarily disable this custom CSS by clicking on the “Pause” button " -"above." +"You can temporarily disable this custom CSS by clicking on the “Pause” " +"button above." msgstr "ניתן להשבית באופן זמני CSS מותאם על ידי לחיצה על הכפתור „השהיה” מעל." #: gtk/inspector/css-editor.c:130 @@ -3892,37 +3902,37 @@ msgstr "מחלקות סגנון" msgid "CSS Property" msgstr "מאפיין CSS" -#: gtk/inspector/general.c:370 +#: gtk/inspector/general.c:371 msgctxt "GL version" msgid "None" msgstr "ללא" -#: gtk/inspector/general.c:461 +#: gtk/inspector/general.c:462 msgctxt "GL version" msgid "Unknown" msgstr "לא ידוע" -#: gtk/inspector/general.c:523 +#: gtk/inspector/general.c:524 msgctxt "Vulkan device" msgid "Disabled" msgstr "מושבת" -#: gtk/inspector/general.c:524 gtk/inspector/general.c:525 +#: gtk/inspector/general.c:525 gtk/inspector/general.c:526 msgctxt "Vulkan version" msgid "Disabled" msgstr "מושבת" -#: gtk/inspector/general.c:576 +#: gtk/inspector/general.c:577 msgctxt "Vulkan device" msgid "None" msgstr "ללא" -#: gtk/inspector/general.c:577 gtk/inspector/general.c:578 +#: gtk/inspector/general.c:578 gtk/inspector/general.c:579 msgctxt "Vulkan version" msgid "None" msgstr "ללא" -#: gtk/inspector/general.c:924 +#: gtk/inspector/general.c:930 msgid "IM Context is hardcoded by GTK_IM_MODULE" msgstr "‏IM Context קשיחה בקוד על ידי GTK_IM_MODULE" @@ -4232,7 +4242,7 @@ msgstr "מקור:" msgid "Defined At" msgstr "הגדרה" -#: gtk/inspector/recorder.c:1941 +#: gtk/inspector/recorder.c:1950 #, c-format msgid "Saving RenderNode failed" msgstr "שמירת RenderNode נכשלה" @@ -4370,7 +4380,7 @@ msgstr "היררכייה" msgid "Implements" msgstr "מיישם" -#: gtk/inspector/visual.c:765 gtk/inspector/visual.c:784 +#: gtk/inspector/visual.c:690 gtk/inspector/visual.c:708 msgid "Theme is hardcoded by GTK_THEME" msgstr "ערכת נושא קשיחה בקוד על ידי GTK_THEME" @@ -4415,92 +4425,75 @@ msgid "Slowdown" msgstr "האטה" #: gtk/inspector/visual.ui:362 -msgid "Antialiasing" -msgstr "החלקת קצוות" +msgid "Rendering" +msgstr "עיבוד" -#: gtk/inspector/visual.ui:387 -msgid "Hinting" -msgstr "רימוז" +#: gtk/inspector/visual.ui:377 +msgctxt "Font rendering" +msgid "Automatic" +msgstr "אוטומטי" -#: gtk/inspector/visual.ui:402 -msgctxt "Font hinting style" -msgid "None" -msgstr "ללא" - -#: gtk/inspector/visual.ui:403 -msgctxt "Font hinting style" -msgid "Slight" -msgstr "קל" - -#: gtk/inspector/visual.ui:404 -msgctxt "Font hinting style" -msgid "Medium" -msgstr "בינוני" +#: gtk/inspector/visual.ui:378 +msgctxt "Font rendering" +msgid "Manual" +msgstr "ידני" #: gtk/inspector/visual.ui:405 -msgctxt "Font hinting style" -msgid "Full" -msgstr "מלא" - -#: gtk/inspector/visual.ui:422 -msgid "Metrics Hinting" -msgstr "רימוז מדדים" - -#: gtk/inspector/visual.ui:457 msgid "Show Framerate" msgstr "הצגת קצב תמוניות" -#: gtk/inspector/visual.ui:482 +#: gtk/inspector/visual.ui:430 msgid "Show Graphic Updates" msgstr "הצגת עדכונים גרפיים" -#: gtk/inspector/visual.ui:502 +#: gtk/inspector/visual.ui:450 msgid "" -"Tints all the places where the current renderer uses Cairo instead of the GPU." +"Tints all the places where the current renderer uses Cairo instead of the " +"GPU." msgstr "" "מכהה את כל המקומות שמעבד התצוגה הנוכחית משתמש ב־Cairo במקום במעבד הגרפי." -#: gtk/inspector/visual.ui:508 +#: gtk/inspector/visual.ui:456 msgid "Show Cairo Rendering" msgstr "הצגת עיבוד Cairo" -#: gtk/inspector/visual.ui:533 +#: gtk/inspector/visual.ui:481 msgid "Show Baselines" msgstr "הצגת קווי בסיס (Baselines)" -#: gtk/inspector/visual.ui:561 +#: gtk/inspector/visual.ui:509 msgid "Show Layout Borders" msgstr "הצגת גבולות פריסה" -#: gtk/inspector/visual.ui:618 +#: gtk/inspector/visual.ui:566 msgid "CSS Padding" msgstr "מרווח ב־CSS" -#: gtk/inspector/visual.ui:628 +#: gtk/inspector/visual.ui:576 msgid "CSS Border" msgstr "מסגרת CSS" -#: gtk/inspector/visual.ui:638 +#: gtk/inspector/visual.ui:586 msgid "CSS Margin" msgstr "שול CSS" -#: gtk/inspector/visual.ui:648 +#: gtk/inspector/visual.ui:596 msgid "Widget Margin" msgstr "שול הווידג׳ט" -#: gtk/inspector/visual.ui:683 +#: gtk/inspector/visual.ui:631 msgid "Show Focus" msgstr "הצגת מיקוד" -#: gtk/inspector/visual.ui:708 +#: gtk/inspector/visual.ui:656 msgid "Show Accessibility warnings" msgstr "הצגת אזהרות נגישות" -#: gtk/inspector/visual.ui:733 +#: gtk/inspector/visual.ui:681 msgid "Show Graphics Offload" msgstr "הצגת פריקת גרפיקה" -#: gtk/inspector/visual.ui:765 +#: gtk/inspector/visual.ui:713 msgid "Inspect Inspector" msgstr "חקירת חוקר" @@ -6327,32 +6320,32 @@ msgstr "_יצירה" msgid "Select Font" msgstr "בחירת גופן" -#: gtk/ui/gtkfontchooserwidget.ui:64 +#: gtk/ui/gtkfontchooserwidget.ui:66 msgid "Search font name" msgstr "חיפוש שם הגופן" -#: gtk/ui/gtkfontchooserwidget.ui:77 +#: gtk/ui/gtkfontchooserwidget.ui:79 msgid "Filters" msgstr "מסננים" -#: gtk/ui/gtkfontchooserwidget.ui:89 +#: gtk/ui/gtkfontchooserwidget.ui:91 msgid "Filter by" msgstr "סינון לפי" -#: gtk/ui/gtkfontchooserwidget.ui:99 +#: gtk/ui/gtkfontchooserwidget.ui:101 msgid "Monospace" msgstr "רוחב אחיד" -#: gtk/ui/gtkfontchooserwidget.ui:105 +#: gtk/ui/gtkfontchooserwidget.ui:106 msgid "Language" msgstr "שפה" -#: gtk/ui/gtkfontchooserwidget.ui:198 gtk/ui/gtkfontchooserwidget.ui:200 -#: gtk/ui/gtkfontchooserwidget.ui:353 gtk/ui/gtkfontchooserwidget.ui:357 +#: gtk/ui/gtkfontchooserwidget.ui:199 gtk/ui/gtkfontchooserwidget.ui:201 +#: gtk/ui/gtkfontchooserwidget.ui:354 gtk/ui/gtkfontchooserwidget.ui:358 msgid "Preview Font" msgstr "תצוגה מקדימה לגופן" -#: gtk/ui/gtkfontchooserwidget.ui:296 +#: gtk/ui/gtkfontchooserwidget.ui:297 msgid "No Fonts Found" msgstr "לא נמצאו גופנים" @@ -6458,7 +6451,8 @@ msgstr "_בחירה" msgid "Pag_es:" msgstr "_דפים:" -#: gtk/print/ui/gtkprintunixdialog.ui:260 gtk/print/ui/gtkprintunixdialog.ui:273 +#: gtk/print/ui/gtkprintunixdialog.ui:260 +#: gtk/print/ui/gtkprintunixdialog.ui:273 msgid "" "Specify one or more page ranges,\n" " e.g. 1–3, 7, 11" @@ -6565,8 +6559,10 @@ msgid "A_t:" msgstr "_ב:" #. Ability to parse the am/pm format depends on actual locale. You can remove the am/pm values below for your locale if they are not supported. -#: gtk/print/ui/gtkprintunixdialog.ui:903 gtk/print/ui/gtkprintunixdialog.ui:905 -#: gtk/print/ui/gtkprintunixdialog.ui:921 gtk/print/ui/gtkprintunixdialog.ui:923 +#: gtk/print/ui/gtkprintunixdialog.ui:903 +#: gtk/print/ui/gtkprintunixdialog.ui:905 +#: gtk/print/ui/gtkprintunixdialog.ui:921 +#: gtk/print/ui/gtkprintunixdialog.ui:923 msgid "" "Specify the time of print,\n" " e.g. 15∶30, 2∶35 pm, 14∶15∶20, 11∶46∶30 am, 4 pm" @@ -6579,7 +6575,8 @@ msgstr "" msgid "On _hold" msgstr "בהמ_תנה" -#: gtk/print/ui/gtkprintunixdialog.ui:937 gtk/print/ui/gtkprintunixdialog.ui:938 +#: gtk/print/ui/gtkprintunixdialog.ui:937 +#: gtk/print/ui/gtkprintunixdialog.ui:938 msgid "Hold the job until it is explicitly released" msgstr "החזקת המשימה עד שתשוחרר מפורשות" @@ -7216,22 +7213,22 @@ msgstr "לשלוח פלט לתיקייה הזאת במקום אל cwd" msgid "Generate debug output" msgstr "יצירת פלט ניפוי שגיאות" -#: tools/encodesymbolic.c:92 +#: tools/encodesymbolic.c:95 #, c-format msgid "Invalid size %s\n" msgstr "גודל %s שגוי\n" -#: tools/encodesymbolic.c:104 tools/encodesymbolic.c:113 +#: tools/encodesymbolic.c:107 tools/encodesymbolic.c:116 #, c-format msgid "Can’t load file: %s\n" msgstr "לא ניתן לטעון קובץ: %s\n" -#: tools/encodesymbolic.c:141 tools/encodesymbolic.c:147 +#: tools/encodesymbolic.c:144 tools/encodesymbolic.c:162 #, c-format msgid "Can’t save file %s: %s\n" msgstr "אי אפשר לשמור קובץ %s‏: %s\n" -#: tools/encodesymbolic.c:153 +#: tools/encodesymbolic.c:168 #, c-format msgid "Can’t close stream" msgstr "אי אפשר לסגור תזרים" @@ -7305,7 +7302,7 @@ msgstr "להשתמש בסגנון מקובץ CSS" #: tools/gtk-builder-tool-preview.c:187 tools/gtk-builder-tool-screenshot.c:370 #: tools/gtk-builder-tool-validate.c:268 #: tools/gtk-rendernode-tool-benchmark.c:106 -#: tools/gtk-rendernode-tool-render.c:203 tools/gtk-rendernode-tool-show.c:113 +#: tools/gtk-rendernode-tool-render.c:262 tools/gtk-rendernode-tool-show.c:113 #, c-format msgid "Could not initialize windowing system\n" msgstr "לא ניתן להפעיל את מערכת החלונות\n" @@ -7350,13 +7347,13 @@ msgstr "" "Use --force to overwrite.\n" #: tools/gtk-builder-tool-screenshot.c:332 -#: tools/gtk-rendernode-tool-render.c:171 +#: tools/gtk-rendernode-tool-render.c:230 #, c-format msgid "Output written to %s.\n" msgstr "Output written to %s.\n" #: tools/gtk-builder-tool-screenshot.c:336 -#: tools/gtk-rendernode-tool-render.c:175 +#: tools/gtk-rendernode-tool-render.c:234 #, c-format msgid "Failed to save %s: %s\n" msgstr "Failed to save %s: %s\n" @@ -7375,7 +7372,7 @@ msgstr "שכתוב קובץ קיים" #: tools/gtk-builder-tool-screenshot.c:363 #: tools/gtk-rendernode-tool-benchmark.c:97 -#: tools/gtk-rendernode-tool-render.c:196 +#: tools/gtk-rendernode-tool-render.c:255 msgid "FILE…" msgstr "FILE…" @@ -7425,7 +7422,8 @@ msgstr "" "לא ניתן לטעון את „%s”: %s\n" "‬\n" -#: tools/gtk-builder-tool-simplify.c:2466 tools/gtk-builder-tool-simplify.c:2472 +#: tools/gtk-builder-tool-simplify.c:2466 +#: tools/gtk-builder-tool-simplify.c:2472 #: tools/gtk-builder-tool-simplify.c:2478 #, c-format msgid "Can’t parse “%s”: %s\n" @@ -7876,7 +7874,8 @@ msgid "Add renderer to benchmark" msgstr "הוספת מנגנון עיבוד למדידת ביצועים" #: tools/gtk-rendernode-tool-benchmark.c:94 -#: tools/gtk-rendernode-tool-compare.c:65 tools/gtk-rendernode-tool-render.c:195 +#: tools/gtk-rendernode-tool-compare.c:65 +#: tools/gtk-rendernode-tool-render.c:254 msgid "RENDERER" msgstr "מעבד תצוגה" @@ -7897,7 +7896,7 @@ msgid "Benchmark rendering of a .node file." msgstr "מדידת ביצועים על עיבוד קובץ ‎.node." #: tools/gtk-rendernode-tool-benchmark.c:127 -#: tools/gtk-rendernode-tool-info.c:236 tools/gtk-rendernode-tool-render.c:224 +#: tools/gtk-rendernode-tool-info.c:236 tools/gtk-rendernode-tool-render.c:283 #: tools/gtk-rendernode-tool-show.c:134 #, c-format msgid "No .node file specified\n" @@ -7908,7 +7907,8 @@ msgstr "לא צוין קובץ ‎.node\n" msgid "Can only benchmark a single .node file\n" msgstr "יכול למדוד ביצועים רק לקובץ ‎.node בודד\n" -#: tools/gtk-rendernode-tool-compare.c:65 tools/gtk-rendernode-tool-render.c:195 +#: tools/gtk-rendernode-tool-compare.c:65 +#: tools/gtk-rendernode-tool-render.c:254 msgid "Renderer to use" msgstr "עיבוד לשימוש" @@ -7930,7 +7930,7 @@ msgid "Must specify two files\n" msgstr "חובה לציין שני קבצים.\n" #: tools/gtk-rendernode-tool-compare.c:102 -#: tools/gtk-rendernode-tool-render.c:150 +#: tools/gtk-rendernode-tool-render.c:209 #, c-format msgid "Failed to create renderer: %s\n" msgstr "יצירת מנגנון עיבוד נכשלה: %s\n" @@ -7989,7 +7989,7 @@ msgstr "אספקת מידע על נקודת העיבוד החזותי." msgid "Can only accept a single .node file\n" msgstr "יכול לקבל רק קובץ ‎.node בודד\n" -#: tools/gtk-rendernode-tool-render.c:123 +#: tools/gtk-rendernode-tool-render.c:170 #, c-format msgid "" "File %s exists.\n" @@ -7998,16 +7998,17 @@ msgstr "" "הקובץ %s קיים.\n" "כדי לשכתב יש לציין את שם הקובץ.\n" -#: tools/gtk-rendernode-tool-render.c:137 +#: tools/gtk-rendernode-tool-render.c:184 +#: tools/gtk-rendernode-tool-render.c:196 #, c-format msgid "Failed to generate SVG: %s\n" msgstr "יצירת SVG נכשלה: %s\n" -#: tools/gtk-rendernode-tool-render.c:211 +#: tools/gtk-rendernode-tool-render.c:270 msgid "Render a .node file to an image." msgstr "עיבוד קובץ ‎.node לתמונה." -#: tools/gtk-rendernode-tool-render.c:230 +#: tools/gtk-rendernode-tool-render.c:289 #, c-format msgid "Can only render a single .node file to a single output file\n" msgstr "יכול לעבד קובץ ,node יחיד בלבד לקובץ פלט יחיד\n" @@ -8142,6 +8143,31 @@ msgstr "" "No theme index file in “%s”.\n" "If you really want to create an icon cache here, use --ignore-theme-index.\n" +#~ msgid "Antialiasing" +#~ msgstr "החלקת קצוות" + +#~ msgid "Hinting" +#~ msgstr "רימוז" + +#~ msgctxt "Font hinting style" +#~ msgid "None" +#~ msgstr "ללא" + +#~ msgctxt "Font hinting style" +#~ msgid "Slight" +#~ msgstr "קל" + +#~ msgctxt "Font hinting style" +#~ msgid "Medium" +#~ msgstr "בינוני" + +#~ msgctxt "Font hinting style" +#~ msgid "Full" +#~ msgstr "מלא" + +#~ msgid "Metrics Hinting" +#~ msgstr "רימוז מדדים" + #~ msgid "Backend does not support window scaling" #~ msgstr "הממשק אינו תומך בקנה מידה לחלון" @@ -9156,8 +9182,8 @@ msgstr "" #~ "צבע זה בעזרת המשולש הפנימי." #~ msgid "" -#~ "Click the eyedropper, then click a color anywhere on your screen to select " -#~ "that color." +#~ "Click the eyedropper, then click a color anywhere on your screen to " +#~ "select that color." #~ msgstr "יש ללחוץ על הטפטפת ואז ללחוץ על צבע כלשהו במסך לבחירת אותו הצבע." #~ msgid "_Hue:" @@ -9209,8 +9235,8 @@ msgstr "" #~ "You can enter an HTML-style hexadecimal color value, or simply a color " #~ "name such as “orange” in this entry." #~ msgstr "" -#~ "ניתן להזין ערך צבע הקסדצימלי בסגנון HTML, או פשוט לכתוב שם צבע באנגלית כמו " -#~ "„orange” ברשומה זו." +#~ "ניתן להזין ערך צבע הקסדצימלי בסגנון HTML, או פשוט לכתוב שם צבע באנגלית " +#~ "כמו „orange” ברשומה זו." #~ msgid "_Palette:" #~ msgstr "_פלטה:" @@ -10017,11 +10043,11 @@ msgstr "" #~ msgstr "smb://foo.example.com, ssh://192.168.0.1" #~ msgid "" -#~ "The WGL_ARB_create_context extension needed to create core profiles is not " -#~ "available" +#~ "The WGL_ARB_create_context extension needed to create core profiles is " +#~ "not available" #~ msgstr "" -#~ "The WGL_ARB_create_context extension needed to create core profiles is not " -#~ "available" +#~ "The WGL_ARB_create_context extension needed to create core profiles is " +#~ "not available" #~ msgid "Changes are applied instantly, only for this selected widget." #~ msgstr "שינויים מוחלקים מיידית, רק ליישומון נבחר זה." @@ -10535,11 +10561,11 @@ msgstr "" #~ msgstr "Unable to load image-loading module: %s: %s" #~ msgid "" -#~ "Image-loading module %s does not export the proper interface; perhaps it's " -#~ "from a different GTK version?" +#~ "Image-loading module %s does not export the proper interface; perhaps " +#~ "it's from a different GTK version?" #~ msgstr "" -#~ "Image-loading module %s does not export the proper interface; perhaps it's " -#~ "from a different GTK version?" +#~ "Image-loading module %s does not export the proper interface; perhaps " +#~ "it's from a different GTK version?" #~ msgid "Couldn't recognize the image file format for file '%s'" #~ msgstr "לא ניתן לזהות את פורמט התמונה בקובץ '%s'" @@ -10550,7 +10576,8 @@ msgstr "" #~ msgid "Error writing to image file: %s" #~ msgstr "שגיאה בכתיבה לקובץ תמונה: %s" -#~ msgid "This build of gdk-pixbuf does not support saving the image format: %s" +#~ msgid "" +#~ "This build of gdk-pixbuf does not support saving the image format: %s" #~ msgstr "בניה זו של gdk-pixbuf לא תומכת בשמירת התמונה בפורמט: %s" #~ msgid "Insufficient memory to save image to callback" @@ -11128,8 +11155,8 @@ msgstr "" #~ "available to this program.\n" #~ "Are you sure that you want to select it?" #~ msgstr "" -#~ "הקובץ \"%s\" תלוי במכונה אחרת (הנקראת %s) וייתכן כי לא תיהיה זמינה לתוכנית " -#~ "זו. האם אתה בטוח שברצונך לבחור אותו?" +#~ "הקובץ \"%s\" תלוי במכונה אחרת (הנקראת %s) וייתכן כי לא תיהיה זמינה " +#~ "לתוכנית זו. האם אתה בטוח שברצונך לבחור אותו?" #~ msgid "_New Folder" #~ msgstr "תיקייה _חדשה" From e3b9df2cec00fa6c8916ddec0d04e2507a727c82 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Tue, 28 May 2024 10:22:51 +0200 Subject: [PATCH 03/11] filechooserwidget: Plug a bunch of GtkBitset leaks gtk_selection_model_get_selection() is transfer full, and the returned bitset must be freed by the caller. GtkFileChooserWidget freed none of them. Unref the bitsets. Related: https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/issues/91 --- gtk/gtkfilechooserwidget.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index 985c9b980c..d8d0aca646 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -1033,6 +1033,8 @@ selection_check (GtkFileChooserWidget *impl, g_clear_object (&info); } + g_clear_pointer (&bitset, gtk_bitset_unref); + g_assert (n_selected == 0 || !(all_files && all_folders)); if (out_num_selected) @@ -1137,6 +1139,8 @@ add_to_shortcuts_cb (GSimpleAction *action, g_clear_object (&info); } + + g_clear_pointer (&bitset, gtk_bitset_unref); } typedef struct { @@ -1217,6 +1221,8 @@ delete_file_cb (GSimpleAction *action, g_clear_object (&info); } + + g_clear_pointer (&bitset, gtk_bitset_unref); } static void @@ -1247,6 +1253,8 @@ trash_file_cb (GSimpleAction *action, g_clear_object (&info); } + + g_clear_pointer (&bitset, gtk_bitset_unref); } static void @@ -2589,6 +2597,8 @@ location_bar_update (GtkFileChooserWidget *impl) if (gtk_bitset_iter_init_first (&iter, bitset, &position)) put_recent_folder_in_pathbar (impl, position); + + g_clear_pointer (&bitset, gtk_bitset_unref); } visible = FALSE; break; @@ -3983,6 +3993,8 @@ update_chooser_entry (GtkFileChooserWidget *impl) n_selected++; } + g_clear_pointer (&bitset, gtk_bitset_unref); + if (n_selected == 0) { if (impl->operation_mode == OPERATION_MODE_RECENT) @@ -4469,6 +4481,8 @@ gtk_file_chooser_widget_unselect_file (GtkFileChooser *chooser, if (gtk_bitset_iter_is_valid (&iter)) gtk_selection_model_unselect_item (impl->selection_model, i); + + g_clear_pointer (&bitset, gtk_bitset_unref); } static void @@ -4685,6 +4699,8 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser) g_list_store_append (result, file); } + g_clear_pointer (&bitset, gtk_bitset_unref); + /* If there is no selection in the file list, we probably have this situation: * * 1. The user typed a filename in the SAVE filename entry ("foo.txt"). @@ -4895,12 +4911,15 @@ switch_to_selected_folder (GtkFileChooserWidget *impl) file = _gtk_file_info_get_file (info); change_folder_and_display_error (impl, file, FALSE); + g_clear_pointer (&bitset, gtk_bitset_unref); g_object_unref (info); return; } g_clear_object (&info); } + + g_clear_pointer (&bitset, gtk_bitset_unref); } /* Gets the display name of the selected file in the file list; assumes single @@ -5630,6 +5649,8 @@ gtk_file_chooser_widget_get_selected_files (GtkFileChooserWidget *impl) g_clear_object (&info); } + g_clear_pointer (&bitset, gtk_bitset_unref); + return result; } From 3db4a0549397f216b05df0dba6dff3601c6aa580 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 28 May 2024 16:47:48 +0200 Subject: [PATCH 04/11] testsuite: Shrink maximum texture size in test 1MB textures can lead to 20s runtimes - which with asan CI being a lot slower can be a loooong time and cause timeouts. Limiting them to 16kB still allows hitting max texture size sometimes but makes sure the test only runs for 3-4s worst case. I hope that doesn't trigger timeouts even under asan. --- testsuite/gdk/memorytexture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testsuite/gdk/memorytexture.c b/testsuite/gdk/memorytexture.c index 4e25643f2a..51b85cd0e4 100644 --- a/testsuite/gdk/memorytexture.c +++ b/testsuite/gdk/memorytexture.c @@ -1319,7 +1319,7 @@ test_download_random (gconstpointer data) width = g_test_rand_int_range (1, 40) * g_test_rand_int_range (1, 40); height = g_test_rand_int_range (1, 40) * g_test_rand_int_range (1, 40); } - while (width * height >= 1024 * 1024); + while (width * height >= 32 * 1024); test_download (data, width, height, 1); } From 97410824679828511e5ffd16ab5e3d4b63ff86a2 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Mon, 27 May 2024 18:55:08 +0800 Subject: [PATCH 05/11] gskvulkanmemory.c: Use VK_NULL_HANDLE for VkDeviceMemory ...rather than NULL, so that things will build fine on non-LLP, non-64-bit systems. --- gsk/gpu/gskvulkanmemory.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gsk/gpu/gskvulkanmemory.c b/gsk/gpu/gskvulkanmemory.c index 4e6672caa9..45dbf034b1 100644 --- a/gsk/gpu/gskvulkanmemory.c +++ b/gsk/gpu/gskvulkanmemory.c @@ -178,7 +178,7 @@ gsk_vulkan_buddy_allocator_alloc (GskVulkanAllocator *allocator, if (self->cache.vk_memory) { *alloc = self->cache; - self->cache.vk_memory = NULL; + self->cache.vk_memory = VK_NULL_HANDLE; } else { @@ -240,7 +240,7 @@ restart: alloc->size <<= 1; if (slot == 0) { - if (self->cache.vk_memory == NULL) + if (self->cache.vk_memory == VK_NULL_HANDLE) self->cache = *alloc; else gsk_vulkan_free (self->allocator, alloc); From 085062ab8948c7cc9e5e6ebf0b680b1a22e445e4 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Sat, 25 May 2024 10:53:41 +0800 Subject: [PATCH 06/11] gdkvulkancontext.c: Use pointers to hash VkShaderModule VkShaderModule's may or may not be pointers depending on the target platform, so use pointers to hash those handles to be safe, and retrieve them from hashes accordingly. Fixes build on 32-bit Windows at least. --- gdk/gdkvulkancontext.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/gdk/gdkvulkancontext.c b/gdk/gdkvulkancontext.c index 729f9e1d36..162cc3b46e 100644 --- a/gdk/gdkvulkancontext.c +++ b/gdk/gdkvulkancontext.c @@ -1859,8 +1859,9 @@ gdk_display_unref_vulkan (GdkDisplay *display) { g_free (key); vkDestroyShaderModule (display->vk_device, - value, + *((VkShaderModule *)value), NULL); + g_free (value); } g_hash_table_unref (display->vk_shader_modules); @@ -1988,13 +1989,13 @@ VkShaderModule gdk_display_get_vk_shader_module (GdkDisplay *self, const char *resource_name) { - VkShaderModule shader; + VkShaderModule *shader; GError *error = NULL; GBytes *bytes; shader = g_hash_table_lookup (self->vk_shader_modules, resource_name); if (shader) - return shader; + return *shader; bytes = g_resources_lookup_data (resource_name, 0, &error); if (bytes == NULL) @@ -2004,6 +2005,7 @@ gdk_display_get_vk_shader_module (GdkDisplay *self, return VK_NULL_HANDLE; } + shader = g_new0 (VkShaderModule, 1); if (GDK_VK_CHECK (vkCreateShaderModule, self->vk_device, &(VkShaderModuleCreateInfo) { .sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO, @@ -2011,18 +2013,20 @@ gdk_display_get_vk_shader_module (GdkDisplay *self, .pCode = (uint32_t *) g_bytes_get_data (bytes, NULL), }, NULL, - &shader) == VK_SUCCESS) + shader) == VK_SUCCESS) { g_hash_table_insert (self->vk_shader_modules, g_strdup (resource_name), shader); } else { - shader = VK_NULL_HANDLE; + g_free (shader); + + return VK_NULL_HANDLE; } g_bytes_unref (bytes); - return shader; + return *shader; } #else /* GDK_RENDERING_VULKAN */ From d2298f1c8fdb53c9fd3c3d9d29431d09323e0799 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Sat, 25 May 2024 10:56:07 +0800 Subject: [PATCH 07/11] gskvulkandevice.c: Put Vk[Pipeline|RenderPass] in structures This way, we can simply duplicate the keys as separate pointers to store the corresponding Vulkan handles so that we can safely hash them, as Vulkan handles may or may not be pointers depending on the target platform. This will fix builds on 32-bit Windows at least. --- gsk/gpu/gskvulkandevice.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/gsk/gpu/gskvulkandevice.c b/gsk/gpu/gskvulkandevice.c index 5ee7e5764d..2188008f47 100644 --- a/gsk/gpu/gskvulkandevice.c +++ b/gsk/gpu/gskvulkandevice.c @@ -81,6 +81,7 @@ struct _PipelineCacheKey GskGpuShaderClip clip; GskGpuBlend blend; VkFormat format; + VkPipeline pipeline; }; struct _RenderPassCacheKey @@ -88,6 +89,7 @@ struct _RenderPassCacheKey VkFormat format; VkImageLayout from_layout; VkImageLayout to_layout; + VkRenderPass render_pass; }; static guint @@ -297,8 +299,10 @@ gsk_vulkan_pipeline_layout_unref (GskVulkanDevice *self, g_hash_table_iter_init (&iter, layout->pipeline_cache); while (g_hash_table_iter_next (&iter, &key, &value)) { + vkDestroyPipeline (display->vk_device, + ((PipelineCacheKey *)key)->pipeline, + NULL); g_free (key); - vkDestroyPipeline (display->vk_device, value, NULL); } g_hash_table_unref (layout->pipeline_cache); @@ -463,8 +467,10 @@ gsk_vulkan_device_finalize (GObject *object) g_hash_table_iter_init (&iter, self->render_pass_cache); while (g_hash_table_iter_next (&iter, &key, &value)) { + vkDestroyRenderPass (display->vk_device, + ((RenderPassCacheKey *)key)->render_pass, + NULL); g_free (key); - vkDestroyRenderPass (display->vk_device, value, NULL); } g_hash_table_unref (self->render_pass_cache); @@ -824,6 +830,7 @@ gsk_vulkan_device_get_vk_render_pass (GskVulkanDevice *self, VkImageLayout to_layout) { RenderPassCacheKey cache_key; + RenderPassCacheKey *cached_result; VkRenderPass render_pass; GdkDisplay *display; @@ -832,9 +839,9 @@ gsk_vulkan_device_get_vk_render_pass (GskVulkanDevice *self, .from_layout = from_layout, .to_layout = to_layout, }; - render_pass = g_hash_table_lookup (self->render_pass_cache, &cache_key); - if (render_pass) - return render_pass; + cached_result = g_hash_table_lookup (self->render_pass_cache, &cache_key); + if (cached_result) + return cached_result->render_pass; display = gsk_gpu_device_get_display (GSK_GPU_DEVICE (self)); @@ -878,7 +885,10 @@ gsk_vulkan_device_get_vk_render_pass (GskVulkanDevice *self, NULL, &render_pass); - g_hash_table_insert (self->render_pass_cache, g_memdup (&cache_key, sizeof (RenderPassCacheKey)), render_pass); + cached_result = g_memdup (&cache_key, sizeof (RenderPassCacheKey)); + cached_result->render_pass = render_pass; + + g_hash_table_insert (self->render_pass_cache, cached_result, cached_result); return render_pass; } @@ -946,6 +956,7 @@ gsk_vulkan_device_get_vk_pipeline (GskVulkanDevice *self, VkRenderPass render_pass) { PipelineCacheKey cache_key; + PipelineCacheKey *cached_result; VkPipeline pipeline; GdkDisplay *display; const char *version_string; @@ -961,9 +972,9 @@ gsk_vulkan_device_get_vk_pipeline (GskVulkanDevice *self, .blend = blend, .format = format, }; - pipeline = g_hash_table_lookup (layout->pipeline_cache, &cache_key); - if (pipeline) - return pipeline; + cached_result = g_hash_table_lookup (layout->pipeline_cache, &cache_key); + if (cached_result) + return cached_result->pipeline; display = gsk_gpu_device_get_display (GSK_GPU_DEVICE (self)); if (gsk_vulkan_device_has_feature (self, GDK_VULKAN_FEATURE_DYNAMIC_INDEXING) && @@ -1153,7 +1164,9 @@ gsk_vulkan_device_get_vk_pipeline (GskVulkanDevice *self, g_free (fragment_shader_name); g_free (vertex_shader_name); - g_hash_table_insert (layout->pipeline_cache, g_memdup (&cache_key, sizeof (PipelineCacheKey)), pipeline); + cached_result = g_memdup (&cache_key, sizeof (PipelineCacheKey)); + cached_result->pipeline = pipeline; + g_hash_table_insert (layout->pipeline_cache, cached_result, cached_result); gdk_display_vulkan_pipeline_cache_updated (display); return pipeline; From 3b5f0ed05ec775e4887560b95f18c7cd5c85a151 Mon Sep 17 00:00:00 2001 From: Michael Weghorn Date: Thu, 23 May 2024 11:02:05 +0200 Subject: [PATCH 08/11] a11y: Use text instead of label for GtkLabel's a11y name Update the `GTK_ACCESSIBLE_PROPERTY_LABEL` property in `gtk_label_set_text_internal` using the new text instead of using the label in `gtk_label_set_label_internal`. While the `label` "includes any embedded underlines indicating mnemonics and Pango markup" [1], the `text` is the "text is as it appears on screen" [2], which is more suitable for the accessible name. With this in place, the text is reported as the accessible name again after commit d5b34aecdd10e0c6c2fb6fe8043c7121ecc480b4 Date: Wed Jan 17 12:49:38 2024 +0100 a11y: Remove special handling of accessible names for static text widgets [1] https://docs.gtk.org/gtk4/method.Label.get_label.html [2] https://docs.gtk.org/gtk4/method.Label.get_text.html Fixes: #6732 Fixes: #6735 --- gtk/gtklabel.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 776ab34ac4..d646b80ee9 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -3101,6 +3101,11 @@ gtk_label_set_text_internal (GtkLabel *self, g_free (self->text); self->text = str; + gtk_accessible_update_property (GTK_ACCESSIBLE (self), + GTK_ACCESSIBLE_PROPERTY_LABEL, + self->text, + -1); + gtk_label_select_region_index (self, 0, 0); } @@ -3116,11 +3121,6 @@ gtk_label_set_label_internal (GtkLabel *self, g_object_notify_by_pspec (G_OBJECT (self), label_props[PROP_LABEL]); - gtk_accessible_update_property (GTK_ACCESSIBLE (self), - GTK_ACCESSIBLE_PROPERTY_LABEL, - self->label, - -1); - return TRUE; } From 1626c5f1e789c89e3fcc8ec1bf39cf6300aec269 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Wed, 29 May 2024 11:29:13 +0100 Subject: [PATCH 09/11] css: Create a section if the variable does not have one In case a variable definition does not have a CSS section associated to it, we fall back to the previous behaviour of creating a CSS section with the bounds of the error. See: https://gitlab.gnome.org/GNOME/gnome-build-meta/-/issues/841 --- gtk/gtkcssreferencevalue.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gtk/gtkcssreferencevalue.c b/gtk/gtkcssreferencevalue.c index 03f44b63ff..19092b2ca7 100644 --- a/gtk/gtkcssreferencevalue.c +++ b/gtk/gtkcssreferencevalue.c @@ -220,6 +220,8 @@ parser_error (GtkCssParser *parser, { for (int i = 0; i < n_vars; i++) { + GtkCssSection *section; + if (names[i + 1]) g_set_error (&new_error, GTK_CSS_PARSER_ERROR, GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE, @@ -228,7 +230,15 @@ parser_error (GtkCssParser *parser, g_set_error_literal (&new_error, GTK_CSS_PARSER_ERROR, GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE, error->message); - gtk_style_provider_emit_error (provider, vars[i]->section, new_error); + + if (vars[i]->section == NULL) + section = gtk_css_section_new (gtk_css_parser_get_file (parser), start, end); + else + section = gtk_css_section_ref (vars[i]->section); + + gtk_style_provider_emit_error (provider, section, new_error); + + gtk_css_section_unref (section); g_clear_error (&new_error); } From 5c92d5e081400935ed225022a32c76481a128129 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 29 May 2024 11:58:17 -0400 Subject: [PATCH 10/11] css: Fix serialization of oklab() etc The spec requires that oklab() and oklch() are serialized as these functions, while hwb() is serialized as rgb(). Fixes: #6748 --- gtk/gtkcsscolorvalue.c | 142 +++++++++++++++++++++++++++++++--- gtk/gtkcsscolorvalueprivate.h | 8 ++ 2 files changed, 139 insertions(+), 11 deletions(-) diff --git a/gtk/gtkcsscolorvalue.c b/gtk/gtkcsscolorvalue.c index 46d15e530a..957dfeecfb 100644 --- a/gtk/gtkcsscolorvalue.c +++ b/gtk/gtkcsscolorvalue.c @@ -37,7 +37,9 @@ typedef enum { COLOR_TYPE_SHADE, COLOR_TYPE_ALPHA, COLOR_TYPE_MIX, - COLOR_TYPE_CURRENT_COLOR + COLOR_TYPE_CURRENT_COLOR, + COLOR_TYPE_OKLAB, + COLOR_TYPE_OKLCH, } ColorType; struct _GtkCssValue @@ -69,6 +71,14 @@ struct _GtkCssValue GtkCssValue *color2; double factor; } mix; + struct + { + float L, a, b, alpha; + } oklab; + struct + { + float L, C, H, alpha; + } oklch; }; }; @@ -96,6 +106,8 @@ gtk_css_value_color_free (GtkCssValue *color) case COLOR_TYPE_LITERAL: case COLOR_TYPE_COLOR: case COLOR_TYPE_CURRENT_COLOR: + case COLOR_TYPE_OKLAB: + case COLOR_TYPE_OKLCH: default: break; } @@ -212,6 +224,16 @@ gtk_css_value_color_equal (const GtkCssValue *value1, value2->mix.color2); case COLOR_TYPE_CURRENT_COLOR: return TRUE; + case COLOR_TYPE_OKLAB: + return value1->oklab.L == value2->oklab.L && + value1->oklab.a == value2->oklab.a && + value1->oklab.b == value2->oklab.b && + value1->oklab.alpha == value2->oklab.alpha; + case COLOR_TYPE_OKLCH: + return value1->oklch.L == value2->oklch.L && + value1->oklch.C == value2->oklch.C && + value1->oklch.H == value2->oklch.H && + value1->oklch.alpha == value2->oklch.alpha; default: g_assert_not_reached (); return FALSE; @@ -329,6 +351,50 @@ gtk_css_value_color_print (const GtkCssValue *value, case COLOR_TYPE_CURRENT_COLOR: g_string_append (string, "currentColor"); break; + case COLOR_TYPE_OKLAB: + { + char buffer[G_ASCII_DTOSTR_BUF_SIZE]; + + g_string_append (string, "oklab("); + g_ascii_dtostr (buffer, sizeof (buffer), value->oklab.L); + g_string_append (string, buffer); + g_string_append_c (string, ' '); + g_ascii_dtostr (buffer, sizeof (buffer), value->oklab.a); + g_string_append (string, buffer); + g_string_append_c (string, ' '); + g_ascii_dtostr (buffer, sizeof (buffer), value->oklab.b); + g_string_append (string, buffer); + if (value->oklab.alpha < 0.999) + { + g_string_append (string, " / "); + g_ascii_dtostr (buffer, sizeof (buffer), value->oklab.alpha); + g_string_append (string, buffer); + } + g_string_append (string, ")"); + } + break; + case COLOR_TYPE_OKLCH: + { + char buffer[G_ASCII_DTOSTR_BUF_SIZE]; + + g_string_append (string, "oklch("); + g_ascii_dtostr (buffer, sizeof (buffer), value->oklch.L); + g_string_append (string, buffer); + g_string_append_c (string, ' '); + g_ascii_dtostr (buffer, sizeof (buffer), value->oklch.C); + g_string_append (string, buffer); + g_string_append_c (string, ' '); + g_ascii_dtostr (buffer, sizeof (buffer), value->oklch.H); + g_string_append (string, buffer); + if (value->oklch.alpha < 0.999) + { + g_string_append (string, " / "); + g_ascii_dtostr (buffer, sizeof (buffer), value->oklch.alpha); + g_string_append (string, buffer); + } + g_string_append (string, ")"); + } + break; default: g_assert_not_reached (); } @@ -528,6 +594,32 @@ gtk_css_color_value_do_resolve (GtkCssValue *color, value = gtk_css_value_ref (current); break; + case COLOR_TYPE_OKLAB: + { + GdkRGBA rgba; + + gtk_oklab_to_rgb (color->oklab.L, color->oklab.a, color->oklab.b, + &rgba.red, &rgba.green, &rgba.blue); + rgba.alpha = color->oklab.alpha; + + value = gtk_css_color_value_new_literal (&rgba); + } + break; + + case COLOR_TYPE_OKLCH: + { + float L, a, b; + GdkRGBA rgba; + + gtk_oklch_to_oklab (color->oklch.L, color->oklch.C, color->oklch.H, &L, &a, &b); + gtk_oklab_to_rgb (L, a, b, &rgba.red, &rgba.green, &rgba.blue); + + rgba.alpha = color->oklab.alpha; + + value = gtk_css_color_value_new_literal (&rgba); + } + break; + default: value = NULL; g_assert_not_reached (); @@ -712,6 +804,42 @@ gtk_css_color_value_new_current_color (void) return gtk_css_value_ref (¤t_color); } +GtkCssValue * +gtk_css_color_value_new_oklab (float L, + float a, + float b, + float alpha) +{ + GtkCssValue *value; + + value = gtk_css_value_new (GtkCssValue, >K_CSS_VALUE_COLOR); + value->type = COLOR_TYPE_OKLAB; + value->oklab.L = L; + value->oklab.a = a; + value->oklab.b = b; + value->oklab.alpha = alpha; + + return value; +} + +GtkCssValue * +gtk_css_color_value_new_oklch (float L, + float C, + float H, + float alpha) +{ + GtkCssValue *value; + + value = gtk_css_value_new (GtkCssValue, >K_CSS_VALUE_COLOR); + value->type = COLOR_TYPE_OKLCH; + value->oklab.L = L; + value->oklab.a = C; + value->oklab.b = H; + value->oklab.alpha = alpha; + + return value; +} + typedef struct { GtkCssValue *color; @@ -1456,28 +1584,20 @@ gtk_css_color_value_parse (GtkCssParser *parser) if (!parse_color_function (parser, COLOR_SYNTAX_MODERN, FALSE, TRUE, FALSE, parse_oklab_color_channel, &oklab)) return NULL; - gtk_oklab_to_rgb (oklab.L, oklab.a, oklab.b, &rgba.red, &rgba.green, &rgba.blue); - rgba.alpha = oklab.alpha; - - return gtk_css_color_value_new_literal (&rgba); + return gtk_css_color_value_new_oklab (oklab.L, oklab.a, oklab.b, oklab.alpha); } else if (gtk_css_parser_has_function (parser, "oklch")) { LchData oklch = { 0, }; - float L, a, b; - float red, green, blue; oklch.alpha = 1.0; if (!parse_color_function (parser, COLOR_SYNTAX_MODERN, FALSE, TRUE, FALSE, parse_oklch_color_channel, &oklch)) return NULL; - gtk_oklch_to_oklab (oklch.L, oklch.C, oklch.H, &L, &a, &b); - gtk_oklab_to_rgb (L, a, b, &red, &green, &blue); - rgba.alpha = oklch.alpha; - return gtk_css_color_value_new_literal (&rgba); + return gtk_css_color_value_new_oklch (oklch.L, oklch.C, oklch.H, oklch.alpha); } else if (gtk_css_parser_has_function (parser, "color")) { diff --git a/gtk/gtkcsscolorvalueprivate.h b/gtk/gtkcsscolorvalueprivate.h index de15a9e007..fdb8500b01 100644 --- a/gtk/gtkcsscolorvalueprivate.h +++ b/gtk/gtkcsscolorvalueprivate.h @@ -43,6 +43,14 @@ GtkCssValue * gtk_css_color_value_new_mix (GtkCssValue *color1, GtkCssValue *color2, double factor) G_GNUC_PURE; GtkCssValue * gtk_css_color_value_new_current_color (void) G_GNUC_PURE; +GtkCssValue * gtk_css_color_value_new_oklab (float L, + float a, + float b, + float alpha) G_GNUC_PURE; +GtkCssValue * gtk_css_color_value_new_oklch (float L, + float C, + float H, + float alpha) G_GNUC_PURE; gboolean gtk_css_color_value_can_parse (GtkCssParser *parser); GtkCssValue * gtk_css_color_value_parse (GtkCssParser *parser); From 15bb77472d1ff09dd71e66b6cd3eef48e02b3f43 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 29 May 2024 11:57:50 -0400 Subject: [PATCH 11/11] css: Add some parser tests for oklab() etc --- testsuite/css/parser/color.css | 12 ++++++++++++ testsuite/css/parser/color.ref.css | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/testsuite/css/parser/color.css b/testsuite/css/parser/color.css index 61c19b77f1..6a25899c7c 100644 --- a/testsuite/css/parser/color.css +++ b/testsuite/css/parser/color.css @@ -111,3 +111,15 @@ aa { ab { color: color(srgb-linear 1 0.5 0 / 50%); } + +ac { + color: oklab(0.8 0 0.3 / 0.5); +} + +ad { + color: oklch(0.8 0.3 200 / 0.5); +} + +ae { + color: hwb(200 10 90 / 0.5); +} diff --git a/testsuite/css/parser/color.ref.css b/testsuite/css/parser/color.ref.css index 1c3feb436a..71f83b9190 100644 --- a/testsuite/css/parser/color.ref.css +++ b/testsuite/css/parser/color.ref.css @@ -111,3 +111,15 @@ aa { ab { color: color(srgb-linear 1 0.5 0 / 0.5); } + +ac { + color: oklab(0.80000001192092896 0 0.30000001192092896 / 0.5); +} + +ad { + color: oklch(0.80000001192092896 0.30000001192092896 200 / 0.5); +} + +ae { + color: rgba(26,26,26,0.5); +}