antognolli pushed a commit to branch elementary-1.7.
commit f0969a4f765af2cb977d73e19b8d7ee905f706e6
Author: Rafael Antognolli <[email protected]>
Date: Mon Apr 29 15:07:36 2013 -0300
elm/win: Backport 191b71fa86bd56b9d213b538ce8d92d9c23fc59f.
and dont set states until state change cb tells u they changed in
elm_win. more testing needed.
---
src/lib/elm_win.c | 32 ++++++++++++++++++++++++++------
1 file changed, 26 insertions(+), 6 deletions(-)
diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index 3dea076..d46bace 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -2043,7 +2043,7 @@ _elm_win_frame_cb_minimize(void *data,
Elm_Win_Smart_Data *sd;
if (!(sd = data)) return;
- sd->iconified = EINA_TRUE;
+ // sd->iconified = EINA_TRUE;
TRAP(sd, iconified_set, EINA_TRUE);
}
@@ -2308,6 +2308,24 @@ _elm_x_io_err(void *data __UNUSED__)
}
#endif
+static void
+_elm_win_cb_hide(void *data __UNUSED__,
+ Evas *e __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ _elm_win_state_eval_queue();
+}
+
+static void
+_elm_win_cb_show(void *data __UNUSED__,
+ Evas *e __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ _elm_win_state_eval_queue();
+}
+
EAPI Evas_Object *
elm_win_add(Evas_Object *parent,
const char *name,
@@ -2667,6 +2685,8 @@ elm_win_add(Evas_Object *parent,
ecore_evas_callback_focus_out_set(sd->ee, _elm_win_focus_out);
ecore_evas_callback_move_set(sd->ee, _elm_win_move);
ecore_evas_callback_state_change_set(sd->ee, _elm_win_state_change);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _elm_win_cb_hide,
sd);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, _elm_win_cb_show,
sd);
evas_image_cache_set(sd->evas, (_elm_config->image_cache * 1024));
evas_font_cache_set(sd->evas, (_elm_config->font_cache * 1024));
@@ -3112,7 +3132,7 @@ elm_win_fullscreen_set(Evas_Object *obj,
}
else
{
- sd->fullscreen = fullscreen;
+ // sd->fullscreen = fullscreen;
if (fullscreen)
{
@@ -3161,7 +3181,7 @@ elm_win_maximized_set(Evas_Object *obj,
ELM_WIN_CHECK(obj);
ELM_WIN_DATA_GET_OR_RETURN(obj, sd);
- sd->maximized = maximized;
+ // sd->maximized = maximized;
// YYY: handle if sd->img_obj
TRAP(sd, maximized_set, maximized);
#ifdef HAVE_ELEMENTARY_X
@@ -3185,7 +3205,7 @@ elm_win_iconified_set(Evas_Object *obj,
ELM_WIN_CHECK(obj);
ELM_WIN_DATA_GET_OR_RETURN(obj, sd);
- sd->iconified = iconified;
+ // sd->iconified = iconified;
TRAP(sd, iconified_set, iconified);
#ifdef HAVE_ELEMENTARY_X
_elm_win_xwin_update(sd);
@@ -3208,7 +3228,7 @@ elm_win_withdrawn_set(Evas_Object *obj,
ELM_WIN_CHECK(obj);
ELM_WIN_DATA_GET_OR_RETURN(obj, sd);
- sd->withdrawn = withdrawn;
+ // sd->withdrawn = withdrawn;
TRAP(sd, withdrawn_set, withdrawn);
#ifdef HAVE_ELEMENTARY_X
_elm_win_xwin_update(sd);
@@ -3472,7 +3492,7 @@ elm_win_sticky_set(Evas_Object *obj,
ELM_WIN_CHECK(obj);
ELM_WIN_DATA_GET_OR_RETURN(obj, sd);
- sd->sticky = sticky;
+ // sd->sticky = sticky;
TRAP(sd, sticky_set, sticky);
#ifdef HAVE_ELEMENTARY_X
_elm_win_xwin_update(sd);
--
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr