diff --git a/legacy/ecore/src/Ecore.h b/legacy/ecore/src/Ecore.h index 5220375229..6971a6728e 100644 --- a/legacy/ecore/src/Ecore.h +++ b/legacy/ecore/src/Ecore.h @@ -240,6 +240,11 @@ void e_button_ungrab(Window win, int button, Ev_Key_Modifiers mod void e_pointer_replay(Time t); void e_pointer_grab(Window win, Time t); void e_pointer_ungrab(Time t); +void e_window_send_event_move_resize(Window win, int x, int y, int w, int h); +void e_window_send_client_message(Window win, Atom type, int format, void *data); +void e_window_add_to_save_set(Window win); +void e_window_del_from_save_set(Window win); +void e_window_kill_client(Window win); typedef struct _eev Eevent; typedef struct _ev_fd_handler Ev_Fd_Handler; diff --git a/legacy/ecore/src/e_x.c b/legacy/ecore/src/e_x.c index 3559002ce9..f17b3ca0de 100644 --- a/legacy/ecore/src/e_x.c +++ b/legacy/ecore/src/e_x.c @@ -2558,3 +2558,68 @@ e_pointer_ungrab(Time t) { XUngrabPointer(disp, t); } + +void +e_window_send_event_move_resize(Window win, int x, int y, int w, int h) +{ + XEvent ev; + + ev.type = ConfigureNotify; + ev.xconfigure.display = disp; + ev.xconfigure.event = win; + ev.xconfigure.window = win; + ev.xconfigure.x = x; + ev.xconfigure.y = y; + ev.xconfigure.width = w; + ev.xconfigure.height = h; + ev.xconfigure.border_width = 0; + ev.xconfigure.above = 0; + ev.xconfigure.override_redirect = False; + XSendEvent(disp, win, False, StructureNotifyMask, &ev); +} + +void +e_window_send_client_message(Window win, Atom type, int format, void *data) +{ + XClientMessageEvent ev; + int i; + + ev.type = ClientMessage; + ev.window = win; + ev.message_type = type; + ev.format = format; + if (format == 32) + { + for (i = 0; i < 5; i++) + ev.data.l[i] = ((unsigned int *)data)[i]; + } + else if (format == 16) + { + for (i = 0; i < 10; i++) + ev.data.s[i] = ((unsigned short *)data)[i]; + } + else if (format == 8) + { + for (i = 0; i < 20; i++) + ev.data.b[i] = ((unsigned char *)data)[i]; + } + XSendEvent(disp, win, False, 0, (XEvent *) & ev); +} + +void +e_window_add_to_save_set(Window win) +{ + XAddToSaveSet(disp, win); +} + +void +e_window_del_from_save_set(Window win) +{ + XRemoveFromSaveSet(disp, win); +} + +void +e_window_kill_client(Window win) +{ + XKillClient(disp, (XID)win); +}