Enlightenment CVS committal
Author : kwo
Project : e16
Module : e
Dir : e16/e/src
Modified Files:
E.h dialog.c evhandlers.c pager.c
Log Message:
Fix another pager mini-window tooltip bug.
Minor pager and dialog event handler changes.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.158
retrieving revision 1.159
diff -u -3 -r1.158 -r1.159
--- E.h 12 Dec 2003 18:42:15 -0000 1.158
+++ E.h 13 Dec 2003 14:07:14 -0000 1.159
@@ -2694,13 +2694,13 @@
void DialogItemAreaSetEventFunc(DItem * di,
void (*func) (int val,
void *data));
-void DialogEventKeyPress(XEvent * ev);
-void DialogEventMotion(XEvent * ev);
-void DialogEventExpose(XEvent * ev);
-void DialogEventMouseDown(XEvent * ev);
-void DialogEventMouseUp(XEvent * ev, Window click_was_in);
-void DialogEventMouseIn(XEvent * ev);
-void DialogEventMouseOut(XEvent * ev);
+int DialogEventKeyPress(XEvent * ev);
+int DialogEventMotion(XEvent * ev);
+int DialogEventExpose(XEvent * ev);
+int DialogEventMouseDown(XEvent * ev);
+int DialogEventMouseUp(XEvent * ev, Window click_was_in);
+int DialogEventMouseIn(XEvent * ev);
+int DialogEventMouseOut(XEvent * ev);
/* fx.c exportable functions */
#define FX_OP_START 1
@@ -2763,9 +2763,9 @@
void DisablePagersForDesktop(int desk);
Window PagerGetWin(Pager * p);
Window PagerGetHiWin(Pager * p);
-void PagersEventMotion(XEvent * ev);
-void PagersEventMouseDown(XEvent * ev);
-void PagersEventMouseUp(XEvent * ev);
+int PagersEventMotion(XEvent * ev);
+int PagersEventMouseDown(XEvent * ev);
+int PagersEventMouseUp(XEvent * ev);
int PagersEventMouseIn(XEvent * ev);
int PagersEventMouseOut(XEvent * ev);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/dialog.c,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -3 -r1.68 -r1.69
--- dialog.c 30 Nov 2003 15:35:43 -0000 1.68
+++ dialog.c 13 Dec 2003 14:07:14 -0000 1.69
@@ -2153,26 +2153,27 @@
* Dialog event handlers
*/
-void
+int
DialogEventKeyPress(XEvent * ev)
{
Dialog *d;
+ int i;
d = FindDialog(ev->xkey.window);
- if (d)
- {
- int i;
+ if (d == NULL)
+ return 0;
- for (i = 0; i < d->num_bindings; i++)
- {
- if (ev->xkey.keycode == d->keybindings[i].key)
- (d->keybindings[i].func) (d->keybindings[i].val,
- d->keybindings[i].data);
- }
+ for (i = 0; i < d->num_bindings; i++)
+ {
+ if (ev->xkey.keycode == d->keybindings[i].key)
+ (d->keybindings[i].func) (d->keybindings[i].val,
+ d->keybindings[i].data);
}
+
+ return 1;
}
-void
+int
DialogEventMotion(XEvent * ev)
{
Dialog *d;
@@ -2180,307 +2181,331 @@
int dx, dy;
di = FindDialogItem(ev->xmotion.window, &d);
- if (di)
+ if (d == NULL)
+ return 0;
+
+ if (di == NULL)
+ goto exit;
+
+ if (di->type == DITEM_AREA)
{
- if (di->type == DITEM_AREA)
- {
- if (di->item.area.event_func)
- (di->item.area.event_func) (0, ev);
- }
- else if ((di->type == DITEM_SLIDER) && (di->item.slider.in_drag))
+ if (di->item.area.event_func)
+ (di->item.area.event_func) (0, ev);
+ }
+ else if ((di->type == DITEM_SLIDER) && (di->item.slider.in_drag))
+ {
+ if (ev->xmotion.window == di->item.slider.knob_win)
{
- if (ev->xmotion.window == di->item.slider.knob_win)
+ dx = mode.x - mode.px;
+ dy = mode.y - mode.py;
+ if (di->item.slider.horizontal)
{
- dx = mode.x - mode.px;
- dy = mode.y - mode.py;
- if (di->item.slider.horizontal)
- {
- di->item.slider.wanted_val += dx;
- di->item.slider.val =
- di->item.slider.lower +
- (((di->item.slider.wanted_val *
- (di->item.slider.upper -
- di->item.slider.lower)) /
- (di->item.slider.base_w -
- di->item.slider.knob_w)) /
- di->item.slider.unit) * di->item.slider.unit;
- }
- else
- {
- di->item.slider.wanted_val += dy;
- di->item.slider.val =
- di->item.slider.lower +
- ((((di->item.
- slider.base_h - di->item.slider.knob_h -
- di->item.slider.wanted_val) *
- (di->item.slider.upper -
- di->item.slider.lower)) /
- (di->item.slider.base_h -
- di->item.slider.knob_h)) /
- di->item.slider.unit) * di->item.slider.unit;
- }
- if (di->item.slider.val < di->item.slider.lower)
- di->item.slider.val = di->item.slider.lower;
- if (di->item.slider.val > di->item.slider.upper)
- di->item.slider.val = di->item.slider.upper;
- if (di->item.slider.val_ptr)
- *di->item.slider.val_ptr = di->item.slider.val;
- if (di->func)
- (di->func) (di->val, di->data);
+ di->item.slider.wanted_val += dx;
+ di->item.slider.val =
+ di->item.slider.lower +
+ (((di->item.slider.wanted_val *
+ (di->item.slider.upper -
+ di->item.slider.lower)) /
+ (di->item.slider.base_w -
+ di->item.slider.knob_w)) /
+ di->item.slider.unit) * di->item.slider.unit;
+ }
+ else
+ {
+ di->item.slider.wanted_val += dy;
+ di->item.slider.val =
+ di->item.slider.lower +
+ ((((di->item.
+ slider.base_h - di->item.slider.knob_h -
+ di->item.slider.wanted_val) *
+ (di->item.slider.upper -
+ di->item.slider.lower)) /
+ (di->item.slider.base_h -
+ di->item.slider.knob_h)) /
+ di->item.slider.unit) * di->item.slider.unit;
}
- DialogDrawItems(d, di, 0, 0, 99999, 99999);
+ if (di->item.slider.val < di->item.slider.lower)
+ di->item.slider.val = di->item.slider.lower;
+ if (di->item.slider.val > di->item.slider.upper)
+ di->item.slider.val = di->item.slider.upper;
+ if (di->item.slider.val_ptr)
+ *di->item.slider.val_ptr = di->item.slider.val;
+ if (di->func)
+ (di->func) (di->val, di->data);
}
+ DialogDrawItems(d, di, 0, 0, 99999, 99999);
}
+
+ exit:
+ return 1;
}
-void
+int
DialogEventExpose(XEvent * ev)
{
Window win = ev->xexpose.window;
Dialog *d;
int bnum;
+ DItem *di;
+ int x, y, w, h;
d = FindDialogButton(win, &bnum);
if (d)
- DialogDrawButton(d, bnum);
- else
{
- d = FindDialog(win);
- if (d)
- {
- DialogDrawArea(d, ev->xexpose.x, ev->xexpose.y,
- ev->xexpose.width, ev->xexpose.height);
- }
- else
- {
- DItem *di;
- int x, y, w, h;
+ DialogDrawButton(d, bnum);
+ goto exit;
+ }
- di = FindDialogItem(win, &d);
- GetWinXY(win, &x, &y);
- GetWinWH(win, (unsigned int *)&w, (unsigned int *)&h);
- if (d)
- DialogDrawArea(d, x, y, w, h);
- if (di)
- {
- if (di->type == DITEM_AREA)
- {
- if (di->func)
- (di->func) (di->val, di->data);
- }
- }
- }
+ d = FindDialog(win);
+ if (d)
+ {
+ DialogDrawArea(d, ev->xexpose.x, ev->xexpose.y,
+ ev->xexpose.width, ev->xexpose.height);
+ goto exit;
}
+
+ di = FindDialogItem(win, &d);
+ if (d == NULL)
+ return 0;
+
+ GetWinXY(win, &x, &y);
+ GetWinWH(win, (unsigned int *)&w, (unsigned int *)&h);
+ DialogDrawArea(d, x, y, w, h);
+ if (di == NULL)
+ goto exit;
+
+ if (di->type == DITEM_AREA)
+ {
+ if (di->func)
+ (di->func) (di->val, di->data);
+ }
+
+ exit:
+ return 1;
}
-void
+int
DialogEventMouseDown(XEvent * ev)
{
Window win = ev->xbutton.window;
Dialog *d;
int bnum;
+ DItem *di;
d = FindDialogButton(win, &bnum);
if (d)
- DialogActivateButton(win, 2);
- else
{
- DItem *di;
+ DialogActivateButton(win, 2);
+ goto exit;
+ }
- di = FindDialogItem(win, &d);
- if (di)
+ di = FindDialogItem(win, &d);
+ if (d == NULL)
+ return 0;
+
+ if (di == NULL)
+ goto exit;
+
+ if (di->type == DITEM_AREA)
+ {
+ if (di->item.area.event_func)
+ (di->item.area.event_func) (0, ev);
+ }
+ else if (di->type == DITEM_SLIDER)
+ {
+ if (win == di->item.slider.base_win)
{
- if (di->type == DITEM_AREA)
+ if (di->item.slider.horizontal)
{
- if (di->item.area.event_func)
- (di->item.area.event_func) (0, ev);
+ if (ev->xbutton.x >
+ (di->item.slider.knob_x + (di->item.slider.knob_w / 2)))
+ di->item.slider.val += di->item.slider.jump;
+ else
+ di->item.slider.val -= di->item.slider.jump;
}
- else if (di->type == DITEM_SLIDER)
+ else
{
- if (win == di->item.slider.base_win)
- {
- if (di->item.slider.horizontal)
- {
- if (ev->xbutton.x >
- (di->item.slider.knob_x +
- (di->item.slider.knob_w / 2)))
- di->item.slider.val += di->item.slider.jump;
- else
- di->item.slider.val -= di->item.slider.jump;
- }
- else
- {
- if (ev->xbutton.y >
- (di->item.slider.knob_y +
- (di->item.slider.knob_h / 2)))
- di->item.slider.val -= di->item.slider.jump;
- else
- di->item.slider.val += di->item.slider.jump;
- }
- if (di->item.slider.val < di->item.slider.lower)
- di->item.slider.val = di->item.slider.lower;
- if (di->item.slider.val > di->item.slider.upper)
- di->item.slider.val = di->item.slider.upper;
- if (di->item.slider.val_ptr)
- *di->item.slider.val_ptr = di->item.slider.val;
- if (di->func)
- (di->func) (di->val, di->data);
- }
- else if (win == di->item.slider.knob_win)
- {
- di->item.slider.in_drag = 1;
- if (di->item.slider.horizontal)
- di->item.slider.wanted_val = di->item.slider.knob_x;
- else
- di->item.slider.wanted_val = di->item.slider.knob_y;
- }
+ if (ev->xbutton.y >
+ (di->item.slider.knob_y + (di->item.slider.knob_h / 2)))
+ di->item.slider.val -= di->item.slider.jump;
+ else
+ di->item.slider.val += di->item.slider.jump;
}
- di->clicked = 1;
- DialogDrawItems(d, di, 0, 0, 99999, 99999);
+ if (di->item.slider.val < di->item.slider.lower)
+ di->item.slider.val = di->item.slider.lower;
+ if (di->item.slider.val > di->item.slider.upper)
+ di->item.slider.val = di->item.slider.upper;
+ if (di->item.slider.val_ptr)
+ *di->item.slider.val_ptr = di->item.slider.val;
+ if (di->func)
+ (di->func) (di->val, di->data);
+ }
+ else if (win == di->item.slider.knob_win)
+ {
+ di->item.slider.in_drag = 1;
+ if (di->item.slider.horizontal)
+ di->item.slider.wanted_val = di->item.slider.knob_x;
+ else
+ di->item.slider.wanted_val = di->item.slider.knob_y;
}
}
+ di->clicked = 1;
+ DialogDrawItems(d, di, 0, 0, 99999, 99999);
+
+ exit:
+ return 1;
}
-void
+int
DialogEventMouseUp(XEvent * ev, Window click_was_in)
{
Window win = ev->xbutton.window;
Dialog *d;
int bnum;
+ DItem *di;
d = FindDialogButton(click_was_in, &bnum);
if (d)
- DialogActivateButton(click_was_in, 3);
- else
{
- DItem *di;
+ DialogActivateButton(click_was_in, 3);
+ goto exit;
+ }
+
+ di = FindDialogItem(click_was_in, &d);
+ if (d == NULL)
+ return 0;
+
+ if (di == NULL)
+ goto exit;
- di = FindDialogItem(click_was_in, &d);
- if (di)
+ di->clicked = 0;
+ if (click_was_in)
+ {
+ if (di->type == DITEM_AREA)
{
- di->clicked = 0;
- if (click_was_in)
- {
- if (di->type == DITEM_AREA)
- {
- if (di->item.area.event_func)
- (di->item.area.event_func) (0, ev);
- }
- else if (di->type == DITEM_CHECKBUTTON)
- {
- if (di->item.check_button.onoff)
- di->item.check_button.onoff = 0;
- else
- di->item.check_button.onoff = 1;
- if (di->item.check_button.onoff_ptr)
- *di->item.check_button.onoff_ptr =
- di->item.check_button.onoff;
- }
- else if (di->type == DITEM_RADIOBUTTON)
- {
- DItem *dii;
+ if (di->item.area.event_func)
+ (di->item.area.event_func) (0, ev);
+ }
+ else if (di->type == DITEM_CHECKBUTTON)
+ {
+ if (di->item.check_button.onoff)
+ di->item.check_button.onoff = 0;
+ else
+ di->item.check_button.onoff = 1;
+ if (di->item.check_button.onoff_ptr)
+ *di->item.check_button.onoff_ptr = di->item.check_button.onoff;
+ }
+ else if (di->type == DITEM_RADIOBUTTON)
+ {
+ DItem *dii;
- dii = di->item.radio_button.first;
- while (dii)
- {
- if (dii->item.radio_button.onoff)
- {
- dii->item.radio_button.onoff = 0;
- DialogDrawItems(d, dii, 0, 0, 99999, 99999);
- }
- dii = dii->item.radio_button.next;
- }
- di->item.radio_button.onoff = 1;
- if (di->item.radio_button.val_ptr)
- *di->item.radio_button.val_ptr =
- di->item.radio_button.val;
- }
- else if (di->type == DITEM_SLIDER)
+ dii = di->item.radio_button.first;
+ while (dii)
+ {
+ if (dii->item.radio_button.onoff)
{
- if (win == di->item.slider.knob_win)
- di->item.slider.in_drag = 0;
+ dii->item.radio_button.onoff = 0;
+ DialogDrawItems(d, dii, 0, 0, 99999, 99999);
}
+ dii = dii->item.radio_button.next;
}
- DialogDrawItems(d, di, 0, 0, 99999, 99999);
- if (click_was_in)
- {
- if (di->func)
- (di->func) (di->val, di->data);
- }
+ di->item.radio_button.onoff = 1;
+ if (di->item.radio_button.val_ptr)
+ *di->item.radio_button.val_ptr = di->item.radio_button.val;
+ }
+ else if (di->type == DITEM_SLIDER)
+ {
+ if (win == di->item.slider.knob_win)
+ di->item.slider.in_drag = 0;
}
}
+ DialogDrawItems(d, di, 0, 0, 99999, 99999);
+ if (click_was_in)
+ {
+ if (di->func)
+ (di->func) (di->val, di->data);
+ }
+
+ exit:
+ return 1;
}
-void
+int
DialogEventMouseIn(XEvent * ev)
{
Window win = ev->xcrossing.window;
Dialog *d;
int bnum;
+ DItem *di;
d = FindDialogButton(win, &bnum);
-
if (d)
{
DialogActivateButton(win, 0);
+ goto exit;
}
- else
- {
- DItem *di;
- di = FindDialogItem(win, &d);
- if (di)
- {
- if (di->type == DITEM_AREA)
- {
- if (di->item.area.event_func)
- (di->item.area.event_func) (0, ev);
- }
- else if (di->type == DITEM_RADIOBUTTON)
- {
- if (di->item.radio_button.event_func)
- (di->item.radio_button.event_func) (di->item.
- radio_button.val, ev);
- }
- di->hilited = 1;
- DialogDrawItems(d, di, 0, 0, 99999, 99999);
- }
+ di = FindDialogItem(win, &d);
+ if (d == NULL)
+ return 0;
+
+ if (di == NULL)
+ goto exit;
+
+ if (di->type == DITEM_AREA)
+ {
+ if (di->item.area.event_func)
+ (di->item.area.event_func) (0, ev);
}
+ else if (di->type == DITEM_RADIOBUTTON)
+ {
+ if (di->item.radio_button.event_func)
+ (di->item.radio_button.event_func) (di->item.radio_button.val, ev);
+ }
+ di->hilited = 1;
+ DialogDrawItems(d, di, 0, 0, 99999, 99999);
+
+ exit:
+ return 1;
}
-void
+int
DialogEventMouseOut(XEvent * ev)
{
Window win = ev->xcrossing.window;
Dialog *d;
int bnum;
+ DItem *di;
d = FindDialogButton(win, &bnum);
if (d)
- DialogActivateButton(win, 1);
- else
{
- DItem *di;
+ DialogActivateButton(win, 1);
+ goto exit;
+ }
- di = FindDialogItem(win, &d);
- if (di)
- {
- if (di->type == DITEM_AREA)
- {
- if (di->item.area.event_func)
- (di->item.area.event_func) (0, ev);
- }
- else if (di->type == DITEM_RADIOBUTTON)
- {
- if (di->item.radio_button.event_func)
- (di->item.radio_button.event_func) (di->item.
- radio_button.val,
- NULL);
- }
- di->hilited = 0;
- DialogDrawItems(d, di, 0, 0, 99999, 99999);
- }
+ di = FindDialogItem(win, &d);
+ if (d == NULL)
+ return 0;
+
+ if (di == NULL)
+ goto exit;
+
+ if (di->type == DITEM_AREA)
+ {
+ if (di->item.area.event_func)
+ (di->item.area.event_func) (0, ev);
}
+ else if (di->type == DITEM_RADIOBUTTON)
+ {
+ if (di->item.radio_button.event_func)
+ (di->item.radio_button.event_func) (di->item.radio_button.val, NULL);
+ }
+ di->hilited = 0;
+ DialogDrawItems(d, di, 0, 0, 99999, 99999);
+
+ exit:
+ return 1;
}
/*
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/evhandlers.c,v
retrieving revision 1.127
retrieving revision 1.128
diff -u -3 -r1.127 -r1.128
--- evhandlers.c 7 Dec 2003 09:18:55 -0000 1.127
+++ evhandlers.c 13 Dec 2003 14:07:14 -0000 1.128
@@ -1348,7 +1348,8 @@
if (ButtonsEventExpose(ev))
EDBUG_RETURN_;
- DialogEventExpose(ev);
+ if (DialogEventExpose(ev))
+ EDBUG_RETURN_;
EDBUG_RETURN_;
}
@@ -1536,7 +1537,8 @@
if (ButtonsEventMouseDown(ev))
goto exit;
- DialogEventMouseDown(ev);
+ if (DialogEventMouseDown(ev))
+ goto exit;
ewin = FindEwinByBase(ev->xbutton.window);
if (ewin)
@@ -1559,7 +1561,8 @@
}
}
- PagersEventMouseDown(ev);
+ if (PagersEventMouseDown(ev))
+ goto exit;
exit:
EDBUG_RETURN_;
@@ -1844,7 +1847,8 @@
if (ButtonsEventMouseUp(ev, wasmovres, wasdrag))
goto exit;
- DialogEventMouseUp(ev, click_was_in);
+ if (DialogEventMouseUp(ev, click_was_in))
+ goto exit;
ewin = FindEwinByBase(ev->xbutton.window);
if (ewin)
@@ -1977,7 +1981,7 @@
mode.context_win = win;
if (PagersEventMouseIn(ev))
- EDBUG_RETURN_;
+ goto exit;
{
Menu *m;
@@ -2063,7 +2067,8 @@
if (ButtonsEventMouseIn(ev))
goto exit;
- DialogEventMouseIn(ev);
+ if (DialogEventMouseIn(ev))
+ goto exit;
exit:
EDBUG_RETURN_;
@@ -2090,7 +2095,7 @@
mode.context_win = win;
if (PagersEventMouseOut(ev))
- EDBUG_RETURN_;
+ goto exit;
{
Menu *m;
@@ -2148,7 +2153,8 @@
if (ButtonsEventMouseOut(ev))
goto exit;
- DialogEventMouseOut(ev);
+ if (DialogEventMouseOut(ev))
+ goto exit;
exit:
EDBUG_RETURN_;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/pager.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -3 -r1.49 -r1.50
--- pager.c 9 Dec 2003 20:25:17 -0000 1.49
+++ pager.c 13 Dec 2003 14:07:14 -0000 1.50
@@ -1281,16 +1281,13 @@
PagerHandleMotion(Pager * p, Window win, int x, int y, int in)
{
int hx, hy;
- int px, py;
Window rw, cw;
EWin *ewin = NULL;
if (!mode.show_pagers)
return;
- XTranslateCoordinates(disp, p->win, root.win, 0, 0, &px, &py, &cw);
- if (win == p->hi_win)
- XQueryPointer(disp, p->win, &rw, &cw, &hx, &hy, &x, &y, &hx);
+ XQueryPointer(disp, p->win, &rw, &cw, &hx, &hy, &x, &y, &hx);
if (x >= 0 && x < p->w && y >= 0 && y < p->h)
ewin = EwinInPagerAt(p, x, y);
@@ -1301,7 +1298,8 @@
{
if (in == PAGER_EVENT_MOUSE_OUT)
PagerShowTt(NULL);
- PagerShowTt(ewin);
+ else
+ PagerShowTt(ewin);
return;
}
@@ -1313,13 +1311,11 @@
if (in == PAGER_EVENT_MOUSE_OUT)
{
- if (win == p->hi_win)
- PagerShowTt(NULL);
+ PagerShowTt(NULL);
}
-
- if ((in == PAGER_EVENT_MOTION) && ewin != p->hi_ewin)
+ else if ((in == PAGER_EVENT_MOTION) && ewin != p->hi_ewin)
{
- int wx, wy, ww, wh, ax, ay, cx, cy;
+ int wx, wy, ww, wh, ax, ay, cx, cy, px, py;
PagerHideHi(p);
GetAreaSize(&ax, &ay);
@@ -1329,10 +1325,15 @@
wy = ((ewin->y + (cy * root.h)) * (p->h / ay)) / root.h;
ww = ((ewin->w) * (p->w / ax)) / root.w;
wh = ((ewin->h) * (p->h / ay)) / root.h;
+ XTranslateCoordinates(disp, p->win, root.win, 0, 0, &px, &py, &cw);
PagerShowHi(p, ewin, px + wx, py + wy, ww, wh);
+ PagerShowTt(ewin);
+ }
+ else if (in == PAGER_EVENT_MOTION)
+ {
+ PagerShowTt(ewin);
}
- PagerShowTt(ewin);
}
void
@@ -1541,77 +1542,83 @@
static int *gwin_px, *gwin_py;
-void
+int
PagersEventMotion(XEvent * ev)
{
+ int used = 0;
Pager *p;
- if (mode.mode == MODE_NONE)
+ int x, y, dx, dy;
+ int ax, ay, cx, cy, i, num;
+ EWin **gwins;
+
+ switch (mode.mode)
{
+ case MODE_NONE:
p = FindPager(ev->xmotion.window);
- if (p)
- PagerHandleMotion(p, ev->xmotion.window, ev->xmotion.x,
- ev->xmotion.y, PAGER_EVENT_MOTION);
- }
+ if (p == NULL)
+ break;
+ used = 1;
+ PagerHandleMotion(p, ev->xmotion.window, ev->xmotion.x,
+ ev->xmotion.y, PAGER_EVENT_MOTION);
+ break;
- if ((mode.mode == MODE_PAGER_DRAG_PENDING) || (mode.mode == MODE_PAGER_DRAG))
- {
+ case MODE_PAGER_DRAG_PENDING:
+ case MODE_PAGER_DRAG:
mode.mode = MODE_PAGER_DRAG;
p = mode.context_pager;
- if (p)
- {
- int x, y, dx, dy;
- int ax, ay, cx, cy, i, num;
- EWin **gwins;
+ if (p == NULL)
+ break;
- cx = desks.desk[p->desktop].current_area_x;
- cy = desks.desk[p->desktop].current_area_y;
- GetAreaSize(&ax, &ay);
- dx = mode.x - mode.px;
- dy = mode.y - mode.py;
- if (!FindItem
- ((char *)p->hi_ewin, 0, LIST_FINDBY_POINTER, LIST_TYPE_EWIN))
- p->hi_ewin = NULL;
- if ((p->hi_ewin) && (!p->hi_ewin->pager)
- && (!p->hi_ewin->fixedpos))
- {
- Window dw;
- int px, py;
+ used = 1;
+ cx = desks.desk[p->desktop].current_area_x;
+ cy = desks.desk[p->desktop].current_area_y;
+ GetAreaSize(&ax, &ay);
+ dx = mode.x - mode.px;
+ dy = mode.y - mode.py;
+ if (!FindItem
+ ((char *)p->hi_ewin, 0, LIST_FINDBY_POINTER, LIST_TYPE_EWIN))
+ p->hi_ewin = NULL;
+ if ((p->hi_ewin) && (!p->hi_ewin->pager) && (!p->hi_ewin->fixedpos))
+ {
+ Window dw;
+ int px, py;
- GetWinXY(p->hi_win, &x, &y);
- XRaiseWindow(disp, p->hi_win);
- x += dx;
- y += dy;
- EMoveWindow(disp, p->hi_win, x, y);
- XTranslateCoordinates(disp, p->win, root.win, 0, 0, &px, &py,
- &dw);
- x -= px + (cx * (p->w / ax));
- y -= py + (cy * (p->h / ay));
- MoveEwin(p->hi_ewin, (x * root.w * ax) / p->w,
- (y * root.h * ay) / p->h);
- }
+ GetWinXY(p->hi_win, &x, &y);
+ XRaiseWindow(disp, p->hi_win);
+ x += dx;
+ y += dy;
+ EMoveWindow(disp, p->hi_win, x, y);
+ XTranslateCoordinates(disp, p->win, root.win, 0, 0, &px, &py, &dw);
+ x -= px + (cx * (p->w / ax));
+ y -= py + (cy * (p->h / ay));
+ MoveEwin(p->hi_ewin, (x * root.w * ax) / p->w,
+ (y * root.h * ay) / p->h);
+ }
- gwins =
- ListWinGroupMembersForEwin(p->hi_ewin, ACTION_MOVE,
- mode.nogroup, &num);
- for (i = 0; i < num; i++)
+ gwins =
+ ListWinGroupMembersForEwin(p->hi_ewin, ACTION_MOVE,
+ mode.nogroup, &num);
+ for (i = 0; i < num; i++)
+ {
+ if ((gwins[i] != p->hi_ewin) && (!gwins[i]->pager)
+ && (!gwins[i]->fixedpos))
{
- if ((gwins[i] != p->hi_ewin) && (!gwins[i]->pager)
- && (!gwins[i]->fixedpos))
- {
- GetWinXY(gwins[i]->win, &x, &y);
- x += (dx * root.w * ax) / p->w;
- y += (dy * root.h * ay) / p->h;
- MoveEwin(gwins[i], x, y);
- }
+ GetWinXY(gwins[i]->win, &x, &y);
+ x += (dx * root.w * ax) / p->w;
+ y += (dy * root.h * ay) / p->h;
+ MoveEwin(gwins[i], x, y);
}
- if (gwins)
- Efree(gwins);
}
+ if (gwins)
+ Efree(gwins);
+ break;
}
+
+ return used;
}
-void
+int
PagersEventMouseDown(XEvent * ev)
{
int i, num;
@@ -1620,7 +1627,7 @@
p = FindPager(ev->xbutton.window);
if (!p)
- return;
+ return 0;
gwins =
ListWinGroupMembersForEwin(p->hi_ewin, ACTION_MOVE, mode.nogroup, &num);
@@ -1684,18 +1691,24 @@
mode.context_pager = p;
}
}
+
+ return 1;
}
-void
+int
PagersEventMouseUp(XEvent * ev)
{
+ int used = 0;
int i, num;
Pager *p;
EWin *ewin, **gwins;
int pax, pay;
p = FindPager(ev->xbutton.window);
- if ((p) && ((int)ev->xbutton.button == mode.pager_sel_button))
+ if (p == NULL)
+ goto exit;
+
+ if (((int)ev->xbutton.button == mode.pager_sel_button))
{
PagerAreaAt(p, ev->xbutton.x, ev->xbutton.y, &pax, &pay);
GotoDesktop(p->desktop);
@@ -1705,7 +1718,7 @@
}
SetCurrentArea(pax, pay);
}
- else if ((p) && ((int)ev->xbutton.button == mode.pager_win_button))
+ else if (((int)ev->xbutton.button == mode.pager_win_button))
{
if (ev->xbutton.window == p->hi_win)
{
@@ -1893,6 +1906,7 @@
mode.context_pager = NULL;
}
+ exit:
/* unallocate the space that was holding the old positions of the */
/* windows */
if (gwin_px)
@@ -1902,6 +1916,8 @@
Efree(gwin_py);
gwin_py = NULL;
}
+
+ return used;
}
int
-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills. Sign up for IBM's
Free Linux Tutorials. Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs