From 12653a4153bccd5d9a46998753e7a1bc17479505 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 11 Jan 2010 12:47:59 -0500 Subject: Redraw the focus cycle popup when the list of focusable windows changes, rather than closing it --- openbox/screen.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'openbox/screen.c') diff --git a/openbox/screen.c b/openbox/screen.c index d88be432..075d3074 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -708,7 +708,8 @@ void screen_set_desktop(guint num, gboolean dofocus) for (it = stacking_list; it; it = g_list_next(it)) { if (WINDOW_IS_CLIENT(it->data)) { ObClient *c = it->data; - client_show(c); + if (client_show(c)) + focus_cycle_add(c); } } @@ -719,8 +720,7 @@ void screen_set_desktop(guint num, gboolean dofocus) if (WINDOW_IS_CLIENT(it->data)) { ObClient *c = it->data; if (client_hide(c)) { - /* in the middle of cycling..? kill it. */ - focus_cycle_stop(c); + focus_cycle_remove(c); if (c == focus_client) { /* c was focused and we didn't do fallback clearly so make -- cgit v1.2.3 From 91af4d5bc9e04b766735aaa3ac098233ba103959 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 11 Jan 2010 13:42:50 -0500 Subject: Add _OB_VERSION and _OB_APP_ROLE/CLASS/NAME/TYPE Add _OB_VERSION property on the root window. Change _OB_ROLE/CLASS/NAME to _OB_APP_*. Add _OB_APP_TYPE which has a string for the type chosen for the window on mapping by Openbox. Adjust the rc.xml to match these changes. --- openbox/screen.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'openbox/screen.c') diff --git a/openbox/screen.c b/openbox/screen.c index 075d3074..5ae07907 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -303,15 +303,20 @@ gboolean screen_annex(void) supported[i++] = prop_atoms.ob_theme; supported[i++] = prop_atoms.ob_config_file; supported[i++] = prop_atoms.ob_control; - supported[i++] = prop_atoms.ob_role; - supported[i++] = prop_atoms.ob_name; - supported[i++] = prop_atoms.ob_class; + supported[i++] = prop_atoms.ob_version; + supported[i++] = prop_atoms.ob_app_role; + supported[i++] = prop_atoms.ob_app_name; + supported[i++] = prop_atoms.ob_app_class; + supported[i++] = prop_atoms.ob_app_type; g_assert(i == num_support); PROP_SETA32(RootWindow(ob_display, ob_screen), net_supported, atom, supported, num_support); g_free(supported); + PROP_SETS(RootWindow(ob_display, ob_screen), ob_version, + OB_VERSION); + screen_tell_ksplash(); return TRUE; -- cgit v1.2.3 From 14180a6b0dee05e73fd193db28fd94b4ef3046d1 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 11 Jan 2010 15:13:55 -0500 Subject: More work on refreshing the focus cycle dialog when windows are added/removed from the valid focus order --- openbox/screen.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'openbox/screen.c') diff --git a/openbox/screen.c b/openbox/screen.c index 5ae07907..55fd58d6 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -713,8 +713,7 @@ void screen_set_desktop(guint num, gboolean dofocus) for (it = stacking_list; it; it = g_list_next(it)) { if (WINDOW_IS_CLIENT(it->data)) { ObClient *c = it->data; - if (client_show(c)) - focus_cycle_add(c); + client_show(c); } } @@ -725,8 +724,6 @@ void screen_set_desktop(guint num, gboolean dofocus) if (WINDOW_IS_CLIENT(it->data)) { ObClient *c = it->data; if (client_hide(c)) { - focus_cycle_remove(c); - if (c == focus_client) { /* c was focused and we didn't do fallback clearly so make sure openbox doesnt still consider the window focused. @@ -742,6 +739,8 @@ void screen_set_desktop(guint num, gboolean dofocus) } } + focus_cycle_addremove(NULL, TRUE); + event_end_ignore_all_enters(ignore_start); if (event_curtime != CurrentTime) -- cgit v1.2.3