diff --git a/0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch b/0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch new file mode 100644 index 0000000..3d00b40 --- /dev/null +++ b/0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch @@ -0,0 +1,56 @@ +From 68b038ba1ee10cb957eec56fec435e3cfeffd20d Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 15 Aug 2018 14:26:19 +0200 +Subject: [PATCH 1/2] endSessionDialog: Immediately add buttons to the dialog + +Immediately add buttons to the dialog instead of first building an +array of button-info structs. + +This is a preparation patch for adding support changing the "Reboot" +button into a "Boot Options" button when Alt is pressed. +--- + js/ui/endSessionDialog.js | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js +index 4804333d4..5657cbffd 100644 +--- a/js/ui/endSessionDialog.js ++++ b/js/ui/endSessionDialog.js +@@ -437,25 +437,26 @@ var EndSessionDialog = new Lang.Class({ + }, + + _updateButtons() { +- let dialogContent = DialogContent[this._type]; +- let buttons = [{ action: this.cancel.bind(this), ++ this.clearButtons(); ++ ++ this.addButton({ action: this.cancel.bind(this), + label: _("Cancel"), +- key: Clutter.Escape }]; ++ key: Clutter.Escape }); + ++ let dialogContent = DialogContent[this._type]; + for (let i = 0; i < dialogContent.confirmButtons.length; i++) { + let signal = dialogContent.confirmButtons[i].signal; + let label = dialogContent.confirmButtons[i].label; +- buttons.push({ action: () => { ++ let button = this.addButton( ++ { action: () => { + this.close(true); + let signalId = this.connect('closed', () => { + this.disconnect(signalId); + this._confirm(signal); + }); +- }, +- label: label }); ++ }, ++ label: label }); + } +- +- this.setButtons(buttons); + }, + + close(skipSignal) { +-- +2.19.0 + diff --git a/0001-keyboardManager-Avoid-idempotent-calls-to-meta_backe.patch b/0001-keyboardManager-Avoid-idempotent-calls-to-meta_backe.patch new file mode 100644 index 0000000..16d6306 --- /dev/null +++ b/0001-keyboardManager-Avoid-idempotent-calls-to-meta_backe.patch @@ -0,0 +1,68 @@ +From ccc59673827f9e36b7374fcf03de94d1b1513550 Mon Sep 17 00:00:00 2001 +From: Carlos Garnacho +Date: Mon, 22 Oct 2018 22:06:36 +0000 +Subject: [PATCH] keyboardManager: Avoid idempotent calls to + meta_backend_set_keymap() + +But still try to apply the keymap whenever the input sources changed. This +is a different approach to gnome-shell#240 that still avoid redundant +changes to the current keymap, but actually trigger one when input sources +are added. + +https://bugzilla.redhat.com/show_bug.cgi?id=1637418 + +Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/691 + + +(cherry picked from commit b405ed64427a9d518d1714df678d04ad11267e15) +--- + js/misc/keyboardManager.js | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/js/misc/keyboardManager.js b/js/misc/keyboardManager.js +index ae59f0014..f4001f130 100644 +--- a/js/misc/keyboardManager.js ++++ b/js/misc/keyboardManager.js +@@ -52,11 +52,20 @@ var KeyboardManager = new Lang.Class({ + this._current = null; + this._localeLayoutInfo = this._getLocaleLayout(); + this._layoutInfos = {}; ++ this._currentKeymap = null; + }, + + _applyLayoutGroup(group) { + let options = this._buildOptionsString(); + let [layouts, variants] = this._buildGroupStrings(group); ++ ++ if (this._currentKeymap && ++ this._currentKeymap.layouts == layouts && ++ this._currentKeymap.variants == variants && ++ this._currentKeymap.options == options) ++ return; ++ ++ this._currentKeymap = {layouts, variants, options}; + Meta.get_backend().set_keymap(layouts, variants, options); + }, + +@@ -89,8 +98,6 @@ var KeyboardManager = new Lang.Class({ + }, + + setUserLayouts(ids) { +- let currentId = this._current ? this._current.id : null; +- let currentGroupIndex = this._current ? this._current.groupIndex : null; + this._current = null; + this._layoutInfos = {}; + +@@ -117,9 +124,6 @@ var KeyboardManager = new Lang.Class({ + info.group = group; + info.groupIndex = groupIndex; + +- if (currentId == id && currentGroupIndex == groupIndex) +- this._current = info; +- + i += 1; + } + }, +-- +2.19.1 + diff --git a/0002-endSessionDialog-Support-rebooting-into-the-bootload.patch b/0002-endSessionDialog-Support-rebooting-into-the-bootload.patch new file mode 100644 index 0000000..4634ea9 --- /dev/null +++ b/0002-endSessionDialog-Support-rebooting-into-the-bootload.patch @@ -0,0 +1,115 @@ +From 345278af9b7139d12e393d6b18abfe055172dedd Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 15 Aug 2018 15:03:56 +0200 +Subject: [PATCH 2/2] endSessionDialog: Support rebooting into the bootloader + menu aka ("Boot Options") + +This implements the "Alt" behavior for the "Reboot" button as outlined in +the design here: https://wiki.gnome.org/Design/OS/BootOptions + +This causes the endSessionDialog to send a ConfirmedRebootToBootOptions signal +to gnome-session instead of the normal ConfirmedReboot signal, actually +telling the boot-loader that it should show its menu the next boot is left +up to gnome-session. + +Note I've tried implementing this with the AltSwitcher class from +js/ui/status/system.js first, but that puts the button in a St.Bin() +which causes the button to think it is the only button on the dialog +and makes it have rounded corners on both of its bottom corners. +--- + js/ui/endSessionDialog.js | 50 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 50 insertions(+) + +diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js +index 5657cbffd..bfc64a7d6 100644 +--- a/js/ui/endSessionDialog.js ++++ b/js/ui/endSessionDialog.js +@@ -271,6 +271,9 @@ var EndSessionDialog = new Lang.Class({ + this._totalSecondsToStayOpen = 0; + this._applications = []; + this._sessions = []; ++ this._capturedEventId = 0; ++ this._rebootButton = null; ++ this._rebootButtonAlt = null; + + this.connect('destroy', + this._onDestroy.bind(this)); +@@ -436,6 +439,26 @@ var EndSessionDialog = new Lang.Class({ + this._sessionHeader.visible = hasSessions; + }, + ++ _onCapturedEvent(actor, event) { ++ let altEnabled = false; ++ ++ let type = event.type(); ++ if (type != Clutter.EventType.KEY_PRESS && type != Clutter.EventType.KEY_RELEASE) ++ return Clutter.EVENT_PROPAGATE; ++ ++ let key = event.get_key_symbol(); ++ if (key != Clutter.KEY_Alt_L && key != Clutter.KEY_Alt_R) ++ return Clutter.EVENT_PROPAGATE; ++ ++ if (type == Clutter.EventType.KEY_PRESS) ++ altEnabled = true; ++ ++ this._rebootButton.visible = !altEnabled; ++ this._rebootButtonAlt.visible = altEnabled; ++ ++ return Clutter.EVENT_PROPAGATE; ++ }, ++ + _updateButtons() { + this.clearButtons(); + +@@ -456,7 +479,32 @@ var EndSessionDialog = new Lang.Class({ + }); + }, + label: label }); ++ ++ // Add Alt "Boot Options" option to the Reboot button ++ if (signal == 'ConfirmedReboot') { ++ this._rebootButton = button; ++ this._rebootButtonAlt = this.addButton( ++ { action: () => { ++ this.close(true); ++ let signalId = this.connect('closed', () => { ++ this.disconnect(signalId); ++ this._confirm('ConfirmedRebootToBootOptions'); ++ }); ++ }, ++ label: C_("button", "Boot Options") }); ++ this._rebootButtonAlt.visible = false; ++ this._capturedEventId = global.stage.connect('captured-event', this._onCapturedEvent.bind(this)); ++ } ++ } ++ }, ++ ++ _stopAltCapture() { ++ if (this._capturedEventId > 0) { ++ global.stage.disconnect(this._capturedEventId); ++ this._capturedEventId = 0; + } ++ this._rebootButton = null; ++ this._rebootButtonAlt = null; + }, + + close(skipSignal) { +@@ -468,6 +516,7 @@ var EndSessionDialog = new Lang.Class({ + + cancel() { + this._stopTimer(); ++ this._stopAltCapture(); + this._dbusImpl.emit_signal('Canceled', null); + this.close(); + }, +@@ -476,6 +525,7 @@ var EndSessionDialog = new Lang.Class({ + let callback = () => { + this._fadeOutDialog(); + this._stopTimer(); ++ this._stopAltCapture(); + this._dbusImpl.emit_signal(signal, null); + }; + +-- +2.19.0 + diff --git a/README.en.md b/README.en.md deleted file mode 100644 index cd11559..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# gnome-shell - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index 55505fb..0000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# gnome-shell - -#### 介绍 -{**以下是码云平台说明,您可以替换此简介** -码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 码云特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/gnome-shell-3.30.1.tar.xz b/gnome-shell-3.30.1.tar.xz new file mode 100644 index 0000000..39c159e Binary files /dev/null and b/gnome-shell-3.30.1.tar.xz differ diff --git a/gnome-shell-favourite-apps-firefox.patch b/gnome-shell-favourite-apps-firefox.patch new file mode 100644 index 0000000..56c498b --- /dev/null +++ b/gnome-shell-favourite-apps-firefox.patch @@ -0,0 +1,21 @@ +--- gnome-shell-3.13.90/data/org.gnome.shell.gschema.xml.in.firefox 2014-08-20 20:28:07.601133033 +0200 ++++ gnome-shell-3.13.90/data/org.gnome.shell.gschema.xml.in 2014-08-20 20:28:41.741503518 +0200 +@@ -31,7 +31,7 @@ + + + +- [ 'epiphany.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ] ++ [ 'firefox.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ] + List of desktop file IDs for favorite applications + + The applications corresponding to these identifiers +--- a/js/ui/appFavorites.js ++++ b/js/ui/appFavorites.js +@@ -31,6 +31,7 @@ const RENAMED_DESKTOP_IDS = { + 'gnotravex.desktop': 'gnome-tetravex.desktop', + 'gnotski.desktop': 'gnome-klotski.desktop', + 'gtali.desktop': 'tali.desktop', ++ 'mozilla-firefox.desktop': 'firefox.desktop', + 'nautilus.desktop': 'org.gnome.Nautilus.desktop', + 'polari.desktop': 'org.gnome.Polari.desktop', + 'totem.desktop': 'org.gnome.Totem.desktop', diff --git a/gnome-shell.spec b/gnome-shell.spec new file mode 100644 index 0000000..c1d7bb5 --- /dev/null +++ b/gnome-shell.spec @@ -0,0 +1,125 @@ +Name: gnome-shell +Version: 3.30.1 +Release: 4 +Summary: Core user interface functions for the GNOME 3 desktop +Group: User Interface/Desktops +License: GPLv2+ +URL: https://wiki.gnome.org/Projects/GnomeShell +Source0: http://download.gnome.org/sources/gnome-shell/3.30/%{name}-%{version}.tar.xz + +Patch1: gnome-shell-favourite-apps-firefox.patch +Patch2: 0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch +Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch +Patch4: 0001-keyboardManager-Avoid-idempotent-calls-to-meta_backe.patch + +BuildRequires: meson git ibus-devel chrpath dbus-glib-devel desktop-file-utils +BuildRequires: evolution-data-server-devel gcr-devel gjs-devel glib2-devel +BuildRequires: gobject-introspection json-glib-devel upower-devel mesa-libGL-devel +BuildRequires: NetworkManager-libnm-devel polkit-devel startup-notification-devel +BuildRequires: sassc gstreamer1-devel gtk3-devel gettext libcanberra-devel +BuildRequires: libcroco-devel python3-devel libXfixes-devel librsvg2-devel +BuildRequires: mutter-devel pulseaudio-libs-devel control-center gtk-doc + +Requires: gnome-desktop3 gobject-introspection gjs gtk3 libnma librsvg2 +Requires: json-glib mozilla-filesystem mutter upower polkit glib2 +Requires: gsettings-desktop-schemas libcroco gstreamer1 at-spi2-atk +Requires: ibus accountsservice-libs gdm control-center python3 +Requires: switcheroo-control geoclue2 libgweather bolt + +Provides: desktop-notification-daemon +Recommends: xdg-desktop-portal-gtk + +%description +The GNOME Shell redefines user interactions with the GNOME desktop. In particular, +it offers new paradigms for launching applications, accessing documents, and +organizing open windows in GNOME. Later, it will introduce a new applets eco-system +and offer new solutions for other desktop features, such as notifications and contacts +management. The GNOME Shell is intended to replace functions handled by the GNOME Panel +and by the window manager in previous versions of GNOME. The GNOME Shell has rich +visual effects enabled by new graphical technologies. + + +%package help +Summary: Help files for %{name} +BuildArch: noarch + +%description help +Help files for %{name} + + +%prep +%autosetup -n %{name}-%{version} -p1 -Sgit + + +%build +%meson +%meson_build + + +%install +%meson_install + +%find_lang %{name} + + +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.desktop +desktop-file-validate %{buildroot}%{_datadir}/applications/gnome-shell-extension-prefs.desktop +desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.desktop + + +%preun +glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null ||: + + +%posttrans +glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null ||: + + +%files -f %{name}.lang +%license COPYING +%doc README.md +%{_bindir}/gnome-shell +%{_bindir}/gnome-shell-extension-tool +%{_bindir}/gnome-shell-perf-tool +%{_bindir}/gnome-shell-extension-prefs +%{_datadir}/glib-2.0/schemas/*.xml +%{_datadir}/glib-2.0/schemas/00_org.gnome.shell.gschema.override +%{_datadir}/applications/org.gnome.Shell.desktop +%{_datadir}/applications/gnome-shell-extension-prefs.desktop +%{_datadir}/applications/evolution-calendar.desktop +%{_datadir}/applications/org.gnome.Shell.PortalHelper.desktop +%{_datadir}/gnome-control-center/keybindings/50-gnome-shell-system.xml +%{_datadir}/gnome-shell/ +%{_datadir}/dbus-1/services/org.gnome.Shell.CalendarServer.service +%{_datadir}/dbus-1/services/org.gnome.Shell.HotplugSniffer.service +%{_datadir}/dbus-1/services/org.gnome.Shell.PortalHelper.service +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Extensions.xml +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.PadOsd.xml +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Screencast.xml +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Screenshot.xml +%{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider.xml +%{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml +%{_userunitdir}/gnome-shell.service +%{_userunitdir}/gnome-shell-wayland.target +%{_userunitdir}/gnome-shell-x11.target +%{_sysconfdir}/xdg/autostart/gnome-shell-overrides-migration.desktop +%dir %{_datadir}/xdg-desktop-portal/portals/ +%{_datadir}/xdg-desktop-portal/portals/gnome-shell.portal +%{_libdir}/gnome-shell/ +%{_libdir}/mozilla/plugins/*.so +%{_libexecdir}/gnome-shell-calendar-server +%{_libexecdir}/gnome-shell-perf-helper +%{_libexecdir}/gnome-shell-hotplug-sniffer +%{_libexecdir}/gnome-shell-portal-helper +%{_libexecdir}/gnome-shell-overrides-migration.sh +%dir %{_datadir}/GConf +%dir %{_datadir}/GConf/gsettings +%{_datadir}/GConf/gsettings/gnome-shell-overrides.convert + +%files help +%{_mandir}/man1/%{name}.1.gz + +%changelog +* Wed Nov 27 2019 openEuler Buildteam - 3.30.1-4 +- Package Init