Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        dialog.c ewins.c iconify.c menus.c pager.c 


Log Message:
Internal window initial setup fixes.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/dialog.c,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -3 -r1.100 -r1.101
--- dialog.c    20 Feb 2005 18:51:52 -0000      1.100
+++ dialog.c    27 Feb 2005 13:17:28 -0000      1.101
@@ -534,10 +534,19 @@
 static void
 DialogEwinInit(EWin * ewin, void *ptr)
 {
+   Dialog             *d = ptr;
+
    ewin->data = ptr;
+
    ewin->MoveResize = DialogEwinMoveResize;
    ewin->Refresh = DialogEwinRefresh;
    ewin->Close = DialogEwinClose;
+
+   ewin->client.width.min = ewin->client.width.max = ewin->client.w = d->w;
+   ewin->client.height.min = ewin->client.height.max = ewin->client.h = d->h;
+   ewin->client.no_resize_h = ewin->client.no_resize_v = 1;
+
+   EoSetLayer(ewin, 10);
 }
 
 void
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewins.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- ewins.c     27 Feb 2005 01:11:51 -0000      1.20
+++ ewins.c     27 Feb 2005 13:17:28 -0000      1.21
@@ -548,7 +548,10 @@
 }
 
 static EWin        *
-AdoptInternal(Window win, Border * border, int type)
+AdoptInternal(Window win, Border * border, int type, void (*init) (EWin *
+                                                                  ewin,
+                                                                  void *ptr),
+             void *ptr)
 {
    EWin               *ewin;
 
@@ -556,57 +559,15 @@
 
    ewin->border = border;
 
-   /* This should go into the init functions... */
-   switch (type)
-     {
-     case EWIN_TYPE_DIALOG:
-       EoSetLayer(ewin, 10);
-       break;
-     case EWIN_TYPE_MENU:
-       EoSetLayer(ewin, 30);
-       ewin->skiptask = 1;
-       ewin->skip_ext_pager = 1;
-       ewin->no_actions = 1;
-       ewin->skipfocus = 1;
-       ewin->skipwinlist = 1;
-       ewin->neverfocus = 1;
-       ewin->client.grav = StaticGravity;
-       break;
-     case EWIN_TYPE_ICONBOX:
-       EoSetSticky(ewin, 1);
-       ewin->skiptask = 1;
-       ewin->skip_ext_pager = 1;
-       ewin->skipfocus = 1;
-       ewin->skipwinlist = 1;
-       ewin->neverfocus = 1;
-       ewin->props.inhibit_iconify = 1;
-       ewin->props.autosave = 1;
-       break;
-     case EWIN_TYPE_PAGER:
-       EoSetSticky(ewin, 1);
-       ewin->skiptask = 1;
-       ewin->skip_ext_pager = 1;
-       ewin->skipfocus = 1;
-       ewin->skipwinlist = 1;
-       ewin->neverfocus = 1;
-       ewin->props.autosave = 1;
-       break;
-     }
+   if (init)
+      init(ewin, ptr);         /* Type specific initialisation */
 
    ICCCM_AdoptStart(ewin);
    ICCCM_GetTitle(ewin, 0);
    ICCCM_GetInfo(ewin, 0);
    ICCCM_GetShapeInfo(ewin);
    ICCCM_GetGeoms(ewin, 0);
-   switch (type)
-     {
-     case EWIN_TYPE_DIALOG:
-     case EWIN_TYPE_MENU:
-       ewin->client.width.min = ewin->client.width.max = ewin->client.w;
-       ewin->client.height.min = ewin->client.height.max = ewin->client.h;
-       ewin->client.no_resize_h = ewin->client.no_resize_v = 1;
-       break;
-     }
+
    WindowMatchEwinOps(ewin);   /* Window matches */
    SnapshotEwinMatch(ewin);    /* Saved settings */
    ICCCM_MatchSize(ewin);
@@ -934,21 +895,24 @@
 
    ecore_x_grab();
 
-   ewin = AdoptInternal(win, b, type);
-
-   EoSetDesk(ewin, EoGetDesk(ewin));
-   EwinConformToDesktop(ewin);
+   ewin = AdoptInternal(win, b, type, init, ptr);
 
-   if (init)
-      init(ewin, ptr);         /* Type specific initialisation */
+#if 0
+   Eprintf("Desk=%d, layer=%d, sticky=%d, floating=%d\n",
+          EoGetDesk(ewin), EoGetLayer(ewin), EoIsSticky(ewin),
+          EoIsFloating(ewin));
+#endif
 
 #if 0                          /* FIXME - Remove? */
    EwinBorderDraw(ewin, 1, 1, 1);
 #endif
 
+   EwinConformToDesktop(ewin);
    EwinDetermineArea(ewin);
 
+#if 1                          /* FIXME - Handle via object stack */
    StartupWindowsRaise();
+#endif
 
    ecore_x_ungrab();
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/iconify.c,v
retrieving revision 1.136
retrieving revision 1.137
diff -u -3 -r1.136 -r1.137
--- iconify.c   26 Feb 2005 08:32:16 -0000      1.136
+++ iconify.c   27 Feb 2005 13:17:29 -0000      1.137
@@ -503,7 +503,7 @@
    call_depth++;
 
    if (!TransparencyEnabled() &&
-       ib->w == ewin->client.w && ib->h == ewin->client.h)
+       ib->w == ewin->client.w && ib->h == ewin->client.h && !ib->force_update)
       goto done;
 
    ib->w = ewin->client.w;
