Imported Upstream version 1.7.3 upstream/1.7.3
authorAnas Nashif <anas.nashif@intel.com>
Sun, 9 Dec 2012 16:55:35 +0000 (08:55 -0800)
committerAnas Nashif <anas.nashif@intel.com>
Sun, 9 Dec 2012 16:55:35 +0000 (08:55 -0800)
51 files changed:
ChangeLog
NEWS
configure
configure.ac
elementary.spec
po/ar.gmo
po/ar.po
po/az_IR.gmo
po/az_IR.po
po/cs.gmo
po/cs.po
po/de.gmo
po/de.po
po/elementary.pot
po/fa.gmo
po/fa.po
po/fr.gmo
po/fr.po
po/he.gmo
po/he.po
po/it.gmo
po/it.po
po/ko_KR.gmo
po/ko_KR.po
po/nl.gmo
po/nl.po
po/ps.gmo
po/ps.po
po/pt.gmo
po/pt.po
po/ur.gmo
po/ur.po
po/yi.gmo
po/yi.po
src/bin/quicklaunch.c
src/lib/elc_multibuttonentry.c
src/lib/elc_naviframe.c
src/lib/elm_cnp.c
src/lib/elm_conform.c
src/lib/elm_entry.c
src/lib/elm_flip.c
src/lib/elm_gesture_layer.c
src/lib/elm_interface_scrollable.c
src/lib/elm_layout.c
src/lib/elm_main.c
src/lib/elm_map.c
src/lib/elm_mapbuf.c
src/lib/elm_widget_mapbuf.h
src/lib/elm_widget_naviframe.h
src/lib/els_scroller.c
src/lib/els_tooltip.c

index f3b7635..3fe67e3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
         1.7.2 release
 
+2012-11-23  Carsten Haitzler (The Rasterman)
+
+        * Fix build on systems without clearenv() (eg bsd).
+
+2012-11-23  ChunEon Park (Hermet)
+
+        * Free the text parts of the naviframe item when item is deleted.
+
+2012-11-29  ChunEon Park (Hermet)
+
+        * Fix the mapbuf to update it's contents correctly, even if they go
+        outside of the buffer
+
+2012-11-30  ChunEon Park (Hermet)
+
+        * Fix the naviframe to resize it's items which are inserted.
+
+2012-11-30  WooHyun Jung
+
+        * Fix layout when content_set or text_set is called with NULL part name.
+
+2012-11-30  ChunEon Park (Hermet)
+
+        * emit the signals for content_set/unset text_set/unset one time!
+
+2012-12-02  Mike Blumenkrantz
+
+        * Fix case where tooltips could go offscreen unnecessarily
+
+2012-12-04  Cedric Bail
+
+       * Fix a possible divide by zero in els_scroller animator.
+
+2012-12-05  Cedric Bail
+
+       * Fix uninitialized data path in elm_flip, elm_gesture_layer,
+       elm_interface_scrollable, els_scroller.
+
+2012-12-05  Shilpa Onkar Singh (shilpa.singh@samsung.com)
+
+       * Fix naviframe to not send hide signals even before item doens't created
+       yet.
+
+2012-12-06  Cedric Bail
+
+       * Fix possible segv in elm_quicklaunch infrastructure.
+       * Make sure elm_conform always finish with at least one '\0'.
+       * Fix forgotten break in elm_map that would have thrown error when the
+       action was properly taken in fact.
+
+2012-12-06 ChunEon Park (Hermet)
+
+       * Fix the mapbuf to show the content always. Sometimes mapbuf couldn't show
+       the content properly.
+
+2012-12-07  Cedric Bail
+
+       * Safer call to mkstemp in elm_cnp.
+       * Simplify test in elm_entry_text_set.
+
+2012-12-06 Daniel Juyung Seo (SeoZ)
+
+       * Fix wheel scroll direction with shift.
+
+2012-12-07  WooHyun Jung
+
+       * Fix focus problem in multibuttonentry. Entry can get focus only when multibuttonentry is focused.
+
+2012-12-07  Luis Felipe Strano Moraes
+
+       * Release 1.7.3
diff --git a/NEWS b/NEWS
index db3f741..02c35c3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,29 @@
+Elementary 1.7.3
+
+Changes since Elementary 1.7.2:
+-------------------------
+
+Fixes:
+
+   * Fix the naviframe to clear the text parts when it's item is deleted.
+   * Fix the mapbuf to update it's content correcltly evenif they go outside of the buffer.
+   * Fix the naviframe to resize it's items which are inserted.
+   * Fix layout when content_set or text_set is executed with NULL part name.
+   * Fix the naviframe to send signal emits one time for content show/hide, text show/hide.
+   * Fix case where tooltips could go offscreen unnecessarily
+   * Fix possible divide by zero in els_scroller animator.
+   * Fix uninitialized data path in elm_flip, elm_gesture_layer, elm_interface_scrollable, els_scroller.
+   * Fix possible segv in elm_quicklaunch infrastructure.
+   * Fix elm_conform buffer to always terminate with at least one '\0'.
+   * Fix forgotten break in elm_map that would have thrown error when the action was properly
+   taken in fact.
+   * Fix the mapbuf to show it's content properly, If the content doesn't
+   have resized, it wouldn't be showed up.
+   * Safer call to mkstemp in elm_cnp.
+   * Simplify test in elm_entry_text_set.
+   * Fix wheel scroll direction with shift.
+   * Fix focus problem in multibuttonentry. Entry can get focus only when multibuttonentry is focused.
+
 Elementary 1.7.2
 
 Changes since Elementary 1.7.1:
