Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
      Tag: branch-exp
        E.h actions.c config.c events.c ewins.c mod-misc.c pager.c 
        settings.c setup.c warp.c 


Log Message:
Warplist into module, cleanups.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.314.2.20
retrieving revision 1.314.2.21
diff -u -3 -r1.314.2.20 -r1.314.2.21
--- E.h 17 Aug 2004 22:46:59 -0000      1.314.2.20
+++ E.h 18 Aug 2004 21:10:45 -0000      1.314.2.21
@@ -1079,9 +1079,9 @@
    struct
    {
       char                enable;
-      char                warpsticky;
-      char                warpshaded;
-      char                warpiconified;
+      char                showsticky;
+      char                showshaded;
+      char                showiconified;
       char                warpfocused;
       char                raise_on_select;
       char                warp_on_select;
@@ -1301,7 +1301,9 @@
 void                AddAction(ActionClass * a, Action * act);
 int                 EventAclass(XEvent * ev, EWin * ewin, ActionClass * a);
 
-int                 ActionsCall(unsigned int type, EWin * ewin,
+void                ActionsSetFunction(unsigned int id,
+                                      int (*func) (EWin *, const char *));
+int                 ActionsCall(unsigned int id, EWin * ewin,
                                const char *params);
 int                 ActionsSuspend(void);
 int                 ActionsResume(void);
@@ -2213,12 +2215,6 @@
 void                DisablePagersForDesktop(int desk);
 Window              PagerGetWin(Pager * p);
 Window              PagerGetHiWin(Pager * p);
-void                PagerEventUnmap(Pager * p);
-int                 PagersEventMotion(XEvent * ev);
-int                 PagersEventMouseDown(XEvent * ev);
-int                 PagersEventMouseUp(XEvent * ev);
-int                 PagersEventMouseIn(XEvent * ev);
-int                 PagersEventMouseOut(XEvent * ev);
 
 /* progress.c */
 typedef struct _progressbar Progressbar;
@@ -2437,11 +2433,6 @@
                                      int x, int y, const char *text, Efont * f,
                                      Visual * vis, Colormap cm);
 
-/* warp.c */
-int                 WarpFocusHandleEvent(XEvent * event);
-void                WarpFocus(int delta);
-void                WarpFocusFinish(void);
-
 /* windowmatch.c */
 WindowMatch        *CreateWindowMatch(const char *name);
 char                TestWindowMatch(EWin * ewin, WindowMatch * b);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/actions.c,v
retrieving revision 1.174.2.6
retrieving revision 1.174.2.7
diff -u -3 -r1.174.2.6 -r1.174.2.7
--- actions.c   15 Aug 2004 10:00:18 -0000      1.174.2.6
+++ actions.c   18 Aug 2004 21:10:46 -0000      1.174.2.7
@@ -30,9 +30,10 @@
    char                ok_movres;
    char                hide_slideouts;
    int                 (*func) (EWin * ewin, const char *params);
-} ActionFunction;
+   int                 (*fext) (EWin * ewin, const char *params);
+} ActionItem;
 
-static ActionFunction ActionFunctions[ACTION_NUMBEROF];
+static ActionItem   ActionItems[ACTION_NUMBEROF];
 static char         mode_action_destroy = 0;
 
 ActionClass        *
@@ -324,15 +325,25 @@
    EDBUG_RETURN_;
 }
 
+void
+ActionsSetFunction(unsigned int id, int (*func) (EWin *, const char *))
+{
+   if (id >= ACTION_NUMBEROF)
+      return;
+
+   ActionItems[id].fext = func;
+}
+
 int
 ActionsCall(unsigned int id, EWin * ewin, const char *params)
 {
-   ActionFunction     *af;
+   ActionItem         *af;
+   int                 rc;
 
    if (id >= ACTION_NUMBEROF)
       return -1;
 
-   af = &ActionFunctions[id];
+   af = &ActionItems[id];
    if (!af->func)
       return -1;
 
@@ -365,6 +376,13 @@
           return 0;
      }
 
+   if (af->fext)
+     {
+       rc = af->fext(ewin, params);
+       if (rc)
+          return 0;
+     }
+
    return af->func(ewin, params);
 }
 
@@ -2509,16 +2527,11 @@
 /* Focus actions */
 
 static int
-doFocusNext(EWin * edummy, const char *params)
+doFocusNext(EWin * edummy __UNUSED__, const char *params __UNUSED__)
 {
    EDBUG(6, "doFocusNext");
-   if (Conf.warplist.enable && Mode.current_event->type == KeyPress)
-      WarpFocus(1);
-   else
-      FocusGetNextEwin();
+   FocusGetNextEwin();
    EDBUG_RETURN(0);
-   edummy = NULL;
-   params = NULL;
 }
 
 static int
@@ -3185,111 +3198,114 @@
    return 0;
 }
 
-static ActionFunction ActionFunctions[ACTION_NUMBEROF] = {
-   {0, 1, 1, 0, doNothing},    /* ACTION_NONE */
-   {0, 1, 1, 0, doExec},       /* ACTION_EXEC */
-   {0, 0, 0, 0, doAlert},      /* ACTION_ALERT */
-   {1, 0, 0, 1, doMove},       /* ACTION_MOVE */
-   {1, 0, 0, 1, doResize},     /* ACTION_RESIZE */
-   {1, 0, 0, 0, doRaise},      /* ACTION_RAISE */
-   {1, 0, 0, 0, doLower},      /* ACTION_LOWER */
-   {0, 0, 0, 0, doExit},       /* ACTION_EXIT */
-   {0, 0, 0, 1, doCleanup},    /* ACTION_CLEANUP */
-   {0, 1, 0, 0, spawnMenu},    /* ACTION_SHOW_MENU */
-   {0, 1, 1, 0, hideMenu},     /* ACTION_HIDE_MENU */
-   {1, 0, 0, 1, doResizeH},    /* ACTION_RESIZE_H */
-   {1, 0, 0, 1, doResizeV},    /* ACTION_RESIZE_V */
-   {1, 0, 0, 0, doKill},       /* ACTION_KILL */
-   {1, 0, 0, 0, doKillNasty},  /* ACTION_KILL_NASTY */
-   {0, 0, 1, 0, doNextDesktop},        /* ACTION_DESKTOP_NEXT */
-   {0, 0, 1, 0, doPrevDesktop},        /* ACTION_DESKTOP_PREV */
-   {0, 0, 0, 0, doRaiseDesktop},       /* ACTION_DESKTOP_RAISE */
-   {0, 0, 0, 0, doLowerDesktop},       /* ACTION_DESKTOP_LOWER */
-   {0, 0, 0, 0, doDragDesktop},        /* ACTION_DESKTOP_DRAG */
-   {1, 0, 0, 0, doStick},      /* ACTION_STICK */
-   {0, 0, 0, 0, doInplaceDesktop},     /* ACTION_DESKTOP_INPLACE */
-   {0, 0, 0, 0, doDragButtonStart},    /* ACTION_DRAG_BUTTON */
-   {0, 0, 0, 0, doFocusModeSet},       /* ACTION_FOCUSMODE_SET @@ */
-   {0, 0, 0, 0, doMoveModeSet},        /* ACTION_MOVEMODE_SET @@ */
-   {0, 0, 0, 0, doResizeModeSet},      /* ACTION_RESIZEMODE_SET @@ */
-   {0, 0, 0, 0, doSlideModeSet},       /* ACTION_SLIDEMODE_SET @@ */
-   {0, 0, 0, 0, doCleanupSlideSet},    /* ACTION_CLEANUPSILDE_SET @@ */
-   {0, 0, 0, 0, doMapSlideSet},        /* ACTION_MAPSLIDE_SET @@ */
-   {0, 0, 0, 0, NULL},         /* ACTION_SOUND_SET @@ */
-   {0, 0, 0, 0, doButtonMoveResistSet},        /* ACTION_BUTTONMOVE_RESIST_SET @@ */
-   {0, 0, 0, 0, doDesktopBgTimeoutSet},        /* ACTION_DESKTOPBG_TIMEOUT_SET @@ */
-   {0, 0, 0, 0, doMapSlideSpeedSet},   /* ACTION_MAPSLIDE_SPEED_SET @@ */
-   {0, 0, 0, 0, doCleanupSlideSpeedSet},       /* ACTION_CLEANUPSLIDE_SPEED_SET @@ */
-   {0, 0, 0, 0, doDragdirSet}, /* ACTION_DRAGDIR_SET @@ */
-   {0, 0, 0, 0, doDragbarOrderSet},    /* ACTION_DRAGBAR_ORDER_SET @@ */
-   {0, 0, 0, 0, doDragbarWidthSet},    /* ACTION_DRAGBAR_WIDTH_SET @@ */
-   {0, 0, 0, 0, doDragbarLengthSet},   /* ACTION_DRAGBAR_LENGTH_SET @@ */
-   {0, 0, 0, 0, doDeskSlideSet},       /* ACTION_DESKSLIDE_SET @@ */
-   {0, 0, 0, 0, doDeskSlideSpeedSet},  /* ACTION_DESKSLIDE_SPEED_SET @@ */
-   {0, 0, 0, 0, doHiQualityBgSet},     /* ACTION_HIQUALITYBG_SET @@ */
-   {0, 0, 0, 0, doPlaySoundClass},     /* ACTION_PLAYSOUNDCLASS */
-   {0, 0, 1, 0, doGotoDesktop},        /* ACTION_GOTO_DESK */
-   {0, 0, 0, 0, doDeskray},    /* ACTION_DESKRAY @@ */
-   {0, 0, 0, 0, doAutosaveSet},        /* ACTION_AUTOSAVE_SET @@ */
-   {0, 0, 0, 0, doHideShowButton},     /* ACTION_HIDESHOW_BUTTON */
-   {1, 0, 0, 0, doIconifyWindow},      /* ACTION_ICONIFY */
-   {0, 0, 0, 0, doSlideout},   /* ACTION_SLIDEOUT */
-   {0, 0, 0, 1, doScrollWindows},      /* ACTION_SCROLL_WINDOWS */
-   {1, 0, 0, 0, doShade},      /* ACTION_SHADE */
-   {1, 0, 0, 0, doMaxH},       /* ACTION_MAX_HEIGHT */
-   {1, 0, 0, 0, doMaxW},       /* ACTION_MAX_WIDTH */
-   {1, 0, 0, 0, doMax},                /* ACTION_MAX_SIZE */
-   {1, 0, 0, 0, doSendToNextDesk},     /* ACTION_SEND_TO_NEXT_DESK */
-   {1, 0, 0, 0, doSendToPrevDesk},     /* ACTION_SEND_TO_PREV_DESK */
-   {1, 0, 0, 0, doSnapshot},   /* ACTION_SNAPSHOT */
-   {0, 0, 0, 1, doScrollContainer},    /* ACTION_SCROLL_CONTAINER */
-   {0, 0, 0, 0, doToolTipSet}, /* ACTION_TOOLTIP_SET @@ */
-   {0, 0, 0, 0, doFocusNext},  /* ACTION_FOCUS_NEXT */
-   {0, 0, 0, 0, doFocusPrev},  /* ACTION_FOCUS_PREV */
-   {1, 0, 0, 0, doFocusSet},   /* ACTION_FOCUS_SET */
-   {0, 0, 0, 0, doBackgroundSet},      /* ACTION_BACKGROUND_SET */
-   {0, 0, 1, 0, doAreaSet},    /* ACTION_AREA_SET */
-   {0, 0, 1, 0, doAreaMoveBy}, /* ACTION_MOVE_BY */
-   {0, 0, 0, 0, doToggleFixedPos},     /* ACTION_TOGGLE_FIXED */
-   {1, 0, 0, 0, doSetLayer},   /* ACTION_SET_LAYER */
-   {0, 0, 0, 0, doWarpPointer},        /* ACTION_WARP_POINTER */
-   {1, 0, 0, 0, doMoveWinToArea},      /* ACTION_MOVE_WINDOW_TO_AREA */
-   {1, 0, 0, 0, doMoveWinByArea},      /* ACTION_MOVE_WINDOW_BY_AREA */
-   {1, 0, 0, 0, doSetWinBorder},       /* ACTION_SET_WINDOW_BORDER */
-   {0, 0, 1, 0, doLinearAreaSet},      /* ACTION_LINEAR_AREA_SET */
-   {0, 0, 1, 0, doLinearAreaMoveBy},   /* ACTION_LINEAR_MOVE_BY */
-   {0, 0, 0, 0, doAbout},      /* ACTION_ABOUT */
-   {0, 0, 0, 0, doFX},         /* ACTION_FX */
-   {1, 0, 0, 0, doMoveWinToLinearArea},        /* ACTION_MOVE_WINDOW_TO_LINEAR_AREA */
-   {1, 0, 0, 0, doMoveWinByArea},      /* ACTION_MOVE_WINDOW_BY_LINEAR_AREA */
-   {0, 0, 0, 0, doSetPagerHiq},        /* ACTION_SET_PAGER_HIQ */
-   {0, 0, 0, 0, doSetPagerSnap},       /* ACTION_SET_PAGER_SNAP */
-   {0, 0, 0, 0, doSettings},   /* ACTION_SETTINGS */
-   {1, 0, 0, 1, doMoveConstrained},    /* ACTION_MOVE_CONSTRAINED */
-   {0, 0, 0, 0, doInsertKeys}, /* ACTION_INSERT_KEYS */
-   {1, 0, 0, 0, doStartGroup}, /* ACTION_START_GROUP */
-   {1, 0, 0, 0, doAddToGroup}, /* ACTION_ADD_TO_GROUP */
-   {1, 0, 0, 0, doRemoveFromGroup},    /* ACTION_REMOVE_FROM_GROUP */
-   {1, 0, 0, 0, doBreakGroup}, /* ACTION_BREAK_GROUP */
-   {1, 0, 0, 0, doShowHideGroup},      /* ACTION_SHOW_HIDE_GROUP */
-   {0, 0, 0, 0, doCreateIconbox},      /* ACTION_CREATE_ICONBOX */
-   {1, 0, 0, 0, doRaiseLower}, /* ACTION_RAISE_LOWER */
-   {1, 1, 0, 1, doZoom},       /* ACTION_ZOOM */
-   {1, 0, 0, 0, doSetWinBorderNoGroup},        /* ACTION_SET_WINDOW_BORDER_NG */
-   {1, 0, 0, 0, doIconifyWindowNoGroup},       /* ACTION_ICONIFY_NG */
-   {1, 0, 0, 0, doKillNoGroup},        /* ACTION_KILL_NG */
-   {1, 0, 0, 1, doMoveNoGroup},        /* ACTION_MOVE_NG */
-   {1, 0, 0, 0, doRaiseNoGroup},       /* ACTION_RAISE_NG */
-   {1, 0, 0, 0, doLowerNoGroup},       /* ACTION_LOWER_NG */
-   {1, 0, 0, 0, doStickNoGroup},       /* ACTION_STICK_NG */
-   {1, 0, 0, 0, doShadeNoGroup},       /* ACTION_SHADE_NG */
-   {1, 0, 0, 0, doRaiseLowerNoGroup},  /* ACTION_RAISE_LOWER_NG */
-   {1, 0, 0, 0, doSkipFocus},  /* ACTION_SKIPFOCUS */
-   {1, 0, 0, 0, doSkipTask},   /* ACTION_SKIPTASK */
-   {1, 0, 0, 0, doSkipWinList},        /* ACTION_SKIPWINLIST */
-   {1, 0, 0, 0, doNeverFocus}, /* ACTION_NEVERFOCUS */
-   {1, 0, 0, 0, doSkipLists},  /* ACTION_SKIPLISTS */
-   {1, 0, 0, 1, doSwapMove},   /* ACTION_SWAPMOVE */
-   {1, 0, 0, 0, doFullscreen}, /* ACTION_FULLSCREEN */
-   {1, 0, 0, 0, doConfigSet}   /* ACTION_CONFIG_SET */
+#define ACTION_ITEM(need_ewin, ok_zoom, ok_movres, hide_slideouts, func) \
+    { need_ewin, ok_zoom, ok_movres, hide_slideouts, func, NULL }
+
+static ActionItem   ActionItems[ACTION_NUMBEROF] = {
+   ACTION_ITEM(0, 1, 1, 0, doNothing), /* ACTION_NONE */
+   ACTION_ITEM(0, 1, 1, 0, doExec),    /* ACTION_EXEC */
+   ACTION_ITEM(0, 0, 0, 0, doAlert),   /* ACTION_ALERT */
+   ACTION_ITEM(1, 0, 0, 1, doMove),    /* ACTION_MOVE */
+   ACTION_ITEM(1, 0, 0, 1, doResize),  /* ACTION_RESIZE */
+   ACTION_ITEM(1, 0, 0, 0, doRaise),   /* ACTION_RAISE */
+   ACTION_ITEM(1, 0, 0, 0, doLower),   /* ACTION_LOWER */
+   ACTION_ITEM(0, 0, 0, 0, doExit),    /* ACTION_EXIT */
+   ACTION_ITEM(0, 0, 0, 1, doCleanup), /* ACTION_CLEANUP */
+   ACTION_ITEM(0, 1, 0, 0, spawnMenu), /* ACTION_SHOW_MENU */
+   ACTION_ITEM(0, 1, 1, 0, hideMenu),  /* ACTION_HIDE_MENU */
+   ACTION_ITEM(1, 0, 0, 1, doResizeH), /* ACTION_RESIZE_H */
+   ACTION_ITEM(1, 0, 0, 1, doResizeV), /* ACTION_RESIZE_V */
+   ACTION_ITEM(1, 0, 0, 0, doKill),    /* ACTION_KILL */
+   ACTION_ITEM(1, 0, 0, 0, doKillNasty),       /* ACTION_KILL_NASTY */
+   ACTION_ITEM(0, 0, 1, 0, doNextDesktop),     /* ACTION_DESKTOP_NEXT */
+   ACTION_ITEM(0, 0, 1, 0, doPrevDesktop),     /* ACTION_DESKTOP_PREV */
+   ACTION_ITEM(0, 0, 0, 0, doRaiseDesktop),    /* ACTION_DESKTOP_RAISE */
+   ACTION_ITEM(0, 0, 0, 0, doLowerDesktop),    /* ACTION_DESKTOP_LOWER */
+   ACTION_ITEM(0, 0, 0, 0, doDragDesktop),     /* ACTION_DESKTOP_DRAG */
+   ACTION_ITEM(1, 0, 0, 0, doStick),   /* ACTION_STICK */
+   ACTION_ITEM(0, 0, 0, 0, doInplaceDesktop),  /* ACTION_DESKTOP_INPLACE */
+   ACTION_ITEM(0, 0, 0, 0, doDragButtonStart), /* ACTION_DRAG_BUTTON */
+   ACTION_ITEM(0, 0, 0, 0, doFocusModeSet),    /* ACTION_FOCUSMODE_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doMoveModeSet),     /* ACTION_MOVEMODE_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doResizeModeSet),   /* ACTION_RESIZEMODE_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doSlideModeSet),    /* ACTION_SLIDEMODE_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doCleanupSlideSet), /* ACTION_CLEANUPSILDE_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doMapSlideSet),     /* ACTION_MAPSLIDE_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, NULL),      /* ACTION_SOUND_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doButtonMoveResistSet),     /* 
ACTION_BUTTONMOVE_RESIST_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doDesktopBgTimeoutSet),     /* 
ACTION_DESKTOPBG_TIMEOUT_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doMapSlideSpeedSet),        /* ACTION_MAPSLIDE_SPEED_SET 
@@ */
+   ACTION_ITEM(0, 0, 0, 0, doCleanupSlideSpeedSet),    /* 
ACTION_CLEANUPSLIDE_SPEED_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doDragdirSet),      /* ACTION_DRAGDIR_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doDragbarOrderSet), /* ACTION_DRAGBAR_ORDER_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doDragbarWidthSet), /* ACTION_DRAGBAR_WIDTH_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doDragbarLengthSet),        /* ACTION_DRAGBAR_LENGTH_SET 
@@ */
+   ACTION_ITEM(0, 0, 0, 0, doDeskSlideSet),    /* ACTION_DESKSLIDE_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doDeskSlideSpeedSet),       /* ACTION_DESKSLIDE_SPEED_SET 
@@ */
+   ACTION_ITEM(0, 0, 0, 0, doHiQualityBgSet),  /* ACTION_HIQUALITYBG_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doPlaySoundClass),  /* ACTION_PLAYSOUNDCLASS */
+   ACTION_ITEM(0, 0, 1, 0, doGotoDesktop),     /* ACTION_GOTO_DESK */
+   ACTION_ITEM(0, 0, 0, 0, doDeskray), /* ACTION_DESKRAY @@ */
+   ACTION_ITEM(0, 0, 0, 0, doAutosaveSet),     /* ACTION_AUTOSAVE_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doHideShowButton),  /* ACTION_HIDESHOW_BUTTON */
+   ACTION_ITEM(1, 0, 0, 0, doIconifyWindow),   /* ACTION_ICONIFY */
+   ACTION_ITEM(0, 0, 0, 0, doSlideout),        /* ACTION_SLIDEOUT */
+   ACTION_ITEM(0, 0, 0, 1, doScrollWindows),   /* ACTION_SCROLL_WINDOWS */
+   ACTION_ITEM(1, 0, 0, 0, doShade),   /* ACTION_SHADE */
+   ACTION_ITEM(1, 0, 0, 0, doMaxH),    /* ACTION_MAX_HEIGHT */
+   ACTION_ITEM(1, 0, 0, 0, doMaxW),    /* ACTION_MAX_WIDTH */
+   ACTION_ITEM(1, 0, 0, 0, doMax),     /* ACTION_MAX_SIZE */
+   ACTION_ITEM(1, 0, 0, 0, doSendToNextDesk),  /* ACTION_SEND_TO_NEXT_DESK */
+   ACTION_ITEM(1, 0, 0, 0, doSendToPrevDesk),  /* ACTION_SEND_TO_PREV_DESK */
+   ACTION_ITEM(1, 0, 0, 0, doSnapshot),        /* ACTION_SNAPSHOT */
+   ACTION_ITEM(0, 0, 0, 1, doScrollContainer), /* ACTION_SCROLL_CONTAINER */
+   ACTION_ITEM(0, 0, 0, 0, doToolTipSet),      /* ACTION_TOOLTIP_SET @@ */
+   ACTION_ITEM(0, 0, 0, 0, doFocusNext),       /* ACTION_FOCUS_NEXT */
+   ACTION_ITEM(0, 0, 0, 0, doFocusPrev),       /* ACTION_FOCUS_PREV */
+   ACTION_ITEM(1, 0, 0, 0, doFocusSet),        /* ACTION_FOCUS_SET */
+   ACTION_ITEM(0, 0, 0, 0, doBackgroundSet),   /* ACTION_BACKGROUND_SET */
+   ACTION_ITEM(0, 0, 1, 0, doAreaSet), /* ACTION_AREA_SET */
+   ACTION_ITEM(0, 0, 1, 0, doAreaMoveBy),      /* ACTION_MOVE_BY */
+   ACTION_ITEM(0, 0, 0, 0, doToggleFixedPos),  /* ACTION_TOGGLE_FIXED */
+   ACTION_ITEM(1, 0, 0, 0, doSetLayer),        /* ACTION_SET_LAYER */
+   ACTION_ITEM(0, 0, 0, 0, doWarpPointer),     /* ACTION_WARP_POINTER */
+   ACTION_ITEM(1, 0, 0, 0, doMoveWinToArea),   /* ACTION_MOVE_WINDOW_TO_AREA */
+   ACTION_ITEM(1, 0, 0, 0, doMoveWinByArea),   /* ACTION_MOVE_WINDOW_BY_AREA */
+   ACTION_ITEM(1, 0, 0, 0, doSetWinBorder),    /* ACTION_SET_WINDOW_BORDER */
+   ACTION_ITEM(0, 0, 1, 0, doLinearAreaSet),   /* ACTION_LINEAR_AREA_SET */
+   ACTION_ITEM(0, 0, 1, 0, doLinearAreaMoveBy),        /* ACTION_LINEAR_MOVE_BY */
+   ACTION_ITEM(0, 0, 0, 0, doAbout),   /* ACTION_ABOUT */
+   ACTION_ITEM(0, 0, 0, 0, doFX),      /* ACTION_FX */
+   ACTION_ITEM(1, 0, 0, 0, doMoveWinToLinearArea),     /* 
ACTION_MOVE_WINDOW_TO_LINEAR_AREA */
+   ACTION_ITEM(1, 0, 0, 0, doMoveWinByArea),   /* ACTION_MOVE_WINDOW_BY_LINEAR_AREA */
+   ACTION_ITEM(0, 0, 0, 0, doSetPagerHiq),     /* ACTION_SET_PAGER_HIQ */
+   ACTION_ITEM(0, 0, 0, 0, doSetPagerSnap),    /* ACTION_SET_PAGER_SNAP */
+   ACTION_ITEM(0, 0, 0, 0, doSettings),        /* ACTION_SETTINGS */
+   ACTION_ITEM(1, 0, 0, 1, doMoveConstrained), /* ACTION_MOVE_CONSTRAINED */
+   ACTION_ITEM(0, 0, 0, 0, doInsertKeys),      /* ACTION_INSERT_KEYS */
+   ACTION_ITEM(1, 0, 0, 0, doStartGroup),      /* ACTION_START_GROUP */
+   ACTION_ITEM(1, 0, 0, 0, doAddToGroup),      /* ACTION_ADD_TO_GROUP */
+   ACTION_ITEM(1, 0, 0, 0, doRemoveFromGroup), /* ACTION_REMOVE_FROM_GROUP */
+   ACTION_ITEM(1, 0, 0, 0, doBreakGroup),      /* ACTION_BREAK_GROUP */
+   ACTION_ITEM(1, 0, 0, 0, doShowHideGroup),   /* ACTION_SHOW_HIDE_GROUP */
+   ACTION_ITEM(0, 0, 0, 0, doCreateIconbox),   /* ACTION_CREATE_ICONBOX */
+   ACTION_ITEM(1, 0, 0, 0, doRaiseLower),      /* ACTION_RAISE_LOWER */
+   ACTION_ITEM(1, 1, 0, 1, doZoom),    /* ACTION_ZOOM */
+   ACTION_ITEM(1, 0, 0, 0, doSetWinBorderNoGroup),     /* ACTION_SET_WINDOW_BORDER_NG 
*/
+   ACTION_ITEM(1, 0, 0, 0, doIconifyWindowNoGroup),    /* ACTION_ICONIFY_NG */
+   ACTION_ITEM(1, 0, 0, 0, doKillNoGroup),     /* ACTION_KILL_NG */
+   ACTION_ITEM(1, 0, 0, 1, doMoveNoGroup),     /* ACTION_MOVE_NG */
+   ACTION_ITEM(1, 0, 0, 0, doRaiseNoGroup),    /* ACTION_RAISE_NG */
+   ACTION_ITEM(1, 0, 0, 0, doLowerNoGroup),    /* ACTION_LOWER_NG */
+   ACTION_ITEM(1, 0, 0, 0, doStickNoGroup),    /* ACTION_STICK_NG */
+   ACTION_ITEM(1, 0, 0, 0, doShadeNoGroup),    /* ACTION_SHADE_NG */
+   ACTION_ITEM(1, 0, 0, 0, doRaiseLowerNoGroup),       /* ACTION_RAISE_LOWER_NG */
+   ACTION_ITEM(1, 0, 0, 0, doSkipFocus),       /* ACTION_SKIPFOCUS */
+   ACTION_ITEM(1, 0, 0, 0, doSkipTask),        /* ACTION_SKIPTASK */
+   ACTION_ITEM(1, 0, 0, 0, doSkipWinList),     /* ACTION_SKIPWINLIST */
+   ACTION_ITEM(1, 0, 0, 0, doNeverFocus),      /* ACTION_NEVERFOCUS */
+   ACTION_ITEM(1, 0, 0, 0, doSkipLists),       /* ACTION_SKIPLISTS */
+   ACTION_ITEM(1, 0, 0, 1, doSwapMove),        /* ACTION_SWAPMOVE */
+   ACTION_ITEM(1, 0, 0, 0, doFullscreen),      /* ACTION_FULLSCREEN */
+   ACTION_ITEM(1, 0, 0, 0, doConfigSet)        /* ACTION_CONFIG_SET */
 };
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/config.c,v
retrieving revision 1.111.2.9
retrieving revision 1.111.2.10
diff -u -3 -r1.111.2.9 -r1.111.2.10
--- config.c    15 Aug 2004 15:00:37 -0000      1.111.2.9
+++ config.c    18 Aug 2004 21:10:47 -0000      1.111.2.10
@@ -700,13 +700,13 @@
             Conf.menus.warp = i2;
             break;
          case CONTROL_WARPSTICKY:
-            Conf.warplist.warpsticky = i2;
+            Conf.warplist.showsticky = i2;
             break;
          case CONTROL_WARPSHADED:
-            Conf.warplist.warpshaded = i2;
+            Conf.warplist.showshaded = i2;
             break;
          case CONTROL_WARPICONIFIED:
-            Conf.warplist.warpiconified = i2;
+            Conf.warplist.showiconified = i2;
             break;
          case CONTROL_WARPFOCUSED:
             Conf.warplist.warpfocused = i2;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/events.c,v
retrieving revision 1.69.2.5
retrieving revision 1.69.2.6
diff -u -3 -r1.69.2.5 -r1.69.2.6
--- events.c    15 Aug 2004 15:00:38 -0000      1.69.2.5
+++ events.c    18 Aug 2004 21:10:49 -0000      1.69.2.6
@@ -119,7 +119,6 @@
          {
             if (ev->type == KeyPress)
                PagerHideAllHi();
-            WarpFocusHandleEvent(ev);
             lst = ListItemType(&num, LIST_TYPE_ACLASS_GLOBAL);
             if (lst)
               {
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/Attic/ewins.c,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -3 -r1.1.2.3 -r1.1.2.4
--- ewins.c     15 Aug 2004 16:25:32 -0000      1.1.2.3
+++ ewins.c     18 Aug 2004 21:10:49 -0000      1.1.2.4
@@ -991,9 +991,6 @@
 
    ActionsEnd(ewin);
 
-   if (ewin->pager)
-      PagerEventUnmap(ewin->pager);
-
    if (Conf.dockapp_support && ewin->docked)
       DockDestroy(ewin);
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/Attic/mod-misc.c,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -u -3 -r1.1.2.6 -r1.1.2.7
--- mod-misc.c  15 Aug 2004 12:16:39 -0000      1.1.2.6
+++ mod-misc.c  18 Aug 2004 21:10:49 -0000      1.1.2.7
@@ -43,6 +43,7 @@
 extern EModule      ModSound;
 extern EModule      ModTooltips;
 extern EModule      ModTransparency;
+extern EModule      ModWarplist;
 
 const EModule      *p_modules[] = {
    &ModBackgrounds,
@@ -61,6 +62,7 @@
    &ModSound,
    &ModTooltips,
    &ModTransparency,
+   &ModWarplist,
 };
 int                 n_modules = sizeof(p_modules) / sizeof(EModule *);
 
@@ -117,14 +119,6 @@
    CFG_ITEM_INT(Conf, snap.edge_snap_dist, 8),
    CFG_ITEM_INT(Conf, snap.screen_snap_dist, 32),
 
-   CFG_ITEM_BOOL(Conf, warplist.enable, 1),
-   CFG_ITEM_BOOL(Conf, warplist.warpsticky, 1),
-   CFG_ITEM_BOOL(Conf, warplist.warpshaded, 1),
-   CFG_ITEM_BOOL(Conf, warplist.warpiconified, 0),
-   CFG_ITEM_BOOL(Conf, warplist.warpfocused, 1),
-   CFG_ITEM_BOOL(Conf, warplist.raise_on_select, 1),
-   CFG_ITEM_BOOL(Conf, warplist.warp_on_select, 0),
-
    CFG_ITEM_INT(Conf, deskmode, MODE_NONE),
    CFG_ITEM_INT(Conf, movemode, 0),
    CFG_ITEM_INT(Conf, resizemode, 2),
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/pager.c,v
retrieving revision 1.103.2.6
retrieving revision 1.103.2.7
diff -u -3 -r1.103.2.6 -r1.103.2.7
--- pager.c     15 Aug 2004 07:28:28 -0000      1.103.2.6
+++ pager.c     18 Aug 2004 21:10:49 -0000      1.103.2.7
@@ -1537,7 +1537,7 @@
 
 static int         *gwin_px, *gwin_py;
 
-void
+static void
 PagerEventUnmap(Pager * p)
 {
    PagerHideHi(p);
@@ -1883,6 +1883,9 @@
        PagerHandleMotion(p, ev->xany.window, ev->xcrossing.x, ev->xcrossing.y,
                          PAGER_EVENT_MOUSE_OUT);
        break;
+     case UnmapNotify:
+       PagerEventUnmap(p);
+       break;
      }
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/settings.c,v
retrieving revision 1.120.2.5
retrieving revision 1.120.2.6
diff -u -3 -r1.120.2.5 -r1.120.2.6
--- settings.c  15 Aug 2004 12:16:39 -0000      1.120.2.5
+++ settings.c  18 Aug 2004 21:10:50 -0000      1.120.2.6
@@ -343,9 +343,9 @@
 static char         tmp_warp_after_focus;
 static char         tmp_raise_after_focus;
 static char         tmp_display_warp;
-static char         tmp_warpsticky;
-static char         tmp_warpshaded;
-static char         tmp_warpiconified;
+static char         tmp_showsticky;
+static char         tmp_showshaded;
+static char         tmp_showiconified;
 static char         tmp_warpfocused;
 
 static char         tmp_clickalways;
@@ -366,9 +366,9 @@
        Conf.warplist.warp_on_select = tmp_warp_after_focus;
        Conf.warplist.raise_on_select = tmp_raise_after_focus;
        Conf.warplist.enable = tmp_display_warp;
-       Conf.warplist.warpsticky = tmp_warpsticky;
-       Conf.warplist.warpshaded = tmp_warpshaded;
-       Conf.warplist.warpiconified = tmp_warpiconified;
+       Conf.warplist.showsticky = tmp_showsticky;
+       Conf.warplist.showshaded = tmp_showshaded;
+       Conf.warplist.showiconified = tmp_showiconified;
        Conf.warplist.warpfocused = tmp_warpfocused;
 
        Conf.focus.clickraises = tmp_clickalways;
@@ -402,9 +402,9 @@
    tmp_raise_after_focus = Conf.warplist.raise_on_select;
    tmp_warp_after_focus = Conf.warplist.warp_on_select;
    tmp_display_warp = Conf.warplist.enable;
-   tmp_warpsticky = Conf.warplist.warpsticky;
-   tmp_warpshaded = Conf.warplist.warpshaded;
-   tmp_warpiconified = Conf.warplist.warpiconified;
+   tmp_showsticky = Conf.warplist.showsticky;
+   tmp_showshaded = Conf.warplist.showshaded;
+   tmp_showiconified = Conf.warplist.showiconified;
    tmp_warpfocused = Conf.warplist.warpfocused;
 
    tmp_clickalways = Conf.focus.clickraises;
@@ -542,16 +542,16 @@
    DialogItemSetFill(di, 1, 0);
    DialogItemSetColSpan(di, 2);
    DialogItemCheckButtonSetText(di, _("Include sticky windows in focus list"));
-   DialogItemCheckButtonSetState(di, tmp_warpsticky);
-   DialogItemCheckButtonSetPtr(di, &tmp_warpsticky);
+   DialogItemCheckButtonSetState(di, tmp_showsticky);
+   DialogItemCheckButtonSetPtr(di, &tmp_showsticky);
 
    di = DialogAddItem(table, DITEM_CHECKBUTTON);
    DialogItemSetPadding(di, 2, 2, 2, 2);
    DialogItemSetFill(di, 1, 0);
    DialogItemSetColSpan(di, 2);
    DialogItemCheckButtonSetText(di, _("Include shaded windows in focus list"));
-   DialogItemCheckButtonSetState(di, tmp_warpshaded);
-   DialogItemCheckButtonSetPtr(di, &tmp_warpshaded);
+   DialogItemCheckButtonSetState(di, tmp_showshaded);
+   DialogItemCheckButtonSetPtr(di, &tmp_showshaded);
 
    di = DialogAddItem(table, DITEM_CHECKBUTTON);
    DialogItemSetPadding(di, 2, 2, 2, 2);
@@ -559,8 +559,8 @@
    DialogItemSetColSpan(di, 2);
    DialogItemCheckButtonSetText(di,
                                _("Include iconified windows in focus list"));
-   DialogItemCheckButtonSetState(di, tmp_warpiconified);
-   DialogItemCheckButtonSetPtr(di, &tmp_warpiconified);
+   DialogItemCheckButtonSetState(di, tmp_showiconified);
+   DialogItemCheckButtonSetPtr(di, &tmp_showiconified);
 
    di = DialogAddItem(table, DITEM_CHECKBUTTON);
    DialogItemSetPadding(di, 2, 2, 2, 2);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/setup.c,v
retrieving revision 1.139.2.3
retrieving revision 1.139.2.4
diff -u -3 -r1.139.2.3 -r1.139.2.4
--- setup.c     10 Aug 2004 19:36:31 -0000      1.139.2.3
+++ setup.c     18 Aug 2004 21:10:51 -0000      1.139.2.4
@@ -219,6 +219,8 @@
    RRoot.w = DisplayWidth(disp, RRoot.scr);
    RRoot.h = DisplayHeight(disp, RRoot.scr);
 
+   ERegisterWindow(disp, RRoot.win);
+
    VRoot.win = RRoot.win;
    VRoot.vis = RRoot.vis;
    VRoot.depth = RRoot.depth;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/warp.c,v
retrieving revision 1.49.2.1
retrieving revision 1.49.2.2
diff -u -3 -r1.49.2.1 -r1.49.2.2
--- warp.c      8 Aug 2004 00:02:20 -0000       1.49.2.1
+++ warp.c      18 Aug 2004 21:10:51 -0000      1.49.2.2
@@ -35,8 +35,8 @@
  *  currently selected instead of just the title of the currently
  *  selected one.
  */
-
 #include "E.h"
+#include <X11/keysym.h>
 
 typedef struct
 {
@@ -45,8 +45,7 @@
    char               *txt;
 } WarplistItem;
 
-static void         WarpFocusShowTitle(EWin * ewin);
-static void         WarpFocusHideTitle(void);
+static void         WarpFocusHandleEvent(XEvent * ev, void *prm);
 
 static int          warpFocusIndex = 0;
 static char         warpFocusTitleShowing = 0;
@@ -55,136 +54,6 @@
 static int          warplist_num = 0;
 static WarplistItem *warplist;
 
-int
-WarpFocusHandleEvent(XEvent * ev)
-{
-   EDBUG(5, "WarpFocusHandleEvent");
-
-   if (!Conf.warplist.enable)
-      EDBUG_RETURN(0);
-
-   if (ev->type != KeyPress && ev->type != KeyRelease)
-      EDBUG_RETURN(0);
-
-#if 0                          /* Debug */
-   Eprintf("WarpFocusHandleEvent win=%#x key=%#x(%#x) %d\n",
-          (unsigned)ev->xkey.window, ev->xkey.keycode,
-          warpFocusKey, warpFocusTitleShowing);
-#endif
-   if (warpFocusTitleShowing)
-     {
-       if (ev->xkey.keycode != warpFocusKey)
-          WarpFocusFinish();
-     }
-   else
-     {
-       warpFocusKey = ev->xkey.keycode;
-     }
-
-   EDBUG_RETURN(0);
-}
-
-void
-WarpFocus(int delta)
-{
-   EWin               *const *lst0;
-   EWin              **lst, *ewin;
-   int                 i, num0, num;
-
-   EDBUG(5, "WarpFocus");
-
-   if (!Conf.warplist.enable)
-      EDBUG_RETURN_;
-
-   lst = (EWin **) ListItemType(&num, LIST_TYPE_WARP_RING);
-   if (!lst)
-     {
-       lst0 = EwinListGetFocus(&num0);
-       num = 0;
-       lst = NULL;
-       for (i = num0 - 1; i >= 0; --i)
-         {
-            ewin = lst0[i];
-            if (               /* Either visible or iconified */
-                  ((EwinIsOnScreen(ewin)) || (ewin->iconified))
-                  /* Exclude windows that explicitely say so */
-                  && (!ewin->skipfocus)
-                  /* Keep shaded windows if conf say so */
-                  && ((!ewin->shaded) || (Conf.warplist.warpshaded))
-                  /* Keep sticky windows if conf say so */
-                  && ((!ewin->sticky) || (Conf.warplist.warpsticky))
-                  /* Keep iconified windows if conf say so */
-                  && ((!ewin->iconified) || (Conf.warplist.warpiconified))
-                  /*&& (ewin->client.mwm_decor_title) &&
-                   * (ewin->client.mwm_decor_border) */
-               )
-               AddItem(ewin, "", 0, LIST_TYPE_WARP_RING);
-         }
-       MoveItemToListBottom(GetFocusEwin(), LIST_TYPE_WARP_RING);
-       lst = (EWin **) ListItemType(&num, LIST_TYPE_WARP_RING);
-       warpFocusIndex = num - 1;
-     }
-
-   if (lst)
-     {
-       warpFocusIndex = (warpFocusIndex + num + delta) % num;
-       ewin = lst[warpFocusIndex];
-       if (!FindItem((char *)ewin, 0, LIST_FINDBY_POINTER, LIST_TYPE_EWIN))
-          ewin = NULL;
-       if (ewin)
-         {
-            if (Conf.focus.raise_on_next)
-               RaiseEwin(ewin);
-            if (Conf.focus.warp_on_next)
-               if (ewin != Mode.mouse_over_ewin && !ewin->iconified)
-                  XWarpPointer(disp, None, ewin->win, 0, 0, 0, 0,
-                               ewin->w / 2, ewin->h / 2);
-            if (Conf.warplist.warpfocused)
-               FocusToEWin(ewin, FOCUS_SET);
-            WarpFocusShowTitle(ewin);
-         }
-       Efree(lst);
-     }
-
-   EDBUG_RETURN_;
-}
-
-void
-WarpFocusFinish(void)
-{
-   EWin              **lst, *ewin;
-   int                 num;
-
-   EDBUG(5, "WarpFocusFinish");
-
-   lst = (EWin **) ListItemType(&num, LIST_TYPE_WARP_RING);
-   if (lst)
-     {
-       ewin = lst[warpFocusIndex];
-
-       WarpFocusHideTitle();
-       if (!FindItem((char *)ewin, 0, LIST_FINDBY_POINTER, LIST_TYPE_EWIN))
-          ewin = NULL;
-       if (ewin)
-         {
-            if (Conf.warplist.warpiconified && ewin->iconified)
-               EwinDeIconify(ewin);
-            if (Conf.warplist.raise_on_select)
-               RaiseEwin(ewin);
-            if (Conf.warplist.warp_on_select)
-               if (ewin != Mode.mouse_over_ewin)
-                  XWarpPointer(disp, None, ewin->win, 0, 0, 0, 0,
-                               ewin->w / 2, ewin->h / 2);
-            FocusToEWin(ewin, FOCUS_SET);
-         }
-       Efree(lst);
-
-       while (RemoveItem("", 0, LIST_FINDBY_NONE, LIST_TYPE_WARP_RING));
-     }
-
-   EDBUG_RETURN_;
-}
-
 static void
 WarpFocusShowTitle(EWin * ewin)
 {
@@ -198,14 +67,20 @@
    tc = FindItem("WARPFOCUS", 0, LIST_FINDBY_NAME, LIST_TYPE_TCLASS);
    if (!tc)
       tc = FindItem("COORDS", 0, LIST_FINDBY_NAME, LIST_TYPE_TCLASS);
+
    ic = FindItem("WARPFOCUS", 0, LIST_FINDBY_NAME, LIST_TYPE_ICLASS);
    if (!ic)
       ic = FindItem("COORDS", 0, LIST_FINDBY_NAME, LIST_TYPE_ICLASS);
+
    if ((!ic) || (!tc))
       return;
 
    if (!warpFocusTitleWindow)
-      warpFocusTitleWindow = ECreateWindow(VRoot.win, 0, 0, 1, 1, 1);
+     {
+       warpFocusTitleWindow = ECreateWindow(VRoot.win, 0, 0, 1, 1, 1);
+       EventCallbackRegister(warpFocusTitleWindow, 0, WarpFocusHandleEvent,
+                             NULL);
+     }
 
    pq = Mode.queue_up;
    Mode.queue_up = 0;
@@ -316,3 +191,171 @@
    warplist_num = 0;
    warpFocusTitleShowing = 0;
 }
+
+static void
+WarpFocus(int delta)
+{
+   EWin               *const *lst0;
+   EWin              **lst, *ewin;
+   int                 i, num0, num;
+
+   EDBUG(5, "WarpFocus");
+
+   lst = (EWin **) ListItemType(&num, LIST_TYPE_WARP_RING);
+   if (!lst)
+     {
+       lst0 = EwinListGetFocus(&num0);
+       num = 0;
+       lst = NULL;
+       for (i = num0 - 1; i >= 0; --i)
+         {
+            ewin = lst0[i];
+            if (               /* Either visible or iconified */
+                  ((EwinIsOnScreen(ewin)) || (ewin->iconified)) &&
+                  /* Exclude windows that explicitely say so */
+                  (!ewin->skipfocus) &&
+                  /* Keep shaded windows if conf say so */
+                  ((!ewin->shaded) || (Conf.warplist.showshaded)) &&
+                  /* Keep sticky windows if conf say so */
+                  ((!ewin->sticky) || (Conf.warplist.showsticky)) &&
+                  /* Keep iconified windows if conf say so */
+                  ((!ewin->iconified) || (Conf.warplist.showiconified)))
+               AddItem(ewin, "", 0, LIST_TYPE_WARP_RING);
+         }
+       MoveItemToListBottom(GetFocusEwin(), LIST_TYPE_WARP_RING);
+       lst = (EWin **) ListItemType(&num, LIST_TYPE_WARP_RING);
+       warpFocusIndex = num - 1;
+     }
+
+   if (lst)
+     {
+       warpFocusIndex = (warpFocusIndex + num + delta) % num;
+       ewin = lst[warpFocusIndex];
+       if (!FindItem((char *)ewin, 0, LIST_FINDBY_POINTER, LIST_TYPE_EWIN))
+          ewin = NULL;
+       if (ewin)
+         {
+            if (Conf.focus.raise_on_next)
+               RaiseEwin(ewin);
+            if (Conf.focus.warp_on_next)
+               if (ewin != Mode.mouse_over_ewin && !ewin->iconified)
+                  XWarpPointer(disp, None, ewin->win, 0, 0, 0, 0,
+                               ewin->w / 2, ewin->h / 2);
+            if (Conf.warplist.warpfocused)
+               FocusToEWin(ewin, FOCUS_SET);
+            WarpFocusShowTitle(ewin);
+         }
+       Efree(lst);
+     }
+
+   EDBUG_RETURN_;
+}
+
+static void
+WarpFocusFinish(void)
+{
+   EWin              **lst, *ewin;
+   int                 num;
+
+   EDBUG(5, "WarpFocusFinish");
+
+   lst = (EWin **) ListItemType(&num, LIST_TYPE_WARP_RING);
+   if (!lst)
+      goto done;
+
+   ewin = lst[warpFocusIndex];
+
+   WarpFocusHideTitle();
+   if (!FindItem((char *)ewin, 0, LIST_FINDBY_POINTER, LIST_TYPE_EWIN))
+      ewin = NULL;
+   if (ewin)
+     {
+       if (Conf.warplist.showiconified && ewin->iconified)
+          EwinDeIconify(ewin);
+       if (Conf.warplist.raise_on_select)
+          RaiseEwin(ewin);
+       if (Conf.warplist.warp_on_select)
+          if (ewin != Mode.mouse_over_ewin)
+             XWarpPointer(disp, None, ewin->win, 0, 0, 0, 0,
+                          ewin->w / 2, ewin->h / 2);
+       FocusToEWin(ewin, FOCUS_SET);
+     }
+   Efree(lst);
+
+   while (RemoveItem("", 0, LIST_FINDBY_NONE, LIST_TYPE_WARP_RING));
+
+ done:
+   EDBUG_RETURN_;
+}
+
+static void
+WarpFocusHandleEvent(XEvent * ev, void *prm __UNUSED__)
+{
+   EDBUG(5, "WarpFocusHandleEvent");
+
+   switch (ev->type)
+     {
+     case KeyPress:
+       if (warpFocusTitleShowing && ev->xany.window == VRoot.win)
+          warpFocusKey = ev->xkey.keycode;
+       break;
+
+     case KeyRelease:
+       if (warpFocusTitleShowing && ev->xkey.keycode != warpFocusKey)
+          WarpFocusFinish();
+       break;
+     }
+}
+
+static int
+WarplistAction(EWin * ewin __UNUSED__, const char *params __UNUSED__)
+{
+   if (!Conf.warplist.enable)
+      return 0;
+
+   WarpFocus(1);
+
+   return 1;
+}
+
+static void
+WarplistInit(void)
+{
+   ActionsSetFunction(ACTION_FOCUS_NEXT, WarplistAction);
+   EventCallbackRegister(VRoot.win, 0, WarpFocusHandleEvent, NULL);
+}
+
+/*
+ * Warplist module
+ */
+
+static void
+WarplistSighan(int sig)
+{
+   switch (sig)
+     {
+     case ESIGNAL_INIT:
+       WarplistInit();
+       break;
+     }
+}
+
+static const CfgItem WarplistCfgItems[] = {
+   CFG_ITEM_BOOL(Conf.warplist, enable, 1),
+   CFG_ITEM_BOOL(Conf.warplist, showsticky, 1),
+   CFG_ITEM_BOOL(Conf.warplist, showshaded, 1),
+   CFG_ITEM_BOOL(Conf.warplist, showiconified, 0),
+   CFG_ITEM_BOOL(Conf.warplist, warpfocused, 1),
+   CFG_ITEM_BOOL(Conf.warplist, raise_on_select, 1),
+   CFG_ITEM_BOOL(Conf.warplist, warp_on_select, 0),
+};
+#define N_CFG_ITEMS (sizeof(WarplistCfgItems)/sizeof(CfgItem))
+
+EModule             ModWarplist = {
+   "warplist", "warp",
+   WarplistSighan,
+   NULL, NULL,
+   NULL,
+   {N_CFG_ITEMS, WarplistCfgItems},
+   {0, NULL}
+};




-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to