This patch is merging some duplicate code related
to animation position (I also fixed most of the errors reported by checkpatch).

---
 src/actions.c | 110 ++++++++++++++++++++++++++--------------------------------
 1 file changed, 50 insertions(+), 60 deletions(-)

diff --git a/src/actions.c b/src/actions.c
index ae326a1..8a5ff82 100644
--- a/src/actions.c
+++ b/src/actions.c
@@ -60,12 +60,12 @@ static struct {
  int steps;
  int delay;
 } shadePars[5] = {
- {
- SHADE_STEPS_UF, SHADE_DELAY_UF}, {
- SHADE_STEPS_F, SHADE_DELAY_F}, {
- SHADE_STEPS_M, SHADE_DELAY_M}, {
- SHADE_STEPS_S, SHADE_DELAY_S}, {
-SHADE_STEPS_US, SHADE_DELAY_US}};
+ { SHADE_STEPS_UF, SHADE_DELAY_UF },
+ { SHADE_STEPS_F, SHADE_DELAY_F },
+ { SHADE_STEPS_M, SHADE_DELAY_M },
+ { SHADE_STEPS_S, SHADE_DELAY_S },
+ { SHADE_STEPS_US, SHADE_DELAY_US }
+};

 #define UNSHADE         0
 #define SHADE           1
@@ -84,7 +84,8 @@ static int compareTimes(Time t1, Time t2)
 #ifdef ANIMATIONS
 static void shade_animate(WWindow *wwin, Bool what);
 #else
-static inline void shade_animate(WWindow *wwin, Bool what) {
+static inline void shade_animate(WWindow *wwin, Bool what)
+{
  /*
  * This function is empty on purpose, so tell the compiler
  * to not warn about parameters being not used
@@ -291,9 +292,9 @@ void wUnshadeWindow(WWindow *wwin)
 static void save_old_geometry(WWindow *wwin, int directions)
 {
  /* never been saved? */
- if (! wwin->old_geometry.width)
+ if (!wwin->old_geometry.width)
  directions |= SAVE_GEOMETRY_X | SAVE_GEOMETRY_WIDTH;
- if (! wwin->old_geometry.height)
+ if (!wwin->old_geometry.height)
  directions |= SAVE_GEOMETRY_Y | SAVE_GEOMETRY_HEIGHT;

  if (directions & SAVE_GEOMETRY_X)
@@ -584,8 +585,7 @@ static void find_Maximus_geometry(WWindow *wwin,
WArea usableArea, int *new_x, i
  remember_geometry(wwin, &orig.left, &orig.top, &orig.width, &orig.height);
  orig.bottom = orig.top + orig.height;
  orig.right = orig.left + orig.width;
- }
- else
+ } else
  set_window_coords(wwin, &orig);

  /* Try to fully maximize first, then readjust later */
@@ -862,6 +862,7 @@ animateResizeTwist(WScreen *scr, int x, int y, int
w, int h, int fx, int fy, int
  points[3].y = cy + sin(angle + a + WM_PI) * d;
  points[4].x = cx + cos(angle - a) * d;
  points[4].y = cy + sin(angle - a) * d;
+
  XGrabServer(dpy);
  XDrawLines(dpy, scr->root_win, scr->frame_gc, points, 5, CoordModeOrigin);
  XFlush(dpy);
@@ -1038,7 +1039,7 @@ static void mapTransientsFor(WWindow *wwin)
  }
 }

-static WWindow *recursiveTransientFor(WWindow * wwin)
+static WWindow *recursiveTransientFor(WWindow *wwin)
 {
  int i;

@@ -1060,7 +1061,35 @@ static WWindow *recursiveTransientFor(WWindow * wwin)
  return wwin;
 }

-void wIconifyWindow(WWindow * wwin)
+static int getAnimationGeometry(WWindow *wwin, int *ix, int *iy, int
*iw, int *ih)
+{
+ if (!wwin->screen_ptr->flags.startup && !wPreferences.no_animations
+ && !wwin->flags.skip_next_animation && wwin->icon != NULL) {
+ if (!wPreferences.disable_miniwindows
+    && !wwin->flags.net_handle_icon) {
+ *ix = wwin->icon_x;
+ *iy = wwin->icon_y;
+ *iw = wwin->icon->core->width;
+ *ih = wwin->icon->core->height;
+ } else {
+ if (wwin->flags.net_handle_icon) {
+ *ix = wwin->icon_x;
+ *iy = wwin->icon_y;
+ *iw = wwin->icon_w;
+ *ih = wwin->icon_h;
+ } else {
+ *ix = 0;
+ *iy = 0;
+ *iw = wwin->screen_ptr->scr_width;
+ *ih = wwin->screen_ptr->scr_height;
+ }
+ }
+ return 1;
+ }
+ return 0;
+}
+
+void wIconifyWindow(WWindow *wwin)
 {
  XWindowAttributes attribs;
  int present;
@@ -1137,6 +1166,9 @@ void wIconifyWindow(WWindow * wwin)
  unmapTransientsFor(wwin);

  if (present) {
+#ifdef ANIMATIONS
+ int ix, iy, iw, ih;
+#endif
  XUngrabPointer(dpy, CurrentTime);
  wWindowUnmap(wwin);
  /* let all Expose events arrive so that we can repaint
@@ -1150,28 +1182,7 @@ void wIconifyWindow(WWindow * wwin)

  flushExpose();
 #ifdef ANIMATIONS
- if (!wwin->screen_ptr->flags.startup && !wwin->flags.skip_next_animation
-    && !wPreferences.no_animations) {
- int ix, iy, iw, ih;
-
- if (!wPreferences.disable_miniwindows && !wwin->flags.net_handle_icon) {
- ix = wwin->icon_x;
- iy = wwin->icon_y;
- iw = wwin->icon->core->width;
- ih = wwin->icon->core->height;
- } else {
- if (wwin->flags.net_handle_icon) {
- ix = wwin->icon_x;
- iy = wwin->icon_y;
- iw = wwin->icon_w;
- ih = wwin->icon_h;
- } else {
- ix = 0;
- iy = 0;
- iw = wwin->screen_ptr->scr_width;
- ih = wwin->screen_ptr->scr_height;
- }
- }
+ if (getAnimationGeometry(wwin, &ix, &iy, &iw, &ih)) {
  animateResize(wwin->screen_ptr, wwin->frame_x, wwin->frame_y,
       wwin->frame->core->width, wwin->frame->core->height, ix, iy, iw, ih);
  }
@@ -1291,34 +1302,13 @@ void wDeiconifyWindow(WWindow *wwin)
  /* if the window is in another workspace, do it silently */
  if (!netwm_hidden) {
 #ifdef ANIMATIONS
- if (!wwin->screen_ptr->flags.startup && !wPreferences.no_animations
-    && !wwin->flags.skip_next_animation && wwin->icon != NULL) {
- int ix, iy, iw, ih;
-
- if (!wPreferences.disable_miniwindows
-    && !wwin->flags.net_handle_icon) {
- ix = wwin->icon_x;
- iy = wwin->icon_y;
- iw = wwin->icon->core->width;
- ih = wwin->icon->core->height;
- } else {
- if (wwin->flags.net_handle_icon) {
- ix = wwin->icon_x;
- iy = wwin->icon_y;
- iw = wwin->icon_w;
- ih = wwin->icon_h;
- } else {
- ix = 0;
- iy = 0;
- iw = wwin->screen_ptr->scr_width;
- ih = wwin->screen_ptr->scr_height;
- }
- }
+ int ix, iy, iw, ih;
+ if (getAnimationGeometry(wwin, &ix, &iy, &iw, &ih)) {
  animateResize(wwin->screen_ptr, ix, iy, iw, ih,
       wwin->frame_x, wwin->frame_y,
       wwin->frame->core->width, wwin->frame->core->height);
  }
-#endif /* ANIMATIONS */
+#endif
  wwin->flags.skip_next_animation = 0;
  XGrabServer(dpy);
  if (!wwin->flags.shaded)
@@ -1970,7 +1960,7 @@ static void shade_animate(WWindow *wwin, Bool what)
  if (wwin->flags.skip_next_animation || wPreferences.no_animations)
  return;

- switch(what) {
+ switch (what) {
  case SHADE:
  if (!wwin->screen_ptr->flags.startup) {
  /* do the shading animation */
-- 
1.8.3.2

Attachment: 0001-wmaker-src-action.c-merge-duplicate-code.patch
Description: Binary data

Reply via email to