@@ -541,9 +541,20 @@
 IconboxEwinInit(EWin * ewin, void *ptr)
 {
    ewin->data = (Iconbox *) ptr;
+
    ewin->MoveResize = IconboxEwinMoveResize;
    ewin->Refresh = IconboxEwinRefresh;
    ewin->Close = IconboxEwinClose;
+
+   ewin->skiptask = 1;
+   ewin->skip_ext_pager = 1;
+   ewin->skipfocus = 1;
+   ewin->skipwinlist = 1;
+   ewin->neverfocus = 1;
+   ewin->props.inhibit_iconify = 1;
+   ewin->props.autosave = 1;
+
+   EoSetSticky(ewin, 1);
 }
 
 static void
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/menus.c,v
retrieving revision 1.171
retrieving revision 1.172
diff -u -3 -r1.171 -r1.172
--- menus.c     22 Feb 2005 21:44:58 -0000      1.171
+++ menus.c     27 Feb 2005 13:17:29 -0000      1.172
@@ -74,8 +74,9 @@
 {
    char               *name;
    char               *title;
-   EWin               *ewin;
    MenuStyle          *style;
+   EWin               *ewin;
+   int                 w, h;
    int                 num;
    MenuItem          **items;
    Window              win;
@@ -229,13 +230,30 @@
 static void
 MenuEwinInit(EWin * ewin, void *ptr)
 {
+   Menu               *m = ptr;
+
    ewin->data = ptr;
+
    ewin->MoveResize = MenuEwinMoveResize;
    ewin->Refresh = MenuEwinRefresh;
    ewin->Close = MenuEwinClose;
-   EoSetOpacity(ewin, OpacityExt(Conf.menus.opacity));
+
+   ewin->skiptask = 1;
+   ewin->skip_ext_pager = 1;
+   ewin->no_actions = 1;
+   ewin->skipfocus = 1;
+   ewin->skipwinlist = 1;
+   ewin->neverfocus = 1;
+   ewin->client.grav = StaticGravity;
+
+   ewin->client.width.min = ewin->client.width.max = ewin->client.w = m->w;
+   ewin->client.height.min = ewin->client.height.max = ewin->client.h = m->h;
+   ewin->client.no_resize_h = ewin->client.no_resize_v = 1;
+
    EoSetSticky(ewin, 1);
+   EoSetLayer(ewin, 30);
    EoSetFloating(ewin, 1);
+   EoSetOpacity(ewin, OpacityExt(Conf.menus.opacity));
 }
 
 static void         MenuShowMasker(Menu * m);
@@ -824,6 +842,7 @@
        else
           y += maxh;
      }
+
    if ((m->style->bg_iclass) && (!m->style->use_item_bg))
      {
        mmw += m->style->bg_iclass->padding.right;
@@ -831,6 +850,8 @@
      }
 
    m->redraw = 1;
+   m->w = mmw;
+   m->h = mmh;
    EResizeWindow(m->win, mmw, mmh);
 
    Mode.queue_up = pq;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/pager.c,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -3 -r1.117 -r1.118
--- pager.c     26 Feb 2005 16:40:36 -0000      1.117
+++ pager.c     27 Feb 2005 13:17:30 -0000      1.118
@@ -569,9 +569,19 @@
 PagerEwinInit(EWin * ewin, void *ptr)
 {
    ewin->data = ptr;
+
    ewin->MoveResize = PagerEwinMoveResize;
    ewin->Refresh = PagerEwinRefresh;
    ewin->Close = PagerEwinClose;
+
+   ewin->skiptask = 1;
+   ewin->skip_ext_pager = 1;
+   ewin->skipfocus = 1;
+   ewin->skipwinlist = 1;
+   ewin->neverfocus = 1;
+   ewin->props.autosave = 1;
+
+   EoSetSticky(ewin, 1);
 }
 
 static void




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to