Hook in a few callbacks, putting them in slowly but surely - just testing the water this time
SVN revision: 12873
This commit is contained in:
parent
3ded7141ba
commit
d93e8d14bb
|
@ -70,11 +70,17 @@ static void _e_border_menu_cb_shade(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||||
static void _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi);
|
static void _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||||
static void _e_border_menu_cb_stick(void *data, E_Menu *m, E_Menu_Item *mi);
|
static void _e_border_menu_cb_stick(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||||
|
|
||||||
|
static void _e_border_event_border_resize_free(void *data, void *ev);
|
||||||
|
static void _e_border_event_border_move_free(void *data, void *ev);
|
||||||
|
|
||||||
/* local subsystem globals */
|
/* local subsystem globals */
|
||||||
static Evas_List *handlers = NULL;
|
static Evas_List *handlers = NULL;
|
||||||
static Evas_List *borders = NULL;
|
static Evas_List *borders = NULL;
|
||||||
static E_Border *focused = NULL;
|
static E_Border *focused = NULL;
|
||||||
|
|
||||||
|
int E_EVENT_BORDER_RESIZE = 0;
|
||||||
|
int E_EVENT_BORDER_MOVE = 0;
|
||||||
|
|
||||||
#define GRAV_SET(bd, grav) \
|
#define GRAV_SET(bd, grav) \
|
||||||
printf("GRAV TO %i\n", grav); \
|
printf("GRAV TO %i\n", grav); \
|
||||||
ecore_x_window_gravity_set(bd->bg_win, grav); \
|
ecore_x_window_gravity_set(bd->bg_win, grav); \
|
||||||
|
@ -102,6 +108,10 @@ e_border_init(void)
|
||||||
handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, _e_border_cb_window_focus_out, NULL));
|
handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, _e_border_cb_window_focus_out, NULL));
|
||||||
handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _e_border_cb_client_message, NULL));
|
handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _e_border_cb_client_message, NULL));
|
||||||
ecore_x_passive_grab_replay_func_set(_e_border_cb_grab_replay, NULL);
|
ecore_x_passive_grab_replay_func_set(_e_border_cb_grab_replay, NULL);
|
||||||
|
|
||||||
|
E_EVENT_BORDER_RESIZE = ecore_event_type_new();
|
||||||
|
E_EVENT_BORDER_MOVE = ecore_event_type_new();
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1594,6 +1604,7 @@ _e_border_cb_mouse_move(void *data, int type, void *event)
|
||||||
bd->mouse.current.my = ev->root.y;
|
bd->mouse.current.my = ev->root.y;
|
||||||
if (bd->moving)
|
if (bd->moving)
|
||||||
{
|
{
|
||||||
|
E_Event_Border_Move *pass;
|
||||||
int x, y, new_x, new_y;
|
int x, y, new_x, new_y;
|
||||||
Evas_List *skiplist = NULL;
|
Evas_List *skiplist = NULL;
|
||||||
|
|
||||||
|
@ -1620,10 +1631,20 @@ _e_border_cb_mouse_move(void *data, int type, void *event)
|
||||||
&new_x, &new_y);
|
&new_x, &new_y);
|
||||||
evas_list_free(skiplist);
|
evas_list_free(skiplist);
|
||||||
e_border_move(bd, new_x, new_y);
|
e_border_move(bd, new_x, new_y);
|
||||||
|
|
||||||
|
pass = calloc(1, sizeof(E_Event_Border_Move));
|
||||||
|
pass->border = bd;
|
||||||
|
e_object_ref(E_OBJECT(bd));
|
||||||
|
ecore_event_add(E_EVENT_BORDER_MOVE, pass, _e_border_event_border_move_free, NULL);
|
||||||
}
|
}
|
||||||
else if (bd->resize_mode != RESIZE_NONE)
|
else if (bd->resize_mode != RESIZE_NONE)
|
||||||
{
|
{
|
||||||
|
E_Event_Border_Resize *pass;
|
||||||
_e_border_resize_handle(bd);
|
_e_border_resize_handle(bd);
|
||||||
|
pass = calloc(1, sizeof(E_Event_Border_Resize));
|
||||||
|
pass->border = bd;
|
||||||
|
e_object_ref(E_OBJECT(bd));
|
||||||
|
ecore_event_add(E_EVENT_BORDER_RESIZE, pass, _e_border_event_border_resize_free, NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -2629,3 +2650,24 @@ _e_border_menu_cb_stick(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
if (bd->sticky) e_border_unstick(bd);
|
if (bd->sticky) e_border_unstick(bd);
|
||||||
else e_border_stick(bd);
|
else e_border_stick(bd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_border_event_border_resize_free(void *data, void *ev)
|
||||||
|
{
|
||||||
|
E_Event_Border_Resize *e;
|
||||||
|
|
||||||
|
e = ev;
|
||||||
|
e_object_unref(E_OBJECT(e->border));
|
||||||
|
free(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_border_event_border_move_free(void *data, void *ev)
|
||||||
|
{
|
||||||
|
E_Event_Border_Resize *e;
|
||||||
|
|
||||||
|
e = ev;
|
||||||
|
e_object_unref(E_OBJECT(e->border));
|
||||||
|
free(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,9 @@ enum _E_Transition
|
||||||
};
|
};
|
||||||
typedef enum _E_Transition E_Transition;
|
typedef enum _E_Transition E_Transition;
|
||||||
|
|
||||||
|
typedef struct _E_Event_Border_Resize E_Event_Border_Resize;
|
||||||
|
typedef struct _E_Event_Border_Move E_Event_Border_Move;
|
||||||
|
|
||||||
struct _E_Border
|
struct _E_Border
|
||||||
{
|
{
|
||||||
E_Object e_obj_inherit;
|
E_Object e_obj_inherit;
|
||||||
|
@ -183,6 +186,16 @@ struct _E_Border
|
||||||
} changes;
|
} changes;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct _E_Event_Border_Resize
|
||||||
|
{
|
||||||
|
E_Border *border;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _E_Event_Border_Move
|
||||||
|
{
|
||||||
|
E_Border *border;
|
||||||
|
};
|
||||||
|
|
||||||
EAPI int e_border_init(void);
|
EAPI int e_border_init(void);
|
||||||
EAPI int e_border_shutdown(void);
|
EAPI int e_border_shutdown(void);
|
||||||
|
|
||||||
|
@ -216,4 +229,7 @@ EAPI void e_border_idler_before(void);
|
||||||
|
|
||||||
EAPI void e_border_iconified_list(void);
|
EAPI void e_border_iconified_list(void);
|
||||||
|
|
||||||
|
extern EAPI int E_EVENT_BORDER_RESIZE;
|
||||||
|
extern EAPI int E_EVENT_BORDER_MOVE;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue