aboutsummaryrefslogtreecommitdiffstats
path: root/legacy/elementary/src/lib/elm_win.c
diff options
context:
space:
mode:
authorChristopher Michael <cpmichael1@comcast.net>2012-08-15 10:57:31 +0000
committerChristopher Michael <cpmichael1@comcast.net>2012-08-15 10:57:31 +0000
commit46376750569d354d655f2c06fc0df7cd9cb32503 (patch)
treeef354376ea0bd2caba97ae1bc8290359a6d185f8 /legacy/elementary/src/lib/elm_win.c
parentelm genlist.c: Fixed genlist horizontal scrolling issue. This needs to be ena... (diff)
downloadefl-46376750569d354d655f2c06fc0df7cd9cb32503.tar.gz
Elm: Add fullscreen handling :)
Basically, we will remove the frame when going into fullscreen, and readd when we leave fullscreen. When we remove the frame, then during window redraw the appropriate fullscreen size will be calculated. This allows proper fullscreening. SVN revision: 75294
Diffstat (limited to 'legacy/elementary/src/lib/elm_win.c')
-rw-r--r--legacy/elementary/src/lib/elm_win.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c
index 43c673d9ab..60db92c70e 100644
--- a/legacy/elementary/src/lib/elm_win.c
+++ b/legacy/elementary/src/lib/elm_win.c
@@ -1971,6 +1971,43 @@ _elm_win_frame_add(Elm_Win_Smart_Data *sd,
_elm_win_frame_cb_maximize, sd);
edje_object_signal_callback_add
(sd->frame_obj, "elm,action,close", "elm", _elm_win_frame_cb_close, sd);
+
+ if (sd->title)
+ {
+ edje_object_part_text_escaped_set
+ (sd->frame_obj, "elm.text.title", sd->title);
+ }
+}
+
+static void
+_elm_win_frame_del(Elm_Win_Smart_Data *sd)
+{
+ if (sd->frame_obj)
+ {
+ edje_object_signal_callback_del
+ (sd->frame_obj, "elm,action,move,start", "elm",
+ _elm_win_frame_cb_move_start);
+ edje_object_signal_callback_del
+ (sd->frame_obj, "elm,action,resize,show", "*",
+ _elm_win_frame_cb_resize_show);
+ edje_object_signal_callback_del
+ (sd->frame_obj, "elm,action,resize,start", "*",
+ _elm_win_frame_cb_resize_start);
+ edje_object_signal_callback_del
+ (sd->frame_obj, "elm,action,minimize", "elm",
+ _elm_win_frame_cb_minimize);
+ edje_object_signal_callback_del
+ (sd->frame_obj, "elm,action,maximize", "elm",
+ _elm_win_frame_cb_maximize);
+ edje_object_signal_callback_del
+ (sd->frame_obj, "elm,action,close", "elm",
+ _elm_win_frame_cb_close);
+
+ evas_object_del(sd->frame_obj);
+ sd->frame_obj = NULL;
+ }
+
+ evas_output_framespace_set(sd->evas, 0, 0, 0, 0);
}
#ifdef ELM_DEBUG
@@ -2927,6 +2964,24 @@ elm_win_fullscreen_set(Evas_Object *obj,
else
{
sd->fullscreen = fullscreen;
+
+ if (fullscreen)
+ {
+ if (ENGINE_COMPARE(ELM_WAYLAND_SHM))
+ _elm_win_frame_del(sd);
+ else if (ENGINE_COMPARE(ELM_WAYLAND_EGL))
+ _elm_win_frame_del(sd);
+ }
+ else
+ {
+ if (ENGINE_COMPARE(ELM_WAYLAND_SHM))
+ _elm_win_frame_add(sd, "default");
+ else if (ENGINE_COMPARE(ELM_WAYLAND_EGL))
+ _elm_win_frame_add(sd, "default");
+
+ evas_object_show(sd->frame_obj);
+ }
+
TRAP(sd, fullscreen_set, fullscreen);
#ifdef HAVE_ELEMENTARY_X
_elm_win_xwin_update(sd);