diff options
-rw-r--r-- | vcl/inc/jsdialog/jsdialogbuilder.hxx | 2 | ||||
-rw-r--r-- | vcl/jsdialog/executor.cxx | 11 | ||||
-rw-r--r-- | vcl/jsdialog/jsdialogbuilder.cxx | 5 |
3 files changed, 15 insertions, 3 deletions
diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index dc6e04c3eb4e..f632753d35b1 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -621,7 +621,7 @@ public: virtual void set_active(int pos) override; virtual bool changed_by_direct_pick() const override; - void render_entry(int pos); + void render_entry(int pos, int dpix, int dpiy); }; class JSNotebook final : public JSWidget<SalInstanceNotebook, ::TabControl> diff --git a/vcl/jsdialog/executor.cxx b/vcl/jsdialog/executor.cxx index 57a1c4db22d8..17c56d78e61e 100644 --- a/vcl/jsdialog/executor.cxx +++ b/vcl/jsdialog/executor.cxx @@ -133,7 +133,16 @@ bool ExecuteAction(const OUString& nWindowId, const OUString& rWidget, StringMap { auto pJSCombobox = dynamic_cast<JSComboBox*>(pWidget); if (pJSCombobox) - pJSCombobox->render_entry(o3tl::toInt32(rData["data"])); + { + // pos;dpix;dpiy + const OUString& sParams = rData["data"]; + const OUString aPos = sParams.getToken(0, ';'); + const OUString aDpiScaleX = sParams.getToken(1, ';'); + const OUString aDpiScaleY = sParams.getToken(2, ';'); + + pJSCombobox->render_entry(o3tl::toInt32(aPos), o3tl::toInt32(aDpiScaleX), + o3tl::toInt32(aDpiScaleY)); + } return true; } } diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index 8f7949c474ca..cd191d15a9d8 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -1664,9 +1664,12 @@ void JSComboBox::set_active(int pos) bool JSComboBox::changed_by_direct_pick() const { return true; } -void JSComboBox::render_entry(int pos) +void JSComboBox::render_entry(int pos, int dpix, int dpiy) { ScopedVclPtrInstance<VirtualDevice> pDevice(DeviceFormat::WITH_ALPHA); + pDevice->SetDPIX(96.0 * dpix / 100); + pDevice->SetDPIY(96.0 * dpiy / 100); + Size aRenderSize = signal_custom_get_size(*pDevice); pDevice->SetOutputSize(aRenderSize); |