On Wed, 17 Dec 2014 14:49:22 +0000 Daniel Kolesa <quake...@gmail.com> said:

> 2014-12-17 14:45 GMT+00:00 Daniel Juyung Seo <seojuyu...@gmail.com>:
> > On Wed, Dec 17, 2014 at 4:14 PM, Sebastian Dransfeld <s...@tango.flipp.net>
> > wrote:
> >>
> >> On 12/17/2014 01:43 AM, Carsten Haitzler wrote:
> >> > raster pushed a commit to branch master.
> >> >
> >> >
> >> http://git.enlightenment.org/core/enlightenment.git/commit/?id=43f1dc012d733fa7b24988a49400bfa01f3d2e69
> >> >
> >> > commit 43f1dc012d733fa7b24988a49400bfa01f3d2e69
> >> > Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
> >> > Date:   Wed Dec 17 09:33:45 2014 +0900
> >> >
> >> >      Revert "Randr: Fix null dereference."
> >> >      This reverts commit 4aef218d28ed66e80d882f052c704d92d11c3c81.
> >> >
> >> >      Revert "randr: remember crtcid for fast lookup on reconnect"
> >> >      This reverts commit 55b4ad41d19f1e4573203bf4296356d8f991e809.
> >> >
> >> >      Revert "randr: further cleanup"
> >> >      This reverts commit 3e02824663a2d6b54a2a9ba6d5d9ab760c42aff2.
> >> >
> >> >      these make nvidia randr resolution changing work again. sorry seb.
> >> >      even though cleanups might be nice... this code is FIDDLY and every
> >> >      driver seems to work differently, so take it easy and be very
> >> careful
> >> >      - make no assumptions. i know it works on my intel desktop and
> >> nvidia
> >> >      deskop atm. once i get a vga cable i'll fix up intel laptop with
> >> >      external display that has problems. i can try radeon too later. but
> >> >      right now - this stuff needs to work. being clean is far less
> >> >      important than working. :)
> >>
> >> nvidia sucks :)
> >>
> >
> > Absolutely agreed.
> > Seriously I am sick and tired of their gl bugs.
> 
> The amount of GL bugs in nvidia drivers is the lowest of all that GL
> implementations are available.

yeah... it's pretty much right. keep hatin' on nvidia. try some other
drivers... you'll come back to nvidia thanking them for being so much
better. :) welcome to the world of gl... it's pretty horrible. just ask jp what
he thinks of gl these days. :)

