chiark / gitweb /
New option: movres.ignore_transience. master debian/1.0.0-7
authorMark Wooding <mdw@distorted.org.uk>
Tue, 6 Dec 2011 18:36:36 +0000 (18:36 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 10 Dec 2011 14:22:50 +0000 (14:22 +0000)
Don't do stuff to transients just because you did them to the master
window.

debian/changelog
debian/patch/005_ignore_transience.patch [new file with mode: 0644]
debian/patch/series

index 9eba312cb9db2a56ce8866274979fe36f2032f19..2fcb9673803ea21d7278dae9232e1cebb9ace2c1 100644 (file)
@@ -1,3 +1,10 @@
+e16 (1.0.0-7) unstable; urgency=low
+
+  * Don't do things (move, iconify, etc.) to transient windows just
+    because you did something to the master window.
+
+ -- Mark Wooding <mdw@distorted.org.uk>  Tue, 06 Dec 2011 18:38:06 +0000
+
 e16 (1.0.0-6) unstable; urgency=low
 
   * Don't raise windows on _NET_ACTIVE_WINDOW.
diff --git a/debian/patch/005_ignore_transience.patch b/debian/patch/005_ignore_transience.patch
new file mode 100644 (file)
index 0000000..1d72648
--- /dev/null
@@ -0,0 +1,143 @@
+Index: e16/src/E.h
+===================================================================
+--- e16.orig/src/E.h   2011-12-06 18:31:59.000000000 +0000
++++ e16/src/E.h        2011-12-06 16:23:55.000000000 +0000
+@@ -216,6 +216,7 @@
+       char                update_while_moving;
+       char                enable_sync_request;
+       char                dragbar_nocover;
++      char              ignore_transience;
+    } movres;
+    struct {
+       int                 movres;
+Index: e16/src/mod-misc.c
+===================================================================
+--- e16.orig/src/mod-misc.c    2011-12-06 18:31:59.000000000 +0000
++++ e16/src/mod-misc.c 2011-12-06 16:24:35.000000000 +0000
+@@ -159,6 +159,7 @@
+    CFG_ITEM_BOOL(Conf, movres.update_while_moving, 0),
+    CFG_ITEM_BOOL(Conf, movres.enable_sync_request, 0),
+    CFG_ITEM_BOOL(Conf, movres.dragbar_nocover, 0),
++   CFG_ITEM_BOOL(Conf, movres.ignore_transience, 1),
+    CFG_ITEM_INT(Conf, opacity.menus, 85),
+    CFG_ITEM_INT(Conf, opacity.movres, 60),
+Index: e16/src/ewin-ops.c
+===================================================================
+--- e16.orig/src/ewin-ops.c    2011-12-06 18:31:59.000000000 +0000
++++ e16/src/ewin-ops.c 2011-12-06 18:23:57.000000000 +0000
+@@ -389,7 +389,8 @@
+ #endif
+      }
+-   if (flags & (MRF_DESK | MRF_MOVE | MRF_FLOAT | MRF_UNFLOAT))
++   if ((flags & (MRF_DESK | MRF_MOVE | MRF_FLOAT | MRF_UNFLOAT)) &&
++       !Conf.movres.ignore_transience)
+      {
+       lst = EwinListTransients(ewin, &num, 0);
+       for (i = 0; i < num; i++)
+@@ -552,20 +553,22 @@
+    ICCCM_Iconify(ewin);
+-   lst = EwinListTransients(ewin, &num, 0);
+-   for (i = 0; i < num; i++)
+-     {
+-      e = lst[i];
+-      if (e->state.iconified)
+-         continue;
++   if (!Conf.movres.ignore_transience) {
++      lst = EwinListTransients(ewin, &num, 0);
++      for (i = 0; i < num; i++)
++      {
++         e = lst[i];
++         if (e->state.iconified)
++            continue;
+-      EwinIconify(e);
+-     }
++         EwinIconify(e);
++      }
+ #if ENABLE_GNOME
+-   if (lst && call_depth == 1)
+-      GNOME_SetClientList();
++      if (lst && call_depth == 1)
++       GNOME_SetClientList();
+ #endif
+    Efree(lst);
++   }
+    EwinStateUpdate(ewin);
+    HintsSetWindowState(ewin);
+@@ -647,20 +650,22 @@
+    EwinShow(ewin);
+    ICCCM_DeIconify(ewin);
+-   lst = EwinListTransients(ewin, &num, 0);
+-   for (i = 0; i < num; i++)
+-     {
+-      e = lst[i];
+-      if (!e->state.iconified)
+-         continue;
++   if (!Conf.movres.ignore_transience) {
++      lst = EwinListTransients(ewin, &num, 0);
++      for (i = 0; i < num; i++)
++      {
++         e = lst[i];
++         if (!e->state.iconified)
++            continue;
+-      EwinDeIconify1(e, dx, dy);
+-     }
++         EwinDeIconify1(e, dx, dy);
++      }
+ #if ENABLE_GNOME
+-   if (lst && call_depth == 1)
+-      GNOME_SetClientList();
++      if (lst && call_depth == 1)
++       GNOME_SetClientList();
+ #endif
+-   Efree(lst);
++      Efree(lst);
++   }
+    EwinStateUpdate(ewin);
+    HintsSetWindowState(ewin);
+Index: e16/src/ewins.c
+===================================================================
+--- e16.orig/src/ewins.c       2011-12-06 18:31:59.000000000 +0000
++++ e16/src/ewins.c    2011-12-06 17:13:30.000000000 +0000
+@@ -1395,10 +1395,12 @@
+    if (num == 0)              /* Quit if stacking is unchanged */
+       goto done;
+-   lst = EwinListTransients(ewin, &num, 1);
+-   for (i = 0; i < num; i++)
+-      EwinRaise(lst[i]);
+-   Efree(lst);
++   if (!Conf.movres.ignore_transience) {
++      lst = EwinListTransients(ewin, &num, 1);
++      for (i = 0; i < num; i++)
++       EwinRaise(lst[i]);
++      Efree(lst);
++   }
+    if (call_depth == 1)
+      {
+@@ -1430,10 +1432,12 @@
+    if (num == 0)              /* Quit if stacking is unchanged */
+       goto done;
+-   lst = EwinListTransientFor(ewin, &num);
+-   for (i = 0; i < num; i++)
+-      EwinLower(lst[i]);
+-   Efree(lst);
++   if (!Conf.movres.ignore_transience) {
++      lst = EwinListTransientFor(ewin, &num);
++      for (i = 0; i < num; i++)
++       EwinLower(lst[i]);
++      Efree(lst);
++   }
+    if (call_depth == 1)
+      {
index e78cc32b6978fbd75f5fd959b3994f92042a6d0b..3cb99e557fb44a6633714db174df1ff9dc0917dd 100644 (file)
@@ -3,3 +3,4 @@
 002_as_needed.patch
 003_compmgr_shape.patch
 004_activate_noraise.patch
+005_ignore_transience.patch