From 134d864e0d096be437a2114e363ffcbfecf59d24 Mon Sep 17 00:00:00 2001 From: Mike DePaulo Date: Feb 27 2020 19:35:09 +0000 Subject: Add new addtl proposed patch for GNOME 3.36 compatibility (rhbz: #1794889) --- diff --git a/0001-general-Update-to-gnome-shell-3.36-code-with-more-ac.patch b/0001-general-Update-to-gnome-shell-3.36-code-with-more-ac.patch index 6cb5305..0e6deba 100644 --- a/0001-general-Update-to-gnome-shell-3.36-code-with-more-ac.patch +++ b/0001-general-Update-to-gnome-shell-3.36-code-with-more-ac.patch @@ -1,12 +1,14 @@ -From 0859a15ff83ae2a75c9651f85849614396047a88 Mon Sep 17 00:00:00 2001 +From 2c1cec761813cc12abd9e64c0936536e17e45070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Mon, 24 Feb 2020 18:10:05 +0100 -Subject: [PATCH 1/5] general: Update to gnome-shell 3.36 code, with more actor +Subject: [PATCH 1/6] general: Update to gnome-shell 3.36 code, with more actor inheritance As per gnome-shell 3.35 development, more shell widgets are now St.Actors so inherit from them and adapt the code not to use the deprecated .actor property + +Fixes #1097 --- appIconIndicators.js | 20 +++++------ appIcons.js | 79 ++++++++++++++++++++++++-------------------- diff --git a/0002-general-Use-Clutter.ActorAlign-to-set-alignments.patch b/0002-general-Use-Clutter.ActorAlign-to-set-alignments.patch new file mode 100644 index 0000000..18a09d6 --- /dev/null +++ b/0002-general-Use-Clutter.ActorAlign-to-set-alignments.patch @@ -0,0 +1,91 @@ +From 8bb16f4712ff7dac34b9f5f9be4651f82bc9bfc6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= +Date: Thu, 27 Feb 2020 02:38:32 +0100 +Subject: [PATCH 2/6] general: Use Clutter.ActorAlign to set alignments + +St.Align has been deprecated and doesn't actually work in new code + +Fixes #1097 +--- + appIconIndicators.js | 3 ++- + appIcons.js | 3 ++- + dash.js | 4 ++-- + docking.js | 4 ++-- + windowPreview.js | 3 ++- + 5 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/appIconIndicators.js b/appIconIndicators.js +index 5cedafb..f965829 100644 +--- a/appIconIndicators.js ++++ b/appIconIndicators.js +@@ -659,7 +659,8 @@ var UnityIndicator = class DashToDock_UnityIndicator extends IndicatorBase { + this._notificationBadgeLabel = new St.Label(); + this._notificationBadgeBin = new St.Bin({ + child: this._notificationBadgeLabel, +- x_align: St.Align.END, y_align: St.Align.START, ++ x_align: Clutter.ActorAlign.END, ++ y_align: Clutter.ActorAlign.START, + x_expand: true, y_expand: true + }); + this._notificationBadgeLabel.add_style_class_name('notification-badge'); +diff --git a/appIcons.js b/appIcons.js +index d3d845b..50eb308 100644 +--- a/appIcons.js ++++ b/appIcons.js +@@ -614,7 +614,8 @@ class MyAppIcon extends Dash.DashIcon { + this._numberOverlayLabel = new St.Label(); + this._numberOverlayBin = new St.Bin({ + child: this._numberOverlayLabel, +- x_align: St.Align.START, y_align: St.Align.START, ++ x_align: Clutter.ActorAlign.START, ++ y_align: Clutter.ActorAlign.START, + x_expand: true, y_expand: true + }); + this._numberOverlayLabel.add_style_class_name('number-overlay'); +diff --git a/dash.js b/dash.js +index f5459db..82e0a39 100644 +--- a/dash.js ++++ b/dash.js +@@ -235,8 +235,8 @@ var MyDash = GObject.registerClass({ + let rtl = Clutter.get_default_text_direction() == Clutter.TextDirection.RTL; + super._init({ + child: this._container, +- y_align: St.Align.START, +- x_align: rtl ? St.Align.END : St.Align.START ++ y_align: Clutter.ActorAlign.START, ++ x_align: rtl ? Clutter.ActorAlign.END : Clutter.ActorAlign.START, + }); + + if (this._isHorizontal) { +diff --git a/docking.js b/docking.js +index 349a245..09ca6ca 100644 +--- a/docking.js ++++ b/docking.js +@@ -231,8 +231,8 @@ var DockedDash = GObject.registerClass({ + name: 'dashtodockContainer', + reactive: false, + style_class: positionStyleClass[this._position], +- x_align: this._isHorizontal?St.Align.MIDDLE:St.Align.START, +- y_align: this._isHorizontal?St.Align.START:St.Align.MIDDLE ++ x_align: this._isHorizontal ? Clutter.ActorAlign.CENTER : Clutter.ActorAlign.START, ++ y_align: this._isHorizontal ? Clutter.ActorAlign.START : Clutter.ActorAlign.CENTER, + }); + this._delegate = this; + +diff --git a/windowPreview.js b/windowPreview.js +index dbf597b..784a8e0 100644 +--- a/windowPreview.js ++++ b/windowPreview.js +@@ -349,7 +349,8 @@ class DashToDock_WindowPreviewMenuItem extends PopupMenu.PopupBaseMenuItem { + let label = new St.Label({ text: window.get_title()}); + label.set_style('max-width: '+PREVIEW_MAX_WIDTH +'px'); + let labelBin = new St.Bin({ child: label, +- x_align: St.Align.MIDDLE}); ++ x_align: Clutter.ActorAlign.CENTER, ++ }); + + this._windowTitleId = this._window.connect('notify::title', () => { + label.set_text(this._window.get_title()); +-- +2.24.1 + diff --git a/0002-metadata-Set-extension-compatible-with-shell-3.36-on.patch b/0002-metadata-Set-extension-compatible-with-shell-3.36-on.patch deleted file mode 100644 index 568d116..0000000 --- a/0002-metadata-Set-extension-compatible-with-shell-3.36-on.patch +++ /dev/null @@ -1,24 +0,0 @@ -From fafc038a9cb1ceec8156fae386ee5baf2a4bc35d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= -Date: Mon, 24 Feb 2020 18:11:15 +0100 -Subject: [PATCH 2/5] metadata: Set extension compatible with shell 3.36 only - ---- - metadata.json | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/metadata.json b/metadata.json -index 22ccfca..c74757a 100644 ---- a/metadata.json -+++ b/metadata.json -@@ -1,6 +1,6 @@ - { - "shell-version": [ -- "3.34" -+ "3.36" - ], - "uuid": "dash-to-dock@micxgx.gmail.com", - "name": "Dash to Dock", --- -2.24.1 - diff --git a/0003-metadata-Set-extension-compatible-with-shell-3.36-on.patch b/0003-metadata-Set-extension-compatible-with-shell-3.36-on.patch new file mode 100644 index 0000000..8cea8f2 --- /dev/null +++ b/0003-metadata-Set-extension-compatible-with-shell-3.36-on.patch @@ -0,0 +1,24 @@ +From c2b566411a47706173636ee5a5219adf95870473 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= +Date: Mon, 24 Feb 2020 18:11:15 +0100 +Subject: [PATCH 3/6] metadata: Set extension compatible with shell 3.36 only + +--- + metadata.json | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/metadata.json b/metadata.json +index 22ccfca..c74757a 100644 +--- a/metadata.json ++++ b/metadata.json +@@ -1,6 +1,6 @@ + { + "shell-version": [ +- "3.34" ++ "3.36" + ], + "uuid": "dash-to-dock@micxgx.gmail.com", + "name": "Dash to Dock", +-- +2.24.1 + diff --git a/0003-utils-Use-more-ES6-compliant-code-to-override-calls.patch b/0003-utils-Use-more-ES6-compliant-code-to-override-calls.patch deleted file mode 100644 index 8676d46..0000000 --- a/0003-utils-Use-more-ES6-compliant-code-to-override-calls.patch +++ /dev/null @@ -1,27 +0,0 @@ -From f6aeff6b5562f56414f7bb7f4d59a339cbd146f7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= -Date: Mon, 24 Feb 2020 18:10:32 +0100 -Subject: [PATCH 3/5] utils: Use more ES6-compliant code to override calls - ---- - utils.js | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/utils.js b/utils.js -index e028134..a7c657a 100644 ---- a/utils.js -+++ b/utils.js -@@ -22,9 +22,8 @@ const BasicHandler = class DashToDock_BasicHandler { - - add(/* unlimited 3-long array arguments */) { - // Convert arguments object to array, concatenate with generic -- let args = Array.concat('generic', Array.slice(arguments)); - // Call addWithLabel with ags as if they were passed arguments -- this.addWithLabel.apply(this, args); -+ this.addWithLabel('generic', ...arguments); - } - - destroy() { --- -2.24.1 - diff --git a/0004-utils-Use-more-ES6-compliant-code-to-override-calls.patch b/0004-utils-Use-more-ES6-compliant-code-to-override-calls.patch new file mode 100644 index 0000000..9163b16 --- /dev/null +++ b/0004-utils-Use-more-ES6-compliant-code-to-override-calls.patch @@ -0,0 +1,27 @@ +From 6e46f2345e7dca889690f50e56a0acdf61b72028 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= +Date: Mon, 24 Feb 2020 18:10:32 +0100 +Subject: [PATCH 4/6] utils: Use more ES6-compliant code to override calls + +--- + utils.js | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/utils.js b/utils.js +index e028134..a7c657a 100644 +--- a/utils.js ++++ b/utils.js +@@ -22,9 +22,8 @@ const BasicHandler = class DashToDock_BasicHandler { + + add(/* unlimited 3-long array arguments */) { + // Convert arguments object to array, concatenate with generic +- let args = Array.concat('generic', Array.slice(arguments)); + // Call addWithLabel with ags as if they were passed arguments +- this.addWithLabel.apply(this, args); ++ this.addWithLabel('generic', ...arguments); + } + + destroy() { +-- +2.24.1 + diff --git a/0004-windowPreview-Only-hide-the-close-button-if-no-entry.patch b/0004-windowPreview-Only-hide-the-close-button-if-no-entry.patch deleted file mode 100644 index 82ff115..0000000 --- a/0004-windowPreview-Only-hide-the-close-button-if-no-entry.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 54a440d2e90fa3399498cf187f559c763b49250f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= -Date: Mon, 24 Feb 2020 19:01:40 +0100 -Subject: [PATCH 4/5] windowPreview: Only hide the close button if no entry - child has pointer - ---- - windowPreview.js | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -diff --git a/windowPreview.js b/windowPreview.js -index dbf597b..3a5cafd 100644 ---- a/windowPreview.js -+++ b/windowPreview.js -@@ -484,9 +484,8 @@ class DashToDock_WindowPreviewMenuItem extends PopupMenu.PopupBaseMenuItem { - } - - _onLeave() { -- if (!this._cloneBin.has_pointer && -- !this.closeButton.has_pointer) -- this._hideCloseButton(); -+ this._hideCloseButton(); -+ } - - return Clutter.EVENT_PROPAGATE; - } -@@ -494,9 +493,7 @@ class DashToDock_WindowPreviewMenuItem extends PopupMenu.PopupBaseMenuItem { - _idleToggleCloseButton() { - this._idleToggleCloseId = 0; - -- if (!this._cloneBin.has_pointer && -- !this.closeButton.has_pointer) -- this._hideCloseButton(); -+ this._hideCloseButton(); - - return GLib.SOURCE_REMOVE; - } -@@ -515,6 +512,10 @@ class DashToDock_WindowPreviewMenuItem extends PopupMenu.PopupBaseMenuItem { - } - - _hideCloseButton() { -+ if (this.closeButton.has_pointer || -+ this.get_children().some(a => a.has_pointer)) -+ return; -+ - this.closeButton.remove_all_transitions(); - this.closeButton.ease({ - opacity: 0, --- -2.24.1 - diff --git a/0005-appIcons-windowPreview-Use-vfunc-instead-of-signals.patch b/0005-appIcons-windowPreview-Use-vfunc-instead-of-signals.patch deleted file mode 100644 index 877ec2c..0000000 --- a/0005-appIcons-windowPreview-Use-vfunc-instead-of-signals.patch +++ /dev/null @@ -1,149 +0,0 @@ -From 1220aaf8c6c55a0e0b9eacd9d579557f874cba37 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= -Date: Mon, 24 Feb 2020 19:03:01 +0100 -Subject: [PATCH 5/5] appIcons, windowPreview: Use vfunc instead of signals - -Given that now all the UI classes are actors themselves, it's better to use -virtual functions to handle to their own signals ---- - appIcons.js | 32 ++++++++------------------------ - windowPreview.js | 21 ++++++++++++--------- - 2 files changed, 20 insertions(+), 33 deletions(-) - -diff --git a/appIcons.js b/appIcons.js -index d3d845b..b317267 100644 ---- a/appIcons.js -+++ b/appIcons.js -@@ -87,7 +87,6 @@ class MyAppIcon extends Dash.DashIcon { - this._location = appInfo ? appInfo.get_string('XdtdUri') : null; - - this._updateIndicatorStyle(); -- this._optionalScrollCycleWindows(); - - // Monitor windows-changes instead of app state. - // Keep using the same Id and function callback (that is extended) -@@ -139,12 +138,6 @@ class MyAppIcon extends Dash.DashIcon { - ]); - } - -- this._signalsHandler.add([ -- Docking.DockManager.settings, -- 'changed::scroll-action', -- this._optionalScrollCycleWindows.bind(this) -- ]); -- - this._numberOverlay(); - - this._previewMenuManager = null; -@@ -191,20 +184,11 @@ class MyAppIcon extends Dash.DashIcon { - this.onWindowsChanged(); - } - -- _optionalScrollCycleWindows() { -- if (this._scrollEventHandler) { -- this.disconnect(this._scrollEventHandler); -- this._scrollEventHandler = 0; -- } -- -+ vfunc_scroll_event(scrollEvent) { - let settings = Docking.DockManager.settings; - let isEnabled = settings.get_enum('scroll-action') === scrollAction.CYCLE_WINDOWS; -- if (!isEnabled) return; -- this._scrollEventHandler = this.connect('scroll-event', -- this.onScrollEvent.bind(this)); -- } -- -- onScrollEvent(actor, event) { -+ if (!isEnabled) -+ return Clutter.EVENT_PROPAGATE; - - // We only activate windows of running applications, i.e. we never open new windows - // We check if the app is running, and that the # of windows is > 0 in -@@ -213,10 +197,10 @@ class MyAppIcon extends Dash.DashIcon { - && this.getInterestingWindows().length > 0; - - if (!appIsRunning) -- return false -+ return Clutter.EVENT_PROPAGATE; - - if (this._optionalScrollCycleWindowsDeadTimeId) -- return false; -+ return Clutter.EVENT_PROPAGATE; - else - this._optionalScrollCycleWindowsDeadTimeId = GLib.timeout_add( - GLib.PRIORITY_DEFAULT, 250, () => { -@@ -225,7 +209,7 @@ class MyAppIcon extends Dash.DashIcon { - - let direction = null; - -- switch (event.get_scroll_direction()) { -+ switch (scrollEvent.direction) { - case Clutter.ScrollDirection.UP: - direction = Meta.MotionDirection.UP; - break; -@@ -233,7 +217,7 @@ class MyAppIcon extends Dash.DashIcon { - direction = Meta.MotionDirection.DOWN; - break; - case Clutter.ScrollDirection.SMOOTH: -- let [dx, dy] = event.get_scroll_delta(); -+ let [, dy] = Clutter.get_current_event().get_scroll_delta(); - if (dy < 0) - direction = Meta.MotionDirection.UP; - else if (dy > 0) -@@ -257,7 +241,7 @@ class MyAppIcon extends Dash.DashIcon { - } - else - this.app.activate(); -- return true; -+ return Clutter.EVENT_STOP; - } - - onWindowsChanged() { -diff --git a/windowPreview.js b/windowPreview.js -index 3a5cafd..310353a 100644 ---- a/windowPreview.js -+++ b/windowPreview.js -@@ -362,11 +362,6 @@ class DashToDock_WindowPreviewMenuItem extends PopupMenu.PopupBaseMenuItem { - box.add(labelBin); - this.add_actor(box); - -- this.connect('enter-event', this._onEnter.bind(this)); -- this.connect('leave-event', this._onLeave.bind(this)); -- this.connect('key-focus-in', this._onEnter.bind(this)); -- this.connect('key-focus-out', this._onLeave.bind(this)); -- - this._cloneTexture(window); - - this.connect('destroy', this._onDestroy.bind(this)); -@@ -478,16 +473,24 @@ class DashToDock_WindowPreviewMenuItem extends PopupMenu.PopupBaseMenuItem { - return n>0; - } - -- _onEnter() { -+ vfunc_key_focus_in() { -+ super.vfunc_key_focus_in(); - this._showCloseButton(); -- return Clutter.EVENT_PROPAGATE; - } - -- _onLeave() { -+ vfunc_key_focus_out() { -+ super.vfunc_key_focus_out(); - this._hideCloseButton(); - } - -- return Clutter.EVENT_PROPAGATE; -+ vfunc_enter_event(crossingEvent) { -+ this._showCloseButton(); -+ return super.vfunc_enter_event(crossingEvent); -+ } -+ -+ vfunc_leave_event(crossingEvent) { -+ this._hideCloseButton(); -+ return super.vfunc_leave_event(crossingEvent); - } - - _idleToggleCloseButton() { --- -2.24.1 - diff --git a/0005-windowPreview-Only-hide-the-close-button-if-no-entry.patch b/0005-windowPreview-Only-hide-the-close-button-if-no-entry.patch new file mode 100644 index 0000000..a671fdc --- /dev/null +++ b/0005-windowPreview-Only-hide-the-close-button-if-no-entry.patch @@ -0,0 +1,51 @@ +From 2eab26f675193ed660c4bbe41308a5188d57e69b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= +Date: Mon, 24 Feb 2020 19:01:40 +0100 +Subject: [PATCH 5/6] windowPreview: Only hide the close button if no entry + child has pointer + +--- + windowPreview.js | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/windowPreview.js b/windowPreview.js +index 784a8e0..32d0fe6 100644 +--- a/windowPreview.js ++++ b/windowPreview.js +@@ -485,9 +485,8 @@ class DashToDock_WindowPreviewMenuItem extends PopupMenu.PopupBaseMenuItem { + } + + _onLeave() { +- if (!this._cloneBin.has_pointer && +- !this.closeButton.has_pointer) +- this._hideCloseButton(); ++ this._hideCloseButton(); ++ } + + return Clutter.EVENT_PROPAGATE; + } +@@ -495,9 +494,7 @@ class DashToDock_WindowPreviewMenuItem extends PopupMenu.PopupBaseMenuItem { + _idleToggleCloseButton() { + this._idleToggleCloseId = 0; + +- if (!this._cloneBin.has_pointer && +- !this.closeButton.has_pointer) +- this._hideCloseButton(); ++ this._hideCloseButton(); + + return GLib.SOURCE_REMOVE; + } +@@ -516,6 +513,10 @@ class DashToDock_WindowPreviewMenuItem extends PopupMenu.PopupBaseMenuItem { + } + + _hideCloseButton() { ++ if (this.closeButton.has_pointer || ++ this.get_children().some(a => a.has_pointer)) ++ return; ++ + this.closeButton.remove_all_transitions(); + this.closeButton.ease({ + opacity: 0, +-- +2.24.1 + diff --git a/0006-appIcons-windowPreview-Use-vfunc-instead-of-signals.patch b/0006-appIcons-windowPreview-Use-vfunc-instead-of-signals.patch new file mode 100644 index 0000000..80fd5f8 --- /dev/null +++ b/0006-appIcons-windowPreview-Use-vfunc-instead-of-signals.patch @@ -0,0 +1,149 @@ +From 493f0326cd4b7683438c8967c7deadd73ea7107e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= +Date: Mon, 24 Feb 2020 19:03:01 +0100 +Subject: [PATCH 6/6] appIcons, windowPreview: Use vfunc instead of signals + +Given that now all the UI classes are actors themselves, it's better to use +virtual functions to handle to their own signals +--- + appIcons.js | 32 ++++++++------------------------ + windowPreview.js | 21 ++++++++++++--------- + 2 files changed, 20 insertions(+), 33 deletions(-) + +diff --git a/appIcons.js b/appIcons.js +index 50eb308..6f958a3 100644 +--- a/appIcons.js ++++ b/appIcons.js +@@ -87,7 +87,6 @@ class MyAppIcon extends Dash.DashIcon { + this._location = appInfo ? appInfo.get_string('XdtdUri') : null; + + this._updateIndicatorStyle(); +- this._optionalScrollCycleWindows(); + + // Monitor windows-changes instead of app state. + // Keep using the same Id and function callback (that is extended) +@@ -139,12 +138,6 @@ class MyAppIcon extends Dash.DashIcon { + ]); + } + +- this._signalsHandler.add([ +- Docking.DockManager.settings, +- 'changed::scroll-action', +- this._optionalScrollCycleWindows.bind(this) +- ]); +- + this._numberOverlay(); + + this._previewMenuManager = null; +@@ -191,20 +184,11 @@ class MyAppIcon extends Dash.DashIcon { + this.onWindowsChanged(); + } + +- _optionalScrollCycleWindows() { +- if (this._scrollEventHandler) { +- this.disconnect(this._scrollEventHandler); +- this._scrollEventHandler = 0; +- } +- ++ vfunc_scroll_event(scrollEvent) { + let settings = Docking.DockManager.settings; + let isEnabled = settings.get_enum('scroll-action') === scrollAction.CYCLE_WINDOWS; +- if (!isEnabled) return; +- this._scrollEventHandler = this.connect('scroll-event', +- this.onScrollEvent.bind(this)); +- } +- +- onScrollEvent(actor, event) { ++ if (!isEnabled) ++ return Clutter.EVENT_PROPAGATE; + + // We only activate windows of running applications, i.e. we never open new windows + // We check if the app is running, and that the # of windows is > 0 in +@@ -213,10 +197,10 @@ class MyAppIcon extends Dash.DashIcon { + && this.getInterestingWindows().length > 0; + + if (!appIsRunning) +- return false ++ return Clutter.EVENT_PROPAGATE; + + if (this._optionalScrollCycleWindowsDeadTimeId) +- return false; ++ return Clutter.EVENT_PROPAGATE; + else + this._optionalScrollCycleWindowsDeadTimeId = GLib.timeout_add( + GLib.PRIORITY_DEFAULT, 250, () => { +@@ -225,7 +209,7 @@ class MyAppIcon extends Dash.DashIcon { + + let direction = null; + +- switch (event.get_scroll_direction()) { ++ switch (scrollEvent.direction) { + case Clutter.ScrollDirection.UP: + direction = Meta.MotionDirection.UP; + break; +@@ -233,7 +217,7 @@ class MyAppIcon extends Dash.DashIcon { + direction = Meta.MotionDirection.DOWN; + break; + case Clutter.ScrollDirection.SMOOTH: +- let [dx, dy] = event.get_scroll_delta(); ++ let [, dy] = Clutter.get_current_event().get_scroll_delta(); + if (dy < 0) + direction = Meta.MotionDirection.UP; + else if (dy > 0) +@@ -257,7 +241,7 @@ class MyAppIcon extends Dash.DashIcon { + } + else + this.app.activate(); +- return true; ++ return Clutter.EVENT_STOP; + } + + onWindowsChanged() { +diff --git a/windowPreview.js b/windowPreview.js +index 32d0fe6..f472d11 100644 +--- a/windowPreview.js ++++ b/windowPreview.js +@@ -363,11 +363,6 @@ class DashToDock_WindowPreviewMenuItem extends PopupMenu.PopupBaseMenuItem { + box.add(labelBin); + this.add_actor(box); + +- this.connect('enter-event', this._onEnter.bind(this)); +- this.connect('leave-event', this._onLeave.bind(this)); +- this.connect('key-focus-in', this._onEnter.bind(this)); +- this.connect('key-focus-out', this._onLeave.bind(this)); +- + this._cloneTexture(window); + + this.connect('destroy', this._onDestroy.bind(this)); +@@ -479,16 +474,24 @@ class DashToDock_WindowPreviewMenuItem extends PopupMenu.PopupBaseMenuItem { + return n>0; + } + +- _onEnter() { ++ vfunc_key_focus_in() { ++ super.vfunc_key_focus_in(); + this._showCloseButton(); +- return Clutter.EVENT_PROPAGATE; + } + +- _onLeave() { ++ vfunc_key_focus_out() { ++ super.vfunc_key_focus_out(); + this._hideCloseButton(); + } + +- return Clutter.EVENT_PROPAGATE; ++ vfunc_enter_event(crossingEvent) { ++ this._showCloseButton(); ++ return super.vfunc_enter_event(crossingEvent); ++ } ++ ++ vfunc_leave_event(crossingEvent) { ++ this._hideCloseButton(); ++ return super.vfunc_leave_event(crossingEvent); + } + + _idleToggleCloseButton() { +-- +2.24.1 + diff --git a/gnome-shell-extension-dash-to-dock.spec b/gnome-shell-extension-dash-to-dock.spec index eac3f59..cf454cd 100644 --- a/gnome-shell-extension-dash-to-dock.spec +++ b/gnome-shell-extension-dash-to-dock.spec @@ -8,7 +8,7 @@ Name: gnome-shell-extension-dash-to-dock Version: 67 -Release: 3.%{commit_date}git%{commit_short}%{?dist} +Release: 4.%{commit_date}git%{commit_short}%{?dist} Summary: Dock for the Gnome Shell by micxgx.gmail.com License: GPLv2+ @@ -22,11 +22,11 @@ Source0: %{giturl}/archive/extensions.gnome.org-v%{version}.tar.gz#/%{name}-%{ve # GNOME 3.36 support # https://github.com/micheleg/dash-to-dock/pull/1097 Patch1: 0001-general-Update-to-gnome-shell-3.36-code-with-more-ac.patch -Patch2: 0002-metadata-Set-extension-compatible-with-shell-3.36-on.patch -Patch3: 0003-utils-Use-more-ES6-compliant-code-to-override-calls.patch -Patch4: 0004-windowPreview-Only-hide-the-close-button-if-no-entry.patch -Patch5: 0005-appIcons-windowPreview-Use-vfunc-instead-of-signals.patch - +Patch2: 0002-general-Use-Clutter.ActorAlign-to-set-alignments.patch +Patch3: 0003-metadata-Set-extension-compatible-with-shell-3.36-on.patch +Patch4: 0004-utils-Use-more-ES6-compliant-code-to-override-calls.patch +Patch5: 0005-windowPreview-Only-hide-the-close-button-if-no-entry.patch +Patch6: 0006-appIcons-windowPreview-Use-vfunc-instead-of-signals.patch BuildArch: noarch @@ -85,6 +85,9 @@ fi %changelog +* Thu Feb 27 2020 Mike DePaulo - 67-4.20200224git5658b5c +- Add new addtl proposed patch for GNOME 3.36 compatibility (rhbz: #1794889) + * Tue Feb 25 2020 Mike DePaulo - 67-3 - Upgrade to latest master branch - Add proposed PR/patches for GNOME 3.36 compatibility