[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