From: Mikael Magnusson Date: Thu, 6 Nov 2014 03:50:55 +0000 (+0100) Subject: Merge branches 'wip/edges', 'mikabox/crap', 'mikabox/lock', 'mikabox/maybe' and ... X-Git-Url: http://git.openbox.org/?p=mikachu%2Fopenbox.git;a=commitdiff_plain;h=b40a509eb9e837995adfaf70998354eb59093880 Merge branches 'wip/edges', 'mikabox/crap', 'mikabox/lock', 'mikabox/maybe' and 'mikabox/personal' into wip/mikabox Conflicts: obt/prop.c openbox/client_list_combined_menu.c openbox/event.c --- b40a509eb9e837995adfaf70998354eb59093880 diff --cc obt/prop.c index 0cecccf,0cecccf,f1af19e,0cecccf,2099706..fad6f9b --- a/obt/prop.c +++ b/obt/prop.c @@@@@@ -191,6 -191,6 -191,7 -191,6 -192,7 +192,8 @@@@@@ void obt_prop_startup(void CREATE_(OB_CONFIG_FILE); CREATE_(OB_WM_ACTION_UNDECORATE); CREATE_(OB_WM_STATE_UNDECORATED); ++ ++ CREATE_(OB_WM_STATE_LOCKED); ++++ CREATE_(OB_LAST_DESKTOP); CREATE_(OB_CONTROL); CREATE_(OB_VERSION); CREATE_(OB_APP_ROLE); diff --cc obt/prop.h index acb5c95,acb5c95,6260a7a,acb5c95,62f86bd..6909b17 --- a/obt/prop.h +++ b/obt/prop.h @@@@@@ -208,8 -208,8 -208,9 -208,8 -208,9 +208,10 @@@@@@ typedef enum /* Openbox specific atoms */ ++++ OBT_PROP_OB_FOCUS, OBT_PROP_OB_WM_ACTION_UNDECORATE, OBT_PROP_OB_WM_STATE_UNDECORATED, ++ ++ OBT_PROP_OB_WM_STATE_LOCKED, OBT_PROP_OPENBOX_PID, /* this is depreecated in favour of ob_control */ OBT_PROP_OB_THEME, OBT_PROP_OB_CONFIG_FILE, diff --cc openbox/client_list_combined_menu.c index c26b6fa,c26b6fa,395d6d0,dfae21e,ee57270..9c98d93 --- a/openbox/client_list_combined_menu.c +++ b/openbox/client_list_combined_menu.c @@@@@@ -51,9 -51,9 -51,9 -51,15 -51,10 +51,16 @@@@@@ static gboolean self_update(ObMenuFram menu_clear_entries(menu); --- - for (desktop = 0; desktop < screen_num_desktops; desktop++) { +++ + for (desktop_it = 0; desktop_it < screen_num_desktops; desktop_it++) { gboolean empty = TRUE; gboolean onlyiconic = TRUE; ++++ gboolean noicons = TRUE; +++ + +++ + desktop = desktop_it; +++ + if (desktop == 0) +++ + desktop = screen_desktop; +++ + else if (desktop <= screen_desktop) +++ + desktop -= 1; menu_add_separator(menu, SEPARATOR, screen_desktop_names[desktop]); for (it = focus_order; it; it = g_list_next(it)) { diff --cc openbox/event.c index 59fc21c,243f207,1488cbf,855ad0f,9a2e844..fcbe8cd --- a/openbox/event.c +++ b/openbox/event.c @@@@@@ -1456,15 -1458,15 -1465,10 -1464,15 -1462,17 +1473,17 @@@@@@ static void event_handle_client(ObClien ob_debug_type(OB_DEBUG_APP_BUGS, "_NET_ACTIVE_WINDOW message for window %s is " "missing source indication", client->title); - if (!client->locked) - client_activate(client, FALSE, FALSE, TRUE, TRUE, - (e->xclient.data.l[0] == 0 || - e->xclient.data.l[0] == 2)); + /* TODO(danakj) This should use + (e->xclient.data.l[0] == 0 || + e->xclient.data.l[0] == 2) + to determine if a user requested the activation, however GTK+ + applications seem unable to make this distinction ever + (including panels such as xfce4-panel and gnome-panel). + So we are left just assuming all activations are from the user. + */ + client_activate(client, FALSE, FALSE, TRUE, TRUE, TRUE); ++++ } else if (msgtype == OBT_PROP_ATOM(OB_FOCUS)) { ++++ client_focus(client); } else if (msgtype == OBT_PROP_ATOM(NET_WM_MOVERESIZE)) { ob_debug("net_wm_moveresize for 0x%lx direction %d", client->window, e->xclient.data.l[2]); diff --cc openbox/screen.c index 60f3bf9,3b27bbc,b94ea84,e758ada,a6551cf..bde65c2 --- a/openbox/screen.c +++ b/openbox/screen.c @@@@@@ -295,8 -294,8 -294,9 -294,8 -294,9 +295,10 @@@@@@ gboolean screen_annex(void supported[i++] = OBT_PROP_ATOM(KDE_NET_WM_FRAME_STRUT); supported[i++] = OBT_PROP_ATOM(KDE_NET_WM_WINDOW_TYPE_OVERRIDE); ++++ supported[i++] = OBT_PROP_ATOM(OB_FOCUS); supported[i++] = OBT_PROP_ATOM(OB_WM_ACTION_UNDECORATE); supported[i++] = OBT_PROP_ATOM(OB_WM_STATE_UNDECORATED); ++ ++ supported[i++] = OBT_PROP_ATOM(OB_WM_STATE_LOCKED); supported[i++] = OBT_PROP_ATOM(OPENBOX_PID); supported[i++] = OBT_PROP_ATOM(OB_THEME); supported[i++] = OBT_PROP_ATOM(OB_CONFIG_FILE); @@@@@@ -501,12 -501,11 -502,11 -500,11 -506,12 +510,13 @@@@@@ void screen_resize(void /* this calls screen_update_areas(), which we need ! */ dock_configure(); ++++ edges_configure(); ---- for (it = client_list; it; it = g_list_next(it)) { ---- client_move_onscreen(it->data, FALSE); ---- client_reconfigure(it->data, FALSE); ---- } ++++ // bug: this is done in screen_update_areas() already ++++ // for (it = client_list; it; it = g_list_next(it)) { ++++ // client_move_onscreen(it->data, FALSE); ++++ // client_reconfigure(it->data, FALSE); ++++ // } } void screen_set_num_desktops(guint num)