diff --git a/x11/gnome-shell/Makefile b/x11/gnome-shell/Makefile index fdc147c700a7..0be92d82db4f 100644 --- a/x11/gnome-shell/Makefile +++ b/x11/gnome-shell/Makefile @@ -1,78 +1,79 @@ # Created by: Pawel Worach PORTNAME= gnome-shell PORTVERSION= 41.0 +PORTREVISION= 1 CATEGORIES= x11 gnome MASTER_SITES= GNOME/sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+)\..*/\1/} DIST_SUBDIR= gnome MAINTAINER= gnome@FreeBSD.org COMMENT= Next generation GNOME desktop shell LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= ${LOCALBASE}/share/bash-completion/bash_completion.sh:shells/bash-completion \ a2x:textproc/asciidoc \ docbook-xsl>=0:textproc/docbook-xsl \ gnome-control-center:sysutils/gnome-control-center \ sassc:textproc/sassc LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-atk \ libcanberra-gtk3.so:audio/libcanberra-gtk3 \ libcanberra.so:audio/libcanberra \ libcroco-0.6.so:textproc/libcroco \ libdrm.so:graphics/libdrm \ libgcr-base-3.so:security/gcr \ libgjs.so:lang/gjs \ libgnome-autoar-0.so:archivers/gnome-autoar \ libgraphene-1.0.so:graphics/graphene \ libical.so:devel/libical \ libicuuc.so:devel/icu \ libjson-glib-1.0.so:devel/json-glib \ libmutter-9.so:x11-wm/mutter \ libp11-kit.so:security/p11-kit \ libpolkit-agent-1.so:sysutils/polkit \ libpulse.so:audio/pulseaudio \ libsecret-1.so:security/libsecret \ libsoup-2.4.so:devel/libsoup \ libstartup-notification-1.so:x11/startup-notification RUN_DEPENDS= gdm:x11/gdm \ gkbd-keyboard-display:x11/libgnomekbd \ gnome-control-center:sysutils/gnome-control-center PORTSCOUT= limitw:1,even USES= compiler:c11 cpe gettext gl gnome libtool localbase meson \ pathfix perl5 pkgconfig python:3.4+ shebangfix tar:xz \ webplugin:native xorg USE_GNOME= cairo evolutiondataserver3 gdkpixbuf2 gnomedesktop3 gtk40 \ introspection libxml2 libxslt:build USE_XORG= x11 xcomposite xdamage xext xfixes xi xrandr xtst USE_GL= egl gbm USE_GSTREAMER1= yes USE_PERL5= build USE_LDCONFIG= yes SHEBANG_FILES= src/gnome-shell-extension-tool.in src/gnome-shell-perf-tool.in BINARY_ALIAS= python3=${PYTHON_CMD} WEBPLUGIN_NAME= libgnome-shell-browser-plugin.so WEBPLUGIN_DIR= ${PREFIX}/lib/mozilla/plugins/ WEBPLUGIN_FILES= libgnome-shell-browser-plugin.so MESON_ARGS= -Dnetworkmanager=false \ -Dpython=${PYTHON_CMD} \ -Dsystemd=false \ -Dtests=false CPE_VENDOR= gnome GLIB_SCHEMAS= 00_org.gnome.shell.gschema.override \ org.gnome.shell.gschema.xml post-extract: ${CP} ${FILESDIR}/*.xml ${WRKSRC}/data/dbus-interfaces post-patch: ${REINPLACE_CMD} -e "s,python3,${PYTHON_VERSION},g" \ ${WRKSRC}/meson.build .include diff --git a/x11/gnome-shell/files/patch-js_gdm_loginDialog_js b/x11/gnome-shell/files/patch-js_gdm_loginDialog_js new file mode 100644 index 000000000000..620a85197b15 --- /dev/null +++ b/x11/gnome-shell/files/patch-js_gdm_loginDialog_js @@ -0,0 +1,156 @@ +$OpenBSD: patch-js_gdm_loginDialog_js,v 1.3 2021/06/14 18:54:25 jasper Exp $ + +Index: js/gdm/loginDialog.js +--- js/gdm/loginDialog.js.orig ++++ js/gdm/loginDialog.js +@@ -42,6 +42,7 @@ var UserListItem = GObject.registerClass({ + _init(user) { + let layout = new St.BoxLayout({ + vertical: true, ++ x_align: Clutter.ActorAlign.START, + }); + super._init({ + style_class: 'login-dialog-user-list-item', +@@ -762,9 +763,6 @@ var LoginDialog = GObject.registerClass({ + + if (this._authPrompt.verificationStatus == AuthPrompt.AuthPromptStatus.NOT_VERIFYING) + this._authPrompt.reset(); +- +- if (this._disableUserList && this._timedLoginUserListHold) +- this._timedLoginUserListHold.release(); + } + } + +@@ -858,7 +856,6 @@ var LoginDialog = GObject.registerClass({ + this._resetGreeterProxy(); + this._sessionMenuButton.updateSensitivity(true); + +- const previousUser = this._user; + this._user = null; + + if (this._nextSignalId) { +@@ -866,11 +863,7 @@ var LoginDialog = GObject.registerClass({ + this._nextSignalId = 0; + } + +- if (previousUser && beginRequest === AuthPrompt.BeginRequestType.REUSE_USERNAME) { +- this._user = previousUser; +- this._authPrompt.setUser(this._user); +- this._authPrompt.begin({ userName: previousUser.get_user_name() }); +- } else if (beginRequest === AuthPrompt.BeginRequestType.PROVIDE_USERNAME) { ++ if (beginRequest == AuthPrompt.BeginRequestType.PROVIDE_USERNAME) { + if (!this._disableUserList) + this._showUserList(); + else +@@ -1051,72 +1044,54 @@ var LoginDialog = GObject.registerClass({ + let loginItem = null; + let animationTime; + +- let tasks = [ +- () => { +- if (this._disableUserList) +- return; ++ let tasks = [() => this._waitForItemForUser(userName), + +- this._timedLoginUserListHold = this._waitForItemForUser(userName); +- }, ++ () => { ++ loginItem = this._userList.getItemFromUserName(userName); + +- () => { +- this._timedLoginUserListHold = null; ++ // If there is an animation running on the item, reset it. ++ loginItem.hideTimedLoginIndicator(); ++ }, + +- if (this._disableUserList) +- loginItem = this._authPrompt; +- else +- loginItem = this._userList.getItemFromUserName(userName); ++ () => { ++ // If we're just starting out, start on the right item. ++ if (!this._userManager.is_loaded) ++ this._userList.jumpToItem(loginItem); ++ }, + +- // If there is an animation running on the item, reset it. +- loginItem.hideTimedLoginIndicator(); +- }, ++ () => { ++ // This blocks the timed login animation until a few ++ // seconds after the user stops interacting with the ++ // login screen. + +- () => { +- if (this._disableUserList) +- return; ++ // We skip this step if the timed login delay is very short. ++ if (delay > _TIMED_LOGIN_IDLE_THRESHOLD) { ++ animationTime = delay - _TIMED_LOGIN_IDLE_THRESHOLD; ++ return this._blockTimedLoginUntilIdle(); ++ } else { ++ animationTime = delay; ++ return null; ++ } ++ }, + +- // If we're just starting out, start on the right item. +- if (!this._userManager.is_loaded) +- this._userList.jumpToItem(loginItem); +- }, ++ () => { ++ // If idle timeout is done, make sure the timed login indicator is shown ++ if (delay > _TIMED_LOGIN_IDLE_THRESHOLD && ++ this._authPrompt.visible) ++ this._authPrompt.cancel(); + +- () => { +- // This blocks the timed login animation until a few +- // seconds after the user stops interacting with the +- // login screen. ++ if (delay > _TIMED_LOGIN_IDLE_THRESHOLD || firstRun) { ++ this._userList.scrollToItem(loginItem); ++ loginItem.grab_key_focus(); ++ } ++ }, + +- // We skip this step if the timed login delay is very short. +- if (delay > _TIMED_LOGIN_IDLE_THRESHOLD) { +- animationTime = delay - _TIMED_LOGIN_IDLE_THRESHOLD; +- return this._blockTimedLoginUntilIdle(); +- } else { +- animationTime = delay; +- return null; +- } +- }, ++ () => loginItem.showTimedLoginIndicator(animationTime), + +- () => { +- if (this._disableUserList) +- return; +- +- // If idle timeout is done, make sure the timed login indicator is shown +- if (delay > _TIMED_LOGIN_IDLE_THRESHOLD && +- this._authPrompt.visible) +- this._authPrompt.cancel(); +- +- if (delay > _TIMED_LOGIN_IDLE_THRESHOLD || firstRun) { +- this._userList.scrollToItem(loginItem); +- loginItem.grab_key_focus(); +- } +- }, +- +- () => loginItem.showTimedLoginIndicator(animationTime), +- +- () => { +- this._timedLoginBatch = null; +- this._greeter.call_begin_auto_login_sync(userName, null); +- }, +- ]; ++ () => { ++ this._timedLoginBatch = null; ++ this._greeter.call_begin_auto_login_sync(userName, null); ++ }]; + + this._timedLoginBatch = new Batch.ConsecutiveBatch(this, tasks); + diff --git a/x11/gnome-shell/files/patch-js_ui_endSessionDialog_js b/x11/gnome-shell/files/patch-js_ui_endSessionDialog_js new file mode 100644 index 000000000000..48b951d4bfac --- /dev/null +++ b/x11/gnome-shell/files/patch-js_ui_endSessionDialog_js @@ -0,0 +1,41 @@ +$OpenBSD: patch-js_ui_endSessionDialog_js,v 1.1 2020/11/08 09:38:19 ajacoutot Exp $ + +Index: js/ui/endSessionDialog.js +--- js/ui/endSessionDialog.js.orig ++++ js/ui/endSessionDialog.js +@@ -230,11 +230,6 @@ class EndSessionDialog extends ModalDialog.ModalDialog + destroyOnClose: false }); + + this._loginManager = LoginManager.getLoginManager(); +- this._loginManager.canRebootToBootLoaderMenu( +- (canRebootToBootLoaderMenu, unusedNeedsAuth) => { +- this._canRebootToBootLoaderMenu = canRebootToBootLoaderMenu; +- }); +- + this._userManager = AccountsService.UserManager.get_default(); + this._user = this._userManager.get_user(GLib.get_user_name()); + this._updatesPermission = null; +@@ -453,23 +448,6 @@ class EndSessionDialog extends ModalDialog.ModalDialog + label, + }); + +- // Add Alt "Boot Options" option to the Reboot button +- if (this._canRebootToBootLoaderMenu && signal === 'ConfirmedReboot') { +- this._rebootButton = button; +- this._rebootButtonAlt = this.addButton({ +- action: () => { +- this.close(true); +- let signalId = this.connect('closed', () => { +- this.disconnect(signalId); +- this._confirmRebootToBootLoaderMenu(); +- }); +- }, +- label: C_('button', 'Boot Options'), +- }); +- this._rebootButtonAlt.visible = false; +- this._capturedEventId = global.stage.connect('captured-event', +- this._onCapturedEvent.bind(this)); +- } + } + } +