Code freeze, yes etc etc this was really annoying me and in a way was a bug anyhow....

SVN revision: 13684
This commit is contained in:
handyande 2005-03-10 23:54:49 +00:00 committed by handyande
parent 16f8f15c4b
commit ca16b1fc5b
2 changed files with 54 additions and 0 deletions

View File

@ -79,6 +79,8 @@ static void _e_border_event_border_resize_free(void *data, void *ev);
static void _e_border_event_border_move_free(void *data, void *ev);
static void _e_border_event_border_show_free(void *data, void *ev);
static void _e_border_event_border_hide_free(void *data, void *ev);
static void _e_border_event_border_iconify_free(void *data, void *ev);
static void _e_border_event_border_uniconify_free(void *data, void *ev);
static void _e_border_event_border_stick_free(void *data, void *ev);
static void _e_border_event_border_unstick_free(void *data, void *ev);
@ -108,6 +110,8 @@ int E_EVENT_BORDER_RESIZE = 0;
int E_EVENT_BORDER_MOVE = 0;
int E_EVENT_BORDER_SHOW = 0;
int E_EVENT_BORDER_HIDE = 0;
int E_EVENT_BORDER_ICONIFY = 0;
int E_EVENT_BORDER_UNICONIFY = 0;
int E_EVENT_BORDER_STICK = 0;
int E_EVENT_BORDER_UNSTICK = 0;
@ -147,6 +151,8 @@ e_border_init(void)
E_EVENT_BORDER_MOVE = ecore_event_type_new();
E_EVENT_BORDER_SHOW = ecore_event_type_new();
E_EVENT_BORDER_HIDE = ecore_event_type_new();
E_EVENT_BORDER_ICONIFY = ecore_event_type_new();
E_EVENT_BORDER_UNICONIFY = ecore_event_type_new();
E_EVENT_BORDER_STICK = ecore_event_type_new();
E_EVENT_BORDER_UNSTICK = ecore_event_type_new();
@ -864,6 +870,8 @@ e_border_unmaximize(E_Border *bd)
void
e_border_iconify(E_Border *bd)
{
E_Event_Border_Iconify *ev;
unsigned int iconic;
E_OBJECT_CHECK(bd);
E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
@ -877,12 +885,18 @@ e_border_iconify(E_Border *bd)
iconic = 1;
e_hints_window_iconic_set(bd->client.win);
ecore_x_window_prop_card32_set(bd->client.win, E_ATOM_MAPPED, &iconic, 1);
ev = E_NEW(E_Event_Border_Iconify, 1);
ev->border = bd;
e_object_ref(E_OBJECT(bd));
ecore_event_add(E_EVENT_BORDER_ICONIFY, ev, _e_border_event_border_iconify_free, NULL);
}
void
e_border_uniconify(E_Border *bd)
{
E_Desk *desk;
E_Event_Border_Uniconify *ev;
unsigned int iconic;
E_OBJECT_CHECK(bd);
@ -901,6 +915,12 @@ e_border_uniconify(E_Border *bd)
}
iconic = 0;
ecore_x_window_prop_card32_set(bd->client.win, E_ATOM_MAPPED, &iconic, 1);
ev = E_NEW(E_Event_Border_Uniconify, 1);
ev->border = bd;
e_object_ref(E_OBJECT(bd));
ecore_event_add(E_EVENT_BORDER_UNICONIFY, ev, _e_border_event_border_uniconify_free, NULL);
}
void
@ -3208,6 +3228,26 @@ _e_border_event_border_hide_free(void *data, void *ev)
free(e);
}
static void
_e_border_event_border_iconify_free(void *data, void *ev)
{
E_Event_Border_Iconify *e;
e = ev;
e_object_unref(E_OBJECT(e->border));
free(e);
}
static void
_e_border_event_border_uniconify_free(void *data, void *ev)
{
E_Event_Border_Uniconify *e;
e = ev;
e_object_unref(E_OBJECT(e->border));
free(e);
}
static void
_e_border_event_border_stick_free(void *data, void *ev)
{

View File

@ -27,6 +27,8 @@ typedef struct _E_Event_Border_Add E_Event_Border_Add;
typedef struct _E_Event_Border_Remove E_Event_Border_Remove;
typedef struct _E_Event_Border_Show E_Event_Border_Show;
typedef struct _E_Event_Border_Hide E_Event_Border_Hide;
typedef struct _E_Event_Border_Iconify E_Event_Border_Iconify;
typedef struct _E_Event_Border_Uniconify E_Event_Border_Uniconify;
typedef struct _E_Event_Border_Stick E_Event_Border_Stick;
typedef struct _E_Event_Border_Unstick E_Event_Border_Unstick;
typedef struct _E_Event_Border_Zone_Set E_Event_Border_Zone_Set;
@ -239,6 +241,16 @@ struct _E_Event_Border_Hide
E_Border *border;
};
struct _E_Event_Border_Iconify
{
E_Border *border;
};
struct _E_Event_Border_Uniconify
{
E_Border *border;
};
struct _E_Event_Border_Stick
{
E_Border *border;
@ -302,6 +314,8 @@ extern EAPI int E_EVENT_BORDER_ADD;
extern EAPI int E_EVENT_BORDER_SHOW;
extern EAPI int E_EVENT_BORDER_HIDE;
extern EAPI int E_EVENT_BORDER_REMOVE;
extern EAPI int E_EVENT_BORDER_ICONIFY;
extern EAPI int E_EVENT_BORDER_UNICONIFY;
extern EAPI int E_EVENT_BORDER_STICK;
extern EAPI int E_EVENT_BORDER_UNSTICK;
extern EAPI int E_EVENT_BORDER_ZONE_SET;