kit/Kit.cpp                                  |   42 +++++++++------------------
 loleaflet/src/control/Control.ContextMenu.js |    2 -
 loleaflet/src/control/Control.Menubar.js     |    6 +++
 loleaflet/unocommands.js                     |    4 ++
 4 files changed, 25 insertions(+), 29 deletions(-)

New commits:
commit 784e7a16453b7d7f4d86c79a4a8f470cc863dc7a
Author: Jan Holesovsky <ke...@collabora.com>
Date:   Fri Dec 15 11:51:46 2017 +0100

    Avoid an unnecessary buffer in the watermark code.
    
    Change-Id: I29b162fd9d8f43d0a2cb75853f0a3c0dc8ee92df
    Reviewed-on: https://gerrit.libreoffice.org/46527
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>
    Tested-by: Ashod Nakashian <ashnak...@gmail.com>

diff --git a/kit/Kit.cpp b/kit/Kit.cpp
index 5cb82801..193b8ccb 100644
--- a/kit/Kit.cpp
+++ b/kit/Kit.cpp
@@ -525,7 +525,7 @@ public:
     }
 
 private:
-    /// Alpha blend 'pixel_count' pixels from 'from' over the 'to'.
+    /// Alpha blend pixels from 'from' over the 'to'.
     void alphaBlend(const unsigned char* from, int from_width, int 
from_height, int from_offset_x, int from_offset_y,
             unsigned char* to, int to_width, int to_height)
     {
@@ -556,6 +556,7 @@ private:
             }
     }
 
+    /// Create bitmap that we later use as the watermark for every tile.
     const unsigned char* getPixmap(int width, int height)
     {
         if (_pixmap && width == _width && height == _height)
@@ -585,38 +586,24 @@ private:
         }
 
         const unsigned int pixel_count = width * height * 4;
-
-        // Create the blurred background; first a white text
         _pixmap = static_cast<unsigned char*>(malloc(pixel_count));
-        unsigned char* from = text;
-        unsigned char* to = _pixmap;
-        for (; to < _pixmap + pixel_count; from += 4, to += 4)
-        {
-            // Pre-multiplied alpha!
-            const double alpha = from[3] / 255.0;
-            to[0] = 0xff * alpha;
-            to[1] = 0xff * alpha;
-            to[2] = 0xff * alpha;
-            to[3] = from[3];
-        }
 
-        // Use box blur, which is fast, though crude.
-        unsigned char* buffer = static_cast<unsigned 
char*>(malloc(pixel_count));
-        memcpy(buffer, _pixmap, pixel_count);
-
-        // Repeat an even number of times to smooth out.
+        // Create the white blurred background
+        // Use box blur, it's enough for our purposes
         const int r = 2;
         const double weight = (r+1) * (r+1);
-        for (int y = r; y < height - r; ++y)
+        for (int y = 0; y < height; ++y)
         {
-            for (int x = r; x < width - r; ++x)
+            for (int x = 0; x < width; ++x)
             {
                 double t = 0;
-                for (int ky = y - r; ky <= y + r; ++ky)
+                for (int ky = std::max(y - r, 0); ky <= std::min(y + r, height 
- 1); ++ky)
                 {
-                    for (int kx = x - r; kx <= x + r; ++kx)
+                    for (int kx = std::max(x - r, 0); kx <= std::min(x + r, 
width - 1); ++kx)
                     {
-                        t += buffer[4 * (ky * width + kx) + 3];
+                        // Pre-multiplied alpha; the text is black, so all the
+                        // information is only in the alpha channel
+                        t += text[4 * (ky * width + kx) + 3];
                     }
                 }
 
@@ -624,19 +611,20 @@ private:
                 double avg = t / weight;
                 if (avg > 255.0)
                     avg = 255.0;
+
+                // Pre-multiplied alpha, but use white for the resulting color
                 const double alpha = avg / 255.0;
                 _pixmap[4 * (y * width + x) + 0] = 0xff * alpha;
                 _pixmap[4 * (y * width + x) + 1] = 0xff * alpha;
                 _pixmap[4 * (y * width + x) + 2] = 0xff * alpha;
-                _pixmap[4 * (y * width + x) + 3] = static_cast<unsigned 
char>(avg < 255.0 ? avg : 255);
+                _pixmap[4 * (y * width + x) + 3] = avg;
             }
         }
 
-        // Now copy text over the blur
+        // Now copy the (black) text over the (white) blur
         alphaBlend(text, _width, _height, 0, 0, _pixmap, _width, _height);
 
         // No longer needed.
-        std::free(buffer);
         std::free(text);
 
         // Make the resulting pixmap semi-transparent
