{"id":90432,"date":"2020-08-01T01:42:24","date_gmt":"2020-07-31T23:42:24","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-gtk-3-99-0-oznamenoval-gotovnost-funkczionalnosti-zaplanirovannoj-dlya-gtk-4"},"modified":"2020-08-01T01:42:24","modified_gmt":"2020-07-31T23:42:24","slug":"vypusk-gtk-3-99-0-oznamenoval-gotovnost-funkczionalnosti-zaplanirovannoj-dlya-gtk-4","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-gtk-3-99-0-oznamenoval-gotovnost-funkczionalnosti-zaplanirovannoj-dlya-gtk-4","title":{"rendered":"The release of GTK 3.99.0 marked the readiness of functionality planned for GTK 4.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.mail-archive.com\/release-team@gnome.org\/msg08540.html\">Published<\/a><\/noindex> final experimental release of the framework <noindex><a rel=\"nofollow\" href=\"https:\/\/gtk.org\/\">GTK 3.99.0<\/a><\/noindex>, which implements all features planned for GTK 4. The GTK 4 branch is evolving within a new development process that aims to provide application developers with a stable API supported for several years, avoiding the need to overhaul applications every six months due to API changes in the next GTK branch. The GTK 4 release is planned to be out by the end of the year. <\/p>\n<p>Among the most <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.gtk.org\/\">significant<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.gnome.org\/Projects\/GTK\/Roadmap\/GTK4\">the changes<\/a><\/noindex> downward API support (simultaneously with this in <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.gnome.org\/gtk4\/stable\/\">GTK 4<\/a><\/noindex> notable mentions include: <\/p>\n<ul>\n<li class=\"l\"> Constraint-based layout method (<noindex><a rel=\"nofollow\" href=\"https:\/\/blog.gtk.org\/2019\/07\/02\/constraint-layouts\/\">constraint layout<\/a><\/noindex>), where the position and size of child elements are determined based on the distance to the edges and the sizes of other elements.\n<li class=\"l\"> Rendering module based on the Vulkan graphics API, featuring shaders for many resource-intensive CSS elements used in GTK widgets.\n<li class=\"l\"> Integration <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.gnome.org\/Projects\/GTK\/Gskv\">GSK<\/a><\/noindex> (GTK Scene Kit) with capabilities for rendering graphic scenes via OpenGL and Vulkan.\n<li class=\"l\"> The rendering organization has been revised \u2014 instead of outputting to a buffer, a model based on rendering nodes is now used, where output is assembled in the form of a tree of high-level operations that are efficiently processed by the GPU using OpenGL and Vulkan.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"http:\/\/www.scottohara.me\/blog\/2017\/05\/14\/focus-within.html\">Tools<\/a><\/noindex> for flexible handling of input focus changes.\n<li class=\"l\"> An upgraded event delivery model that allows bypassing subwindows during input event routing. The need for this new model arises from the increased use of animation effects, whose rendering must occur without altering the layout of visible elements and thus without using subwindows.\n<li class=\"l\"> The GDK API has been redesigned with consideration for utilizing the Wayland protocol and associated concepts. Features linked to X11 and Wayland have been moved to <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.gnome.org\/gtk4\/stable\/extra-configuration-options.html#id-1.9.2.6.7\">separate backends<\/a><\/noindex>.\n<li class=\"l\"> A significant API cleanup has been conducted, including the removal of GtkMenu, GtkMenuBar, and GtkToolbar classes, which have been replaced with GMenu and variants based on pop-up menus (popover).\n<li class=\"l\"> In GtkTextView and other input widgets, a stack for undoing changes has been integrated.\n<li class=\"l\"> A new GtkNative class has been added for widgets that have their own display surface and can operate independently at the top level, without being tied to parent widgets.\n<li class=\"l\"> New widgets have been introduced, including GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView, as well as a widget for displaying Emoji.\n<li class=\"l\"> A new object GtkLayoutManager has been introduced for widget development, implementing a layout management system based on the size of the visible area. GtkLayoutManager replaces the child properties in GTK containers, such as GtkBox and GtkGrid.\n<li class=\"l\"> Event processing has been simplified, with events now only being used for input. Other events have been replaced by separate signals; for instance, instead of output events, the signal 'GdkSurface::render' has been proposed, and instead of setup events \u2014 'GdkSurface::size-changed'.\n<li class=\"l\"> A new level of abstraction, GdkPaintable, has been added, representing objects that can be drawn anywhere at any size without the need to perform layout layer sorting.\n<li class=\"l\"> The Broadway backend has been rewritten, allowing GTK library output to be rendered in a web browser window.\n<li class=\"l\"> The API related to Drag-and-Drop operations has been redesigned, including separate GdkDrag and GdkDrop objects.\n<\/ul>\n<p>Improvements over the previous test release:<\/p>\n<ul>\n<li class=\"l\"> The old Accessibility API for people with disabilities has been removed, replaced by a new variant based on the ARIA specification. <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/Accessibility\/ARIA\">ARIA<\/a><\/noindex> and the GtkAccessible widget.\n<li class=\"l\"> Support for editable labels (GtkEditableLabel) has been added.\n<li class=\"l\"> New list models for displaying bookmarks (GtkBookmarkList), strings (GtkStringList), and selection blocks (GtkBitset) have been introduced.\n<li class=\"l\"> The GtkTreeView widget has implemented the ability to edit cells.\n<li class=\"l\"> In GtkGridView and GtkListView, scrolling implementation has been improved, with support for auto-scrolling and auto-expansion added.\n<li class=\"l\"> Processing of various actions has been significantly accelerated in GtkWidget.\n<li class=\"l\"> Incremental scrolling and filtering support have been added to GtkFilterListModel and GtkSortListModel.\n<li class=\"l\"> The Inspector now supports inspecting list models and provides direct navigation between objects.\n<li class=\"l\"> In GDK, scrolling history preservation has been ensured, GdkDevice API has been cleansed, and the division of devices into master and slave has been discontinued.\n<li class=\"l\"> A new GDK backend for macOS has been added.\n<li class=\"l\"> For Windows, a new rendering GDK backend based on OpenGL ES translation to OpenGL, Direct3D 9\/11, Desktop GL, and Vulkan has been proposed. <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.android.com\/preview\/features\/angle.md\">ANGLE<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/chromium.googlesource.com\/angle\/angle\/+\/master\/README.md\">layers<\/a><\/noindex> The final experimental release of the framework has been published.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53465\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 GTK 3.99.0, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f GTK 4. \u0412\u0435\u0442\u043a\u0430 GTK 4 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043b\u0435\u0442 API, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u043e\u043f\u0430\u0441\u0430\u044f\u0441\u044c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0437-\u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f API \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-90432","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-gtk-3-99-0-oznamenoval-gotovnost-funkczionalnosti-zaplanirovannoj-dlya-gtk-4\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a GTK 3.99.0 \u043e\u0437\u043d\u0430\u043c\u0435\u043d\u043e\u0432\u0430\u043b \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u044f GTK 4 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-gtk-3-99-0-oznamenoval-gotovnost-funkczionalnosti-zaplanirovannoj-dlya-gtk-4\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-31T23:42:24+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-31T23:42:24+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47The GTK 3.99.0 release marks the readiness of functionalities planned for GTK 4 | ProHoster","description":"\ud83e\udd47The GTK 3.99.0 release marks the readiness of functionalities planned for GTK 4 | ProHoster","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-gtk-3-99-0-oznamenoval-gotovnost-funkczionalnosti-zaplanirovannoj-dlya-gtk-4","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a GTK 3.99.0 \u043e\u0437\u043d\u0430\u043c\u0435\u043d\u043e\u0432\u0430\u043b \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u044f GTK 4 | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-gtk-3-99-0-oznamenoval-gotovnost-funkczionalnosti-zaplanirovannoj-dlya-gtk-4","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-31T23:42:24+00:00","article:modified_time":"2020-07-31T23:42:24+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"90432","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:51:32","updated":"2022-10-02 13:50:38","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/90432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=90432"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/90432\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=90432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=90432"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=90432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}