summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-12-04 08:30:32 +0000
committerDana Jansens <danakj@orodu.net>2002-12-04 08:30:32 +0000
commit73f7a0bd69607663050f02acf121f40a739d9619 (patch)
treef706096249fb715d092f93701f62570b8367ef8e
parent559a0c67a7b26dd3cc88208db83fb4df6a031484 (diff)
enter/leave actions work!
-rw-r--r--src/actions.cc25
-rw-r--r--src/actions.hh19
-rw-r--r--src/frame.hh5
3 files changed, 20 insertions, 29 deletions
diff --git a/src/actions.cc b/src/actions.cc
index 6043ad0e..ec70b5b4 100644
--- a/src/actions.cc
+++ b/src/actions.cc
@@ -13,7 +13,7 @@ namespace ob {
const unsigned int OBActions::DOUBLECLICKDELAY = 300;
OBActions::OBActions()
- : _button(0), _enter_win(0)
+ : _button(0)
{
// XXX: load a configuration out of somewhere
@@ -28,6 +28,8 @@ OBActions::~OBActions()
void OBActions::buttonPressHandler(const XButtonEvent &e)
{
+ OtkEventHandler::buttonPressHandler(e);
+
// XXX: run the PRESS guile hook
printf("GUILE: PRESS: win %lx modifiers %u button %u time %lx\n",
(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)
{
+ OtkEventHandler::buttonReleaseHandler(e);
+
// XXX: run the RELEASE guile hook
printf("GUILE: RELEASE: win %lx modifiers %u button %u time %lx\n",
(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;
-
- (void)modifiers;
+ OtkEventHandler::enterHandler(e);
+
// 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;
- // XXX: run the LEAVE guile hook
- printf("GUILE: LEAVE: win %lx modifiers %u\n", (long)_enter_win, modifiers);
+ OtkEventHandler::leaveHandler(e);
- _enter_win = 0;
+ // XXX: run the LEAVE guile hook
+ printf("GUILE: LEAVE: win %lx modifiers %u\n", (long)e.window, e.state);
}
diff --git a/src/actions.hh b/src/actions.hh
index 35e8e313..09e76c4e 100644
--- a/src/actions.hh
+++ b/src/actions.hh
@@ -35,8 +35,6 @@ private:
MouseButtonAction _release;
//! The mouse button currently being watched from a press for a CLICK
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);
@@ -47,21 +45,8 @@ public:
virtual void buttonPressHandler(const XButtonEvent &e);
virtual void buttonReleaseHandler(const XButtonEvent &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);
+ virtual void enterHandler(const XCrossingEvent &e);
+ virtual void leaveHandler(const XCrossingEvent &e);
//! Notify that a mouse drag is taking place.
/*!
diff --git a/src/frame.hh b/src/frame.hh
index e1647a99..1816ad01 100644
--- a/src/frame.hh
+++ b/src/frame.hh
@@ -30,6 +30,11 @@ namespace ob {
client are sent to the window manager.
*/
class OBFrame : public otk::OtkWidget {
+public:
+
+ //! The event mask to grab on frame windows
+ static const long event_mask = EnterWindowMask | LeaveWindowMask;
+
private:
OBClient *_client;
const otk::ScreenInfo *_screen;