[Libreoffice-commits] core.git: 2 commits - vcl/source vcl/unx
Caolán McNamara
caolanm at redhat.com
Mon Nov 30 08:44:02 PST 2015
vcl/source/window/seleng.cxx | 2 +-
vcl/source/window/toolbox.cxx | 6 ++++--
vcl/source/window/toolbox2.cxx | 6 ++++--
vcl/unx/gtk/gtksalframe.cxx | 14 ++++++++++++--
4 files changed, 21 insertions(+), 7 deletions(-)
New commits:
commit 503864037b2f6b73979f46d11df5d365b81f9dcf
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Nov 30 16:42:15 2015 +0000
gtk3: implement GetIndicatorState
Change-Id: I006c739a9dc876dd9ec83375f76fd1343b39557a
diff --git a/vcl/unx/gtk/gtksalframe.cxx b/vcl/unx/gtk/gtksalframe.cxx
index b465404..64994bf 100644
--- a/vcl/unx/gtk/gtksalframe.cxx
+++ b/vcl/unx/gtk/gtksalframe.cxx
@@ -2770,8 +2770,18 @@ KeyIndicatorState GtkSalFrame::GetIndicatorState()
#if !GTK_CHECK_VERSION(3,0,0)
return GetGtkSalData()->GetGtkDisplay()->GetIndicatorState();
#else
- g_warning ("missing get indicator state");
- return KeyIndicatorState::NONE;
+ KeyIndicatorState nState = KeyIndicatorState::NONE;
+
+ GdkKeymap *pKeyMap = gdk_keymap_get_for_display(getGdkDisplay());
+
+ if (gdk_keymap_get_caps_lock_state(pKeyMap))
+ nState |= KeyIndicatorState::CAPSLOCK;
+ if (gdk_keymap_get_num_lock_state(pKeyMap))
+ nState |= KeyIndicatorState::NUMLOCK;
+ if (gdk_keymap_get_scroll_lock_state(pKeyMap))
+ nState |= KeyIndicatorState::SCROLLLOCK;
+
+ return nState;
#endif
}
commit a4e58b509828d806513217efc03134845629cccd
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Nov 30 16:18:35 2015 +0000
silence ReleaseMouse warning
Change-Id: I615b4877ab29075ed45149259260acfb2563cad8
diff --git a/vcl/source/window/seleng.cxx b/vcl/source/window/seleng.cxx
index 69b220b..6aefea1 100644
--- a/vcl/source/window/seleng.cxx
+++ b/vcl/source/window/seleng.cxx
@@ -280,7 +280,7 @@ bool SelectionEngine::SelMouseButtonUp( const MouseEvent& rMEvt )
void SelectionEngine::ReleaseMouse()
{
- if (!pWin)
+ if (!pWin || !pWin->IsMouseCaptured())
return;
pWin->ReleaseMouse();
}
diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index 4105b58..311d12e 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -1251,7 +1251,8 @@ void ImplTBDragMgr::Dragging( const Point& rPos )
void ImplTBDragMgr::EndDragging( bool bOK )
{
mpDragBox->HideTracking();
- mpDragBox->ReleaseMouse();
+ if (mpDragBox->IsMouseCaptured())
+ mpDragBox->ReleaseMouse();
mpDragBox->mbDragging = false;
mbShowDragRect = false;
Application::RemoveAccel( &maAccel );
@@ -3346,7 +3347,8 @@ void ToolBox::ImplFloatControl( bool bStart, FloatingWindow* pFloatWindow )
mbDrag = false;
EndTracking();
- ReleaseMouse();
+ if (IsMouseCaptured())
+ ReleaseMouse();
}
else
{
diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx
index dddb65f..2bcb44e 100644
--- a/vcl/source/window/toolbox2.cxx
+++ b/vcl/source/window/toolbox2.cxx
@@ -1335,7 +1335,8 @@ void ToolBox::EndSelection()
if (mnCurPos != TOOLBOX_ITEM_NOTFOUND)
InvalidateItem(mnCurPos);
EndTracking();
- ReleaseMouse();
+ if (IsMouseCaptured())
+ ReleaseMouse();
Deactivate();
}
@@ -1378,7 +1379,8 @@ void ToolBox::SetItemDown( sal_uInt16 nItemId, bool bDown, bool bRelease )
mbDrag = false;
mbSelection = false;
EndTracking();
- ReleaseMouse();
+ if (IsMouseCaptured())
+ ReleaseMouse();
Deactivate();
}
More information about the Libreoffice-commits
mailing list