add _NET_WM_STATE_HIDDEN to _NET_SUPPORTED

2002-02-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (set_supported_hint): add _NET_WM_STATE_HIDDEN
	to _NET_SUPPORTED

	* src/keybindings.c (meta_set_keybindings_disabled): put in header
	file, to fix warning.

	* src/display.c (meta_display_open): add _NET_WM_STATE_HIDDEN atom

	* src/window.c (set_net_wm_state): set _NET_WM_STATE_HIDDEN for
	shaded and minimized windows
	(meta_window_show): call set_net_wm_state() if we map the window
	or frame
	(meta_window_hide): call set_net_wm_state() if we unmap the window
	or frame
This commit is contained in:
Havoc Pennington 2002-02-09 04:50:58 +00:00 committed by Havoc Pennington
parent bd712d7f8f
commit 844a8ac13f
6 changed files with 36 additions and 5 deletions

View File

@ -1,3 +1,20 @@
2002-02-08 Havoc Pennington <hp@pobox.com>
* src/screen.c (set_supported_hint): add _NET_WM_STATE_HIDDEN
to _NET_SUPPORTED
* src/keybindings.c (meta_set_keybindings_disabled): put in header
file, to fix warning.
* src/display.c (meta_display_open): add _NET_WM_STATE_HIDDEN atom
* src/window.c (set_net_wm_state): set _NET_WM_STATE_HIDDEN for
shaded and minimized windows
(meta_window_show): call set_net_wm_state() if we map the window
or frame
(meta_window_hide): call set_net_wm_state() if we unmap the window
or frame
2002-02-08 Havoc Pennington <hp@pobox.com> 2002-02-08 Havoc Pennington <hp@pobox.com>
* src/window.c (set_net_wm_state): only set skip pager/tasklist if * src/window.c (set_net_wm_state): only set skip pager/tasklist if

View File

@ -143,7 +143,8 @@ meta_display_open (const char *name)
"_NET_WM_STRUT", "_NET_WM_STRUT",
"_WIN_HINTS", "_WIN_HINTS",
"_METACITY_RELOAD_THEME_MESSAGE", "_METACITY_RELOAD_THEME_MESSAGE",
"_METACITY_SET_KEYBINDINGS_MESSAGE" "_METACITY_SET_KEYBINDINGS_MESSAGE",
"_NET_WM_STATE_HIDDEN"
}; };
Atom atoms[G_N_ELEMENTS(atom_names)]; Atom atoms[G_N_ELEMENTS(atom_names)];
@ -241,6 +242,7 @@ meta_display_open (const char *name)
display->atom_win_hints = atoms[46]; display->atom_win_hints = atoms[46];
display->atom_metacity_reload_theme_message = atoms[47]; display->atom_metacity_reload_theme_message = atoms[47];
display->atom_metacity_set_keybindings_message = atoms[48]; display->atom_metacity_set_keybindings_message = atoms[48];
display->atom_net_wm_state_hidden = atoms[49];
/* Offscreen unmapped window used for _NET_SUPPORTING_WM_CHECK, /* Offscreen unmapped window used for _NET_SUPPORTING_WM_CHECK,
* created in screen_new * created in screen_new

View File

@ -108,6 +108,7 @@ struct _MetaDisplay
Atom atom_win_hints; Atom atom_win_hints;
Atom atom_metacity_reload_theme_message; Atom atom_metacity_reload_theme_message;
Atom atom_metacity_set_keybindings_message; Atom atom_metacity_set_keybindings_message;
Atom atom_net_wm_state_hidden;
/* This is the actual window from focus events, /* This is the actual window from focus events,
* not the one we last set * not the one we last set

View File

@ -35,6 +35,7 @@ void meta_window_ungrab_all_keys (MetaWindow *window);
void meta_display_process_key_event (MetaDisplay *display, void meta_display_process_key_event (MetaDisplay *display,
MetaWindow *window, MetaWindow *window,
XEvent *event); XEvent *event);
void meta_set_keybindings_disabled (gboolean setting);
#endif #endif

View File

@ -78,7 +78,7 @@ set_wm_check_hint (MetaScreen *screen)
static int static int
set_supported_hint (MetaScreen *screen) set_supported_hint (MetaScreen *screen)
{ {
#define N_SUPPORTED 23 #define N_SUPPORTED 24
#define N_WIN_SUPPORTED 1 #define N_WIN_SUPPORTED 1
Atom atoms[N_SUPPORTED]; Atom atoms[N_SUPPORTED];
@ -105,6 +105,7 @@ set_supported_hint (MetaScreen *screen)
atoms[20] = screen->display->atom_net_wm_state_skip_pager; atoms[20] = screen->display->atom_net_wm_state_skip_pager;
atoms[21] = screen->display->atom_net_wm_icon; atoms[21] = screen->display->atom_net_wm_icon;
atoms[22] = screen->display->atom_net_wm_moveresize; atoms[22] = screen->display->atom_net_wm_moveresize;
atoms[23] = screen->display->atom_net_wm_state_hidden;
XChangeProperty (screen->display->xdisplay, screen->xroot, XChangeProperty (screen->display->xdisplay, screen->xroot,
screen->display->atom_net_supported, screen->display->atom_net_supported,

View File

@ -845,6 +845,11 @@ set_net_wm_state (MetaWindow *window)
data[i] = window->display->atom_net_wm_state_maximized_vert; data[i] = window->display->atom_net_wm_state_maximized_vert;
++i; ++i;
} }
if (window->shaded || window->minimized)
{
data[i] = window->display->atom_net_wm_state_hidden;
++i;
}
meta_verbose ("Setting _NET_WM_STATE with %d atoms\n", i); meta_verbose ("Setting _NET_WM_STATE with %d atoms\n", i);
@ -1106,6 +1111,7 @@ meta_window_show (MetaWindow *window)
"Frame actually needs map\n"); "Frame actually needs map\n");
window->frame->mapped = TRUE; window->frame->mapped = TRUE;
meta_ui_map_frame (window->screen->ui, window->frame->xwindow); meta_ui_map_frame (window->screen->ui, window->frame->xwindow);
did_show = TRUE;
} }
if (window->shaded) if (window->shaded)
@ -1150,7 +1156,6 @@ meta_window_show (MetaWindow *window)
} }
} }
if (did_placement) if (did_placement)
{ {
if (window->xtransient_for != None) if (window->xtransient_for != None)
@ -1179,6 +1184,8 @@ meta_window_show (MetaWindow *window)
if (did_show) if (did_show)
{ {
set_net_wm_state (window);
if (window->has_struts) if (window->has_struts)
{ {
meta_topic (META_DEBUG_WORKAREA, meta_topic (META_DEBUG_WORKAREA,
@ -1230,6 +1237,8 @@ meta_window_hide (MetaWindow *window)
if (did_hide) if (did_hide)
{ {
set_net_wm_state (window);
if (window->has_struts) if (window->has_struts)
{ {
meta_topic (META_DEBUG_WORKAREA, meta_topic (META_DEBUG_WORKAREA,