Marco Trevisan (Treviño) has proposed merging 
~3v1n0/ubuntu/+source/gnome-shell:ubuntu/bionic into 
~ubuntu-desktop/ubuntu/+source/gnome-shell:ubuntu/bionic with 
~3v1n0/ubuntu/+source/gnome-shell:upstream/3.28.x as a prerequisite.

Requested reviews:
  Ubuntu Desktop (ubuntu-desktop)
Related bugs:
  Bug #1745032 in linux (Ubuntu): "AC adapter status not detected on Asus 
ZenBook UX410UAK"
  https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1745032
  Bug #1772677 in gnome-shell (Ubuntu): "gnome-shell filling up syslog with 
thousands/millions of entries with stack traces ending in osdWindow.js (lines 
206/207 in bionic, lines 223/224 in cosmic)"
  https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1772677
  Bug #1811900 in mutter (Ubuntu): "SRU 3.28 latest git to bionic"
  https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/1811900
  Bug #1811908 in gnome-shell (Ubuntu): "gnome-shell: JS ERROR: ReferenceError: 
GLib is not defined"
  https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1811908
  Bug #1812266 in gnome-settings-daemon (Ubuntu): "Keyboard layout indicator 
does not indicate current layout (18.04 Bionic beaver)"
  https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/1812266
  Bug #1812735 in gnome-shell (Ubuntu): "Andyrock has to update this 
placeholder bug :)"
  https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1812735

