From 23ebcca902781f2fa0f2381997be4f3d375385b5 Mon Sep 17 00:00:00 2001
From: qsm-odoo <qsm@odoo.com>
Date: Thu, 30 Dec 2021 11:35:18 +0000
Subject: [PATCH] [FIX] web, *: fix the grab cursor not working on all browsers

*: web_editor, point_of_sale, pos_restaurant

The grab cursor is currently not working on all browsers (at least
Chrome Linux). The fallback rule does not even work, meaning that if
you type:

```
cursor: move;
cursor: grab;
```

Those browsers does not even use "move" as they see "grab" as valid but
use the "default" cursor.

This commit replaces our "grab" uses with a local cursor ensuring it
works.

Related to task-2431469

closes odoo/odoo#82071

X-original-commit: c8e4e1e90322a652b01fa0eb1e6612b9c244f744
Related: odoo/enterprise#23182
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
---
 addons/point_of_sale/static/src/css/pos.css       |   8 ++------
 .../pos_restaurant/static/src/css/restaurant.css  |   5 +++--
 addons/web/static/src/img/openhand.cur            | Bin 0 -> 326 bytes
 addons/web/static/src/scss/utils.scss             |  10 ++++++++++
 .../static/src/scss/wysiwyg_snippets.scss         |   7 ++-----
 5 files changed, 17 insertions(+), 13 deletions(-)
 create mode 100644 addons/web/static/src/img/openhand.cur

diff --git a/addons/point_of_sale/static/src/css/pos.css b/addons/point_of_sale/static/src/css/pos.css
index b124326cbc2d..a3c790d4ad9a 100644
--- a/addons/point_of_sale/static/src/css/pos.css
+++ b/addons/point_of_sale/static/src/css/pos.css
@@ -2795,16 +2795,12 @@ td {
 }
 
 .drag-handle {
-    cursor: move; /* fallback if grab cursor is unsupported */
-    cursor: grab;
-    cursor: -moz-grab;
-    cursor: -webkit-grab;
+    /* See o-grab-cursor mixin */
+    cursor: url(/web/static/src/img/openhand.cur), grab;
 }
 
 .drag-handle:active {
     cursor: grabbing;
-    cursor: -moz-grabbing;
-    cursor: -webkit-grabbing;
 }
 
 
diff --git a/addons/pos_restaurant/static/src/css/restaurant.css b/addons/pos_restaurant/static/src/css/restaurant.css
index e29434733c33..e0a1fbbf40cc 100644
--- a/addons/pos_restaurant/static/src/css/restaurant.css
+++ b/addons/pos_restaurant/static/src/css/restaurant.css
@@ -13,7 +13,7 @@
 
 /* ------ FLOOR SELECTOR ------- */
 
-.floor-selector { 
+.floor-selector {
     line-height: 48px;
     font-size: 18px;
     display: -webkit-flex;
@@ -217,7 +217,8 @@
     border-radius: 24px;
     background: white;
     box-shadow: 0px 2px 3px rgba(0,0,0,0.2);
-    cursor: grab;
+    /* See o-grab-cursor mixin */
+    cursor: url(/web/static/src/img/openhand.cur), grab;
     transition: all 150ms linear;
     z-index: 100;
     transform: translate(-50%, -50%);
diff --git a/addons/web/static/src/img/openhand.cur b/addons/web/static/src/img/openhand.cur
new file mode 100644
index 0000000000000000000000000000000000000000..fba3ddc807fd2e29b41d09af0b14d6db6bdb879c
GIT binary patch
literal 326
zcmbu(u?@m75QX92i6U1h9TF8ODcJzFVFXGt0;3=b>Wq?t0aBq9D39kj1vQ-Y*=OHL
zXDA3XO+ln$A7Bmatg)j7uQ`?@<wbs(cS&Ej-_mk`Bw9VfHhIIr&UTtyd%@~qci7yr
j(B^sm!(TB*DH*IUr7j6lYa~cl>la<+x_h6sG+m?*Z%Tfs

literal 0
HcmV?d00001

diff --git a/addons/web/static/src/scss/utils.scss b/addons/web/static/src/scss/utils.scss
index 0fcca801719f..6fca017ebea2 100644
--- a/addons/web/static/src/scss/utils.scss
+++ b/addons/web/static/src/scss/utils.scss
@@ -169,6 +169,16 @@
     -moz-transform: scale(0.9999); // Smooth the caret on firefox
 }
 
+//-------------------------------------------------------------------
+// Cursor
+//-------------------------------------------------------------------
+
+@mixin o-grab-cursor() {
+    // Use a custom cursor for the open hand icon as "grab" is not properly
+    // working on Chrome Linux (at least)
+    cursor: url(/web/static/src/img/openhand.cur), grab;
+}
+
 // ------------------------------------------------------------------
 // Hovering effects
 // ------------------------------------------------------------------
diff --git a/addons/web_editor/static/src/scss/wysiwyg_snippets.scss b/addons/web_editor/static/src/scss/wysiwyg_snippets.scss
index 336a5baebbce..018a0ee952d5 100644
--- a/addons/web_editor/static/src/scss/wysiwyg_snippets.scss
+++ b/addons/web_editor/static/src/scss/wysiwyg_snippets.scss
@@ -398,10 +398,7 @@ body.editor_enable.editor_has_snippets {
                 border-left: $o-we-sidebar-blocks-content-snippet-spacing solid transparent;
                 margin-bottom: $o-we-sidebar-blocks-content-snippet-spacing;
                 user-select: none;
-
-                cursor: pointer;
-                cursor: copy;
-                cursor: grab;
+                @include o-grab-cursor;
 
                 .oe_snippet_thumbnail_title {
                     display: block;
@@ -1772,7 +1769,7 @@ body.editor_enable.editor_has_snippets {
             z-index: auto;
 
             .o_we_overlay_content {
-                cursor: grab;
+                @include o-grab-cursor;
 
                 .o_we_grabbing {
                     cursor: grabbing;
-- 
GitLab