[Libreoffice-commits] online.git: loleaflet/src

Dennis Francis (via logerrit) logerrit at kemper.freedesktop.org
Mon Feb 10 11:07:31 UTC 2020


 loleaflet/src/control/Control.Toolbar.js |   35 +++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

New commits:
commit a43c8c304dc7580982f374d7360ea0c408333bcf
Author:     Dennis Francis <dennis.francis at collabora.com>
AuthorDate: Thu Feb 6 14:36:57 2020 +0530
Commit:     Jan Holesovsky <kendy at collabora.com>
CommitDate: Mon Feb 10 12:07:13 2020 +0100

    Use the correct align statechange messages...
    
    from core to control the state of toolbar's align
    buttons (based on the current selection type).
    
    Change-Id: I1c4c4ce1776091c05196d7c8257ea59f8248284a
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/88160
    Tested-by: Jan Holesovsky <kendy at collabora.com>
    Reviewed-by: Jan Holesovsky <kendy at collabora.com>

diff --git a/loleaflet/src/control/Control.Toolbar.js b/loleaflet/src/control/Control.Toolbar.js
index 6c718af9b..536c9c09c 100644
--- a/loleaflet/src/control/Control.Toolbar.js
+++ b/loleaflet/src/control/Control.Toolbar.js
@@ -1279,6 +1279,11 @@ function updateToolbarItem(toolbar, id, html) {
 function unoCmdToToolbarId(commandname)
 {
 	var id = commandname.toLowerCase().substr(5);
+	var selectionType = 'text';
+
+	if (map._clip && map._clip._selectionType)
+		selectionType = map._clip._selectionType;
+
 	if (map.getDocType() === 'spreadsheet') {
 		switch (id) {
 		case 'alignleft':
@@ -1292,6 +1297,32 @@ function unoCmdToToolbarId(commandname)
 			break;
 		}
 	}
+	else if (selectionType == 'complex') {
+
+		// ignore the text align state messages.
+		if (id === 'leftpara' || id === 'rightpara' ||
+			id === 'centerpara') {
+			id = '';
+		}
+
+		// convert the object align statemessages to align button ids.
+		switch (id) {
+		case 'objectalignleft':
+			id = 'leftpara';
+			break;
+		case 'aligncenter':
+			id = 'centerpara';
+			break;
+		case 'objectalignright':
+			id = 'rightpara';
+			break;
+		}
+	}
+	else if (id === 'objectalignleft' || id === 'aligncenter' ||
+		id === 'objectalignright') {
+		// selectionType is 'text', so ignore object align state messages.
+		id = '';
+	}
 	return id;
 }
 
@@ -1979,6 +2010,10 @@ function onCommandStateChanged(e) {
 	}
 
 	var id = unoCmdToToolbarId(commandName);
+	// id is set to '' by unoCmdToToolbarId() if the statechange message should be ignored.
+	if (id === '')
+		return;
+
 	if (state === 'true') {
 		if (map._permission === 'edit') {
 			toolbar.enable(id);


More information about the Libreoffice-commits mailing list