Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/ecore

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


Modified Files:
        Ecore_Evas.h ecore_evas.c ecore_evas_fb.c ecore_evas_private.h 
        ecore_evas_x.c 


Log Message:


till's stick patch

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Ecore_Evas.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- Ecore_Evas.h        23 Sep 2003 08:09:30 -0000      1.2
+++ Ecore_Evas.h        16 Nov 2003 02:29:10 -0000      1.3
@@ -99,6 +99,8 @@
 int         ecore_evas_avoid_damage_get(Ecore_Evas *ee);
 void        ecore_evas_withdrawn_set(Ecore_Evas *ee, int withdrawn);
 int         ecore_evas_withdrawn_get(Ecore_Evas *ee);
+void        ecore_evas_sticky_set(Ecore_Evas *ee, int sticky);
+int         ecore_evas_sticky_get(Ecore_Evas *ee);
 
 #ifdef __cplusplus
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/ecore_evas.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- ecore_evas.c        23 Sep 2003 08:09:30 -0000      1.2
+++ ecore_evas.c        16 Nov 2003 02:29:10 -0000      1.3
@@ -1449,9 +1449,50 @@
    if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
    {
       ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
-         "ecore_evas_withdrawn_set");
+         "ecore_evas_withdrawn_get");
       return 0;
    } else
       return ee->prop.withdrawn;
 }
 
+/**
+ * Set the sticky state of an Ecore_Evas window.
+ *
+ * @param ee The Ecore_Evas whose window's sticky state is set.
+ * @param sticky The Ecore_Evas window's new sticky state.
+ *
+ * <hr><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
+ */
+void
+ecore_evas_sticky_set(Ecore_Evas *ee, int sticky)
+{
+   if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
+   {
+      ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
+         "ecore_evas_sticky_set");
+      return;
+   }
+   
+   IFC(ee, fn_sticky_set) (ee, sticky);
+   IFE;
+}
+
+/**
+ * Returns the sticky state of an Ecore_Evas' window.
+ * 
+ * @param ee The Ecore_Evas whose window's sticky state is returned.
+ * @return The Ecore_Evas window's sticky state.
+ *
+ * <hr><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
+ */
+int
+ecore_evas_sticky_get(Ecore_Evas *ee)
+{
+   if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
+   {
+      ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
+         "ecore_evas_sticky_get");
+      return 0;
+   } else
+      return ee->prop.sticky;
+}
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_fb.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- ecore_evas_fb.c     23 Sep 2003 08:09:31 -0000      1.2
+++ ecore_evas_fb.c     16 Nov 2003 02:29:10 -0000      1.3
@@ -420,6 +420,8 @@
      NULL,
      _ecore_evas_fullscreen_set,
      NULL,
+     NULL,
+     NULL,
      NULL
 };
 #endif
@@ -471,6 +473,7 @@
    ee->prop.maximized = 1;
    ee->prop.fullscreen = 0;
    ee->prop.withdrawn = 0;
+   ee->prop.sticky = 0;
    
    /* init evas here */
    ee->evas = evas_new();
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_private.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- ecore_evas_private.h        23 Sep 2003 08:09:31 -0000      1.2
+++ ecore_evas_private.h        16 Nov 2003 02:29:10 -0000      1.3
@@ -62,6 +62,7 @@
    void        (*fn_fullscreen_set) (Ecore_Evas *ee, int on);
    void        (*fn_avoid_damage_set) (Ecore_Evas *ee, int on);
    void        (*fn_withdrawn_set) (Ecore_Evas *ee, int withdrawn);
+   void        (*fn_sticky_set) (Ecore_Evas *ee, int sticky);
 };
 
 struct _Ecore_Evas_Engine
@@ -134,6 +135,7 @@
       char            fullscreen   : 1;
       char            avoid_damage : 1;
       char            withdrawn    : 1;
+      char            sticky       : 1;          
    } prop;
    
    struct {
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_x.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- ecore_evas_x.c      12 Oct 2003 02:49:52 -0000      1.4
+++ ecore_evas_x.c      16 Nov 2003 02:29:10 -0000      1.5
@@ -872,6 +872,17 @@
 }
 
 static void
+_ecore_evas_sticky_set(Ecore_Evas *ee, int sticky)
+{
+   if ((ee->prop.sticky && sticky) ||
+      (!ee->prop.sticky && !sticky)) return;
+
+   ee->prop.sticky = sticky;
+   ecore_x_window_prop_sticky_set(ee->engine.x.win_container,
+                                  ee->prop.sticky);
+}
+
+static void
 _ecore_evas_override_set(Ecore_Evas *ee, int on)
 {
    if (((ee->prop.override) && (on)) ||
@@ -895,6 +906,8 @@
        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_sticky_set(ee->engine.x.win_container,
+                                   ee->prop.sticky);
      }
    ecore_x_window_reparent(ee->engine.x.win, ee->engine.x.win_container, 0, 0);       
 
    ecore_x_window_show(ee->engine.x.win);
@@ -927,6 +940,8 @@
          }
        ee->x = 0;
        ee->y = 0;
+       ee->w = rw;
+       ee->h = rh;
      }
    else
      {
@@ -937,8 +952,41 @@
        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->w = pw;
+       ee->h = ph;
+     }
+   ecore_x_window_resize(ee->engine.x.win, ee->w, ee->h);
+   if ((ee->rotation == 90) || (ee->rotation == 270))
+     {
+       evas_output_size_set(ee->evas, ee->h, ee->w);
+       evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
+     }
+   else
+     {
+       evas_output_size_set(ee->evas, ee->w, ee->h);
+       evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
+     }
+   if (ee->prop.avoid_damage)
+     {
+       ecore_evas_avoid_damage_set(ee, 0);
+       ecore_evas_avoid_damage_set(ee, 1);
+     }
+   if (ee->shaped)
+     {
+       ecore_evas_shaped_set(ee, 0);
+       ecore_evas_shaped_set(ee, 1);
+     }
+   if ((ee->expecting_resize.w > 0) &&
+       (ee->expecting_resize.h > 0))
+     {
+       if ((ee->expecting_resize.w == ee->w) &&
+           (ee->expecting_resize.h == ee->h))
+         _ecore_evas_mouse_move_process(ee, ee->mouse.x, ee->mouse.y);
+       ee->expecting_resize.w = 0;
+       ee->expecting_resize.h = 0;
      }
    ee->prop.fullscreen = on;
+   if (ee->func.fn_resize) ee->func.fn_resize(ee);     
 }
 
 static void
@@ -1034,7 +1082,8 @@
      NULL,
      _ecore_evas_fullscreen_set,
      _ecore_evas_avoid_damage_set,
-     _ecore_evas_withdrawn_set
+     _ecore_evas_withdrawn_set,
+     _ecore_evas_sticky_set
 };
 #endif
 




-------------------------------------------------------
This SF. Net email is sponsored by: GoToMyPC
GoToMyPC is the fast, easy and secure way to access your computer from
any Web browser or wireless device. Click here to Try it Free!
https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to