[EGIT] [tools/enventor] master 01/01: about: add one empty line to align form.

2015-09-22 Thread ChunEon Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=ebe037c8a38b467d17316ae7bfaf0c3691bacdd4

commit ebe037c8a38b467d17316ae7bfaf0c3691bacdd4
Author: ChunEon Park 
Date:   Tue Sep 22 16:35:24 2015 +0900

about: add one empty line to align form.
---
 data/about/ABOUT | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/data/about/ABOUT b/data/about/ABOUT
index d5d8246..49d15d5 100644
--- a/data/about/ABOUT
+++ b/data/about/ABOUT
@@ -7,7 +7,8 @@ Please see next sites for more information on these.
 http://www.enlightenment.org
 https://phab.enlightenment.org/w/projects/enventor/
 http://www.openhub.net/p/enventor 
- 
+
+
 [Short Cut Keys]
  
 Esc - Open/Close Menu

-- 




[EGIT] [core/efl] master 01/01: evas sw generic - comment NULL methods so we know what they should be

2015-09-22 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0369168a443b2f26020fa745891fe10649a285fd

commit 0369168a443b2f26020fa745891fe10649a285fd
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Sep 22 18:48:17 2015 +0900

evas sw generic - comment NULL methods so we know what they should be
---
 src/modules/evas/engines/software_generic/evas_engine.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/modules/evas/engines/software_generic/evas_engine.c 
b/src/modules/evas/engines/software_generic/evas_engine.c
index 4b221dd..8dc64f0 100644
--- a/src/modules/evas/engines/software_generic/evas_engine.c
+++ b/src/modules/evas/engines/software_generic/evas_engine.c
@@ -3799,10 +3799,10 @@ eng_ector_end(void *data EINA_UNUSED, void *context 
EINA_UNUSED, Ector_Surface *
 
 static Evas_Func func =
 {
-   NULL,
- NULL,
- NULL,
- NULL,
+   NULL, // eng_info
+ NULL, // eng_info_free
+ NULL, // eng_setup
+ NULL, // eng_output_free
  eng_output_resize,
  eng_output_tile_size_set,
  eng_output_redraws_rect_add,
@@ -3854,7 +3854,7 @@ static Evas_Func func =
  eng_image_free,
  eng_image_size_get,
  eng_image_size_set,
- NULL,
+ NULL, // eng_image_stride_get
  eng_image_dirty_region,
  eng_image_data_get,
  eng_image_data_put,

-- 




[EGIT] [website/www] master 01/01: e www - shot - upgrade max shot size to 20m

2015-09-22 Thread Carsten Haitzler (Rasterman)
raster pushed a commit to branch master.

http://git.enlightenment.org/website/www.git/commit/?id=3c1136577cf33497ffa4adcf3eed0fccc9b2c7da

commit 3c1136577cf33497ffa4adcf3eed0fccc9b2c7da
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Sep 22 19:09:54 2015 +0900

e www - shot - upgrade max shot size to 20m
---
 public_html/shot.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/public_html/shot.php b/public_html/shot.php
index 0ef7d64..a963605 100644
--- a/public_html/shot.php
+++ b/public_html/shot.php
@@ -48,8 +48,8 @@ function dothumb($f, $thumb, $new_w, $new_h) {
 }
 
 ob_start();
- limit - 6 mb.
-$data = file_get_contents('php://input', NULL, NULL, 0, 6 * 1024 * 1024);
+ limit - 20 mb.
+$data = file_get_contents('php://input', NULL, NULL, 0, 20 * 1024 * 1024);
  magic jpeg signature
 $jpeg_match = "\xff\xd8\xff\xe0";
 $jpeg_magic = substr($data, 0, 4);

-- 




[EGIT] [core/efl] master 01/01: Edje_entry: emit "cursor, changed, manual" for Home/End/PgUp/PgDown.

2015-09-22 Thread Mykyta Biliavskyi
tasn pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=278b20954a7583d42bc93df0257cd84f0646932e

commit 278b20954a7583d42bc93df0257cd84f0646932e
Author: Mykyta Biliavskyi 
Date:   Tue Sep 22 15:12:47 2015 +0100

Edje_entry: emit "cursor,changed,manual" for Home/End/PgUp/PgDown.

Summary:
The keys Home/End/PgUp/PgDown are changes the entry cursor
position in the same way as arrow keys. For unified behavior
callback "cursor,changed,manual", added emitting signal for
those keys events.

Reviewers: tasn, cedric, herdsman, thiepha

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3055
---
 src/lib/edje/edje_entry.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index 237e49a..e32a52e 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -1686,6 +1686,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
  if (shift) _sel_extend(ed, en->cursor, rp->object, en);
   }
 _edje_emit(ed, "entry,key,home", rp->part->name);
+_edje_emit(ed, "cursor,changed,manual", rp->part->name);
 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
  }
else if ((!alt) &&
@@ -1707,6 +1708,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
  if (shift) _sel_extend(ed, en->cursor, rp->object, en);
   }
 _edje_emit(ed, "entry,key,end", rp->part->name);
+_edje_emit(ed, "cursor,changed,manual", rp->part->name);
 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
  }
else if ((control) && (!shift) && (!strcmp(ev->keyname, "v")))
@@ -1830,6 +1832,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
  else _sel_clear(ed, en->cursor, rp->object, en);
   }
 _edje_emit(ed, "entry,key,pgup", rp->part->name);
+_edje_emit(ed, "cursor,changed,manual", rp->part->name);
 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
  }
else if (!strcmp(ev->key, "Next") ||
@@ -1853,6 +1856,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
  else _sel_clear(ed, en->cursor, rp->object, en);
   }
 _edje_emit(ed, "entry,key,pgdn", rp->part->name);
+_edje_emit(ed, "cursor,changed,manual", rp->part->name);
 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
  }
else if ((!strcmp(ev->key, "Return")) || (!strcmp(ev->key, "KP_Enter")))

-- 




[EGIT] [core/efl] master 01/01: Ector software gradient: Fix cast from integer to pointer of wrong type.

2015-09-22 Thread Tom Hacohen
tasn pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=be87d3bf1df7c32378a23aba623b81610397feae

commit be87d3bf1df7c32378a23aba623b81610397feae
Author: Tom Hacohen 
Date:   Tue Sep 22 15:45:04 2015 +0100

Ector software gradient: Fix cast from integer to pointer of wrong type.

When casting pointer<->int, always use uintptr_t, not just int.

@fix
---
 src/lib/ector/software/ector_software_gradient.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/ector/software/ector_software_gradient.c 
b/src/lib/ector/software/ector_software_gradient.c
index d6ad207..707c345 100644
--- a/src/lib/ector/software/ector_software_gradient.c
+++ b/src/lib/ector/software/ector_software_gradient.c
@@ -107,7 +107,7 @@ static void
 loop_break(unsigned int *buffer, int length, int *lprealign, int *lby4 , int 
*lremaining)
 {
int l1=0,l2=0,l3=0;
-   while ((int)buffer & 0xF)
+   while ((uintptr_t)buffer & 0xF)
  buffer++ , l1++;
 
if(length <= l1)

-- 




[EGIT] [tools/abi_checks] master 01/01: Added scripts to easily generate and compare dumps.

2015-09-22 Thread Tom Hacohen
tasn pushed a commit to branch master.

http://git.enlightenment.org/tools/abi_checks.git/commit/?id=29cb2c77b7179136bc0e8d8a045f30885b6ced1e

commit 29cb2c77b7179136bc0e8d8a045f30885b6ced1e
Author: Tom Hacohen 
Date:   Tue Sep 22 16:01:18 2015 +0100

Added scripts to easily generate and compare dumps.
---
 README |  6 +++---
 cmpdump.sh | 12 
 gendump.sh | 11 +++
 3 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/README b/README
index 1727dc3..a103d4c 100644
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
 Configs and dumps for 
http://ispras.linuxbase.org/index.php/ABI_compliance_checker
 
 Generation example:
-1. Generate the dump for the latest version: abi-compliance-checker -l 
elementary -dump elementary-1.10.0.xml
-2. Generate the report: abi-compliance-checker -l elementary -old 
abi_dumps/elementary/elementary_1.9.4.abi.tar.gz -new 
abi_dumps/elementary/elementary_1.10.0.abi.tar.gz
-Where abi_dumps/elementary/elementary_1.9.4.abi.tar.gz is a previously 
created dump for the old release we'd like to compare to.
+1. Generate the dump for the latest version: ./gendump.sh elementary 1.10.0
+2. Generate the report: ./cmpdump.sh elementary 1.9.4 1.10.0
+Assuming abi_dumps/elementary/elementary_1.9.4.abi.tar.gz and one for 
1.10.0 exist.
diff --git a/cmpdump.sh b/cmpdump.sh
new file mode 100755
index 000..9e3b6f8
--- /dev/null
+++ b/cmpdump.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+if [ "$#" -ne 3 ]; then
+echo "Usage: $0   "
+exit 1
+fi
+
+libname="$1"
+liboldver="$2"
+libnewver="$3"
+
+abi-compliance-checker -l "${libname}" -old 
"abi_dumps/${libname}/${libname}_${liboldver}.abi.tar.gz" -new 
"abi_dumps/${libname}/${libname}_${libnewver}.abi.tar.gz"
diff --git a/gendump.sh b/gendump.sh
new file mode 100755
index 000..b83852f
--- /dev/null
+++ b/gendump.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+if [ "$#" -ne 2 ]; then
+echo "Usage: $0  "
+exit 1
+fi
+
+libname="$1"
+libver="$2"
+
+abi-compliance-checker -l "${libname}" -dump "${libname}-${libver}.xml"

-- 




[EGIT] [core/enlightenment] master 01/01: unset E_Client->want/take_focus flags during client eval

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=ae919fe716f39cef7f6ca3fc517963b733efc3f4

commit ae919fe716f39cef7f6ca3fc517963b733efc3f4
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 12:02:13 2015 -0400

unset E_Client->want/take_focus flags during client eval

ref 4a33cd7ba0c51b911b1d7845411d2b70e01a3d55
---
 src/bin/e_client.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 669712d..664a8b2 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2207,8 +2207,12 @@ _e_client_eval(E_Client *ec)
((!ec->zone) || e_client_util_desk_visible(ec, 
e_desk_current_get(ec->zone))) &&
((ec->take_focus) || (ec->want_focus)))
  {
+ec->take_focus = 0;
 if ((e_config->focus_setting == E_FOCUS_NEW_WINDOW) || 
(ec->want_focus))
-  e_client_focus_set_with_pointer(ec);
+  {
+ ec->want_focus = 0;
+ e_client_focus_set_with_pointer(ec);
+  }
 else if (ec->dialog)
   {
  if ((e_config->focus_setting == E_FOCUS_NEW_DIALOG) ||

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 01/02: e - fm - flush all evas caches to get rid of open file handles b4 umount

2015-09-22 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=8f69b497b2140480aa7045cb60994a05a6a6ecfb

commit 8f69b497b2140480aa7045cb60994a05a6a6ecfb
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Sep 22 13:17:10 2015 +0900

e - fm - flush all evas caches to get rid of open file handles b4 umount

this should fix open file handles on unmount by flushing caches first.
not great, but works. long-term have evas not keep file handles open
for 0 refcount cached items.
---
 src/bin/e_fm.c | 9 +
 1 file changed, 9 insertions(+)

diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c
index 67ca452..593744b 100644
--- a/src/bin/e_fm.c
+++ b/src/bin/e_fm.c
@@ -2611,6 +2611,15 @@ _e_fm2_client_unmount(const char *udi)
 
_e_fm2_client_get();
 
+   elm_cache_all_flush();
+   edje_file_cache_flush();
+   edje_collection_cache_flush();
+   if (e_comp_get(NULL))
+ {
+evas_image_cache_flush(e_comp_get(NULL)->evas);
+evas_font_cache_flush(e_comp_get(NULL)->evas);
+ }
+
return _e_fm_client_send_new(E_FM_OP_UNMOUNT, (void *)d, l);
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 02/02: unset E_Client->want/take_focus flags during client eval

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=e2dfd33496702a9d95b25d63d7c99132a80babd2

commit e2dfd33496702a9d95b25d63d7c99132a80babd2
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 12:02:13 2015 -0400

unset E_Client->want/take_focus flags during client eval

ref 4a33cd7ba0c51b911b1d7845411d2b70e01a3d55
---
 src/bin/e_client.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 8670118..ac59968 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2208,8 +2208,12 @@ _e_client_eval(E_Client *ec)
((!ec->zone) || e_client_util_desk_visible(ec, 
e_desk_current_get(ec->zone))) &&
((ec->take_focus) || (ec->want_focus)))
  {
+ec->take_focus = 0;
 if ((e_config->focus_setting == E_FOCUS_NEW_WINDOW) || 
(ec->want_focus))
-  e_client_focus_set_with_pointer(ec);
+  {
+ ec->want_focus = 0;
+ e_client_focus_set_with_pointer(ec);
+  }
 else if (ec->dialog)
   {
  if ((e_config->focus_setting == E_FOCUS_NEW_DIALOG) ||

-- 




[EGIT] [core/enlightenment] master 02/04: only unpopulate a shelf when applying new settings if the shelf won't be recreated

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=37c146435d22061e4db10f641cd99c71a4bb869f

commit 37c146435d22061e4db10f641cd99c71a4bb869f
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 12:36:41 2015 -0400

only unpopulate a shelf when applying new settings if the shelf won't be 
recreated
---
 src/bin/e_int_shelf_config.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_int_shelf_config.c b/src/bin/e_int_shelf_config.c
index 6c21944..1771369 100644
--- a/src/bin/e_int_shelf_config.c
+++ b/src/bin/e_int_shelf_config.c
@@ -347,7 +347,8 @@ _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data 
*cfdata)
   }
  }
 
-   e_gadcon_unpopulate(cfdata->es->gadcon);
+   if (!recreate)
+ e_gadcon_unpopulate(cfdata->es->gadcon);
if (!cfdata->escfg->style)
  {
 cfdata->escfg->style = eina_stringshare_ref(cfdata->style);

-- 




[EGIT] [core/enlightenment] master 04/04: redo client maximization when a non-overlap shelf changes geometry

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=32aa8127012b2403bf8585cdf0d99d9a7ca7a194

commit 32aa8127012b2403bf8585cdf0d99d9a7ca7a194
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 12:42:39 2015 -0400

redo client maximization when a non-overlap shelf changes geometry

this fixes the annoying case of needing to remaximize all windows when
a shelf resizes in order to account for new geometry
---
 src/bin/e_shelf.c | 24 
 1 file changed, 24 insertions(+)

diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c
index d138778..d88360e 100644
--- a/src/bin/e_shelf.c
+++ b/src/bin/e_shelf.c
@@ -86,6 +86,24 @@ static Ecore_Event_Handler *_e_shelf_gadcon_populate_handler 
= NULL;
 static Ecore_Event_Handler *_e_shelf_module_init_end_handler = NULL;
 static Ecore_Event_Handler *_e_shelf_zone_moveresize_handler = NULL;
 
+static void
+_e_shelf_remaximize(E_Shelf *es)
+{
+   E_Client *ec;
+
+   if (es->cfg->overlap) return;
+   E_CLIENT_FOREACH(ec)
+ {
+E_Maximize max = ec->maximized;
+
+if (!ec->maximized) continue;
+if ((!ec->sticky) && (!e_shelf_desk_visible(es, ec->desk ?: 
e_desk_current_get(es->zone
+  continue;
+e_client_unmaximize(ec, ec->maximized);
+e_client_maximize(ec, max);
+ }
+}
+
 /* externally accessible functions */
 EINTERN int
 e_shelf_init(void)
@@ -472,9 +490,11 @@ e_shelf_move(E_Shelf *es, int x, int y)
 {
E_OBJECT_CHECK(es);
E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
+   if ((es->x == x) && (es->y == y)) return;
es->x = x;
es->y = y;
evas_object_move(es->comp_object, es->zone->x + es->x, es->zone->y + es->y);
+   _e_shelf_remaximize(es);
 }
 
 E_API void
@@ -482,9 +502,11 @@ e_shelf_resize(E_Shelf *es, int w, int h)
 {
E_OBJECT_CHECK(es);
E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
+   if ((es->w == w) && (es->h == h)) return;
es->w = w;
es->h = h;
evas_object_resize(es->comp_object, es->w, es->h);
+   _e_shelf_remaximize(es);
 }
 
 E_API void
@@ -492,12 +514,14 @@ e_shelf_move_resize(E_Shelf *es, int x, int y, int w, int 
h)
 {
E_OBJECT_CHECK(es);
E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
+   if ((es->x == x) && (es->y == y) && (es->w == w) && (es->h == h)) return;
es->x = x;
es->y = y;
es->w = w;
es->h = h;
evas_object_move(es->comp_object, es->zone->x + es->x, es->zone->y + es->y);
evas_object_resize(es->comp_object, es->w, es->h);
+   _e_shelf_remaximize(es);
 }
 
 E_API void

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 03/04: clamp client geometry to zone during geometry calc

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=5ae61c954eebfddf6e8c32edc4546b88d0c7dd50

commit 5ae61c954eebfddf6e8c32edc4546b88d0c7dd50
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 12:37:14 2015 -0400

clamp client geometry to zone during geometry calc

somehow it was possible for client sizes to overflow the zone geometry here
which would end up breaking maximization limits and result in clients
not respecting various geometry boundaries
---
 src/bin/e_maximize.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_maximize.c b/src/bin/e_maximize.c
index 74aa4d7..fd12f67 100644
--- a/src/bin/e_maximize.c
+++ b/src/bin/e_maximize.c
@@ -178,8 +178,8 @@ _e_maximize_client_rects_fill(E_Client *ec, Eina_List 
*rects, int *x1, int *yy1,
 
 bx = E_CLAMP(ec->x, ec->zone->x, ec->zone->x + ec->zone->w);
 by = E_CLAMP(ec->y, ec->zone->y, ec->zone->y + ec->zone->h);
-bw = ec->w;
-bh = ec->h;
+bw = E_CLAMP(ec->w, 0, ec->zone->w);
+bh = E_CLAMP(ec->h, 0, ec->zone->h);
 
 if ((dir & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL)
   _e_maximize_client_rects_fill_horiz(ec, rects, x1, x2, &bx, &by, 
&bw, &bh);

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 04/04: redo client maximization when a non-overlap shelf changes geometry

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=8087b84829c7931e9dd2ef0fcd20ee572005e637

commit 8087b84829c7931e9dd2ef0fcd20ee572005e637
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 12:42:39 2015 -0400

redo client maximization when a non-overlap shelf changes geometry

this fixes the annoying case of needing to remaximize all windows when
a shelf resizes in order to account for new geometry
---
 src/bin/e_shelf.c | 24 
 1 file changed, 24 insertions(+)

diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c
index 4c63e02..ed6a490 100644
--- a/src/bin/e_shelf.c
+++ b/src/bin/e_shelf.c
@@ -86,6 +86,24 @@ static Ecore_Event_Handler *_e_shelf_gadcon_populate_handler 
= NULL;
 static Ecore_Event_Handler *_e_shelf_module_init_end_handler = NULL;
 static Ecore_Event_Handler *_e_shelf_zone_moveresize_handler = NULL;
 
+static void
+_e_shelf_remaximize(E_Shelf *es)
+{
+   E_Client *ec;
+
+   if (es->cfg->overlap) return;
+   E_CLIENT_FOREACH(e_comp_get(es->zone), ec)
+ {
+E_Maximize max = ec->maximized;
+
+if (!ec->maximized) continue;
+if ((!ec->sticky) && (!e_shelf_desk_visible(es, ec->desk ?: 
e_desk_current_get(es->zone
+  continue;
+e_client_unmaximize(ec, ec->maximized);
+e_client_maximize(ec, max);
+ }
+}
+
 /* externally accessible functions */
 EINTERN int
 e_shelf_init(void)
@@ -472,9 +490,11 @@ e_shelf_move(E_Shelf *es, int x, int y)
 {
E_OBJECT_CHECK(es);
E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
+   if ((es->x == x) && (es->y == y)) return;
es->x = x;
es->y = y;
evas_object_move(es->comp_object, es->zone->x + es->x, es->zone->y + es->y);
+   _e_shelf_remaximize(es);
 }
 
 E_API void
@@ -482,9 +502,11 @@ e_shelf_resize(E_Shelf *es, int w, int h)
 {
E_OBJECT_CHECK(es);
E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
+   if ((es->w == w) && (es->h == h)) return;
es->w = w;
es->h = h;
evas_object_resize(es->comp_object, es->w, es->h);
+   _e_shelf_remaximize(es);
 }
 
 E_API void
@@ -492,12 +514,14 @@ e_shelf_move_resize(E_Shelf *es, int x, int y, int w, int 
h)
 {
E_OBJECT_CHECK(es);
E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
+   if ((es->x == x) && (es->y == y) && (es->w == w) && (es->h == h)) return;
es->x = x;
es->y = y;
es->w = w;
es->h = h;
evas_object_move(es->comp_object, es->zone->x + es->x, es->zone->y + es->y);
evas_object_resize(es->comp_object, es->w, es->h);
+   _e_shelf_remaximize(es);
 }
 
 E_API void

-- 




[EGIT] [core/enlightenment] master 01/04: block gadcon thaw on unpopulate when gadcon is deleted

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=4eaeabc1c306b45ee9bc7457ca8adb1c48b4d026

commit 4eaeabc1c306b45ee9bc7457ca8adb1c48b4d026
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 12:36:12 2015 -0400

block gadcon thaw on unpopulate when gadcon is deleted

saves a huge amount of unnecessary calc time
---
 src/bin/e_gadcon.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_gadcon.c b/src/bin/e_gadcon.c
index 9e8cdf0..336b32f 100644
--- a/src/bin/e_gadcon.c
+++ b/src/bin/e_gadcon.c
@@ -618,7 +618,8 @@ e_gadcon_unpopulate(E_Gadcon *gc)
if (gc->awaiting_classes)
  eina_hash_free(gc->awaiting_classes);
gc->awaiting_classes = NULL;
-   if (gc->o_container && (!stopping)) e_gadcon_layout_thaw(gc->o_container);
+   if (gc->o_container && (!stopping) && (!e_object_is_del(E_OBJECT(gc
+ e_gadcon_layout_thaw(gc->o_container);
 }
 
 E_API void

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 01/04: block gadcon thaw on unpopulate when gadcon is deleted

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=8a1634266c3094098301c516267b95daa68a86eb

commit 8a1634266c3094098301c516267b95daa68a86eb
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 12:36:12 2015 -0400

block gadcon thaw on unpopulate when gadcon is deleted

saves a huge amount of unnecessary calc time
---
 src/bin/e_gadcon.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_gadcon.c b/src/bin/e_gadcon.c
index 2dd8a70..91177d8 100644
--- a/src/bin/e_gadcon.c
+++ b/src/bin/e_gadcon.c
@@ -611,7 +611,8 @@ e_gadcon_unpopulate(E_Gadcon *gc)
if (gc->awaiting_classes)
  eina_hash_free(gc->awaiting_classes);
gc->awaiting_classes = NULL;
-   if (gc->o_container && (!stopping)) e_gadcon_layout_thaw(gc->o_container);
+   if (gc->o_container && (!stopping) && (!e_object_is_del(E_OBJECT(gc
+ e_gadcon_layout_thaw(gc->o_container);
 }
 
 E_API void

-- 




[EGIT] [core/enlightenment] master 03/04: clamp client geometry to zone during geometry calc

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=f3edf38e49dc56aed9a5d062726804ce738a84e2

commit f3edf38e49dc56aed9a5d062726804ce738a84e2
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 12:37:14 2015 -0400

clamp client geometry to zone during geometry calc

somehow it was possible for client sizes to overflow the zone geometry here
which would end up breaking maximization limits and result in clients
not respecting various geometry boundaries
---
 src/bin/e_maximize.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_maximize.c b/src/bin/e_maximize.c
index 7a574d0..8399af9 100644
--- a/src/bin/e_maximize.c
+++ b/src/bin/e_maximize.c
@@ -178,8 +178,8 @@ _e_maximize_client_rects_fill(E_Client *ec, Eina_List 
*rects, int *x1, int *yy1,
 
 bx = E_CLAMP(ec->x, ec->zone->x, ec->zone->x + ec->zone->w);
 by = E_CLAMP(ec->y, ec->zone->y, ec->zone->y + ec->zone->h);
-bw = ec->w;
-bh = ec->h;
+bw = E_CLAMP(ec->w, 0, ec->zone->w);
+bh = E_CLAMP(ec->h, 0, ec->zone->h);
 
 if ((dir & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL)
   _e_maximize_client_rects_fill_horiz(ec, rects, x1, x2, &bx, &by, 
&bw, &bh);

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 02/04: only unpopulate a shelf when applying new settings if the shelf won't be recreated

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=ff1408c040cb5637304d8d434addff7f78659bb7

commit ff1408c040cb5637304d8d434addff7f78659bb7
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 12:36:41 2015 -0400

only unpopulate a shelf when applying new settings if the shelf won't be 
recreated
---
 src/bin/e_int_shelf_config.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_int_shelf_config.c b/src/bin/e_int_shelf_config.c
index 236cdd3..6536325 100644
--- a/src/bin/e_int_shelf_config.c
+++ b/src/bin/e_int_shelf_config.c
@@ -347,7 +347,8 @@ _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data 
*cfdata)
   }
  }
 
-   e_gadcon_unpopulate(cfdata->es->gadcon);
+   if (!recreate)
+ e_gadcon_unpopulate(cfdata->es->gadcon);
if (!cfdata->escfg->style)
  {
 cfdata->escfg->style = eina_stringshare_ref(cfdata->style);

-- 




[EGIT] [core/enlightenment] master 01/02: Revert "Revert "Revert "deskmirror - fix dangling reference to mirror by refcounting it"""

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=2373b69c61d7d6ab74675a4facff54601831ce9a

commit 2373b69c61d7d6ab74675a4facff54601831ce9a
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 12:54:10 2015 -0400

Revert "Revert "Revert "deskmirror - fix dangling reference to mirror by 
refcounting it"""

This reverts commit 6bef668a8fb37104f1e9e4bb1bb0dd379cb68ef5.
---
 src/bin/e_deskmirror.c | 23 +--
 1 file changed, 1 insertion(+), 22 deletions(-)

diff --git a/src/bin/e_deskmirror.c b/src/bin/e_deskmirror.c
index 4abc0b3..3efe066 100644
--- a/src/bin/e_deskmirror.c
+++ b/src/bin/e_deskmirror.c
@@ -41,7 +41,6 @@ typedef struct Mirror
Evas_Object *comp_object;
Evas_Object *mirror;
int x, y, w, h;
-   int ref;
Eina_Bool added : 1;
 } Mirror;
 
@@ -111,20 +110,6 @@ _mirror_scale_set(Mirror *m, float sc)
 }
 
 static void
-_mirror_ref(Mirror *m)
-{
-   m->ref++;
-}
-
-static void
-_mirror_unref(Mirror *m)
-{
-   m->ref--;
-   if (m->ref > 0) return;
-   free(m);
-}
-
-static void
 _e_deskmirror_smart_reconfigure(E_Smart_Data *sd)
 {
e_layout_freeze(sd->layout);
@@ -352,10 +337,7 @@ _mirror_client_smart_del(Evas_Object *obj)
 evas_object_smart_callback_del_full(mb->m->ec->frame, "shadow_change", 
_mirror_client_shadow_change, mb->frame);
  }
evas_object_del(mb->frame);
-   mb->frame = NULL;
evas_object_del(mb->mirror);
-   mb->mirror = NULL;
-   _mirror_unref(mb->m);
free(mb);
 }
 
@@ -492,13 +474,12 @@ _e_deskmirror_mirror_del_hash(Mirror *m)
evas_object_smart_callback_del_full(m->comp_object, "frame_recalc_done", 
_e_deskmirror_mirror_frame_recalc_cb, m);
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_DEL, 
_e_deskmirror_mirror_del_cb, m);
evas_object_del(m->mirror);
-   m->mirror = NULL;
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_SHOW, 
(Evas_Object_Event_Cb)_comp_object_show, m);
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_HIDE, 
(Evas_Object_Event_Cb)_comp_object_hide, m);
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_RESTACK, 
(Evas_Object_Event_Cb)_comp_object_stack, m);
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_RESIZE, 
(Evas_Object_Event_Cb)_comp_object_configure, m);
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_MOVE, 
(Evas_Object_Event_Cb)_comp_object_configure, m);
-   _mirror_unref(m);
+   free(m);
 }
 
 static Evas_Object *
@@ -511,7 +492,6 @@ _mirror_client_new(Mirror *m)
o = evas_object_smart_add(m->sd->e, _mirror_client_smart);
mb = evas_object_smart_data_get(o);
mb->m = m;
-   _mirror_ref(m);
mb->frame = edje_object_add(m->sd->e);
evas_object_name_set(mb->frame, "mirror_border");
_mirror_client_theme_setup(mb, mb->frame);
@@ -676,7 +656,6 @@ _e_deskmirror_mirror_add(E_Smart_Data *sd, Evas_Object *obj)
m->ec = ec;
m->sd = sd;
m->mirror = o;
-   m->ref = 1;
evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, 
(Evas_Object_Event_Cb)_comp_object_show, m);
evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, 
(Evas_Object_Event_Cb)_comp_object_hide, m);
evas_object_event_callback_add(obj, EVAS_CALLBACK_RESTACK, 
(Evas_Object_Event_Cb)_comp_object_stack, m);

-- 




[EGIT] [core/enlightenment] master 02/02: do not emit client iconify signal when reapplying compositor theme

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=8399ab4ff95a8c66befc13e87efcaa33158bab1a

commit 8399ab4ff95a8c66befc13e87efcaa33158bab1a
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 13:07:15 2015 -0400

do not emit client iconify signal when reapplying compositor theme

this has no effect other than breaking the animation counter for the
client and preventing it from being deleted
---
 src/bin/e_comp_object.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 725e0e3..7b62b42 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -634,8 +634,9 @@ _e_comp_object_shadow_setup(E_Comp_Object *cw)
else
  e_comp_object_signal_emit(cw->smart_obj, "e,state,hidden", "e");
 
-   if (cw->ec->iconic)
- e_comp_object_signal_emit(cw->smart_obj, "e,action,iconify", "e");
+   /* breaks animation counter */
+   //if (cw->ec->iconic)
+ //e_comp_object_signal_emit(cw->smart_obj, "e,action,iconify", "e");
if (!cw->zoomap_disabled)
  e_zoomap_child_set(cw->zoomobj, NULL);
if (cw->frame_object)

-- 




[EGIT] [core/enlightenment] master 01/01: calculate comp object visibility regardless of pending damages

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=4173bd9977f4d1c70cf4a9ef659191e27f6751af

commit 4173bd9977f4d1c70cf4a9ef659191e27f6751af
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 13:14:51 2015 -0400

calculate comp object visibility regardless of pending damages

in the case of clients on non-visible vdesks, this improves the reliability
of mirrored rendering
---
 src/bin/e_comp_object.c | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 7b62b42..55c6dc4 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3432,6 +3432,7 @@ e_comp_object_dirty(Evas_Object *obj)
 if (!dirty)
   evas_object_image_data_set(o, NULL);
 evas_object_image_size_set(o, w, h);
+visible |= evas_object_visible_get(o);
  }
if (!dirty)
  {
@@ -3445,10 +3446,7 @@ e_comp_object_dirty(Evas_Object *obj)
 RENDER_DEBUG("UPDATE ADD [%p]: %d %d %dx%d", cw->ec, rect->x, rect->y, 
rect->w, rect->h);
 evas_object_image_data_update_add(cw->obj, rect->x, rect->y, rect->w, 
rect->h);
 EINA_LIST_FOREACH(cw->obj_mirror, ll, o)
-  {
- evas_object_image_data_update_add(o, rect->x, rect->y, rect->w, 
rect->h);
- visible |= evas_object_visible_get(o);
-  }
+  evas_object_image_data_update_add(o, rect->x, rect->y, rect->w, 
rect->h);
 if (cw->pending_updates)
   eina_tiler_rect_add(cw->pending_updates, rect);
  }

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 02/02: calculate comp object visibility regardless of pending damages

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=52c66793f13e39e895ab6d839bbf9cc333d6515f

commit 52c66793f13e39e895ab6d839bbf9cc333d6515f
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 13:14:51 2015 -0400

calculate comp object visibility regardless of pending damages

in the case of clients on non-visible vdesks, this improves the reliability
of mirrored rendering
---
 src/bin/e_comp_object.c | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 205130c..52b1e8f 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3281,6 +3281,7 @@ e_comp_object_dirty(Evas_Object *obj)
 if (!dirty)
   evas_object_image_data_set(o, NULL);
 evas_object_image_size_set(o, w, h);
+visible |= evas_object_visible_get(o);
  }
if (!dirty)
  {
@@ -3294,10 +3295,7 @@ e_comp_object_dirty(Evas_Object *obj)
 RENDER_DEBUG("UPDATE ADD [%p]: %d %d %dx%d", cw->ec, r->x, r->y, r->w, 
r->h);
 evas_object_image_data_update_add(cw->obj, r->x, r->y, r->w, r->h);
 EINA_LIST_FOREACH(cw->obj_mirror, l, o)
-  {
- evas_object_image_data_update_add(o, r->x, r->y, r->w, r->h);
- visible |= evas_object_visible_get(o);
-  }
+  evas_object_image_data_update_add(o, r->x, r->y, r->w, r->h);
 if (cw->pending_updates)
   eina_tiler_rect_add(cw->pending_updates, r);
  }

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 01/02: do not emit client iconify signal when reapplying compositor theme

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=7a142970cbc1fc6766f2c4b81a6c3f9d91c538fe

commit 7a142970cbc1fc6766f2c4b81a6c3f9d91c538fe
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 13:07:15 2015 -0400

do not emit client iconify signal when reapplying compositor theme

this has no effect other than breaking the animation counter for the
client and preventing it from being deleted
---
 src/bin/e_comp_object.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 772f8e0..205130c 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -590,8 +590,9 @@ _e_comp_object_shadow_setup(E_Comp_Object *cw)
else
  e_comp_object_signal_emit(cw->smart_obj, "e,state,hidden", "e");
 
-   if (cw->ec->iconic)
- e_comp_object_signal_emit(cw->smart_obj, "e,action,iconify", "e");
+   /* breaks animation counter */
+   //if (cw->ec->iconic)
+ //e_comp_object_signal_emit(cw->smart_obj, "e,action,iconify", "e");
if (!cw->zoomap_disabled)
  e_zoomap_child_set(cw->zoomobj, NULL);
if (cw->frame_object)

-- 




[EGIT] [core/efl] master 01/01: edje: return immediately when deleting a color class if no users exist

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=57d6231b3aee7e9e74b6d6e1d929d710b7ac9ef6

commit 57d6231b3aee7e9e74b6d6e1d929d710b7ac9ef6
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 13:20:06 2015 -0400

edje: return immediately when deleting a color class if no users exist
---
 src/lib/edje/edje_util.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c
index c0bb3f5..c238c13 100644
--- a/src/lib/edje/edje_util.c
+++ b/src/lib/edje/edje_util.c
@@ -735,6 +735,7 @@ edje_color_class_del(const char *color_class)
free(cc);
 
members = eina_hash_find(_edje_color_class_member_hash, color_class);
+   if (!members) return;
it = eina_hash_iterator_data_new(members);
EINA_ITERATOR_FOREACH(it, er)
  {

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 01/01: update xkb settings and send xkb update event when calling e_xkb_layout_set()

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=cce8a47a7e4e0a01cce77d20fab22416b4f32b9c

commit cce8a47a7e4e0a01cce77d20fab22416b4f32b9c
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 13:44:18 2015 -0400

update xkb settings and send xkb update event when calling 
e_xkb_layout_set()

resolves issue where setting a specific kbd would fail to make settings 
permanent
as well as not propagating the kbd change to the rest of enlightenment

fix T1810
---
 src/bin/e_xkb.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c
index 9847419..e80e542 100644
--- a/src/bin/e_xkb.c
+++ b/src/bin/e_xkb.c
@@ -231,10 +231,13 @@ e_xkb_layout_set(const E_Config_XKB_Layout *cl)
 if (e_config_xkb_layout_eq(cl, cl2))
   {
  INF("Setting keyboard layout: %s|%s|%s", cl2->name, cl2->model, 
cl2->variant);
+ eina_stringshare_replace(&e_config->xkb.cur_layout, cl->name);
+ eina_stringshare_replace(&e_config->xkb.selected_layout, 
cl->name);
  e_xkb_update(cur_group);
  break;
   }
  }
+   _e_xkb_update_event(e_config->xkb.cur_group);
e_config_save_queue();
 }
 

-- 




[EGIT] [core/enlightenment] master 01/01: update xkb settings and send xkb update event when calling e_xkb_layout_set()

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=8b932b053e563ce2cf083a21e8fcaf21c14f3b96

commit 8b932b053e563ce2cf083a21e8fcaf21c14f3b96
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 13:44:18 2015 -0400

update xkb settings and send xkb update event when calling 
e_xkb_layout_set()

resolves issue where setting a specific kbd would fail to make settings 
permanent
as well as not propagating the kbd change to the rest of enlightenment

fix T1810
---
 src/bin/e_xkb.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c
index 7ea6ecc..24583fd 100644
--- a/src/bin/e_xkb.c
+++ b/src/bin/e_xkb.c
@@ -233,10 +233,13 @@ e_xkb_layout_set(const E_Config_XKB_Layout *cl)
 if (e_config_xkb_layout_eq(cl, cl2))
   {
  INF("Setting keyboard layout: %s|%s|%s", cl2->name, cl2->model, 
cl2->variant);
+ eina_stringshare_replace(&e_config->xkb.cur_layout, cl->name);
+ eina_stringshare_replace(&e_config->xkb.selected_layout, 
cl->name);
  e_xkb_update(cur_group);
  break;
   }
  }
+   _e_xkb_update_event(e_config->xkb.cur_group);
e_config_save_queue();
 }
 

-- 




[EGIT] [core/enlightenment] master 01/01: fix shot module compile without x11 support

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=81ea29a715ba0c4f11a22dca3f416429ae9afbff

commit 81ea29a715ba0c4f11a22dca3f416429ae9afbff
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 13:54:28 2015 -0400

fix shot module compile without x11 support
---
 src/modules/shot/e_mod_main.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/src/modules/shot/e_mod_main.c b/src/modules/shot/e_mod_main.c
index 5189a73..c7b9075 100644
--- a/src/modules/shot/e_mod_main.c
+++ b/src/modules/shot/e_mod_main.c
@@ -1020,6 +1020,11 @@ _wl_shot_now(E_Zone *zone, E_Client *ec, const char 
*params)
 static void
 _x_shot_now(E_Zone *zone, E_Client *ec, const char *params)
 {
+#ifdef HAVE_WAYLAND_ONLY
+   (void)zone;
+   (void)ec;
+   (void)params;
+#else
Ecore_X_Image *img;
unsigned char *src;
unsigned int *dst;
@@ -1117,6 +1122,7 @@ _x_shot_now(E_Zone *zone, E_Client *ec, const char 
*params)
 
free(dst);
ecore_x_image_free(img);
+#endif
 }
 
 static Eina_Bool

-- 




[EGIT] [core/enlightenment] master 02/02: attempt to maintain currently-selected kbd layout when modifying kbd list

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=4ef9d9e5189a9fbd18fe0ec3516f49109f06d4a8

commit 4ef9d9e5189a9fbd18fe0ec3516f49109f06d4a8
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 14:17:35 2015 -0400

attempt to maintain currently-selected kbd layout when modifying kbd list

the previous behavior would just set up the new layouts, resulting in
the first layout in the list being applied. now it should be the case
that if the current layout has not been deleted, it will continue to
remain in effect; alternatively if the current layout has been modified,
it's now more likely to be picked up and used
---
 src/modules/xkbswitch/e_mod_config.c | 32 ++--
 1 file changed, 30 insertions(+), 2 deletions(-)

diff --git a/src/modules/xkbswitch/e_mod_config.c 
b/src/modules/xkbswitch/e_mod_config.c
index 28b00f1..4ac2eae 100644
--- a/src/modules/xkbswitch/e_mod_config.c
+++ b/src/modules/xkbswitch/e_mod_config.c
@@ -225,6 +225,7 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata)
E_Config_XKB_Layout *cl, *nl;
E_Config_XKB_Option *oc;
E_XKB_Dialog_Option *od;
+   Eina_Bool cur_ok = EINA_FALSE, sel_ok = EINA_FALSE;
 
EINA_LIST_FREE(e_config->xkb.used_layouts, cl)
  {
@@ -243,6 +244,34 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata)
 
 e_config->xkb.used_layouts =
   eina_list_append(e_config->xkb.used_layouts, nl);
+if (e_config_xkb_layout_eq(e_config->xkb.current_layout, nl))
+  cur_ok = EINA_TRUE;
+if (e_config_xkb_layout_eq(e_config->xkb.sel_layout, nl))
+  sel_ok = EINA_TRUE;
+ }
+   if (!cur_ok)
+ {
+E_FREE_FUNC(e_config->xkb.current_layout, e_config_xkb_layout_free);
+EINA_LIST_FOREACH(e_config->xkb.used_layouts, l, cl)
+  if (e_config->xkb.cur_layout == cl->name)
+{
+   e_config->xkb.current_layout = e_config_xkb_layout_dup(cl);
+   break;
+}
+if (!e_config->xkb.current_layout)
+  eina_stringshare_replace(&e_config->xkb.cur_layout, NULL);
+ }
+   if (!sel_ok)
+ {
+E_FREE_FUNC(e_config->xkb.sel_layout, e_config_xkb_layout_free);
+EINA_LIST_FOREACH(e_config->xkb.used_layouts, l, cl)
+  if (e_config->xkb.selected_layout == cl->name)
+{
+   e_config->xkb.sel_layout = e_config_xkb_layout_dup(cl);
+   break;
+}
+if (!e_config->xkb.sel_layout)
+  eina_stringshare_replace(&e_config->xkb.selected_layout, NULL);
  }
 
eina_stringshare_replace(&e_config->xkb.default_model, 
cfdata->default_model);
@@ -266,8 +295,7 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata)
 e_config->xkb.used_options = 
eina_list_append(e_config->xkb.used_options, oc);
  }
 
-   e_xkb_update(-1);
-   _xkb_update_icon(0);
+   e_xkb_init();
 
e_config_save_queue();
return 1;

-- 




[EGIT] [core/enlightenment] master 01/02: only init E_EVENT_XKB_CHANGED during xkb init if xkb init hasn't already occurred

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=f1faab997fcf88d5687feedb5856b2128189a66c

commit f1faab997fcf88d5687feedb5856b2128189a66c
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 14:16:20 2015 -0400

only init E_EVENT_XKB_CHANGED during xkb init if xkb init hasn't already 
occurred

allows xkb init to be called repeatedly
---
 src/bin/e_xkb.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c
index 24583fd..7c21221 100644
--- a/src/bin/e_xkb.c
+++ b/src/bin/e_xkb.c
@@ -32,7 +32,8 @@ _e_xkb_init_timer(void *data)
 E_API int
 e_xkb_init(void)
 {
-   E_EVENT_XKB_CHANGED = ecore_event_type_new();
+   if (!E_EVENT_XKB_CHANGED)
+ E_EVENT_XKB_CHANGED = ecore_event_type_new();
if (e_config->xkb.dont_touch_my_damn_keyboard) return 1;
e_xkb_update(-1);
if (e_config->xkb.cur_layout)

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 01/02: only init E_EVENT_XKB_CHANGED during xkb init if xkb init hasn't already occurred

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=c4f31818956ee899202ca86dc3ba92960dea859c

commit c4f31818956ee899202ca86dc3ba92960dea859c
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 14:16:20 2015 -0400

only init E_EVENT_XKB_CHANGED during xkb init if xkb init hasn't already 
occurred

allows xkb init to be called repeatedly
---
 src/bin/e_xkb.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c
index e80e542..13d7b20 100644
--- a/src/bin/e_xkb.c
+++ b/src/bin/e_xkb.c
@@ -31,7 +31,8 @@ _e_xkb_init_timer(void *data)
 E_API int
 e_xkb_init(void)
 {
-   E_EVENT_XKB_CHANGED = ecore_event_type_new();
+   if (!E_EVENT_XKB_CHANGED)
+ E_EVENT_XKB_CHANGED = ecore_event_type_new();
if (e_config->xkb.dont_touch_my_damn_keyboard) return 1;
e_xkb_update(-1);
if (e_config->xkb.cur_layout)

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 02/02: attempt to maintain currently-selected kbd layout when modifying kbd list

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=f19a122605446bc4cf501384af303e7c7799eb6c

commit f19a122605446bc4cf501384af303e7c7799eb6c
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 14:17:35 2015 -0400

attempt to maintain currently-selected kbd layout when modifying kbd list

the previous behavior would just set up the new layouts, resulting in
the first layout in the list being applied. now it should be the case
that if the current layout has not been deleted, it will continue to
remain in effect; alternatively if the current layout has been modified,
it's now more likely to be picked up and used
---
 src/modules/xkbswitch/e_mod_config.c | 32 ++--
 1 file changed, 30 insertions(+), 2 deletions(-)

diff --git a/src/modules/xkbswitch/e_mod_config.c 
b/src/modules/xkbswitch/e_mod_config.c
index e2c17fa..a4ab756 100644
--- a/src/modules/xkbswitch/e_mod_config.c
+++ b/src/modules/xkbswitch/e_mod_config.c
@@ -225,6 +225,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, 
E_Config_Dialog_Data *cfdata)
E_Config_XKB_Layout *cl, *nl;
E_Config_XKB_Option *oc;
E_XKB_Dialog_Option *od;
+   Eina_Bool cur_ok = EINA_FALSE, sel_ok = EINA_FALSE;
 
EINA_LIST_FREE(e_config->xkb.used_layouts, cl)
  {
@@ -243,6 +244,34 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, 
E_Config_Dialog_Data *cfdata)
 
 e_config->xkb.used_layouts =
   eina_list_append(e_config->xkb.used_layouts, nl);
+if (e_config_xkb_layout_eq(e_config->xkb.current_layout, nl))
+  cur_ok = EINA_TRUE;
+if (e_config_xkb_layout_eq(e_config->xkb.sel_layout, nl))
+  sel_ok = EINA_TRUE;
+ }
+   if (!cur_ok)
+ {
+E_FREE_FUNC(e_config->xkb.current_layout, e_config_xkb_layout_free);
+EINA_LIST_FOREACH(e_config->xkb.used_layouts, l, cl)
+  if (e_config->xkb.cur_layout == cl->name)
+{
+   e_config->xkb.current_layout = e_config_xkb_layout_dup(cl);
+   break;
+}
+if (!e_config->xkb.current_layout)
+  eina_stringshare_replace(&e_config->xkb.cur_layout, NULL);
+ }
+   if (!sel_ok)
+ {
+E_FREE_FUNC(e_config->xkb.sel_layout, e_config_xkb_layout_free);
+EINA_LIST_FOREACH(e_config->xkb.used_layouts, l, cl)
+  if (e_config->xkb.selected_layout == cl->name)
+{
+   e_config->xkb.sel_layout = e_config_xkb_layout_dup(cl);
+   break;
+}
+if (!e_config->xkb.sel_layout)
+  eina_stringshare_replace(&e_config->xkb.selected_layout, NULL);
  }
 
eina_stringshare_replace(&e_config->xkb.default_model, 
cfdata->default_model);
@@ -266,8 +295,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, 
E_Config_Dialog_Data *cfdata)
 e_config->xkb.used_options = 
eina_list_append(e_config->xkb.used_options, oc);
  }
 
-   e_xkb_update(-1);
-   _xkb_update_icon(0);
+   e_xkb_init();
 
e_config_save_queue();
return 1;

-- 




[EGIT] [core/enlightenment] master 01/01: add weekeyboard edj files

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=4173bd0c0c9595a4f472aab975e545d9ee798c2f

commit 4173bd0c0c9595a4f472aab975e545d9ee798c2f
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 15:03:39 2015 -0400

add weekeyboard edj files
---
 .../wl_weekeyboard/themes/default/default_1080.edj | Bin 0 -> 484848 bytes
 .../wl_weekeyboard/themes/default/default_600.edj  | Bin 0 -> 484760 bytes
 .../wl_weekeyboard/themes/default/default_720.edj  | Bin 0 -> 484760 bytes
 3 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/src/modules/wl_weekeyboard/themes/default/default_1080.edj 
b/src/modules/wl_weekeyboard/themes/default/default_1080.edj
new file mode 100644
index 000..63db8a5
Binary files /dev/null and 
b/src/modules/wl_weekeyboard/themes/default/default_1080.edj differ
diff --git a/src/modules/wl_weekeyboard/themes/default/default_600.edj 
b/src/modules/wl_weekeyboard/themes/default/default_600.edj
new file mode 100644
index 000..ccde12c
Binary files /dev/null and 
b/src/modules/wl_weekeyboard/themes/default/default_600.edj differ
diff --git a/src/modules/wl_weekeyboard/themes/default/default_720.edj 
b/src/modules/wl_weekeyboard/themes/default/default_720.edj
new file mode 100644
index 000..0327ddf
Binary files /dev/null and 
b/src/modules/wl_weekeyboard/themes/default/default_720.edj differ

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 02/02: improve client exe_inst creation

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=eeda49735c6de625de706072fc5e4cb7e7a511ee

commit eeda49735c6de625de706072fc5e4cb7e7a511ee
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 16:00:09 2015 -0400

improve client exe_inst creation

ref T2679
---
 src/bin/e_client.c | 13 -
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 160d1a7..6e663db 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2183,12 +2183,15 @@ _e_client_eval(E_Client *ec)
   }
 
 e_comp_object_frame_icon_update(ec->frame);
-if ((ec->new_client || ec->re_manage) && ec->desktop && 
(!ec->exe_inst))
-  e_exec_phony(ec);
-else if (ec->desktop && ec->exe_inst && (!ec->exe_inst->desktop))
+if (ec->desktop)
   {
- efreet_desktop_ref(ec->desktop);
- ec->exe_inst->desktop = ec->desktop;
+ if (!ec->exe_inst)
+   e_exec_phony(ec);
+ if (!ec->exe_inst->desktop)
+   {
+  efreet_desktop_ref(ec->desktop);
+  ec->exe_inst->desktop = ec->desktop;
+   }
   }
 ec->changes.icon = 0;
 prop |= E_CLIENT_PROPERTY_ICON;

-- 




[EGIT] [core/enlightenment] master 01/01: improve client exe_inst creation

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=c9c880ec596ce65cc831aab76208e99e19f5ef1d

commit c9c880ec596ce65cc831aab76208e99e19f5ef1d
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 16:00:09 2015 -0400

improve client exe_inst creation

ref T2679
---
 src/bin/e_client.c | 13 -
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 664a8b2..c001edd 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2182,12 +2182,15 @@ _e_client_eval(E_Client *ec)
   }
 
 e_comp_object_frame_icon_update(ec->frame);
-if ((ec->new_client || ec->re_manage) && ec->desktop && 
(!ec->exe_inst))
-  e_exec_phony(ec);
-else if (ec->desktop && ec->exe_inst && (!ec->exe_inst->desktop))
+if (ec->desktop)
   {
- efreet_desktop_ref(ec->desktop);
- ec->exe_inst->desktop = ec->desktop;
+ if (!ec->exe_inst)
+   e_exec_phony(ec);
+ if (!ec->exe_inst->desktop)
+   {
+  efreet_desktop_ref(ec->desktop);
+  ec->exe_inst->desktop = ec->desktop;
+   }
   }
 ec->changes.icon = 0;
 prop |= E_CLIENT_PROPERTY_ICON;

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 01/02: e - fix crash in desktop lookup+fixup where exe_inst is null

2015-09-22 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=d7fdb67488661580080bc6dd9b843a597c646f5d

commit d7fdb67488661580080bc6dd9b843a597c646f5d
Author: Carsten Haitzler (Rasterman) 
Date:   Sun Jun 14 17:50:14 2015 +0900

e - fix crash in desktop lookup+fixup where exe_inst is null
---
 src/bin/e_client.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index ac59968..160d1a7 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2185,7 +2185,7 @@ _e_client_eval(E_Client *ec)
 e_comp_object_frame_icon_update(ec->frame);
 if ((ec->new_client || ec->re_manage) && ec->desktop && 
(!ec->exe_inst))
   e_exec_phony(ec);
-else if (ec->desktop && (!ec->exe_inst->desktop))
+else if (ec->desktop && ec->exe_inst && (!ec->exe_inst->desktop))
   {
  efreet_desktop_ref(ec->desktop);
  ec->exe_inst->desktop = ec->desktop;

-- 




[EGIT] [core/enlightenment] master 01/01: fix systray implementation of notifier watcher (StatusNotifierItem)

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=0978d22f8e354176052d19acd10143b7fb79c11d

commit 0978d22f8e354176052d19acd10143b7fb79c11d
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 18:38:34 2015 -0400

fix systray implementation of notifier watcher (StatusNotifierItem)

previously, this would throw dbus errors (or not) and then do nothing in
many cases. now it manages bus/path names more effectively and falls back
to binary image data when an icon path is not available

fix T2626 and probably some others
---
 src/modules/systray/e_mod_notifier_host.c | 21 -
 src/modules/systray/e_mod_notifier_host_dbus.c| 96 ---
 src/modules/systray/e_mod_notifier_host_private.h |  4 +
 src/modules/systray/e_mod_notifier_watcher.c  | 21 ++---
 4 files changed, 116 insertions(+), 26 deletions(-)

diff --git a/src/modules/systray/e_mod_notifier_host.c 
b/src/modules/systray/e_mod_notifier_host.c
index 3fe3340..e3420b4 100644
--- a/src/modules/systray/e_mod_notifier_host.c
+++ b/src/modules/systray/e_mod_notifier_host.c
@@ -42,6 +42,8 @@ systray_notifier_item_free(Notifier_Item *item)
  e_dbusmenu_unload(item->menu_data);
eina_stringshare_del(item->bus_id);
eina_stringshare_del(item->path);
+   free(item->imgdata);
+   free(item->attnimgdata);
if (item->attention_icon_name)
  eina_stringshare_del(item->attention_icon_name);
if (item->icon_name)
@@ -64,7 +66,7 @@ systray_notifier_item_free(Notifier_Item *item)
 }
 
 static void
-image_load(const char *name, const char *path, Evas_Object *image)
+image_load(const char *name, const char *path, uint32_t *imgdata, int w, int 
h, Evas_Object *image)
 {
const char **ext, *exts[] =
{
@@ -96,7 +98,18 @@ image_load(const char *name, const char *path, Evas_Object 
*image)
}
   }
  }
-   if (!e_util_icon_theme_set(image, name))
+   if (name && name[0] && e_util_icon_theme_set(image, name)) return;
+   if (imgdata)
+ {
+Evas_Object *o;
+
+o = evas_object_image_filled_add(evas_object_evas_get(image));
+evas_object_image_alpha_set(o, 1);
+evas_object_image_size_set(o, w, h);
+evas_object_image_data_set(o, imgdata);
+e_icon_image_object_set(image, o);
+ }
+   else
  e_util_icon_theme_set(image, "dialog-error");
 }
 
@@ -261,7 +274,7 @@ jump_search:
  {
   case STATUS_ACTIVE:
 {
-   image_load(item->icon_name, item->icon_path, ii->icon);
+   image_load(item->icon_name, item->icon_path, item->imgdata, 
item->imgw, item->imgh, ii->icon);
if (!evas_object_visible_get(ii->icon))
  {
 systray_edje_box_append(host_inst->inst, ii->icon);
@@ -280,7 +293,7 @@ jump_search:
 }
   case STATUS_ATTENTION:
 {
-   image_load(item->attention_icon_name, item->icon_path, ii->icon);
+   image_load(item->attention_icon_name, item->icon_path, 
item->attnimgdata, item->attnimgw, item->attnimgh, ii->icon);
if (!evas_object_visible_get(ii->icon))
  {
 systray_edje_box_append(host_inst->inst, ii->icon);
diff --git a/src/modules/systray/e_mod_notifier_host_dbus.c 
b/src/modules/systray/e_mod_notifier_host_dbus.c
index f5de199..77ae5b5 100644
--- a/src/modules/systray/e_mod_notifier_host_dbus.c
+++ b/src/modules/systray/e_mod_notifier_host_dbus.c
@@ -14,6 +14,8 @@
 extern const char *Category_Names[];
 extern const char *Status_Names[];
 
+static Eina_Stringshare *DBUS_PATH;
+
 typedef struct _Notifier_Host_Data {
Instance_Notifier_Host *host_inst;
void *data;
@@ -57,6 +59,36 @@ id_find(const char *s, const char *names[])
 }
 
 static void
+icon_pixmap_deserialize(Eldbus_Message_Iter *variant, uint32_t **data, int *w, 
int *h)
+{
+   Eldbus_Message_Iter *iter, *struc;
+
+   *data = NULL;
+   *w = *h = 0;
+   eldbus_message_iter_arguments_get(variant, "a(iiay)", &iter);
+   while (eldbus_message_iter_get_and_next(iter, 'r', &struc))
+ {
+Eldbus_Message_Iter *imgdata;
+
+if (eldbus_message_iter_arguments_get(struc, "iiay", w, h, &imgdata))
+  {
+ uint32_t *img;
+ int len;
+
+ if (eldbus_message_iter_fixed_array_get(imgdata, 'y', &img, &len))
+   {
+  unsigned int pos;
+
+  *data = malloc(len * sizeof(int));
+  for (pos = 0; pos < (unsigned int)len; pos++)
+(*data)[pos] = eina_swap32(img[pos]);
+  return;
+   }
+  }
+ }
+}
+
+static void
 item_prop_get(void *data, const void *key, Eldbus_Message_Iter *var)
 {
Notifier_Item *item = data;
@@ -73,6 +105,16 @@ item_prop_get(void *data, const void *key, 
Eldbus_Message_Iter *var)
 eldbus_message_iter_arguments_get(var, "s", &name);
 eina_stringshare_replace(&item->icon_name, n

[EGIT] [core/enlightenment] enlightenment-0.19 01/01: fix systray implementation of notifier watcher (StatusNotifierItem)

2015-09-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=6f4d1268d159013ab17ff097acfef673cf76ebd2

commit 6f4d1268d159013ab17ff097acfef673cf76ebd2
Author: Mike Blumenkrantz 
Date:   Tue Sep 22 18:38:34 2015 -0400

fix systray implementation of notifier watcher (StatusNotifierItem)

previously, this would throw dbus errors (or not) and then do nothing in
many cases. now it manages bus/path names more effectively and falls back
to binary image data when an icon path is not available

fix T2626 and probably some others
---
 src/modules/systray/e_mod_notifier_host.c | 21 -
 src/modules/systray/e_mod_notifier_host_dbus.c| 96 ---
 src/modules/systray/e_mod_notifier_host_private.h |  4 +
 src/modules/systray/e_mod_notifier_watcher.c  | 21 ++---
 4 files changed, 116 insertions(+), 26 deletions(-)

diff --git a/src/modules/systray/e_mod_notifier_host.c 
b/src/modules/systray/e_mod_notifier_host.c
index 0cd7a26..065c82f 100644
--- a/src/modules/systray/e_mod_notifier_host.c
+++ b/src/modules/systray/e_mod_notifier_host.c
@@ -42,6 +42,8 @@ systray_notifier_item_free(Notifier_Item *item)
  e_dbusmenu_unload(item->menu_data);
eina_stringshare_del(item->bus_id);
eina_stringshare_del(item->path);
+   free(item->imgdata);
+   free(item->attnimgdata);
if (item->attention_icon_name)
  eina_stringshare_del(item->attention_icon_name);
if (item->icon_name)
@@ -64,7 +66,7 @@ systray_notifier_item_free(Notifier_Item *item)
 }
 
 static void
-image_load(const char *name, const char *path, Evas_Object *image)
+image_load(const char *name, const char *path, uint32_t *imgdata, int w, int 
h, Evas_Object *image)
 {
const char **ext, *exts[] =
{
@@ -96,7 +98,18 @@ image_load(const char *name, const char *path, Evas_Object 
*image)
}
   }
  }
-   if (!e_util_icon_theme_set(image, name))
+   if (name && name[0] && e_util_icon_theme_set(image, name)) return;
+   if (imgdata)
+ {
+Evas_Object *o;
+
+o = evas_object_image_filled_add(evas_object_evas_get(image));
+evas_object_image_alpha_set(o, 1);
+evas_object_image_size_set(o, w, h);
+evas_object_image_data_set(o, imgdata);
+e_icon_image_object_set(image, o);
+ }
+   else
  e_util_icon_theme_set(image, "dialog-error");
 }
 
@@ -261,7 +274,7 @@ jump_search:
  {
   case STATUS_ACTIVE:
 {
-   image_load(item->icon_name, item->icon_path, ii->icon);
+   image_load(item->icon_name, item->icon_path, item->imgdata, 
item->imgw, item->imgh, ii->icon);
if (!evas_object_visible_get(ii->icon))
  {
 systray_edje_box_append(host_inst->inst, ii->icon);
@@ -280,7 +293,7 @@ jump_search:
 }
   case STATUS_ATTENTION:
 {
-   image_load(item->attention_icon_name, item->icon_path, ii->icon);
+   image_load(item->attention_icon_name, item->icon_path, 
item->attnimgdata, item->attnimgw, item->attnimgh, ii->icon);
if (!evas_object_visible_get(ii->icon))
  {
 systray_edje_box_append(host_inst->inst, ii->icon);
diff --git a/src/modules/systray/e_mod_notifier_host_dbus.c 
b/src/modules/systray/e_mod_notifier_host_dbus.c
index f5de199..77ae5b5 100644
--- a/src/modules/systray/e_mod_notifier_host_dbus.c
+++ b/src/modules/systray/e_mod_notifier_host_dbus.c
@@ -14,6 +14,8 @@
 extern const char *Category_Names[];
 extern const char *Status_Names[];
 
+static Eina_Stringshare *DBUS_PATH;
+
 typedef struct _Notifier_Host_Data {
Instance_Notifier_Host *host_inst;
void *data;
@@ -57,6 +59,36 @@ id_find(const char *s, const char *names[])
 }
 
 static void
+icon_pixmap_deserialize(Eldbus_Message_Iter *variant, uint32_t **data, int *w, 
int *h)
+{
+   Eldbus_Message_Iter *iter, *struc;
+
+   *data = NULL;
+   *w = *h = 0;
+   eldbus_message_iter_arguments_get(variant, "a(iiay)", &iter);
+   while (eldbus_message_iter_get_and_next(iter, 'r', &struc))
+ {
+Eldbus_Message_Iter *imgdata;
+
+if (eldbus_message_iter_arguments_get(struc, "iiay", w, h, &imgdata))
+  {
+ uint32_t *img;
+ int len;
+
+ if (eldbus_message_iter_fixed_array_get(imgdata, 'y', &img, &len))
+   {
+  unsigned int pos;
+
+  *data = malloc(len * sizeof(int));
+  for (pos = 0; pos < (unsigned int)len; pos++)
+(*data)[pos] = eina_swap32(img[pos]);
+  return;
+   }
+  }
+ }
+}
+
+static void
 item_prop_get(void *data, const void *key, Eldbus_Message_Iter *var)
 {
Notifier_Item *item = data;
@@ -73,6 +105,16 @@ item_prop_get(void *data, const void *key, 
Eldbus_Message_Iter *var)
 eldbus_message_iter_arguments_get(var, "s", &name);
 eina_stringshare_replace(&item->

[EGIT] [core/efl] master 01/01: eldbus: add dbus_pending NULL check

2015-09-22 Thread Thiep Ha
hermet pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=ffbda5add5a871fdc9f9e4d0078d814240cd59ff

commit ffbda5add5a871fdc9f9e4d0078d814240cd59ff
Author: Thiep Ha 
Date:   Wed Sep 23 09:19:59 2015 +0900

eldbus: add dbus_pending NULL check

Summary:
When we call dbus_connection_send_with_reply, the dbus_pending
can be NULL. In this case, the next call dbus_pending_call_set_notify
will cause application crash.
We should check if dbus_pending is NULL before calling dbus API.

@fix

Reviewers: cedric

Subscribers: englebass, cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3081
---
 src/lib/eldbus/eldbus_pending.c | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/lib/eldbus/eldbus_pending.c b/src/lib/eldbus/eldbus_pending.c
index fa68d03..69ea322 100644
--- a/src/lib/eldbus/eldbus_pending.c
+++ b/src/lib/eldbus/eldbus_pending.c
@@ -157,6 +157,13 @@ _eldbus_connection_send(Eldbus_Connection *conn, 
Eldbus_Message *msg, Eldbus_Mes
 eldbus_pending_dispatch(pending, error_msg);
 return NULL;
  }
+   if (!pending->dbus_pending)
+ {
+error_msg = eldbus_message_error_new(msg, 
"org.enlightenment.DBus.Error",
+ "dbus_pending is NULL.");
+eldbus_pending_dispatch(pending, error_msg);
+return NULL;
+ }
if (dbus_pending_call_set_notify(pending->dbus_pending, cb_pending, 
pending, NULL))
  return pending;
 
@@ -238,7 +245,8 @@ eldbus_pending_dispatch(Eldbus_Pending *pending, 
Eldbus_Message *msg)
 
if (msg) eldbus_message_unref(msg);
eldbus_message_unref(pending->msg_sent);
-   dbus_pending_call_unref(pending->dbus_pending);
+   if (pending->dbus_pending)
+ dbus_pending_call_unref(pending->dbus_pending);
 
pending->cb = NULL;
pending->dbus_pending = NULL;

-- 




[EGIT] [core/elementary] master 01/01: [elm_win] Possible memory leak Fixed.

2015-09-22 Thread Prince Kumar Dubey
hermet pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=aebbc66503f53477076400a9102b7ab5d5d2d3da

commit aebbc66503f53477076400a9102b7ab5d5d2d3da
Author: Prince Kumar Dubey 
Date:   Wed Sep 23 09:40:31 2015 +0900

[elm_win] Possible memory leak Fixed.

Summary: Memory assigned to variable "sd->wm_rot.rots" is not freed on 
window deletion.

Test Plan: Valgrind catch this memory leak.

Reviewers: raster, cedric, Hermet

Reviewed By: Hermet

Subscribers: govi, rajeshps

Differential Revision: https://phab.enlightenment.org/D3041
---
 src/lib/elm_win.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index c918b51..e6de231 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -1941,6 +1941,8 @@ _elm_win_evas_object_smart_del(Eo *obj, Elm_Win_Data *sd)
_elm_win_profile_del(sd);
_elm_win_available_profiles_del(sd);
 
+   free(sd->wm_rot.rots);
+
/* Don't let callback in the air that point to sd */
ecore_evas_callback_delete_request_set(sd->ee, NULL);
ecore_evas_callback_resize_set(sd->ee, NULL);

-- 




[EGIT] [core/elementary] elementary-1.15 01/01: [elm_win] Possible memory leak Fixed.

2015-09-22 Thread Prince Kumar Dubey
hermet pushed a commit to branch elementary-1.15.

http://git.enlightenment.org/core/elementary.git/commit/?id=f281b3f1f748bd854a732e399668e5a8739f20b2

commit f281b3f1f748bd854a732e399668e5a8739f20b2
Author: Prince Kumar Dubey 
Date:   Wed Sep 23 09:40:31 2015 +0900

[elm_win] Possible memory leak Fixed.

Summary: Memory assigned to variable "sd->wm_rot.rots" is not freed on 
window deletion.

Test Plan: Valgrind catch this memory leak.

Reviewers: raster, cedric, Hermet

Reviewed By: Hermet

Subscribers: govi, rajeshps

Differential Revision: https://phab.enlightenment.org/D3041
---
 src/lib/elm_win.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index 6e478f6..53c2ce9 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -1921,6 +1921,8 @@ _elm_win_evas_object_smart_del(Eo *obj, Elm_Win_Data *sd)
_elm_win_profile_del(sd);
_elm_win_available_profiles_del(sd);
 
+   free(sd->wm_rot.rots);
+
/* Don't let callback in the air that point to sd */
ecore_evas_callback_delete_request_set(sd->ee, NULL);
ecore_evas_callback_resize_set(sd->ee, NULL);

-- 




[EGIT] [core/efl] efl-1.15 01/01: eldbus: add dbus_pending NULL check

2015-09-22 Thread Thiep Ha
hermet pushed a commit to branch efl-1.15.

http://git.enlightenment.org/core/efl.git/commit/?id=6a604f15490832bcec18757db64fa597cbd2c6b4

commit 6a604f15490832bcec18757db64fa597cbd2c6b4
Author: Thiep Ha 
Date:   Wed Sep 23 09:19:59 2015 +0900

eldbus: add dbus_pending NULL check

Summary:
When we call dbus_connection_send_with_reply, the dbus_pending
can be NULL. In this case, the next call dbus_pending_call_set_notify
will cause application crash.
We should check if dbus_pending is NULL before calling dbus API.

@fix

Reviewers: cedric

Subscribers: englebass, cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3081
---
 src/lib/eldbus/eldbus_pending.c | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/lib/eldbus/eldbus_pending.c b/src/lib/eldbus/eldbus_pending.c
index fa68d03..69ea322 100644
--- a/src/lib/eldbus/eldbus_pending.c
+++ b/src/lib/eldbus/eldbus_pending.c
@@ -157,6 +157,13 @@ _eldbus_connection_send(Eldbus_Connection *conn, 
Eldbus_Message *msg, Eldbus_Mes
 eldbus_pending_dispatch(pending, error_msg);
 return NULL;
  }
+   if (!pending->dbus_pending)
+ {
+error_msg = eldbus_message_error_new(msg, 
"org.enlightenment.DBus.Error",
+ "dbus_pending is NULL.");
+eldbus_pending_dispatch(pending, error_msg);
+return NULL;
+ }
if (dbus_pending_call_set_notify(pending->dbus_pending, cb_pending, 
pending, NULL))
  return pending;
 
@@ -238,7 +245,8 @@ eldbus_pending_dispatch(Eldbus_Pending *pending, 
Eldbus_Message *msg)
 
if (msg) eldbus_message_unref(msg);
eldbus_message_unref(pending->msg_sent);
-   dbus_pending_call_unref(pending->dbus_pending);
+   if (pending->dbus_pending)
+ dbus_pending_call_unref(pending->dbus_pending);
 
pending->cb = NULL;
pending->dbus_pending = NULL;

-- 




[EGIT] [core/elementary] master 01/01: elm_conformant: display mode set fix

2015-09-22 Thread Shilpa Singh
hermet pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=66852fb942325d341ddf6e30f3162470ec27a539

commit 66852fb942325d341ddf6e30f3162470ec27a539
Author: Shilpa Singh 
Date:   Wed Sep 23 09:51:04 2015 +0900

elm_conformant: display mode set fix

Summary:
Set the display mode to none only when both clipboard and keypad is
hidden.

Signed-Off By: Shashank Pandey 
Signed-Off By: Shilpa Singh 
@fix

Test Plan: Keypad opened, Clipboard opened, close clipboard

Reviewers: woohyun, CHAN, Hermet

Reviewed By: Hermet

Subscribers: CHAN, Jaehyun, shashank0990

Differential Revision: https://phab.enlightenment.org/D2968
---
 src/lib/elm_conform.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/lib/elm_conform.c b/src/lib/elm_conform.c
index dd32aa4..12d3477 100644
--- a/src/lib/elm_conform.c
+++ b/src/lib/elm_conform.c
@@ -766,7 +766,8 @@ _virtualkeypad_state_change(Evas_Object *obj, 
Ecore_X_Event_Window_Property *ev)
 evas_object_size_hint_min_set(sd->virtualkeypad, -1, 0);
 evas_object_size_hint_max_set(sd->virtualkeypad, -1, 0);
 _conformant_part_sizing_eval(obj, ELM_CONFORMANT_VIRTUAL_KEYPAD_PART);
-elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE);
+if (!sd->clipboard_state)
+  elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE);
 eo_do(obj, eo_event_callback_call(
  ELM_CONFORMANT_EVENT_VIRTUALKEYPAD_STATE_OFF, NULL));
  }
@@ -805,7 +806,8 @@ _clipboard_state_change(Evas_Object *obj, 
Ecore_X_Event_Window_Property *ev)
  {
 evas_object_size_hint_min_set(sd->clipboard, -1, 0);
 evas_object_size_hint_max_set(sd->clipboard, -1, 0);
-elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE);
+if (!sd->vkb_state)
+  elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE);
 eo_do(obj, eo_event_callback_call(
  ELM_CONFORMANT_EVENT_CLIPBOARD_STATE_OFF, NULL));
  }

-- 




[EGIT] [core/elementary] elementary-1.15 01/01: elm_conformant: display mode set fix

2015-09-22 Thread Shilpa Singh
hermet pushed a commit to branch elementary-1.15.

http://git.enlightenment.org/core/elementary.git/commit/?id=44c3baaee1103ca309248b89874222a075017886

commit 44c3baaee1103ca309248b89874222a075017886
Author: Shilpa Singh 
Date:   Wed Sep 23 09:51:04 2015 +0900

elm_conformant: display mode set fix

Summary:
Set the display mode to none only when both clipboard and keypad is
hidden.

Signed-Off By: Shashank Pandey 
Signed-Off By: Shilpa Singh 
@fix

Test Plan: Keypad opened, Clipboard opened, close clipboard

Reviewers: woohyun, CHAN, Hermet

Reviewed By: Hermet

Subscribers: CHAN, Jaehyun, shashank0990

Differential Revision: https://phab.enlightenment.org/D2968
---
 src/lib/elm_conform.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/lib/elm_conform.c b/src/lib/elm_conform.c
index 543aa7d..9143b47 100644
--- a/src/lib/elm_conform.c
+++ b/src/lib/elm_conform.c
@@ -762,7 +762,8 @@ _virtualkeypad_state_change(Evas_Object *obj, 
Ecore_X_Event_Window_Property *ev)
 evas_object_size_hint_min_set(sd->virtualkeypad, -1, 0);
 evas_object_size_hint_max_set(sd->virtualkeypad, -1, 0);
 _conformant_part_sizing_eval(obj, ELM_CONFORMANT_VIRTUAL_KEYPAD_PART);
-elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE);
+if (!sd->clipboard_state)
+  elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE);
 eo_do(obj, eo_event_callback_call(
  ELM_CONFORMANT_EVENT_VIRTUALKEYPAD_STATE_OFF, NULL));
  }
@@ -801,7 +802,8 @@ _clipboard_state_change(Evas_Object *obj, 
Ecore_X_Event_Window_Property *ev)
  {
 evas_object_size_hint_min_set(sd->clipboard, -1, 0);
 evas_object_size_hint_max_set(sd->clipboard, -1, 0);
-elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE);
+if (!sd->vkb_state)
+  elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE);
 eo_do(obj, eo_event_callback_call(
  ELM_CONFORMANT_EVENT_CLIPBOARD_STATE_OFF, NULL));
  }

-- 




[EGIT] [core/efl] master 01/01: evas gl engines - remove TIMDBG code that is unused entirely

2015-09-22 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=601273522e5844c18ed74c2fdb3d39fa57032f2b

commit 601273522e5844c18ed74c2fdb3d39fa57032f2b
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Sep 23 14:03:33 2015 +0900

evas gl engines - remove TIMDBG code that is unused entirely
---
 src/modules/evas/engines/gl_generic/evas_engine.c |  6 ---
 src/modules/evas/engines/gl_x11/evas_engine.c | 51 ---
 2 files changed, 57 deletions(-)

diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c 
b/src/modules/evas/engines/gl_generic/evas_engine.c
index 5d5603b..f4c7233 100644
--- a/src/modules/evas/engines/gl_generic/evas_engine.c
+++ b/src/modules/evas/engines/gl_generic/evas_engine.c
@@ -1,12 +1,6 @@
 #include "evas_common_private.h"
 #include "evas_gl_core_private.h"
 
-//#define TIMDBG 1
-#ifdef TIMDBG
-# include 
-# include 
-#endif
-
 #include "software/Ector_Software.h"
 
 #include "ector_cairo_software_surface.eo.h"
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c 
b/src/modules/evas/engines/gl_x11/evas_engine.c
index bd8ad7e..b43fc22 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -1,12 +1,6 @@
 #include "evas_common_private.h" /* Also includes international specific stuff 
*/
 #include "evas_engine.h"
 
-//#define TIMDBG 1
-#ifdef TIMDBG
-# include 
-# include 
-#endif
-
 #ifdef HAVE_DLSYM
 # include   /* dlopen,dlclose,etc */
 #else
@@ -118,51 +112,6 @@ void (*glsym_glXReleaseBuffersMESA)   (Display *a, XID 
b) = NULL;
 
 #endif
 
-#ifdef TIMDBG
-static double
-gettime(void)
-{
-   struct timeval  timev;
-   
-   gettimeofday(&timev, NULL);
-   return (double)timev.tv_sec + (((double)timev.tv_usec) / 100);
-}
-
-static void
-measure(int end, const char *name)
-{
-   FILE *fs; 
-   static unsigned long user = 0, kern = 0, user2 = 0, kern2 = 0;
-   static double t = 0.0, t2 = 0.0;
-   unsigned long u = 0, k = 0;
-   
-   fs = fopen("/proc/self/stat", "rb");
-   if (fs) {
-  fscanf(fs, "%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s "
- "%lu %lu %*s", &u, &k);
-  fclose(fs);
-   }
-   if (end)
- {
-long hz;
-
-t2 = gettime();
-user2 = u;
-kern2 = k;
-hz = sysconf(_SC_CLK_TCK);
-fprintf(stderr, "(%8lu %8lu) k=%4lu u=%4lu == tot=%4lu@%4li in=%3.5f < 
%s\n", 
-user, kern, kern2 - kern, user2 - user, 
-(kern2 - kern) + (user2 - user), hz, t2 - t, name);
- }
-   else
- {
-user = u;
-kern = k;
-t = gettime();
- }
-}
-#endif
-
 static inline Outbuf *
 eng_get_ob(Render_Engine *re)
 {

-- 




[EGIT] [core/efl] master 01/01: edje_edit: remove a redundant API declaration.

2015-09-22 Thread Jaehwan Kim
jaehwan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3e5fddd72bcc6759e836bf7de80917f6bc0bf4d8

commit 3e5fddd72bcc6759e836bf7de80917f6bc0bf4d8
Author: Jaehwan Kim 
Date:   Wed Sep 23 15:22:44 2015 +0900

edje_edit: remove a redundant API declaration.

edje_edit_state_font_get has twice declaration in same header file.
---
 src/lib/edje/Edje_Edit.h | 16 ++--
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/src/lib/edje/Edje_Edit.h b/src/lib/edje/Edje_Edit.h
index 448d27a..7a5ae05 100644
--- a/src/lib/edje/Edje_Edit.h
+++ b/src/lib/edje/Edje_Edit.h
@@ -4663,6 +4663,8 @@ EAPI Eina_Bool edje_edit_state_text_set(Evas_Object *obj, 
const char *part, cons
 
 /** Get font name for a given part state.
  *
+ * Remember to free the returned string using edje_edit_string_free().
+ *
  * @param obj Object being edited.
  * @param part The name of the part to get the font of.
  * @param state The state of the part to get the font of.
@@ -5131,20 +5133,6 @@ EAPI Eina_Bool edje_edit_font_del(Evas_Object *obj, 
const char* alias);
  */
 EAPI const char *edje_edit_font_path_get(Evas_Object *obj, const char *alias);
 
-
-/** Get font name for a given part state.
- *
- * Remember to free the returned string using edje_edit_string_free().
- *
- * @param obj Object being edited.
- * @param part Part that contain state.
- * @param state The name of the state to get the name of the font used (not 
including the state value).
- * @param value The state value.
- *
- * @return The name of the font used in the given part state.
- */
-EAPI const char * edje_edit_state_font_get(Evas_Object *obj, const char *part, 
const char *state, double value);
-
 //@}
 
/**/
 /**   IMAGES API   
/

-- 




[EGIT] [core/efl] master 01/01: ecore_evas_extn: remove old buffer in evas render post function.

2015-09-22 Thread Ji-Youn Park
jypark pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f823d9c2ccb528f9df0a87a2d5ab13ae8a43ef47

commit f823d9c2ccb528f9df0a87a2d5ab13ae8a43ef47
Author: Ji-Youn Park 
Date:   Wed Sep 23 15:04:02 2015 +0830

ecore_evas_extn: remove old buffer in evas render post function.

Before, ipc_server_data(fd handler callback) is not runned between
evas_render_pre callback and evas_render_post callback.
but after async mode, hd handler can be called between render_pre and 
render_post.
we should remove buffer which can be used render thread, after render 
finished
---
 src/modules/ecore_evas/engines/extn/ecore_evas_extn.c | 18 --
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c 
b/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c
index c8ef291..e280bbc 100644
--- a/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c
+++ b/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c
@@ -116,6 +116,12 @@ _ecore_evas_extn_plug_render_post(void *data, Evas *e 
EINA_UNUSED, void *event_i
extn = bdata->data;
if (!extn) return;
_extnbuf_unlock(extn->b[extn->cur_b].buf);
+   if (extn->b[extn->cur_b].obuf)
+ {
+_extnbuf_unlock(extn->b[extn->cur_b].obuf);
+_extnbuf_free(extn->b[extn->cur_b].obuf);
+extn->b[extn->cur_b].obuf = NULL;
+ }
 }
 
 static void
@@ -1015,12 +1021,6 @@ _ipc_server_data(void *data, int type EINA_UNUSED, void 
*event)
extn->cur_b = n;
 
if (extn->b[pn].buf) _extnbuf_unlock(extn->b[pn].buf);
-   if (extn->b[pn].obuf)
- {
-_extnbuf_unlock(extn->b[pn].obuf);
-_extnbuf_free(extn->b[pn].obuf);
-extn->b[pn].obuf = NULL;
- }
 
evas_object_image_colorspace_set(bdata->image, 
EVAS_COLORSPACE_ARGB);
if (extn->b[n].buf)
@@ -1258,6 +1258,12 @@ ecore_evas_extn_plug_new_internal(Ecore_Evas *ee_target)
 
extn_ee_list = eina_list_append(extn_ee_list, ee);
ee_target->sub_ecore_evas = eina_list_append(ee_target->sub_ecore_evas, ee);
+
+   evas_event_callback_add(ee_target->evas, EVAS_CALLBACK_RENDER_PRE,
+   _ecore_evas_extn_plug_render_pre, ee);
+   evas_event_callback_add(ee_target->evas, EVAS_CALLBACK_RENDER_POST,
+   _ecore_evas_extn_plug_render_post, ee);
+
return o;
 }
 

-- 




[EGIT] [core/elementary] master 01/01: gengrid: fix duplicate edje signal (elm, state, focused) to item on focus

2015-09-22 Thread Amitesh Singh
ami pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=544d2a078ddd59a750aa28fff7768dc31d006cfe

commit 544d2a078ddd59a750aa28fff7768dc31d006cfe
Author: Amitesh Singh 
Date:   Wed Sep 23 12:20:05 2015 +0530

gengrid: fix duplicate edje signal (elm,state,focused) to item on focus

@fix
---
 src/lib/elm_gengrid.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c
index c55fd3f..50d901c 100644
--- a/src/lib/elm_gengrid.c
+++ b/src/lib/elm_gengrid.c
@@ -2020,7 +2020,6 @@ _elm_gengrid_item_focused(Elm_Object_Item *eo_it)
 
sd->focused_item = eo_it;
 
-   if (it->realized) _elm_gengrid_item_focus_raise(it);
eo_do(obj, eo_event_callback_call(ELM_GENGRID_EVENT_ITEM_FOCUSED, eo_it));
if (_elm_config->atspi_mode)
  elm_interface_atspi_accessible_state_changed_signal_emit(eo_it, 
ELM_ATSPI_STATE_FOCUSED, EINA_TRUE);

--