summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-14 22:58:08 +0000
committerDana Jansens <danakj@orodu.net>2007-05-14 22:58:08 +0000
commitec21f8c9ec160466ba0a1aa662da8af5cb6a3c9b (patch)
tree59afd3532862e742070be53897fcd0982ce1bbaa
parent1b2c6f609d202cc7d16d11cf06244c00b670a291 (diff)
yay for simplifying code. if we check for errors we dont need the "focus_tried" stuff
-rw-r--r--openbox/client.c37
-rw-r--r--openbox/client.h4
-rw-r--r--openbox/focus.c52
3 files changed, 4 insertions, 89 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 888e532b..e7711692 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -65,7 +65,6 @@ typedef struct
GList *client_list = NULL;
static GSList *client_destroy_notifies = NULL;
-static GSList *client_hide_notifies = NULL;
static void client_get_all(ObClient *self, gboolean real);
static void client_toggle_border(ObClient *self, gboolean show);
@@ -139,29 +138,6 @@ void client_remove_destroy_notify(ObClientCallback func)
}
}
-void client_add_hide_notify(ObClientCallback func, gpointer data)
-{
- ClientCallback *d = g_new(ClientCallback, 1);
- d->func = func;
- d->data = data;
- client_hide_notifies = g_slist_prepend(client_hide_notifies, d);
-}
-
-void client_remove_hide_notify(ObClientCallback func)
-{
- GSList *it;
-
- for (it = client_hide_notifies; it; it = g_slist_next(it)) {
- ClientCallback *d = it->data;
- if (d->func == func) {
- g_free(d);
- client_hide_notifies =
- g_slist_delete_link(client_hide_notifies, it);
- break;
- }
- }
-}
-
void client_set_list()
{
Window *windows, *win_it;
@@ -2442,12 +2418,9 @@ void client_show(ObClient *self)
void client_hide(ObClient *self)
{
- if (!client_should_show(self)) {
+ if (!client_should_show(self))
frame_hide(self->frame);
- client_call_notifies(self, client_hide_notifies);
- }
-
/* According to the ICCCM (sec 4.1.3.1) when a window is not visible, it
needs to be in IconicState. This includes when it is on another
desktop!
@@ -2458,15 +2431,11 @@ void client_hide(ObClient *self)
void client_showhide(ObClient *self)
{
- if (client_should_show(self)) {
+ if (client_should_show(self))
frame_show(self->frame);
- }
- else {
+ else
frame_hide(self->frame);
- client_call_notifies(self, client_hide_notifies);
- }
-
/* According to the ICCCM (sec 4.1.3.1) when a window is not visible, it
needs to be in IconicState. This includes when it is on another
desktop!
diff --git a/openbox/client.h b/openbox/client.h
index c4815d4c..aaebceaa 100644
--- a/openbox/client.h
+++ b/openbox/client.h
@@ -314,10 +314,6 @@ typedef void (*ObClientCallback)(ObClient *client, gpointer data);
void client_add_destroy_notify(ObClientCallback func, gpointer data);
void client_remove_destroy_notify(ObClientCallback func);
-/*! Get notified when the client is hidden */
-void client_add_hide_notify(ObClientCallback func, gpointer data);
-void client_remove_hide_notify(ObClientCallback func);
-
/*! Manages all existing windows */
void client_manage_all();
/*! Manages a given window
diff --git a/openbox/focus.c b/openbox/focus.c
index 88ef0104..7e1623bd 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -44,14 +44,6 @@ ObClient *focus_client = NULL;
GList *focus_order = NULL;
ObClient *focus_cycle_target = NULL;
-/*! This variable is used for focus fallback. If we fallback to a window, we
- set this to the window. And when focus goes somewhere after that, it will
- be set to NULL. If between falling back to that window and something
- getting focused, the window gets unmanaged, then if there are no incoming
- FocusIn events, we fallback again because focus has just gotten itself lost.
- */
-static ObClient *focus_tried = NULL;
-
struct {
InternalWindow top;
InternalWindow left;
@@ -69,7 +61,6 @@ static gboolean valid_focus_target(ObClient *ft,
gboolean dock_windows,
gboolean desktop_windows);
static void focus_cycle_destroy_notify(ObClient *client, gpointer data);
-static void focus_tried_hide_notify(ObClient *client, gpointer data);
static Window createWindow(Window parent, gulong mask,
XSetWindowAttributes *attrib)
@@ -88,8 +79,6 @@ void focus_startup(gboolean reconfig)
XSetWindowAttributes attr;
client_add_destroy_notify(focus_cycle_destroy_notify, NULL);
- client_add_destroy_notify(focus_tried_hide_notify, NULL);
- client_add_hide_notify(focus_tried_hide_notify, NULL);
/* start with nothing focused */
focus_nothing();
@@ -143,8 +132,6 @@ void focus_shutdown(gboolean reconfig)
if (!reconfig) {
client_remove_destroy_notify(focus_cycle_destroy_notify);
- client_remove_destroy_notify(focus_tried_hide_notify);
- client_remove_hide_notify(focus_tried_hide_notify);
/* reset focus to root */
XSetInputFocus(ob_display, PointerRoot, RevertToNone, CurrentTime);
@@ -198,10 +185,6 @@ void focus_set_client(ObClient *client)
PROP_SET32(RootWindow(ob_display, ob_screen),
net_active_window, window, active);
}
-
-
- focus_tried = NULL; /* focus isn't "trying" to go anywhere now */
- ob_debug_type(OB_DEBUG_FOCUS, "focus tried = NULL\n");
}
static ObClient* focus_fallback_target(gboolean allow_refocus, ObClient *old)
@@ -287,13 +270,8 @@ ObClient* focus_fallback(gboolean allow_refocus)
event at all for them. */
focus_nothing();
- if (new) {
+ if (new)
client_focus(new);
- /* remember that we tried to send focus here */
- focus_tried = new;
-
- ob_debug_type(OB_DEBUG_FOCUS, "focus tried = %s\n", new->title);
- }
return new;
}
@@ -313,9 +291,6 @@ void focus_nothing()
focus_client = NULL;
*/
- focus_tried = NULL; /* focus isn't "trying" to go anywhere now */
- ob_debug_type(OB_DEBUG_FOCUS, "focus tried = NULL\n");
-
/* if there is a grab going on, then we need to cancel it. if we move
focus during the grab, applications will get NotifyWhileGrabbed events
and ignore them !
@@ -963,28 +938,3 @@ ObClient *focus_order_find_first(guint desktop)
}
return NULL;
}
-
-static void focus_tried_hide_notify(ObClient *client, gpointer data)
-{
- XEvent ce;
-
- ob_debug_type(OB_DEBUG_FOCUS, "checking focus tried (%s) against %s\n",
- (focus_tried?focus_tried->title:"(null)"), client->title);
-
- if (client == focus_tried) {
- /* we were trying to focus this window but it's gone */
-
- focus_tried = NULL;
-
- ob_debug_type(OB_DEBUG_FOCUS, "Tried to focus window 0x%x and it "
- "is being unmanaged:\n");
- if (XCheckIfEvent(ob_display, &ce, event_look_for_focusin_client,NULL))
- {
- XPutBackEvent(ob_display, &ce);
- ob_debug_type(OB_DEBUG_FOCUS, " but another FocusIn is coming\n");
- } else {
- ob_debug_type(OB_DEBUG_FOCUS, " so falling back focus again.\n");
- focus_fallback(TRUE);
- }
- }
-}