[maemo-commits] [maemo-commits] r13643 - in projects/haf/trunk/hildon-desktop: . libhildonwm

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Sep 6 16:03:44 EEST 2007
Author: moimart
Date: 2007-09-06 16:03:43 +0300 (Thu, 06 Sep 2007)
New Revision: 13643

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/libhildonwm/hd-wm.c
   projects/haf/trunk/hildon-desktop/libhildonwm/hd-wm.h
Log:
2007-09-06  Moises Martinez  <moises.martinez at nokia.com>

        * libhildonwm/hd-wm.[ch]: (hd_wm_switch_instance_current_application):
        - Added new method to switch to prev/next application. Suggested by
        Horace Li from Intel.
	* ChangeLog updated.



Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-09-06 13:02:20 UTC (rev 13642)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-09-06 13:03:43 UTC (rev 13643)
@@ -1,3 +1,9 @@
+2007-09-06  Moises Martinez  <moises.martinez at nokia.com>
+
+	* libhildonwm/hd-wm.[ch]: (hd_wm_switch_instance_current_application):
+	- Added new method to switch to prev/next application. Suggested by
+	Horace Li from Intel.
+
 2007-09-06 Johan Bilien  <johan.bilien at nokia.com>
 
 	* libhildondesktop/hildon-desktop-panel-window-composite.c:

Modified: projects/haf/trunk/hildon-desktop/libhildonwm/hd-wm.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildonwm/hd-wm.c	2007-09-06 13:02:20 UTC (rev 13642)
+++ projects/haf/trunk/hildon-desktop/libhildonwm/hd-wm.c	2007-09-06 13:03:43 UTC (rev 13643)
@@ -739,7 +739,7 @@
     g_signal_emit_by_name (hdwm, "long-key-press");
 #ifdef MAEMO_CHANGES    
     gdk_close_all_temporary_windows ();
-#endif    
+#endif   
     return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
   }
   
@@ -3283,3 +3283,52 @@
      to_next);
 }	
 
+void
+hd_wm_switch_instance_current_application (HDWM *hdwm, gboolean to_next)
+{
+  GList *applications_list = NULL, *iter, *new_entry;
+  HDWMApplication *application;
+  HDWMWindow *window;
+
+  if (!hdwm->priv->active_window)
+    return;
+
+  applications_list = hd_wm_get_applications (hdwm);
+
+  for (iter = applications_list; iter != NULL; iter = g_list_next (iter))
+  {
+    application = HD_WM_APPLICATION (iter->data);
+
+    window = hd_wm_application_get_active_window (application);
+
+    if (window == hdwm->priv->active_window)
+    {
+      if (to_next)
+      {
+        new_entry = g_list_next (iter);
+
+        if (!new_entry)
+          new_entry = g_list_first (applications_list);
+      }
+      else
+      {
+        new_entry = g_list_previous (iter);
+
+        if (!new_entry)
+          new_entry = g_list_last (applications_list);
+      }
+
+      if (new_entry == iter) /* No need to emit any signal */
+        return;	      
+      
+      HDWMWindow *next_win = 
+        hd_wm_application_get_active_window (HD_WM_APPLICATION (new_entry->data));
+
+      HDWMEntryInfo *info = HD_WM_ENTRY_INFO (next_win);
+
+      hd_wm_top_item (info);
+      g_signal_emit_by_name (hdwm, "entry_info_stack_changed", info);
+      break;
+    }
+  }
+}

Modified: projects/haf/trunk/hildon-desktop/libhildonwm/hd-wm.h
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildonwm/hd-wm.h	2007-09-06 13:02:20 UTC (rev 13642)
+++ projects/haf/trunk/hildon-desktop/libhildonwm/hd-wm.h	2007-09-06 13:03:43 UTC (rev 13643)
@@ -295,6 +295,9 @@
 void 
 hd_wm_switch_instance_current_window (HDWM *hdwm, gboolean to_next);
 
+void
+hd_wm_switch_instance_current_application (HDWM *hdwm, gboolean to_next);
+
 GHashTable *
 hd_wm_get_icon_cache (HDWM *hdwm);
 


More information about the maemo-commits mailing list