> > Daniel Juyung Seo (SeoZ)
> >
> >
> >>
> >> > ---
> >> >   src/bin/e_randr.c                         | 204
> >> +++++++++++++++++++-----------
> >> >   src/bin/e_randr.h                         |   1 -
> >> >   src/modules/systray/e_mod_notifier_host.c |   2 +-
> >> >   3 files changed, 134 insertions(+), 73 deletions(-)
> >> >
> >> > diff --git a/src/bin/e_randr.c b/src/bin/e_randr.c
> >> > index 0ffee54..4f3c794 100644
> >> > --- a/src/bin/e_randr.c
> >> > +++ b/src/bin/e_randr.c
> >> > @@ -19,7 +19,7 @@ static E_Config_Randr_Output
> >> *_e_randr_config_output_new(void);
> >> >   static E_Config_Randr_Output
> >> *_e_randr_config_output_find(E_Randr_Output *output);
> >> >   static E_Randr_Crtc          *_e_randr_crtc_find(Ecore_X_Randr_Crtc
> >> xid);
> >> >   static E_Randr_Output
> >> *_e_randr_output_find(Ecore_X_Randr_Output xid);
> >> > -static void                   _e_randr_output_crtc_find(E_Randr_Output
> >> *output);
> >> > +static E_Randr_Crtc          *_e_randr_output_crtc_find(E_Randr_Output
> >> *output);
> >> >
> >> >   static void _e_randr_config_mode_geometry(Ecore_X_Randr_Orientation
> >> orient, Eina_Rectangle *rect);
> >> >   static void _e_randr_config_primary_update(void);
> >> > @@ -140,30 +140,31 @@ e_randr_config_apply(void)
> >> >      EINA_LIST_FOREACH(e_randr->outputs, l, output)
> >> >        {
> >> >           printf("RR: apply out %p... [%s]\n", output, output->name);
> >> > -        if (output->cfg)
> >> > +        if ((output->cfg) && (!output->cfg->connect))
> >> >             {
> >> > -             if (!output->cfg->connect)
> >> > -               {
> >> > -                  printf("RR:  output disabled\n");
> >> > -                  _e_randr_output_active_set(output, EINA_FALSE);
> >> > -               }
> >> > -             else if (output->status ==
> >> ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED)
> >> > +             printf("RR:  output disabled\n");
> >> > +             _e_randr_output_active_set(output, EINA_FALSE);
> >> > +          }
> >> > +        else if ((output->cfg) && (output->status ==
> >> ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED))
> >> > +          {
> >> > +             if (output->cfg)
> >> >                  {
> >> >                     printf("RR:  output enabled [%i %i %ix%i | %2.3f
> >> orient %i]\n",
> >> >                            output->cfg->geo.x, output->cfg->geo.y,
> >> >                            output->cfg->geo.w, output->cfg->geo.h,
> >> >                            output->cfg->refresh_rate,
> >> output->cfg->orient);
> >> > -                  printf("RR:    active set...\n");
> >> > -                  _e_randr_output_active_set(output, EINA_TRUE);
> >> >                     printf("RR:    update mode\n");
> >> >                     _e_randr_output_mode_update(output);
> >> > +                  printf("RR:    active set...\n");
> >> > +                  _e_randr_output_active_set(output, EINA_TRUE);
> >> > +                  printf("RR:    active set done\n");
> >> >                  }
> >> >                else
> >> > -               printf("RR:  not connected and not connect\n");
> >> > +               printf("RR:  no cfg\n");
> >> >             }
> >> >           else
> >> >             {
> >> > -             printf("RR:  no cfg\n");
> >> > +             printf("RR:  ???\n");
> >> >             }
> >> >        }
> >> >      printf("RR: ... lid update\n");
> >> > @@ -474,9 +475,8 @@ _e_randr_load(void)
> >> >                output->xid = outputs[j];
> >> >                output->name = _e_randr_output_name_get(root,
> >> output->xid);
> >> >                output->is_lid = _e_randr_is_lid(output);
> >> > -             output->edid = _e_randr_output_edid_string_get(root,
> >> output->xid);
> >> > +             output->edid = _e_randr_output_edid_string_get(root,
> >> outputs[j]);
> >> >                output->status =
> >> ecore_x_randr_output_connection_status_get(root, output->xid);
> >> > -             output->crtcid = ecore_x_randr_output_crtc_get(root,
> >> output->xid);
> >> >                output->cfg = _e_randr_config_output_find(output);
> >> >                if (!output->cfg)
> >> >                  {
> >> > @@ -485,27 +485,30 @@ _e_randr_load(void)
> >> >                     if (output->edid) output->cfg->edid =
> >> strdup(output->edid);
> >> >                     unknown = EINA_TRUE;
> >> >                  }
> >> > -             printf("RR: output %x %s %s %i %p\n", output->xid,
> >> output->name, output->edid, output->status, output->cfg);
> >> > +             printf("RR: output %x %s %i %p\n", output->xid,
> >> output->name, output->status, output->cfg);
> >> >
> >> >                /* find a crtc if we want this output connected */
> >> >                if (output->cfg->connect &&
> >> >                    (output->status ==
> >> ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED))
> >> >                  {
> >> > -                  _e_randr_output_active_set(output, EINA_TRUE);
> >> > -                  if (output->crtc)
> >> > +                  E_Randr_Crtc *crtc;
> >> > +
> >> > +                  crtc = _e_randr_output_crtc_find(output);
> >> > +                  printf("RR: ouput on crtc = %p\n", crtc);
> >> > +                  if (crtc)
> >> >                       {
> >> > -                       printf("RR: output on crtc = %p\n",
> >> output->crtc);
> >> > +                       _e_randr_output_active_set(output, EINA_TRUE);
> >> >
> >> >                          /* get orientation from crtc if not set */
> >> >                          if (!output->cfg->orient)
> >> > -                         output->cfg->orient = output->crtc->orient;
> >> > +                         output->cfg->orient = crtc->orient;
> >> >                          /* find mode for output */
> >> >                          _e_randr_output_mode_update(output);
> >> >                          /* set position from crtc if unknown */
> >> >                          if (unknown)
> >> >                            {
> >> > -                            output->cfg->geo.x = output->crtc->geo.x;
> >> > -                            output->cfg->geo.y = output->crtc->geo.y;
> >> > +                            output->cfg->geo.x = crtc->geo.x;
> >> > +                            output->cfg->geo.y = crtc->geo.y;
> >> >                            }
> >> >                       }
> >> >                  }
> >> > @@ -596,14 +599,6 @@ _e_randr_apply(void)
> >> >           Ecore_X_Randr_Output *coutputs;
> >> >
> >> >           printf("RRR2:   crtc: %x %i %i %ix%i rot: %i mode: %i\n",
> >> crtc->xid, crtc->geo.x, crtc->geo.y, crtc->geo.w, crtc->geo.h,
> >> crtc->orient, crtc->mode);
> >> > -        /* if nothing connected, disable crtc */
> >> > -        if (!crtc->outputs)
> >> > -          {
> >> > -             printf("RRR2:   crtc has no outputs - off\n");
> >> > -             ecore_x_randr_crtc_settings_set(root, crtc->xid, NULL, 0,
> >> 0, 0, 0,
> >> > -
> >>  ECORE_X_RANDR_ORIENTATION_ROT_0);
> >> > -             continue;
> >> > -          }
> >> >           /* set config from connected outputs */
> >> >           _e_randr_crtc_from_outputs_set(crtc);
> >> >
> >> > @@ -619,11 +614,10 @@ _e_randr_apply(void)
> >> >           w = rect.w;
> >> >           h = rect.h;
> >> >
> >> > -        /* if the output does not fit, disable it */
> >> > +        /* if the crtc does not fit, disable it */
> >> >           if (((x + w) > maxw) || ((y + h) > maxh) || (mode == 0))
> >> >             {
> >> > -             printf("RRR2:   crtc does not fit - off\n");
> >> > -             /* TODO: This is wrong, should remove output from
> >> crtc->outputs */
> >> > +             printf("RRR2:   crtc dose not fit - off\n");
> >> >                ecore_x_randr_crtc_settings_set(root, crtc->xid, NULL, 0,
> >> 0, 0, 0,
> >> >
> >> ECORE_X_RANDR_ORIENTATION_ROT_0);
> >> >                continue;
> >> > @@ -636,10 +630,34 @@ _e_randr_apply(void)
> >> >                printf("RRR2:   cannot alloc coutputs\n");
> >> >                continue;
> >> >             }
> >> > -        count = 0;
> >> >           EINA_LIST_FOREACH(crtc->outputs, ll, output)
> >> >             {
> >> > -             coutputs[count++] = output->xid;
> >> > +             E_Randr_Output *out2 = _e_randr_output_find(output->xid);
> >> > +             if (out2)
> >> > +               {
> >> > +                  if ((out2->cfg) && (out2->crtc == crtc) &&
> >> (out2->mode) &&
> >> > +                      (out2->status ==
> >> ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED))
> >> > +                    {
> >> > +                       int i;
> >> > +                       Eina_Bool ok;
> >> > +
> >> > +                       ok = EINA_TRUE;
> >> > +                       for (i = 0; i < count; i++)
> >> > +                         {
> >> > +                            if (coutputs[i] == out2->xid)
> >> > +                              {
> >> > +                                 ok = EINA_FALSE;
> >> > +                                 break;
> >> > +                              }
> >> > +                         }
> >> > +                       if (ok)
> >> > +                         {
> >> > +                            printf("RRR2:   add output %s\n",
> >> out2->name);
> >> > +                            coutputs[count] = out2->xid;
> >> > +                            count++;
> >> > +                         }
> >> > +                    }
> >> > +               }
> >> >             }
> >> >
> >> >           printf("RRR2:   set mode %x | %i %i %ix%i | %x | %i\n",
> >> > @@ -647,9 +665,16 @@ _e_randr_apply(void)
> >> >                   crtc->geo.x, crtc->geo.y, crtc->geo.w, crtc->geo.h,
> >> >                   crtc->mode, crtc->orient);
> >> >           /* apply our stored crtc settings */
> >> > -        ecore_x_randr_crtc_settings_set(root, crtc->xid, coutputs,
> >> > -                                        count, crtc->geo.x, crtc->geo.y,
> >> > -                                        crtc->mode, crtc->orient);
> >> > +        if (count > 0)
> >> > +          ecore_x_randr_crtc_settings_set(root, crtc->xid, coutputs,
> >> > +                                          count, crtc->geo.x,
> >> crtc->geo.y,
> >> > +                                          crtc->mode, crtc->orient);
> >> > +        else
> >> > +          {
> >> > +             printf("RRR2:   no coutputs - off\n");
> >> > +             ecore_x_randr_crtc_settings_set(root, crtc->xid, NULL, 0,
> >> 0, 0, 0,
> >> > +
> >>  ECORE_X_RANDR_ORIENTATION_ROT_0);
> >> > +          }
> >> >
> >> >           /* cleanup */
> >> >           free(coutputs);
> >> > @@ -701,7 +726,6 @@ _e_randr_event_cb_crtc_change(void *data
> >> EINA_UNUSED, int type EINA_UNUSED, void
> >> >      ev = event;
> >> >      crtc = _e_randr_crtc_find(ev->crtc);
> >> >
> >> > -   /* TODO: If crtc is disconnected, we must remove it from
> >> E_Randr_Output->crtc */
> >> >      if (!crtc)
> >> >        {
> >> >           crtc = E_NEW(E_Randr_Crtc, 1);
> >> > @@ -778,28 +802,29 @@ _e_randr_event_cb_output_change(void *data
> >> EINA_UNUSED, int type EINA_UNUSED, vo
> >> >        }
> >> >      else if (ev->connection ==
> >> ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED)
> >> >        {
> >> > +        E_Randr_Crtc *crtc = NULL;
> >> >           Eina_Bool unknown = EINA_FALSE;
> >> >
> >> >           if ((!output->crtc) || (output->crtc->xid == 0)) unknown =
> >> EINA_TRUE;
> >> >
> >> >           /* connected */
> >> > -        output->crtcid = ev->crtc;
> >> >           if ((ev->crtc != 0) && ((!unknown) && (output->crtc->xid !=
> >> ev->crtc)))
> >> >             {
> >> >                /* remove from old crtc */
> >> >                _e_randr_output_active_set(output, EINA_FALSE);
> >> > -             /* forget out crtc */
> >> > -             output->crtc = NULL;
> >> > +             /* set new crtc on output */
> >> > +             output->crtc = _e_randr_crtc_find(ev->crtc);
> >> >             }
> >> >           if ((!output->active) && (output->cfg->connect))
> >> >             {
> >> > -             /* connect to crtc */
> >> > -             _e_randr_output_active_set(output, EINA_TRUE);
> >> > -             if (output->crtc)
> >> > +             crtc = _e_randr_output_crtc_find(output);
> >> > +             if (crtc)
> >> >                  {
> >> > +                  /* connect to crtc */
> >> > +                  _e_randr_output_active_set(output, EINA_TRUE);
> >> >                     /* get orientation from crtc if not set */
> >> >                     if (!output->cfg->orient)
> >> > -                    output->cfg->orient = output->crtc->orient;
> >> > +                    output->cfg->orient = crtc->orient;
> >> >                     /* validate output mode */
> >> >                     _e_randr_output_mode_update(output);
> >> >                     /* if unknown position at far right */
> >> > @@ -918,12 +943,19 @@ _e_randr_output_mode_update(E_Randr_Output *output)
> >> >      printf("RR: ... 5\n");
> >> >
> >> >      /* see if we can use the mode of the crtc */
> >> > -   if ((!output->mode) && (output->crtc) && (output->crtc->mode))
> >> > +   if ((!output->mode) && (output->crtc))
> >> >        {
> >> > +        E_Randr_Crtc *crtc;
> >> > +
> >> > +        crtc = _e_randr_crtc_find(ecore_x_randr_output_crtc_get(root,
> >> output->xid));
> >> >           printf("RR: ... 6\n");
> >> > -        if (_e_randr_output_mode_valid(output->crtc->mode, modes,
> >> nmodes))
> >> > -          output->mode = output->crtc->mode;
> >> > -        /* TODO: See if we have a mode of the same size with another
> >> mode id */
> >> > +        if (crtc && crtc->mode)
> >> > +          {
> >> > +             printf("RR: ... 6.1\n");
> >> > +             if (_e_randr_output_mode_valid(crtc->mode, modes, nmodes))
> >> > +               output->mode = crtc->mode;
> >> > +             /* TODO: See if we have a mode of the same size with
> >> another mode id */
> >> > +          }
> >> >        }
> >> >      printf("RR: ... 7\n");
> >> >
> >> > @@ -997,7 +1029,6 @@ _e_randr_config_output_find(E_Randr_Output *output)
> >> >      E_Config_Randr_Output *output_cfg;
> >> >      char b1[4096], b2[4096];
> >> >
> >> > -   /* TODO: Should not match if unknown name and edid */
> >> >      snprintf(b1, sizeof(b1), "%s.%s",
> >> >               output->name ? output->name : "???",
> >> >               output->edid ? output->edid : "???");
> >> > @@ -1042,7 +1073,7 @@ _e_randr_output_find(Ecore_X_Randr_Output xid)
> >> >      return NULL;
> >> >   }
> >> >
> >> > -static void
> >> > +static E_Randr_Crtc *
> >> >   _e_randr_output_crtc_find(E_Randr_Output *output)
> >> >   {
> >> >      Ecore_X_Window root = 0;
> >> > @@ -1052,17 +1083,17 @@ _e_randr_output_crtc_find(E_Randr_Output *output)
> >> >      int num = 0, i = 0;
> >> >      int nmodes, pref;
> >> >
> >> > -   /* check if current is available */
> >> > -   if ((crtc = _e_randr_crtc_find(output->crtcid)))
> >> > +   /* grab the root window */
> >> > +   root = ecore_x_window_root_first_get();
> >> > +
> >> > +   /* check if last is available */
> >> > +   if ((crtc = _e_randr_crtc_find(ecore_x_randr_output_crtc_get(root,
> >> output->xid))))
> >> >        {
> >> >           if (!crtc->outputs)
> >> >             goto done;
> >> >        }
> >> >      crtc = NULL;
> >> >
> >> > -   /* grab the root window */
> >> > -   root = ecore_x_window_root_first_get();
> >> > -
> >> >      /* get a list of possible crtcs for this output */
> >> >      possible = ecore_x_randr_output_possible_crtcs_get(root,
> >> output->xid, &num);
> >> >      if (num == 0) goto error;
> >> > @@ -1093,20 +1124,21 @@ _e_randr_output_crtc_find(E_Randr_Output *output)
> >> >                  goto done;
> >> >             }
> >> >        }
> >> > +   crtc = NULL;
> >> >
> >> > -error:
> >> > +done:
> >> >      free(possible);
> >> >      free(modes);
> >> >
> >> > -   output->crtc = NULL;
> >> > -   return;
> >> > +   output->crtc = crtc;
> >> > +   return output->crtc;
> >> >
> >> > -done:
> >> > +error:
> >> >      free(possible);
> >> >      free(modes);
> >> >
> >> > -   output->crtcid = crtc->xid;
> >> > -   output->crtc = crtc;
> >> > +   output->crtc = NULL;
> >> > +   return output->crtc;
> >> >   }
> >> >
> >> >   static void
> >> > @@ -1226,6 +1258,8 @@ _e_randr_crtc_from_outputs_set(E_Randr_Crtc *crtc)
> >> >
> >> >      EINA_LIST_FOREACH(crtc->outputs, l, output)
> >> >        {
> >> > +        if (!output->active) continue;
> >> > +        if (output->status !=
> >> ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED) continue;
> >> >           printf("RRR:       output: '%s' lid: %i active: %i status:
> >> %i\n", output->name, output->is_lid, output->active, output->status);
> >> >           /* TODO: Match all connected outputs, not only the first */
> >> >           crtc->mode = output->mode;
> >> > @@ -1283,32 +1317,60 @@ _e_randr_output_mode_valid(Ecore_X_Randr_Mode
> >> mode, Ecore_X_Randr_Mode *modes, i
> >> >   static void
> >> >   _e_randr_output_active_set(E_Randr_Output *output, Eina_Bool active)
> >> >   {
> >> > +   E_Randr_Crtc *crtc;
> >> > +   Ecore_X_Window root = 0;
> >> > +
> >> >      printf("RR: _e_randr_output_active_set... [%s] %i %i\n",
> >> output->name, output->active, active);
> >> > +   output->active = active;
> >> >
> >> > -   if (!output->crtc)
> >> > +   root = ecore_x_window_root_first_get();
> >> > +   printf("RR: ecore_x_randr_output_crtc_get %x = %x\n", output->xid,
> >> ecore_x_randr_output_crtc_get(root, output->xid));
> >> > +   crtc = _e_randr_crtc_find(ecore_x_randr_output_crtc_get(root,
> >> output->xid));
> >> > +   if (!crtc)
> >> >        {
> >> > -        _e_randr_output_crtc_find(output);
> >> > +        crtc = _e_randr_output_crtc_find(output);
> >> > +        if (!crtc) crtc = output->crtc;
> >> > +        if (!crtc)
> >> > +          {
> >> > +             Eina_List *l;
> >> > +             E_Randr_Crtc *crtc2;
> >> > +
> >> > +             EINA_LIST_FOREACH(e_randr->crtcs, l, crtc2)
> >> > +               {
> >> > +                  printf("RR: ... looking at %x, outputs = %p\n",
> >> crtc2->xid, crtc2->outputs);
> >> > +                  if (!crtc2->outputs) break;
> >> > +                  else
> >> > +                    {
> >> > +                       if (!crtc2->mode) break;
> >> > +                    }
> >> > +                  crtc2 = NULL;
> >> > +               }
> >> > +             if (crtc2) crtc = crtc2;
> >> > +          }
> >> > +        printf("RR: ... output crtc2 = %p\n", crtc);
> >> > +        if (crtc) printf("RR: ... id = %x\n", crtc->xid);
> >> >        }
> >> > -   if (output->crtc)
> >> > +   if (crtc)
> >> >        {
> >> > -        output->active = active;
> >> >           printf("RR:  ... found crtc %i\n", active);
> >> >           if (active)
> >> >             {
> >> > -             output->crtc->outputs =
> >> > -                eina_list_append(output->crtc->outputs, output);
> >> > +             crtc->outputs =
> >> > +                eina_list_append(crtc->outputs, output);
> >> > +             output->crtc = crtc;
> >> >                e_randr->active++;
> >> >                printf("RR:  ... add active output for crtc now\n");
> >> >             }
> >> >           else
> >> >             {
> >> > -             output->crtc->outputs =
> >> > -                eina_list_remove(output->crtc->outputs, output);
> >> > -             e_randr->active--;
> >> > +             crtc->outputs =
> >> > +                eina_list_remove(crtc->outputs, output);
> >> >                output->crtc = NULL;
> >> > +             e_randr->active--;
> >> >                printf("RR:  ... remove output for crtc now\n");
> >> >             }
> >> >        }
> >> > +   else output->crtc = NULL;
> >> >      printf("RR: _e_randr_output_active_set... done - %p\n",
> >> output->crtc);
> >> >   }
> >> >
> >> > diff --git a/src/bin/e_randr.h b/src/bin/e_randr.h
> >> > index 30e355d..654a7e4 100644
> >> > --- a/src/bin/e_randr.h
> >> > +++ b/src/bin/e_randr.h
> >> > @@ -55,7 +55,6 @@ struct _E_Randr_Output
> >> >
> >> >      E_Config_Randr_Output *cfg;
> >> >      E_Randr_Crtc *crtc;
> >> > -   Ecore_X_Randr_Crtc crtcid;
> >> >   };
> >> >
> >> >   struct _E_Randr_Crtc
> >> > diff --git a/src/modules/systray/e_mod_notifier_host.c
> >> b/src/modules/systray/e_mod_notifier_host.c
> >> > index f227cad..95b4938 100644
> >> > --- a/src/modules/systray/e_mod_notifier_host.c
> >> > +++ b/src/modules/systray/e_mod_notifier_host.c
> >> > @@ -138,7 +138,7 @@ _item_submenu_new(E_DBusMenu_Item *item, E_Menu_Item
> >> *mi)
> >> >             {
> >> >                e_menu_item_label_set(submi, child->label);
> >> >                e_menu_item_callback_set(submi, _sub_item_clicked_cb,
> >> child);
> >> > -             //if (!child->enabled) e_menu_item_disabled_set(submi, 1);
> >> > +             if (!child->enabled) e_menu_item_disabled_set(submi, 1);
> >> >                if (child->toggle_type ==
> >> E_DBUSMENU_ITEM_TOGGLE_TYPE_CHECKMARK)
> >> >                  e_menu_item_check_set(submi, 1);
> >> >                else if (child->toggle_type ==
> >> E_DBUSMENU_ITEM_TOGGLE_TYPE_RADIO)
> >> >
> >>
> >>
> >>
> >> ------------------------------------------------------------------------------
> >> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> >> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> >> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> >> Get technology previously reserved for billion-dollar corporations, FREE
> >>
> >> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
> >> _______________________________________________
> >> enlightenment-devel mailing list
> >> enlightenment-devel@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >>
> > ------------------------------------------------------------------------------
> > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> > from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> > with Interactivity, Sharing, Native Excel Exports, App Integration & more
> > Get technology previously reserved for billion-dollar corporations, FREE
> > http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
> > _______________________________________________
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to