Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_border.h e_desk.c e_manager.c 


Log Message:


work mplayer.. work!.
don't ask!

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.194
retrieving revision 1.195
diff -u -3 -r1.194 -r1.195
--- e_border.c  13 May 2005 05:59:41 -0000      1.194
+++ e_border.c  13 May 2005 07:24:46 -0000      1.195
@@ -182,7 +182,7 @@
    E_EVENT_BORDER_LOWER = ecore_event_type_new();
    E_EVENT_BORDER_ICON_CHANGE = ecore_event_type_new();
 
-   focus_fix_timer = ecore_timer_add(0.5, _e_border_cb_focus_fix, NULL);
+   focus_fix_timer = ecore_timer_add(0.1, _e_border_cb_focus_fix, NULL);
    
    return 1;
 }
@@ -412,7 +412,6 @@
 {
    E_Event_Border_Show *ev;
    unsigned int visible;
-   unsigned int hidden;
 
    E_OBJECT_CHECK(bd);
    E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
@@ -422,13 +421,10 @@
    e_hints_window_visible_set(bd);
    bd->visible = 1;
    bd->changes.visible = 1;
-   bd->hidden = 0;
    
    visible = 1;
    ecore_x_window_prop_card32_set(bd->client.win, E_ATOM_MAPPED, &visible, 1);
    ecore_x_window_prop_card32_set(bd->client.win, E_ATOM_MANAGED, &visible, 1);
-   hidden = 0;
-   ecore_x_window_prop_card32_set(bd->client.win, E_ATOM_HIDDEN, &hidden, 1);
 
    ev = calloc(1, sizeof(E_Event_Border_Show));
    ev->border = bd;
@@ -1117,7 +1113,11 @@
        E_Border *bd;
 
        bd = l->data;
-       if (bd->client.win == win) return bd;
+       if (bd->client.win == win)
+         {
+            if (!e_object_is_del(E_OBJECT(bd)))
+              return bd;
+         }
      }
    return NULL;
 }
@@ -1132,7 +1132,11 @@
        E_Border *bd;
 
        bd = l->data;
-       if (bd->bg_win == win) return bd;
+       if (bd->bg_win == win)
+         {
+            if (!e_object_is_del(E_OBJECT(bd)))
+              return bd;
+         }
      }
    return NULL;
 }
@@ -1147,7 +1151,11 @@
        E_Border *bd;
 
        bd = l->data;
-       if (bd->win == win) return bd;
+       if (bd->win == win)
+         {
+            if (!e_object_is_del(E_OBJECT(bd)))
+              return bd;
+         }
      }
    return NULL;
 }
@@ -1388,8 +1396,11 @@
        bd->handlers = evas_list_remove_list(bd->handlers, bd->handlers);
        ecore_event_handler_del(h);
      }
-   ecore_x_window_reparent(bd->client.win, bd->zone->container->manager->root, 
bd->x + bd->client_inset.l, bd->y + bd->client_inset.t);
-   ecore_x_window_save_set_del(bd->client.win);
+   if (!bd->already_unparented)
+     {
+       ecore_x_window_reparent(bd->client.win, 
bd->zone->container->manager->root, bd->x + bd->client_inset.l, bd->y + 
bd->client_inset.t);
+       ecore_x_window_save_set_del(bd->client.win);
+     }
    if (bd->client.border.name) free(bd->client.border.name);
    if (bd->client.icccm.title) free(bd->client.icccm.title);
    if (bd->client.icccm.name) free(bd->client.icccm.name);
@@ -1433,16 +1444,7 @@
    e = ev;
    bd = e_border_find_by_client_window(e->win);
    if (!bd) return 1;
-#if 0
-   else if (e_object_is_del(E_OBJECT(bd)))
-     {
-       printf("Rescue this poor border from deletion!\n");
-       E_OBJECT(bd)->deleted = 0;
-       e_object_ref(E_OBJECT(bd));
-       e_border_show(bd);
-       e_border_raise(bd);
-     }
-#endif
+   printf("border MAP REQ %x\n", e->win);
    e_border_show(bd);
    e_border_raise(bd);
    return 1;
@@ -1456,6 +1458,7 @@
    e = ev;
    bd = e_border_find_by_client_window(e->win);
    if (!bd) return 1;
+   printf("border DESTROY %x\n", e->win);
    e_border_hide(bd, 0);
    e_object_del(E_OBJECT(bd));
    return 1;
@@ -1472,12 +1475,13 @@
    e = ev;
    bd = e_border_find_by_client_window(e->win);
    if (!bd) return 1;
+   printf("border HIDE %x\n", e->win);
    if (bd->ignore_first_unmap > 0)
      {
        bd->ignore_first_unmap--;
        return 1;
      }
-#if 1
+   printf("HIDE win %x\n", e->win);
    /* Don't delete hidden or iconified windows */
    if ((bd->iconic) || (!bd->visible))
      {
@@ -1485,25 +1489,17 @@
      }
    else
      {
+       printf("repar\n");
        e_border_hide(bd, 0);
+//     ecore_x_window_hide(bd->client.win);
+       ecore_x_window_reparent(bd->client.win,
+                               bd->zone->container->manager->root,
+                               bd->x + bd->client_inset.l,
+                               bd->y + bd->client_inset.t);
+       ecore_x_window_save_set_del(bd->client.win);
+       bd->already_unparented = 1;
        e_object_del(E_OBJECT(bd));
      }
-#else
-   /* we need to re-enable the above. when clients hide windows they often
-    * dont destory - keep around to do somethign else with. if we dont unmanage
-    * then we have all sorts of problems believeing it still exists. bigger
-    * problems than mplayer. :)
-    */
-   if (bd->visible)
-     {
-       unsigned int hidden;
-       
-       bd->hidden = 1;
-       hidden = 1;
-       ecore_x_window_prop_card32_set(bd->client.win, E_ATOM_HIDDEN, &hidden, 
1);
-     }
-   e_border_hide(bd, 1);
-#endif   
    return 1;
 }
 
@@ -1517,7 +1513,9 @@
    e = ev;
    bd = e_border_find_by_client_window(e->win);
    if (!bd) return 1;
-   if (e->parent == bd->client.shell_win) return 1;
+   printf("border REPARENT %x\n", e->win);
+//   if (e->parent == bd->client.shell_win) return 1;
+   if (ecore_x_window_parent_get(e->win) == bd->client.shell_win) return 1;
    e_border_hide(bd, 0);
    e_object_del(E_OBJECT(bd));
    return 1;
@@ -1543,6 +1541,7 @@
                                 e->abovewin, e->detail);
        return 1;
      }
+   printf("border CONFIG %x\n", e->win);
    printf("##- CONFIGURE REQ 0x%0x mask: %c%c%c%c%c%c%c\n",
          e->win,
          (e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_X) ? 'X':' ',
@@ -1618,13 +1617,19 @@
          {
             obd = e_border_find_by_client_window(e->abovewin);
             if (obd)
-              e_border_stack_above(bd, obd);
+              {
+                 printf("border STACK ABOVE %x\n", e->abovewin);
+                 e_border_stack_above(bd, obd);
+              }
          }
        else if (e->detail == ECORE_X_WINDOW_STACK_BELOW)
          {
             obd = e_border_find_by_client_window(e->abovewin);
             if (obd)
-              e_border_stack_below(bd, obd);
+              {
+                 printf("border STACK BELOW %x\n", e->abovewin);
+                 e_border_stack_below(bd, obd);
+              }
          }
        else if (e->detail == ECORE_X_WINDOW_STACK_TOP_IF)
          {
@@ -1683,6 +1688,7 @@
        ecore_x_window_resize(e->win, e->w, e->h);
        return 1;
      }
+   printf("border RESIZE %x\n", e->win);
    printf("##- RESIZE REQ 0x%x\n", bd->client.win);
      {
        int w, h;
@@ -1733,6 +1739,7 @@
    e = ev;
    bd = e_border_find_by_client_window(e->win);
    if (!bd) return 1;
+   printf("border PROP %x\n", e->win);
    if (e->atom == ECORE_X_ATOM_WM_NAME)
      {
        bd->client.icccm.fetch.title = 1;
@@ -1809,6 +1816,7 @@
    bd = e_border_find_by_client_window(e->win);
    if (bd)
      {
+   printf("border SHAPE %x\n", e->win);
        bd->changes.shape = 1;
        bd->changed = 1;
        return 1;
@@ -1839,6 +1847,7 @@
    e = ev;
    bd = e_border_find_by_client_window(e->win);
    if (!bd) return 1;
+   printf("border FOCUS %x\n", e->win);
 #ifdef INOUTDEBUG_FOCUS
      {
        time_t t;
@@ -1884,6 +1893,7 @@
    e = ev;
    bd = e_border_find_by_client_window(e->win);
    if (!bd) return 1;
+   printf("border UNFOCUS %x\n", e->win);
 #ifdef INOUTDEBUG_FOCUS
      {
        time_t t;
@@ -1952,6 +1962,7 @@
    e = ev;
    bd = e_border_find_by_client_window(e->win);
    if (!bd) return 1;
+   printf("border STATE %x\n", e->win);
    for (i = 0; i < 2; i++)
      e_hints_window_state_update(bd, e->state[i], e->action);
    return 1;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -3 -r1.48 -r1.49
--- e_border.h  12 May 2005 13:13:53 -0000      1.48
+++ e_border.h  13 May 2005 07:24:46 -0000      1.49
@@ -186,10 +186,10 @@
    unsigned char   iconic : 1;
    unsigned char   sticky : 1;
    unsigned char   shaped : 1;
-   unsigned char   hidden : 1;
    unsigned char   need_shape_merge : 1;
    unsigned char   need_shape_export : 1;
    unsigned char   fullscreen : 1;
+   unsigned char   already_unparented : 1;
    
    unsigned char   changed : 1;
    
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_desk.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -3 -r1.30 -r1.31
--- e_desk.c    12 May 2005 03:32:48 -0000      1.30
+++ e_desk.c    13 May 2005 07:24:47 -0000      1.31
@@ -70,8 +70,7 @@
      {
        E_Border *bd = l->data;
 
-       if ((bd->desk->zone == desk->zone) && (!bd->iconic) &&
-           (!bd->hidden))
+       if ((bd->desk->zone == desk->zone) && (!bd->iconic))
          {
             if ((bd->desk == desk) || (bd->sticky))
               e_border_show(bd);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_manager.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- e_manager.c 12 May 2005 13:06:42 -0000      1.23
+++ e_manager.c 13 May 2005 07:24:47 -0000      1.24
@@ -156,10 +156,6 @@
                                            deskxy[0],
                                            deskxy[1]);
 
-                 ret = ecore_x_window_prop_card32_get(windows[i],
-                                                      E_ATOM_HIDDEN,
-                                                      &ret_val, 1);
-                 if (!((ret == 1) && (ret_val)))
                    {
                       bd = e_border_new(con, windows[i], 1);
                       if (bd)
@@ -430,18 +426,27 @@
    
    man = data;
    e = ev;
-   if (e->parent != man->root) return 1; /* try other handlers for this */
+   printf("show req %x / %x\n", e->win, e->parent);
+#if 0   
+   if (e->parent != man->root)
+     return 1; /* try other handlers for this */
+#endif   
+   if (ecore_x_window_parent_get(e->win) != man->root)
+     return 1;  /* try other handlers for this */
    
      {
        E_Container *con;
        E_Border *bd;
        
+       printf("werdup\n");
        con = e_container_current_get(man);
        if (!e_border_find_by_client_window(e->win))
          {
+            printf("SHOW REQ %x\n", e->win);
             bd = e_border_new(con, e->win, 0);
             if (bd)
               {
+                 printf("BD! %x\n", bd->win);
                  e_border_raise(bd);
                  e_border_show(bd);
               }




-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7393&alloc_id=16281&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to