buttons press!
This commit is contained in:
parent
c88451f0c1
commit
f898314662
2 changed files with 61 additions and 1 deletions
57
src/frame.cc
57
src/frame.cc
|
@ -58,7 +58,8 @@ Frame::Frame(Client *client)
|
||||||
_desk_press(false),
|
_desk_press(false),
|
||||||
_iconify_press(false),
|
_iconify_press(false),
|
||||||
_icon_press(false),
|
_icon_press(false),
|
||||||
_close_press(false)
|
_close_press(false),
|
||||||
|
_press_button(0)
|
||||||
{
|
{
|
||||||
assert(client);
|
assert(client);
|
||||||
|
|
||||||
|
@ -156,6 +157,60 @@ void Frame::hide()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Frame::buttonPressHandler(const XButtonEvent &e)
|
||||||
|
{
|
||||||
|
if (_press_button) return;
|
||||||
|
_press_button = e.button;
|
||||||
|
|
||||||
|
if (e.window == _max) {
|
||||||
|
_max_press = true;
|
||||||
|
renderMax();
|
||||||
|
}
|
||||||
|
if (e.window == _close) {
|
||||||
|
_close_press = true;
|
||||||
|
renderClose();
|
||||||
|
}
|
||||||
|
if (e.window == _desk) {
|
||||||
|
_desk_press = true;
|
||||||
|
renderDesk();
|
||||||
|
}
|
||||||
|
if (e.window == _iconify) {
|
||||||
|
_iconify_press = true;
|
||||||
|
renderIconify();
|
||||||
|
}
|
||||||
|
if (e.window == _icon) {
|
||||||
|
_icon_press = true;
|
||||||
|
renderIcon();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Frame::buttonReleaseHandler(const XButtonEvent &e)
|
||||||
|
{
|
||||||
|
if (e.button != _press_button) return;
|
||||||
|
_press_button = 0;
|
||||||
|
|
||||||
|
if (e.window == _max) {
|
||||||
|
_max_press = false;
|
||||||
|
renderMax();
|
||||||
|
}
|
||||||
|
if (e.window == _close) {
|
||||||
|
_close_press = false;
|
||||||
|
renderClose();
|
||||||
|
}
|
||||||
|
if (e.window == _desk) {
|
||||||
|
_desk_press = false;
|
||||||
|
renderDesk();
|
||||||
|
}
|
||||||
|
if (e.window == _iconify) {
|
||||||
|
_iconify_press = false;
|
||||||
|
renderIconify();
|
||||||
|
}
|
||||||
|
if (e.window == _icon) {
|
||||||
|
_icon_press = false;
|
||||||
|
renderIcon();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
MouseContext::MC Frame::mouseContext(Window win) const
|
MouseContext::MC Frame::mouseContext(Window win) const
|
||||||
{
|
{
|
||||||
if (win == _frame) return MouseContext::Frame;
|
if (win == _frame) return MouseContext::Frame;
|
||||||
|
|
|
@ -94,11 +94,13 @@ private:
|
||||||
otk::Surface *_close_sur;
|
otk::Surface *_close_sur;
|
||||||
|
|
||||||
std::string _layout; // layout of the titlebar
|
std::string _layout; // layout of the titlebar
|
||||||
|
|
||||||
bool _max_press;
|
bool _max_press;
|
||||||
bool _desk_press;
|
bool _desk_press;
|
||||||
bool _iconify_press;
|
bool _iconify_press;
|
||||||
bool _icon_press;
|
bool _icon_press;
|
||||||
bool _close_press;
|
bool _close_press;
|
||||||
|
unsigned int _press_button; // mouse button that started the press
|
||||||
|
|
||||||
FrameGeometry geom;
|
FrameGeometry geom;
|
||||||
|
|
||||||
|
@ -168,6 +170,9 @@ public:
|
||||||
//! Hides the frame
|
//! Hides the frame
|
||||||
void hide();
|
void hide();
|
||||||
|
|
||||||
|
void buttonPressHandler(const XButtonEvent &e);
|
||||||
|
void buttonReleaseHandler(const XButtonEvent &e);
|
||||||
|
|
||||||
//! Returns the MouseContext for the given window id
|
//! Returns the MouseContext for the given window id
|
||||||
/*!
|
/*!
|
||||||
Returns '-1' if no valid mouse context exists in the frame for the given
|
Returns '-1' if no valid mouse context exists in the frame for the given
|
||||||
|
|
Loading…
Reference in a new issue