From f9b872ab6a4a67d33c5c4a3dd4918f39aa508726 Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Tue, 18 Sep 2012 11:41:55 +0000 Subject: [PATCH] From: Doyoun Kang Subject: [E-devel] [Patch][e] add code to handle the floating mode I added code to handles the floating mode in e. I added the structure for floating mode in E_Border structure. If an application sets the floating mode using elm_win_floating_mode_set(), e gets this event - ECORE_X_EVENT_WINDOW_PROPERTY (atom: ECORE_X_ATOM_E_ILLUME_WINDOW_STATE) - and sets floating mode information to added structure in E_Border. SVN revision: 76806 --- src/bin/e_border.c | 13 +++++++++++++ src/bin/e_border.h | 8 ++++++++ 2 files changed, 21 insertions(+) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 7ac2298d8..a377a1be6 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -624,6 +624,8 @@ e_border_new(E_Container *con, bd->client.illume.drag.fetch.locked = 1; else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_DRAG) bd->client.illume.drag.fetch.drag = 1; + else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_WINDOW_STATE) + bd->client.illume.win_state.fetch.state = 1; else if (atoms[i] == ECORE_X_ATOM_E_VIDEO_PARENT) video_parent = EINA_TRUE; else if (atoms[i] == ECORE_X_ATOM_E_VIDEO_POSITION) @@ -5575,6 +5577,11 @@ _e_border_cb_window_property(void *data __UNUSED__, bd->client.illume.drag.fetch.drag = 1; bd->changed = 1; } + else if (e->atom == ECORE_X_ATOM_E_ILLUME_WINDOW_STATE) + { + bd->client.illume.win_state.fetch.state = 1; + bd->changed = 1; + } /* else if (e->atom == ECORE_X_ATOM_NET_WM_USER_TIME) { @@ -7267,6 +7274,12 @@ _e_border_eval0(E_Border *bd) ecore_x_e_illume_drag_locked_get(bd->client.win); bd->client.illume.drag.fetch.locked = 0; } + if (bd->client.illume.win_state.fetch.state) + { + bd->client.illume.win_state.state = + ecore_x_e_illume_window_state_get(bd->client.win); + bd->client.illume.win_state.fetch.state = 0; + } if (bd->changes.shape) { Ecore_X_Rectangle *rects; diff --git a/src/bin/e_border.h b/src/bin/e_border.h index 7387e5bd7..e464dba14 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -456,6 +456,14 @@ struct _E_Border unsigned char drag : 1; unsigned char locked : 1; } drag; + struct + { + struct + { + unsigned char state : 1; + } fetch; + Ecore_X_Illume_Window_State state; + } win_state; } illume; Ecore_X_Window_Attributes initial_attributes;