enter/leave actions work!
This commit is contained in:
parent
559a0c67a7
commit
73f7a0bd69
3 changed files with 20 additions and 29 deletions
|
@ -13,7 +13,7 @@ namespace ob {
|
||||||
const unsigned int OBActions::DOUBLECLICKDELAY = 300;
|
const unsigned int OBActions::DOUBLECLICKDELAY = 300;
|
||||||
|
|
||||||
OBActions::OBActions()
|
OBActions::OBActions()
|
||||||
: _button(0), _enter_win(0)
|
: _button(0)
|
||||||
{
|
{
|
||||||
|
|
||||||
// XXX: load a configuration out of somewhere
|
// XXX: load a configuration out of somewhere
|
||||||
|
@ -28,6 +28,8 @@ OBActions::~OBActions()
|
||||||
|
|
||||||
void OBActions::buttonPressHandler(const XButtonEvent &e)
|
void OBActions::buttonPressHandler(const XButtonEvent &e)
|
||||||
{
|
{
|
||||||
|
OtkEventHandler::buttonPressHandler(e);
|
||||||
|
|
||||||
// XXX: run the PRESS guile hook
|
// XXX: run the PRESS guile hook
|
||||||
printf("GUILE: PRESS: win %lx modifiers %u button %u time %lx\n",
|
printf("GUILE: PRESS: win %lx modifiers %u button %u time %lx\n",
|
||||||
(long)e.window, e.state, e.button, e.time);
|
(long)e.window, e.state, e.button, e.time);
|
||||||
|
@ -40,6 +42,8 @@ void OBActions::buttonPressHandler(const XButtonEvent &e)
|
||||||
|
|
||||||
void OBActions::buttonReleaseHandler(const XButtonEvent &e)
|
void OBActions::buttonReleaseHandler(const XButtonEvent &e)
|
||||||
{
|
{
|
||||||
|
OtkEventHandler::buttonReleaseHandler(e);
|
||||||
|
|
||||||
// XXX: run the RELEASE guile hook
|
// XXX: run the RELEASE guile hook
|
||||||
printf("GUILE: RELEASE: win %lx modifiers %u button %u time %lx\n",
|
printf("GUILE: RELEASE: win %lx modifiers %u button %u time %lx\n",
|
||||||
(long)e.window, e.state, e.button, e.time);
|
(long)e.window, e.state, e.button, e.time);
|
||||||
|
@ -82,24 +86,21 @@ void OBActions::buttonReleaseHandler(const XButtonEvent &e)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBActions::enter(Window win, unsigned int modifiers)
|
void OBActions::enterHandler(const XCrossingEvent &e)
|
||||||
{
|
{
|
||||||
_enter_win = win;
|
OtkEventHandler::enterHandler(e);
|
||||||
|
|
||||||
(void)modifiers;
|
|
||||||
// XXX: run the ENTER guile hook
|
// XXX: run the ENTER guile hook
|
||||||
printf("GUILE: ENTER: win %lx modifiers %u\n", (long)win, modifiers);
|
printf("GUILE: ENTER: win %lx modifiers %u\n", (long)e.window, e.state);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBActions::leave(unsigned int modifiers)
|
void OBActions::leaveHandler(const XCrossingEvent &e)
|
||||||
{
|
{
|
||||||
(void)modifiers;
|
OtkEventHandler::leaveHandler(e);
|
||||||
// XXX: run the LEAVE guile hook
|
|
||||||
printf("GUILE: LEAVE: win %lx modifiers %u\n", (long)_enter_win, modifiers);
|
|
||||||
|
|
||||||
_enter_win = 0;
|
// XXX: run the LEAVE guile hook
|
||||||
|
printf("GUILE: LEAVE: win %lx modifiers %u\n", (long)e.window, e.state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -35,8 +35,6 @@ private:
|
||||||
MouseButtonAction _release;
|
MouseButtonAction _release;
|
||||||
//! The mouse button currently being watched from a press for a CLICK
|
//! The mouse button currently being watched from a press for a CLICK
|
||||||
unsigned int _button;
|
unsigned int _button;
|
||||||
//! The window the last enter action occured on (where the mouse is located)
|
|
||||||
Window _enter_win;
|
|
||||||
|
|
||||||
void insertPress(Window win, unsigned int button, Time time);
|
void insertPress(Window win, unsigned int button, Time time);
|
||||||
|
|
||||||
|
@ -47,21 +45,8 @@ public:
|
||||||
virtual void buttonPressHandler(const XButtonEvent &e);
|
virtual void buttonPressHandler(const XButtonEvent &e);
|
||||||
virtual void buttonReleaseHandler(const XButtonEvent &e);
|
virtual void buttonReleaseHandler(const XButtonEvent &e);
|
||||||
|
|
||||||
|
virtual void enterHandler(const XCrossingEvent &e);
|
||||||
|
virtual void leaveHandler(const XCrossingEvent &e);
|
||||||
|
|
||||||
//! Notify that a mouse enter action has occured on a window.
|
|
||||||
/*!
|
|
||||||
@param win The window on which the action was performed.
|
|
||||||
@param modifiers The modifier state for the action.
|
|
||||||
*/
|
|
||||||
void enter(Window win, unsigned int modifiers);
|
|
||||||
|
|
||||||
//! Notify that a mouse leave action has occured on a window.
|
|
||||||
/*!
|
|
||||||
@param modifiers The modifier state for the action.
|
|
||||||
*/
|
|
||||||
void leave(unsigned int modifiers);
|
|
||||||
|
|
||||||
//! Notify that a mouse drag is taking place.
|
//! Notify that a mouse drag is taking place.
|
||||||
/*!
|
/*!
|
||||||
|
|
|
@ -30,6 +30,11 @@ namespace ob {
|
||||||
client are sent to the window manager.
|
client are sent to the window manager.
|
||||||
*/
|
*/
|
||||||
class OBFrame : public otk::OtkWidget {
|
class OBFrame : public otk::OtkWidget {
|
||||||
|
public:
|
||||||
|
|
||||||
|
//! The event mask to grab on frame windows
|
||||||
|
static const long event_mask = EnterWindowMask | LeaveWindowMask;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
OBClient *_client;
|
OBClient *_client;
|
||||||
const otk::ScreenInfo *_screen;
|
const otk::ScreenInfo *_screen;
|
||||||
|
|
Loading…
Reference in a new issue