wrong hunk included

Change-Id: I5fbeea83393e811cdf333f3cf456cbd6cc2f9d6c
This commit is contained in:
Caolán McNamara
2016-06-09 17:40:13 +01:00
parent f89b9d8b80
commit ffbd964769

View File

@@ -1440,11 +1440,15 @@ void GtkSalFrame::Show( bool bVisible, bool bNoActivate )
m_nFloats++; m_nFloats++;
if( ! getDisplay()->GetCaptureFrame() && m_nFloats == 1 ) if( ! getDisplay()->GetCaptureFrame() && m_nFloats == 1 )
{ {
GdkDeviceManager* pDeviceManager = gdk_display_get_device_manager(getGdkDisplay()); GtkWidget* pGrabWidgetBeforeShowFloat;
GdkDevice* pPointer = gdk_device_manager_get_client_pointer(pDeviceManager); while ((pGrabWidgetBeforeShowFloat = gtk_grab_get_current()))
GdkDevice* pKeyboard = gdk_device_get_associated_device(pPointer); {
gtk_device_grab_add(m_pParent->getWindow(), pPointer, false); m_aGrabWidgetsBeforeShowFloat.push_back(pGrabWidgetBeforeShowFloat);
gtk_device_grab_add(m_pParent->getWindow(), pKeyboard, false); gtk_grab_remove(pGrabWidgetBeforeShowFloat);
}
grabPointer(true, true);
GtkSalFrame *pKeyboardFrame = m_pParent ? m_pParent : this;
pKeyboardFrame->grabKeyboard(true);
} }
// #i44068# reset parent's IM context // #i44068# reset parent's IM context
if( m_pParent ) if( m_pParent )
@@ -1460,11 +1464,12 @@ void GtkSalFrame::Show( bool bVisible, bool bNoActivate )
m_nFloats--; m_nFloats--;
if( ! getDisplay()->GetCaptureFrame() && m_nFloats == 0) if( ! getDisplay()->GetCaptureFrame() && m_nFloats == 0)
{ {
GdkDeviceManager* pDeviceManager = gdk_display_get_device_manager(getGdkDisplay()); GtkSalFrame *pKeyboardFrame = m_pParent ? m_pParent : this;
GdkDevice* pPointer = gdk_device_manager_get_client_pointer(pDeviceManager); pKeyboardFrame->grabKeyboard(false);
GdkDevice* pKeyboard = gdk_device_get_associated_device(pPointer); grabPointer(false);
gtk_device_grab_remove(m_pParent->getWindow(), pKeyboard); for (auto i = m_aGrabWidgetsBeforeShowFloat.rbegin(); i != m_aGrabWidgetsBeforeShowFloat.rend(); ++i)
gtk_device_grab_remove(m_pParent->getWindow(), pPointer); gtk_grab_add(*i);
m_aGrabWidgetsBeforeShowFloat.clear();
} }
} }
gtk_widget_hide( m_pWindow ); gtk_widget_hide( m_pWindow );