* Add options
authorsebastid <sebastid>
Fri, 2 Sep 2005 07:38:40 +0000 (07:38 +0000)
committersebastid <sebastid@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 2 Sep 2005 07:38:40 +0000 (07:38 +0000)
- e_config->transient.move
- e_config->transient.resize
- e_config->transient.raise
- e_config->transient.lower
- e_config->transient.layer
- e_config->transient.desktop
- e_config->transient.iconify
* Implement
- e_config->transient.raise
- e_config->transient.lower
- e_config->transient.layer
- e_config->transient.desktop
- e_config->transient.iconify
* Show hide border in e_border_desk_set
* Add e_border_layer_set()

SVN revision: 16460

TODO
src/bin/e_border.c
src/bin/e_border.h
src/bin/e_config.c
src/bin/e_config.h
src/bin/e_desk.c
src/bin/e_hints.c
src/bin/e_ipc_handlers.h
src/bin/e_ipc_handlers_list.h
src/modules/pager/e_mod_main.c

diff --git a/TODO b/TODO
index b401661e9c34847a1d14ce810ae053a4c8c56b61..0052f1787a4185f78aa2784b2e05eac31a11cdb6 100644 (file)
--- a/TODO
+++ b/TODO
@@ -26,7 +26,10 @@ Some of the things (in very short form) that need to be done to E17...
 
 * desktopname could reaally be part of pager - and display a full pager layout
   of all desktops and whihc one of them just got selected
+* some sort of gui display of a desktop name (in the pager?)
 * if a parent window is "on top" child dialog windows should also be "on top"
+* transients should have option to always follow parent
+  (move/resize/raise/lower) (and remember this).
 * in addition to smart place should add manual placement and place at pointer
   and maybe a few others.
 * emit signal to submenu entries if they have a submenu shown for them or not
@@ -64,11 +67,8 @@ Some of the things (in very short form) that need to be done to E17...
   to properly choose the border based on client window properties.
 * do something with the icccm urgency field hint
 * different borders for non-resizable windows, shaped windows etc.
-* some sort of gui display of a desktop name (in the pager?)
 * window icons should be able to be chosen if e eapp icon overrides netwm
   icon or the other way around (and remember this).
-* transients should have option to always follow parent
-  (move/resize/raise/lower) (and remember this).
 * actions to make current zone different (warp mouse to there)
 * actions to make the current container different
 * titlebar/border expansion/gadget panel for modules to put window widgets in
index 20101415f49b2e12190fb9be21a19932b0f037c4..5381c7c1d51fff194102e7548dbe1dbd7ddb359e 100644 (file)
@@ -528,6 +528,23 @@ e_border_desk_set(E_Border *bd, E_Desk *desk)
    ev->desk = desk;
    e_object_ref(E_OBJECT(desk));
    ecore_event_add(E_EVENT_BORDER_DESK_SET, ev, _e_border_event_border_desk_set_free, NULL);
+
+   if (bd->desk->visible)
+     e_border_show(bd);
+   else
+     e_border_hide(bd, 1);
+
+   if (e_config->transient.desktop)
+     {
+       Evas_List *l;
+       for (l = bd->children; l; l = l->next)
+         {
+            E_Border *child;
+
+            child = l->data;
+            e_border_desk_set(child, bd->desk);
+         }
+     }
 }
 
 void
@@ -778,11 +795,43 @@ e_border_move_resize(E_Border *bd, int x, int y, int w, int h)
    _e_border_zone_update(bd);
 }
 
