[Libreoffice-commits] core.git: svx/source
Jim Raykowski (via logerrit)
logerrit at kemper.freedesktop.org
Mon May 20 22:07:39 UTC 2019
svx/source/tbxctrls/layctrl.cxx | 37 +++++++++++++++++++++++++++++++------
1 file changed, 31 insertions(+), 6 deletions(-)
New commits:
commit b26b6cab5d8147d35f76a21c333719c80840d08d
Author: Jim Raykowski <raykowj at gmail.com>
AuthorDate: Sat May 4 15:28:39 2019 -0800
Commit: Jim Raykowski <raykowj at gmail.com>
CommitDate: Tue May 21 00:06:50 2019 +0200
tdf#119775 Make keyboard use work for TableWindow popup window
This patch restores the ability to use the keyboard for the TableWindow
popup window by not including the 'More Options...' button when
activated by keyboard from a toolbox. It also limits handling of key
input to SPACE, RETURN, and ESCAPE key input when mouse activated.
Change-Id: I306bcb844a829ca7067b8496f37cb68f35fa754d
Reviewed-on: https://gerrit.libreoffice.org/71813
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj at gmail.com>
diff --git a/svx/source/tbxctrls/layctrl.cxx b/svx/source/tbxctrls/layctrl.cxx
index 0858cd211e18..4b9903819588 100644
--- a/svx/source/tbxctrls/layctrl.cxx
+++ b/svx/source/tbxctrls/layctrl.cxx
@@ -84,6 +84,7 @@ public:
virtual void MouseButtonUp( const MouseEvent& rMEvt ) override;
virtual void Paint( vcl::RenderContext& /*rRenderContext*/, const tools::Rectangle& ) override;
virtual void PopupModeEnd() override;
+ virtual bool EventNotify( NotifyEvent& rNEvt ) override;
private:
void Update( long nNewCol, long nNewLine );
@@ -137,13 +138,22 @@ TableWindow::TableWindow( sal_uInt16 nSlotId, vcl::Window* pParent, const OUStri
SetText( rText );
- aTableButton->SetPosSizePixel( Point( nTablePosX, mnTableHeight + 5 ),
- Size( mnTableWidth - nTablePosX, 24 ) );
- aTableButton->SetText( SvxResId( RID_SVXSTR_MORE ) );
- aTableButton->SetClickHdl( LINK( this, TableWindow, SelectHdl ) );
- aTableButton->Show();
+ // if parent window is a toolbox only display table button when mouse activated
+ ToolBox* pToolBox = nullptr;
+ if (pParent->GetType() == WindowType::TOOLBOX)
+ pToolBox = dynamic_cast<ToolBox*>( pParent );
+ if ( !pToolBox || !pToolBox->IsKeyEvent() )
+ {
+ aTableButton->SetPosSizePixel( Point( nTablePosX, mnTableHeight + 5 ),
+ Size( mnTableWidth - nTablePosX, 24 ) );
+ aTableButton->SetText( SvxResId( RID_SVXSTR_MORE ) );
+ aTableButton->SetClickHdl( LINK( this, TableWindow, SelectHdl ) );
+ aTableButton->Show();
- SetOutputSizePixel( Size( mnTableWidth + 3, mnTableHeight + 33 ) );
+ SetOutputSizePixel( Size( mnTableWidth + 3, mnTableHeight + 33 ) );
+ }
+ else
+ SetOutputSizePixel( Size( mnTableWidth + 3, mnTableHeight + 3 ) );
}
@@ -375,6 +385,21 @@ void TableWindow::CloseAndShowTableDialog()
TableDialog( Sequence< PropertyValue >() );
}
+bool TableWindow::EventNotify( NotifyEvent& rNEvt )
+{
+ // handle table button key input
+ if ( rNEvt.GetType() == MouseNotifyEvent::KEYINPUT )
+ {
+ const vcl::KeyCode& rKey = rNEvt.GetKeyEvent()->GetKeyCode();
+ const sal_uInt16 nCode = rKey.GetCode();
+ if ( nCode != KEY_RETURN && nCode != KEY_SPACE && nCode != KEY_ESCAPE )
+ {
+ return true;
+ }
+ }
+ return SfxPopupWindow::EventNotify( rNEvt );
+}
+
class ColumnsWindow : public SfxPopupWindow
{
private:
More information about the Libreoffice-commits
mailing list