forked from enlightenment/efl
just DONT ask! DONT! x. focvus. client, self, not getting key events... fuck!
workarounds. SVN revision: 16904
This commit is contained in:
parent
e0ac761a1f
commit
7e34d600b7
|
@ -79,12 +79,14 @@ EAPI Ecore_X_Window ecore_evas_software_x11_window_get(Ecore_Evas *ee);
|
||||||
EAPI Ecore_X_Window ecore_evas_software_x11_subwindow_get(Ecore_Evas *ee);
|
EAPI Ecore_X_Window ecore_evas_software_x11_subwindow_get(Ecore_Evas *ee);
|
||||||
EAPI void ecore_evas_software_x11_direct_resize_set(Ecore_Evas *ee, int on);
|
EAPI void ecore_evas_software_x11_direct_resize_set(Ecore_Evas *ee, int on);
|
||||||
EAPI int ecore_evas_software_x11_direct_resize_get(Ecore_Evas *ee);
|
EAPI int ecore_evas_software_x11_direct_resize_get(Ecore_Evas *ee);
|
||||||
|
EAPI void ecore_evas_software_x11_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window win);
|
||||||
|
|
||||||
EAPI Ecore_Evas *ecore_evas_gl_x11_new(const char *disp_name, Ecore_X_Window parent, int x, int y, int w, int h);
|
EAPI Ecore_Evas *ecore_evas_gl_x11_new(const char *disp_name, Ecore_X_Window parent, int x, int y, int w, int h);
|
||||||
EAPI Ecore_X_Window ecore_evas_gl_x11_window_get(Ecore_Evas *ee);
|
EAPI Ecore_X_Window ecore_evas_gl_x11_window_get(Ecore_Evas *ee);
|
||||||
EAPI Ecore_X_Window ecore_evas_gl_x11_subwindow_get(Ecore_Evas *ee);
|
EAPI Ecore_X_Window ecore_evas_gl_x11_subwindow_get(Ecore_Evas *ee);
|
||||||
EAPI void ecore_evas_gl_x11_direct_resize_set(Ecore_Evas *ee, int on);
|
EAPI void ecore_evas_gl_x11_direct_resize_set(Ecore_Evas *ee, int on);
|
||||||
EAPI int ecore_evas_gl_x11_direct_resize_get(Ecore_Evas *ee);
|
EAPI int ecore_evas_gl_x11_direct_resize_get(Ecore_Evas *ee);
|
||||||
|
EAPI void ecore_evas_gl_x11_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window win);
|
||||||
|
|
||||||
EAPI Ecore_Evas *ecore_evas_fb_new(char *disp_name, int rotation, int w, int h);
|
EAPI Ecore_Evas *ecore_evas_fb_new(char *disp_name, int rotation, int w, int h);
|
||||||
|
|
||||||
|
|
|
@ -90,6 +90,7 @@ struct _Ecore_Evas_Engine
|
||||||
Ecore_X_Window win_root;
|
Ecore_X_Window win_root;
|
||||||
Ecore_X_Window win_container;
|
Ecore_X_Window win_container;
|
||||||
Ecore_X_Window win;
|
Ecore_X_Window win;
|
||||||
|
Evas_List *win_extra;
|
||||||
Ecore_X_Pixmap pmap;
|
Ecore_X_Pixmap pmap;
|
||||||
Ecore_X_Pixmap mask;
|
Ecore_X_Pixmap mask;
|
||||||
Ecore_X_GC gc;
|
Ecore_X_GC gc;
|
||||||
|
|
|
@ -872,6 +872,15 @@ _ecore_evas_x_free(Ecore_Evas *ee)
|
||||||
ee->engine.x.damages = 0;
|
ee->engine.x.damages = 0;
|
||||||
ecore_evases_hash = evas_hash_del(ecore_evases_hash, _ecore_evas_x_winid_str_get(ee->engine.x.win), ee);
|
ecore_evases_hash = evas_hash_del(ecore_evases_hash, _ecore_evas_x_winid_str_get(ee->engine.x.win), ee);
|
||||||
ecore_evases_hash = evas_hash_del(ecore_evases_hash, _ecore_evas_x_winid_str_get(ee->engine.x.win_container), ee);
|
ecore_evases_hash = evas_hash_del(ecore_evases_hash, _ecore_evas_x_winid_str_get(ee->engine.x.win_container), ee);
|
||||||
|
while (ee->engine.x.win_extra)
|
||||||
|
{
|
||||||
|
Ecore_X_Window *winp;
|
||||||
|
|
||||||
|
winp = ee->engine.x.win_extra->data;
|
||||||
|
ee->engine.x.win_extra = evas_list_remove_list(ee->engine.x.win_extra, ee->engine.x.win_extra);
|
||||||
|
ecore_evases_hash = evas_hash_del(ecore_evases_hash, _ecore_evas_x_winid_str_get(*winp), ee);
|
||||||
|
free(winp);
|
||||||
|
}
|
||||||
ecore_evases = _ecore_list2_remove(ecore_evases, ee);
|
ecore_evases = _ecore_list2_remove(ecore_evases, ee);
|
||||||
_ecore_evas_x_shutdown();
|
_ecore_evas_x_shutdown();
|
||||||
ecore_x_shutdown();
|
ecore_x_shutdown();
|
||||||
|
@ -1752,6 +1761,28 @@ ecore_evas_software_x11_direct_resize_get(Ecore_Evas *ee)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To be documented.
|
||||||
|
*
|
||||||
|
* FIXME: To be fixed.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
ecore_evas_software_x11_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window win)
|
||||||
|
{
|
||||||
|
#ifdef BUILD_ECORE_X
|
||||||
|
Ecore_X_Window *winp;
|
||||||
|
|
||||||
|
winp = malloc(sizeof(Ecore_X_Window));
|
||||||
|
if (winp)
|
||||||
|
{
|
||||||
|
*winp = win;
|
||||||
|
ee->engine.x.win_extra = evas_list_append(ee->engine.x.win_extra, winp);
|
||||||
|
ecore_evases_hash = evas_hash_add(ecore_evases_hash, _ecore_evas_x_winid_str_get(win), ee);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* To be documented.
|
* To be documented.
|
||||||
*
|
*
|
||||||
|
@ -1953,3 +1984,14 @@ ecore_evas_gl_x11_direct_resize_get(Ecore_Evas *ee)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To be documented.
|
||||||
|
*
|
||||||
|
* FIXME: To be fixed.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
ecore_evas_gl_x11_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window win)
|
||||||
|
{
|
||||||
|
ecore_evas_software_x11_extra_event_window_add(ee, win);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -1022,7 +1022,6 @@ void
|
||||||
ecore_x_window_container_manage(Ecore_X_Window win)
|
ecore_x_window_container_manage(Ecore_X_Window win)
|
||||||
{
|
{
|
||||||
XSelectInput(_ecore_x_disp, win,
|
XSelectInput(_ecore_x_disp, win,
|
||||||
ResizeRedirectMask |
|
|
||||||
SubstructureRedirectMask |
|
SubstructureRedirectMask |
|
||||||
SubstructureNotifyMask);
|
SubstructureNotifyMask);
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,7 @@ ecore_x_window_new(Ecore_X_Window parent, int x, int y, int w, int h)
|
||||||
ColormapChangeMask;
|
ColormapChangeMask;
|
||||||
win = XCreateWindow(_ecore_x_disp, parent,
|
win = XCreateWindow(_ecore_x_disp, parent,
|
||||||
x, y, w, h, 0,
|
x, y, w, h, 0,
|
||||||
0, /*DefaultDepth(_ecore_x_disp, DefaultScreen(_ecore_x_disp)),*/
|
CopyFromParent, /*DefaultDepth(_ecore_x_disp, DefaultScreen(_ecore_x_disp)),*/
|
||||||
InputOutput,
|
InputOutput,
|
||||||
CopyFromParent, /*DefaultVisual(_ecore_x_disp, DefaultScreen(_ecore_x_disp)),*/
|
CopyFromParent, /*DefaultVisual(_ecore_x_disp, DefaultScreen(_ecore_x_disp)),*/
|
||||||
CWBackingStore |
|
CWBackingStore |
|
||||||
|
@ -109,7 +109,7 @@ ecore_x_window_override_new(Ecore_X_Window parent, int x, int y, int w, int h)
|
||||||
ColormapChangeMask;
|
ColormapChangeMask;
|
||||||
win = XCreateWindow(_ecore_x_disp, parent,
|
win = XCreateWindow(_ecore_x_disp, parent,
|
||||||
x, y, w, h, 0,
|
x, y, w, h, 0,
|
||||||
0, /*DefaultDepth(_ecore_x_disp, DefaultScreen(_ecore_x_disp)),*/
|
CopyFromParent, /*DefaultDepth(_ecore_x_disp, DefaultScreen(_ecore_x_disp)),*/
|
||||||
InputOutput,
|
InputOutput,
|
||||||
CopyFromParent, /*DefaultVisual(_ecore_x_disp, DefaultScreen(_ecore_x_disp)),*/
|
CopyFromParent, /*DefaultVisual(_ecore_x_disp, DefaultScreen(_ecore_x_disp)),*/
|
||||||
CWBackingStore |
|
CWBackingStore |
|
||||||
|
@ -161,7 +161,7 @@ ecore_x_window_input_new(Ecore_X_Window parent, int x, int y, int w, int h)
|
||||||
ColormapChangeMask;
|
ColormapChangeMask;
|
||||||
win = XCreateWindow(_ecore_x_disp, parent,
|
win = XCreateWindow(_ecore_x_disp, parent,
|
||||||
x, y, w, h, 0,
|
x, y, w, h, 0,
|
||||||
0,
|
CopyFromParent,
|
||||||
InputOnly,
|
InputOnly,
|
||||||
CopyFromParent, /*DefaultVisual(_ecore_x_disp, DefaultScreen(_ecore_x_disp)),*/
|
CopyFromParent, /*DefaultVisual(_ecore_x_disp, DefaultScreen(_ecore_x_disp)),*/
|
||||||
CWOverrideRedirect |
|
CWOverrideRedirect |
|
||||||
|
|
Loading…
Reference in New Issue