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_hints.c e_hints.h 


Log Message:


stop pretending to be kwin. we can be proud to be e! we pretend to have 16's
e comms stuff though... and defer repaerent until the last moment we can

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.215
retrieving revision 1.216
diff -u -3 -r1.215 -r1.216
--- e_border.c  19 May 2005 16:16:27 -0000      1.215
+++ e_border.c  20 May 2005 05:13:45 -0000      1.216
@@ -321,8 +321,12 @@
        bd->ignore_first_unmap = 2;
      }
 
-   ecore_x_window_save_set_add(win);
-   ecore_x_window_reparent(win, bd->client.shell_win, 0, 0);
+   /* just to friggin make java happy - we're DELAYING the reparent until
+    * evail time...
+    */
+/*   ecore_x_window_reparent(win, bd->client.shell_win, 0, 0); */
+   bd->need_reparent = 1;
+   
    ecore_x_window_border_width_set(win, 0);
    ecore_x_window_show(bd->event_win);
    ecore_x_window_show(bd->client.shell_win);
@@ -408,7 +412,8 @@
    E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
    if (bd->visible) return;
    e_container_shape_show(bd->shape);
-   ecore_x_window_show(bd->client.win);
+   if (!bd->need_reparent)
+     ecore_x_window_show(bd->client.win);
    e_hints_window_visible_set(bd);
    bd->visible = 1;
    bd->changes.visible = 1;
@@ -433,7 +438,8 @@
    if (!bd->visible) return;
    if (bd->moving) return;
 
-   ecore_x_window_hide(bd->client.win);
+   if (!bd->need_reparent)
+     ecore_x_window_hide(bd->client.win);
    e_container_shape_hide(bd->shape);
    if (!bd->iconic)
      e_hints_window_hidden_set(bd);
@@ -2853,7 +2859,6 @@
          }
        bd->client.mwm.fetch.hints = 0;
      }
-
    if (bd->changes.shape)
      {
        Ecore_X_Rectangle *rects;
@@ -3029,6 +3034,15 @@
          }
      }
    
+   if (bd->need_reparent)
+     {     
+       ecore_x_window_save_set_add(bd->client.win);
+       ecore_x_window_reparent(bd->client.win, bd->client.shell_win, 0, 0);
+       if (bd->visible)
+         ecore_x_window_show(bd->client.win);
+       bd->need_reparent = 0;
+     }
+   
    if (bd->new_client)
      {
        E_Event_Border_Add *ev;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -3 -r1.55 -r1.56
--- e_border.h  17 May 2005 12:33:12 -0000      1.55
+++ e_border.h  20 May 2005 05:13:45 -0000      1.56
@@ -186,6 +186,7 @@
    unsigned char   need_shape_export : 1;
    unsigned char   fullscreen : 1;
    unsigned char   already_unparented : 1;
+   unsigned char   need_reparent : 1;
  
    unsigned char   changed : 1;
    
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_hints.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -3 -r1.29 -r1.30
--- e_hints.c   19 May 2005 04:07:41 -0000      1.29
+++ e_hints.c   20 May 2005 05:13:45 -0000      1.30
@@ -19,11 +19,24 @@
             Ecore_X_Window win;
             
             win = ecore_x_window_new(roots[i], -200, -200, 5, 5);
-//          I don't FUCKING believe it. if we PRETENT we are Kwin - java is
-//          happy. why? it expects a double reparenting wm then. java insists
-//          on finding this out when it shoudl be irrelevant! stupid FUCKS.
-            ecore_x_netwm_wm_identify(roots[i], win, "KWin");
-//          ecore_x_netwm_wm_identify(roots[i], win, "Enlightenment");
+/*          
+ * I don't FUCKING believe it. if we PRETENT we are Kwin - java is happy.
+ * why? it expects a double reparenting wm then. java insists on finding this
+ * out when it should be irrelevant! stupid code! I can't believe the time we
+ * just wasted hunting a bug that wasn't and that is due to sheer stupid
+ * coding.
+ */
+/* Now for more stupidity... Openoffice.org will change its look and feel 
+ * depending on what wm it thinks there is... so if we pretend to be Kwin...
+ * it tries to use kde preferences, if found.
+ */
+/* I have disabled tyhis now by pretending to be E16 with e16 comms. this
+ * means java plays nice and uses our FRAMe property.. but we had to do other
+ * evil stuff as java EXPECTS all this at REPARENT time... i've deferred
+ * reparenting... i hate java!
+ */
+/*          ecore_x_netwm_wm_identify(roots[i], win, "KWin");*/
+            ecore_x_netwm_wm_identify(roots[i], win, "Enlightenment");
 
             /* Set what hints we support */
             ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_ACTIVE_WINDOW, 
1);
@@ -52,10 +65,31 @@
      }
 }
 
+/* 
+ * This is here so we don't have to pretend to be Kwin anymore - we pretend
+ * to do old e16 style ipc. in fact we just ignore it... but set up the
+ * window port anyway
+ */
+void
+e_hints_e16_comms_pretend(E_Manager *man)
+{
+   Ecore_X_Window win;
+   Ecore_X_Atom enlightenment_comms, string;
+   char buf[256];
+   
+   enlightenment_comms = ecore_x_atom_get("ENLIGHTENMENT_COMMS");
+   string = ecore_x_atom_get("STRING");
+   win = ecore_x_window_input_new(man->root, -100, -100, 1, 1);
+   snprintf(buf, sizeof(buf), "WINID %8x", (int)win);
+   ecore_x_window_prop_property_set(win, enlightenment_comms, string, 8, buf, 
14);
+   ecore_x_window_prop_property_set(man->root, enlightenment_comms, string, 8, 
buf, 14);
+}
+
 void
 e_hints_manager_init(E_Manager *man)
 {
    ecore_x_netwm_desk_size_set(man->root, man->w, man->h);
+   e_hints_e16_comms_pretend(man);
 }
 
 /* FIXME, this should set the list in map order, not stack order */
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_hints.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- e_hints.h   17 May 2005 17:41:27 -0000      1.14
+++ e_hints.h   20 May 2005 05:13:45 -0000      1.15
@@ -7,6 +7,7 @@
 #define E_HINTS_H
 
 EAPI void e_hints_init(void);
+EAPI void e_hints_e16_comms_pretend(E_Manager *man);
 EAPI void e_hints_manager_init(E_Manager *man);
 EAPI void e_hints_client_list_set(void);
 EAPI void e_hints_client_stacking_set(void);




-------------------------------------------------------
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=7412&alloc_id=16344&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to