forked from enlightenment/enlightenment
parent
f6dc37a244
commit
51c5110b2c
|
@ -411,21 +411,24 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map, int internal)
|
|||
bd->client.netwm.fetch.state = 1;
|
||||
}
|
||||
}
|
||||
/* loop to check for own atoms */
|
||||
/* other misc atoms */
|
||||
for (i = 0; i < at_num; i++)
|
||||
{
|
||||
/* loop to check for own atoms */
|
||||
if (atoms[i] == E_ATOM_WINDOW_STATE)
|
||||
{
|
||||
bd->client.e.fetch.state = 1;
|
||||
}
|
||||
}
|
||||
/* loop to check for qtopia atoms */
|
||||
for (i = 0; i < at_num; i++)
|
||||
{
|
||||
/* loop to check for qtopia atoms */
|
||||
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;
|
||||
/* loop to check for vkbd atoms */
|
||||
else if (atoms[i] == _E_VIRTUAL_KEYBOARD_STATE)
|
||||
bd->client.vkbd.fetch.state = 1;
|
||||
else if (atoms[i] == _E_VIRTUAL_KEYBOARD)
|
||||
bd->client.vkbd.fetch.vkbd = 1;
|
||||
}
|
||||
free(atoms);
|
||||
}
|
||||
|
@ -3998,6 +4001,16 @@ _e_border_cb_window_property(void *data, int ev_type, void *ev)
|
|||
bd->client.qtopia.fetch.soft_menus = 1;
|
||||
bd->changed = 1;
|
||||
}
|
||||
else if (e->atom == _E_VIRTUAL_KEYBOARD_STATE)
|
||||
{
|
||||
bd->client.vkbd.fetch.state = 1;
|
||||
bd->changed = 1;
|
||||
}
|
||||
else if (e->atom == _E_VIRTUAL_KEYBOARD)
|
||||
{
|
||||
bd->client.vkbd.fetch.vkbd = 1;
|
||||
bd->changed = 1;
|
||||
}
|
||||
/*
|
||||
else if (e->atom == ECORE_X_ATOM_NET_WM_USER_TIME)
|
||||
{
|
||||
|
@ -5492,6 +5505,18 @@ _e_border_eval(E_Border *bd)
|
|||
bd->client.qtopia.fetch.soft_menus = 0;
|
||||
rem_change = 1;
|
||||
}
|
||||
if (bd->client.vkbd.fetch.state)
|
||||
{
|
||||
e_hints_window_virtual_keyboard_state_get(bd);
|
||||
bd->client.vkbd.fetch.state = 0;
|
||||
rem_change = 1;
|
||||
}
|
||||
if (bd->client.vkbd.fetch.vkbd)
|
||||
{
|
||||
e_hints_window_virtual_keyboard_get(bd);
|
||||
bd->client.vkbd.fetch.vkbd = 0;
|
||||
rem_change = 1;
|
||||
}
|
||||
if (bd->changes.shape)
|
||||
{
|
||||
Ecore_X_Rectangle *rects;
|
||||
|
@ -5856,6 +5881,7 @@ _e_border_eval(E_Border *bd)
|
|||
}
|
||||
}
|
||||
|
||||
_e_border_hook_call(E_BORDER_HOOK_EVAL_PRE_POST_FETCH, bd);
|
||||
_e_border_hook_call(E_BORDER_HOOK_EVAL_POST_FETCH, bd);
|
||||
_e_border_hook_call(E_BORDER_HOOK_EVAL_PRE_BORDER_ASSIGN, bd);
|
||||
|
||||
|
|
|
@ -81,6 +81,7 @@ typedef enum _E_Window_Placement
|
|||
typedef enum _E_Border_Hook_Point
|
||||
{
|
||||
E_BORDER_HOOK_EVAL_PRE_FETCH,
|
||||
E_BORDER_HOOK_EVAL_PRE_POST_FETCH,
|
||||
E_BORDER_HOOK_EVAL_POST_FETCH,
|
||||
E_BORDER_HOOK_EVAL_PRE_BORDER_ASSIGN,
|
||||
E_BORDER_HOOK_EVAL_POST_BORDER_ASSIGN,
|
||||
|
@ -347,6 +348,14 @@ struct _E_Border
|
|||
unsigned char soft_menu : 1;
|
||||
unsigned char soft_menus : 1;
|
||||
} qtopia;
|
||||
struct {
|
||||
struct {
|
||||
unsigned char state : 1;
|
||||
unsigned char vkbd : 1;
|
||||
} fetch;
|
||||
Ecore_X_Atom state;
|
||||
unsigned char vkbd : 1;
|
||||
} vkbd;
|
||||
|
||||
Ecore_X_Window_Attributes initial_attributes;
|
||||
} client;
|
||||
|
@ -407,7 +416,9 @@ struct _E_Border
|
|||
unsigned int lock_focus_in : 1; /*DONE*/
|
||||
unsigned int lock_focus_out : 1; /*DONE*/
|
||||
unsigned int lock_life : 1; /*DONE*/
|
||||
|
||||
unsigned int internal : 1;
|
||||
unsigned int stolen : 1;
|
||||
|
||||
Ecore_Evas *internal_ecore_evas;
|
||||
|
||||
|
|
|
@ -3,8 +3,14 @@
|
|||
*/
|
||||
#include "e.h"
|
||||
|
||||
Ecore_X_Atom _QTOPIA_SOFT_MENU = 0;
|
||||
Ecore_X_Atom _QTOPIA_SOFT_MENUS = 0;
|
||||
EAPI Ecore_X_Atom _QTOPIA_SOFT_MENU = 0;
|
||||
EAPI Ecore_X_Atom _QTOPIA_SOFT_MENUS = 0;
|
||||
EAPI Ecore_X_Atom _E_VIRTUAL_KEYBOARD = 0;
|
||||
EAPI Ecore_X_Atom _E_VIRTUAL_KEYBOARD_STATE = 0;
|
||||
EAPI Ecore_X_Atom _E_VIRTUAL_KEYBOARD_OFF = 0;
|
||||
EAPI Ecore_X_Atom _E_VIRTUAL_KEYBOARD_ON = 0;
|
||||
EAPI Ecore_X_Atom _E_VIRTUAL_KEYBOARD_ALPHA = 0;
|
||||
EAPI Ecore_X_Atom _E_VIRTUAL_KEYBOARD_NUMERIC = 0;
|
||||
|
||||
static Ecore_X_Atom gnome_atom = 0;
|
||||
static Ecore_X_Atom enlightenment_comms = 0;
|
||||
|
@ -20,16 +26,28 @@ e_hints_init(void)
|
|||
"_QTOPIA_SOFT_MENUS",
|
||||
"GNOME_SM_PROXY",
|
||||
"ENLIGHTENMENT_COMMS",
|
||||
"ENLIGHTENMENT_VERSION"
|
||||
"ENLIGHTENMENT_VERSION",
|
||||
"_E_VIRTUAL_KEYBOARD",
|
||||
"_E_VIRTUAL_KEYBOARD_STATE",
|
||||
"_E_VIRTUAL_KEYBOARD_OFF",
|
||||
"_E_VIRTUAL_KEYBOARD_ON",
|
||||
"_E_VIRTUAL_KEYBOARD_ALPHA",
|
||||
"_E_VIRTUAL_KEYBOARD_NUMERIC"
|
||||
};
|
||||
Ecore_X_Atom atoms[5];
|
||||
Ecore_X_Atom atoms[11];
|
||||
|
||||
ecore_x_atoms_get(atom_names, 5, atoms);
|
||||
ecore_x_atoms_get(atom_names, 11, atoms);
|
||||
_QTOPIA_SOFT_MENU = atoms[0];
|
||||
_QTOPIA_SOFT_MENUS = atoms[1];
|
||||
gnome_atom = atoms[2];
|
||||
enlightenment_comms = atoms[3];
|
||||
enlightenment_version = atoms[4];
|
||||
_E_VIRTUAL_KEYBOARD = atoms[5];
|
||||
_E_VIRTUAL_KEYBOARD_STATE = atoms[6];
|
||||
_E_VIRTUAL_KEYBOARD_OFF = atoms[7];
|
||||
_E_VIRTUAL_KEYBOARD_ON = atoms[8];
|
||||
_E_VIRTUAL_KEYBOARD_ALPHA = atoms[9];
|
||||
_E_VIRTUAL_KEYBOARD_NUMERIC = atoms[10];
|
||||
|
||||
roots = ecore_x_window_root_list(&num);
|
||||
if (roots)
|
||||
|
@ -1379,6 +1397,25 @@ e_hints_window_qtopia_soft_menus_get(E_Border *bd)
|
|||
bd->client.qtopia.soft_menus = 0;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_hints_window_virtual_keyboard_state_get(E_Border *bd)
|
||||
{
|
||||
if (!ecore_x_window_prop_atom_get(bd->client.win, _E_VIRTUAL_KEYBOARD_STATE,
|
||||
&(bd->client.vkbd.state), 1))
|
||||
bd->client.vkbd.state = 0;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_hints_window_virtual_keyboard_get(E_Border *bd)
|
||||
{
|
||||
unsigned int val;
|
||||
|
||||
if (ecore_x_window_prop_card32_get(bd->client.win, _E_VIRTUAL_KEYBOARD, &val, 1))
|
||||
bd->client.vkbd.vkbd = val;
|
||||
else
|
||||
bd->client.vkbd.vkbd = 0;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_hints_openoffice_gnome_fake(Ecore_X_Window root)
|
||||
{
|
||||
|
|
|
@ -48,11 +48,20 @@ 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_window_virtual_keyboard_state_get(E_Border *bd);
|
||||
EAPI void e_hints_window_virtual_keyboard_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;
|
||||
extern EAPI Ecore_X_Atom _E_VIRTUAL_KEYBOARD;
|
||||
extern EAPI Ecore_X_Atom _E_VIRTUAL_KEYBOARD_STATE;
|
||||
extern EAPI Ecore_X_Atom _E_VIRTUAL_KEYBOARD_OFF;
|
||||
extern EAPI Ecore_X_Atom _E_VIRTUAL_KEYBOARD_ON;
|
||||
extern EAPI Ecore_X_Atom _E_VIRTUAL_KEYBOARD_ALPHA;
|
||||
extern EAPI Ecore_X_Atom _E_VIRTUAL_KEYBOARD_NUMERIC;
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -79,12 +79,13 @@ e_init_show(void)
|
|||
if (version) ver = strdup(e_util_filename_escape(version));
|
||||
else ver = strdup("XvX");
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/enlightenment_init %s %i %i %s %s",
|
||||
snprintf(buf, sizeof(buf), "%s/enlightenment_init \'%s\' \'%i\' \'%i\' \'%s\' \'%s\'",
|
||||
e_prefix_bin_get(),
|
||||
theme,
|
||||
e_canvas_engine_decide(e_config->evas_engine_init),
|
||||
e_config->font_hinting,
|
||||
tit, ver);
|
||||
printf("RUN INIT: %s\n", buf);
|
||||
free(theme);
|
||||
free(tit);
|
||||
free(ver);
|
||||
|
|
Loading…
Reference in New Issue