+void
+e_border_layer_set(E_Border *bd, int layer)
+{
+   int raise;
+
+   E_OBJECT_CHECK(bd);
+   E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
+
+   raise = e_config->transient.raise;
+   
+   bd->layer = layer;
+   if (e_config->transient.layer)
+     {
+       Evas_List *l;
+
+       /* We need to set raise to one, else the child wont
+        * follow to the new layer. It should be like this,
+        * even if the user usually doesn't want to raise
+        * the children.
+        */
+       e_config->transient.raise = 1;
+       for (l = bd->children; l; l = l->next)
+         {
+            E_Border *child;
+
+            child = l->data;
+            child->layer = layer;
+         }
+     }
+   e_border_raise(bd);
+   e_config->transient.raise = raise;
+}
+
 void
 e_border_raise(E_Border *bd)
 {
    E_Border *above;
-   Evas_List *l;
 
    E_OBJECT_CHECK(bd);
    E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
@@ -808,12 +857,21 @@ e_border_raise(E_Border *bd)
        ev->below = NULL;
        ecore_event_add(E_EVENT_BORDER_LOWER, ev, _e_border_event_border_lower_free, NULL);
      }
-   for (l = bd->children; l; l = l->next)
+
+   if (e_config->transient.raise)
      {
-       E_Border *child;
+       Evas_List *l;
+       for (l = bd->children; l; l = l->next)
+         {
+            E_Border *child;
 
-       child = l->data;
-       e_border_stack_above(child, bd);
+            child = l->data;
+            /* Don't raise iconic children. If the user wants these shown,
+             * thats another option.
+             */
+            if (!child->iconic)
+              e_border_stack_above(child, bd);
+         }
      }
 }
 
@@ -846,6 +904,17 @@ e_border_lower(E_Border *bd)
        ev->above = NULL;
        ecore_event_add(E_EVENT_BORDER_RAISE, ev, _e_border_event_border_raise_free, NULL);
      }
+   if (e_config->transient.lower)
+     {
+       Evas_List *l;
+       for (l = bd->children; l; l = l->next)
+         {
+            E_Border *child;
+
+            child = l->data;
+            e_border_stack_above(child, bd);
+         }
+     }
 }
 
 void
@@ -1411,8 +1480,7 @@ e_border_fullscreen(E_Border *bd)
 
        e_zone_fullscreen_set(bd->zone, 1);
 
-       bd->layer = 200;
-       e_border_raise(bd);
+       e_border_layer_set(bd, 200);
        x = bd->zone->x;
        y = bd->zone->y;
        w = bd->zone->w;
@@ -1453,8 +1521,7 @@ e_border_unfullscreen(E_Border *bd)
        ecore_evas_show(bd->bg_ecore_evas);
 
        /* FIXME: Find right layer */
-       bd->layer = 100;
-       e_border_raise(bd);
+       e_border_layer_set(bd, 100);
 
        e_hints_window_fullscreen_set(bd, 0);
        edje_object_signal_emit(bd->bg_object, "unfullscreen", "");
@@ -1485,6 +1552,19 @@ e_border_iconify(E_Border *bd)
    e_object_ref(E_OBJECT(bd));
 //   e_object_breadcrumb_add(E_OBJECT(bd), "border_iconify_event");
    ecore_event_add(E_EVENT_BORDER_ICONIFY, ev, _e_border_event_border_iconify_free, NULL);
+
+   if (e_config->transient.iconify)
+     {
+       Evas_List *l;
+
+       for (l = bd->children; l; l = l->next)
+         {
+            E_Border *child;
+
+            child = l->data;
+            e_border_iconify(child);
+         }
+     }
 }
 
 void
@@ -1499,10 +1579,9 @@ e_border_uniconify(E_Border *bd)
    if ((bd->fullscreen) || (bd->shading)) return;
    if (bd->iconic)
      {
+       bd->iconic = 0;
        desk = e_desk_current_get(bd->desk->zone);
        e_border_desk_set(bd, desk);
-       bd->iconic = 0;
-       e_border_show(bd);
        e_border_raise(bd);
        edje_object_signal_emit(bd->bg_object, "uniconify", "");
      }
@@ -1515,6 +1594,18 @@ e_border_uniconify(E_Border *bd)
 //   e_object_breadcrumb_add(E_OBJECT(bd), "border_uniconify_event");
    ecore_event_add(E_EVENT_BORDER_UNICONIFY, ev, _e_border_event_border_uniconify_free, NULL);
 
