Beginning of WM hints abstraction, NetWM hints

SVN revision: 12644
This commit is contained in:
xcomputerman 2004-12-30 05:37:53 +00:00 committed by xcomputerman
parent 2a9e555216
commit bafe43ebaf
4 changed files with 23 additions and 3 deletions

View File

@ -36,7 +36,8 @@ e_focus.h \
e_place.h \
e_resist.h \
e_startup.h \
e_iconify.h
e_iconify.h \
e_hints.h
enlightenment_SOURCES = \
@ -68,6 +69,7 @@ e_place.c \
e_resist.c \
e_startup.c \
e_iconify.c \
e_hints.c \
$(ENLIGHTENMENTHEADERS)
enlightenment_LDFLAGS = -export-dynamic @e_libs@ @dlopen_libs@

View File

@ -385,7 +385,9 @@ e_border_focus_set(E_Border *bd, int focus, int set)
if (bd->client.icccm.take_focus)
{
printf("take focus!\n");
ecore_x_icccm_take_focus_send(bd->client.win, ECORE_X_CURRENT_TIME);
/*
ecore_x_icccm_take_focus_send(bd->client.win, ECORE_X_CURRENT_TIME);*/
e_hints_active_window_set(bd->client.win);
ecore_x_window_focus(bd->client.win);
}
else

View File

@ -120,6 +120,18 @@ struct _E_Border
unsigned int pid : 1;
unsigned int desktop : 1;
} fetch;
/* NetWM Window state */
struct {
unsigned char modal : 1;
unsigned char maximized_v : 1;
unsigned char maximized_h : 1;
unsigned char skip_taskbar : 1;
unsigned char skip_pager : 1;
unsigned char fullscreen : 1;
unsigned char stacking : 2; /* 0 = None, 1 = Above, 2 = Below */
} state;
} netwm;
Ecore_X_Window_Attributes initial_attributes;
} client;
@ -133,6 +145,7 @@ struct _E_Border
unsigned char re_manage : 1;
unsigned char shading : 1;
unsigned char shaded : 1;
unsigned char sticky : 1;
unsigned char maximized : 1;
unsigned char iconic : 1;

View File

@ -112,7 +112,7 @@ main(int argc, char **argv)
_e_main_shutdown(-1);
}
/* an intle enterer to be called before all others */
/* an idle enterer to be called before all others */
_e_main_idle_enterer_before = ecore_idle_enterer_add(_e_main_cb_idler_before, NULL);
/* init x */
@ -127,6 +127,9 @@ main(int argc, char **argv)
ecore_x_grab();
ecore_x_io_error_handler_set(_e_main_cb_x_fatal, NULL);
/* Init window manager hints */
e_hints_init();
/* setup menu handlers etc. FIXME: check return value */
e_menu_init();