Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: E.h Makefile.am arrange.c draw.c ewin-ops.c ewins.c ewins.h finders.c groups.c menus-misc.c moveresize.c pager.c snaps.c Added Files: groups.h Log Message: Split off groups.h. Fix certain hint updates. Cleanups. =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v retrieving revision 1.514 retrieving revision 1.515 diff -u -3 -r1.514 -r1.515 --- E.h 15 Nov 2005 23:24:20 -0000 1.514 +++ E.h 19 Nov 2005 15:47:10 -0000 1.515 @@ -248,22 +248,6 @@ #define EVENT_FOCUS_IN 7 #define EVENT_FOCUS_OUT 8 -#define GROUP_SELECT_ALL 0 -#define GROUP_SELECT_EWIN_ONLY 1 -#define GROUP_SELECT_ALL_EXCEPT_EWIN 2 - -/* For window group listing */ -#define GROUP_ACTION_ANY 0 -#define GROUP_ACTION_MOVE 1 -#define GROUP_ACTION_RAISE 2 -#define GROUP_ACTION_LOWER 3 -#define GROUP_ACTION_KILL 4 -#define GROUP_ACTION_STICK 5 -#define GROUP_ACTION_ICONIFY 6 -#define GROUP_ACTION_SHADE 7 -#define GROUP_ACTION_SET_WINDOW_BORDER 8 -#define GROUP_ACTION_RAISE_LOWER 9 - /* * Types */ @@ -274,7 +258,6 @@ struct _textstate; typedef struct _ewin EWin; -typedef struct _group Group; typedef struct _background Background; typedef struct _ecursor ECursor; typedef struct _efont Efont; @@ -383,27 +366,6 @@ } EWinBit; -typedef struct _groupconfig -{ - char iconify; - char kill; - char mirror; - char move; - char raise; - char set_border; - char shade; - char stick; -} -GroupConfig; - -struct _group -{ - int index; - EWin **members; - int num_members; - GroupConfig cfg; -}; - /* Configuration parameters */ typedef struct { @@ -460,11 +422,6 @@ } focus; struct { - GroupConfig dflt; - char swapmove; - } groups; - struct - { char set_xroot_info_on_root_window; } hints; struct @@ -606,10 +563,6 @@ } events; struct { - Group *current; - } groups; - struct - { int server_grabbed; char pointer_grab_active; Window pointer_grab_window; @@ -950,12 +903,6 @@ char *field(char *s, int fieldno); void fword(char *s, int num, char *wd); -/* finders.c */ -Group **ListWinGroups(const EWin * ewin, char group_select, - int *num); -EWin **ListWinGroupMembersForEwin(const EWin * ewin, int action, - char nogroup, int *num); - /* focus.c */ #define FOCUS_NOP 0 #define FOCUS_INIT 1 @@ -997,13 +944,6 @@ void GrabButtonRelease(unsigned int button, unsigned int modifiers, Window win); -/* groups.c */ -void BuildWindowGroup(EWin ** ewins, int num); -Group *EwinsInGroup(const EWin * ewin1, const EWin * ewin2); -void AddEwinToGroup(EWin * ewin, Group * g); -void GroupsEwinRemove(EWin * ewin); -void SaveGroups(void); - /* handlers.c */ void SignalsSetup(void); void SignalsRestore(void); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/Makefile.am,v retrieving revision 1.59 retrieving revision 1.60 diff -u -3 -r1.59 -r1.60 --- Makefile.am 29 Oct 2005 08:48:40 -0000 1.59 +++ Makefile.am 19 Nov 2005 15:47:10 -0000 1.60 @@ -60,6 +60,7 @@ fx.c \ grabs.c \ groups.c \ + groups.h \ handlers.c \ hints.c \ hints.h \ =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/arrange.c,v retrieving revision 1.84 retrieving revision 1.85 diff -u -3 -r1.84 -r1.85 --- arrange.c 13 Nov 2005 12:40:13 -0000 1.84 +++ arrange.c 19 Nov 2005 15:47:10 -0000 1.85 @@ -25,6 +25,7 @@ #include "buttons.h" #include "desktops.h" #include "ewins.h" +#include "groups.h" static int ArrangeAddToList(int **array, int current_size, int value) =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/draw.c,v retrieving revision 1.86 retrieving revision 1.87 diff -u -3 -r1.86 -r1.87 --- draw.c 5 Nov 2005 17:12:53 -0000 1.86 +++ draw.c 19 Nov 2005 15:47:10 -0000 1.87 @@ -629,19 +629,6 @@ Window root = VRoot.win; int x1, y1, w1, h1, i, j, dx, dy; char str[32]; - char check_move = 0; - - for (i = 0; i < ewin->num_groups; i++) - { - check_move |= ewin->groups[i]->cfg.move; - if (check_move) - break; - } - - if ((md == 5) && - ((Mode.mode == MODE_RESIZE) || (Mode.mode == MODE_RESIZE_H) || - (Mode.mode == MODE_RESIZE_V) || (ewin->groups && check_move))) - md = 0; switch (md) { @@ -1015,21 +1002,9 @@ } CoordsShow(ewin); } + if (firstlast == 2) { -#if 1 /* FIXME - Here? */ - /* If we're moving a group, don't do this, - * otherwise we have a lot of garbage onscreen */ - if (!EoIsFloating(ewin) || !ewin->groups - || (ewin->groups && !check_move)) - { - if (ewin->state.shaded) - EwinMove(ewin, ewin->shape_x, ewin->shape_y); - else - EwinMoveResize(ewin, ewin->shape_x, ewin->shape_y, - ewin->shape_w, ewin->shape_h); - } -#endif EFreeGC(gc); gc = 0; } =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ewin-ops.c,v retrieving revision 1.80 retrieving revision 1.81 diff -u -3 -r1.80 -r1.81 --- ewin-ops.c 15 Nov 2005 23:11:16 -0000 1.80 +++ ewin-ops.c 19 Nov 2005 15:47:10 -0000 1.81 @@ -27,6 +27,7 @@ #include "eobj.h" #include "ewins.h" #include "ewin-ops.h" +#include "groups.h" #include "hints.h" #include "iclass.h" /* FIXME - Should not be here */ #include "snaps.h" @@ -513,7 +514,7 @@ ModulesSignal(ESIGNAL_EWIN_CHANGE, ewin); } - if (Mode.mode == MODE_NONE && dsk != pdesk) + if (dsk != pdesk) { HintsSetWindowDesktop(ewin); SnapshotEwinUpdate(ewin, SNAP_USE_DESK); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ewins.c,v retrieving revision 1.131 retrieving revision 1.132 diff -u -3 -r1.131 -r1.132 --- ewins.c 19 Nov 2005 07:39:30 -0000 1.131 +++ ewins.c 19 Nov 2005 15:47:10 -0000 1.132 @@ -27,6 +27,7 @@ #include "emodule.h" #include "eobj.h" #include "ewins.h" +#include "groups.h" #include "hints.h" #include "snaps.h" #include "xwin.h" =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ewins.h,v retrieving revision 1.32 retrieving revision 1.33 diff -u -3 -r1.32 -r1.33 --- ewins.h 19 Nov 2005 07:39:30 -0000 1.32 +++ ewins.h 19 Nov 2005 15:47:10 -0000 1.33 @@ -28,13 +28,13 @@ #include "xwin.h" struct _desk; +struct _group; +struct _snapshot; #if 0 typedef struct _ewin EWin; #endif -struct _snapshot; - /* Window operation sources */ #define OPSRC_UNKNOWN 0 #define OPSRC_APP 1 @@ -215,7 +215,7 @@ } update; int num_groups; - Group **groups; + struct _group **groups; int area_x, area_y; char *session_id; PmapMask mini_pmm; =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/finders.c,v retrieving revision 1.43 retrieving revision 1.44 diff -u -3 -r1.43 -r1.44 --- finders.c 5 Nov 2005 17:12:53 -0000 1.43 +++ finders.c 19 Nov 2005 15:47:10 -0000 1.44 @@ -22,6 +22,7 @@ */ #include "E.h" #include "ewins.h" +#include "groups.h" EWin * EwinFindByPtr(const EWin * ewin) =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/groups.c,v retrieving revision 1.73 retrieving revision 1.74 diff -u -3 -r1.73 -r1.74 --- groups.c 5 Nov 2005 17:12:53 -0000 1.73 +++ groups.c 19 Nov 2005 15:47:10 -0000 1.74 @@ -25,6 +25,7 @@ #include "dialog.h" #include "emodule.h" #include "ewins.h" +#include "groups.h" #include "snaps.h" #include <math.h> @@ -34,8 +35,25 @@ #define DISABLE_PAGER_ICONBOX_GROUPING 0 +static struct +{ + GroupConfig dflt; + char swapmove; +} Conf_groups; + +static struct +{ + Group *current; +} Mode_groups; + static void RemoveEwinFromGroup(EWin * ewin, Group * g); +int +GroupsGetSwapmove(void) +{ + return Conf_groups.swapmove; +} + static Group * GroupCreate(void) { @@ -50,14 +68,14 @@ g->index = (int)((GetTime() - (floor(t / 1000) * 1000)) * 10000); /* g->index = (int)(GetTime() * 100); */ - g->cfg.iconify = Conf.groups.dflt.iconify; - g->cfg.kill = Conf.groups.dflt.kill; - g->cfg.move = Conf.groups.dflt.move; - g->cfg.raise = Conf.groups.dflt.raise; - g->cfg.set_border = Conf.groups.dflt.set_border; - g->cfg.stick = Conf.groups.dflt.stick; - g->cfg.shade = Conf.groups.dflt.shade; - g->cfg.mirror = Conf.groups.dflt.mirror; + g->cfg.iconify = Conf_groups.dflt.iconify; + g->cfg.kill = Conf_groups.dflt.kill; + g->cfg.move = Conf_groups.dflt.move; + g->cfg.raise = Conf_groups.dflt.raise; + g->cfg.set_border = Conf_groups.dflt.set_border; + g->cfg.stick = Conf_groups.dflt.stick; + g->cfg.shade = Conf_groups.dflt.shade; + g->cfg.mirror = Conf_groups.dflt.mirror; g->num_members = 0; g->members = NULL; @@ -70,8 +88,8 @@ if (!g) return; - if (g == Mode.groups.current) - Mode.groups.current = NULL; + if (g == Mode_groups.current) + Mode_groups.current = NULL; if (g->members) Efree(g->members); Efree(g); @@ -118,7 +136,7 @@ int i; Group *g; - Mode.groups.current = g = GroupCreate(); + Mode_groups.current = g = GroupCreate(); AddItem(g, NULL, g->index, LIST_TYPE_GROUP); for (i = 0; i < num; i++) @@ -848,8 +866,8 @@ { if (val < 2) { - CopyGroupConfig(&tmp_group_cfg, &(Conf.groups.dflt)); - Conf.groups.swapmove = tmp_group_swap; + CopyGroupConfig(&tmp_group_cfg, &(Conf_groups.dflt)); + Conf_groups.swapmove = tmp_group_swap; } autosave(); } @@ -870,8 +888,8 @@ } SoundPlay("SOUND_SETTINGS_GROUP"); - CopyGroupConfig(&(Conf.groups.dflt), &tmp_group_cfg); - tmp_group_swap = Conf.groups.swapmove; + CopyGroupConfig(&(Conf_groups.dflt), &tmp_group_cfg); + tmp_group_swap = Conf_groups.swapmove; d = DialogCreate("CONFIGURE_DEFAULT_GROUP_CONTROL"); DialogSetTitle(d, _("Default Group Control Settings")); @@ -1120,7 +1138,7 @@ static void IPC_GroupOps(const char *params, Client * c __UNUSED__) { - Group *group = Mode.groups.current; + Group *group = Mode_groups.current; char groupid[FILEPATH_LEN_MAX]; int gix; char windowid[FILEPATH_LEN_MAX]; @@ -1412,15 +1430,15 @@ * Configuration items */ static const CfgItem GroupsCfgItems[] = { - CFG_ITEM_BOOL(Conf.groups, dflt.iconify, 1), - CFG_ITEM_BOOL(Conf.groups, dflt.kill, 0), - CFG_ITEM_BOOL(Conf.groups, dflt.mirror, 1), - CFG_ITEM_BOOL(Conf.groups, dflt.move, 1), - CFG_ITEM_BOOL(Conf.groups, dflt.raise, 0), - CFG_ITEM_BOOL(Conf.groups, dflt.set_border, 1), - CFG_ITEM_BOOL(Conf.groups, dflt.stick, 1), - CFG_ITEM_BOOL(Conf.groups, dflt.shade, 1), - CFG_ITEM_BOOL(Conf.groups, swapmove, 1), + CFG_ITEM_BOOL(Conf_groups, dflt.iconify, 1), + CFG_ITEM_BOOL(Conf_groups, dflt.kill, 0), + CFG_ITEM_BOOL(Conf_groups, dflt.mirror, 1), + CFG_ITEM_BOOL(Conf_groups, dflt.move, 1), + CFG_ITEM_BOOL(Conf_groups, dflt.raise, 0), + CFG_ITEM_BOOL(Conf_groups, dflt.set_border, 1), + CFG_ITEM_BOOL(Conf_groups, dflt.stick, 1), + CFG_ITEM_BOOL(Conf_groups, dflt.shade, 1), + CFG_ITEM_BOOL(Conf_groups, swapmove, 1), }; #define N_CFG_ITEMS (sizeof(GroupsCfgItems)/sizeof(CfgItem)) =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/menus-misc.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- menus-misc.c 30 Oct 2005 19:40:49 -0000 1.24 +++ menus-misc.c 19 Nov 2005 15:47:10 -0000 1.25 @@ -25,6 +25,7 @@ #include "backgrounds.h" #include "desktops.h" #include "ewins.h" +#include "groups.h" #include "iclass.h" #include "menus.h" #include <errno.h> =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/moveresize.c,v retrieving revision 1.55 retrieving revision 1.56 diff -u -3 -r1.55 -r1.56 --- moveresize.c 5 Nov 2005 17:12:53 -0000 1.55 +++ moveresize.c 19 Nov 2005 15:47:10 -0000 1.56 @@ -25,12 +25,14 @@ #include "desktops.h" #include "emodule.h" #include "ewins.h" +#include "groups.h" #include "hints.h" #include "xwin.h" static struct { EWin *ewin; + int mode; int start_x, start_y; int win_x, win_y, win_w, win_h; int swapcoord_x, swapcoord_y; @@ -90,14 +92,22 @@ RaiseEwin(ewin); gwins = ListWinGroupMembersForEwin(ewin, GROUP_ACTION_MOVE, nogroup || Mode.move.swap, &num); + + if (Conf.movres.mode_move < 0 || Conf.movres.mode_move > 5) + Conf.movres.mode_move = 0; + Mode_mr.mode = Conf.movres.mode_move; + if (num > 1 && Conf.movres.mode_move == 5) + Mode_mr.mode = 0; + for (i = 0; i < num; i++) { EwinShapeSet(gwins[i]); EwinFloatAt(gwins[i], EoGetX(gwins[i]), EoGetY(gwins[i])); - if (Conf.movres.mode_move == 0) + if (Mode_mr.mode == 0) EoChangeOpacity(gwins[i], OpacityExt(Conf.movres.opacity)); } Efree(gwins); + Mode_mr.swapcoord_x = EoGetX(ewin); Mode_mr.swapcoord_y = EoGetY(ewin); @@ -130,7 +140,7 @@ if (Mode.mode == MODE_MOVE) { for (i = 0; i < num; i++) - DrawEwinShape(gwins[i], Conf.movres.mode_move, + DrawEwinShape(gwins[i], Mode_mr.mode, gwins[i]->shape_x, gwins[i]->shape_y, gwins[i]->client.w, gwins[i]->client.h, 2); } @@ -148,7 +158,7 @@ EwinUnfloatAt(ewin, d2, ewin->shape_x - (EoGetX(d2) - EoGetX(d1)), ewin->shape_y - (EoGetY(d2) - EoGetY(d1))); - if (Conf.movres.mode_move == 0) + if (Mode_mr.mode == 0) EoChangeOpacity(ewin, ewin->ewmh.opacity); } @@ -162,7 +172,7 @@ Mode.move.swap = 0; Mode.place.doing_manual = 0; - if (Conf.movres.mode_move > 0) + if (Mode_mr.mode > 0) { EUngrabServer(); ModulesSignal(ESIGNAL_ANIMATION_RESUME, NULL); @@ -185,7 +195,7 @@ return 0; /* If non opaque undraw our boxes */ - if (Conf.movres.mode_move > 0) + if (Mode_mr.mode > 0) { EUngrabServer(); @@ -195,7 +205,7 @@ for (i = 0; i < num; i++) { ewin = lst[i]; - DrawEwinShape(ewin, Conf.movres.mode_move, ewin->shape_x, + DrawEwinShape(ewin, Mode_mr.mode, ewin->shape_x, ewin->shape_y, ewin->client.w, ewin->client.h, 3); } if (lst) @@ -216,14 +226,14 @@ if (!ewin) return 0; - fl = (Conf.movres.mode_move == 5) ? 4 : 0; + fl = (Mode_mr.mode == 5) ? 4 : 0; if (Mode.mode == MODE_MOVE_PENDING) { Mode.mode = MODE_MOVE; fl = 0; /* This is the first time we draw it */ } - if (Conf.movres.mode_move > 0) + if (Mode_mr.mode > 0) EGrabServer(); DeskGetCurrentArea(&ax, &ay); @@ -245,7 +255,7 @@ x += Mode.events.x - Mode.events.px; y += Mode.events.y - Mode.events.py; } - DrawEwinShape(ewin, Conf.movres.mode_move, x, y, + DrawEwinShape(ewin, Mode_mr.mode, x, y, ewin->client.w, ewin->client.h, fl); } if (lst) @@ -266,6 +276,8 @@ SoundPlay("SOUND_RESIZE_START"); + if (Conf.movres.mode_resize < 0 || Conf.movres.mode_resize > 4) + Conf.movres.mode_resize = 0; if (Conf.movres.mode_resize > 0) { EGrabServer(); @@ -384,10 +396,18 @@ DrawEwinShape(ewin, Conf.movres.mode_resize, ewin->shape_x, ewin->shape_y, ewin->client.w, ewin->client.h, 2); - if (Conf.movres.mode_move == 0) + if (Conf.movres.mode_resize == 0) { EoChangeOpacity(ewin, ewin->ewmh.opacity); } + else + { + if (ewin->state.shaded) + EwinMove(ewin, ewin->shape_x, ewin->shape_y); + else + EwinMoveResize(ewin, ewin->shape_x, ewin->shape_y, + ewin->shape_w, ewin->shape_h); + } ESync(); @@ -423,19 +443,19 @@ if (Mode.mode == MODE_MOVE_PENDING) { - if (Conf.movres.mode_move > 0) + if (Mode_mr.mode > 0) { EGrabServer(); ModulesSignal(ESIGNAL_ANIMATION_SUSPEND, NULL); } - if (Conf.movres.mode_move == 0 || num == 1) + if (Mode_mr.mode == 0 || num == 1) ewin->state.show_coords = 1; for (i = 0; i < num; i++) { ewin1 = gwins[i]; - DrawEwinShape(ewin1, Conf.movres.mode_move, EoGetX(ewin1), + DrawEwinShape(ewin1, Mode_mr.mode, EoGetX(ewin1), EoGetY(ewin1), ewin1->client.w, ewin1->client.h, 0); } Mode.mode = MODE_MOVE; @@ -543,7 +563,7 @@ /* if its opaque move mode check to see if we have to float */ /* the window above all desktops (reparent to root) */ - if (Conf.movres.mode_move == 0) + if (Mode_mr.mode == 0) { Desk *dsk; @@ -559,7 +579,7 @@ } /* draw the new position of the window */ - DrawEwinShape(ewin1, Conf.movres.mode_move, + DrawEwinShape(ewin1, Mode_mr.mode, ewin1->shape_x + ndx, ewin1->shape_y + ndy, ewin1->client.w, ewin1->client.h, 1); @@ -570,7 +590,7 @@ ewin1->req_y = (jumpy) ? ewin1->shape_y : ewin1->req_y + dy; /* swapping of group member locations: */ - if (Mode.move.swap && Conf.groups.swapmove) + if (Mode.move.swap && GroupsGetSwapmove()) { EWin **all_gwins, *ewin2; int j, all_gwins_num; =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/pager.c,v retrieving revision 1.185 retrieving revision 1.186 diff -u -3 -r1.185 -r1.186 --- pager.c 12 Nov 2005 17:51:11 -0000 1.185 +++ pager.c 19 Nov 2005 15:47:10 -0000 1.186 @@ -27,6 +27,7 @@ #include "dialog.h" #include "emodule.h" #include "ewins.h" +#include "groups.h" #include "hints.h" #include "hiwin.h" #include "iclass.h" =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/snaps.c,v retrieving revision 1.111 retrieving revision 1.112 diff -u -3 -r1.111 -r1.112 --- snaps.c 19 Nov 2005 07:39:30 -0000 1.111 +++ snaps.c 19 Nov 2005 15:47:10 -0000 1.112 @@ -26,6 +26,7 @@ #include "desktops.h" #include "dialog.h" #include "ewins.h" +#include "groups.h" #include "snaps.h" #include "xwin.h" ------------------------------------------------------- This SF.Net email is sponsored by the JBoss Inc. Get Certified Today Register for a JBoss Training Course. Free Certification Exam for All Training Attendees Through End of 2005. For more info visit: http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs