Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_evas


Modified Files:
      Tag: SPLIT
        ecore_evas_private.h ecore_evas_x.c 


Log Message:


slight corner case in buffered events. fixed.
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/ecore_evas_private.h,v
retrieving revision 1.1.2.15
retrieving revision 1.1.2.16
diff -u -3 -r1.1.2.15 -r1.1.2.16
--- ecore_evas_private.h        21 May 2003 00:01:39 -0000      1.1.2.15
+++ ecore_evas_private.h        28 May 2003 05:53:08 -0000      1.1.2.16
@@ -91,6 +91,7 @@
    short       rotation;
    char        shaped  : 1;
    char        visible : 1;
+   char        should_be_visible : 1;
    
    struct {
       int      x, y;
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/ecore_evas_x.c,v
retrieving revision 1.1.2.14
retrieving revision 1.1.2.15
diff -u -3 -r1.1.2.14 -r1.1.2.15
--- ecore_evas_x.c      25 May 2003 09:43:39 -0000      1.1.2.14
+++ ecore_evas_x.c      28 May 2003 05:53:08 -0000      1.1.2.15
@@ -265,7 +265,8 @@
 {
    Ecore_Evas *ee;
    Ecore_X_Event_Window_Damage *e;
-   
+
+   printf("dmg!\n");
    e = event;
    ee = _ecore_evas_x_match(e->win);
    if (!ee) return 1; /* pass on event */
@@ -332,6 +333,7 @@
    
    e = event;
    ee = _ecore_evas_x_match(e->win);
+   printf("reconf! %x %i %i, %ix%i\n", e->win, e->x, e->y, e->w, e->h);
    if (!ee) return 1; /* pass on event */
    if ((ee->prop.fullscreen) && (e->win == ee->engine.x.win_container)) return 0;
    if ((e->from_wm) || (ee->prop.fullscreen) || (ee->prop.override))
@@ -405,7 +407,7 @@
    e = event;
    ee = _ecore_evas_x_match(e->win);
    if (!ee) return 1; /* pass on event */
-   if (ee->engine.x.win_container != e->win) return 0;
+   if (ee->visible) return 0; /* dont pass it on */
    ee->visible = 1;
    if (ee->func.fn_show) ee->func.fn_show(ee);
    return 0; /* dont pass it on */
@@ -420,7 +422,7 @@
    e = event;
    ee = _ecore_evas_x_match(e->win);
    if (!ee) return 1; /* pass on event */
-   if (ee->engine.x.win_container != e->win) return 0;
+   if (!ee->visible) return 0; /* dont pass it on */
    ee->visible = 0;
    if (ee->func.fn_hide) ee->func.fn_hide(ee);
    return 0; /* dont pass it on */
@@ -500,7 +502,9 @@
                  if (updates) evas_render_updates_free(updates);
               }
          }
-       else if (ee->visible)
+       else if ((ee->visible) || 
+                ((ee->should_be_visible) && (ee->prop.fullscreen)) ||
+                ((ee->should_be_visible) && (ee->prop.override)))
          {
             if (ee->shaped)
               {
@@ -693,25 +697,38 @@
 static void
 _ecore_evas_show(Ecore_Evas *ee)
 {
-   ecore_x_window_show(ee->engine.x.win_container);
+   if (!ee->prop.fullscreen)
+     ecore_x_window_show(ee->engine.x.win_container);
+   ecore_x_window_show(ee->engine.x.win);
+   ee->should_be_visible = 1;
 }
 
 static void
 _ecore_evas_hide(Ecore_Evas *ee)
 {
-   ecore_x_window_hide(ee->engine.x.win_container);
+   if (!ee->prop.fullscreen)
+     ecore_x_window_hide(ee->engine.x.win_container);
+   ecore_x_window_hide(ee->engine.x.win);
+   ee->visible = 0;
+   ee->should_be_visible = 0;
 }
 
 static void
 _ecore_evas_raise(Ecore_Evas *ee)
 {
-   ecore_x_window_raise(ee->engine.x.win_container);
+   if (!ee->prop.fullscreen)
+     ecore_x_window_raise(ee->engine.x.win_container);
+   else
+     ecore_x_window_raise(ee->engine.x.win);
 }
 
 static void
 _ecore_evas_lower(Ecore_Evas *ee)
 {
-   ecore_x_window_lower(ee->engine.x.win_container);
+   if (!ee->prop.fullscreen)
+     ecore_x_window_lower(ee->engine.x.win_container);
+   else
+     ecore_x_window_lower(ee->engine.x.win);
 }
 
 static void
@@ -874,7 +891,7 @@
        ecore_x_window_prop_step_size_set(ee->engine.x.win_container, ee->prop.step.w, 
ee->prop.step.h);
        ecore_x_window_prop_borderless_set(ee->engine.x.win_container, 
ee->prop.borderless);
        ecore_x_window_prop_layer_set(ee->engine.x.win_container, ee->prop.layer);
-    ecore_x_window_prop_withdrawn_set(ee->engine.x.win_container, ee->prop.withdrawn);
+       ecore_x_window_prop_withdrawn_set(ee->engine.x.win_container, 
ee->prop.withdrawn);
      }
    ecore_x_window_reparent(ee->engine.x.win, ee->engine.x.win_container, 0, 0);       
 
    ecore_x_window_show(ee->engine.x.win);
@@ -898,7 +915,9 @@
        ecore_x_window_raise(ee->engine.x.win);
        ecore_x_window_show(ee->engine.x.win);
        ecore_x_window_focus(ee->engine.x.win);
+       ecore_x_window_hide(ee->engine.x.win_container);
        ecore_x_window_shape_mask_set(ee->engine.x.win_container, 0);
+       if (ee->should_be_visible) ecore_x_window_show(ee->engine.x.win);
        ee->x = 0;
        ee->y = 0;
      }
@@ -910,6 +929,7 @@
        ecore_x_window_reparent(ee->engine.x.win, ee->engine.x.win_container, 0, 0);
        ecore_x_window_resize(ee->engine.x.win, pw, ph);
        ecore_x_window_shape_mask_set(ee->engine.x.win, 0);
+       if (ee->should_be_visible) ecore_x_window_show(ee->engine.x.win_container);
      }
    ee->prop.fullscreen = on;
 }
@@ -1079,8 +1099,6 @@
    evas_key_lock_add(ee->evas, "Caps_Lock");
    evas_key_lock_add(ee->evas, "Num_Lock");
    evas_key_lock_add(ee->evas, "Scroll_Lock");
-
-   ecore_x_window_show(ee->engine.x.win);
 
    ecore_evases = _ecore_list_prepend(ecore_evases, ee);
    return ee;




-------------------------------------------------------
This SF.net email is sponsored by: ObjectStore.
If flattening out C++ or Java code to make your application fit in a
relational database is painful, don't do it! Check out ObjectStore.
Now part of Progress Software. http://www.objectstore.net/sourceforge
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to