+   if (e_config->transient.iconify)
+     {
+       Evas_List *l;
+
+       for (l = bd->children; l; l = l->next)
+         {
+            E_Border *child;
+
+            child = l->data;
+            e_border_uniconify(child);
+         }
+     }
 }
 
 void
@@ -6373,10 +6464,9 @@ _e_border_menu_cb_on_top(void *data, E_Menu *m, E_Menu_Item *mi)
    bd = data;
    if (bd->layer != 150)
      {
-       bd->layer = 150;
+       e_border_layer_set(bd, 150);
        e_hints_window_stacking_set(bd, E_STACKING_ABOVE);
      }
-   e_border_raise(bd);
 }
 
 static void
@@ -6387,10 +6477,9 @@ _e_border_menu_cb_below(void *data, E_Menu *m, E_Menu_Item *mi)
    bd = data;
    if (bd->layer != 50)
      {
-       bd->layer = 50;
+       e_border_layer_set(bd, 50);
        e_hints_window_stacking_set(bd, E_STACKING_BELOW);
      }
-   e_border_raise(bd);
 }
 
 static void
@@ -6401,10 +6490,9 @@ _e_border_menu_cb_normal(void *data, E_Menu *m, E_Menu_Item *mi)
    bd = data;
    if (bd->layer != 100)
      {
-       bd->layer = 100;
+       e_border_layer_set(bd, 100);
        e_hints_window_stacking_set(bd, E_STACKING_NONE);
      }
-   e_border_raise(bd);
 }
 
 static void
@@ -6497,10 +6585,9 @@ _e_border_menu_cb_sendto(void *data, E_Menu *m, E_Menu_Item *mi)
 
    desk = data;
    bd = e_object_data_get(E_OBJECT(m));
-   if ((bd) && (desk) && (bd->desk != desk))
+   if ((bd) && (desk))
      {
        e_border_desk_set(bd, desk);
-       e_border_hide(bd, 1);
      }
 }
 
index aafc285c85b8a8e3276a33324a4061261d1064cf..46352eb225aebcb20caeb3570dfa43fda29e6f0d 100644 (file)
@@ -488,6 +488,7 @@ EAPI void      e_border_hide(E_Border *bd, int manage);
 EAPI void      e_border_move(E_Border *bd, int x, int y);
 EAPI void      e_border_resize(E_Border *bd, int w, int h);
 EAPI void      e_border_move_resize(E_Border *bd, int x, int y, int w, int h);
+EAPI void      e_border_layer_set(E_Border *bd, int layer);
 EAPI void      e_border_raise(E_Border *bd);
 EAPI void      e_border_lower(E_Border *bd);
 EAPI void      e_border_stack_above(E_Border *bd, E_Border *above);
index 0539006651480f2a110bda72d75837db48aea1ab..be258421f8c49b60bd72fb662eab6750a388b538 100644 (file)
@@ -301,7 +301,14 @@ e_config_init(void)
    E_CONFIG_VAL(D, T, cursor_size, INT); /**/
    E_CONFIG_VAL(D, T, menu_autoscroll_margin, INT); /**/
    E_CONFIG_VAL(D, T, menu_autoscroll_cursor_margin, INT); /**/
-   
+   E_CONFIG_VAL(D, T, transient.move, INT); /* FIXME: implement */
+   E_CONFIG_VAL(D, T, transient.resize, INT); /* FIXME: implement */
+   E_CONFIG_VAL(D, T, transient.raise, INT); /**/
+   E_CONFIG_VAL(D, T, transient.lower, INT); /**/
+   E_CONFIG_VAL(D, T, transient.layer, INT); /**/
+   E_CONFIG_VAL(D, T, transient.desktop, INT); /**/
+   E_CONFIG_VAL(D, T, transient.iconify, INT); /**/
+
    e_config = e_config_domain_load("e", _e_config_edd);
    if (e_config)
      {
@@ -409,6 +416,13 @@ e_config_init(void)
        e_config->cursor_size = 32;
        e_config->menu_autoscroll_margin = 0;
        e_config->menu_autoscroll_cursor_margin = 1;
+       e_config->transient.move = 1;
+       e_config->transient.resize = 0;
+       e_config->transient.raise = 1;
+       e_config->transient.lower = 1;
+       e_config->transient.layer = 1;
+       e_config->transient.desktop = 1;
+       e_config->transient.iconify = 1;
        
          {
             E_Config_Module *em;
index bb65575b676c81b2098a0ed26f396d3afa1e8887..7a9866c7c48b60eec432fb19aaed189a98329b11 100644 (file)
@@ -48,7 +48,7 @@ typedef Eet_Data_Descriptor                 E_Config_DD;
  * defaults for e to work - started at 100 when we introduced this config
  * versioning feature
  */
-#define E_CONFIG_FILE_VERSION 123
+#define E_CONFIG_FILE_VERSION 124
 
 #define E_EVAS_ENGINE_DEFAULT      0
 #define E_EVAS_ENGINE_SOFTWARE_X11 1
@@ -145,6 +145,15 @@ struct _E_Config
    int         cursor_size;
    int         menu_autoscroll_margin;
    int         menu_autoscroll_cursor_margin;
+   struct {
+       int    move;
+       int    resize;
+       int    raise;
+       int    lower;
+       int    layer;
+       int    desktop;
+       int    iconify;
+   } transient;
 };
 
 struct _E_Config_Module
index af1cae4529703668927f82a664a4972d16a82510..25cb4a8a83aea3ff9cebe2394965556a906d8ef8 100644 (file)
@@ -194,6 +194,10 @@ e_desk_show(E_Desk *desk)
          }
      }
 
+   desk->zone->desk_x_current = desk->x;
+   desk->zone->desk_y_current = desk->y;
+   desk->visible = 1;
+
    bl = e_container_border_list_first(desk->zone->container);
    if (desk->zone->bg_object) was_zone = 1;
    while ((bd = e_container_border_list_next(bl)))
@@ -227,10 +231,6 @@ e_desk_show(E_Desk *desk)
    if (e_config->focus_last_focused_per_desktop)
      e_desk_last_focused_focus(desk);
        
-   desk->zone->desk_x_current = desk->x;
-   desk->zone->desk_y_current = desk->y;
-   desk->visible = 1;
-
    if (was_zone)
      e_bg_zone_update(desk->zone, E_BG_TRANSITION_DESK);
    else
index 21c8995ff3c94589778daa5b55b7cbbdd4039d3e..a7443a189b5e9cade3c589e1b6fa7c18c6528d1c 100644 (file)
@@ -349,17 +349,21 @@ e_hints_window_init(E_Border *bd)
    if (!bd->lock_client_stacking)
      {
        if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DESKTOP)
-         bd->layer = 0;
+         e_border_layer_set(bd, 0);
        else if (bd->client.netwm.state.stacking == E_STACKING_BELOW)
-         bd->layer = 50;
+         e_border_layer_set(bd, 50);
        else if (bd->client.netwm.state.stacking == E_STACKING_ABOVE)
-         bd->layer = 150;
+         e_border_layer_set(bd, 150);
        else if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK)
-         bd->layer = 150;
+         e_border_layer_set(bd, 150);
        else
-         bd->layer = 100;
+         e_border_layer_set(bd, 100);
      }
-   e_border_raise(bd);
+   else
+     e_border_raise(bd);
+
+   if ((bd->parent) && (e_config->transient.layer))
+     e_border_layer_set(bd, bd->parent->layer);
 
 #if 0
    /* Ignore this, E has incompatible desktop setup */
@@ -438,6 +442,8 @@ e_hints_window_init(E_Border *bd)
        else
          e_hints_window_visible_set(bd);
      }
+   else if ((bd->parent) && (e_config->transient.iconify) && (bd->parent->iconic))
+     e_border_iconify(bd);
    /* If a window isn't iconic, and is one the current desk,
     * show it! */
    else if (bd->desk == e_desk_current_get(bd->zone))
@@ -742,19 +748,16 @@ e_hints_window_state_update(E_Border *bd, Ecore_X_Window_State state,
         switch (action)
           {
            case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
-              bd->layer = 100;
-              e_border_raise(bd);
+              e_border_layer_set(bd, 100);
               break;
            case ECORE_X_WINDOW_STATE_ACTION_ADD:
-              bd->layer = 150;
-              e_border_raise(bd);
+              e_border_layer_set(bd, 150);
               break;
            case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
               if (bd->layer == 150)
-                bd->layer = 100;
+                e_border_layer_set(bd, 100);
               else
-                bd->layer = 150;
-              e_border_raise(bd);
+                e_border_layer_set(bd, 150);
               break;
           }
         break;
@@ -765,19 +768,16 @@ e_hints_window_state_update(E_Border *bd, Ecore_X_Window_State state,
         switch (action)
           {
            case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
-              bd->layer = 100;
-              e_border_raise(bd);
+              e_border_layer_set(bd, 100);
               break;
            case ECORE_X_WINDOW_STATE_ACTION_ADD:
-              bd->layer = 50;
-              e_border_raise(bd);
+              e_border_layer_set(bd, 50);
               break;
            case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
               if (bd->layer == 50)
-                bd->layer = 100;
+                e_border_layer_set(bd, 100);
               else
-                bd->layer = 50;
-              e_border_raise(bd);
+                e_border_layer_set(bd, 50);
               break;
           }
         break;
index 05c930d10ad7d463a08158f776a938e699bdecb4..0db94d7bee9736864453c75688155de84230a3dd 100644 (file)
@@ -4703,3 +4703,283 @@ break;
                 END_INT;
 #endif
 #undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_MOVE_SET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-move-set", 1, "Set if transients should move with it's parent", 0, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_INT(atoi(params[0]), HDL);
+#elif (TYPE == E_WM_IN)
+   START_INT(val, HDL);
+   e_config->transient.move = val;
+   /* TODO: Activate changes! */
+   SAVE;
+   END_INT;
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_MOVE_GET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-move-get", 0, "Get if transients should move with it's parent", 1, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_NULL(HDL);
+#elif (TYPE == E_WM_IN)
+   SEND_INT(e_config->transient.move, E_IPC_OP_TRANSIENT_MOVE_GET_REPLY, HDL);
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_MOVE_GET_REPLY
+#if (TYPE == E_REMOTE_OPTIONS)
+#elif (TYPE == E_REMOTE_OUT)
+#elif (TYPE == E_WM_IN)
+#elif (TYPE == E_REMOTE_IN)
+   START_INT(val, HDL);
+   printf("REPLY: %d\n", val);
+   END_INT;
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_RESIZE_SET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-resize-set", 1, "Set if transients should move when it's parent resizes", 0, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_INT(atoi(params[0]), HDL);
+#elif (TYPE == E_WM_IN)
+   START_INT(val, HDL);
+   e_config->transient.resize = val;
+   /* TODO: Activate changes! */
+   SAVE;
+   END_INT;
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_RESIZE_GET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-resize-get", 0, "Get if transients should move when it's parent resizes", 1, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_NULL(HDL);
+#elif (TYPE == E_WM_IN)
+   SEND_INT(e_config->transient.resize, E_IPC_OP_TRANSIENT_RESIZE_GET_REPLY, HDL);
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_RESIZE_GET_REPLY
+#if (TYPE == E_REMOTE_OPTIONS)
+#elif (TYPE == E_REMOTE_OUT)
+#elif (TYPE == E_WM_IN)
+#elif (TYPE == E_REMOTE_IN)
+   START_INT(val, HDL);
+   printf("REPLY: %d\n", val);
+   END_INT;
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_RAISE_SET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-raise-set", 1, "Set if transients should raise with it's parent", 0, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_INT(atoi(params[0]), HDL);
+#elif (TYPE == E_WM_IN)
+   START_INT(val, HDL);
+   e_config->transient.raise = val;
+   /* TODO: Activate changes! */
+   SAVE;
+   END_INT;
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_RAISE_GET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-raise-get", 0, "Get if transients should raise with it's parent", 1, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_NULL(HDL);
+#elif (TYPE == E_WM_IN)
+   SEND_INT(e_config->transient.raise, E_IPC_OP_TRANSIENT_RAISE_GET_REPLY, HDL);
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_RAISE_GET_REPLY
+#if (TYPE == E_REMOTE_OPTIONS)
+#elif (TYPE == E_REMOTE_OUT)
+#elif (TYPE == E_WM_IN)
+#elif (TYPE == E_REMOTE_IN)
+   START_INT(val, HDL);
+   printf("REPLY: %d\n", val);
+   END_INT;
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_LOWER_SET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-lower-set", 1, "Set if transients should lower with it's parent", 0, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_INT(atoi(params[0]), HDL);
+#elif (TYPE == E_WM_IN)
+   START_INT(val, HDL);
+   e_config->transient.lower = val;
+   /* TODO: Activate changes! */
+   SAVE;
+   END_INT;
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_LOWER_GET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-lower-get", 0, "Get if transients should lower with it's parent", 1, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_NULL(HDL);
+#elif (TYPE == E_WM_IN)
+   SEND_INT(e_config->transient.lower, E_IPC_OP_TRANSIENT_LOWER_GET_REPLY, HDL);
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_LOWER_GET_REPLY
+#if (TYPE == E_REMOTE_OPTIONS)
+#elif (TYPE == E_REMOTE_OUT)
+#elif (TYPE == E_WM_IN)
+#elif (TYPE == E_REMOTE_IN)
+   START_INT(val, HDL);
+   printf("REPLY: %d\n", val);
+   END_INT;
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_LAYER_SET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-layer-set", 1, "Set if transients should change layer with it's parent", 0, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_INT(atoi(params[0]), HDL);
+#elif (TYPE == E_WM_IN)
+   START_INT(val, HDL);
+   e_config->transient.layer = val;
+   /* TODO: Activate changes! */
+   SAVE;
+   END_INT;
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_LAYER_GET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-layer-get", 0, "Get if transients should change layer with it's parent", 1, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_NULL(HDL);
+#elif (TYPE == E_WM_IN)
+   SEND_INT(e_config->transient.layer, E_IPC_OP_TRANSIENT_LAYER_GET_REPLY, HDL);
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_LAYER_GET_REPLY
+#if (TYPE == E_REMOTE_OPTIONS)
+#elif (TYPE == E_REMOTE_OUT)
+#elif (TYPE == E_WM_IN)
+#elif (TYPE == E_REMOTE_IN)
+   START_INT(val, HDL);
+   printf("REPLY: %d\n", val);
+   END_INT;
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_DESKTOP_SET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-desktop-set", 1, "Set if transients should change desktop with it's parent", 0, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_INT(atoi(params[0]), HDL);
+#elif (TYPE == E_WM_IN)
+   START_INT(val, HDL);
+   e_config->transient.desktop = val;
+   /* TODO: Activate changes! */
+   SAVE;
+   END_INT;
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_DESKTOP_GET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-desktop-get", 0, "Get if transients should change desktop with it's parent", 1, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_NULL(HDL);
+#elif (TYPE == E_WM_IN)
+   SEND_INT(e_config->transient.desktop, E_IPC_OP_TRANSIENT_DESKTOP_GET_REPLY, HDL);
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_DESKTOP_GET_REPLY
+#if (TYPE == E_REMOTE_OPTIONS)
+#elif (TYPE == E_REMOTE_OUT)
+#elif (TYPE == E_WM_IN)
+#elif (TYPE == E_REMOTE_IN)
+   START_INT(val, HDL);
+   printf("REPLY: %d\n", val);
+   END_INT;
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_ICONIFY_SET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-iconify-set", 1, "Set if transients should iconify with it's parent", 0, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_INT(atoi(params[0]), HDL);
+#elif (TYPE == E_WM_IN)
+   START_INT(val, HDL);
+   e_config->transient.iconify = val;
+   /* TODO: Activate changes! */
+   SAVE;
+   END_INT;
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_ICONIFY_GET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-transient-iconify-get", 0, "Get if transients should iconify with it's parent", 1, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_NULL(HDL);
+#elif (TYPE == E_WM_IN)
+   SEND_INT(e_config->transient.iconify, E_IPC_OP_TRANSIENT_ICONIFY_GET_REPLY, HDL);
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_TRANSIENT_ICONIFY_GET_REPLY
+#if (TYPE == E_REMOTE_OPTIONS)
+#elif (TYPE == E_REMOTE_OUT)
+#elif (TYPE == E_WM_IN)
+#elif (TYPE == E_REMOTE_IN)
+   START_INT(val, HDL);
+   printf("REPLY: %d\n", val);
+   END_INT;
+#endif
+#undef HDL
index 8287b6fcdff8a5b8db9ef7437f59a20222bc6f52..34514420100ada350f3ea66669ad0cb2f4a71f57 100644 (file)
 #define E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_SET 231
 #define E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_GET 232
 #define E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_GET_REPLY 233
+
+#define E_IPC_OP_TRANSIENT_MOVE_SET 234
+#define E_IPC_OP_TRANSIENT_MOVE_GET 235
+#define E_IPC_OP_TRANSIENT_MOVE_GET_REPLY 236
+#define E_IPC_OP_TRANSIENT_RESIZE_SET 237
+#define E_IPC_OP_TRANSIENT_RESIZE_GET 238
+#define E_IPC_OP_TRANSIENT_RESIZE_GET_REPLY 239
+#define E_IPC_OP_TRANSIENT_RAISE_SET 240
+#define E_IPC_OP_TRANSIENT_RAISE_GET 241
+#define E_IPC_OP_TRANSIENT_RAISE_GET_REPLY 242
+#define E_IPC_OP_TRANSIENT_LOWER_SET 243
+#define E_IPC_OP_TRANSIENT_LOWER_GET 244
+#define E_IPC_OP_TRANSIENT_LOWER_GET_REPLY 245
+#define E_IPC_OP_TRANSIENT_LAYER_SET 246
+#define E_IPC_OP_TRANSIENT_LAYER_GET 247
+#define E_IPC_OP_TRANSIENT_LAYER_GET_REPLY 248
+#define E_IPC_OP_TRANSIENT_DESKTOP_SET 249
+#define E_IPC_OP_TRANSIENT_DESKTOP_GET 250
+#define E_IPC_OP_TRANSIENT_DESKTOP_GET_REPLY 251
+#define E_IPC_OP_TRANSIENT_ICONIFY_SET 252
+#define E_IPC_OP_TRANSIENT_ICONIFY_GET 253
+#define E_IPC_OP_TRANSIENT_ICONIFY_GET_REPLY 254
index 753306132672a31e857dbbda703342b8385fc417..0a279e1056a4c73e06d70023fdcca1be5903bfa4 100644 (file)
@@ -1476,10 +1476,9 @@ _pager_face_cb_drop(void *data, const char *type, void *event_info)
    desk = e_desk_at_xy_get(face->zone, x, y);
    bd = ev->data;
 
-   if ((bd) && (desk) && (bd->desk != desk))
+   if ((bd) && (desk))
      {
        e_border_desk_set(bd, desk);
-       e_border_hide(bd, 1);
      }
 
    for (l = face->desks; l; l = l->next)