Add ungrabButton to Xcb::Window
The order of attributes is reversed compared to xcb_ungrab_button to better allow for default arguments.
This commit is contained in:
parent
3ee886be2d
commit
f354b41680
2 changed files with 13 additions and 4 deletions
|
@ -927,8 +927,7 @@ void Client::ungrabButton(int modifier)
|
||||||
for (int i = 0;
|
for (int i = 0;
|
||||||
i < 8;
|
i < 8;
|
||||||
++i)
|
++i)
|
||||||
XUngrabButton(display(), AnyButton,
|
m_wrapper.ungrabButton(modifier | mods[ i ]);
|
||||||
modifier | mods[ i ], wrapperId());
|
|
||||||
}
|
}
|
||||||
#undef XCapL
|
#undef XCapL
|
||||||
#undef XNumL
|
#undef XNumL
|
||||||
|
@ -943,7 +942,7 @@ void Client::ungrabButton(int modifier)
|
||||||
void Client::updateMouseGrab()
|
void Client::updateMouseGrab()
|
||||||
{
|
{
|
||||||
if (workspace()->globalShortcutsDisabled()) {
|
if (workspace()->globalShortcutsDisabled()) {
|
||||||
XUngrabButton(display(), AnyButton, AnyModifier, wrapperId());
|
m_wrapper.ungrabButton();
|
||||||
// keep grab for the simple click without modifiers if needed (see below)
|
// keep grab for the simple click without modifiers if needed (see below)
|
||||||
bool not_obscured = workspace()->topClientOnDesktop(VirtualDesktopManager::self()->current(), -1, true, false) == this;
|
bool not_obscured = workspace()->topClientOnDesktop(VirtualDesktopManager::self()->current(), -1, true, false) == this;
|
||||||
if (!(!options->isClickRaise() || not_obscured))
|
if (!(!options->isClickRaise() || not_obscured))
|
||||||
|
@ -969,7 +968,7 @@ void Client::updateMouseGrab()
|
||||||
ungrabButton(ControlMask);
|
ungrabButton(ControlMask);
|
||||||
ungrabButton(ControlMask | ShiftMask);
|
ungrabButton(ControlMask | ShiftMask);
|
||||||
} else {
|
} else {
|
||||||
XUngrabButton(display(), AnyButton, AnyModifier, wrapperId());
|
m_wrapper.ungrabButton();
|
||||||
// simply grab all modifier combinations
|
// simply grab all modifier combinations
|
||||||
XGrabButton(display(), AnyButton, AnyModifier, wrapperId(), false,
|
XGrabButton(display(), AnyButton, AnyModifier, wrapperId(), false,
|
||||||
ButtonPressMask,
|
ButtonPressMask,
|
||||||
|
|
10
xcbutils.h
10
xcbutils.h
|
@ -438,6 +438,7 @@ public:
|
||||||
void reparent(xcb_window_t parent, int x = 0, int y = 0);
|
void reparent(xcb_window_t parent, int x = 0, int y = 0);
|
||||||
void deleteProperty(xcb_atom_t property);
|
void deleteProperty(xcb_atom_t property);
|
||||||
void setBorderWidth(uint32_t width);
|
void setBorderWidth(uint32_t width);
|
||||||
|
void ungrabButton(uint16_t modifiers = XCB_MOD_MASK_ANY, uint8_t button = XCB_BUTTON_INDEX_ANY);
|
||||||
/**
|
/**
|
||||||
* Clears the window area. Same as xcb_clear_area with x, y, width, height being @c 0.
|
* Clears the window area. Same as xcb_clear_area with x, y, width, height being @c 0.
|
||||||
**/
|
**/
|
||||||
|
@ -643,6 +644,15 @@ void Window::setBorderWidth(uint32_t width)
|
||||||
xcb_configure_window(connection(), m_window, XCB_CONFIG_WINDOW_BORDER_WIDTH, &width);
|
xcb_configure_window(connection(), m_window, XCB_CONFIG_WINDOW_BORDER_WIDTH, &width);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
void Window::ungrabButton(uint16_t modifiers, uint8_t button)
|
||||||
|
{
|
||||||
|
if (!isValid()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
xcb_ungrab_button(connection(), button, m_window, modifiers);
|
||||||
|
}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
void Window::clear()
|
void Window::clear()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue