ok remove the cd crap... but if we pretend to be kwin... it works.

this SOOO needs to go to sun for fixing.

hey sun? see this? fix your code! dont make stupid tests for every wm on the
planet. make your code work properly everywhere, all the time, but following
standards! grrrr.


SVN revision: 13751
This commit is contained in:
Carsten Haitzler 2005-03-16 16:10:33 +00:00
parent b3babd3da1
commit 02f54f1a80
3 changed files with 5 additions and 41 deletions

View File

@ -19,7 +19,11 @@ e_hints_init(void)
Ecore_X_Window win;
win = ecore_x_window_new(roots[i], -200, -200, 5, 5);
ecore_x_netwm_wm_identify(roots[i], win, "Enlightenment");
// I don't FUCKING believe it. if we PRETENT we are Kwin - java is
// happy. why? it expects a double reparenting wm then. java insists
// on finding this out when it shoudl be irrelevant! stupid FUCKS.
ecore_x_netwm_wm_identify(roots[i], win, "KWin");
// ecore_x_netwm_wm_identify(roots[i], win, "Enlightenment");
}
free(roots);
}
@ -426,40 +430,3 @@ e_hints_window_icon_name_get(Ecore_X_Window win)
bd->client.icccm.icon_name = name;
bd->changed = 1;
}
/* this SHIT is for e17 to PRETEND it is CDE so java doesnt go all fucked and
* do the wrong thing. java is NOT porperly writtey to comply with x
* standards such as icccm. etc. you need to just check it's x code to find
* out. this caused us a LOT of pain to find out - thanks HandyAnde
*
* BTW - this PARTYL fixes batik - it does not fix cgoban or batik fully.
* batik still requests its window to be twice the width and height it should be
* and thinks its half the width and height it is. cgoban wont render its first
* window because it THINKS it smaller than it is.
*/
void
e_hints_root_cde_pretend(Ecore_X_Window root)
{
static Ecore_X_Atom _XA_DT_SM_WINDOW_INFO = 0;
static Ecore_X_Atom _XA_DT_SM_STATE_INFO = 0;
Ecore_X_Window data[2], info_win;
info_win = ecore_x_window_override_new(root, -99, -99, 1, 1);
data[0] = 0;
if (_XA_DT_SM_STATE_INFO == 0)
_XA_DT_SM_STATE_INFO = ecore_x_atom_get("_DT_SM_STATE_INFO");
ecore_x_window_prop_property_set(info_win,
_XA_DT_SM_STATE_INFO,
_XA_DT_SM_STATE_INFO,
32, data, 1);
data[0] = info_win;
data[1] = info_win;
if (_XA_DT_SM_WINDOW_INFO == 0)
_XA_DT_SM_WINDOW_INFO = ecore_x_atom_get("_DT_SM_WINDOW_INFO");
ecore_x_window_prop_property_set(root,
_XA_DT_SM_WINDOW_INFO,
_XA_DT_SM_WINDOW_INFO,
32, data, 2);
}

View File

@ -30,8 +30,6 @@ EAPI int e_hints_window_maximized_isset(Ecore_X_Window win);
EAPI void e_hints_window_sticky_set(Ecore_X_Window win, int on);
EAPI int e_hints_window_sticky_isset(Ecore_X_Window win);
EAPI void e_hints_window_icon_name_get(Ecore_X_Window win);
EAPI void e_hints_root_cde_pretend(Ecore_X_Window root);
#endif
#endif

View File

@ -89,7 +89,6 @@ e_manager_new(Ecore_X_Window root)
if (h) man->handlers = evas_list_append(man->handlers, h);
h = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_CONFIGURE, _e_manager_cb_window_configure, man);
if (h) man->handlers = evas_list_append(man->handlers, h);
e_hints_root_cde_pretend(man->root);
return man;
}