]> Dogcows Code - chaz/openbox/blobdiff - util/epist/epist.cc
handle events on the right screen
[chaz/openbox] / util / epist / epist.cc
index 76a64aeaf231b2fd4e1690715462b877e473dc09..bfa7989ce89462588ef83cfa02fc6412480c1cd2 100644 (file)
@@ -58,7 +58,7 @@ using std::string;
 
 epist::epist(char **argv, char *dpy_name, char *rc_file)
   : BaseDisplay(argv[0], dpy_name) {
-
+    
   _argv = argv;
 
   if (rc_file)
@@ -134,6 +134,22 @@ epist::epist(char **argv, char *dpy_name, char *rc_file)
                            XKeysymToKeycode(getXDisplay(),
                                              XStringToKeysym("Right")),
                            Mod1Mask | ControlMask, 1));
+  _actions.push_back(Action(Action::resizeWindowHeight,
+                           XKeysymToKeycode(getXDisplay(),
+                                             XStringToKeysym("Up")),
+                           ShiftMask | Mod1Mask | ControlMask, -1));
+  _actions.push_back(Action(Action::resizeWindowHeight,
+                           XKeysymToKeycode(getXDisplay(),
+                                             XStringToKeysym("Down")),
+                           ShiftMask | Mod1Mask | ControlMask, 1));
+  _actions.push_back(Action(Action::resizeWindowWidth,
+                           XKeysymToKeycode(getXDisplay(),
+                                             XStringToKeysym("Left")),
+                           ShiftMask | Mod1Mask | ControlMask, -1));
+  _actions.push_back(Action(Action::resizeWindowWidth,
+                           XKeysymToKeycode(getXDisplay(),
+                                             XStringToKeysym("Right")),
+                           ShiftMask | Mod1Mask | ControlMask, 1));
   _actions.push_back(Action(Action::iconify,
                            XKeysymToKeycode(getXDisplay(),
                                              XStringToKeysym("I")),
@@ -142,6 +158,18 @@ epist::epist(char **argv, char *dpy_name, char *rc_file)
                            XKeysymToKeycode(getXDisplay(),
                                              XStringToKeysym("O")),
                            Mod1Mask | ControlMask));
+  _actions.push_back(Action(Action::toggleMaximizeHorizontal,
+                           XKeysymToKeycode(getXDisplay(),
+                                             XStringToKeysym("X")),
+                           ShiftMask | Mod1Mask));
+  _actions.push_back(Action(Action::toggleMaximizeVertical,
+                           XKeysymToKeycode(getXDisplay(),
+                                             XStringToKeysym("X")),
+                           ShiftMask | ControlMask));
+  _actions.push_back(Action(Action::toggleMaximizeFull,
+                           XKeysymToKeycode(getXDisplay(),
+                                             XStringToKeysym("X")),
+                           Mod1Mask | ControlMask));
   _actions.push_back(Action(Action::changeWorkspace,
                            XKeysymToKeycode(getXDisplay(),
                                              XStringToKeysym("1")),
@@ -174,6 +202,11 @@ epist::epist(char **argv, char *dpy_name, char *rc_file)
                            XKeysymToKeycode(getXDisplay(),
                                              XStringToKeysym("4")),
                            Mod1Mask | ControlMask | ShiftMask, 3));
+  _actions.push_back(Action(Action::execute,
+                           XKeysymToKeycode(getXDisplay(),
+                                             XStringToKeysym("Escape")),
+                           Mod1Mask | ControlMask,
+                           "sleep 1 && xset dpms force off"));
   _actions.push_back(Action(Action::execute,
                            XKeysymToKeycode(getXDisplay(),
                                              XStringToKeysym("space")),
@@ -194,8 +227,7 @@ void epist::activateGrabs() {
     ActionList::const_iterator ait, end = _actions.end();
 
     for(ait = _actions.begin(); ait != end; ++ait) {
-      XGrabKey(getXDisplay(), ait->keycode(), ait->modifierMask(),
-               (*scrit)->rootWindow(), False, GrabModeAsync, GrabModeAsync);
+      (*scrit)->grabKey(ait->keycode(), ait->modifierMask());
     }
   }
 }
@@ -221,16 +253,9 @@ bool epist::handleSignal(int sig) {
 
 
 void epist::process_event(XEvent *e) {
-  Window root;
-
-  if (e->xany.type == KeyPress)
-    root = e->xkey.root;
-  else
-    root = e->xany.window;
-  
   ScreenList::const_iterator it, end = _screens.end();
   for (it = _screens.begin(); it != end; ++it) {
-    if ((*it)->rootWindow() == root) {
+    if ((*it)->rootWindow() == e->xany.window) {
       (*it)->processEvent(*e);
       return;
     }
This page took 0.023138 seconds and 4 git commands to generate.