aboutsummaryrefslogtreecommitdiffstats
path: root/legacy/elementary/src/lib/elm_win.c
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
commit332f1cd626dbae29e6329f8b3ef5d0fe09cf79cd (patch)
tree3eaa72c0ea9a3e589074f935056ddbbb59a5261e /legacy/elementary/src/lib/elm_win.c
parentClouseau: handle case when the library is not installed (diff)
downloadefl-332f1cd626dbae29e6329f8b3ef5d0fe09cf79cd.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
Diffstat (limited to 'legacy/elementary/src/lib/elm_win.c')
-rw-r--r--legacy/elementary/src/lib/elm_win.c37
1 files changed, 18 insertions, 19 deletions
diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c
index a1d38cc91d..01e1f9169e 100644
--- a/legacy/elementary/src/lib/elm_win.c
+++ b/legacy/elementary/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);
}