]> Dogcows Code - chaz/openbox/blobdiff - openbox/frame.c
leavenotify events messing up delayed focus
[chaz/openbox] / openbox / frame.c
index 9a506d15560ebf56b8a28321348c4e7ba99f01bd..991e9adc71872a38900362c81bcdc6daecb42b77 100644 (file)
@@ -245,7 +245,7 @@ void frame_hide(ObFrame *self)
 {
     if (self->visible) {
         self->visible = FALSE;
-        self->client->ignore_unmaps += 2;
+        self->client->ignore_unmaps += 1;
         /* we unmap the client itself so that we can get MapRequest
            events, and because the ICCCM tells us to! */
         XUnmapWindow(ob_display, self->window);
@@ -498,6 +498,7 @@ void frame_adjust_focus(ObFrame *self, gboolean hilite)
 {
     self->focused = hilite;
     framerender_frame(self);
+    XFlush(ob_display);
 }
 
 void frame_adjust_title(ObFrame *self)
@@ -535,10 +536,6 @@ void frame_grab_client(ObFrame *self, ObClient *client)
 
     /* map the client so it maps when the frame does */
     XMapWindow(ob_display, client->window);
-    /* map the frame so they are in a consistant state together */
-    XMapWindow(ob_display, self->window);
-    /* reflect that we're initially visible */
-    self->visible = TRUE;
 
     /* set all the windows for the frame in the window_map */
     g_hash_table_insert(window_map, &self->window, client);
@@ -981,6 +978,7 @@ void frame_flash_start(ObFrame *self)
                                  G_USEC_PER_SEC * 0.6,
                                  flash_timeout,
                                  self,
+                                 g_direct_equal,
                                  flash_done);
     g_get_current_time(&self->flash_end);
     g_time_val_add(&self->flash_end, G_USEC_PER_SEC * 5);
This page took 0.022658 seconds and 4 git commands to generate.