[mutter/wip/multitouch: 52/73] display: Make focus info persistent



commit 84b9d5c9f985429a87d44476a0858d925e7ac9fb
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Jul 20 01:17:15 2011 +0200

    display: Make focus info persistent
    
    It must not be freed (at least meanwhile the device pair
    exists), so ensure it's kept around, and we don't create
    info for a same keyboard twice.

 src/core/display.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)
---
diff --git a/src/core/display.c b/src/core/display.c
index cee90b4..92595f1 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -561,8 +561,7 @@ meta_display_open (void)
 
   the_display->current_grabs = g_hash_table_new_full (NULL, NULL, NULL,
                                                       (GDestroyNotify) g_free);
-  the_display->focus_info = g_hash_table_new_full (NULL, NULL, NULL,
-                                                   (GDestroyNotify) g_free);
+  the_display->focus_info = g_hash_table_new (NULL, NULL);
   the_display->edge_resistance_info = g_hash_table_new (NULL, NULL);
 
 #ifdef HAVE_XSYNC
@@ -5930,13 +5929,13 @@ meta_display_get_focus_info (MetaDisplay *display,
   if (!device)
     return NULL;
 
+  if (!META_IS_DEVICE_KEYBOARD (device))
+    device = meta_device_get_paired_device (device);
+
   info = g_hash_table_lookup (display->focus_info, device);
 
   if (!info)
     {
-      if (!META_IS_DEVICE_KEYBOARD (device))
-        device = meta_device_get_paired_device (device);
-
       info = g_slice_new0 (MetaFocusInfo);
       info->last_focus_time = display->current_time;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]