Sat Mar 25 17:32:16 PST 2000
(Mandrake) This is still slightly hacking xinerama support - needs some more work. some things will still pop up inbetween heads, but for the most part windows will pop up on the head that is currently focused and will pop up without going between heads. SVN revision: 2332
This commit is contained in:
parent
a613c5026f
commit
979cac375a
|
@ -4433,3 +4433,14 @@ Another fine patch from Marius Eriksen <marius@linux.com>. Gives windows the
|
|||
focus when they are cycled through in the focuslist. Enabled by default, as
|
||||
it's nice behaviour, but toggleable of course =)
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Sat Mar 25 17:32:16 PST 2000
|
||||
(Mandrake)
|
||||
|
||||
This is still slightly hacking xinerama support - needs some more work.
|
||||
some things will still pop up inbetween heads, but for the most part windows
|
||||
will pop up on the head that is currently focused and will pop up without
|
||||
going between heads.
|
||||
|
||||
|
|
|
@ -1181,11 +1181,11 @@ doMoveEnd(void *params)
|
|||
if (gwins[i]->floating)
|
||||
MoveEwinToDesktopAt(gwins[i], d,
|
||||
gwins[i]->x - (desks.desk[d].x -
|
||||
desks.desk[gwins[i]->
|
||||
desktop].x),
|
||||
desks.
|
||||
desk[gwins[i]->desktop].x),
|
||||
gwins[i]->y - (desks.desk[d].y -
|
||||
desks.desk[gwins[i]->
|
||||
desktop].y));
|
||||
desks.
|
||||
desk[gwins[i]->desktop].y));
|
||||
else
|
||||
MoveEwinToDesktopAt(gwins[i], d, gwins[i]->x, gwins[i]->y);
|
||||
gwins[i]->floating = 0;
|
||||
|
@ -1497,7 +1497,8 @@ doCleanup(void *params)
|
|||
k++;
|
||||
|
||||
}
|
||||
ArrangeRects(fixed, k, floating, j, ret, 0, 0, root.w, root.h, method);
|
||||
ArrangeRects(fixed, k, floating, j, ret, 0, 0, root.w, root.h, method,
|
||||
0);
|
||||
for (i = 0; i < (j + k); i++)
|
||||
{
|
||||
if (ret[i].data)
|
||||
|
|
24
src/areas.c
24
src/areas.c
|
@ -357,13 +357,13 @@ SetCurrentArea(int ax, int ay)
|
|||
lst[i]->x -
|
||||
(root.w *
|
||||
(ax -
|
||||
desks.desk[desks.current].
|
||||
current_area_x)),
|
||||
desks.desk[desks.
|
||||
current].current_area_x)),
|
||||
lst[i]->y -
|
||||
(root.h *
|
||||
(ay -
|
||||
desks.desk[desks.current].
|
||||
current_area_y)));
|
||||
desks.desk[desks.
|
||||
current].current_area_y)));
|
||||
if (setflip)
|
||||
mode.flipp = 0;
|
||||
lst[i]->area_x = a1;
|
||||
|
@ -394,13 +394,13 @@ SetCurrentArea(int ax, int ay)
|
|||
x -
|
||||
(root.w *
|
||||
(ax -
|
||||
desks.desk[desks.
|
||||
current].current_area_x)),
|
||||
desks.desk[desks.current].
|
||||
current_area_x)),
|
||||
y -
|
||||
(root.h *
|
||||
(ay -
|
||||
desks.desk[desks.
|
||||
current].current_area_y)));
|
||||
desks.desk[desks.current].
|
||||
current_area_y)));
|
||||
}
|
||||
}
|
||||
/* if we're not moving it... move it across */
|
||||
|
@ -419,13 +419,13 @@ SetCurrentArea(int ax, int ay)
|
|||
lst[i]->x -
|
||||
(root.w *
|
||||
(ax -
|
||||
desks.desk[desks.current].
|
||||
current_area_x)),
|
||||
desks.desk[desks.
|
||||
current].current_area_x)),
|
||||
lst[i]->y -
|
||||
(root.h *
|
||||
(ay -
|
||||
desks.desk[desks.current].
|
||||
current_area_y)));
|
||||
desks.desk[desks.
|
||||
current].current_area_y)));
|
||||
if (setflip)
|
||||
mode.flipp = 0;
|
||||
lst[i]->area_x = a1;
|
||||
|
|
148
src/arrange.c
148
src/arrange.c
|
@ -1,18 +1,18 @@
|
|||
/*
|
||||
* Copyright (C) 2000 Carsten Haitzler, Geoff Harrison and various contributors
|
||||
* *
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to
|
||||
* deal in the Software without restriction, including without limitation the
|
||||
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
* *
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies of the Software, its documentation and marketing & publicity
|
||||
* materials, and acknowledgment shall be given in the documentation, materials
|
||||
* and software packages that this Software was used.
|
||||
* *
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
|
@ -74,7 +74,7 @@ ArrangeSwapList(RectBox * list, int a, int b)
|
|||
void
|
||||
ArrangeRects(RectBox * fixed, int fixed_count, RectBox * floating,
|
||||
int floating_count, RectBox * sorted, int startx, int starty,
|
||||
int width, int height, int policy)
|
||||
int width, int height, int policy, char initial_window)
|
||||
{
|
||||
int num_sorted = 0;
|
||||
int xsize = 0, ysize = 0;
|
||||
|
@ -90,6 +90,59 @@ ArrangeRects(RectBox * fixed, int fixed_count, RectBox * floating,
|
|||
|
||||
EDBUG(7, "ArrangeRects");
|
||||
|
||||
#ifdef HAS_XINERAMA
|
||||
if (initial_window)
|
||||
{
|
||||
if (xinerama_active)
|
||||
{
|
||||
Window rt, ch;
|
||||
int d;
|
||||
unsigned int ud;
|
||||
int pointer_x, pointer_y;
|
||||
int num;
|
||||
XineramaScreenInfo *screens;
|
||||
|
||||
XQueryPointer(disp, root.win, &rt, &ch, &pointer_x, &pointer_y,
|
||||
&d, &d, &ud);
|
||||
|
||||
screens = XineramaQueryScreens(disp, &num);
|
||||
for (i = 0; i < num; i++)
|
||||
{
|
||||
if (pointer_x >= screens[i].x_org)
|
||||
{
|
||||
if (pointer_x <= (screens[i].width + screens[i].x_org))
|
||||
{
|
||||
if (pointer_y >= screens[i].y_org)
|
||||
{
|
||||
if (pointer_y <= (screens[i].height +
|
||||
screens[i].y_org))
|
||||
{
|
||||
if (screens[i].x_org > startx)
|
||||
startx = screens[i].x_org;
|
||||
if ((screens[i].x_org + screens[i].width)
|
||||
< width)
|
||||
width =
|
||||
screens[i].x_org + screens[i].width;
|
||||
if (screens[i].y_org > starty)
|
||||
starty = screens[i].y_org;
|
||||
if ((screens[i].y_org + screens[i].height)
|
||||
< height)
|
||||
height =
|
||||
screens[i].y_org +
|
||||
screens[i].height;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
XFree(screens);
|
||||
}
|
||||
}
|
||||
#else
|
||||
initial_window = 0;
|
||||
#endif
|
||||
|
||||
switch (policy)
|
||||
{
|
||||
case ARRANGE_VERBATIM:
|
||||
|
@ -356,15 +409,23 @@ ArrangeRects(RectBox * fixed, int fixed_count, RectBox * floating,
|
|||
a2 = (spaces[k].y + (spaces[k].h >> 1)) -
|
||||
(floating[i].y + (floating[i].h >> 1));
|
||||
if (a1 >= 0)
|
||||
sorted[num_sorted].x = spaces[k].x;
|
||||
{
|
||||
sorted[num_sorted].x = spaces[k].x;
|
||||
}
|
||||
else
|
||||
sorted[num_sorted].x =
|
||||
spaces[k].x + spaces[k].w - floating[i].w;
|
||||
{
|
||||
sorted[num_sorted].x =
|
||||
spaces[k].x + spaces[k].w - floating[i].w;
|
||||
}
|
||||
if (a2 >= 0)
|
||||
sorted[num_sorted].y = spaces[k].y;
|
||||
{
|
||||
sorted[num_sorted].y = spaces[k].y;
|
||||
}
|
||||
else
|
||||
sorted[num_sorted].y =
|
||||
spaces[k].y + spaces[k].h - floating[i].h;
|
||||
{
|
||||
sorted[num_sorted].y =
|
||||
spaces[k].y + spaces[k].h - floating[i].h;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -380,13 +441,14 @@ ArrangeRects(RectBox * fixed, int fixed_count, RectBox * floating,
|
|||
else
|
||||
leftover[num_leftover++] = i;
|
||||
}
|
||||
/* ok we cant fit everything in this baby.... time fit the leftovers into the */
|
||||
/* leftover space */
|
||||
|
||||
/* ok we cant fit everything in this baby.... time fit */
|
||||
/*the leftovers into the leftover space */
|
||||
for (i = 0; i < num_leftover; i++)
|
||||
{
|
||||
xsize = 0;
|
||||
ysize = 0;
|
||||
/* put all the sorted rects into the xy arrays */
|
||||
/* put all the sorted rects into the xy arrays */
|
||||
xsize = ArrangeAddToList(&xarray, xsize, 0);
|
||||
xsize = ArrangeAddToList(&xarray, xsize, width);
|
||||
ysize = ArrangeAddToList(&yarray, ysize, 0);
|
||||
|
@ -404,7 +466,7 @@ ArrangeRects(RectBox * fixed, int fixed_count, RectBox * floating,
|
|||
ysize =
|
||||
ArrangeAddToList(&yarray, ysize, sorted[j].y + sorted[j].h);
|
||||
}
|
||||
/* fill the allocation array */
|
||||
/* fill the allocation array */
|
||||
for (j = 0; j < (xsize - 1) * (ysize - 1); filled[j++] = 0);
|
||||
for (j = 0; j < num_sorted; j++)
|
||||
{
|
||||
|
@ -446,12 +508,12 @@ ArrangeRects(RectBox * fixed, int fixed_count, RectBox * floating,
|
|||
}
|
||||
}
|
||||
num_spaces = 0;
|
||||
/* create list of all "spaces" */
|
||||
/* create list of all "spaces" */
|
||||
for (y = 0; y < ysize - 1; y++)
|
||||
{
|
||||
for (x = 0; x < xsize - 1; x++)
|
||||
{
|
||||
/* if the square is empty "grow" the space */
|
||||
/* if the square is empty "grow" the space */
|
||||
if (!filled[(y * (xsize - 1)) + x])
|
||||
{
|
||||
int can_expand_x = 1;
|
||||
|
@ -512,7 +574,7 @@ ArrangeRects(RectBox * fixed, int fixed_count, RectBox * floating,
|
|||
}
|
||||
}
|
||||
}
|
||||
/* find the first space that fits */
|
||||
/* find the first space that fits */
|
||||
k = -1;
|
||||
sort = 0x7fffffff;
|
||||
a1 = floating[leftover[i]].w * floating[leftover[i]].h;
|
||||
|
@ -526,7 +588,7 @@ ArrangeRects(RectBox * fixed, int fixed_count, RectBox * floating,
|
|||
sort = a1 - a2;
|
||||
}
|
||||
}
|
||||
/* if there's a small space ... */
|
||||
/* if there's a small space ... */
|
||||
if (k >= 0)
|
||||
{
|
||||
sorted[num_sorted].x = spaces[k].x;
|
||||
|
@ -544,9 +606,10 @@ ArrangeRects(RectBox * fixed, int fixed_count, RectBox * floating,
|
|||
sorted[num_sorted].y = starty;
|
||||
num_sorted++;
|
||||
}
|
||||
/* there is no room - put it centered (but dont put top left off screen) */
|
||||
else
|
||||
{
|
||||
/* there is no room - put it centered */
|
||||
/* (but dont put top left off screen) */
|
||||
sorted[num_sorted].data = floating[leftover[i]].data;
|
||||
sorted[num_sorted].x = (width - floating[leftover[i]].w) / 2;
|
||||
sorted[num_sorted].y = (height - floating[leftover[i]].h) / 2;
|
||||
|
@ -559,7 +622,7 @@ ArrangeRects(RectBox * fixed, int fixed_count, RectBox * floating,
|
|||
num_sorted++;
|
||||
}
|
||||
}
|
||||
/* free up memory */
|
||||
/* free up memory */
|
||||
Efree(xarray);
|
||||
Efree(yarray);
|
||||
Efree(filled);
|
||||
|
@ -618,7 +681,9 @@ SnapEwin(EWin * ewin, int dx, int dy, int *new_dx, int *new_dy)
|
|||
if (dx < 0)
|
||||
{
|
||||
if (IN_BELOW(ewin->x + dx, 0, screen_snap_dist) && (ewin->x >= 0))
|
||||
dx = 0 - ewin->x;
|
||||
{
|
||||
dx = 0 - ewin->x;
|
||||
}
|
||||
else if (lst)
|
||||
{
|
||||
for (i = 0; i < num; i++)
|
||||
|
@ -651,7 +716,9 @@ SnapEwin(EWin * ewin, int dx, int dy, int *new_dx, int *new_dy)
|
|||
{
|
||||
if (IN_ABOVE(ewin->x + ewin->w + dx, root.w, screen_snap_dist)
|
||||
&& ((ewin->x + ewin->w) <= root.w))
|
||||
dx = root.w - (ewin->x + ewin->w);
|
||||
{
|
||||
dx = root.w - (ewin->x + ewin->w);
|
||||
}
|
||||
else if (lst)
|
||||
{
|
||||
for (i = 0; i < num; i++)
|
||||
|
@ -682,7 +749,9 @@ SnapEwin(EWin * ewin, int dx, int dy, int *new_dx, int *new_dy)
|
|||
if (dy < 0)
|
||||
{
|
||||
if (IN_BELOW(ewin->y + dy, 0, screen_snap_dist) && (ewin->y >= 0))
|
||||
dy = 0 - ewin->y;
|
||||
{
|
||||
dy = 0 - ewin->y;
|
||||
}
|
||||
else if (lst)
|
||||
{
|
||||
for (i = 0; i < num; i++)
|
||||
|
@ -715,7 +784,9 @@ SnapEwin(EWin * ewin, int dx, int dy, int *new_dx, int *new_dy)
|
|||
{
|
||||
if (IN_ABOVE(ewin->y + ewin->h + dy, root.h, screen_snap_dist)
|
||||
&& ((ewin->y + ewin->h) <= root.h))
|
||||
dy = root.h - (ewin->y + ewin->h);
|
||||
{
|
||||
dy = root.h - (ewin->y + ewin->h);
|
||||
}
|
||||
else if (lst)
|
||||
{
|
||||
for (i = 0; i < num; i++)
|
||||
|
@ -749,12 +820,14 @@ SnapEwin(EWin * ewin, int dx, int dy, int *new_dx, int *new_dy)
|
|||
{
|
||||
if (!last_res)
|
||||
{
|
||||
/* AUDIO_PLAY("SOUND_MOVE_RESIST"); */
|
||||
/* AUDIO_PLAY("SOUND_MOVE_RESIST"); */
|
||||
last_res = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
last_res = 0;
|
||||
{
|
||||
last_res = 0;
|
||||
}
|
||||
*new_dx = dx;
|
||||
*new_dy = dy;
|
||||
EDBUG_RETURN_;
|
||||
|
@ -781,8 +854,7 @@ ArrangeEwin(EWin * ewin)
|
|||
{
|
||||
if ((lst[i] != ewin) && (!lst[i]->iconified) &&
|
||||
(!lst[i]->ignorearrange) && (lst[i]->layer != 0) &&
|
||||
(((lst
|
||||
[i]->area_x == desks.desk[ewin->desktop].current_area_x)
|
||||
(((lst[i]->area_x == desks.desk[ewin->desktop].current_area_x)
|
||||
&& (lst[i]->area_y ==
|
||||
desks.desk[ewin->desktop].current_area_y)
|
||||
&& (lst[i]->desktop == ewin->desktop)) || (lst[i]->sticky)))
|
||||
|
@ -809,9 +881,13 @@ ArrangeEwin(EWin * ewin)
|
|||
if ((fixed[j].w > 0) && (fixed[j].h > 0))
|
||||
{
|
||||
if (!(lst[i])->never_use_area)
|
||||
fixed[j].p = (lst[i])->layer;
|
||||
{
|
||||
fixed[j].p = (lst[i])->layer;
|
||||
}
|
||||
else
|
||||
fixed[j].p = 50;
|
||||
{
|
||||
fixed[j].p = 50;
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
@ -849,9 +925,13 @@ ArrangeEwin(EWin * ewin)
|
|||
if ((fixed[j].w > 0) && (fixed[j].h > 0))
|
||||
{
|
||||
if (blst[i]->sticky)
|
||||
fixed[j].p = 50;
|
||||
{
|
||||
fixed[j].p = 50;
|
||||
}
|
||||
else
|
||||
fixed[j].p = 0;
|
||||
{
|
||||
fixed[j].p = 0;
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
@ -867,12 +947,12 @@ ArrangeEwin(EWin * ewin)
|
|||
if (mode.kde_support)
|
||||
{
|
||||
ArrangeRects(fixed, j, &newrect, 1, ret, mode.kde_x1, mode.kde_y1,
|
||||
mode.kde_x2, mode.kde_y2, ARRANGE_BY_SIZE);
|
||||
mode.kde_x2, mode.kde_y2, ARRANGE_BY_SIZE, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
ArrangeRects(fixed, j, &newrect, 1, ret, 0, 0, root.w, root.h,
|
||||
ARRANGE_BY_SIZE);
|
||||
ARRANGE_BY_SIZE, 1);
|
||||
}
|
||||
for (i = 0; i < j + 1; i++)
|
||||
{
|
||||
|
|
|
@ -39,4 +39,6 @@ RectBox;
|
|||
void ArrangeRects(RectBox * fixed, int fixed_count,
|
||||
RectBox * floating, int floating_count,
|
||||
RectBox * sorted, int startx, int starty,
|
||||
int width, int height, int policy);
|
||||
int width, int height, int policy,
|
||||
|
||||
char initial_window);
|
||||
|
|
|
@ -501,6 +501,7 @@ AddToFamily(Window win)
|
|||
cangrab = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* if it hasn't been placed yet.... find a spot for it */
|
||||
if ((!ewin->client.already_placed) && (!manplace))
|
||||
{
|
||||
|
@ -604,13 +605,13 @@ AddToFamily(Window win)
|
|||
{
|
||||
ArrangeRects(fixed, j, &newrect, 1, ret, mode.kde_x1,
|
||||
mode.kde_y1, mode.kde_x2, mode.kde_y2,
|
||||
ARRANGE_BY_SIZE);
|
||||
ARRANGE_BY_SIZE, 1);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
ArrangeRects(fixed, j, &newrect, 1, ret, 0, 0, root.w, root.h,
|
||||
ARRANGE_BY_SIZE);
|
||||
ARRANGE_BY_SIZE, 1);
|
||||
}
|
||||
for (i = 0; i < j + 1; i++)
|
||||
{
|
||||
|
@ -1176,12 +1177,12 @@ CalcEwinWinpart(EWin * ewin, int i)
|
|||
if (bottomright == -1)
|
||||
{
|
||||
ox =
|
||||
((ewin->border->
|
||||
part[i].geom.bottomright.x.percent * ewin->w) >> 10) +
|
||||
((ewin->
|
||||
border->part[i].geom.bottomright.x.percent * ewin->w) >> 10) +
|
||||
ewin->border->part[i].geom.bottomright.x.absolute;
|
||||
oy =
|
||||
((ewin->border->
|
||||
part[i].geom.bottomright.y.percent * ewin->h) >> 10) +
|
||||
((ewin->
|
||||
border->part[i].geom.bottomright.y.percent * ewin->h) >> 10) +
|
||||
ewin->border->part[i].geom.bottomright.y.absolute;
|
||||
}
|
||||
else if (bottomright >= 0)
|
||||
|
@ -2577,8 +2578,8 @@ MinShadeSize(EWin * ewin, int *mw, int *mh)
|
|||
case 0:
|
||||
case 1:
|
||||
p = ewin->w;
|
||||
/* get the correct width, based on the borderparts that are remaining */
|
||||
/* visible */
|
||||
/* get the correct width, based on the borderparts that */
|
||||
/*are remaining visible */
|
||||
leftborderwidth = rightborderwidth = 0;
|
||||
for (i = 0; i < ewin->border->num_winparts; i++)
|
||||
{
|
||||
|
@ -2592,9 +2593,8 @@ MinShadeSize(EWin * ewin, int *mw, int *mh)
|
|||
(ewin->w - ewin->border->border.right) > rightborderwidth)
|
||||
rightborderwidth =
|
||||
(ewin->bits[i].x + ewin->bits[i].w) - (ewin->w -
|
||||
ewin->
|
||||
border->border.
|
||||
right);
|
||||
ewin->border->
|
||||
border.right);
|
||||
}
|
||||
}
|
||||
ewin->w = rightborderwidth + leftborderwidth;
|
||||
|
@ -2620,9 +2620,8 @@ MinShadeSize(EWin * ewin, int *mw, int *mh)
|
|||
bottomborderwidth)
|
||||
bottomborderwidth =
|
||||
(ewin->bits[i].y + ewin->bits[i].h) - (ewin->h -
|
||||
ewin->
|
||||
border->border.
|
||||
bottom);
|
||||
ewin->border->
|
||||
border.bottom);
|
||||
}
|
||||
}
|
||||
ewin->h = bottomborderwidth + topborderwidth;
|
||||
|
@ -2857,7 +2856,8 @@ ShadeEwin(EWin * ewin)
|
|||
ewin->h);
|
||||
CalcEwinSizes(ewin);
|
||||
if (ewin->client.shaped)
|
||||
EShapeCombineShape(disp, ewin->win_container, ShapeBounding,
|
||||
EShapeCombineShape(disp, ewin->win_container,
|
||||
ShapeBounding,
|
||||
-(ewin->client.w - ww), 0,
|
||||
ewin->client.win, ShapeBounding,
|
||||
ShapeSet);
|
||||
|
@ -2912,7 +2912,8 @@ ShadeEwin(EWin * ewin)
|
|||
ewin->h);
|
||||
CalcEwinSizes(ewin);
|
||||
if (ewin->client.shaped)
|
||||
EShapeCombineShape(disp, ewin->win_container, ShapeBounding,
|
||||
EShapeCombineShape(disp, ewin->win_container,
|
||||
ShapeBounding,
|
||||
0, 0,
|
||||
ewin->client.win, ShapeBounding,
|
||||
ShapeSet);
|
||||
|
@ -2965,7 +2966,8 @@ ShadeEwin(EWin * ewin)
|
|||
ewin->h);
|
||||
CalcEwinSizes(ewin);
|
||||
if (ewin->client.shaped)
|
||||
EShapeCombineShape(disp, ewin->win_container, ShapeBounding,
|
||||
EShapeCombineShape(disp, ewin->win_container,
|
||||
ShapeBounding,
|
||||
0, -(ewin->client.h - hh),
|
||||
ewin->client.win, ShapeBounding,
|
||||
ShapeSet);
|
||||
|
@ -3021,7 +3023,8 @@ ShadeEwin(EWin * ewin)
|
|||
ewin->h);
|
||||
CalcEwinSizes(ewin);
|
||||
if (ewin->client.shaped)
|
||||
EShapeCombineShape(disp, ewin->win_container, ShapeBounding,
|
||||
EShapeCombineShape(disp, ewin->win_container,
|
||||
ShapeBounding,
|
||||
0, 0,
|
||||
ewin->client.win, ShapeBounding,
|
||||
ShapeSet);
|
||||
|
@ -3119,7 +3122,8 @@ UnShadeEwin(EWin * ewin)
|
|||
ewin->h);
|
||||
CalcEwinSizes(ewin);
|
||||
if (ewin->client.shaped)
|
||||
EShapeCombineShape(disp, ewin->win_container, ShapeBounding,
|
||||
EShapeCombineShape(disp, ewin->win_container,
|
||||
ShapeBounding,
|
||||
-(ewin->client.w -
|
||||
(ewin->w - ewin->border->border.left -
|
||||
ewin->border->border.right)),
|
||||
|
@ -3180,7 +3184,8 @@ UnShadeEwin(EWin * ewin)
|
|||
ewin->h);
|
||||
CalcEwinSizes(ewin);
|
||||
if (ewin->client.shaped)
|
||||
EShapeCombineShape(disp, ewin->win_container, ShapeBounding,
|
||||
EShapeCombineShape(disp, ewin->win_container,
|
||||
ShapeBounding,
|
||||
0,
|
||||
0,
|
||||
ewin->client.win, ShapeBounding,
|
||||
|
@ -3235,7 +3240,8 @@ UnShadeEwin(EWin * ewin)
|
|||
ewin->h);
|
||||
CalcEwinSizes(ewin);
|
||||
if (ewin->client.shaped)
|
||||
EShapeCombineShape(disp, ewin->win_container, ShapeBounding,
|
||||
EShapeCombineShape(disp, ewin->win_container,
|
||||
ShapeBounding,
|
||||
0,
|
||||
-(ewin->client.h -
|
||||
(ewin->h - ewin->border->border.top -
|
||||
|
@ -3297,7 +3303,8 @@ UnShadeEwin(EWin * ewin)
|
|||
ewin->w, ewin->h);
|
||||
CalcEwinSizes(ewin);
|
||||
if (ewin->client.shaped)
|
||||
EShapeCombineShape(disp, ewin->win_container, ShapeBounding,
|
||||
EShapeCombineShape(disp, ewin->win_container,
|
||||
ShapeBounding,
|
||||
0,
|
||||
0,
|
||||
ewin->client.win, ShapeBounding,
|
||||
|
|
33
src/dialog.c
33
src/dialog.c
|
@ -1081,8 +1081,8 @@ DialogRealizeItem(Dialog * d, DItem * di)
|
|||
ImlibImage *im;
|
||||
|
||||
im =
|
||||
ELoadImage(di->item.slider.ic_border->norm.normal->
|
||||
im_file);
|
||||
ELoadImage(di->item.slider.ic_border->norm.
|
||||
normal->im_file);
|
||||
if (im)
|
||||
{
|
||||
di->item.slider.border_orig_w = im->rgb_width;
|
||||
|
@ -1356,23 +1356,25 @@ DialogRealizeItem(Dialog * d, DItem * di)
|
|||
dii->item.check_button.check_win,
|
||||
dii->x, dii->y +
|
||||
((dii->h -
|
||||
dii->item.check_button.
|
||||
check_orig_h) / 2),
|
||||
dii->item.check_button.
|
||||
check_orig_w,
|
||||
dii->item.check_button.
|
||||
check_orig_h);
|
||||
dii->item.
|
||||
check_button.check_orig_h) /
|
||||
2),
|
||||
dii->item.
|
||||
check_button.check_orig_w,
|
||||
dii->item.
|
||||
check_button.check_orig_h);
|
||||
if (dii->type == DITEM_RADIOBUTTON)
|
||||
EMoveResizeWindow(disp,
|
||||
dii->item.radio_button.radio_win,
|
||||
dii->x, dii->y +
|
||||
((dii->h -
|
||||
dii->item.radio_button.
|
||||
radio_orig_h) / 2),
|
||||
dii->item.radio_button.
|
||||
radio_orig_w,
|
||||
dii->item.radio_button.
|
||||
radio_orig_h);
|
||||
dii->item.
|
||||
radio_button.radio_orig_h) /
|
||||
2),
|
||||
dii->item.
|
||||
radio_button.radio_orig_w,
|
||||
dii->item.
|
||||
radio_button.radio_orig_h);
|
||||
if (dii->type == DITEM_AREA)
|
||||
{
|
||||
dii->item.area.w = dii->w -
|
||||
|
@ -1882,7 +1884,8 @@ DialogItemAreaSetSize(DItem * di, int w, int h)
|
|||
di->item.area.h = h;
|
||||
}
|
||||
|
||||
Window DialogItemAreaGetWindow(DItem * di)
|
||||
Window
|
||||
DialogItemAreaGetWindow(DItem * di)
|
||||
{
|
||||
return di->item.area.area_win;
|
||||
}
|
||||
|
|
|
@ -494,8 +494,7 @@ HandleMotion(XEvent * ev)
|
|||
(gwins
|
||||
[i]->reqx,
|
||||
gwins[i]->x,
|
||||
mode.
|
||||
edge_snap_dist)))))))
|
||||
mode.edge_snap_dist)))))))
|
||||
{
|
||||
jumpx = 1;
|
||||
ndx = gwins[i]->reqx - gwins[i]->x + dx;
|
||||
|
@ -518,8 +517,7 @@ HandleMotion(XEvent * ev)
|
|||
(gwins
|
||||
[i]->reqy,
|
||||
gwins[i]->y,
|
||||
mode.
|
||||
edge_snap_dist)))))))
|
||||
mode.edge_snap_dist)))))))
|
||||
{
|
||||
jumpy = 1;
|
||||
ndy = gwins[i]->reqy - gwins[i]->y + dy;
|
||||
|
@ -982,8 +980,8 @@ HandleMotion(XEvent * ev)
|
|||
{
|
||||
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.base_h - di->item.slider.knob_h -
|
||||
di->item.slider.wanted_val) *
|
||||
(di->item.slider.upper -
|
||||
di->item.slider.lower)) /
|
||||
|
@ -2509,13 +2507,13 @@ HandleMouseUp(XEvent * ev)
|
|||
HideEwin(gwins[i]);
|
||||
MoveEwin(gwins[i], gwin_px[i] +
|
||||
((desks.desk
|
||||
[gwins[i]->desktop].
|
||||
current_area_x) -
|
||||
[gwins[i]->
|
||||
desktop].current_area_x) -
|
||||
p->hi_ewin->area_x) * root.w,
|
||||
gwin_py[i] +
|
||||
((desks.
|
||||
desk[gwins[i]->desktop].
|
||||
current_area_y) -
|
||||
((desks.desk
|
||||
[gwins[i]->
|
||||
desktop].current_area_y) -
|
||||
p->hi_ewin->area_y) * root.h);
|
||||
if (was_shaded != gwins[i]->shaded)
|
||||
InstantShadeEwin(gwins[i]);
|
||||
|
|
|
@ -263,7 +263,8 @@ cp(char *s, char *ss)
|
|||
EDBUG_RETURN_;
|
||||
}
|
||||
|
||||
time_t moddate(char *s)
|
||||
time_t
|
||||
moddate(char *s)
|
||||
{
|
||||
struct stat st;
|
||||
|
||||
|
|
|
@ -585,6 +585,7 @@ IPC_Xinerama(char *params, Client * c)
|
|||
strcat(stufftosend, s);
|
||||
}
|
||||
CommsSend(c, stufftosend);
|
||||
XFree(screens);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1744,8 +1745,8 @@ IPC_ImageClass(char *params, Client * c)
|
|||
if (iclass->norm.normal->real_file)
|
||||
im =
|
||||
Imlib_load_image(id,
|
||||
iclass->norm.normal->
|
||||
real_file);
|
||||
iclass->norm.
|
||||
normal->real_file);
|
||||
if (im)
|
||||
{
|
||||
Esnprintf(buf, sizeof(buf),
|
||||
|
|
|
@ -274,7 +274,8 @@ ShowMenu(Menu * m, char noshow)
|
|||
EWin *ewin;
|
||||
int x, y, wx = 0, wy = 0; /* wx, wy added to stop menus
|
||||
|
||||
* from appearing offscreen */
|
||||
*
|
||||
* * from appearing offscreen */
|
||||
unsigned int w, h, mw, mh;
|
||||
|
||||
EDBUG(5, "ShowMenu");
|
||||
|
|
|
@ -126,7 +126,8 @@ GetNetText(char *URL)
|
|||
|
||||
}
|
||||
|
||||
time_t GetNetFileDate(char *URL)
|
||||
time_t
|
||||
GetNetFileDate(char *URL)
|
||||
{
|
||||
|
||||
#ifdef AUTOUPGRADE
|
||||
|
|
|
@ -37,7 +37,8 @@ static Window sc_window = 0;
|
|||
static Atom sc_atom = 0;
|
||||
static ImlibData *imd = NULL;
|
||||
|
||||
Window SC_GetDestWin(void)
|
||||
Window
|
||||
SC_GetDestWin(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -751,8 +751,7 @@ SetupEnv()
|
|||
return;
|
||||
}
|
||||
|
||||
Window
|
||||
MakeExtInitWin(void)
|
||||
Window MakeExtInitWin(void)
|
||||
{
|
||||
Display *d2;
|
||||
Window win;
|
||||
|
|
169
src/tooltips.c
169
src/tooltips.c
|
@ -679,8 +679,8 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
ic->norm.normal->im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.normal->
|
||||
im),
|
||||
ic->norm.
|
||||
normal->im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.normal->im),
|
||||
x, y);
|
||||
|
@ -702,11 +702,12 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
ic->norm.normal->im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.normal->
|
||||
im),
|
||||
ic->norm.
|
||||
normal->im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.normal->
|
||||
im), x, y);
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
break;
|
||||
|
@ -722,11 +723,12 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
ic->norm.normal->im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.normal->
|
||||
im),
|
||||
ic->norm.
|
||||
normal->im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.normal->
|
||||
im), x, y);
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
break;
|
||||
|
@ -742,11 +744,12 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
ic->norm.normal->im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.normal->
|
||||
im),
|
||||
ic->norm.
|
||||
normal->im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.normal->
|
||||
im), x, y);
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
break;
|
||||
|
@ -762,11 +765,12 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
ic->norm.normal->im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.normal->
|
||||
im),
|
||||
ic->norm.
|
||||
normal->im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.normal->
|
||||
im), x, y);
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
break;
|
||||
|
@ -782,11 +786,12 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
ic->norm.normal->im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.normal->
|
||||
im),
|
||||
ic->norm.
|
||||
normal->im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.normal->
|
||||
im), x, y);
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
break;
|
||||
|
@ -806,16 +811,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -829,16 +835,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -852,16 +859,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -875,16 +883,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -898,16 +907,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -921,16 +931,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -944,16 +955,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -967,16 +979,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
|
15
src/x.c
15
src/x.c
|
@ -40,7 +40,8 @@ EFreePixmap(Display * display, Pixmap pixmap)
|
|||
XFreePixmap(display, pixmap);
|
||||
}
|
||||
|
||||
Window ECreateWindow(Window parent, int x, int y, int w, int h, int saveunder)
|
||||
Window
|
||||
ECreateWindow(Window parent, int x, int y, int w, int h, int saveunder)
|
||||
{
|
||||
EXID *xid;
|
||||
Window win;
|
||||
|
@ -586,7 +587,8 @@ DelXID(Window win)
|
|||
}
|
||||
}
|
||||
|
||||
Window ECreateEventWindow(Window parent, int x, int y, int w, int h)
|
||||
Window
|
||||
ECreateEventWindow(Window parent, int x, int y, int w, int h)
|
||||
{
|
||||
Window win;
|
||||
XSetWindowAttributes attr;
|
||||
|
@ -602,7 +604,8 @@ Window ECreateEventWindow(Window parent, int x, int y, int w, int h)
|
|||
* create a window which will accept the keyboard focus when no other
|
||||
* windows have it
|
||||
*/
|
||||
Window ECreateFocusWindow(Window parent, int x, int y, int w, int h)
|
||||
Window
|
||||
ECreateFocusWindow(Window parent, int x, int y, int w, int h)
|
||||
{
|
||||
Window win;
|
||||
XSetWindowAttributes attr;
|
||||
|
@ -736,7 +739,8 @@ WinExists(Window win)
|
|||
EDBUG_RETURN(0);
|
||||
}
|
||||
|
||||
Window WindowAtXY_0(Window base, int bx, int by, int x, int y)
|
||||
Window
|
||||
WindowAtXY_0(Window base, int bx, int by, int x, int y)
|
||||
{
|
||||
Window *list = NULL;
|
||||
XWindowAttributes att;
|
||||
|
@ -783,7 +787,8 @@ Window WindowAtXY_0(Window base, int bx, int by, int x, int y)
|
|||
EDBUG_RETURN(base);
|
||||
}
|
||||
|
||||
Window WindowAtXY(int x, int y)
|
||||
Window
|
||||
WindowAtXY(int x, int y)
|
||||
{
|
||||
Window *list = NULL;
|
||||
Window child = 0, parent_win = 0, root_win = 0;
|
||||
|
|
Loading…
Reference in New Issue