Шон Анастаси (), бир убакта өзүнүн операциялык системасын иштеп чыккан эркин программалык камсыздоо энтузиаст жана Chromium жана Qubes OS ppc64le архитектурасына көчүрүүгө катышкан, долбоору , анын алкагында ал Xfce колдонуучу чөйрөсүнүн компоненттеринин вилкаларын иштеп чыгууга ниеттенүүдө, алар кардар тараптын терезе жасалгаларын (CSD, кардар тараптын жасалгалары) колдонбостон, терезенин аталышы жана алкактар терезе менеджери тарабынан эмес, колдонмонун өзү.
Эске сала кетсек, Xfce 4.16 кийинки релизине даярданууда октябрда же ноябрда интерфейс GtkHeaderBar виджетине жана CSDди колдонууга өткөрүлүп берилди, бул GNOME окшоштугу боюнча менюларды, баскычтарды жана интерфейстин башка элементтерин терезенин башына жайгаштырууга, ошондой эле жашырынууну камсыз кылууга мүмкүндүк берди. диалогдордогу рамкалардын. Жаңы интерфейсти көрсөтүү кыймылдаткычы libxfce4ui китепканасына интеграцияланган, анын натыйжасында CSD дээрлик бардык диалогдор үчүн автоматтык түрдө колдонулуп, учурдагы долбоорлордун кодуна өзгөртүүлөрдү киргизүүнүн зарылдыгы жок.
CSDге өтүүдө , алар CSD колдоосу милдеттүү болушу керек жана колдонуучу классикалык терезе аталыштарын колдонууну уланта алышы керек деп эсептешет. CSDди колдонуунун кемчиликтеринин арасында өтө чоң терезе аталышынын аймагы, тиркеменин элементтерин терезе аталышына өткөрүп берүүнүн зарылдыгынын жоктугу, Xfwm4 темаларынын иштебей калышы жана Xfce/GNOME тиркемелеринин жана программаларынын терезелеринин дизайнындагы дал келбестиктер. CSD колдонууга болбойт. Айрым колдонуучулардын GNOME интерфейсинен баш тартуусунун себептеринин бири CSDди колдонуу экендиги белгиленген.
5 айдын ичинде CSDди өчүрүү үчүн колдоо көрсөтүүгө эч кандай аракет болбогондуктан, Шон Анастаси Бул маселени өз колума алып, китепкананын айрысын түздүм , анда мен CSDге байланышты тазалап, сервер тарабындагы эски жасалгалоо режимин кайтардым (терезе менеджери). Жаңы libxfce4ui API колдонгон тиркемелер менен шайкештикти камсыз кылуу жана ABIди сактоо үчүн XfceTitledDialog классынын белгилүү CSD ыкмаларын GtkDialog классынын чалууларына которуучу атайын байланыштар даярдалган. Натыйжада, libxfce4ui китепканасын алмаштыруу менен Xfce тиркемелерин CSDден арылтууга болот, тиркемелердин кодун өзгөртпөстөн.
Кошумча айры түзүлдү , классикалык жүрүм-турумду кайтаруу үчүн өзгөртүүлөрдү камтыйт. Gentoo колдонуучулары үчүн даярдалган для установки libxfce4ui-nocsd. Для пользователей Xubuntu/Ubuntu даярдалган даяр пакеттер менен. Шон Анастаси айрыны түзүүнүн себептерин Xfceди көп жылдардан бери колдонуп келерин жана бул чөйрөнүн интерфейсин жакшы көрөөрү менен түшүндүрдү. Интерфейс боюнча өзгөртүүлөр жөнүндө чечим кабыл алгандан кийин, ал макул эмес жана эски жүрүм-турумуна кайтуу мүмкүнчүлүгүн берүү аракети болбогондуктан, ал өз көйгөйүн өзү чечип, чечимди башка пикирдештер менен бөлүшүүнү чечти.
Xfce Classicти колдонуудагы көйгөйлөрдүн бири - аталышта жана тиркеме терезесинде кайталанган маалыматтын көрсөтүлүшүнө байланыштуу кайталанган аталыштардын пайда болушу. Бул өзгөчөлүк Xfce 4.12 жана 4.14 жүрүм-турумуна шайкеш келет жана CSD менен байланышы жок. Кээ бир тиркемелерде мындай кайталоо кадимкидей көрүнөт (мисалы, xfce4-скриншоттордо), бирок башкаларында бул такыр ылайыксыз. Бул көйгөйдү чечүү үчүн, XfceHeading көрсөтүүнү башкарган чөйрө өзгөрмөсүн кошууга болот.
CSD колдоочуларынын позициясы менюларды, панелдик баскычтарды жана башка маанилүү интерфейс элементтерин жайгаштыруу үчүн ысырап болгон терезенин аталыш мейкиндигин колдонуу мүмкүнчүлүгүнөн келип чыгат. CSD каршылаштары бул ыкма терезелердин дизайнын, айрыкча титулдук аймактын жайгашуусу боюнча ар кандай сунуштарды аныктаган ар кандай колдонуучу чөйрөлөр үчүн жазылгандарды бириктирүүдө көйгөйлөрдү жаратат деп эсептешет. Сервер тараптагы терезенин тейлөө аймактарын классикалык түрдө көрсөтүүдө бардык тиркемелердин терезелеринин дизайнын бирдиктүү стилге келтирүү алда канча жеңил. CSDди колдонгон учурда, ар бир графикалык чөйрөгө тиркеме интерфейсин өзүнчө ылайыкташтыруу керек жана ар кандай колдонуучу чөйрөлөрүндө тиркеме чоочун көрүнбөсүн камсыз кылуу абдан кыйын.
Source: opennet.ru
