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