[maemo-commits] [maemo-commits] r19069 - in projects/haf/trunk/hildon-control-panel: . src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Aug 6 12:24:45 EEST 2009
Author: kihamala
Date: 2009-08-06 12:24:42 +0300 (Thu, 06 Aug 2009)
New Revision: 19069

Modified:
   projects/haf/trunk/hildon-control-panel/ChangeLog
   projects/haf/trunk/hildon-control-panel/src/hcp-app-loader.c
   projects/haf/trunk/hildon-control-panel/src/hcp-app.c
Log:
crash fix + window raising fix


Modified: projects/haf/trunk/hildon-control-panel/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-control-panel/ChangeLog	2009-08-06 09:07:35 UTC (rev 19068)
+++ projects/haf/trunk/hildon-control-panel/ChangeLog	2009-08-06 09:24:42 UTC (rev 19069)
@@ -1,3 +1,12 @@
+2009-08-06 David Kedves <dkedves at blumsoft.eu>
+
+	* src/hcp-app.c:
+	 - Dont top already topmost applets
+	 - Focusing applet window after topping it
+	* src/hcp-app-loader.c:
+	 - Fixes abort problem on plugin exiting
+	   (i shouldn't free argv[2] :-S)
+
 2009-08-05 David Kedves <dkedves at blumsoft.eu>
 
 	* debian/rules:

Modified: projects/haf/trunk/hildon-control-panel/src/hcp-app-loader.c
===================================================================
--- projects/haf/trunk/hildon-control-panel/src/hcp-app-loader.c	2009-08-06 09:07:35 UTC (rev 19068)
+++ projects/haf/trunk/hildon-control-panel/src/hcp-app-loader.c	2009-08-06 09:24:42 UTC (rev 19069)
@@ -134,11 +134,11 @@
   plugin = g_new0 (hcp_app_data, 1); 
 
   plugin->soname = g_strdup (argv[1]);
-  plugin->name = argv[2];
+  plugin->name = g_strdup (argv[2]);
   /* Set WM_CLASS ... */
 /*  g_debug ("Set WM_CLASS to '%s'", argv[2]); */
-  g_set_prgname (argv[2]);
-  gdk_set_program_class (argv[2]);
+  g_set_prgname (plugin->name);
+  gdk_set_program_class (plugin->name);
 
   g_set_application_name ("");
 

Modified: projects/haf/trunk/hildon-control-panel/src/hcp-app.c
===================================================================
--- projects/haf/trunk/hildon-control-panel/src/hcp-app.c	2009-08-06 09:07:35 UTC (rev 19068)
+++ projects/haf/trunk/hildon-control-panel/src/hcp-app.c	2009-08-06 09:24:42 UTC (rev 19069)
@@ -460,15 +460,14 @@
 static gboolean
 try_focus (HCPApp *app)
 {
-#ifdef HD_PROPERLY_RAISING
   XClientMessageEvent  xclient;
-#endif
   HCPProgram          *program = hcp_program_get_instance ();
   g_return_val_if_fail (hcp_app_is_running (app), FALSE);
 
+  /* 'app' is already the topmost -> no need to raising */
   if (!program->running_applets ||
-      !program->running_applets->next)
-    return FALSE; /* only one applet shown, no need to raising */
+      (g_list_last (program->running_applets)->data == app))
+    return FALSE;
 
   if (app->priv->xid == None)
     app->priv->xid = get_xid_by_wm_class (app->priv->wm_class);
@@ -478,6 +477,7 @@
   if (app->priv->xid == None)
     return FALSE; /* plugin window isn't exists anymore ...*/
 
+  /* Topping window: */
 #ifndef HD_PROPERLY_RAISING
   /* XXX: HACK: force restacking with quickly unmapping / mapping */
   gdk_error_trap_push ();
@@ -491,7 +491,9 @@
   gdk_error_trap_push ();
   XRaiseWindow (GDK_DISPLAY (), app->priv->xid);
   gdk_error_trap_pop ();
+#endif
 
+  /* Focusing window */
   memset (&xclient, 0, sizeof (xclient));
   xclient.type = ClientMessage;
   xclient.window = app->priv->xid;
@@ -508,7 +510,6 @@
               SubstructureRedirectMask | SubstructureNotifyMask,
               (XEvent *)&xclient);
   gdk_error_trap_pop ();
-#endif
 
   /* move to the end of the list (to save proper ordering...) */
   program->running_applets = g_list_remove (program->running_applets,

More information about the maemo-commits mailing list