For more details, see:
https://code.launchpad.net/~3v1n0/ubuntu/+source/gnome-shell/+git/gnome-shell/+merge/362055
-- 
Your team Ubuntu Desktop is requested to review the proposed merge of 
~3v1n0/ubuntu/+source/gnome-shell:ubuntu/bionic into 
~ubuntu-desktop/ubuntu/+source/gnome-shell:ubuntu/bionic.
diff --git a/debian/changelog b/debian/changelog
index 58f19e1..4e3a2d0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,35 @@
+gnome-shell (3.28.3+git20190116-0ubuntu18.04.1) UNRELEASED; urgency=medium
+
+  * New git snapshot release up to commit 24cdcc56d (LP: #1811900)
+    - Don't fill journal with osdWindow errors (LP: #1772677)
+  * d/p/authPrompt-Do-not-enable-sensitivity-if-retries-are-disal.patch,
+    d/p/authPrompt-Unset-preemptiveAnswer-on-reset.patch,
+    d/p/gdm-util-Always-allow-to-retry-login-in-unlock-mode.patch,
+    d/p/ibus-set-content-type-no-holdKeyboard.patch,
+    d/p/popupMenu-Don-t-handle-key-presses-directly-if-there-are-.patch,
+    d/p/st-button-Ignore-pointer-emulated-touch-events.patch,
+    d/p/shell-ignore-invalid-window-monitor-index.patch,
+    d/p/workspace-fix-repositioned-windows-in-activities.patch:
+    - Removed patches applied upstream
+  * d/p/StIcon-only-compute-shadow-pipeline-when-the-texture-is-p.patch,
+    d/p/js-fix-invalid-access-errors.patch,
+    d/p/js-ui-Choose-some-actors-to-cache-on-the-GPU.patch,
+    d/p/optional-hot-corner.patch,
+    d/p/st-texture-cache-Cancel-sliced-image-loading-on-target-ac.patch,
+    d/p/workaround_crasher_fractional_scaling.patch:
+    - Refreshed as per upstream changes
+  * d/p/ibusManager-Don-t-pass-undefined-callback-to-ibus.patch:
+    - Fix missing icon in keyboard indicator (LP: #1812266)
+  * d/p/keyboard-Filter-redundant-FocusTracker-position-changed-s.patch,
+    d/p/keyboard-Listen-to-IbusPanelService-focus-in-out-to-track.patch:
+    - Fix OSK activation on X11 (LP: #1812735)
+  * d/p/power-Label-the-PENDING_CHARGE-state-as-Not-Charging.patch:
+    - Label the PENDING_CHARGE state as "Not Charging" (LP: #1745032)
+  * d/p/debian/patches/volume-Add-back-sound-feedback-on-scroll.patch:
+    - Add missing include (LP: #1811908)
+
+ -- Marco Trevisan (Treviño) <ma...@ubuntu.com>  Tue, 22 Jan 2019 01:53:57 +0100
+
 gnome-shell (3.28.3-0ubuntu0.18.04.4) bionic; urgency=medium
 
   * debian/patches/ibus-set-content-type-no-holdKeyboard.patch:
diff --git a/debian/patches/StIcon-only-compute-shadow-pipeline-when-the-texture-is-p.patch b/debian/patches/StIcon-only-compute-shadow-pipeline-when-the-texture-is-p.patch
index 96b2cf0..3264a5c 100644
--- a/debian/patches/StIcon-only-compute-shadow-pipeline-when-the-texture-is-p.patch
+++ b/debian/patches/StIcon-only-compute-shadow-pipeline-when-the-texture-is-p.patch
@@ -1,5 +1,5 @@
 From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <m...@3v1n0.net>
-Date: Wed, 18 Oct 2017 05:32:22 -0500
+Date: Wed, 18 Oct 2017 12:32:22 +0200
 Subject: StIcon: only compute shadow pipeline when the texture is properly
  allocated
 
diff --git a/debian/patches/authPrompt-Do-not-enable-sensitivity-if-retries-are-disal.patch b/debian/patches/authPrompt-Do-not-enable-sensitivity-if-retries-are-disal.patch
deleted file mode 100644
index ff98dda..0000000
--- a/debian/patches/authPrompt-Do-not-enable-sensitivity-if-retries-are-disal.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <m...@3v1n0.net>
-Date: Tue, 29 May 2018 02:00:04 +0200
-Subject: authPrompt: Do not enable sensitivity if retries are disallowed
-
-Set the sensitivity of the UI according to the canRetry parameter and thus
-if no more logins are allowed don't take any input.
-
-Fixes #311
-
-Bug-GNOME: https://gitlab.gnome.org/GNOME/gnome-shell/issues/311
-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1777956
-Forwarded: yes, https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/116
----
- js/gdm/authPrompt.js | 4 ++--
- js/gdm/util.js       | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
-index d9ec7ee..a0a4a21 100644
---- a/js/gdm/authPrompt.js
-+++ b/js/gdm/authPrompt.js
-@@ -242,11 +242,11 @@ var AuthPrompt = new Lang.Class({
-         this.emit('prompted');
-     },
- 
--    _onVerificationFailed() {
-+    _onVerificationFailed(userVerifier, canRetry) {
-         this._queryingService = null;
-         this.clear();
- 
--        this.updateSensitivity(true);
-+        this.updateSensitivity(canRetry);
-         this.setActorInDefaultButtonWell(null);
-         this.verificationStatus = AuthPromptStatus.VERIFICATION_FAILED;
-     },
-diff --git a/js/gdm/util.js b/js/gdm/util.js
-index 261e1e4..0532ca8 100644
---- a/js/gdm/util.js
-+++ b/js/gdm/util.js
-@@ -562,7 +562,7 @@ var ShellUserVerifier = new Lang.Class({
-             }
-         }
- 
--        this.emit('verification-failed');
-+        this.emit('verification-failed', canRetry);
-     },
- 
-     _onConversationStopped(client, serviceName) {
diff --git a/debian/patches/authPrompt-Unset-preemptiveAnswer-on-reset.patch b/debian/patches/authPrompt-Unset-preemptiveAnswer-on-reset.patch
deleted file mode 100644
index 11f88d2..0000000
--- a/debian/patches/authPrompt-Unset-preemptiveAnswer-on-reset.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <m...@3v1n0.net>
-Date: Tue, 29 May 2018 01:51:00 +0200
-Subject: authPrompt: Unset preemptiveAnswer on reset
-
-When we get a reset signal the preemptiveAnswer should be also unset or it will
-be used next time the user authPrompt will be activated, even without any further
-user interaction.
-
-Fixes #311
-
-Bug-GNOME: https://gitlab.gnome.org/GNOME/gnome-shell/issues/311
-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1777956
-Forwarded: yes, https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/116
----
- js/gdm/authPrompt.js | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
-index 481cd3a..d9ec7ee 100644
---- a/js/gdm/authPrompt.js
-+++ b/js/gdm/authPrompt.js
-@@ -439,6 +439,7 @@ var AuthPrompt = new Lang.Class({
-         this.verificationStatus = AuthPromptStatus.NOT_VERIFYING;
-         this.cancelButton.reactive = true;
-         this.nextButton.label = _("Next");
-+        this._preemptiveAnswer = null;
- 
-         if (this._userVerifier)
-             this._userVerifier.cancel();
diff --git a/debian/patches/gdm-util-Always-allow-to-retry-login-in-unlock-mode.patch b/debian/patches/gdm-util-Always-allow-to-retry-login-in-unlock-mode.patch
deleted file mode 100644
index 24a2edd..0000000
--- a/debian/patches/gdm-util-Always-allow-to-retry-login-in-unlock-mode.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <m...@3v1n0.net>
-Date: Tue, 29 May 2018 02:10:09 +0200
-Subject: gdm, util: Always allow to retry login in unlock mode
-
-When in lockscreen mode there's no point of resetting the auth login as there's
-no welcome screen, and that would just cause the UI to freeze, with no reason.
-This could have been useful if we were stopping the user to login for a given
-time after ALLOWED_FAILURES attempts, but this is not the case yet.
-
-Bug-GNOME: https://gitlab.gnome.org/GNOME/gnome-shell/issues/311
-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1777956
-Forwarded: yes, https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/116
----
- js/gdm/util.js | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/js/gdm/util.js b/js/gdm/util.js
-index 0532ca8..105a320 100644
---- a/js/gdm/util.js
-+++ b/js/gdm/util.js
-@@ -534,12 +534,13 @@ var ShellUserVerifier = new Lang.Class({
-     _verificationFailed(retry) {
-         // For Not Listed / enterprise logins, immediately reset
-         // the dialog
--        // Otherwise, we allow ALLOWED_FAILURES attempts. After that, we
--        // go back to the welcome screen.
-+        // Otherwise, when in login mode we allow ALLOWED_FAILURES attempts.
-+        // After that, we go back to the welcome screen.
- 
-         this._failCounter++;
-         let canRetry = retry && this._userName &&
--            this._failCounter < this._settings.get_int(ALLOWED_FAILURES_KEY);
-+            (this._reauthOnly ||
-+             this._failCounter < this._settings.get_int(ALLOWED_FAILURES_KEY));
- 
-         if (canRetry) {
-             if (!this.hasPendingMessages) {
diff --git a/debian/patches/ibus-set-content-type-no-holdKeyboard.patch b/debian/patches/ibus-set-content-type-no-holdKeyboard.patch
deleted file mode 100644
index f0f4823..0000000
--- a/debian/patches/ibus-set-content-type-no-holdKeyboard.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 551e827841626cd8084daa2210b3bf60e5be96be Mon Sep 17 00:00:00 2001
-From: Takao Fujiwara <tfuji...@redhat.com>
-Date: Fri, 31 Aug 2018 20:22:23 +0900
-Subject: [PATCH] keyboard: Do not call KeyboardManager.holdKeyboard() with
- set-content-type
-
-When gnome-shell receives the signal of 'set-content-type' from ibus,
-gnome-shell calls KeyboardManager.holdKeyboard() and
-KeyboardManager.releaseKeyboard() and the functions change the current
-input focus in GNOME Xorg and it could result in closing a popup window
-which has a password entry by focusing on the entry.
-The solution is to stop to call the APIs on 'set-content-type' signal.
-
-Origin: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/140
-Bug-Upstream: https://gitlab.gnome.org/GNOME/gnome-shell/issues/391
-Bug-Ubuntu: https://launchpad.net/bugs/1765304
----
- js/ui/status/keyboard.js | 18 ++++++++++++++++--
- 1 file changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
-index 6d031d88c..980019cd4 100644
---- a/js/ui/status/keyboard.js
-+++ b/js/ui/status/keyboard.js
-@@ -360,11 +360,14 @@ var InputSourceManager = new Lang.Class({
-         this._settings.connect('per-window-changed', this._sourcesPerWindowChanged.bind(this));
-         this._sourcesPerWindowChanged();
-         this._disableIBus = false;
-+        this._reloading = false;
-     },
- 
-     reload() {
-+        this._reloading = true;
-         this._keyboardManager.setKeyboardOptions(this._settings.keyboardOptions);
-         this._inputSourcesChanged();
-+        this._reloading = false;
-     },
- 
-     _ibusReadyCallback(im, ready) {
-@@ -458,7 +461,15 @@ var InputSourceManager = new Lang.Class({
-     },
- 
-     activateInputSource(is, interactive) {
--        KeyboardManager.holdKeyboard();
-+        // The focus changes during holdKeyboard/releaseKeyboard may trick
-+        // the client into hiding UI containing the currently focused entry.
-+        // So holdKeyboard/releaseKeyboard are not called when
-+        // 'set-content-type' signal is received.
-+        // E.g. Focusing on a password entry in a popup in Xorg Firefox
-+        // will emit 'set-content-type' signal.
-+        // https://gitlab.gnome.org/GNOME/gnome-shell/issues/391
-+        if (!this._reloading)
-+            KeyboardManager.holdKeyboard();
-         this._keyboardManager.apply(is.xkbId);
- 
-         // All the "xkb:..." IBus engines simply "echo" back symbols,
-@@ -473,7 +484,10 @@ var InputSourceManager = new Lang.Class({
-         else
-             engine = 'xkb:us::eng';
- 
--        this._ibusManager.setEngine(engine, KeyboardManager.releaseKeyboard);
-+        if (!this._reloading)
-+            this._ibusManager.setEngine(engine, KeyboardManager.releaseKeyboard);
-+        else
-+            this._ibusManager.setEngine(engine);
-         this._currentInputSourceChanged(is);
- 
-         if (interactive)
--- 
-2.18.1
-
diff --git a/debian/patches/ibusManager-Don-t-pass-undefined-callback-to-ibus.patch b/debian/patches/ibusManager-Don-t-pass-undefined-callback-to-ibus.patch
new file mode 100644
index 0000000..6942e4f
--- /dev/null
+++ b/debian/patches/ibusManager-Don-t-pass-undefined-callback-to-ibus.patch
@@ -0,0 +1,32 @@
+From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuell...@gnome.org>
+Date: Thu, 15 Nov 2018 18:47:55 +0100
+Subject: ibusManager: Don't pass undefined callback to ibus
+
+Since commit 551e8278416, we don't always pass a callback parameter.
+However passing it on as undefined to ibus doesn't work, as gjs doesn't
+accept that as a valid callback value and throw an error. As a result,
+we can end up with no layout selected in the keyboard menu and an "empty"
+indicator. Fix this by explicitly passing null if no callback has been
+provided.
+
+https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/293
+
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1812266/
+Origin: https://gitlab.gnome.org/GNOME/gnome-shell/commit/74bb9e62492bacda3
+---
+ js/misc/ibusManager.js | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/js/misc/ibusManager.js b/js/misc/ibusManager.js
+index 6452e49..ad2e0fc 100644
+--- a/js/misc/ibusManager.js
++++ b/js/misc/ibusManager.js
+@@ -205,7 +205,7 @@ var IBusManager = new Lang.Class({
+         }
+ 
+         this._ibus.set_global_engine_async(id, this._MAX_INPUT_SOURCE_ACTIVATION_TIME,
+-                                           null, callback);
++                                           null, callback || null);
+     },
+ 
+     preloadEngines(ids) {
diff --git a/debian/patches/js-fix-invalid-access-errors.patch b/debian/patches/js-fix-invalid-access-errors.patch
index a272d79..782ee1f 100644
--- a/debian/patches/js-fix-invalid-access-errors.patch
+++ b/debian/patches/js-fix-invalid-access-errors.patch
@@ -1,5 +1,5 @@
 From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <m...@3v1n0.net>
-Date: Mon, 4 Dec 2017 19:41:50 -0600
+Date: Tue, 5 Dec 2017 02:41:50 +0100
 Subject: js: fix invalid-access errors
 
 tweener: Save handlers on target and remove them on destroy
@@ -24,92 +24,16 @@ Remove duplicated handler on 'destroy' and just use a generic one.
 
 https://bugzilla.gnome.org/show_bug.cgi?id=791233
 
-automountManager: remove allowAutorun expire timeout on volume removal
-    
-If the volume is removed before AUTORUN_EXPIRE_TIMEOUT_SECS seconds, we can stop
-the timeout earlier as there's nothing to unset, while the volume instance
-won't be valid anymore.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=791233
-
-messageList: stop syncing if closeButton has been destroyed
-
-The _sync function for Message only updates the close button visibility,
-so we can safely stop doing that if the close button get get destroyed earlier
-(as it happens when clicking on it).
-
-https://bugzilla.gnome.org/show_bug.cgi?id=791233
-
-workspaceThumbnail: Don't keep stale clones in list
-
-If a clone gets destroyed before the corresponding MetaWindow is
-removed from the workspace, we will still find it in the list of
-clones and try to destroy it again. Avoid the resulting warnings
-by updating the list of clones immediately when a clone is destroyed.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=791233
-
-workspace: Don't keep stale clones in list
-
-If a clone gets destroyed before the corresponding MetaWindow is
-removed from the workspace, we will still find it in the list of
-clones and try to destroy it again. Avoid the resulting warnings
-by updating the list of clones immediately when a clone is destroyed.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=791233
-
 Bug-GNOME: https://bugzilla.gnome.org/show_bug.cgi?id=791233
 Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/bionic/+source/gnome-shell/+bug/1747566
 Forwarded: yes, https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/4
 ---
- js/ui/calendar.js                    |  2 ++
- js/ui/components/automountManager.js |  6 ++++
- js/ui/dnd.js                         | 65 +++++++++++++++++++++---------------
- js/ui/messageList.js                 |  3 +-
- js/ui/tweener.js                     | 63 ++++++++++++++++++++++++++--------
- 5 files changed, 99 insertions(+), 40 deletions(-)
+ js/ui/dnd.js     | 65 +++++++++++++++++++++++++++++++++-----------------------
+ js/ui/tweener.js | 63 ++++++++++++++++++++++++++++++++++++++++++------------
+ 2 files changed, 89 insertions(+), 39 deletions(-)
 
-diff --git a/js/ui/calendar.js b/js/ui/calendar.js
-index 651aac6..fd133cc 100644
---- a/js/ui/calendar.js
-+++ b/js/ui/calendar.js
-@@ -802,6 +802,8 @@ var NotificationMessage = new Lang.Class({
-     },
- 
-     _onDestroy() {
-+        this.parent();
-+
-         if (this._updatedId)
-             this.notification.disconnect(this._updatedId);
-         this._updatedId = 0;
-diff --git a/js/ui/components/automountManager.js b/js/ui/components/automountManager.js
-index 2d8f3f8..a6cd857 100644
---- a/js/ui/components/automountManager.js
-+++ b/js/ui/components/automountManager.js
-@@ -210,6 +210,10 @@ var AutomountManager = new Lang.Class({
-     },
- 
-     _onVolumeRemoved(monitor, volume) {
-+        if (volume._allowAutorunExpireId && volume._allowAutorunExpireId > 0) {
-+            Mainloop.source_remove(volume._allowAutorunExpireId);
-+            delete volume._allowAutorunExpireId;
-+        }
-         this._volumeQueue = 
-             this._volumeQueue.filter(element => (element != volume));
-     },
-@@ -234,8 +238,10 @@ var AutomountManager = new Lang.Class({
-     _allowAutorunExpire(volume) {
-         let id = Mainloop.timeout_add_seconds(AUTORUN_EXPIRE_TIMEOUT_SECS, () => {
-             volume.allowAutorun = false;
-+            delete volume._allowAutorunExpireId;
-             return GLib.SOURCE_REMOVE;
-         });
-+        volume._allowAutorunExpireId = id;
-         GLib.Source.set_name_by_id(id, '[gnome-shell] volume.allowAutorun');
-     }
- });
 diff --git a/js/ui/dnd.js b/js/ui/dnd.js
-index a38607c..431c60d 100644
+index ec1ba1d..9e961a1 100644
 --- a/js/ui/dnd.js
 +++ b/js/ui/dnd.js
 @@ -27,6 +27,12 @@ var DragMotionResult = {
@@ -205,7 +129,7 @@ index a38607c..431c60d 100644
          this._dragOrigOpacity = this._dragActor.opacity;
          if (this._dragActorOpacity != undefined)
              this._dragActor.opacity = this._dragActorOpacity;
-@@ -500,7 +515,7 @@ var _Draggable = new Lang.Class({
+@@ -518,7 +533,7 @@ var _Draggable = new Lang.Class({
                                                  event.get_time())) {
                      // If it accepted the drop without taking the actor,
                      // handle it ourselves.
@@ -214,7 +138,7 @@ index a38607c..431c60d 100644
                          if (this._restoreOnSuccess) {
                              this._restoreDragActor(event.get_time());
                              return true;
-@@ -508,7 +523,7 @@ var _Draggable = new Lang.Class({
+@@ -526,7 +541,7 @@ var _Draggable = new Lang.Class({
                              this._dragActor.destroy();
                      }
  
@@ -223,7 +147,7 @@ index a38607c..431c60d 100644
                      global.screen.set_cursor(Meta.Cursor.DEFAULT);
                      this.emit('drag-end', event.get_time(), true);
                      this._dragComplete();
-@@ -557,20 +572,22 @@ var _Draggable = new Lang.Class({
+@@ -575,20 +590,22 @@ var _Draggable = new Lang.Class({
  
      _cancelDrag(eventTime) {
          this.emit('drag-cancelled', eventTime);
@@ -250,7 +174,7 @@ index a38607c..431c60d 100644
          this._animateDragEnd(eventTime,
                               { x: snapBackX,
                                 y: snapBackY,
-@@ -581,7 +598,7 @@ var _Draggable = new Lang.Class({
+@@ -599,7 +616,7 @@ var _Draggable = new Lang.Class({
      },
  
      _restoreDragActor(eventTime) {
@@ -259,7 +183,7 @@ index a38607c..431c60d 100644
          let [restoreX, restoreY, restoreScale] = this._getRestoreLocation();
  
          // fade the actor back in at its original location
-@@ -596,12 +613,6 @@ var _Draggable = new Lang.Class({
+@@ -614,12 +631,6 @@ var _Draggable = new Lang.Class({
      _animateDragEnd(eventTime, params) {
          this._animationInProgress = true;
  
@@ -272,7 +196,7 @@ index a38607c..431c60d 100644
          params['opacity']          = this._dragOrigOpacity;
          params['transition']       = 'easeOutQuad';
          params['onComplete']       = this._onAnimationComplete;
-@@ -624,9 +635,6 @@ var _Draggable = new Lang.Class({
+@@ -642,9 +653,6 @@ var _Draggable = new Lang.Class({
      },
  
      _onAnimationComplete(dragActor, eventTime) {
@@ -282,7 +206,7 @@ index a38607c..431c60d 100644
          if (this._dragOrigParent) {
              Main.uiGroup.remove_child(this._dragActor);
              this._dragOrigParent.add_actor(this._dragActor);
-@@ -641,7 +649,7 @@ var _Draggable = new Lang.Class({
+@@ -659,7 +667,7 @@ var _Draggable = new Lang.Class({
      },
  
      _dragComplete() {
@@ -291,7 +215,7 @@ index a38607c..431c60d 100644
              Shell.util_set_hidden_from_pick(this._dragActor, false);
  
          this._ungrabEvents();
-@@ -652,7 +660,12 @@ var _Draggable = new Lang.Class({
+@@ -670,7 +678,12 @@ var _Draggable = new Lang.Class({
              this._updateHoverId = 0;
          }
  
@@ -305,20 +229,6 @@ index a38607c..431c60d 100644
          currentDraggable = null;
      }
  });
-diff --git a/js/ui/messageList.js b/js/ui/messageList.js
-index aff201e..2d397c1 100644
---- a/js/ui/messageList.js
-+++ b/js/ui/messageList.js
-@@ -362,7 +362,8 @@ var Message = new Lang.Class({
-         this.setBody(body);
- 
-         this._closeButton.connect('clicked', this.close.bind(this));
--        this.actor.connect('notify::hover', this._sync.bind(this));
-+        let actorHoverId = this.actor.connect('notify::hover', this._sync.bind(this));
-+        this._closeButton.connect('destroy', this.actor.disconnect.bind(this.actor, actorHoverId));
-         this.actor.connect('clicked', this._onClicked.bind(this));
-         this.actor.connect('destroy', this._onDestroy.bind(this));
-         this._sync();
 diff --git a/js/ui/tweener.js b/js/ui/tweener.js
 index 1a85e2f..22818ba 100644
 --- a/js/ui/tweener.js
diff --git a/debian/patches/js-ui-Choose-some-actors-to-cache-on-the-GPU.patch b/debian/patches/js-ui-Choose-some-actors-to-cache-on-the-GPU.patch
index 1402949..8d15dd2 100644
--- a/debian/patches/js-ui-Choose-some-actors-to-cache-on-the-GPU.patch
+++ b/debian/patches/js-ui-Choose-some-actors-to-cache-on-the-GPU.patch
@@ -1,5 +1,5 @@
 From: Daniel van Vugt <daniel.van.v...@canonical.com>
-Date: Fri, 6 Apr 2018 05:26:58 -0500
+Date: Fri, 6 Apr 2018 12:26:58 +0200
 Subject: js/ui: Choose some actors to cache on the GPU
 
 Adds a wrapper function to flag actors that are good candidates for
@@ -64,10 +64,10 @@ index 47f718a..602646a 100644
          this._container.connect('get-preferred-height', this._getPreferredHeight.bind(this));
          this._container.connect('allocate', this._allocate.bind(this));
 diff --git a/js/ui/dash.js b/js/ui/dash.js
-index 5ee2476..14864f1 100644
+index d75af65..4d3fe73 100644
 --- a/js/ui/dash.js
 +++ b/js/ui/dash.js
-@@ -402,6 +402,7 @@ var Dash = new Lang.Class({
+@@ -404,6 +404,7 @@ var Dash = new Lang.Class({
                                         clip_to_allocation: true });
          this._box._delegate = this;
          this._container.add_actor(this._box);
@@ -96,10 +96,10 @@ index cfa192d..89db963 100644
          this.contentLayout = new St.BoxLayout({ vertical: true,
                                                  style_class: "modal-dialog-content-box" });
 diff --git a/js/ui/main.js b/js/ui/main.js
-index d86cf9e..5277cf7 100644
+index 2c54bb6..baca1c2 100644
 --- a/js/ui/main.js
 +++ b/js/ui/main.js
-@@ -716,3 +716,19 @@ function showRestartMessage(message) {
+@@ -719,3 +719,19 @@ function showRestartMessage(message) {
      let restartMessage = new RestartMessage(message);
      restartMessage.open();
  }
@@ -120,7 +120,7 @@ index d86cf9e..5277cf7 100644
 +    actor.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
 +}
 diff --git a/js/ui/panel.js b/js/ui/panel.js
-index 2f59324..2237ead 100644
+index ef14ddf..a76916b 100644
 --- a/js/ui/panel.js
 +++ b/js/ui/panel.js
 @@ -772,6 +772,7 @@ var Panel = new Lang.Class({
diff --git a/debian/patches/keyboard-Filter-redundant-FocusTracker-position-changed-s.patch b/debian/patches/keyboard-Filter-redundant-FocusTracker-position-changed-s.patch
new file mode 100644
index 0000000..a694dce
--- /dev/null
+++ b/debian/patches/keyboard-Filter-redundant-FocusTracker-position-changed-s.patch
@@ -0,0 +1,38 @@
+From: Carlos Garnacho <carl...@gnome.org>
+Date: Mon, 17 Sep 2018 21:04:48 +0200
+Subject: keyboard: Filter redundant FocusTracker::position-changed signals
+
+Just emit the signal if it did actually change.
+
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1812735
+Origin: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/239
+---
+ js/ui/keyboard.js | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
+index 4413846..4a923ad 100644
+--- a/js/ui/keyboard.js
++++ b/js/ui/keyboard.js
+@@ -491,6 +491,7 @@ var FocusTracker = new Lang.Class({
+     _init() {
+         this._currentWindow = null;
+         this._currentWindowPositionId = 0;
++        this._rect = null;
+ 
+         global.screen.get_display().connect('notify::focus-window', () => {
+             this._setCurrentWindow(global.screen.get_display().focus_window);
+@@ -539,6 +540,13 @@ var FocusTracker = new Lang.Class({
+             rect.y -= frameRect.y;
+         }
+ 
++        if (this._rect &&
++            this._rect.x == rect.x &&
++            this._rect.y == rect.y &&
++            this._rect.width == rect.width &&
++            this._rect.height == rect.height)
++            return;
++
+         this._rect = rect;
+         this.emit('position-changed');
+     },
diff --git a/debian/patches/keyboard-Listen-to-IbusPanelService-focus-in-out-to-track.patch b/debian/patches/keyboard-Listen-to-IbusPanelService-focus-in-out-to-track.patch
new file mode 100644
index 0000000..4869778
--- /dev/null
+++ b/debian/patches/keyboard-Listen-to-IbusPanelService-focus-in-out-to-track.patch
@@ -0,0 +1,65 @@
+From: Carlos Garnacho <carl...@gnome.org>
+Date: Tue, 18 Sep 2018 12:54:29 +0200
+Subject: keyboard: Listen to IbusPanelService::focus-in/out to track focus
+ changes
+
+In X11 there's no input panel state requests, so restore the previous behavior
+that focused entries would always toggle the OSK on there.
+
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1812735
+Origin: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/239
+---
+ js/misc/ibusManager.js |  5 +++++
+ js/ui/keyboard.js      | 16 ++++++++++++++++
+ 2 files changed, 21 insertions(+)
+
+diff --git a/js/misc/ibusManager.js b/js/misc/ibusManager.js
+index ad2e0fc..33ad877 100644
+--- a/js/misc/ibusManager.js
++++ b/js/misc/ibusManager.js
+@@ -119,6 +119,11 @@ var IBusManager = new Lang.Class({
+                 let cursorLocation = { x, y, width: w, height: h };
+                 this.emit('set-cursor-location', cursorLocation);
+             });
++            this._panelService.connect('focus-in', (panel, path) => {
++                if (!GLib.str_has_suffix(path, '/InputContext_1'))
++                    this.emit ('focus-in');
++            });
++            this._panelService.connect('focus-out', () => { this.emit('focus-out'); });
+ 
+             try {
+                 // IBus versions older than 1.5.10 have a bug which
+diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
+index 4a923ad..7dba1a8 100644
+--- a/js/ui/keyboard.js
++++ b/js/ui/keyboard.js
+@@ -512,6 +512,12 @@ var FocusTracker = new Lang.Class({
+ 
+             this._setCurrentRect(rect);
+         });
++        this._ibusManager.connect('focus-in', () => {
++            this.emit('focus-changed', true);
++        });
++        this._ibusManager.connect('focus-out', () => {
++            this.emit('focus-changed', false);
++        });
+     },
+ 
+     get currentWindow() {
+@@ -594,6 +600,16 @@ var Keyboard = new Lang.Class({
+             this._animFocusedWindow = null;
+             this._oskFocusWindow = null;
+         });
++        this._focusTracker.connect('focus-changed', (tracker, focused) => {
++            // Valid only for X11
++            if (Meta.is_wayland_compositor())
++                return;
++
++            if (focused)
++                this.show(Main.layoutManager.focusIndex);
++            else
++                this.hide();
++        });
+ 
+         Meta.get_backend().connect('last-device-changed', 
+             (backend, deviceId) => {
diff --git a/debian/patches/optional-hot-corner.patch b/debian/patches/optional-hot-corner.patch
index e6a8dab..aa2e9b0 100644
--- a/debian/patches/optional-hot-corner.patch
+++ b/debian/patches/optional-hot-corner.patch
@@ -33,10 +33,10 @@ index 63a1903..8ec1d26 100644
        <default>[ 'epiphany.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]</default>
        <summary>List of desktop file IDs for favorite applications</summary>
 diff --git a/js/ui/layout.js b/js/ui/layout.js
-index 6f81039..3d53bd4 100644
+index e615e56..fa21ef8 100644
 --- a/js/ui/layout.js
 +++ b/js/ui/layout.js
-@@ -268,6 +268,9 @@ var LayoutManager = new Lang.Class({
+@@ -269,6 +269,9 @@ var LayoutManager = new Lang.Class({
          this._backgroundGroup.lower_bottom();
          this._bgManagers = [];
  
@@ -46,7 +46,7 @@ index 6f81039..3d53bd4 100644
          // Need to update struts on new workspaces when they are added
          global.screen.connect('notify::n-workspaces',
                                this._queueUpdateRegions.bind(this));
-@@ -364,6 +367,11 @@ var LayoutManager = new Lang.Class({
+@@ -365,6 +368,11 @@ var LayoutManager = new Lang.Class({
          });
          this.hotCorners = [];
  
diff --git a/debian/patches/popupMenu-Don-t-handle-key-presses-directly-if-there-are-.patch b/debian/patches/popupMenu-Don-t-handle-key-presses-directly-if-there-are-.patch
deleted file mode 100644
index 5690583..0000000
--- a/debian/patches/popupMenu-Don-t-handle-key-presses-directly-if-there-are-.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From: Andrea Azzarone <andrea.azzar...@canonical.com>
-Date: Thu, 21 Jun 2018 16:40:43 +0000
-Subject: popupMenu: Don't handle key presses directly if there are modifiers
-
-Key events involved in a keyboard shortcut are not completely consumed by
-Mutter. That means that if the popupMenu is bound to a shortcut (e.g.
-Alt<Space>) and the user keeps the keys pressed, the same key-event will be
-delivered to the popupMenu. We can workaround this issue filtering out all the
-events where a a modifier is down (except capslock).
-
-Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/372
-
-(cherry picked from commit 2e90c5fa4b35ebe26c694223966834ee949cfce3)
-
-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1784671
-Bug-GNOME: https://gitlab.gnome.org/GNOME/gnome-shell/issues/372
-Applied-Upstream: 3.28.4, commit:https://gitlab.gnome.org/GNOME/gnome-shell/commit/445eed40
----
- js/ui/popupMenu.js | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js
-index 83194d7..f449d6e 100644
---- a/js/ui/popupMenu.js
-+++ b/js/ui/popupMenu.js
-@@ -141,8 +141,17 @@ var PopupBaseMenuItem = new Lang.Class({
-     },
- 
-     _onKeyPressEvent(actor, event) {
--        let symbol = event.get_key_symbol();
-+        let state = event.get_state();
- 
-+        // if user has a modifier down (except capslock)
-+        // then don't handle the key press here
-+        state &= ~Clutter.ModifierType.LOCK_MASK;
-+        state &= Clutter.ModifierType.MODIFIER_MASK;
-+
-+        if (state)
-+            return Clutter.EVENT_PROPAGATE;
-+
-+        let symbol = event.get_key_symbol();
-         if (symbol == Clutter.KEY_space || symbol == Clutter.KEY_Return) {
-             this.activate(event);
-             return Clutter.EVENT_STOP;
diff --git a/debian/patches/power-Label-the-PENDING_CHARGE-state-as-Not-Charging.patch b/debian/patches/power-Label-the-PENDING_CHARGE-state-as-Not-Charging.patch
new file mode 100644
index 0000000..dda7a0e
--- /dev/null
+++ b/debian/patches/power-Label-the-PENDING_CHARGE-state-as-Not-Charging.patch
@@ -0,0 +1,36 @@
+From: =?utf-8?q?Jo=C3=A3o_Paulo_Rechi_Vita?= <jprv...@endlessm.com>
+Date: Fri, 2 Nov 2018 13:51:33 -0700
+Subject: power: Label the PENDING_CHARGE state as "Not Charging"
+
+The pending-charge state means AC power is on but the battery is not
+being charged. This can happen because its charge is above a certain
+threshold, to avoid short charging cycles and prolong the battery's
+life, or because the PSU is not powerful enough to charge the batteries.
+
+Instead of lying to the user about something being estimated, we should
+simply tell the truth and set the label to "Not Charging".
+
+Closes: #701.
+
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1745032
+Bug-GNOME: https://gitlab.gnome.org/GNOME/gnome-shell/issues/701
+Origin: https://gitlab.gnome.org/GNOME/gnome-shell/commit/52c59ac0dd7ddbe064
+---
+ js/ui/status/power.js | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/js/ui/status/power.js b/js/ui/status/power.js
+index a2bfd75..bfd0de5 100644
+--- a/js/ui/status/power.js
++++ b/js/ui/status/power.js
+@@ -79,7 +79,9 @@ var Indicator = new Lang.Class({
+             seconds = this._proxy.TimeToFull;
+         else if (this._proxy.State == UPower.DeviceState.DISCHARGING)
+             seconds = this._proxy.TimeToEmpty;
+-        // state is one of PENDING_CHARGING, PENDING_DISCHARGING
++        else if (this._proxy.State == UPower.DeviceState.PENDING_CHARGE)
++            return _("Not Charging");
++        // state is PENDING_DISCHARGE
+         else
+             return _("Estimating…");
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 50a4a68..ecbfbcc 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -12,17 +12,13 @@ ubuntu_gdm_alternatives.patch
 ubuntu_block_mode_extension_update.patch
 volume-Add-back-sound-feedback-on-scroll.patch
 workaround_crasher_fractional_scaling.patch
-shell-ignore-invalid-window-monitor-index.patch
 StIcon-only-compute-shadow-pipeline-when-the-texture-is-p.patch
 js-fix-invalid-access-errors.patch
-workspace-fix-repositioned-windows-in-activities.patch
 st-texture-cache-Cancel-sliced-image-loading-on-target-ac.patch
 js-ui-Choose-some-actors-to-cache-on-the-GPU.patch
-authPrompt-Unset-preemptiveAnswer-on-reset.patch
-authPrompt-Do-not-enable-sensitivity-if-retries-are-disal.patch
-gdm-util-Always-allow-to-retry-login-in-unlock-mode.patch
-popupMenu-Don-t-handle-key-presses-directly-if-there-are-.patch
-st-button-Ignore-pointer-emulated-touch-events.patch
 st-scroll-view-Handle-the-case-where-scrollbars-are-NULL.patch
 st-scroll-view-Remove-scrollbars-references-on-dispose.patch
-ibus-set-content-type-no-holdKeyboard.patch
+ibusManager-Don-t-pass-undefined-callback-to-ibus.patch
+keyboard-Filter-redundant-FocusTracker-position-changed-s.patch
+keyboard-Listen-to-IbusPanelService-focus-in-out-to-track.patch
+power-Label-the-PENDING_CHARGE-state-as-Not-Charging.patch
diff --git a/debian/patches/shell-ignore-invalid-window-monitor-index.patch b/debian/patches/shell-ignore-invalid-window-monitor-index.patch
deleted file mode 100644
index 4d223de..0000000
--- a/debian/patches/shell-ignore-invalid-window-monitor-index.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From: Sam Spilsbury <s...@endlessm.com>
-Date: Wed, 11 Oct 2017 05:42:04 -0500
-Subject: shell: ignore invalid window monitor index
-
-windowMenu: Check if monitorIndex is valid before using it
-
-Calling meta_window_get_monitor on an unmanaged window may return
--1, so we need to check the return value.
-
-Fixes https://bugzilla.gnome.org/show_bug.cgi?id=788882
-
-keyboard: Handle case where keyboardMonitor is unset
-
-This may be the case where keyboardIndex is -1, which may be the
-case where either the keyboard monitor hasn't been set yet, or
-the keyboard is being unmanaged and meta_window_get_monitor
-returns -1
-
-https://bugzilla.gnome.org/show_bug.cgi?id=788882
-
-layout: Remove focusMonitor, as it is unused
-
-It also uses focusIndex to determine which monitor to
-return and may occassionally return undefined if focusIndex
-was -1.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=788882
-
-Bug-GNOME: https://bugzilla.gnome.org/show_bug.cgi?id=788882
-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1724439
-Forwarded: yes
----
- js/ui/keyboard.js   | 8 ++++++++
- js/ui/layout.js     | 4 ----
- js/ui/windowMenu.js | 7 ++++---
- 3 files changed, 12 insertions(+), 7 deletions(-)
-
-diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
-index 5fcdf98..dd47676 100644
---- a/js/ui/keyboard.js
-+++ b/js/ui/keyboard.js
-@@ -919,6 +919,12 @@ var Keyboard = new Lang.Class({
-         if (this.actor == null)
-             return;
-         let monitor = Main.layoutManager.keyboardMonitor;
-+
-+        // monitor may be null here if the underlying keyboard monitor
-+        // index was still unset.
-+        if (!monitor)
-+            return;
-+
-         let maxHeight = monitor.height / 3;
-         this.actor.width = monitor.width;
-         this.actor.height = maxHeight;
-@@ -981,6 +987,8 @@ var Keyboard = new Lang.Class({
-         if (!this._enabled)
-             return;
- 
-+       
-+
-         this._clearShowIdle();
-         this._keyboardRequested = true;
- 
-diff --git a/js/ui/layout.js b/js/ui/layout.js
-index 3d53bd4..cf0dad0 100644
---- a/js/ui/layout.js
-+++ b/js/ui/layout.js
-@@ -564,10 +564,6 @@ var LayoutManager = new Lang.Class({
-         return i;
-     },
- 
--    get focusMonitor() {
--        return this.monitors[this.focusIndex];
--    },
--
-     set keyboardIndex(v) {
-         this._keyboardIndex = v;
-         this._updateKeyboardBox();
-diff --git a/js/ui/windowMenu.js b/js/ui/windowMenu.js
-index f0e564b..9bd7d19 100644
---- a/js/ui/windowMenu.js
-+++ b/js/ui/windowMenu.js
-@@ -128,11 +128,12 @@ var WindowMenu = new Lang.Class({
- 
-         let screen = global.screen;
-         let nMonitors = screen.get_n_monitors();
--        if (nMonitors > 1) {
-+        let monitorIndex = window.get_monitor();
-+        // meta_window_get_monitor can return -1, so handle that case
-+        // appropriately.
-+        if (nMonitors > 1 && monitorIndex >= 0) {
-             this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
- 
--            let monitorIndex = window.get_monitor();
--
-             let dir = Meta.ScreenDirection.UP;
-             let upMonitorIndex =
-                 screen.get_monitor_neighbor_index(monitorIndex, dir);
diff --git a/debian/patches/st-button-Ignore-pointer-emulated-touch-events.patch b/debian/patches/st-button-Ignore-pointer-emulated-touch-events.patch
deleted file mode 100644
index 538bb17..0000000
--- a/debian/patches/st-button-Ignore-pointer-emulated-touch-events.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <m...@3v1n0.net>
-Date: Thu, 25 Oct 2018 06:35:25 +0200
-Subject: st-button: Ignore pointer emulated touch events
-
-In X11, pointer emulated touch events are replicated with normal PRESS, RELEASE
-pair events which are generated by the server. Thus for a single tap we get:
- - TOUCH_BEGIN -> TOUCH_END, PRESS -> RELEASE
-
-This will cause st-button to send two "clicked" signals, instead of just one,
-breaking extensions (like dash-to-dock) that show buttons in the main stage
-which will be checked two times or that will receive the same signal two times.
-
-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1745888
-Forwarded: yes, https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/272
----
- src/st/st-button.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/src/st/st-button.c b/src/st/st-button.c
-index 8f5c492..a3a7b24 100644
---- a/src/st/st-button.c
-+++ b/src/st/st-button.c
-@@ -248,14 +248,17 @@ st_button_touch_event (ClutterActor      *actor,
-   if (event->type == CLUTTER_TOUCH_BEGIN && !priv->press_sequence)
-     {
-       clutter_input_device_sequence_grab (device, sequence, actor);
--      st_button_press (button, device, 0, sequence);
-+      if (!clutter_event_is_pointer_emulated ((ClutterEvent*) event))
-+        st_button_press (button, device, 0, sequence);
-       return CLUTTER_EVENT_STOP;
-     }
-   else if (event->type == CLUTTER_TOUCH_END &&
-            priv->device == device &&
-            priv->press_sequence == sequence)
-     {
--      st_button_release (button, device, mask, 0, sequence);
-+      if (!clutter_event_is_pointer_emulated ((ClutterEvent*) event))
-+        st_button_release (button, device, mask, 0, sequence);
-+
-       clutter_input_device_sequence_ungrab (device, sequence);
-       return CLUTTER_EVENT_STOP;
-     }
diff --git a/debian/patches/st-texture-cache-Cancel-sliced-image-loading-on-target-ac.patch b/debian/patches/st-texture-cache-Cancel-sliced-image-loading-on-target-ac.patch
index caa3adc..3a7d44e 100644
--- a/debian/patches/st-texture-cache-Cancel-sliced-image-loading-on-target-ac.patch
+++ b/debian/patches/st-texture-cache-Cancel-sliced-image-loading-on-target-ac.patch
@@ -1,5 +1,5 @@
 From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <m...@3v1n0.net>
-Date: Wed, 29 Nov 2017 19:48:02 -0600
+Date: Thu, 30 Nov 2017 02:48:02 +0100
 Subject: st-texture-cache: Cancel sliced image loading on target actor
  destroy
 
@@ -19,7 +19,7 @@ Forwarded: yes, https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/5
  1 file changed, 26 insertions(+), 4 deletions(-)
 
 diff --git a/src/st/st-texture-cache.c b/src/st/st-texture-cache.c
-index 0c794a3..c39464e 100644
+index 6219071..fc81189 100644
 --- a/src/st/st-texture-cache.c
 +++ b/src/st/st-texture-cache.c
 @@ -1027,6 +1027,7 @@ typedef struct {
diff --git a/debian/patches/volume-Add-back-sound-feedback-on-scroll.patch b/debian/patches/volume-Add-back-sound-feedback-on-scroll.patch
index f6ea268..51c731d 100644
--- a/debian/patches/volume-Add-back-sound-feedback-on-scroll.patch
+++ b/debian/patches/volume-Add-back-sound-feedback-on-scroll.patch
@@ -1,5 +1,5 @@
 From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuell...@gnome.org>
-Date: Fri, 23 Feb 2018 16:58:22 -0600
+Date: Fri, 23 Feb 2018 23:58:22 +0100
 Subject: volume: Add back sound feedback on scroll
 
 Commit 8d4855f1008 accidentally removed the volume change feedback
@@ -34,8 +34,8 @@ Bug-GNOME: https://gitlab.gnome.org/GNOME/gnome-shell/issues/53
 Forwarded: yes, https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/51
 ---
  js/ui/slider.js        |  2 --
- js/ui/status/volume.js | 19 ++++++++++++++++++-
- 2 files changed, 18 insertions(+), 3 deletions(-)
+ js/ui/status/volume.js | 20 +++++++++++++++++++-
+ 2 files changed, 19 insertions(+), 3 deletions(-)
 
 diff --git a/js/ui/slider.js b/js/ui/slider.js
 index 9853929..30295b4 100644
@@ -52,18 +52,20 @@ index 9853929..30295b4 100644
          }
          return Clutter.EVENT_PROPAGATE;
 diff --git a/js/ui/status/volume.js b/js/ui/status/volume.js
-index 65c4c42..c0f9cf3 100644
+index 65c4c42..de5f188 100644
 --- a/js/ui/status/volume.js
 +++ b/js/ui/status/volume.js
-@@ -4,6 +4,7 @@ const Clutter = imports.gi.Clutter;
+@@ -3,7 +3,9 @@
+ const Clutter = imports.gi.Clutter;
  const Lang = imports.lang;
  const Gio = imports.gi.Gio;
++const GLib = imports.gi.GLib;
  const Gvc = imports.gi.Gvc;
 +const Mainloop = imports.mainloop;
  const St = imports.gi.St;
  const Signals = imports.signals;
  
-@@ -36,9 +37,16 @@ var StreamSlider = new Lang.Class({
+@@ -36,9 +38,16 @@ var StreamSlider = new Lang.Class({
  
          this.item = new PopupMenu.PopupBaseMenuItem({ activate: false });
  
@@ -81,7 +83,7 @@ index 65c4c42..c0f9cf3 100644
  
          this._icon = new St.Icon({ style_class: 'popup-menu-icon' });
          this.item.actor.add(this._icon);
-@@ -135,6 +143,7 @@ var StreamSlider = new Lang.Class({
+@@ -135,6 +144,7 @@ var StreamSlider = new Lang.Class({
  
          let volume = value * this._get_control_max_volume();
          let prevMuted = this._stream.is_muted;
@@ -89,7 +91,7 @@ index 65c4c42..c0f9cf3 100644
          if (volume < 1) {
              this._stream.volume = 0;
              if (!prevMuted)
-@@ -145,6 +154,14 @@ var StreamSlider = new Lang.Class({
+@@ -145,6 +155,14 @@ var StreamSlider = new Lang.Class({
                  this._stream.change_is_muted(false);
          }
          this._stream.push_volume();
diff --git a/debian/patches/workaround_crasher_fractional_scaling.patch b/debian/patches/workaround_crasher_fractional_scaling.patch
index 7c3636d..4b76dc0 100644
--- a/debian/patches/workaround_crasher_fractional_scaling.patch
+++ b/debian/patches/workaround_crasher_fractional_scaling.patch
@@ -12,10 +12,10 @@ Bug: https://bugzilla.gnome.org/show_bug.cgi?id=788316
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/st/st-theme-node-drawing.c b/src/st/st-theme-node-drawing.c
-index 8942966..e57ca65 100644
+index 0637d97..7342c6c 100644
 --- a/src/st/st-theme-node-drawing.c
 +++ b/src/st/st-theme-node-drawing.c
-@@ -2505,7 +2505,7 @@ st_theme_node_paint (StThemeNode           *node,
+@@ -2531,7 +2531,7 @@ st_theme_node_paint (StThemeNode           *node,
    allocation.x2 = width;
    allocation.y2 = height;
  
diff --git a/debian/patches/workspace-fix-repositioned-windows-in-activities.patch b/debian/patches/workspace-fix-repositioned-windows-in-activities.patch
deleted file mode 100644
index 7da103a..0000000
--- a/debian/patches/workspace-fix-repositioned-windows-in-activities.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <m...@3v1n0.net>
-Date: Fri, 19 Jan 2018 08:00:10 -0600
-Subject: workspace: fix repositioned windows in activities
-
-workspace: Recompute bounding box on window 'position-changed'
-
-We need to update the clone position if window size changed
-also, rename meta window 'size-changed' callback accordingly.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=792681
-
-workspaceThumbnail: Sync clone position changes with actor
-
-We need to update the clone position if window actor (not the meta window)
-position changed.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=792681
-
-Bug-GNOME: https://bugzilla.gnome.org/show_bug.cgi?id=776588
-Bug-Ubuntu: https://bugs.launchpad.net/gnome-shell/+bug/1653153
-Forwarded: yes, https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/8
----
- js/ui/workspace.js          | 25 +++++++++++++------------
- js/ui/workspaceThumbnail.js |  7 +++----
- 2 files changed, 16 insertions(+), 16 deletions(-)
-
-diff --git a/js/ui/workspace.js b/js/ui/workspace.js
-index 8b56932..112c54e 100644
---- a/js/ui/workspace.js
-+++ b/js/ui/workspace.js
-@@ -137,8 +137,10 @@ var WindowClone = new Lang.Class({
-         this._dragSlot = [0, 0, 0, 0];
-         this._stackAbove = null;
- 
--        this._windowClone._updateId = this.metaWindow.connect('size-changed',
--            this._onRealWindowSizeChanged.bind(this));
-+        this._windowClone._sizeChangedId = this.metaWindow.connect('size-changed',
-+            this._onMetaWindowSizeChanged.bind(this));
-+        this._windowClone._posChangedId = this.metaWindow.connect('position-changed',
-+            this._computeBoundingBox.bind(this));
-         this._windowClone._destroyId =
-             this.realWindow.connect('destroy', () => {
-                 // First destroy the clone and then destroy everything
-@@ -206,8 +208,7 @@ var WindowClone = new Lang.Class({
- 
-     addAttachedDialog(win) {
-         this._doAddAttachedDialog(win, win.get_compositor_private());
--        this._computeBoundingBox();
--        this.emit('size-changed');
-+        this._onMetaWindowSizeChanged();
-     },
- 
-     hasAttachedDialogs() {
-@@ -216,15 +217,14 @@ var WindowClone = new Lang.Class({
- 
-     _doAddAttachedDialog(metaWin, realWin) {
-         let clone = new Clutter.Clone({ source: realWin });
--        clone._updateId = metaWin.connect('size-changed', () => {
--            this._computeBoundingBox();
--            this.emit('size-changed');
--        });
-+        clone._sizeChangedId = metaWin.connect('size-changed',
-+            this._onMetaWindowSizeChanged.bind(this));
-+        clone._posChangedId = metaWin.connect('position-changed',
-+            this._onMetaWindowSizeChanged.bind(this));
-         clone._destroyId = realWin.connect('destroy', () => {
-             clone.destroy();
- 
--            this._computeBoundingBox();
--            this.emit('size-changed');
-+            this._onMetaWindowSizeChanged();
-         });
-         this.actor.add_child(clone);
-     },
-@@ -321,12 +321,13 @@ var WindowClone = new Lang.Class({
-             else
-                 realWindow = child.source;
- 
--            realWindow.meta_window.disconnect(child._updateId);
-+            realWindow.meta_window.disconnect(child._sizeChangedId);
-+            realWindow.meta_window.disconnect(child._posChangedId);
-             realWindow.disconnect(child._destroyId);
-         });
-     },
- 
--    _onRealWindowSizeChanged() {
-+    _onMetaWindowSizeChanged() {
-         this._computeBoundingBox();
-         this.emit('size-changed');
-     },
-diff --git a/js/ui/workspaceThumbnail.js b/js/ui/workspaceThumbnail.js
-index 381169e..417296d 100644
---- a/js/ui/workspaceThumbnail.js
-+++ b/js/ui/workspaceThumbnail.js
-@@ -68,7 +68,7 @@ var WindowClone = new Lang.Class({
-         this.realWindow = realWindow;
-         this.metaWindow = realWindow.meta_window;
- 
--        this.clone._updateId = this.metaWindow.connect('position-changed',
-+        this.clone._updateId = this.realWindow.connect('notify::position',
-                                                        this._onPositionChanged.bind(this));
-         this.clone._destroyId = this.realWindow.connect('destroy', () => {
-             // First destroy the clone and then destroy everything
-@@ -153,7 +153,7 @@ var WindowClone = new Lang.Class({
-         let clone = new Clutter.Clone({ source: realDialog });
-         this._updateDialogPosition(realDialog, clone);
- 
--        clone._updateId = metaDialog.connect('position-changed', dialog => {
-+        clone._updateId = realDialog.connect('notify::position', dialog => {
-             this._updateDialogPosition(dialog, clone);
-         });
-         clone._destroyId = realDialog.connect('destroy', () => {
-@@ -171,7 +171,6 @@ var WindowClone = new Lang.Class({
-     },
- 
-     _onPositionChanged() {
--        let rect = this.metaWindow.get_frame_rect();
-         this.actor.set_position(this.realWindow.x, this.realWindow.y);
-     },
- 
-@@ -179,7 +178,7 @@ var WindowClone = new Lang.Class({
-         this.actor.get_children().forEach(child => {
-             let realWindow = child.source;
- 
--            realWindow.meta_window.disconnect(child._updateId);
-+            realWindow.disconnect(child._updateId);
-             realWindow.disconnect(child._destroyId);
-         });
-     },
-- 
ubuntu-desktop mailing list
ubuntu-desktop@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-desktop

Reply via email to