fix some formatting/indenting and explicitly look at mouse_down as a counter.
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 15 Nov 2008 05:13:09 +0000 (05:13 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 15 Nov 2008 05:13:09 +0000 (05:13 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@37650 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/canvas/evas_events.c
src/lib/canvas/evas_object_main.c

index b93f197..6fd9382 100644 (file)
@@ -377,11 +377,14 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
      }
 
    if (e->pointer.mouse_grabbed < 0)
-     fprintf(stderr, "BUG? e->pointer.mouse_grabbed (=%d) < 0!\n",
-            e->pointer.mouse_grabbed);
+     {
+        fprintf(stderr, "BUG? e->pointer.mouse_grabbed (=%d) < 0!\n",
+                e->pointer.mouse_grabbed);
+     }
 
-   if ((e->pointer.button == 0) && (e->pointer.mouse_grabbed))
+   if ((e->pointer.button == 0) && (e->pointer.mouse_grabbed != 0))
      {
+        printf("restore to 0 grabs (from %i)\n", e->pointer.mouse_grabbed);
        e->pointer.mouse_grabbed = 0;
      }
    _evas_unwalk(e);
@@ -556,7 +559,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
 
                  obj = outs->data;
                  outs = eina_list_remove(outs, obj);
-                 if ((!obj->mouse_grabbed) && (!e->delete_me))
+                 if ((obj->mouse_grabbed == 0) && (!e->delete_me))
                    {
                       e->pointer.object.in = eina_list_remove(e->pointer.object.in, obj);
                         {
index e816424..f653c94 100644 (file)
@@ -1083,32 +1083,30 @@ evas_object_hide(Evas_Object *obj)
 //                    if (obj->layer->evas->pointer.mouse_grabbed >= obj->mouse_grabbed)
                         obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
                    }
-                   {
-                      if ((obj->mouse_in) || (obj->mouse_grabbed > 0))
-                        {
-                           obj->layer->evas->pointer.object.in = eina_list_remove(obj->layer->evas->pointer.object.in, obj);
-                        }
-                      obj->mouse_grabbed = 0;
-                      if (obj->layer->evas->events_frozen > 0)
-                        {
-                           obj->mouse_in = 0;
-                           return;
-                        }
-                      if (obj->mouse_in)
-                        {
-                           Evas_Event_Mouse_Out ev;
-                           
-                           obj->mouse_in = 0;
-                           ev.buttons = obj->layer->evas->pointer.button;
-                           ev.output.x = obj->layer->evas->pointer.x;
-                           ev.output.y = obj->layer->evas->pointer.y;
-                           ev.canvas.x = obj->layer->evas->pointer.x;
-                           ev.canvas.y = obj->layer->evas->pointer.y;
-                           ev.data = NULL;
-                           ev.modifiers = &(obj->layer->evas->modifiers);
-                           ev.locks = &(obj->layer->evas->locks);
-                           evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev);
-                        }
+                  if ((obj->mouse_in) || (obj->mouse_grabbed > 0))
+                    {
+                       obj->layer->evas->pointer.object.in = eina_list_remove(obj->layer->evas->pointer.object.in, obj);
+                    }
+                  obj->mouse_grabbed = 0;
+                  if (obj->layer->evas->events_frozen > 0)
+                    {
+                       obj->mouse_in = 0;
+                       return;
+                    }
+                  if (obj->mouse_in)
+                    {
+                       Evas_Event_Mouse_Out ev;
+                       
+                       obj->mouse_in = 0;
+                       ev.buttons = obj->layer->evas->pointer.button;
+                       ev.output.x = obj->layer->evas->pointer.x;
+                       ev.output.y = obj->layer->evas->pointer.y;
+                       ev.canvas.x = obj->layer->evas->pointer.x;
+                       ev.canvas.y = obj->layer->evas->pointer.y;
+                       ev.data = NULL;
+                       ev.modifiers = &(obj->layer->evas->modifiers);
+                       ev.locks = &(obj->layer->evas->locks);
+                       evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev);
                    }
               }
          }