On Thu, Dec 18, 2014 at 8:39 AM, Carsten Haitzler <ras...@rasterman.com>
wrote:
>
> 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. :)
>

I love it so much I dream in vertices and shaders and FBOs!

But uh, yeah, the nvidia drivers do work but are super excessively picky on
all the system config stuff and some stuff just doesn't work somehow.




>
> > > 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
>
>

-- 
Jean-Philippe André
------------------------------------------------------------------------------
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