X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fscreen.c;h=b305e68535726d753f141432e4c4e9b9b92f735a;hb=c1a5ad45a8f02cd0728852c3765f411d7b12dec3;hp=8fdbe096f6b577c6035d116b27411a24622e6ab5;hpb=fde5ca09e9ea7ab08b6dc06723f19bad6d03af22;p=chaz%2Fopenbox diff --git a/openbox/screen.c b/openbox/screen.c index 8fdbe096..b305e685 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -157,6 +157,7 @@ gboolean screen_annex() XSetWindowAttributes attrib; pid_t pid; gint i, num_support; + Atom *prop_atoms_start, *wm_supported_pos; gulong *supported; /* create the netwm support window */ @@ -205,12 +206,15 @@ gboolean screen_annex() window, screen_support_win); /* set the _NET_SUPPORTED_ATOMS hint */ - num_support = 55; -#ifdef SYNC - num_support += 2; -#endif + + /* this is all the atoms after net_supported in the prop_atoms struct */ + prop_atoms_start = (Atom*)&prop_atoms; + wm_supported_pos = (Atom*)&(prop_atoms.net_supported); + num_support = sizeof(prop_atoms) / sizeof(Atom) - + (wm_supported_pos - prop_atoms_start) - 1; i = 0; supported = g_new(gulong, num_support); + supported[i++] = prop_atoms.net_supporting_wm_check; supported[i++] = prop_atoms.net_wm_full_placement; supported[i++] = prop_atoms.net_current_desktop; supported[i++] = prop_atoms.net_number_of_desktops; @@ -230,6 +234,9 @@ gboolean screen_annex() supported[i++] = prop_atoms.net_wm_visible_icon_name; supported[i++] = prop_atoms.net_wm_desktop; supported[i++] = prop_atoms.net_wm_strut; + supported[i++] = prop_atoms.net_wm_strut_partial; + supported[i++] = prop_atoms.net_wm_icon; + supported[i++] = prop_atoms.net_wm_icon_geometry; supported[i++] = prop_atoms.net_wm_window_type; supported[i++] = prop_atoms.net_wm_window_type_desktop; supported[i++] = prop_atoms.net_wm_window_type_dock; @@ -265,11 +272,20 @@ gboolean screen_annex() supported[i++] = prop_atoms.net_wm_moveresize; supported[i++] = prop_atoms.net_wm_user_time; supported[i++] = prop_atoms.net_frame_extents; + supported[i++] = prop_atoms.net_startup_id; #ifdef SYNC supported[i++] = prop_atoms.net_wm_sync_request; supported[i++] = prop_atoms.net_wm_sync_request_counter; #endif - supported[i++] = prop_atoms.ob_wm_state_undecorated; + + supported[i++] = prop_atoms.kde_wm_change_state; + supported[i++] = prop_atoms.kde_net_wm_frame_strut; + supported[i++] = prop_atoms.kde_net_wm_window_type_override; + + supported[i++] = prop_atoms.openbox_wm_state_undecorated; + supported[i++] = prop_atoms.openbox_pid; + supported[i++] = prop_atoms.openbox_rc; + supported[i++] = prop_atoms.openbox_control; g_assert(i == num_support); PROP_SETA32(RootWindow(ob_display, ob_screen),