? .cvsignore
? admin.png
? privatemsg.popups.patch
? privatemsg.popups2.patch
? privatemsg.popups3.patch
? profile_1.png
? profile_2.png
? profile_3.png
Index: privatemsg.admin.inc
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.admin.inc,v
retrieving revision 1.1
diff -u -p -r1.1 privatemsg.admin.inc
--- privatemsg.admin.inc	2 Dec 2009 20:03:59 -0000	1.1
+++ privatemsg.admin.inc	14 Dec 2009 12:11:22 -0000
@@ -28,6 +28,21 @@ function privatemsg_admin_settings() {
     '#description' => t('This option can safely be disabled if the "New message indication" block is used instead.'),
   );
 
+  $form['integration'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Integration settings'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+    '#description' => t('These settings allow to configure the integration with other modules.'),
+  );
+  $form['integration']['privatemsg_popups'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Open "send private message" links in a popup'),
+    '#default_value' => variable_get('privatemsg_popups', TRUE),
+    '#disabled' => !module_exists('popups'),
+    '#description' => t('This requires the <a href="http://drupal.org/project/popups">Popups API module</a>.'),
+  );
+
   $form['flush_deleted'] = array(
     '#type'        => 'fieldset',
     '#collapsible' => TRUE,
Index: privatemsg.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.module,v
retrieving revision 1.109
diff -u -p -r1.109 privatemsg.module
--- privatemsg.module	7 Dec 2009 16:28:47 -0000	1.109
+++ privatemsg.module	14 Dec 2009 12:11:23 -0000
@@ -894,7 +894,7 @@ function privatemsg_user($op, &$edit, &$
       if ($url = privatemsg_get_link(array($account))) {
         $account->content['privatemsg_send_new_message'] = array(
           '#type'   => 'markup',
-          '#value'  => l(t('Send this user a message'), $url, array('query' => drupal_get_destination())),
+          '#value'  => l(t('Send this user a message'), $url, array('query' => drupal_get_destination(), 'attributes' => array('title' => t('Send this user a message')))),
           '#weight' => 10,
         );
       }
@@ -991,7 +991,7 @@ function _privatemsg_block_menu() {
 
   $links = array();
   if (privatemsg_user_access('write privatemsg')) {
-    $links[] = l(t('Write new message'), 'messages/new');
+    $links[] = l(t('Write new message'), 'messages/new', array('attributes' => array('title' => t('Write new message'))));
   }
   if (privatemsg_user_access('read privatemsg') || privatemsg_user_access('read all private messages') ) {
     $links[] = l(privatemsg_title_callback(), 'messages');
@@ -1740,6 +1740,22 @@ function privatemsg_privatemsg_thread_op
 }
 
 /**
+ * Integration of hook_popups() of the popups module.
+ */
+function privatemsg_popups() {
+  if (variable_get('privatemsg_popups', TRUE)) {
+    return array(
+      '*' => array(
+        'a[href*=messages/new]' // Write new message
+       ),
+       '*' => array(
+        'div#block-privatemsg-privatemsg-menu a[href*=messages/new]',
+       )
+    );
+  }
+}
+
+/**
  * Implementation of hook_views_api().
  */
 function privatemsg_views_api() {
