summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2015-11-17 18:19:15 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2015-11-17 18:20:04 -0500
commit3bfe3ca79763e86d2f7bcb2f5581cdb5425013bb (patch)
treee2b4a3c0fd2d4e681e14f6386fa4542d006e45c2
parent779b834c8d4a7ffbbd4c60d46397c0ed78e0715d (diff)
downloadelementary-3bfe3ca79763e86d2f7bcb2f5581cdb5425013bb.tar.gz
win: only perform maximize frame state updating during ecore-evas callback
running this during csd button activation leads to state mismatches when maximize is not triggered from the csd button @fix
-rw-r--r--src/lib/elm_win.c37
1 files changed, 18 insertions, 19 deletions
diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index a1d38cc91..01e1f9169 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -1289,6 +1289,23 @@ _elm_win_frame_obj_update(Elm_Win_Data *sd)
}
static void
+_elm_win_frame_maximized_state_update(Elm_Win_Data *sd, Eina_Bool maximized)
+{
+ const char *emission;
+
+ if (maximized)
+ emission = "elm,state,maximized";
+ else
+ emission = "elm,state,unmaximized";
+
+ edje_object_signal_emit(sd->frame_obj, emission, "elm");
+ edje_object_message_signal_process(sd->frame_obj);
+ evas_object_smart_calculate(sd->frame_obj);
+
+ _elm_win_frame_obj_update(sd);
+}
+
+static void
_elm_win_state_change(Ecore_Evas *ee)
{
Elm_Win_Data *sd = _elm_win_associate_get(ee);
@@ -1409,6 +1426,7 @@ _elm_win_state_change(Ecore_Evas *ee)
if (_elm_config->atspi_mode)
elm_interface_atspi_window_restored_signal_emit(obj);
}
+ _elm_win_frame_maximized_state_update(sd, sd->maximized);
}
if (ch_profile)
{
@@ -2841,23 +2859,6 @@ _elm_win_frame_cb_minimize(void *data,
}
static void
-_elm_win_frame_maximized_state_update(Elm_Win_Data *sd, Eina_Bool maximized)
-{
- const char *emission;
-
- if (maximized)
- emission = "elm,state,maximized";
- else
- emission = "elm,state,unmaximized";
-
- edje_object_signal_emit(sd->frame_obj, emission, "elm");
- edje_object_message_signal_process(sd->frame_obj);
- evas_object_smart_calculate(sd->frame_obj);
-
- _elm_win_frame_obj_update(sd);
-}
-
-static void
_elm_win_frame_cb_maximize(void *data,
Evas_Object *obj EINA_UNUSED,
const char *sig EINA_UNUSED,
@@ -2870,8 +2871,6 @@ _elm_win_frame_cb_maximize(void *data,
if (sd->maximized) value = EINA_FALSE;
else value = EINA_TRUE;
- _elm_win_frame_maximized_state_update(sd, value);
-
TRAP(sd, maximized_set, value);
}