diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2021-05-21 17:24:17 +0200 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2021-07-19 13:51:00 +0200 |
commit | 35c4cc15f1cb02b437bc9cd6dd5593aae2b86042 (patch) | |
tree | a8e63740862018edb6abacaaca31bdf0964b437f | |
parent | 6b018077789797490786f854fd725a4955715d6f (diff) |
jsdialog: send action event on show/hide
This fixes non working comboboxes in the sidebar in online.
Where we simulate picking from the list.
Change-Id: Ie78e461b2bce7fa0ccd68731e76d0c721242b98e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116097
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119155
Tested-by: Jenkins
-rw-r--r-- | vcl/inc/jsdialog/jsdialogbuilder.hxx | 11 | ||||
-rw-r--r-- | vcl/jsdialog/jsdialogbuilder.cxx | 4 |
2 files changed, 11 insertions, 4 deletions
diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index a677fc31696f..32781712cc0f 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -28,6 +28,8 @@ #include <list> #include <unordered_map> +#define ACTION_TYPE "action_type" + class ToolBox; class ComboBox; class VclMultiLineEdit; @@ -304,13 +306,17 @@ public: virtual void show() override { BaseInstanceClass::show(); - sendFullUpdate(); + std::unique_ptr<ActionDataMap> pMap = std::make_unique<ActionDataMap>(); + (*pMap)[ACTION_TYPE] = "show"; + sendAction(std::move(pMap)); } virtual void hide() override { BaseInstanceClass::hide(); - sendFullUpdate(); + std::unique_ptr<ActionDataMap> pMap = std::make_unique<ActionDataMap>(); + (*pMap)[ACTION_TYPE] = "hide"; + sendAction(std::move(pMap)); } using BaseInstanceClass::set_sensitive; @@ -424,6 +430,7 @@ public: virtual void remove(int pos) override; virtual void set_entry_text(const OUString& rText) override; virtual void set_active(int pos) override; + virtual bool changed_by_direct_pick() const override; }; class JSNotebook final : public JSWidget<SalInstanceNotebook, ::TabControl> diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index 143815341aae..3b7f84ca6b95 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -27,8 +27,6 @@ #include <cppuhelper/supportsservice.hxx> #include <utility> -#define ACTION_TYPE "action_type" - namespace { void response_help(vcl::Window* pWindow) @@ -952,6 +950,8 @@ void JSComboBox::set_active(int pos) sendUpdate(); } +bool JSComboBox::changed_by_direct_pick() const { return true; } + JSNotebook::JSNotebook(JSDialogSender* pSender, ::TabControl* pControl, SalInstanceBuilder* pBuilder, bool bTakeOwnership) : JSWidget<SalInstanceNotebook, ::TabControl>(pSender, pControl, pBuilder, bTakeOwnership) |