@@ -13,6 +39,7 @@ Fixes:
    * Fix flip widget who show the two face at same time
    * Fix the naviframe to delete contents which are preserved_on set if the naviframe is deleted.
    * Fix the naviframe to clear the title contents when it's item is deleted.
+   * Fix the naviframe to clear the text parts when it's item is deleted.
 
 
 Changes since Elementary 1.7.0:
index dcfabf2..555381f 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for elementary 1.7.2.
+# Generated by GNU Autoconf 2.68 for elementary 1.7.3.
 #
 # Report bugs to <enlightenment-devel@lists.sourceforge.net>.
 #
@@ -570,8 +570,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='elementary'
 PACKAGE_TARNAME='elementary'
-PACKAGE_VERSION='1.7.2'
-PACKAGE_STRING='elementary 1.7.2'
+PACKAGE_VERSION='1.7.3'
+PACKAGE_STRING='elementary 1.7.3'
 PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net'
 PACKAGE_URL=''
 
@@ -1489,7 +1489,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures elementary 1.7.2 to adapt to many kinds of systems.
+\`configure' configures elementary 1.7.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1559,7 +1559,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of elementary 1.7.2:";;
+     short | recursive ) echo "Configuration of elementary 1.7.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1782,7 +1782,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-elementary configure 1.7.2
+elementary configure 1.7.3
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2205,7 +2205,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by elementary $as_me 1.7.2, which was
+It was created by elementary $as_me 1.7.3, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -3101,7 +3101,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='elementary'
- VERSION='1.7.2'
+ VERSION='1.7.3'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -13752,7 +13752,7 @@ _ACEOF
 
 
 cat >>confdefs.h <<_ACEOF
-#define VMIC 2
+#define VMIC 3
 _ACEOF
 
 
@@ -13760,7 +13760,7 @@ cat >>confdefs.h <<_ACEOF
 #define VREV 0
 _ACEOF
 
-version_info="8:2:7"
+version_info="8:3:7"
 release_info=""
 
 
@@ -13900,7 +13900,7 @@ case "$host_os" in
     MODULE_EDJE="$host_os-$host_cpu"
     ;;
   *)
-    MODULE_ARCH="$host_os-$host_cpu-1.7.2"
+    MODULE_ARCH="$host_os-$host_cpu-1.7.3"
     MODULE_EDJE="$host_os-$host_cpu-${EDJE_VERSION}"
     ;;
 esac
@@ -19770,7 +19770,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by elementary $as_me 1.7.2, which was
+This file was extended by elementary $as_me 1.7.3, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19836,7 +19836,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-elementary config.status 1.7.2
+elementary config.status 1.7.3
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
index 075b4a6..7f3314c 100644 (file)
@@ -2,7 +2,7 @@
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 m4_define([v_maj], [1])
 m4_define([v_min], [7])
-m4_define([v_mic], [2])
+m4_define([v_mic], [3])
 m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
 m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))])
 ##--   When released, remove the dnl on the below line
index 38c00a2..f131e8a 100644 (file)
@@ -4,7 +4,7 @@
 
 Summary: EFL toolkit for small touchscreens
 Name: elementary
-Version: 1.7.2
+Version: 1.7.3
 Release: %{_rel}
 License: Lesser GPL
 Group: System Environment/Libraries
index 09543f3..f707020 100644 (file)
Binary files a/po/ar.gmo and b/po/ar.gmo differ
index 11754ed..ad2ae74 100644 (file)
--- a/po/ar.po
+++ b/po/ar.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2010-12-26 10:05+0200\n"
 "Last-Translator: Tom Hacohen <tom.hacohen@samsung.com>\n"
 "Language-Team: General\n"
index f149dd4..821fad2 100644 (file)
Binary files a/po/az_IR.gmo and b/po/az_IR.gmo differ
index 02369d6..7798d4c 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2010-12-26 10:05+0200\n"
 "Last-Translator: Tom Hacohen <tom.hacohen@samsung.com>\n"
 "Language-Team: General\n"
index 01cf75d..b433104 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index 98aca91..e5cdc8f 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2011-10-23 01:31+0100\n"
 "Last-Translator: Daniel Kolesa <quaker66@gmail.com>\n"
 "Language-Team: Czech <kde-i18n-doc@kde.org>\n"
index da674fd..e34e3da 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index 0fdcb6d..bd2e371 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary 0.7.0.57309\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2011-02-25 20:22+0100\n"
 "Last-Translator: Fabian Nowak <timystery@arcor.de>\n"
 "Language-Team: German\n"
index 637147e..f31b96c 100644 (file)
@@ -7,9 +7,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: elementary 1.7.2\n"
+"Project-Id-Version: elementary 1.7.3\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index f149dd4..821fad2 100644 (file)
Binary files a/po/fa.gmo and b/po/fa.gmo differ
index 02369d6..7798d4c 100644 (file)
--- a/po/fa.po
+++ b/po/fa.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2010-12-26 10:05+0200\n"
 "Last-Translator: Tom Hacohen <tom.hacohen@samsung.com>\n"
 "Language-Team: General\n"
index eab8ef7..234226b 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index 92227e1..853b627 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2011-11-08 07:57+0100\n"
 "Last-Translator: dazibao <dazibao@sfr.fr>\n"
 "Language-Team: French <sansgourou@gmail.com>\n"
index 1c0f5d0..2ffd5b0 100644 (file)
Binary files a/po/he.gmo and b/po/he.gmo differ
index 0d3c892..f48fffe 100644 (file)
--- a/po/he.po
+++ b/po/he.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2010-12-26 10:05+0200\n"
 "Last-Translator: Aharon Hillel <a.hillel@samsung.com>\n"
 "Language-Team: General\n"
index ee634fd..4b2eb03 100644 (file)
Binary files a/po/it.gmo and b/po/it.gmo differ
index 106b9ce..cc9a568 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2012-08-14 23:01+0200\n"
 "Last-Translator: Massimo Maiurana <maiurana@gmail.com>\n"
 "Language-Team: none\n"
index 830bd53..d6b3c92 100644 (file)
Binary files a/po/ko_KR.gmo and b/po/ko_KR.gmo differ
index 656f8b0..0e01e9d 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2011-02-22 09:09-0800\n"
 "Last-Translator: Daniel Juyung Seo <seojuyung@gmail.com>\n"
 "Language-Team: General\n"
index ae18961..ee8de23 100644 (file)
Binary files a/po/nl.gmo and b/po/nl.gmo differ
index a0cd07c..b79f2ac 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary 0.7.0.57309\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2011-06-19 16:41+0100\n"
 "Last-Translator: Heimen Stoffels <vistausss@gmail.com>\n"
 "Language-Team: Dutch <vistausss@gmail.com>\n"
index 089e0a3..6bb6f7a 100644 (file)
Binary files a/po/ps.gmo and b/po/ps.gmo differ
index c90b3b5..737cefa 100644 (file)
--- a/po/ps.po
+++ b/po/ps.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2010-12-26 10:05+0200\n"
 "Last-Translator: Tom Hacohen <tom.hacohen@samsung.com>\n"
 "Language-Team: General\n"
index 54628a3..2795030 100644 (file)
Binary files a/po/pt.gmo and b/po/pt.gmo differ
index b47ff5f..ec91ce0 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2012-08-14 16:16-0000\n"
 "Last-Translator: Sérgio Marques <smarquespt@gmail.com>\n"
 "Language-Team: \n"
index 089e0a3..6bb6f7a 100644 (file)
Binary files a/po/ur.gmo and b/po/ur.gmo differ
index c90b3b5..737cefa 100644 (file)
--- a/po/ur.po
+++ b/po/ur.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2010-12-26 10:05+0200\n"
 "Last-Translator: Tom Hacohen <tom.hacohen@samsung.com>\n"
 "Language-Team: General\n"
index 089e0a3..6bb6f7a 100644 (file)
Binary files a/po/yi.gmo and b/po/yi.gmo differ
index c90b3b5..737cefa 100644 (file)
--- a/po/yi.po
+++ b/po/yi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-11-22 15:42-0800\n"
+"POT-Creation-Date: 2012-12-07 14:14-0200\n"
 "PO-Revision-Date: 2010-12-26 10:05+0200\n"
 "Last-Translator: Tom Hacohen <tom.hacohen@samsung.com>\n"
 "Language-Team: General\n"
index 0f0be70..e84612b 100644 (file)
@@ -114,19 +114,23 @@ handle_run(int fd, unsigned long bytes)
    
    argc = ((unsigned long *)(buf))[0];
    envnum = ((unsigned long *)(buf))[1];
+
+   if (argc <= 0)
+     {
+        CRITICAL("no executable specified");
+        close(fd);
+        return;
+     }
    
-   if (argc > 0) argv = alloca(argc * sizeof(char *));
+   argv = alloca(argc * sizeof(char *));
    if (envnum > 0) envir = alloca(envnum * sizeof(char *));
    off = ((unsigned long *)(buf))[2 + argc + envnum] - sizeof(unsigned long);
    cwd = (char *)(buf + off);
-   
-   if (argv)
+
+   for (i = 0; i < argc; i++)
      {
-        for (i = 0; i < argc; i++)
-          {
-             off = ((unsigned long *)(buf))[2 + i] - sizeof(unsigned long);
-             argv[i] = (char *)(buf + off);
-          }
+        off = ((unsigned long *)(buf))[2 + i] - sizeof(unsigned long);
+        argv[i] = (char *)(buf + off);
      }
 
 #ifdef HAVE_ENVIRON
index 2e61477..3aa4a05 100644 (file)
@@ -275,7 +275,7 @@ _signal_mouse_clicked(void *data, Evas_Object *obj __UNUSED__, const char *emiss
    wd->focused = EINA_TRUE;
    _view_update(data);
 
-   if (wd->editable)
+   if (elm_widget_focus_get(data) && wd->editable)
      {
         elm_entry_input_panel_show(wd->entry);
         elm_object_focus_set(wd->entry, EINA_TRUE);
index 8455462..92a3d59 100644 (file)
@@ -91,7 +91,7 @@ _item_free(Elm_Naviframe_Item *it)
 {
    Eina_Inlist *l;
    Elm_Naviframe_Content_Item_Pair *content_pair;
-   Evas_Object *title_content;
+   Elm_Naviframe_Text_Item_Pair *text_pair;
 
    ELM_NAVIFRAME_DATA_GET(WIDGET(it), sd);
 
@@ -99,25 +99,27 @@ _item_free(Elm_Naviframe_Item *it)
    eina_stringshare_del(it->title_label);
    eina_stringshare_del(it->subtitle_label);
 
-   if (it->title_prev_btn)
-     evas_object_del(it->title_prev_btn);
-   if (it->title_next_btn)
-     evas_object_del(it->title_next_btn);
+   if (it->title_prev_btn) evas_object_del(it->title_prev_btn);
+   if (it->title_next_btn) evas_object_del(it->title_next_btn);
    if (it->title_icon) evas_object_del(it->title_icon);
 
    EINA_INLIST_FOREACH_SAFE(it->content_list, l, content_pair)
      {
-        title_content = edje_object_part_swallow_get(VIEW(it), content_pair->part);
-        if (title_content)
+        if (content_pair->content)
           {
-             evas_object_event_callback_del(title_content,
+             evas_object_event_callback_del(content_pair->content,
                                             EVAS_CALLBACK_DEL,
                                             _title_content_del);
-             evas_object_del(title_content);
+             evas_object_del(content_pair->content);
           }
         eina_stringshare_del(content_pair->part);
         free(content_pair);
      }
+   EINA_INLIST_FOREACH_SAFE(it->text_list, l, text_pair)
+     {
+        eina_stringshare_del(text_pair->part);
+        free(text_pair);
+     }
 
    if (it->content)
      {
@@ -164,16 +166,11 @@ _item_content_signals_emit(Elm_Naviframe_Item *it)
 
    EINA_INLIST_FOREACH(it->content_list, content_pair)
      {
-        if (edje_object_part_swallow_get(VIEW(it), content_pair->part))
-          {
-             snprintf(buf, sizeof(buf), "elm,state,%s,show", content_pair->part);
-             edje_object_signal_emit(VIEW(it), buf, "elm");
-          }
+        if (content_pair->content)
+          snprintf(buf, sizeof(buf), "elm,state,%s,show", content_pair->part);
         else
-          {
-             snprintf(buf, sizeof(buf), "elm,state,%s,hide", content_pair->part);
-             edje_object_signal_emit(VIEW(it), buf, "elm");
-          }
+          snprintf(buf, sizeof(buf), "elm,state,%s,hide", content_pair->part);
+        edje_object_signal_emit(VIEW(it), buf, "elm");
      }
 }
 
@@ -184,9 +181,9 @@ _item_text_signals_emit(Elm_Naviframe_Item *it)
    char buf[1024];
 
    if ((it->title_label) && (it->title_label[0]))
-     edje_object_signal_emit(VIEW(it), "elm,state,title_label,show", "elm");
+     edje_object_signal_emit(VIEW(it), "elm,state,title,show", "elm");
    else
-     edje_object_signal_emit(VIEW(it), "elm,state,title_label,hide", "elm");
+     edje_object_signal_emit(VIEW(it), "elm,state,title,hide", "elm");
 
    if ((it->subtitle_label) && (it->subtitle_label[0]))
      edje_object_signal_emit(VIEW(it), "elm,state,subtitle,show", "elm");
@@ -196,18 +193,20 @@ _item_text_signals_emit(Elm_Naviframe_Item *it)
    EINA_INLIST_FOREACH(it->text_list, text_pair)
      {
         if (edje_object_part_text_get(VIEW(it), text_pair->part))
-          {
-             snprintf(buf, sizeof(buf), "elm,state,%s,show", text_pair->part);
-             edje_object_signal_emit(VIEW(it), buf, "elm");
-          }
+          snprintf(buf, sizeof(buf), "elm,state,%s,show", text_pair->part);
         else
-          {
-             snprintf(buf, sizeof(buf), "elm,state,%s,hide", text_pair->part);
-             edje_object_signal_emit(VIEW(it), buf, "elm");
-          }
+          snprintf(buf, sizeof(buf), "elm,state,%s,hide", text_pair->part);
+        edje_object_signal_emit(VIEW(it), buf, "elm");
      }
 }
 
+static void
+_item_signals_emit(Elm_Naviframe_Item *it)
+{
+   _item_text_signals_emit(it);
+   _item_content_signals_emit(it);
+}
+
 /* FIXME: we need to handle the case when this function is called
  * during a transition */
 static void
@@ -232,9 +231,6 @@ _item_style_set(Elm_Naviframe_Item *it,
    elm_widget_theme_object_set
      (WIDGET(it), VIEW(it), "naviframe", buf, elm_widget_style_get(WIDGET(it)));
 
-   _item_text_signals_emit(it);
-   _item_content_signals_emit(it);
-
    if (sd->freeze_events)
      evas_object_freeze_events_set(VIEW(it), EINA_FALSE);
 }
@@ -262,6 +258,7 @@ _elm_naviframe_smart_theme(Evas_Object *obj)
    EINA_INLIST_FOREACH (sd->stack, it)
      {
         _item_style_set(it, it->style);
+        _item_signals_emit(it);
         _item_title_visible_update(it);
      }
 
@@ -284,6 +281,10 @@ _item_text_set_hook(Elm_Object_Item *it,
      {
         eina_stringshare_replace(&nit->title_label, label);
         snprintf(buf, sizeof(buf), "elm.text.title");
+        if (label)
+          edje_object_signal_emit(VIEW(it), "elm,state,title,show", "elm");
+        else
+          edje_object_signal_emit(VIEW(it), "elm,state,title,hide", "elm");
 
         //XXX: ACCESS
         if (_elm_config->access_mode == ELM_ACCESS_MODE_ON)
@@ -298,6 +299,10 @@ _item_text_set_hook(Elm_Object_Item *it,
      {
         eina_stringshare_replace(&nit->subtitle_label, label);
         snprintf(buf, sizeof(buf), "elm.text.subtitle");
+        if (label)
+          edje_object_signal_emit(VIEW(it), "elm,state,subtitle,show", "elm");
+        else
+          edje_object_signal_emit(VIEW(it), "elm,state,subtitle,hide", "elm");
 
         //XXX: ACCESS
         if (_elm_config->access_mode == ELM_ACCESS_MODE_ON)
@@ -326,6 +331,11 @@ _item_text_set_hook(Elm_Object_Item *it,
              eina_stringshare_replace(&pair->part, buf);
              nit->text_list = eina_inlist_append(nit->text_list,
                                                  EINA_INLIST_GET(pair));
+             if (label)
+               snprintf(buf, sizeof(buf), "elm,state,%s,show", part);
+             else
+               snprintf(buf, sizeof(buf), "elm,state,%s,hide", part);
+             edje_object_signal_emit(VIEW(it), buf, "elm");
           }
 
         //XXX: ACCESS
@@ -339,7 +349,6 @@ _item_text_set_hook(Elm_Object_Item *it,
      }
 
    edje_object_part_text_set(VIEW(nit), buf, label);
-   _item_text_signals_emit(nit);
 
    elm_layout_sizing_eval(WIDGET(nit));
 }
@@ -422,6 +431,7 @@ _item_content_set(Elm_Naviframe_Item *it,
    if (!content) return;
 
    edje_object_part_swallow(VIEW(it), CONTENT_PART, content);
+   edje_object_signal_emit(VIEW(it), "elm,state,content,show", "elm");
 
    evas_object_event_callback_add
      (content, EVAS_CALLBACK_DEL, _item_content_del_cb, it);
@@ -437,6 +447,7 @@ _item_title_prev_btn_set(Elm_Naviframe_Item *it,
    if (!btn) return;
 
    edje_object_part_swallow(VIEW(it), PREV_BTN_PART, btn);
+   edje_object_signal_emit(VIEW(it), "elm,state,prev_btn,show", "elm");
 
    evas_object_event_callback_add
      (btn, EVAS_CALLBACK_DEL, _item_title_prev_btn_del_cb, it);
@@ -452,6 +463,7 @@ _item_title_next_btn_set(Elm_Naviframe_Item *it,
    if (!btn) return;
 
    edje_object_part_swallow(VIEW(it), NEXT_BTN_PART, btn);
+   edje_object_signal_emit(VIEW(it), "elm,state,next_btn,show", "elm");
 
    evas_object_event_callback_add
      (btn, EVAS_CALLBACK_DEL, _item_title_next_btn_del_cb, it);
@@ -467,6 +479,7 @@ _item_title_icon_set(Elm_Naviframe_Item *it,
    if (!icon) return;
 
    edje_object_part_swallow(VIEW(it), ICON_PART, icon);
+   edje_object_signal_emit(VIEW(it), "elm,state,icon,show", "elm");
 
    evas_object_event_callback_add
      (icon, EVAS_CALLBACK_DEL, _item_title_icon_del_cb, it);
@@ -480,6 +493,7 @@ _item_content_unset(Elm_Naviframe_Item *it)
    if (!content) return NULL;
 
    edje_object_part_unswallow(VIEW(it), it->content);
+   edje_object_signal_emit(VIEW(it), "elm,state,content,hide", "elm");
 
    evas_object_event_callback_del
      (content, EVAS_CALLBACK_DEL, _item_content_del_cb);
@@ -496,6 +510,7 @@ _item_title_prev_btn_unset(Elm_Naviframe_Item *it)
    if (!content) return NULL;
 
    edje_object_part_unswallow(VIEW(it), it->title_prev_btn);
+   edje_object_signal_emit(VIEW(it), "elm,state,prev_btn,hide", "elm");
 
    evas_object_event_callback_del
      (content, EVAS_CALLBACK_DEL, _item_title_prev_btn_del_cb);
@@ -512,6 +527,7 @@ _item_title_next_btn_unset(Elm_Naviframe_Item *it)
    if (!content) return NULL;
 
    edje_object_part_unswallow(VIEW(it), it->title_next_btn);
+   edje_object_signal_emit(VIEW(it), "elm,state,next_btn,hide", "elm");
 
    evas_object_event_callback_del
      (content, EVAS_CALLBACK_DEL, _item_title_next_btn_del_cb);
@@ -528,6 +544,7 @@ _item_title_icon_unset(Elm_Naviframe_Item *it)
    if (!content) return NULL;
 
    edje_object_part_unswallow(VIEW(it), it->title_icon);
+   edje_object_signal_emit(VIEW(it), "elm,state,icon,hide", "elm");
 
    evas_object_event_callback_del
      (content, EVAS_CALLBACK_DEL, _item_title_icon_del_cb);
@@ -557,31 +574,43 @@ _title_content_set(Elm_Naviframe_Item *it,
                    Evas_Object *content)
 {
    Elm_Naviframe_Content_Item_Pair *pair = NULL;
-   Evas_Object *prev_content = NULL;
    char buf[1024];
 
    EINA_INLIST_FOREACH(it->content_list, pair)
      if (!strcmp(part, pair->part)) break;
    if (pair)
      {
-        prev_content = edje_object_part_swallow_get(VIEW(it), part);
-        if (prev_content != content)
+        if (pair->content == content) return;
+        if (content) edje_object_part_swallow(VIEW(it), part, content);
+        if (pair->content)
           {
-             if (content)
-               {
-                  evas_object_event_callback_del(prev_content,
-                                                 EVAS_CALLBACK_DEL,
-                                                 _title_content_del);
-                  snprintf(buf, sizeof(buf), "elm,state,%s,hide", part);
-                  elm_object_signal_emit(VIEW(it), buf, "elm");
-               }
-             evas_object_del(prev_content);
-             if (!content) return;
+             evas_object_event_callback_del(pair->content,
+                                            EVAS_CALLBACK_DEL,
+                                            _title_content_del);
+             evas_object_del(pair->content);
           }
      }
    else
      {
         if (!content) return;
+
+        //Remove the pair if new content was swallowed into other part.
+        EINA_INLIST_FOREACH(it->content_list, pair)
+          {
+             if (pair->content == content)
+               {
+                  eina_stringshare_del(pair->part);
+                  it->content_list = eina_inlist_remove(it->content_list,
+                                                        EINA_INLIST_GET(pair));
+                  free(pair);
+                  evas_object_event_callback_del(pair->content,
+                                                 EVAS_CALLBACK_DEL,
+                                                 _title_content_del);
+                  break;
+               }
+          }
+
+        //New pair
         pair = ELM_NEW(Elm_Naviframe_Content_Item_Pair);
         if (!pair)
           {
@@ -593,15 +622,15 @@ _title_content_set(Elm_Naviframe_Item *it,
         eina_stringshare_replace(&pair->part, part);
         it->content_list = eina_inlist_append(it->content_list,
                                               EINA_INLIST_GET(pair));
-      }
-    if (prev_content != content)
-      {
-         evas_object_event_callback_add(content,
-                                        EVAS_CALLBACK_DEL,
-                                        _title_content_del,
-                                        pair);
-      }
-    edje_object_part_swallow(VIEW(it), part, content);
+        edje_object_part_swallow(VIEW(it), part, content);
+        snprintf(buf, sizeof(buf), "elm,state,%s,show", part);
+        edje_object_signal_emit(VIEW(it), buf, "elm");
+     }
+   pair->content = content;
+   evas_object_event_callback_add(content,
+                                  EVAS_CALLBACK_DEL,
+                                  _title_content_del,
+                                  pair);
 }
 
 static void
@@ -625,8 +654,6 @@ _item_content_set_hook(Elm_Object_Item *it,
    else
      _title_content_set(nit, part, content);
 
-   _item_content_signals_emit(nit);
-
    elm_layout_sizing_eval(WIDGET(it));
 }
 
@@ -663,7 +690,7 @@ _title_content_unset(Elm_Naviframe_Item *it, const char *part)
      {
         if (!strcmp(part, pair->part))
           {
-             content = edje_object_part_swallow_get(VIEW(it), part);
+             content = pair->content;
              eina_stringshare_del(pair->part);
              it->content_list = eina_inlist_remove(it->content_list,
                                                    EINA_INLIST_GET(pair));
@@ -704,8 +731,6 @@ _item_content_unset_hook(Elm_Object_Item *it,
    else
      o = _title_content_unset(nit, part);
 
-   _item_content_signals_emit(nit);
-
    elm_layout_sizing_eval(WIDGET(it));
 
    return o;
@@ -743,14 +768,6 @@ _elm_naviframe_smart_sizing_eval(Evas_Object *obj)
    evas_object_size_hint_max_set(obj, -1, -1);
 }
 
-static Eina_Bool
-_item_pop_idler(void *data)
-{
-   elm_naviframe_item_pop(data);
-
-   return ECORE_CALLBACK_CANCEL;
-}
-
 static void
 _on_item_back_btn_clicked(void *data,
                           Evas_Object *obj,
@@ -761,8 +778,7 @@ _on_item_back_btn_clicked(void *data,
       prevent those scenario and guarantee only one clicked for it's own
       page. */
    evas_object_smart_callback_del(obj, "clicked", _on_item_back_btn_clicked);
-
-   ecore_idler_add(_item_pop_idler, data);
+   elm_naviframe_item_pop(data);
 }
 
 static Evas_Object *
@@ -1016,7 +1032,9 @@ _item_new(Evas_Object *obj,
      (VIEW(it), "elm,action,title,clicked", "", _on_item_title_clicked, it);
 
    _item_style_set(it, item_style);
-   _item_text_set_hook((Elm_Object_Item *)it, "elm.text.title", title_label);
+
+   if (title_label)
+     _item_text_set_hook((Elm_Object_Item *)it, "elm.text.title", title_label);
 
    //title buttons
    if ((!prev_btn) && sd->auto_pushed && prev_it)
@@ -1271,6 +1289,7 @@ elm_naviframe_item_insert_before(Evas_Object *obj,
    it = _item_new(obj, prev_it,
                   title_label, prev_btn, next_btn, content, item_style);
    if (!it) return NULL;
+   elm_widget_resize_object_set(obj, VIEW(it));
 
    sd->stack = eina_inlist_prepend_relative
        (sd->stack, EINA_INLIST_GET(it),
@@ -1299,6 +1318,7 @@ elm_naviframe_item_insert_after(Evas_Object *obj,
    it = _item_new(obj, (Elm_Naviframe_Item *)after,
                   title_label, prev_btn, next_btn, content, item_style);
    if (!it) return NULL;
+   elm_widget_resize_object_set(obj, VIEW(it));
 
    /* let's share that whole logic, if it goes to the top */
    if (elm_naviframe_top_item_get(obj) == after)
@@ -1533,6 +1553,7 @@ elm_naviframe_item_style_set(Elm_Object_Item *it,
      if (!strcmp("basic", nit->style)) return;
 
    _item_style_set(nit, item_style);
+   _item_signals_emit(nit);
    _item_title_visible_update(nit);
 }
 
index 759c4cf..4596112 100644 (file)
@@ -1859,6 +1859,7 @@ _tempfile_new(int size)
 #ifdef HAVE_MMAN_H
    Tmp_Info *info;
    const char *tmppath;
+   mode_t cur_umask;
    int len;
 
    info = malloc(sizeof(Tmp_Info));
@@ -1879,7 +1880,9 @@ _tempfile_new(int size)
         return NULL;
      }
    snprintf(info->filename,len,"%s/%sXXXXXX", tmppath, "elmcnpitem-");
+   cur_umask = umask(S_IRWXO | S_IRWXG);
    info->fd = mkstemp(info->filename);
+   umask(cur_umask);
 # ifdef __linux__
      {
         char *tmp;
index 2c6b592..e0731b6 100644 (file)
@@ -49,6 +49,7 @@ _conformant_part_geometry_get_from_env(const char *part,
 
    /* strtok would modify env var if not copied to a buffer */
    strncpy(buf, env_val, sizeof(buf));
+   buf[PATH_MAX - 1] = '\0';
 
    token = strtok(buf, delimiters);
    if (!token) return EINA_FALSE;
index a6d1fa9..7b5faa1 100644 (file)
@@ -2389,7 +2389,7 @@ _elm_entry_text_set(Evas_Object *obj, const char *item, const char *entry)
      {
         edje_object_part_text_set(wd->ent, "elm.text", entry);
      }
-   if ((entry) && (entry[0]))
+   if (len > 0)
      _elm_entry_update_guide(obj, EINA_TRUE);
    else
      _elm_entry_update_guide(obj, EINA_FALSE);
index b20fe04..fe0632b 100644 (file)
@@ -667,6 +667,8 @@ _state_update(Elm_Flip_Smart_Data *sd)
           {
              Vertex3 vo[4];
 
+             memset(vo, 0, sizeof (vo));
+
              if (b > 0) nn = num + sd->slices_h - row - 1;
              else nn = num + row;
 
index 08abba3..9fdacf1 100644 (file)
@@ -3419,6 +3419,10 @@ _rotate_test(Evas_Object *obj,
              Evas_Callback_Type event_type,
              Elm_Gesture_Type g_type)
 {
+   Evas_Event_Flags ev_flag = EVAS_EVENT_FLAG_NONE;
+   Gesture_Info *gesture;
+   Rotate_Type *st = NULL;
+
    if (!_elm_config->glayer_rotate_finger_enable)
      return;
 
@@ -3429,20 +3433,17 @@ _rotate_test(Evas_Object *obj,
 
    if (!sd->gesture[g_type]) return;
 
-   Gesture_Info *gesture = sd->gesture[g_type];
-   Rotate_Type *st;
-   if (gesture)
+   gesture = sd->gesture[g_type];
+   if (!gesture) return ;
+
+   st = gesture->data;
+   if (!st) /* Allocated once on first time */
      {
-        st = gesture->data;
-        if (!st) /* Allocated once on first time */
-          {
-             st = calloc(1, sizeof(Rotate_Type));
-             gesture->data = st;
-             _rotate_test_reset(gesture);
-          }
+       st = calloc(1, sizeof(Rotate_Type));
+       gesture->data = st;
+       _rotate_test_reset(gesture);
      }
 
-   Evas_Event_Flags ev_flag = EVAS_EVENT_FLAG_NONE;
    switch (event_type)
      {
       case EVAS_CALLBACK_MOUSE_MOVE:
index 9606d74..6e681fc 100644 (file)
@@ -1723,7 +1723,7 @@ _elm_scroll_wheel_event_cb(void *data,
        (evas_key_modifier_is_set(ev->modifiers, "Super")))
      return;
    else if (evas_key_modifier_is_set(ev->modifiers, "Shift"))
-     direction = 1;
+     direction = !direction;
    _elm_scroll_content_pos_get(sid->obj, &x, &y);
    if ((sid->down.bounce_x_animator) || (sid->down.bounce_y_animator) ||
        (sid->scrollto.x.animator) || (sid->scrollto.y.animator))
@@ -2638,6 +2638,8 @@ _elm_scroll_hold_animator(void *data)
         tdiff = sid->down.hist.est_timestamp_diff;
         tnow = ecore_time_get() - tdiff;
 
+        memset(pos, 0, sizeof (pos));
+
         for (i = 0; i < QUEUE_SIZE; i++)
           {
              x = sid->down.history[i].x;
index 81e7e32..f69f670 100644 (file)
@@ -571,9 +571,7 @@ _elm_layout_part_aliasing_eval(Elm_Layout_Smart_Data *sd,
 
 #undef ALIAS_LIST
 
-   if (!aliases) return EINA_TRUE;
-
-   while (aliases->alias && aliases->real_part)
+   while (aliases && aliases->alias && aliases->real_part)
      {
         /* NULL matches the 1st */
         if ((!*part) || (!strcmp(*part, aliases->alias)))
index ec04c68..1a09663 100644 (file)
@@ -613,11 +613,15 @@ static int (*qr_main)(int    argc,
                       char **argv) = NULL;
 
 EAPI Eina_Bool
-elm_quicklaunch_prepare(int argc __UNUSED__,
-                        char   **argv)
+elm_quicklaunch_prepare(int    argc,
+                        char **argv)
 {
 #ifdef HAVE_FORK
-   char *exe = elm_quicklaunch_exe_path_get(argv[0]);
+   char *exe;
+
+   if (argc <= 0 || argv == NULL) return EINA_FALSE;
+
+   exe = elm_quicklaunch_exe_path_get(argv[0]);
    if (!exe)
      {
         ERR("requested quicklaunch binary '%s' does not exist\n", argv[0]);
index 356a6a5..48b3d33 100644 (file)
@@ -2539,6 +2539,7 @@ _overlay_show(Elm_Map_Overlay *overlay)
       case ELM_MAP_OVERLAY_TYPE_SCALE:
         if (overlay->visible) _overlay_scale_show(overlay->ovl);
         else _overlay_scale_hide(overlay->ovl);
+       break;
       default:
         ERR("Invalid overlay type to show: %d", overlay->type);
      }
index 70ed60f..8f25c62 100644 (file)
@@ -102,20 +102,40 @@ _configure(Evas_Object *obj)
 {
    ELM_MAPBUF_DATA_GET(obj, sd);
 
-   if (sd->content)
-     {
-        Evas_Coord x, y, w, h, x2, y2;
+   if (!sd->content) return;
+   Evas_Coord x, y, w, h, x2, y2, w2, h2;
+   evas_object_geometry_get(ELM_WIDGET_DATA(sd)->resize_obj, &x, &y, &w, &h);
+   evas_object_geometry_get(sd->content, &x2, &y2, &w2, &h2);
 
-        evas_object_geometry_get
-          (ELM_WIDGET_DATA(sd)->resize_obj, &x, &y, &w, &h);
-        evas_object_geometry_get(sd->content, &x2, &y2, NULL, NULL);
-        if ((x != x2) || (y != y2))
+   if ((x != x2) || (y != y2) || (w != w2) || (h != h2))
+     {
+        if (!sd->enabled)
+          evas_object_move(sd->content, x, y);
+        else
           {
-             if (!sd->enabled)
+             //Let give the chance to update the content whenever content is
+             //coming inside buffer from the outside. It means the content may
+             //have been changed when it is on the outside, but the surface
+             //may not be updated because contents would be outside of the 
+             //viewport.
+             Evas_Coord output_w, output_h;
+             Evas *e = evas_object_evas_get(obj);
+             evas_output_size_get(e, &output_w, &output_h);
+             Eina_Bool update = EINA_FALSE;
+
+             if ((x2 >= output_w) || (y2 >= output_h) ||
+                 ((x2 + w2) <= 0) || ((y2 + h2) <= 0))
+               sd->outside = EINA_TRUE;
+             else if (sd->outside)
+               {
+                  sd->outside = EINA_FALSE;
+                  update = EINA_TRUE;
+               }
+
+             if (update)
                evas_object_move(sd->content, x, y);
              else
                {
-                  Evas *e = evas_object_evas_get(obj);
                   evas_smart_objects_calculate(e);
                   evas_nochange_push(e);
                   evas_object_move(sd->content, x, y);
index 7d4d8e6..bab6eec 100644 (file)
@@ -128,6 +128,7 @@ struct _Elm_Mapbuf_Smart_Data
    Eina_Bool             enabled : 1;
    Eina_Bool             smooth : 1;
    Eina_Bool             alpha : 1;
+   Eina_Bool             outside : 1;
 };
 
 /**
index 7a8000d..eab08b8 100644 (file)
@@ -162,6 +162,7 @@ struct _Elm_Naviframe_Content_Item_Pair
 {
    EINA_INLIST;
    const char *part;
+   Evas_Object *content;
    Elm_Naviframe_Item *it;
 };
 
index 8ee0c64..1a64a12 100644 (file)
@@ -2091,6 +2091,8 @@ _smart_hold_animator(void *data)
         tdiff = sd->down.hist.est_timestamp_diff;
         tnow = ecore_time_get() - tdiff;
 
+        memset(pos, 0, sizeof (pos));
+
         for(i = 0; i < queue_size; i++)
           {
              x = sd->down.history[i].x;
@@ -2124,14 +2126,16 @@ _smart_hold_animator(void *data)
              while ((pos[src_index].t < time_interval * i) && (src_index <= count))
                {
                   src_index++;
-          }
+              }
              if (src_index <= count)
-          {
+              {
                   xsum += pos[src_index].x;
                   ysum += pos[src_index].y;
                   dst_index++;
                }
           }
+        /* Prevent a potential divide by zero when count < 0 and src_index == 0 */
+        if (!dst_index) dst_index = 1;
         fx = xsum / dst_index;
         fy = ysum / dst_index;
      }
index a2e18a3..4d8b743 100644 (file)
@@ -426,22 +426,36 @@ _elm_tooltip_reconfigure(Elm_Tooltip *tt)
         TTDBG("INIT (INTERPRETED)\n");
      }
    TTDBG("ADJUST (POINTER):  tx=%d,ty=%d\n", tx, ty);
-   if (tx < 0)
+   if ((tx < 0) || (tx + tw > cw))
      {
         /* if we're offscreen, try to flip over the Y axis */
-        if (abs((tx + 2 * tw) - cw) < abs(tx))
+        if ((tx < 0) && (abs((tx + 2 * tw) - cw) < abs(tx)))
           tx += tw;
+        else if (tx + tw > cw)
+          {
+             int test_x = tx - tw;
+
+             if ((test_x >= 0) || (tx + tw - cw > abs(test_x)))
+               tx -= tw;
+          }
      }
    else if ((tx > px) && (px > tw))
      {
         if (tx + tw < cw)
           tx += tw;
      }
-   if (ty < 0)
+   if ((ty < 0) || (ty + th > ch))
      {
         /* if we're offscreen, try to flip over the X axis */
-        if (abs((ty + 2 * th) - ch) < abs(ty))
+        if ((ty < 0) && (abs((ty + 2 * th) - ch) < abs(ty)))
           ty += th;
+        else if (ty + th > ch)
+          {
+             int test_y = ty - th;
+
+             if ((test_y >= 0) || (ty + th - ch > abs(test_y)))
+               ty -= th;
+          }
      }
    else if ((ty > py) && (py > th))
      {