commit ff0c7fb6445003c562179ca5b13f207ad21e68e5
Author: Pranav Kant <pran...@collabora.co.uk>
Date:   Thu Dec 14 20:48:03 2017 +0530

    lokdialog: Dialogs related to object and shapes in presentation
    
    Change-Id: If9a2e3d8bdbeab00397d2970f472602201991445
    Reviewed-on: https://gerrit.libreoffice.org/46463
    Reviewed-by: Jan Holesovsky <ke...@collabora.com>
    Tested-by: Jan Holesovsky <ke...@collabora.com>

diff --git a/loleaflet/src/control/Control.ContextMenu.js 
b/loleaflet/src/control/Control.ContextMenu.js
index e9006719..f49e924e 100644
--- a/loleaflet/src/control/Control.ContextMenu.js
+++ b/loleaflet/src/control/Control.ContextMenu.js
@@ -39,7 +39,7 @@ L.Control.ContextMenu = L.Control.extend({
 
                        spreadsheet: ['MergeCells', 'SplitCell', 
'RecalcPivotTable', 'FormatCellDialog'],
 
-                       presentation: ['EditStyle'],
+                       presentation: ['TransformDialog', 'FormatLine', 
'FormatArea'],
                        drawing: []
                }
                // UNOCOMMANDS_EXTRACT_END <- don't remove this line, it's used 
by unocommands.py
diff --git a/loleaflet/src/control/Control.Menubar.js 
b/loleaflet/src/control/Control.Menubar.js
index c15a286c..3af4925e 100644
--- a/loleaflet/src/control/Control.Menubar.js
+++ b/loleaflet/src/control/Control.Menubar.js
@@ -244,7 +244,11 @@ L.Control.Menubar = L.Control.extend({
                                {name: _UNO('.uno:InsertSymbol', 
'presentation'), id: 'specialcharacter', type: 'action'}]
                        },
                        {name: _UNO('.uno:FormatMenu', 'presentation'), type: 
'menu', menu: [
-                               {uno: '.uno:EditStyle'}
+                               {name: _UNO('.uno:FormatObjectMenu', 
'presentation'), type: 'menu', menu: [
+                                       {uno: '.uno:TransformDialog'},
+                                       {uno: '.uno:FormatLine'},
+                                       {uno: '.uno:FormatArea'}
+                               ]},
                        ]},
                        {name: _UNO('.uno:TableMenu', 'text'/*HACK should be 
'presentation', but not in xcu*/), type: 'menu', menu: [
                                {name: _UNO('.uno:TableInsertMenu', 
'text'/*HACK should be 'presentation', but not in xcu*/), type: 'menu', menu: [
diff --git a/loleaflet/unocommands.js b/loleaflet/unocommands.js
index e610559f..e0442f97 100644
--- a/loleaflet/unocommands.js
+++ b/loleaflet/unocommands.js
@@ -59,9 +59,12 @@ var unoCommandsArray = {
        FilterMenu:{spreadsheet:{menu:_('More ~Filters'),},},
        FontColor:{global:{menu:_('Font Color'),},text:{menu:_('Font 
Color'),},},
        FontDialog:{global:{menu:_('Character...'),},},
+       FormatArea:{global:{menu:_('A~rea...'),},},
        FormatBulletsMenu:{global:{menu:_('Lis~ts'),},},
        FormatCellDialog:{spreadsheet:{context:_('~Format 
Cells...'),menu:_('Ce~lls...'),},},
+       FormatLine:{global:{menu:_('L~ine...'),},},
        FormatMenu:{global:{menu:_('F~ormat'),},},
+       FormatObjectMenu:{global:{menu:_('~Object and 
Shape'),},text:{menu:_('Text Box and Shap~e'),},},
        FormatSpacingMenu:{global:{menu:_('~Spacing'),},},
        FormatTextMenu:{global:{menu:_('Te~xt'),},},
        FormattingMarkMenu:{global:{menu:_('Formatting Mark'),},},
@@ -196,6 +199,7 @@ var unoCommandsArray = {
        ToggleMergeCells:{spreadsheet:{menu:_('M~erge and Center Cells'),},},
        ToolsMenu:{global:{menu:_('~Tools'),},},
        TrackChanges:{text:{menu:_('~Record'),},},
+       TransformDialog:{global:{menu:_('Position and Si~ze...'),},},
        Underline:{global:{menu:_('Underline'),},},
        UnderlineDouble:{presentation:{menu:_('Double Underline 
'),},spreadsheet:{menu:_('Underline: Double'),},text:{menu:_('Double Underline 
'),},},
        Undo:{global:{menu:_('Undo'),},},
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to