forked from enlightenment/enlightenment
support qtopia hint flags and also multiple netwm types
SVN revision: 33952
This commit is contained in:
parent
5551c78397
commit
1cf57c6566
|
@ -419,6 +419,14 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map, int internal)
|
|||
bd->client.e.fetch.state = 1;
|
||||
}
|
||||
}
|
||||
/* loop to check for qtopia atoms */
|
||||
for (i = 0; i < at_num; i++)
|
||||
{
|
||||
if (atoms[i] == _QTOPIA_SOFT_MENU)
|
||||
bd->client.qtopia.fetch.soft_menu = 1;
|
||||
else if (atoms[i] == _QTOPIA_SOFT_MENUS)
|
||||
bd->client.qtopia.fetch.soft_menus = 1;
|
||||
}
|
||||
free(atoms);
|
||||
}
|
||||
}
|
||||
|
@ -3973,6 +3981,16 @@ _e_border_cb_window_property(void *data, int ev_type, void *ev)
|
|||
bd->client.netwm.fetch.icon = 1;
|
||||
bd->changed = 1;
|
||||
}
|
||||
else if (e->atom == _QTOPIA_SOFT_MENU)
|
||||
{
|
||||
bd->client.qtopia.fetch.soft_menu = 1;
|
||||
bd->changed = 1;
|
||||
}
|
||||
else if (e->atom == _QTOPIA_SOFT_MENUS)
|
||||
{
|
||||
bd->client.qtopia.fetch.soft_menus = 1;
|
||||
bd->changed = 1;
|
||||
}
|
||||
/*
|
||||
else if (e->atom == ECORE_X_ATOM_NET_WM_USER_TIME)
|
||||
{
|
||||
|
@ -5454,6 +5472,18 @@ _e_border_eval(E_Border *bd)
|
|||
}
|
||||
bd->client.netwm.fetch.strut = 0;
|
||||
}
|
||||
if (bd->client.qtopia.fetch.soft_menu)
|
||||
{
|
||||
e_hints_window_qtopia_soft_menu_get(bd);
|
||||
bd->client.qtopia.fetch.soft_menu = 0;
|
||||
rem_change = 1;
|
||||
}
|
||||
if (bd->client.qtopia.fetch.soft_menus)
|
||||
{
|
||||
e_hints_window_qtopia_soft_menus_get(bd);
|
||||
bd->client.qtopia.fetch.soft_menus = 0;
|
||||
rem_change = 1;
|
||||
}
|
||||
if (bd->changes.shape)
|
||||
{
|
||||
Ecore_X_Rectangle *rects;
|
||||
|
@ -6842,6 +6872,7 @@ _e_border_eval(E_Border *bd)
|
|||
e_object_ref(E_OBJECT(bd));
|
||||
ecore_event_add(E_EVENT_BORDER_PROPERTY, event, _e_border_event_border_property_free, NULL);
|
||||
}
|
||||
_e_border_hook_call(E_BORDER_HOOK_EVAL_END, bd);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -86,6 +86,7 @@ typedef enum _E_Border_Hook_Point
|
|||
E_BORDER_HOOK_EVAL_POST_BORDER_ASSIGN,
|
||||
E_BORDER_HOOK_EVAL_PRE_NEW_BORDER,
|
||||
E_BORDER_HOOK_EVAL_POST_NEW_BORDER,
|
||||
E_BORDER_HOOK_EVAL_END,
|
||||
} E_Border_Hook_Point;
|
||||
|
||||
typedef struct _E_Border E_Border;
|
||||
|
@ -336,6 +337,16 @@ struct _E_Border
|
|||
unsigned char state : 1;
|
||||
} fetch;
|
||||
} e;
|
||||
|
||||
struct {
|
||||
struct {
|
||||
unsigned char soft_menu : 1;
|
||||
unsigned char soft_menus : 1;
|
||||
} fetch;
|
||||
|
||||
unsigned char soft_menu : 1;
|
||||
unsigned char soft_menus : 1;
|
||||
} qtopia;
|
||||
|
||||
Ecore_X_Window_Attributes initial_attributes;
|
||||
} client;
|
||||
|
|
|
@ -3,12 +3,17 @@
|
|||
*/
|
||||
#include "e.h"
|
||||
|
||||
Ecore_X_Atom _QTOPIA_SOFT_MENU = 0;
|
||||
Ecore_X_Atom _QTOPIA_SOFT_MENUS = 0;
|
||||
|
||||
EAPI void
|
||||
e_hints_init(void)
|
||||
{
|
||||
Ecore_X_Window *roots = NULL;
|
||||
int num;
|
||||
|
||||
_QTOPIA_SOFT_MENU = ecore_x_atom_get("_QTOPIA_SOFT_MENU");
|
||||
_QTOPIA_SOFT_MENUS = ecore_x_atom_get("_QTOPIA_SOFT_MENUS");
|
||||
roots = ecore_x_window_root_list(&num);
|
||||
if (roots)
|
||||
{
|
||||
|
@ -1334,6 +1339,28 @@ e_hints_window_e_state_set(E_Border *bd)
|
|||
/* TODO */
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_hints_window_qtopia_soft_menu_get(E_Border *bd)
|
||||
{
|
||||
int val;
|
||||
|
||||
if (ecore_x_window_prop_card32_get(bd->client.win, _QTOPIA_SOFT_MENU, &val, 1))
|
||||
bd->client.qtopia.soft_menu = val;
|
||||
else
|
||||
bd->client.qtopia.soft_menu = 0;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_hints_window_qtopia_soft_menus_get(E_Border *bd)
|
||||
{
|
||||
int val;
|
||||
|
||||
if (ecore_x_window_prop_card32_get(bd->client.win, _QTOPIA_SOFT_MENUS, &val, 1))
|
||||
bd->client.qtopia.soft_menus = val;
|
||||
else
|
||||
bd->client.qtopia.soft_menus = 0;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_hints_openoffice_gnome_fake(Ecore_X_Window root)
|
||||
{
|
||||
|
@ -1354,3 +1381,4 @@ e_hints_openoffice_kde_fake(Ecore_X_Window root)
|
|||
win2 = ecore_x_window_new(root, -20, -20, 1, 1);
|
||||
ecore_x_netwm_wm_identify(root, win2, "KWin");
|
||||
}
|
||||
|
||||
|
|
|
@ -45,8 +45,14 @@ EAPI void e_hints_window_desktop_set(E_Border *bd);
|
|||
EAPI void e_hints_window_e_state_set(E_Border *bd);
|
||||
EAPI void e_hints_window_e_state_get(E_Border *bd);
|
||||
|
||||
EAPI void e_hints_window_qtopia_soft_menu_get(E_Border *bd);
|
||||
EAPI void e_hints_window_qtopia_soft_menus_get(E_Border *bd);
|
||||
|
||||
EAPI void e_hints_openoffice_gnome_fake(Ecore_X_Window root);
|
||||
EAPI void e_hints_openoffice_kde_fake(Ecore_X_Window root);
|
||||
|
||||
|
||||
extern EAPI Ecore_X_Atom _QTOPIA_SOFT_MENU;
|
||||
extern EAPI Ecore_X_Atom _QTOPIA_SOFT_MENUS;
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue