jenkins-bot has submitted this change and it was merged.

Change subject: Handle showHandles smartness in AlignableNode
......................................................................


Handle showHandles smartness in AlignableNode

When an alignable changes alignment, only show relevant
resize handles.

Change-Id: Ib80cde7fd28cd83dc4916affd18bae8681146e48
---
M src/ce/ve.ce.AlignableNode.js
M src/ce/ve.ce.ResizableNode.js
2 files changed, 33 insertions(+), 1 deletion(-)

Approvals:
  Catrope: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/src/ce/ve.ce.AlignableNode.js b/src/ce/ve.ce.AlignableNode.js
index ab642f7..94af427 100644
--- a/src/ce/ve.ce.AlignableNode.js
+++ b/src/ce/ve.ce.AlignableNode.js
@@ -26,6 +26,13 @@
 
 OO.initClass( ve.ce.AlignableNode );
 
+/* Events */
+
+/**
+ * @event align
+ * @param {string} align New alignment
+ */
+
 /**
  * Handle attribute change events
  *
@@ -43,6 +50,7 @@
                if ( to && cssClasses[to] ) {
                        this.$alignable.addClass( cssClasses[to] );
                }
+               this.emit( 'align', to );
        }
 };
 
@@ -54,5 +62,6 @@
                cssClasses = this.model.constructor.static.cssClasses;
        if ( align && cssClasses[align] ) {
                this.$alignable.addClass( cssClasses[align] );
+               this.emit( 'align', align );
        }
 };
diff --git a/src/ce/ve.ce.ResizableNode.js b/src/ce/ve.ce.ResizableNode.js
index d14092d..33c3856 100644
--- a/src/ce/ve.ce.ResizableNode.js
+++ b/src/ce/ve.ce.ResizableNode.js
@@ -44,7 +44,8 @@
                teardown: 'onResizableTeardown',
                resizing: 'onResizableResizing',
                resizeEnd: 'onResizableFocus',
-               rerender: 'onResizableFocus'
+               rerender: 'onResizableFocus',
+               align: 'onResizableAlign'
        } );
        this.model.connect( this, {
                attributeChange: 'onResizableAttributeChange'
@@ -267,6 +268,28 @@
 };
 
 /**
+ * Respond to AlignableNodes changing their alignment by hiding useless resize 
handles.
+ *
+ * @param {string} align Alignment
+ */
+ve.ce.ResizableNode.prototype.onResizableAlign = function ( align ) {
+       switch ( align ) {
+               case 'right':
+                       this.showHandles( ['sw'] );
+                       break;
+               case 'left':
+                       this.showHandles( ['se'] );
+                       break;
+               case 'center':
+                       this.showHandles( ['sw', 'se'] );
+                       break;
+               default:
+                       this.showHandles();
+                       break;
+       }
+};
+
+/**
  * Handle teardown event.
  *
  * @method

-- 
To view, visit https://gerrit.wikimedia.org/r/187321
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib80cde7fd28cd83dc4916affd18bae8681146e48
Gerrit-PatchSet: 7
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to