diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-02-15 11:06:33 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-02-15 15:07:34 +0100 |
commit | 5c89695f3885ec2e7cd00eaf56a46a7f00c44883 (patch) | |
tree | dd9e584c20959d567e74a2caa8077cbe722fef47 /vcl | |
parent | 760100d1dfe0df3e67227618013297e5f1f419aa (diff) |
tdf#140414 add getting mouse pos to EditViewCallbacks
Change-Id: I09172e0cb24f5c45d2837cf2f2fc7cc4baa456a4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110932
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/salvtables.hxx | 2 | ||||
-rw-r--r-- | vcl/source/app/salvtables.cxx | 5 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 11 |
3 files changed, 18 insertions, 0 deletions
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 3e09d2b12f0d..11aab8917f7e 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -1148,6 +1148,8 @@ public: virtual void set_cursor(PointerStyle ePointerStyle) override; + virtual Point get_pointer_position() const override; + virtual void set_input_context(const InputContext& rInputContext) override; virtual void im_context_set_cursor_location(const tools::Rectangle& rCursorRect, diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 867781476a18..21c3e206fa88 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -5968,6 +5968,11 @@ Point SalInstanceDrawingArea::get_accessible_location() return m_xDrawingArea->OutputToAbsoluteScreenPixel(Point()); } +Point SalInstanceDrawingArea::get_pointer_position() const +{ + return m_xDrawingArea->GetPointerPosPixel(); +} + void SalInstanceDrawingArea::enable_drag_source(rtl::Reference<TransferDataContainer>& rHelper, sal_uInt8 eDNDConstants) { diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 2091c41d4135..8f0754d4325e 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -13893,6 +13893,17 @@ public: gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(m_pDrawingArea)), pCursor); } + virtual Point get_pointer_position() const override + { + GdkDisplay *pDisplay = gtk_widget_get_display(m_pWidget); + GdkSeat* pSeat = gdk_display_get_default_seat(pDisplay); + GdkDevice* pPointer = gdk_seat_get_pointer(pSeat); + gint x(-1), y(-1); + GdkWindow* pWin = gtk_widget_get_window(m_pWidget); + gdk_window_get_device_position(pWin, pPointer, &x, &y, nullptr); + return Point(x, y); + } + virtual void set_input_context(const InputContext& rInputContext) override; virtual void im_context_set_cursor_location(const tools::Rectangle& rCursorRect, int nExtTextInputWidth) override; |